Membuat Mekanisme Pengesahan Web pada Blockchain

Kita hidup di era kemudahan dan apa sahaja yang dapat mengurangkan masa yang diperlukan untuk menyelesaikan tugas-tugas sederhana dipeluk dengan tangan terbuka.

Salah satu contoh yang paling relevan dalam dunia dalam talian berasal dari bidang pengesahan pengguna. Sebelum ini, kami harus menyimpan koleksi id dan kata laluan pengguna kami, sekarang kami dapat masuk dengan cepat dan mudah melalui Facebook, Google dan pelbagai perkhidmatan lain.

Tetapi adakah ini bijak dan adakah alternatif yang lebih baik?

Dalam siaran ini, kita akan melihat keadaan pengesahan pengguna semasa serta beberapa alternatif menarik yang kini tersedia kerana teknologi blockchain.

Masalah dengan The Status Quo

Sekiranya anda ingin mengembangkan kawasan larangan bagi pengguna di laman web anda, anda harus memilih sama ada untuk mengembangkan sistem unik anda sendiri mengenai pengenalan, pengesahan, dan kebenaran pengguna atau menggunakan penyelesaian siap pakai.

Penyelesaian siap pakai itu mengandaikan bahawa pengguna sudah mempunyai akaun di beberapa platform (Facebook, Yahoo, Google, Outlook, atau bahkan hanya e-mel). Dalam kes ini, anda hanya menggunakan mekanisme yang sesuai (selalunya Protokol OAuth 2.0) untuk mengesahkan bahawa seseorang yang cuba log masuk ke laman web anda menggunakan ID pengguna luaran adalah pengguna yang sama.

Pilihan Log Masuk Sosial

Banyak Pilihan Masuk Akaun Sosial. Sumber: NPM

Pilihan ini lebih mudah dilaksanakan, tetapi ada risiko bagi pengguna. Sekiranya sesuatu berlaku pada akaun utamanya (misalnya, Facebook menyekat akaun tanpa sebab), dia juga akan kehilangan akses ke maklumatnya di laman web anda.

Lebih-lebih lagi, jika saya sebagai pengguna ingin log masuk ke laman web yang belum saya percayai, saya berhadapan dengan keperluan untuk memberi laman web ini akses kepada maklumat peribadi saya. Ini termasuk maklumat peribadi seperti nama, e-mel atau umur saya. Sekiranya laman web ini hanya menyokong log masuk dengan akaun luaran, saya memang menghadapi pilihan yang sukar.

Sama ada saya enggan menggunakan laman web ini atau mengorbankan privasi saya.

Sebilangan besar pengguna biasanya mengorbankan privasi dan tanpa nama mereka berfikir “Tidak ada yang buruk dapat terjadi, saya tidak perlu menyembunyikan apa-apa.” Malangnya, sebahagian besar serangan yang disasarkan kepada pengguna yang tidak bersedia yang berakhir dengan kerugian wang bermula dengan kata-kata seperti:

“Apa yang dapat terjadi jika saya mengirim kod SMS ini kepada pegawai bank?” atau “Adakah sangat buruk untuk mengirim tajuk permintaan ini kepada pekerja sokongan teknologi?”

Biasanya, seseorang mengetahui jawapan untuk soalan seperti itu ketika sudah terlambat.

Bagaimana Ethereum Boleh Membantu

Kami telah memahami bahawa terdapat tiga masalah utama:

  • Pengguna tidak wajib mempercayai laman web yang dikunjungi dan ingin mengelakkan kebocoran maklumat peribadinya
  • Laman web ini ingin menggunakan sistem pengesahan luaran untuk mengelakkan menyimpan data pengguna dan perbelanjaan keselamatan yang berkaitan
  • Sistem luaran yang ada menyediakan laman web dengan kemampuan untuk mengesahkan pengguna membawa bahaya penapisan. Apa-apa akaun boleh disekat pada bila-bila masa tanpa menjelaskan alasannya dan selalunya tanpa kemungkinan pemulihan

Akan tetapi, bolehkah kita menggunakan rangkaian yang selamat dan terdesentralisasi seperti Ethereum untuk membantu pengesahan jenis ini.

Setelah semua pasangan kunci selamat secara kriptografi di mana kunci awam mewakili alamat dompet, dan kunci peribadi tidak pernah dihantar melalui rangkaian. Selain itu, ia hanya diketahui oleh pemiliknya dan mungkin menggunakan enkripsi asimetri untuk mengesahkan pengguna.

Dalam kes yang paling mudah, kita boleh menggunakan alamat dompet Ethereum sebagai ID pengguna. Walau bagaimanapun, jika pengguna kehilangan akses ke kunci mereka, mereka juga kehilangan akses ke sistem selama-lamanya.

Begitu juga, jika kunci anda entah bagaimana dikompromikan dan penggodam dapat memegangnya, anda tidak boleh menggunakan kunci yang sama untuk mengesahkan pemilikannya lagi. Penggodam hanya boleh menyamar sebagai diri anda sendiri di semua laman web yang anda daftarkan.

Pelaksanaan EtherAuth

Terdapat cadangan menarik yang dikemukakan oleh Campurkan Bait pasukan di salah satu hackathon Ethereum terbaru. Ini adalah milik mereka Kontrak pintar EtherAuth enjin.

EtherAuth adalah percubaan untuk membuat protokol log masuk dan pengesahan laman web yang terdesentralisasi. Ini serupa dengan butang “Log masuk dengan Facebook” yang mungkin sudah biasa anda lakukan. Ini adalah kontrak pintar yang akan menyimpan ID pengguna dan alamat dompet yang berkaitan

Moscow Hackathon Mixbytes

Anggota pasukan Mixbytes di Moscow Hackathon. Sumber gambar: Bankex

ID pengguna hanyalah rentetan UTF-8 dengan ukuran antara 2 dan 32 bait. Pengguna sendiri membuatnya pada awal dompet dan kemudian akan menggunakannya untuk memasuki mana-mana laman web yang menyokong EtherAuth.

Juga mungkin untuk menambahkan sekatan pada kemungkinan watak yang termasuk dalam rentetan. Seseorang boleh membataskannya kepada aksara Latin dan angka Arab (subkumpulan pengekodan ASCII 7-bit) untuk membatasi kemungkinan membuat ID yang serupa secara visual.

Semasa membuat akaun dengan EtherAuth, sepasang kunci dibuat. Anda akan membuat kunci kebenaran (authAddr) dan kunci untuk memulihkan akses (recoveryKey). Nama “recoveryKey” mungkin bukan yang terbaik kerana alamat ini digunakan untuk mengurus akaun dan bukan hanya untuk pemulihan.

Semasa dibuat, kedua alamat tersebut sama dengan alamat dompet yang pertama kali melakukan transaksi. Pengguna yang mementingkan keselamatan mereka harus membuat Master Key yang terpisah dan menyimpannya di tempat yang tidak dapat diakses dari dalam talian.

Mungkin paling selamat untuk menyimpannya di sehelai kertas di tempat simpanan sejuk. Penyimpanan kertas bergantung pada apa yang dipanggil seed recovery. Benih pemulihan adalah sekumpulan kata 12 mnemonik yang apabila digunakan dapat membuat pasangan kunci untuk dompet anda.

Sekiranya anda akan menggunakan dompet untuk pengesahan, maka disarankan juga anda menggunakan alamat yang terpisah dari alamat yang menyimpan semua Ether anda. Melakukan ini membolehkan anda mengelakkan penggodam mengesan Authkey anda ke dompet dengan aset anda. Buat masa ini, anda tidak dapat membuat authKey dan recoveryKey yang terpisah semasa membuat akaun. Ini adalah sesuatu yang dapat dikemas kini dalam lelaran kontrak pintar kemudian. Sekiranya anda ingin melindungi diri anda lebih jauh maka anda perlu mempertimbangkan Perkhidmatan VPN.

Menggunakan EtherAuth

Terdapat laman web khusus yang bertujuan untuk interaksi pengguna dengan kontrak pintar. Anda boleh membuat akaun di sana, menukar kunci atau menghapusnya. Untuk mengusahakannya, pengguna perlu memasang plugin penyemak imbas terkenal yang dipanggil MetaMask.

Sudah tentu, jika anda sudah cukup pengguna rangkaian Ethereum, anda sudah tentu menggunakan MetaMask dan mungkin mempunyai idea bagaimana ia berinteraksi dengan rangkaian.

Proses pengesahan pengguna secara keseluruhan menggunakan EtherAuth kelihatan seperti ini:

  • Laman web (backend) menghubungi kontrak pintar dan menerima alamat Ethereum pengguna
  • Laman web (backend) menghasilkan dan merekodkan mesej, dan meminta pengguna menandatangani mesej ini dengan bantuan alamat authKey
  • Pengguna yang berada di laman web (frontend) menandatangani mesej menggunakan plugin MetaMask dan menghantarnya ke backend
  • Laman web (backend) mengesahkan tandatangan, dan jika semuanya baik-baik saja, ia mengaktifkan sesi pengguna

Penting bahawa pemeriksaan pengesahan harus dilakukan dalam persekitaran yang tidak terkawal pengguna. Oleh itu, dengan kata lain, semua pemeriksaan harus diselesaikan pada pelayan dan bukannya pada penyemak imbas pengguna.

Antara masalah yang mungkin anda hadapi ialah pengesahan tandatangan di bahagian depan. Tidak semua penyemak imbas menyokong lengkung elips. Ia dapat diselesaikan dengan menambahkan fungsi ke kontrak pintar yang mengembalikan “Ecrecover” hasil dari mesej tersebut.

Identiti Dalam Talian Unik

Imej melalui Fotolia

Hasilnya, anda mempunyai bukti bukti konsep sistem pengesahan terdesentralisasi berdasarkan Ethereum dan digunakan pada pemalam MetaMask. Sistem ini masih memerlukan beberapa pengubahsuaian untuk dapat memberikan nama pengguna. Pengguna berpeluang untuk memulihkan akses sekiranya kehilangan kunci utamanya (tetapi tidak dalam kes kehilangan kunci pemulihan).

Sistem desentralisasi tidak dikenakan penapisan entiti besar, seperti Google atau Facebook. Sekiranya perlu menapis sesuatu, setiap laman web harus melaksanakannya secara bebas. Namun, ini hanya akan mempengaruhi interaksi pengguna dengan laman web tersebut dan bukan yang lain.

Rangkaian Ethereum pada masa ini mempunyai kelajuan transaksi yang cukup perlahan (ketika membuat akaun, pengguna mungkin harus menunggu beberapa minit), tetapi laman web dapat memperoleh data dan mengesahkan pengguna dengan cepat.

Penyelesaian ini bersesuaian dengan baik, kerana terdapat banyak simpul data, dan sesiapa sahaja dapat menambahkan yang lain kapan saja. Kerumitan pelaksanaan penyelesaian sedemikian untuk pemilik laman web tidak lebih tinggi daripada kerumitan pelaksanaan OAuth 2.0.

Kesimpulannya

Penting untuk diperhatikan bahawa ini masih merupakan tahap awal projek dan baru sahaja dicadangkan di hackathon.

Lebih-lebih lagi, kadar penggunaan Ethereum dan cryptocurrency pada umumnya masih sebahagian kecil daripada mereka yang menggunakan Facebook dan Google. Ini akan memakan masa sebelum orang merasa lebih selesa menggunakan alamat Ether daripada akaun Facebook mereka.

Walau bagaimanapun, kadar penggunaan crypto sememangnya semakin meningkat dan skandal data di Facebook baru-baru ini telah membantu mengasingkan sebilangan besar orang. Akan menarik untuk melihat sama ada pengesahan terdesentralisasi dapat menjadi alternatif yang layak.

Gambar Pilihan melalui Fotolia

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me