DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Bukan rahsia lagi bahawa salah satu alat bantu yang biasa digunakan, tanpa perlindungan data dalam rangkaian terbuka adalah mustahil, adalah teknologi sijil digital. Walau bagaimanapun, bukan rahsia lagi bahawa kelemahan utama teknologi adalah kepercayaan tanpa syarat kepada pusat yang mengeluarkan sijil digital. Pengarah Teknologi dan Inovasi di ENCRY Andrey Chmora mencadangkan pendekatan baharu untuk penganjuran infrastruktur utama awam (Infrastruktur Utama Awam, PKI), yang akan membantu menghapuskan kekurangan semasa dan yang menggunakan teknologi lejar (chain) teragih. Tetapi perkara pertama dahulu.

Jika anda sudah biasa dengan cara infrastruktur kunci awam semasa anda berfungsi dan mengetahui kelemahan utamanya, anda boleh melangkau ke hadapan ke perkara yang kami cadangkan untuk diubah di bawah.

Apakah tandatangan dan sijil digital?Interaksi di Internet sentiasa melibatkan pemindahan data. Kita semua mempunyai minat untuk memastikan data dihantar dengan selamat. Tetapi apakah keselamatan? Perkhidmatan keselamatan yang paling dicari ialah kerahsiaan, integriti dan ketulenan. Untuk tujuan ini, kaedah kriptografi asimetri, atau kriptografi dengan kunci awam, sedang digunakan.

Mari kita mulakan dengan fakta bahawa untuk menggunakan kaedah ini, subjek interaksi mesti mempunyai dua kunci berpasangan individu - awam dan rahsia. Dengan bantuan mereka, perkhidmatan keselamatan yang kami nyatakan di atas disediakan.

Bagaimanakah kerahsiaan pemindahan maklumat dicapai? Sebelum menghantar data, pelanggan yang menghantar menyulitkan (mengubah secara kriptografi) data terbuka menggunakan kunci awam penerima, dan penerima menyahsulit teks sifir yang diterima menggunakan kunci rahsia berpasangan.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Bagaimanakah integriti dan ketulenan maklumat yang dihantar dicapai? Untuk menyelesaikan masalah ini, mekanisme lain dicipta. Data terbuka tidak disulitkan, tetapi hasil daripada menggunakan fungsi cincang kriptografi - imej "dimampatkan" bagi urutan data input - dihantar dalam bentuk yang disulitkan. Hasil pencincangan sedemikian dipanggil "cerna", dan ia disulitkan menggunakan kunci rahsia pelanggan pengirim ("saksi"). Hasil daripada penyulitan ringkasan, tandatangan digital diperolehi. Ia, bersama-sama dengan teks yang jelas, dihantar kepada pelanggan penerima (β€œpengesah”). Dia menyahsulit tandatangan digital pada kunci awam saksi dan membandingkannya dengan hasil penggunaan fungsi cincang kriptografi, yang dikira oleh pengesah secara bebas berdasarkan data terbuka yang diterima. Jika ia sepadan, ini menunjukkan bahawa data telah dihantar dalam bentuk yang tulen dan lengkap oleh pelanggan yang menghantar, dan tidak diubah suai oleh penyerang.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Kebanyakan sumber yang berfungsi dengan data peribadi dan maklumat pembayaran (bank, syarikat insurans, syarikat penerbangan, sistem pembayaran, serta portal kerajaan seperti perkhidmatan cukai) secara aktif menggunakan kaedah kriptografi asimetri.

Apakah kaitan sijil digital dengannya? Mudah sahaja. Kedua-dua proses pertama dan kedua melibatkan kunci awam, dan kerana ia memainkan peranan utama, adalah sangat penting untuk memastikan bahawa kunci itu benar-benar milik pengirim (saksi, dalam kes pengesahan tandatangan) atau penerima, dan bukan digantikan dengan kunci penyerang. Inilah sebabnya mengapa sijil digital wujud untuk memastikan ketulenan dan integriti kunci awam.

Nota: ketulenan dan integriti kunci awam disahkan dengan cara yang sama seperti ketulenan dan integriti data awam, iaitu, menggunakan tandatangan digital elektronik (EDS).
Dari mana datangnya sijil digital?Pihak berkuasa pensijilan yang dipercayai, atau Pihak Berkuasa Pensijilan (CA), bertanggungjawab untuk mengeluarkan dan mengekalkan sijil digital. Pemohon meminta pengeluaran sijil daripada CA, menjalani pengenalan di Pusat Pendaftaran (CR) dan menerima sijil daripada CA. CA menjamin bahawa kunci awam daripada sijil adalah milik entiti yang mana ia dikeluarkan.

Jika anda tidak mengesahkan ketulenan kunci awam, maka penyerang semasa pemindahan/penyimpanan kunci ini boleh menggantikannya dengan kunci miliknya. Jika penggantian telah berlaku, penyerang akan dapat menyahsulit semua yang dihantar oleh pelanggan penghantar kepada pelanggan penerima, atau menukar data terbuka mengikut budi bicaranya sendiri.

Sijil digital digunakan di mana-mana sahaja kriptografi asimetri tersedia. Salah satu sijil digital yang paling biasa ialah sijil SSL untuk komunikasi selamat melalui protokol HTTPS. Beratus-ratus syarikat yang berdaftar dalam pelbagai bidang kuasa terlibat dalam mengeluarkan sijil SSL. Bahagian utama jatuh pada lima hingga sepuluh pusat dipercayai besar: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave.

CA dan CR ialah komponen PKI, yang juga termasuk:

  • Buka direktori – pangkalan data awam yang menyediakan storan selamat bagi sijil digital.
  • Senarai sijil yang dibatalkan – pangkalan data awam yang menyediakan storan selamat bagi sijil digital kunci awam yang dibatalkan (contohnya, disebabkan oleh kompromi kunci persendirian berpasangan). Subjek infrastruktur boleh mengakses pangkalan data ini secara bebas, atau mereka boleh menggunakan Protokol Status Pensijilan Dalam Talian (OCSP) khusus, yang memudahkan proses pengesahan.
  • Pengguna sijil – subjek PKI yang diservis yang telah menandatangani perjanjian pengguna dengan CA dan mengesahkan tandatangan digital dan/atau menyulitkan data berdasarkan kunci awam daripada sijil.
  • Pengikut – berkhidmat kepada subjek PKI yang memiliki kunci rahsia yang dipasangkan dengan kunci awam daripada sijil, dan yang telah memeterai perjanjian pelanggan dengan CA. Pelanggan boleh menjadi pengguna sijil secara serentak.

Oleh itu, entiti dipercayai infrastruktur kunci awam, yang termasuk CA, CR dan direktori terbuka, bertanggungjawab untuk:

1. Pengesahan ketulenan identiti pemohon.
2. Memprofilkan sijil kunci awam.
3. Mengeluarkan sijil kunci awam untuk pemohon yang identitinya telah disahkan dengan pasti.
4. Tukar status sijil kunci awam.
5. Menyediakan maklumat tentang status semasa sijil kunci awam.

Keburukan PKI, apakah itu?Kelemahan asas PKI ialah kehadiran entiti yang dipercayai.
Pengguna mesti mempercayai CA dan CR tanpa syarat. Tetapi, seperti yang ditunjukkan oleh amalan, kepercayaan tanpa syarat penuh dengan akibat yang serius.

Sepanjang sepuluh tahun yang lalu, terdapat beberapa skandal besar dalam bidang ini yang berkaitan dengan kelemahan infrastruktur.

β€” pada tahun 2010, perisian hasad Stuxnet mula merebak dalam talian, ditandatangani menggunakan sijil digital yang dicuri daripada RealTek dan JMicron.

- Pada 2017, Google menuduh Symantec mengeluarkan sejumlah besar sijil yang dipalsukan. Pada masa itu, Symantec adalah salah satu CA terbesar dari segi jumlah pengeluaran. Dalam penyemak imbas Google Chrome 70, sokongan untuk sijil yang dikeluarkan oleh syarikat ini dan pusat gabungannya GeoTrust dan Thawte telah dihentikan sebelum 1 Disember 2017.

CA telah terjejas, dan akibatnya semua orang menderitaβ€”CA itu sendiri, serta pengguna dan pelanggan. Keyakinan terhadap infrastruktur telah terjejas. Selain itu, sijil digital mungkin disekat dalam konteks konflik politik, yang juga akan menjejaskan operasi banyak sumber. Inilah yang ditakuti beberapa tahun lalu dalam pentadbiran presiden Rusia, di mana pada 2016 mereka membincangkan kemungkinan mewujudkan pusat pensijilan negeri yang akan mengeluarkan sijil SSL ke tapak di RuNet. Keadaan semasa adalah sedemikian rupa sehingga portal negeri di Rusia menggunakan sijil digital yang dikeluarkan oleh syarikat Amerika Comodo atau Thawte (anak syarikat Symantec).

Terdapat satu lagi masalah - soalan pengesahan utama (authentication) pengguna. Bagaimana untuk mengenal pasti pengguna yang telah menghubungi CA dengan permintaan untuk mengeluarkan sijil digital tanpa hubungan peribadi secara langsung? Sekarang ini diselesaikan mengikut situasi bergantung pada keupayaan infrastruktur. Sesuatu diambil daripada daftar terbuka (contohnya, maklumat tentang entiti undang-undang yang meminta sijil); dalam kes di mana pemohon adalah individu, pejabat bank atau pejabat pos boleh digunakan, di mana identiti mereka disahkan menggunakan dokumen pengenalan, contohnya, pasport.

Masalah pemalsuan bukti kelayakan untuk tujuan penyamaran adalah perkara asas. Mari kita ambil perhatian bahawa tiada penyelesaian lengkap untuk masalah ini disebabkan oleh sebab teori maklumat: tanpa mempunyai maklumat yang boleh dipercayai secara priori, adalah mustahil untuk mengesahkan atau menafikan kesahihan subjek tertentu. Sebagai peraturan, untuk pengesahan adalah perlu untuk membentangkan satu set dokumen yang membuktikan identiti pemohon. Terdapat banyak kaedah pengesahan yang berbeza, tetapi tiada satu pun daripada mereka memberikan jaminan penuh keaslian dokumen. Sehubungan itu, kesahihan identiti pemohon juga tidak dapat dijamin.

Bagaimanakah kelemahan ini boleh dihapuskan?Jika masalah PKI dalam keadaan semasa boleh dijelaskan dengan pemusatan, maka adalah logik untuk mengandaikan bahawa desentralisasi akan membantu menghapuskan sebahagian kelemahan yang dikenal pasti.

Desentralisasi tidak membayangkan kehadiran entiti yang dipercayai - jika anda mencipta infrastruktur utama awam terdesentralisasi (Infrastruktur Kunci Awam Terdesentralisasi, DPKI), maka CA mahupun CR tidak diperlukan. Mari kita tinggalkan konsep sijil digital dan gunakan pendaftaran yang diedarkan untuk menyimpan maklumat tentang kunci awam. Dalam kes kami, kami memanggil daftar sebagai pangkalan data linear yang terdiri daripada rekod individu (blok) yang dipautkan menggunakan teknologi blockchain. Daripada sijil digital, kami akan memperkenalkan konsep "pemberitahuan".

Bagaimana proses menerima, mengesahkan dan membatalkan pemberitahuan akan kelihatan seperti dalam DPKI yang dicadangkan:

1. Setiap pemohon mengemukakan permohonan untuk pemberitahuan secara bebas dengan mengisi borang semasa pendaftaran, selepas itu dia membuat transaksi yang disimpan dalam kumpulan khusus.

2. Maklumat tentang kunci awam, bersama dengan butiran pemilik dan metadata lain, disimpan dalam pendaftaran yang diedarkan, dan bukan dalam sijil digital, yang mana pengeluarannya dalam PKI berpusat CA bertanggungjawab.

3. Pengesahan kesahihan identiti pemohon dilakukan selepas fakta oleh usaha bersama komuniti pengguna DPKI, dan bukan oleh CR.

4. Hanya pemilik pemberitahuan sedemikian boleh menukar status kunci awam.

5. Sesiapa sahaja boleh mengakses lejar yang diedarkan dan menyemak status semasa kunci awam.

Nota: Pengesahan komuniti terhadap identiti pemohon mungkin kelihatan tidak boleh dipercayai pada pandangan pertama. Tetapi kita harus ingat bahawa pada masa kini semua pengguna perkhidmatan digital tidak dapat tidak meninggalkan jejak digital, dan proses ini hanya akan terus mendapat momentum. Buka daftar elektronik entiti undang-undang, peta, pendigitalan imej rupa bumi, rangkaian sosial - semua ini adalah alat yang tersedia untuk umum. Ia telah berjaya digunakan semasa penyiasatan oleh kedua-dua wartawan dan agensi penguatkuasaan undang-undang. Sebagai contoh, sudah cukup untuk mengimbas kembali siasatan Bellingcat atau pasukan penyiasat bersama JIT, yang sedang mengkaji keadaan nahas pesawat Boeing Malaysia itu.

Jadi bagaimanakah infrastruktur utama awam yang terdesentralisasi berfungsi dalam amalan? Marilah kita memikirkan perihalan teknologi itu sendiri, yang kita dipatenkan pada 2018 dan kami berhak menganggapnya sebagai pengetahuan kami.

Bayangkan terdapat beberapa pemilik yang memiliki banyak kunci awam, di mana setiap kunci adalah transaksi tertentu yang disimpan dalam pendaftaran. Dengan ketiadaan CA, bagaimana anda boleh memahami bahawa semua kunci adalah milik pemilik tertentu ini? Untuk menyelesaikan masalah ini, transaksi sifar dibuat, yang mengandungi maklumat tentang pemilik dan dompetnya (dari mana komisen untuk meletakkan transaksi dalam pendaftaran didebitkan). Urus niaga nol ialah sejenis "sauh" yang mana transaksi berikut dengan data tentang kunci awam akan dilampirkan. Setiap transaksi sedemikian mengandungi struktur data khusus, atau dengan kata lain, pemberitahuan.

Pemberitahuan ialah set data berstruktur yang terdiri daripada medan berfungsi dan termasuk maklumat tentang kunci awam pemilik, yang kegigihannya dijamin dengan penempatan dalam salah satu rekod berkaitan pendaftaran yang diedarkan.

Soalan logik seterusnya ialah bagaimana transaksi sifar terbentuk? Transaksi batalβ€”seperti yang berikutnyaβ€”adalah pengagregatan enam medan data. Semasa pembentukan transaksi sifar, pasangan kunci dompet terlibat (kunci rahsia awam dan berpasangan). Sepasang kunci ini muncul pada masa pengguna mendaftarkan dompetnya, dari mana komisen untuk meletakkan transaksi sifar dalam pendaftaran dan, seterusnya, operasi dengan pemberitahuan akan didebitkan.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Seperti yang ditunjukkan dalam rajah, ringkasan kunci awam dompet dijana dengan menggunakan fungsi cincang SHA256 dan RIPEMD160 secara berurutan. Di sini RIPEMD160 bertanggungjawab untuk perwakilan padat data, lebarnya tidak melebihi 160 bit. Ini penting kerana pendaftaran bukan pangkalan data yang murah. Kunci awam itu sendiri dimasukkan dalam medan kelima. Medan pertama mengandungi data yang mewujudkan sambungan ke transaksi sebelumnya. Untuk transaksi sifar, medan ini tidak mengandungi apa-apa, yang membezakannya daripada transaksi berikutnya. Medan kedua ialah data untuk menyemak ketersambungan transaksi. Untuk ringkasnya, kami akan memanggil data dalam medan pertama dan kedua "pautan" dan "semak", masing-masing. Kandungan medan ini dijana oleh pencincangan berulang, seperti yang ditunjukkan dengan memautkan transaksi kedua dan ketiga dalam rajah di bawah.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Data daripada lima medan pertama diperakui oleh tandatangan elektronik, yang dijana menggunakan kunci rahsia dompet.

Itu sahaja, transaksi batal dihantar ke kumpulan dan selepas pengesahan berjaya dimasukkan ke dalam pendaftaran. Kini anda boleh "memautkan" transaksi berikut kepadanya. Mari kita pertimbangkan bagaimana urus niaga selain sifar terbentuk.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Perkara pertama yang mungkin menarik perhatian anda ialah banyaknya pasangan kunci. Sebagai tambahan kepada pasangan kunci dompet yang sudah biasa, pasangan kunci biasa dan perkhidmatan digunakan.

Kunci awam biasa adalah tujuan segala-galanya dimulakan. Kunci ini terlibat dalam pelbagai prosedur dan proses yang berlaku di dunia luar (perbankan dan transaksi lain, aliran dokumen, dll.). Sebagai contoh, kunci rahsia daripada pasangan biasa boleh digunakan untuk menjana tandatangan digital untuk pelbagai dokumen - pesanan pembayaran, dsb., dan kunci awam boleh digunakan untuk mengesahkan tandatangan digital ini dengan pelaksanaan arahan ini seterusnya, dengan syarat ia ianya sah.

Pasangan perkhidmatan dikeluarkan kepada subjek DPKI yang berdaftar. Nama pasangan ini sepadan dengan tujuannya. Ambil perhatian bahawa apabila membentuk/menyemak transaksi sifar, kunci perkhidmatan tidak digunakan.

Mari kita jelaskan tujuan kunci sekali lagi:

  1. Kunci dompet digunakan untuk menjana/mengesahkan kedua-dua transaksi batal dan sebarang transaksi bukan batal lain. Kunci persendirian dompet hanya diketahui oleh pemilik dompet itu, yang juga pemilik banyak kunci awam biasa.
  2. Kunci awam biasa adalah serupa dengan tujuan kunci awam yang mana sijil dikeluarkan dalam PKI berpusat.
  3. Pasangan kunci perkhidmatan adalah milik DPKI. Kunci rahsia dikeluarkan kepada entiti berdaftar dan digunakan apabila menjana tandatangan digital untuk transaksi (kecuali untuk transaksi sifar). Awam digunakan untuk mengesahkan tandatangan digital elektronik transaksi sebelum ia disiarkan dalam pendaftaran.

Oleh itu, terdapat dua kumpulan kunci. Yang pertama termasuk kunci perkhidmatan dan kunci dompet - ia hanya masuk akal dalam konteks DPKI. Kumpulan kedua termasuk kunci biasa - skopnya mungkin berbeza-beza dan ditentukan oleh tugas aplikasi di mana ia digunakan. Pada masa yang sama, DPKI memastikan integriti dan ketulenan kunci awam biasa.

Nota: Pasangan kunci perkhidmatan mungkin diketahui oleh entiti DPKI yang berbeza. Sebagai contoh, ia mungkin sama untuk semua orang. Atas sebab inilah apabila menjana tandatangan bagi setiap transaksi bukan sifar, dua kunci rahsia digunakan, salah satunya adalah kunci dompet - ia hanya diketahui oleh pemilik dompet, yang juga pemilik banyak dompet biasa. kunci awam. Semua kunci mempunyai makna tersendiri. Sebagai contoh, sentiasa mungkin untuk membuktikan bahawa transaksi telah dimasukkan ke dalam pendaftaran oleh subjek DPKI berdaftar, memandangkan tandatangan itu juga dijana pada kunci perkhidmatan rahsia. Dan tidak boleh ada penyalahgunaan, seperti serangan DOS, kerana pemilik membayar untuk setiap transaksi.

Semua urus niaga yang mengikut sifar satu dibentuk dengan cara yang sama: kunci awam (bukan dompet, seperti dalam kes transaksi sifar, tetapi daripada pasangan kunci biasa) dijalankan melalui dua fungsi cincang SHA256 dan RIPEMD160. Ini adalah bagaimana data medan ketiga dibentuk. Medan keempat mengandungi maklumat yang disertakan (contohnya, maklumat tentang status semasa, tarikh tamat tempoh, cap masa, pengecam algoritma kripto yang digunakan, dsb.). Medan kelima mengandungi kunci awam daripada pasangan kunci perkhidmatan. Dengan bantuannya, tandatangan digital kemudiannya akan diperiksa, jadi ia akan direplikasi. Marilah kita mewajarkan keperluan untuk pendekatan sedemikian.

Ingat bahawa transaksi dimasukkan ke dalam kolam dan disimpan di sana sehingga ia diproses. Menyimpan dalam kumpulan dikaitkan dengan risiko tertentu - data transaksi boleh dipalsukan. Pemilik memperakui data transaksi dengan tandatangan digital elektronik. Kunci awam untuk mengesahkan tandatangan digital ini ditunjukkan secara eksplisit dalam salah satu medan transaksi dan kemudiannya dimasukkan ke dalam pendaftaran. Keistimewaan pemprosesan transaksi adalah sedemikian rupa sehingga penyerang dapat menukar data mengikut budi bicaranya sendiri dan kemudian mengesahkannya menggunakan kunci rahsianya, dan menunjukkan kunci awam berpasangan untuk mengesahkan tandatangan digital dalam transaksi. Jika ketulenan dan integriti dipastikan secara eksklusif melalui tandatangan digital, maka pemalsuan sedemikian tidak akan disedari. Walau bagaimanapun, jika, sebagai tambahan kepada tandatangan digital, terdapat mekanisme tambahan yang memastikan pengarkiban dan ketekunan maklumat yang disimpan, maka pemalsuan boleh dikesan. Untuk melakukan ini, cukup untuk memasukkan kunci awam tulen pemilik ke dalam pendaftaran. Mari jelaskan cara ini berfungsi.

Biarkan penyerang memalsukan data transaksi. Dari sudut pandangan kunci dan tandatangan digital, pilihan berikut adalah mungkin:

1. Penyerang meletakkan kunci awamnya dalam transaksi manakala tandatangan digital pemilik kekal tidak berubah.
2. Penyerang mencipta tandatangan digital pada kunci peribadinya, tetapi membiarkan kunci awam pemilik tidak berubah.
3. Penyerang mencipta tandatangan digital pada kunci peribadinya dan meletakkan kunci awam berpasangan dalam transaksi.

Jelas sekali, pilihan 1 dan 2 tidak bermakna, kerana ia akan sentiasa dikesan semasa pengesahan tandatangan digital. Hanya pilihan 3 yang masuk akal, dan jika penyerang membentuk tandatangan digital pada kunci rahsianya sendiri, maka dia terpaksa menyimpan kunci awam berpasangan dalam transaksi, berbeza daripada kunci awam pemilik. Ini adalah satu-satunya cara untuk penyerang mengenakan data yang dipalsukan.

Mari kita anggap bahawa pemilik mempunyai sepasang kunci tetap - peribadi dan awam. Biarkan data disahkan oleh tandatangan digital menggunakan kunci rahsia daripada pasangan ini dan kunci awam ditunjukkan dalam urus niaga. Mari kita anggap juga bahawa kunci awam ini sebelum ini telah dimasukkan ke dalam pendaftaran dan kesahihannya telah disahkan dengan pasti. Kemudian pemalsuan akan ditunjukkan oleh fakta bahawa kunci awam daripada transaksi tidak sepadan dengan kunci awam daripada pendaftaran.

Mari singkirkan. Apabila memproses data transaksi pertama pemilik, adalah perlu untuk mengesahkan ketulenan kunci awam yang dimasukkan ke dalam pendaftaran. Untuk melakukan ini, baca kunci dari pendaftaran dan bandingkan dengan kunci awam sebenar pemilik dalam perimeter keselamatan (kawasan kebal relatif). Jika ketulenan kunci disahkan dan kegigihannya dijamin semasa penempatan, maka ketulenan kunci daripada transaksi seterusnya boleh disahkan/disangkal dengan mudah dengan membandingkannya dengan kunci dari pendaftaran. Dengan kata lain, kunci dari pendaftaran digunakan sebagai sampel rujukan. Semua transaksi pemilik lain diproses dengan cara yang sama.

Urus niaga itu diperakui oleh tandatangan digital elektronik - di sinilah kunci rahsia diperlukan, dan bukan satu, tetapi dua serentak - kunci perkhidmatan dan kunci dompet. Terima kasih kepada penggunaan dua kunci rahsia, tahap keselamatan yang diperlukan dipastikan - lagipun, kunci rahsia perkhidmatan boleh diketahui oleh pengguna lain, manakala kunci rahsia dompet hanya diketahui oleh pemilik pasangan kunci biasa. Kami memanggil tandatangan dua kunci sedemikian sebagai tandatangan digital "disatukan".

Pengesahan transaksi bukan nol dilakukan menggunakan dua kunci awam: dompet dan kunci perkhidmatan. Proses pengesahan boleh dibahagikan kepada dua peringkat utama: yang pertama ialah menyemak ringkasan kunci awam dompet, dan yang kedua ialah menyemak tandatangan digital elektronik transaksi, yang disatukan yang sama yang dibentuk menggunakan dua kunci rahsia ( dompet dan perkhidmatan). Sekiranya kesahihan tandatangan digital disahkan, maka selepas pengesahan tambahan transaksi dimasukkan ke dalam daftar.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Soalan logik mungkin timbul: bagaimana untuk menyemak sama ada transaksi tergolong dalam rantaian tertentu dengan "akar" dalam bentuk transaksi sifar? Untuk tujuan ini, proses pengesahan ditambah dengan satu lagi peringkat - pemeriksaan sambungan. Di sinilah kita akan memerlukan data daripada dua medan pertama, yang setakat ini kita abaikan.

Bayangkan kita perlu menyemak sama ada transaksi No. 3 sebenarnya datang selepas transaksi No. 2. Untuk melakukan ini, menggunakan kaedah pencincangan gabungan, nilai fungsi cincang dikira untuk data daripada medan ketiga, keempat dan kelima transaksi No. 2. Kemudian penyatuan data dari medan pertama transaksi No. 3 dan nilai fungsi hash gabungan yang diperoleh sebelum ini untuk data dari medan ketiga, keempat dan kelima transaksi No. 2 dilakukan. Semua ini juga dijalankan melalui dua fungsi cincang SHA256 dan RIPEMD160. Jika nilai yang diterima sepadan dengan data dalam medan kedua transaksi No. 2, maka semakan diluluskan dan sambungan disahkan. Ini ditunjukkan dengan lebih jelas dalam rajah di bawah.

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain
DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Secara umum, teknologi untuk menjana dan memasukkan pemberitahuan ke dalam daftar kelihatan betul-betul seperti ini. Ilustrasi visual proses membentuk rangkaian pemberitahuan dibentangkan dalam rajah berikut:

DPKI: menghapuskan kelemahan PKI berpusat menggunakan blockchain

Dalam teks ini, kami tidak akan memikirkan perincian, yang sudah pasti wujud, dan kembali membincangkan idea tentang infrastruktur utama awam yang terdesentralisasi.

Oleh itu, kerana pemohon sendiri mengemukakan permohonan untuk pendaftaran pemberitahuan, yang tidak disimpan dalam pangkalan data CA, tetapi dalam pendaftaran, komponen seni bina utama DPKI harus dipertimbangkan:

1. Daftar pemberitahuan sah (RDN).
2. Daftar pemberitahuan yang dibatalkan (RON).
3. Daftar pemberitahuan yang digantung (RPN).

Maklumat tentang kunci awam disimpan dalam RDN/RON/RPN dalam bentuk nilai fungsi cincang. Perlu juga diperhatikan bahawa ini boleh sama ada pendaftaran yang berbeza, atau rantaian yang berbeza, atau bahkan satu rantai sebagai sebahagian daripada satu pendaftaran, apabila maklumat tentang status kunci awam biasa (pembatalan, penggantungan, dll.) dimasukkan ke dalam medan keempat struktur data dalam bentuk nilai kod yang sepadan. Terdapat banyak pilihan yang berbeza untuk pelaksanaan seni bina DPKI, dan pilihan satu atau yang lain bergantung pada beberapa faktor, contohnya, kriteria pengoptimuman seperti kos memori jangka panjang untuk menyimpan kunci awam, dsb.

Oleh itu, DPKI mungkin berubah menjadi, jika tidak lebih mudah, maka sekurang-kurangnya setanding dengan penyelesaian terpusat dari segi kerumitan seni bina.

Persoalan utama kekal - Pendaftaran mana yang sesuai untuk melaksanakan teknologi?

Keperluan utama untuk pendaftaran ialah keupayaan untuk menjana transaksi dalam apa jua jenis. Contoh lejar yang paling terkenal ialah rangkaian Bitcoin. Tetapi apabila melaksanakan teknologi yang diterangkan di atas, kesukaran tertentu timbul: batasan bahasa skrip sedia ada, kekurangan mekanisme yang diperlukan untuk memproses set data sewenang-wenangnya, kaedah untuk menjana transaksi jenis sewenang-wenangnya, dan banyak lagi.

Kami di ENCRY cuba menyelesaikan masalah yang dirumuskan di atas dan membangunkan pendaftaran, yang, pada pendapat kami, mempunyai beberapa kelebihan, iaitu:

  • menyokong beberapa jenis urus niaga: ia boleh menukar aset (iaitu, melakukan transaksi kewangan) dan membuat urus niaga dengan struktur sewenang-wenangnya,
  • pembangun mempunyai akses kepada bahasa pengaturcaraan proprietari PrismLang, yang menyediakan fleksibiliti yang diperlukan apabila menyelesaikan pelbagai masalah teknologi,
  • mekanisme untuk memproses set data sewenang-wenangnya disediakan.

Jika kita mengambil pendekatan yang dipermudahkan, maka urutan tindakan berikut berlaku:

  1. Pemohon mendaftar dengan DPKI dan menerima dompet digital. Alamat dompet ialah nilai cincang kunci awam dompet. Kunci peribadi dompet hanya diketahui oleh pemohon.
  2. Subjek berdaftar diberi akses kepada kunci rahsia perkhidmatan.
  3. Subjek menjana transaksi sifar dan mengesahkannya dengan tandatangan digital menggunakan kunci rahsia dompet.
  4. Jika transaksi selain sifar dibentuk, ia diperakui oleh tandatangan digital elektronik menggunakan dua kunci rahsia: dompet dan satu perkhidmatan.
  5. Subjek menyerahkan transaksi kepada kumpulan.
  6. Nod rangkaian ENCRY membaca transaksi daripada kumpulan dan menyemak tandatangan digital, serta ketersambungan transaksi.
  7. Jika tandatangan digital adalah sah dan sambungan disahkan, maka ia menyediakan transaksi untuk kemasukan ke dalam daftar.

Di sini pendaftaran bertindak sebagai pangkalan data teragih yang menyimpan maklumat tentang pemberitahuan yang sah, dibatalkan dan digantung.

Sudah tentu, desentralisasi bukanlah ubat penawar. Masalah asas pengesahan pengguna utama tidak hilang di mana-mana: jika pada masa ini pengesahan pemohon dijalankan oleh CR, maka di DPKI dicadangkan untuk mewakilkan pengesahan kepada ahli komuniti, dan menggunakan motivasi kewangan untuk merangsang aktiviti. Teknologi pengesahan sumber terbuka terkenal. Keberkesanan pengesahan tersebut telah disahkan dalam amalan. Mari kita ingat sekali lagi beberapa penyiasatan berprofil tinggi oleh penerbitan dalam talian Bellingcat.

Tetapi secara umum, gambaran berikut muncul: DPKI adalah peluang untuk memperbaiki, jika tidak semua, maka banyak kekurangan PKI terpusat.

Langgan Habrablog kami, kami merancang untuk terus aktif meliputi penyelidikan dan pembangunan kami, dan mengikuti Twitter, jika anda tidak mahu terlepas berita lain tentang projek ENCRY.

Sumber: www.habr.com

Tambah komen