DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Bukan rahasia lagi bahwa salah satu alat bantu yang umum digunakan, yang tanpanya perlindungan data di jaringan terbuka tidak mungkin dilakukan, adalah teknologi sertifikat digital. Namun, bukan rahasia lagi bahwa kelemahan utama teknologi ini adalah kepercayaan tanpa syarat terhadap pusat penerbit sertifikat digital. Direktur Teknologi dan Inovasi di ENCRY Andrey Chmora mengusulkan pendekatan baru dalam pengorganisasian infrastruktur kunci publik (Infrastruktur Kunci Publik, PKI), yang akan membantu menghilangkan kekurangan saat ini dan menggunakan teknologi buku besar terdistribusi (blockchain). Tapi hal pertama yang pertama.

Jika Anda memahami cara kerja infrastruktur kunci publik Anda saat ini dan mengetahui kekurangan utamanya, Anda dapat langsung beralih ke hal yang kami usulkan untuk diubah di bawah.

Apa itu tanda tangan dan sertifikat digital?Interaksi di Internet selalu melibatkan transfer data. Kita semua berkepentingan untuk memastikan bahwa data dikirimkan dengan aman. Tapi apa itu keamanan? Layanan keamanan yang paling dicari adalah kerahasiaan, integritas, dan keaslian. Untuk tujuan ini, metode kriptografi asimetris, atau kriptografi dengan kunci publik, saat ini digunakan.

Mari kita mulai dengan fakta bahwa untuk menggunakan metode ini, subjek interaksi harus memiliki dua kunci berpasangan - publik dan rahasia. Dengan bantuan mereka, layanan keamanan yang kami sebutkan di atas disediakan.

Bagaimana kerahasiaan transfer informasi dicapai? Sebelum mengirim data, pelanggan pengirim mengenkripsi (mengubah secara kriptografis) data terbuka menggunakan kunci publik penerima, dan penerima mendekripsi teks sandi yang diterima menggunakan kunci rahasia berpasangan.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Bagaimana integritas dan keaslian informasi yang dikirimkan tercapai? Untuk mengatasi masalah ini, mekanisme lain telah dibuat. Data terbuka tidak dienkripsi, tetapi hasil penerapan fungsi hash kriptografi - gambar "terkompresi" dari urutan data masukan - ditransmisikan dalam bentuk terenkripsi. Hasil dari hashing tersebut disebut “digest”, dan dienkripsi menggunakan kunci rahasia dari pelanggan pengirim (“saksi”). Sebagai hasil dari enkripsi intisari, tanda tangan digital diperoleh. Ini, bersama dengan teks yang jelas, dikirimkan ke pelanggan penerima (“verifikator”). Dia mendekripsi tanda tangan digital pada kunci publik saksi dan membandingkannya dengan hasil penerapan fungsi hash kriptografi, yang dihitung oleh verifikator secara independen berdasarkan data terbuka yang diterima. Jika cocok, ini menunjukkan bahwa data dikirimkan dalam bentuk asli dan lengkap oleh pelanggan pengirim, dan tidak diubah oleh penyerang.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Sebagian besar sumber daya yang bekerja dengan data pribadi dan informasi pembayaran (bank, perusahaan asuransi, maskapai penerbangan, sistem pembayaran, serta portal pemerintah seperti layanan pajak) secara aktif menggunakan metode kriptografi asimetris.

Apa hubungannya sertifikat digital dengan itu? Itu mudah. Baik proses pertama maupun kedua melibatkan kunci publik, dan karena keduanya memainkan peran sentral, sangat penting untuk memastikan bahwa kunci tersebut benar-benar milik pengirim (saksi, dalam hal verifikasi tanda tangan) atau penerima, dan bukan milik pihak lain. diganti dengan kunci penyerang. Inilah sebabnya mengapa sertifikat digital ada untuk memastikan keaslian dan integritas kunci publik.

Catatan: keaslian dan integritas kunci publik dikonfirmasi dengan cara yang persis sama seperti keaslian dan integritas data publik, yaitu menggunakan tanda tangan digital elektronik (EDS).
Dari mana sertifikat digital berasal?Otoritas sertifikasi tepercaya, atau Otoritas Sertifikasi (CA), bertanggung jawab untuk menerbitkan dan memelihara sertifikat digital. Pemohon meminta penerbitan sertifikat dari CA, menjalani identifikasi di Registration Center (CR) dan menerima sertifikat dari CA. CA menjamin bahwa kunci publik dari sertifikat adalah milik entitas yang menerbitkannya.

Jika Anda tidak mengkonfirmasi keaslian kunci publik, maka penyerang selama transfer/penyimpanan kunci ini dapat menggantinya dengan miliknya sendiri. Jika substitusi telah terjadi, penyerang akan dapat mendekripsi semua yang dikirimkan oleh pelanggan pengirim ke pelanggan penerima, atau mengubah data terbuka atas kebijakannya sendiri.

Sertifikat digital digunakan di mana pun kriptografi asimetris tersedia. Salah satu sertifikat digital yang paling umum adalah sertifikat SSL untuk komunikasi aman melalui protokol HTTPS. Ratusan perusahaan yang terdaftar di berbagai yurisdiksi terlibat dalam penerbitan sertifikat SSL. Bagian utama jatuh pada lima hingga sepuluh pusat tepercaya besar: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave.

CA dan CR merupakan komponen PKI yang juga meliputi:

  • Buka direktori – database publik yang menyediakan penyimpanan sertifikat digital yang aman.
  • Daftar pencabutan sertifikat – database publik yang menyediakan penyimpanan aman atas sertifikat digital dari kunci publik yang dicabut (misalnya, karena kompromi pada kunci pribadi yang dipasangkan). Subyek infrastruktur dapat mengakses database ini secara mandiri, atau mereka dapat menggunakan Protokol Status Sertifikasi Online (OCSP) khusus, yang menyederhanakan proses verifikasi.
  • Pengguna sertifikat – subjek PKI yang dilayani yang telah menandatangani perjanjian pengguna dengan CA dan memverifikasi tanda tangan digital dan/atau mengenkripsi data berdasarkan kunci publik dari sertifikat.
  • pengikut – melayani subjek PKI yang memiliki kunci rahasia yang dipasangkan dengan kunci publik dari sertifikat, dan yang telah menandatangani perjanjian berlangganan dengan CA. Pelanggan sekaligus dapat menjadi pengguna sertifikat.

Oleh karena itu, entitas tepercaya dari infrastruktur kunci publik, yang mencakup CA, CR, dan direktori terbuka, bertanggung jawab untuk:

1. Verifikasi keaslian identitas pemohon.
2. Membuat profil sertifikat kunci publik.
3. Menerbitkan sertifikat kunci publik bagi pemohon yang identitasnya telah terkonfirmasi secara andal.
4. Ubah status sertifikat kunci publik.
5. Memberikan informasi tentang status sertifikat kunci publik saat ini.

Kekurangan PKI, Apa Saja?Kelemahan mendasar PKI adalah hadirnya entitas terpercaya.
Pengguna harus mempercayai CA dan CR tanpa syarat. Namun, seperti yang ditunjukkan oleh praktik, kepercayaan tanpa syarat memiliki konsekuensi yang serius.

Selama sepuluh tahun terakhir, telah terjadi beberapa skandal besar di bidang ini terkait dengan kerentanan infrastruktur.

— pada tahun 2010, malware Stuxnet mulai menyebar secara online, ditandatangani menggunakan sertifikat digital curian dari RealTek dan JMicron.

- Pada tahun 2017, Google menuduh Symantec mengeluarkan sejumlah besar sertifikat palsu. Saat itu, Symantec merupakan salah satu CA terbesar dalam hal volume produksi. Di browser Google Chrome 70, dukungan untuk sertifikat yang dikeluarkan oleh perusahaan ini dan pusat afiliasinya GeoTrust dan Thawte dihentikan sebelum 1 Desember 2017.

CA telah disusupi, dan akibatnya semua orang menderita—CA itu sendiri, serta pengguna dan pelanggan. Kepercayaan terhadap infrastruktur telah melemah. Selain itu, sertifikat digital mungkin diblokir jika terjadi konflik politik, yang juga akan mempengaruhi pengoperasian banyak sumber daya. Hal inilah yang dikhawatirkan beberapa tahun lalu di pemerintahan kepresidenan Rusia, di mana pada tahun 2016 mereka membahas kemungkinan pembentukan pusat sertifikasi negara yang akan menerbitkan sertifikat SSL ke situs-situs di RuNet. Keadaan saat ini sedemikian rupa sehingga bahkan portal negara di Rusia menggunakan sertifikat digital yang dikeluarkan oleh perusahaan Amerika Comodo atau Thawte (anak perusahaan Symantec).

Ada masalah lain - pertanyaannya otentikasi utama (autentikasi) pengguna. Bagaimana cara mengidentifikasi pengguna yang telah menghubungi CA dengan permintaan menerbitkan sertifikat digital tanpa kontak pribadi langsung? Sekarang masalah ini diselesaikan secara situasional tergantung pada kemampuan infrastruktur. Sesuatu diambil dari register terbuka (misalnya informasi tentang badan hukum yang meminta sertifikat); dalam hal pemohon adalah perorangan, dapat digunakan kantor bank atau kantor pos yang identitasnya dikonfirmasi dengan menggunakan dokumen identitas, misalnya paspor.

Masalah pemalsuan kredensial untuk tujuan peniruan identitas merupakan masalah mendasar. Perhatikan bahwa tidak ada solusi lengkap untuk masalah ini karena alasan teori informasi: tanpa adanya informasi apriori yang dapat dipercaya, tidak mungkin untuk mengkonfirmasi atau menyangkal keaslian subjek tertentu. Sebagai aturan, untuk verifikasi perlu menunjukkan seperangkat dokumen yang membuktikan identitas pemohon. Ada banyak metode verifikasi yang berbeda, namun tidak satupun yang memberikan jaminan penuh atas keaslian dokumen. Oleh karena itu, keaslian identitas pemohon juga tidak dapat dijamin.

Bagaimana cara menghilangkan kekurangan-kekurangan ini?Jika permasalahan PKI pada kondisi saat ini dapat dijelaskan dengan sentralisasi, maka masuk akal untuk berasumsi bahwa desentralisasi akan membantu menghilangkan sebagian kelemahan yang teridentifikasi.

Desentralisasi tidak berarti adanya entitas terpercaya - jika Anda menciptakannya infrastruktur kunci publik yang terdesentralisasi (Infrastruktur Kunci Publik Terdesentralisasi, DPRI), maka CA maupun CR tidak diperlukan. Mari tinggalkan konsep sertifikat digital dan gunakan registri terdistribusi untuk menyimpan informasi tentang kunci publik. Dalam kasus kami, kami menyebut register sebagai database linier yang terdiri dari catatan individu (blok) yang dihubungkan menggunakan teknologi blockchain. Alih-alih sertifikat digital, kami akan memperkenalkan konsep “pemberitahuan”.

Bagaimana proses penerimaan, verifikasi, dan pembatalan notifikasi pada usulan DPKI:

1. Setiap pemohon mengajukan permohonan pemberitahuan secara mandiri dengan mengisi formulir pada saat pendaftaran, setelah itu ia membuat transaksi yang disimpan dalam kumpulan khusus.

2. Informasi tentang kunci publik, beserta rincian pemilik dan metadata lainnya, disimpan dalam registri terdistribusi, dan bukan dalam sertifikat digital, yang penerbitannya di PKI terpusat menjadi tanggung jawab CA.

3. Verifikasi keaslian identitas pemohon dilakukan setelah kejadian atas upaya bersama komunitas pengguna DPKI, dan bukan oleh CR.

4. Hanya pemilik notifikasi tersebut yang dapat mengubah status kunci publik.

5. Siapa pun dapat mengakses buku besar yang didistribusikan dan memeriksa status kunci publik saat ini.

Catatan: Verifikasi identitas pemohon oleh komunitas mungkin tampak tidak dapat diandalkan pada pandangan pertama. Namun kita harus ingat bahwa saat ini semua pengguna layanan digital mau tidak mau meninggalkan jejak digital, dan proses ini akan terus mendapatkan momentumnya. Buka register elektronik badan hukum, peta, digitalisasi gambar medan, jejaring sosial - semua ini adalah alat yang tersedia untuk umum. Mereka telah berhasil digunakan selama investigasi oleh jurnalis dan lembaga penegak hukum. Misalnya, cukup mengingat investigasi Bellingcat atau tim investigasi gabungan JIT, yang sedang mempelajari penyebab jatuhnya Boeing Malaysia.

Jadi, bagaimana praktik infrastruktur kunci publik yang terdesentralisasi? Mari kita membahas lebih detail tentang deskripsi teknologi itu sendiri yang kita miliki dipatenkan pada tahun 2018 dan kami berhak menganggapnya sebagai pengetahuan kami.

Bayangkan ada beberapa pemilik yang memiliki banyak kunci publik, dimana setiap kunci merupakan transaksi tertentu yang disimpan di registri. Dengan tidak adanya CA, bagaimana Anda dapat memahami bahwa semua kunci adalah milik pemilik tertentu? Untuk mengatasi masalah ini, transaksi nol dibuat, yang berisi informasi tentang pemilik dan dompetnya (dari mana komisi untuk menempatkan transaksi di registri didebit). Transaksi nol adalah semacam "jangkar" yang akan dilampirkan transaksi berikut dengan data tentang kunci publik. Setiap transaksi tersebut berisi struktur data khusus, atau dengan kata lain, pemberitahuan.

Notifikasi adalah sekumpulan data terstruktur yang terdiri dari bidang fungsional dan termasuk informasi tentang kunci publik pemilik, yang kegigihannya dijamin dengan penempatan di salah satu catatan terkait dari registri terdistribusi.

Pertanyaan logis berikutnya adalah bagaimana transaksi nol terbentuk? Transaksi nol—seperti transaksi berikutnya—adalah agregasi enam bidang data. Selama pembentukan transaksi nol, pasangan kunci dompet terlibat (kunci rahasia publik dan berpasangan). Sepasang kunci ini muncul pada saat pengguna mendaftarkan dompetnya, dari mana komisi untuk menempatkan transaksi nol di registri dan, selanjutnya, operasi dengan pemberitahuan akan didebit.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Seperti yang ditunjukkan pada gambar, intisari kunci publik dompet dihasilkan dengan menerapkan fungsi hash SHA256 dan RIPEMD160 secara berurutan. Di sini RIPEMD160 bertanggung jawab atas representasi data yang ringkas, yang lebarnya tidak melebihi 160 bit. Hal ini penting karena registri bukanlah database murah. Kunci publik sendiri dimasukkan pada kolom kelima. Bidang pertama berisi data yang membuat koneksi ke transaksi sebelumnya. Untuk transaksi nol, bidang ini tidak berisi apa pun, yang membedakannya dari transaksi berikutnya. Bidang kedua adalah data untuk memeriksa konektivitas transaksi. Untuk singkatnya, kami akan menyebut data di kolom pertama dan kedua masing-masing sebagai “tautan” dan “periksa”. Isi kolom ini dihasilkan oleh hashing berulang, seperti yang ditunjukkan dengan menghubungkan transaksi kedua dan ketiga pada gambar di bawah.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Data dari lima bidang pertama disertifikasi dengan tanda tangan elektronik, yang dihasilkan menggunakan kunci rahasia dompet.

Itu saja, transaksi nol dikirim ke kumpulan dan setelah verifikasi berhasil dimasukkan ke dalam registri. Sekarang Anda dapat “menautkan” transaksi berikut ke sana. Mari kita pertimbangkan bagaimana transaksi selain nol terbentuk.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Hal pertama yang mungkin menarik perhatian Anda adalah banyaknya pasangan kunci. Selain pasangan kunci dompet yang sudah dikenal, pasangan kunci biasa dan layanan juga digunakan.

Kunci publik biasa adalah tujuan awal segala sesuatunya. Kunci ini terlibat dalam berbagai prosedur dan proses yang terjadi di dunia luar (perbankan dan transaksi lainnya, aliran dokumen, dll). Misalnya, kunci rahasia dari pasangan biasa dapat digunakan untuk menghasilkan tanda tangan digital untuk berbagai dokumen - perintah pembayaran, dll., dan kunci publik dapat digunakan untuk memverifikasi tanda tangan digital ini dengan pelaksanaan selanjutnya dari instruksi ini, asalkan itu adalah benar.

Pasangan layanan dikeluarkan untuk subjek DPKI yang terdaftar. Nama pasangan ini sesuai dengan tujuannya. Perhatikan bahwa saat membuat/memeriksa transaksi nol, kunci layanan tidak digunakan.

Mari kita perjelas lagi tujuan dari kunci tersebut:

  1. Kunci dompet digunakan untuk menghasilkan/memverifikasi transaksi null dan transaksi non-null lainnya. Kunci pribadi dompet hanya diketahui oleh pemilik dompet, yang juga merupakan pemilik banyak kunci publik biasa.
  2. Kunci publik biasa memiliki tujuan yang serupa dengan kunci publik yang sertifikatnya diterbitkan di PKI terpusat.
  3. Pasangan kunci layanan milik DPRI. Kunci rahasia dikeluarkan untuk entitas terdaftar dan digunakan saat membuat tanda tangan digital untuk transaksi (kecuali untuk transaksi nol). Publik digunakan untuk memverifikasi tanda tangan digital elektronik suatu transaksi sebelum diposting di registri.

Jadi, ada dua kelompok kunci. Yang pertama mencakup kunci layanan dan kunci dompet - keduanya hanya masuk akal dalam konteks DPKI. Kelompok kedua mencakup kunci biasa - cakupannya dapat bervariasi dan ditentukan oleh tugas aplikasi di mana kunci tersebut digunakan. Pada saat yang sama, DPRI menjamin integritas dan keaslian kunci publik biasa.

Catatan: Pasangan kunci layanan mungkin diketahui oleh entitas DPKI yang berbeda. Misalnya, mungkin sama untuk semua orang. Karena alasan inilah ketika membuat tanda tangan dari setiap transaksi bukan nol, dua kunci rahasia digunakan, salah satunya adalah kunci dompet - hanya diketahui oleh pemilik dompet, yang juga merupakan pemilik banyak transaksi biasa. kunci publik. Semua kunci mempunyai arti masing-masing. Misalnya, selalu mungkin untuk membuktikan bahwa suatu transaksi dimasukkan ke dalam registri oleh subjek DPKI yang terdaftar, karena tanda tangan juga dibuat pada kunci dinas rahasia. Dan tidak boleh ada penyalahgunaan, seperti serangan DOS, karena pemilik membayar untuk setiap transaksi.

Semua transaksi yang mengikuti angka nol dibentuk dengan cara yang sama: kunci publik (bukan dompet, seperti dalam kasus transaksi nol, tetapi dari pasangan kunci biasa) dijalankan melalui dua fungsi hash SHA256 dan RIPEMD160. Ini adalah bagaimana data bidang ketiga terbentuk. Bidang keempat berisi informasi yang menyertainya (misalnya, informasi tentang status saat ini, tanggal kedaluwarsa, stempel waktu, pengidentifikasi algoritma kripto yang digunakan, dll.). Bidang kelima berisi kunci publik dari pasangan kunci layanan. Dengan bantuannya, tanda tangan digital kemudian akan diperiksa, sehingga akan direplikasi. Marilah kita membenarkan perlunya pendekatan seperti itu.

Ingatlah bahwa suatu transaksi dimasukkan ke dalam kumpulan dan disimpan di sana sampai transaksi tersebut diproses. Menyimpan dalam kumpulan dikaitkan dengan risiko tertentu - data transaksi dapat dipalsukan. Pemilik mengesahkan data transaksi dengan tanda tangan digital elektronik. Kunci publik untuk memverifikasi tanda tangan digital ini ditunjukkan secara eksplisit di salah satu bidang transaksi dan selanjutnya dimasukkan ke dalam registri. Keunikan pemrosesan transaksi sedemikian rupa sehingga penyerang dapat mengubah data sesuai kebijaksanaannya dan kemudian memverifikasinya menggunakan kunci rahasianya, dan menunjukkan kunci publik berpasangan untuk memverifikasi tanda tangan digital dalam transaksi. Jika keaslian dan integritas dijamin secara eksklusif melalui tanda tangan digital, maka pemalsuan tersebut tidak akan diketahui. Namun, jika selain tanda tangan digital, terdapat mekanisme tambahan yang menjamin pengarsipan dan persistensi informasi yang disimpan, maka pemalsuan dapat dideteksi. Untuk melakukan ini, cukup memasukkan kunci publik asli pemilik ke dalam registri. Mari kita jelaskan cara kerjanya.

Biarkan penyerang memalsukan data transaksi. Dari sudut pandang kunci dan tanda tangan digital, opsi berikut ini dimungkinkan:

1. Penyerang menempatkan kunci publiknya dalam transaksi sementara tanda tangan digital pemiliknya tidak berubah.
2. Penyerang membuat tanda tangan digital pada kunci pribadinya, namun membiarkan kunci publik pemiliknya tidak berubah.
3. Penyerang membuat tanda tangan digital pada kunci pribadinya dan memasangkan kunci publik dalam transaksi.

Tentu saja opsi 1 dan 2 tidak ada artinya karena akan selalu terdeteksi saat verifikasi tanda tangan digital. Hanya opsi 3 yang masuk akal, dan jika penyerang membentuk tanda tangan digital pada kunci rahasianya sendiri, maka ia terpaksa menyimpan pasangan kunci publik dalam transaksi, berbeda dengan kunci publik pemiliknya. Ini adalah satu-satunya cara bagi penyerang untuk memasukkan data yang dipalsukan.

Mari kita asumsikan bahwa pemilik memiliki sepasang kunci tetap - pribadi dan publik. Biarkan data disertifikasi dengan tanda tangan digital menggunakan kunci rahasia dari pasangan ini, dan kunci publik ditunjukkan dalam transaksi. Mari kita asumsikan juga bahwa kunci publik ini sebelumnya telah dimasukkan ke dalam registri dan keasliannya telah diverifikasi secara andal. Kemudian pemalsuan akan ditunjukkan dengan fakta bahwa kunci publik dari transaksi tidak sesuai dengan kunci publik dari registri.

Mari kita lihat. Saat memproses data transaksi pertama pemilik, perlu dilakukan verifikasi keaslian kunci publik yang dimasukkan ke dalam registri. Untuk melakukan ini, baca kunci dari registri dan bandingkan dengan kunci publik sebenarnya dari pemilik dalam batas keamanan (area kekebalan relatif). Jika keaslian kunci telah dikonfirmasi dan kegigihannya dijamin pada saat penempatan, maka keaslian kunci dari transaksi berikutnya dapat dengan mudah dikonfirmasi/dibantah dengan membandingkannya dengan kunci dari registri. Dengan kata lain, kunci dari registri digunakan sebagai sampel referensi. Semua transaksi pemilik lainnya diproses dengan cara yang sama.

Transaksi disertifikasi dengan tanda tangan digital elektronik - di sinilah kunci rahasia diperlukan, dan bukan hanya satu, tetapi dua sekaligus - kunci layanan dan kunci dompet. Berkat penggunaan dua kunci rahasia, tingkat keamanan yang diperlukan terjamin - lagipula, kunci rahasia layanan dapat diketahui oleh pengguna lain, sedangkan kunci rahasia dompet hanya diketahui oleh pemilik pasangan kunci biasa. Kami menyebut tanda tangan dua kunci tersebut sebagai tanda tangan digital “konsolidasi”.

Verifikasi transaksi non-null dilakukan menggunakan dua kunci publik: dompet dan kunci layanan. Proses verifikasi dapat dibagi menjadi dua tahap utama: yang pertama adalah memeriksa intisari kunci publik dompet, dan yang kedua adalah memeriksa tanda tangan digital elektronik dari transaksi tersebut, yang merupakan konsolidasi yang sama yang dibentuk menggunakan dua kunci rahasia ( dompet dan layanan). Jika keabsahan tanda tangan digital sudah dipastikan, maka setelah verifikasi tambahan transaksi dimasukkan ke dalam register.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Sebuah pertanyaan logis mungkin muncul: bagaimana cara memeriksa apakah suatu transaksi termasuk dalam rantai tertentu dengan "root" dalam bentuk transaksi nol? Untuk itu, proses verifikasi dilengkapi dengan satu tahap lagi yaitu pemeriksaan konektivitas. Di sinilah kita memerlukan data dari dua kolom pertama, yang selama ini kita abaikan.

Bayangkan kita perlu memeriksa apakah transaksi No. 3 benar-benar terjadi setelah transaksi No. 2. Untuk melakukan ini, dengan menggunakan metode hashing gabungan, nilai fungsi hash dihitung untuk data dari bidang transaksi ketiga, keempat dan kelima No. Kemudian dilakukan penggabungan data dari kolom pertama transaksi No. 2 dan nilai gabungan fungsi hash yang diperoleh sebelumnya untuk data dari kolom ketiga, keempat dan kelima transaksi No. Semua ini juga dijalankan melalui dua fungsi hash SHA3 dan RIPEMD2. Jika nilai yang diterima cocok dengan data pada kolom kedua transaksi No. 256, maka pemeriksaan dilewati dan koneksi dikonfirmasi. Hal ini terlihat lebih jelas pada gambar di bawah ini.

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain
DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Secara umum, teknologi untuk menghasilkan dan memasukkan notifikasi ke dalam register terlihat persis seperti ini. Ilustrasi visual proses pembentukan rangkaian notifikasi disajikan pada gambar berikut:

DPKI: menghilangkan kekurangan PKI terpusat dengan menggunakan blockchain

Dalam teks ini, kami tidak akan membahas detailnya, yang tidak diragukan lagi ada, dan kembali membahas gagasan infrastruktur kunci publik yang terdesentralisasi.

Jadi, karena pemohon sendiri yang mengajukan permohonan pendaftaran notifikasi, yang disimpan bukan di database CA, tetapi di registry, maka komponen arsitektur utama DPKI harus diperhatikan:

1. Daftar Notifikasi Valid (RDN).
2. Daftar pemberitahuan yang dicabut (RON).
3. Daftar pemberitahuan yang ditangguhkan (RPN).

Informasi tentang kunci publik disimpan di RDN/RON/RPN dalam bentuk nilai fungsi hash. Perlu juga dicatat bahwa ini dapat berupa pendaftar yang berbeda, atau rantai yang berbeda, atau bahkan satu rantai sebagai bagian dari satu registri, ketika informasi tentang status kunci publik biasa (pencabutan, penangguhan, dll.) dimasukkan ke dalam bidang keempat dari struktur data dalam bentuk nilai kode yang sesuai. Ada banyak pilihan berbeda untuk implementasi arsitektur DPKI, dan pilihan salah satu tergantung pada sejumlah faktor, misalnya kriteria optimasi seperti biaya memori jangka panjang untuk menyimpan kunci publik, dll.

Dengan demikian, DPKI mungkin menjadi, jika tidak lebih sederhana, setidaknya sebanding dengan solusi terpusat dalam hal kompleksitas arsitektur.

Pertanyaan utamanya tetap - Registri mana yang cocok untuk mengimplementasikan teknologi ini?

Persyaratan utama registri adalah kemampuan untuk menghasilkan transaksi jenis apa pun. Contoh buku besar yang paling terkenal adalah jaringan Bitcoin. Namun ketika menerapkan teknologi yang dijelaskan di atas, kesulitan tertentu muncul: keterbatasan bahasa skrip yang ada, kurangnya mekanisme yang diperlukan untuk memproses kumpulan data yang berubah-ubah, metode untuk menghasilkan transaksi jenis yang berubah-ubah, dan banyak lagi.

Kami di ENCRY mencoba menyelesaikan permasalahan yang dirumuskan di atas dan mengembangkan sebuah registry yang menurut kami memiliki beberapa keunggulan, yaitu:

  • mendukung beberapa jenis transaksi: dapat menukar aset (yaitu, melakukan transaksi keuangan) dan membuat transaksi dengan struktur yang sewenang-wenang,
  • pengembang memiliki akses ke bahasa pemrograman berpemilik PrismLang, yang memberikan fleksibilitas yang diperlukan saat memecahkan berbagai masalah teknologi,
  • mekanisme untuk memproses kumpulan data arbitrer disediakan.

Jika kita mengambil pendekatan yang disederhanakan, maka urutan tindakan berikut akan terjadi:

  1. Pemohon mendaftar ke DPKI dan menerima dompet digital. Alamat dompet adalah nilai hash dari kunci publik dompet. Kunci pribadi dompet hanya diketahui oleh pemohon.
  2. Subjek yang terdaftar diberikan akses ke kunci rahasia layanan.
  3. Subjek menghasilkan transaksi nol dan memverifikasinya dengan tanda tangan digital menggunakan kunci rahasia dompet.
  4. Jika transaksi selain nol terjadi, transaksi tersebut disertifikasi dengan tanda tangan digital elektronik menggunakan dua kunci rahasia: dompet dan kunci layanan.
  5. Subjek mengirimkan transaksi ke pool.
  6. Node jaringan ENCRY membaca transaksi dari kumpulan dan memeriksa tanda tangan digital, serta konektivitas transaksi.
  7. Jika tanda tangan digital valid dan koneksi dikonfirmasi, maka transaksi disiapkan untuk dimasukkan ke dalam register.

Di sini registri bertindak sebagai database terdistribusi yang menyimpan informasi tentang notifikasi valid, dibatalkan, dan ditangguhkan.

Tentu saja, desentralisasi bukanlah obat mujarab. Persoalan mendasar autentikasi pengguna primer tidak hilang kemana-mana: jika saat ini verifikasi pemohon dilakukan oleh CR, maka di DPKI diusulkan untuk mendelegasikan verifikasi kepada anggota masyarakat, dan menggunakan motivasi finansial untuk merangsang kegiatan. Teknologi verifikasi sumber terbuka sudah terkenal. Efektivitas verifikasi tersebut telah dikonfirmasi dalam praktiknya. Mari kita mengingat kembali sejumlah investigasi penting yang dilakukan oleh publikasi online Bellingcat.

Namun secara umum, gambaran berikut muncul: DPKI adalah peluang untuk memperbaiki, jika tidak seluruh, banyak kekurangan PKI yang terpusat.

Berlangganan Habrablog kami, kami berencana untuk terus aktif meliput penelitian dan pengembangan kami, dan mengikuti Twitter, jika tidak ingin ketinggalan berita lainnya tentang proyek ENCRY.

Sumber: www.habr.com

Tambah komentar