DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Nie je žiadnym tajomstvom, že jedným z bežne používaných pomocných nástrojov, bez ktorých je ochrana dát v otvorených sieťach nemožná, je technológia digitálnych certifikátov. Nie je však žiadnym tajomstvom, že hlavnou nevýhodou technológie je bezpodmienečná dôvera v centrá, ktoré vydávajú digitálne certifikáty. Riaditeľ pre technológie a inovácie v ENCRY Andrey Chmora navrhol nový prístup k organizovaniu infraštruktúra verejného kľúča (Infraštruktúra verejného kľúča, PKI), ktorý pomôže odstrániť súčasné nedostatky a ktorý využíva technológiu distribuovanej účtovnej knihy (blockchain). Ale prvé veci.

Ak ste oboznámení s tým, ako vaša súčasná infraštruktúra verejných kľúčov funguje a poznáte jej hlavné nedostatky, môžete preskočiť na to, čo navrhujeme zmeniť nižšie.

Čo sú digitálne podpisy a certifikáty?Interakcia na internete vždy zahŕňa prenos údajov. Všetci máme záujem zabezpečiť bezpečný prenos údajov. Ale čo je bezpečnosť? Najvyhľadávanejšie bezpečnostné služby sú dôvernosť, integrita a autentickosť. Na tento účel sa v súčasnosti využívajú metódy asymetrickej kryptografie, prípadne kryptografie s verejným kľúčom.

Začnime tým, že na použitie týchto metód musia mať subjekty interakcie dva individuálne spárované kľúče – verejný a tajný. S ich pomocou sú poskytované bezpečnostné služby, ktoré sme spomínali vyššie.

Ako sa dosiahne dôvernosť prenosu informácií? Pred odoslaním dát odosielajúci účastník zašifruje (kryptograficky transformuje) otvorené dáta pomocou verejného kľúča príjemcu a príjemca dešifruje prijatý šifrový text pomocou spárovaného tajného kľúča.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Ako sa dosahuje integrita a autenticita prenášaných informácií? Na vyriešenie tohto problému bol vytvorený ďalší mechanizmus. Otvorené dáta nie sú zašifrované, ale výsledok použitia kryptografickej hašovacej funkcie – „stlačený“ obraz sekvencie vstupných dát – sa prenáša v zašifrovanej forme. Výsledok takéhoto hashovania sa nazýva „výpis“ a je zašifrovaný pomocou tajného kľúča odosielajúceho účastníka („svedka“). V dôsledku zašifrovania súhrnu sa získa digitálny podpis. Spolu s čistým textom sa odošle prijímajúcemu účastníkovi („overovateľ“). Dešifruje digitálny podpis na verejnom kľúči svedka a porovná ho s výsledkom použitia kryptografickej hašovacej funkcie, ktorú overovateľ vypočítava nezávisle na základe prijatých otvorených údajov. Ak sa zhodujú, znamená to, že údaje boli odoslané v autentickej a úplnej forme odosielajúcim účastníkom a neboli upravené útočníkom.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Väčšina zdrojov, ktoré pracujú s osobnými údajmi a informáciami o platbách (banky, poisťovne, letecké spoločnosti, platobné systémy, ale aj vládne portály ako daňová služba) aktívne využívajú metódy asymetrickej kryptografie.

Čo s tým má digitálny certifikát? Je to jednoduché. Prvý aj druhý proces zahŕňajú verejné kľúče, a keďže zohrávajú ústrednú úlohu, je veľmi dôležité zabezpečiť, aby kľúče skutočne patrili odosielateľovi (v prípade overenia podpisu svedkovi) alebo príjemcovi a neboli nahradené kľúčmi útočníkov. To je dôvod, prečo existujú digitálne certifikáty na zabezpečenie pravosti a integrity verejného kľúča.

Poznámka: Autentickosť a integrita verejného kľúča sa potvrdzuje presne rovnakým spôsobom ako pravosť a integrita verejných údajov, teda pomocou elektronického digitálneho podpisu (EDS).
Odkiaľ pochádzajú digitálne certifikáty?Dôveryhodné certifikačné autority alebo certifikačné autority (CA) sú zodpovedné za vydávanie a udržiavanie digitálnych certifikátov. Žiadateľ požiada o vydanie certifikátu od CA, podrobí sa identifikácii v Registračnom centre (CR) a dostane certifikát od CA. CA garantuje, že verejný kľúč z certifikátu patrí presne tomu subjektu, pre ktorý bol vydaný.

Ak nepotvrdíte pravosť verejného kľúča, potom ho môže útočník počas prenosu/ukladania tohto kľúča nahradiť vlastným. Ak k zámene došlo, útočník bude môcť dešifrovať všetko, čo odosielajúci účastník odovzdá prijímajúcemu účastníkovi, alebo zmeniť otvorené dáta podľa vlastného uváženia.

Digitálne certifikáty sa používajú všade tam, kde je dostupná asymetrická kryptografia. Jedným z najbežnejších digitálnych certifikátov sú certifikáty SSL pre zabezpečenú komunikáciu cez protokol HTTPS. Na vydávaní certifikátov SSL sa podieľajú stovky spoločností registrovaných v rôznych jurisdikciách. Hlavný podiel pripadá na päť až desať veľkých dôveryhodných centier: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave.

CA a CR sú súčasťou PKI, ktorá tiež zahŕňa:

  • Otvorte adresár – verejná databáza, ktorá poskytuje bezpečné ukladanie digitálnych certifikátov.
  • Zoznam zrušených certifikátov – verejnú databázu, ktorá poskytuje bezpečné ukladanie digitálnych certifikátov zrušených verejných kľúčov (napríklad z dôvodu kompromitácie spárovaného súkromného kľúča). Subjekty infraštruktúry môžu k tejto databáze pristupovať samostatne alebo môžu využiť špecializovaný protokol OCSP (Online Certification Status Protocol), ktorý zjednodušuje proces overovania.
  • Používatelia certifikátov – obsluhované subjekty PKI, ktoré uzatvorili používateľskú zmluvu s CA a overujú digitálny podpis a/alebo šifrujú údaje na základe verejného kľúča z certifikátu.
  • nasledovníci – obsluhovali subjekty PKI, ktoré vlastnia tajný kľúč spárovaný s verejným kľúčom z certifikátu a ktoré uzavreli účastnícku zmluvu s CA. Predplatiteľ môže byť súčasne užívateľom certifikátu.

Dôveryhodné entity infraštruktúry verejného kľúča, ktoré zahŕňajú CA, CR a otvorené adresáre, sú teda zodpovedné za:

1. Overenie pravosti totožnosti žiadateľa.
2. Profilovanie certifikátu verejného kľúča.
3. Vydanie certifikátu verejného kľúča pre žiadateľa, ktorého identita bola spoľahlivo potvrdená.
4. Zmeňte stav certifikátu verejného kľúča.
5. Poskytnutie informácií o aktuálnom stave certifikátu verejného kľúča.

Nevýhody PKI, aké sú?Základnou chybou PKI je prítomnosť dôveryhodných subjektov.
Používatelia musia bezpodmienečne dôverovať CA a CR. Ako však ukazuje prax, bezpodmienečná dôvera je plná vážnych následkov.

Za posledných desať rokov došlo v tejto oblasti k niekoľkým veľkým škandálom súvisiacim so zraniteľnosťou infraštruktúry.

— v roku 2010 sa malvér Stuxnet začal šíriť online, podpísaný pomocou ukradnutých digitálnych certifikátov od spoločností RealTek a JMicron.

- V roku 2017 Google obvinil Symantec z vydávania veľkého množstva sfalšovaných certifikátov. Symantec bol v tom čase jednou z najväčších CA z hľadiska objemu výroby. V prehliadači Google Chrome 70 bola podpora certifikátov vydaných touto spoločnosťou a jej pridruženými centrami GeoTrust a Thawte zastavená pred 1. decembrom 2017.

CA boli kompromitované a v dôsledku toho trpeli všetci – samotné CA, ako aj používatelia a predplatitelia. Dôvera v infraštruktúru bola narušená. Okrem toho môžu byť digitálne certifikáty zablokované v kontexte politických konfliktov, čo tiež ovplyvní fungovanie mnohých zdrojov. Presne toho sa pred niekoľkými rokmi obávali v ruskej prezidentskej administratíve, kde v roku 2016 diskutovali o možnosti vytvorenia štátneho certifikačného centra, ktoré by vydávalo SSL certifikáty stránkam na RuNet. Súčasný stav je taký, že aj štátne portály v Rusku použitý digitálnych certifikátov vydávaných americkými spoločnosťami Comodo alebo Thawte (dcérska spoločnosť Symantecu).

Je tu ďalší problém - otázka primárna autentifikácia (autentifikácia) používateľov. Ako identifikovať používateľa, ktorý kontaktoval CA so žiadosťou o vydanie digitálneho certifikátu bez priameho osobného kontaktu? Teraz sa to rieši situačne v závislosti od možností infraštruktúry. Niečo sa preberá z otvorených registrov (napríklad informácie o právnických osobách žiadajúcich o certifikáty); v prípadoch, keď sú žiadateľmi fyzické osoby, možno použiť bankové úrady alebo pošty, kde sa ich identita potvrdzuje pomocou identifikačných dokladov, napríklad pasu.

Problém falšovania poverení za účelom odcudzenia identity je zásadný. Všimnime si, že z informačno-teoretických dôvodov neexistuje úplné riešenie tohto problému: bez a priori spoľahlivých informácií nie je možné potvrdiť alebo vyvrátiť autenticitu konkrétneho subjektu. Na overenie je spravidla potrebné predložiť súbor dokladov preukazujúcich totožnosť žiadateľa. Existuje mnoho rôznych metód overovania, ale žiadna z nich neposkytuje plnú záruku pravosti dokumentov. V dôsledku toho nemožno zaručiť ani pravosť totožnosti žiadateľa.

Ako sa dajú tieto nedostatky odstrániť?Ak sa problémy PKI v súčasnom stave dajú vysvetliť centralizáciou, potom je logické predpokladať, že decentralizácia by pomohla čiastočne odstrániť zistené nedostatky.

Decentralizácia neznamená prítomnosť dôveryhodných subjektov - ak vytvoríte decentralizovanú infraštruktúru verejného kľúča (Decentralizovaná infraštruktúra verejného kľúča, DPKI), potom nie sú potrebné CA ani CR. Zanechajme koncept digitálneho certifikátu a na ukladanie informácií o verejných kľúčoch využívajme distribuovaný register. Register v našom prípade nazývame lineárna databáza pozostávajúca z jednotlivých záznamov (blokov) prepojených pomocou technológie blockchain. Namiesto digitálneho certifikátu zavedieme pojem „notifikácia“.

Ako bude proces prijímania, overovania a rušenia upozornení vyzerať v navrhovanom DPKI:

1. Každý žiadateľ podáva žiadosť o notifikáciu samostatne vyplnením formulára pri registrácii, následne vytvorí transakciu, ktorá je uložená v špecializovanom poole.

2. Informácie o verejnom kľúči spolu s podrobnosťami o vlastníkovi a ďalšími metadátami sú uložené v distribuovanom registri, a nie v digitálnom certifikáte, za vydanie ktorého v centralizovanom PKI zodpovedá CA.

3. Overenie pravosti identity žiadateľa sa vykonáva dodatočne spoločným úsilím komunity užívateľov DPKI, a nie ČR.

4. Stav verejného kľúča môže zmeniť iba vlastník takéhoto oznámenia.

5. Ktokoľvek môže pristupovať k distribuovanej účtovnej knihe a kontrolovať aktuálny stav verejného kľúča.

Poznámka: Overenie totožnosti žiadateľa v rámci Spoločenstva sa môže na prvý pohľad zdať nespoľahlivé. Musíme si však uvedomiť, že v súčasnosti všetci používatelia digitálnych služieb nevyhnutne zanechávajú digitálnu stopu a tento proces bude naďalej naberať na intenzite. Otvorené elektronické registre právnických osôb, mapy, digitalizácia záberov terénu, sociálne siete – to všetko sú verejne dostupné nástroje. Už ich úspešne využívajú pri vyšetrovaní novinári aj orgány činné v trestnom konaní. Stačí si spomenúť napríklad na vyšetrovanie Bellingcatu či spoločného vyšetrovacieho tímu JIT, ktorý študuje okolnosti pádu malajzijského boeingu.

Ako by teda v praxi fungovala decentralizovaná infraštruktúra verejného kľúča? Zastavme sa pri popise samotnej technológie, ktorú sme patentovaný v roku 2018 a právom to považujeme za naše know-how.

Predstavte si, že existuje nejaký vlastník, ktorý vlastní veľa verejných kľúčov, pričom každý kľúč predstavuje určitú transakciu, ktorá je uložená v registri. Ak neexistuje CA, ako môžete pochopiť, že všetky kľúče patria tomuto konkrétnemu vlastníkovi? Na vyriešenie tohto problému sa vytvorí nulová transakcia, ktorá obsahuje informácie o majiteľovi a jeho peňaženke (z ktorej sa odpočítava provízia za umiestnenie transakcie do registra). Nulová transakcia je akousi „kotvou“, ku ktorej budú pripojené nasledujúce transakcie s údajmi o verejných kľúčoch. Každá takáto transakcia obsahuje špecializovanú dátovú štruktúru, alebo inými slovami, oznámenie.

Notifikácia je štruktúrovaný súbor údajov pozostávajúci z funkčných polí a zahŕňajúcich informácie o verejnom kľúči vlastníka, ktorých trvalosť je zaručená umiestnením v jednom z pridružených záznamov distribuovaného registra.

Ďalšou logickou otázkou je, ako sa vytvorí nulová transakcia? Nulová transakcia – podobne ako následné – je agregáciou šiestich dátových polí. Pri vytváraní nulovej transakcie je zapojený pár kľúčov peňaženky (verejný a párový tajný kľúč). Táto dvojica kľúčov sa objaví v momente, keď používateľ zaregistruje svoju peňaženku, z ktorej sa bude odpisovať provízia za umiestnenie nulovej transakcie do registra a následne operácie s notifikáciami.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Ako je znázornené na obrázku, súhrn verejného kľúča peňaženky sa generuje postupnou aplikáciou hašovacích funkcií SHA256 a RIPEMD160. Tu je RIPEMD160 zodpovedný za kompaktnú reprezentáciu dát, ktorých šírka nepresahuje 160 bitov. Je to dôležité, pretože register nie je lacná databáza. Samotný verejný kľúč sa zadáva do piateho poľa. Prvé pole obsahuje údaje, ktoré vytvárajú spojenie s predchádzajúcou transakciou. V prípade nulovej transakcie toto pole neobsahuje nič, čím sa odlišuje od nasledujúcich transakcií. Druhé pole sú údaje na kontrolu konektivity transakcií. Pre stručnosť budeme údaje v prvom a druhom poli nazývať „odkaz“ a „kontrola“. Obsah týchto polí je generovaný iteračným hašovaním, ako ukazuje prepojenie druhej a tretej transakcie na obrázku nižšie.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Údaje z prvých piatich polí sú certifikované elektronickým podpisom, ktorý sa generuje pomocou tajného kľúča peňaženky.

To je všetko, nulová transakcia sa odošle do fondu a po úspešnom overení sa zapíše do registra. Teraz s ním môžete „prepojiť“ nasledujúce transakcie. Pozrime sa, ako sa tvoria transakcie iné ako nula.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Prvá vec, ktorá vás pravdepodobne zaujala, je množstvo kľúčových párov. Okrem už známeho páru kľúčov peňaženky sa používajú páry obyčajných a servisných kľúčov.

Všetko bolo spustené kvôli obyčajnému verejnému kľúču. Tento kľúč sa podieľa na rôznych postupoch a procesoch, ktoré sa odohrávajú vo vonkajšom svete (bankové a iné transakcie, tok dokumentov atď.). Napríklad tajný kľúč z obyčajného páru je možné použiť na generovanie digitálnych podpisov pre rôzne dokumenty – platobné príkazy a pod., a verejný kľúč na overenie tohto digitálneho podpisu s následným vykonaním týchto pokynov za predpokladu, že je platné.

Servisný pár sa vydáva registrovanému subjektu DPKI. Názov tohto páru zodpovedá jeho účelu. Upozorňujeme, že pri vytváraní/kontrole nulovej transakcie sa nepoužívajú servisné kľúče.

Opäť si ujasnime účel kľúčov:

  1. Kľúče peňaženky sa používajú na generovanie/overenie nulovej transakcie aj akejkoľvek inej transakcie, ktorá nie je nulová. Súkromný kľúč peňaženky pozná iba majiteľ peňaženky, ktorý je aj vlastníkom mnohých bežných verejných kľúčov.
  2. Bežný verejný kľúč má podobný účel ako verejný kľúč, pre ktorý je vydaný certifikát v centralizovanom PKI.
  3. Pár servisných kľúčov patrí DPKI. Tajný kľúč sa vydáva registrovaným subjektom a používa sa pri generovaní digitálnych podpisov pre transakcie (okrem nulových transakcií). Verejné sa používa na overenie elektronického digitálneho podpisu transakcie pred jej zaradením do registra.

Existujú teda dve skupiny kľúčov. Prvá zahŕňa servisné kľúče a kľúče od peňaženky – tie majú zmysel len v kontexte DPKI. Do druhej skupiny patria obyčajné kľúče – ich rozsah sa môže líšiť a je určený aplikačnými úlohami, v ktorých sa používajú. DPKI zároveň zabezpečuje integritu a autentickosť bežných verejných kľúčov.

Poznámka: Pár servisných kľúčov môže byť známy rôznym entitám DPKI. Napríklad to môže byť rovnaké pre všetkých. Práve z tohto dôvodu sa pri generovaní podpisu každej nenulovej transakcie používajú dva tajné kľúče, z ktorých jeden je kľúč k peňaženke - pozná ho iba majiteľ peňaženky, ktorý je aj vlastníkom mnohých bežných verejné kľúče. Všetky kľúče majú svoj vlastný význam. Vždy je napríklad možné preukázať, že transakciu zapísal do registra registrovaný subjekt DPKI, keďže podpis bol vygenerovaný aj na kľúč tajnej služby. A nemôže dôjsť k zneužitiu, ako sú útoky DOS, pretože majiteľ platí za každú transakciu.

Všetky transakcie, ktoré nasledujú po nule, sa tvoria podobným spôsobom: verejný kľúč (nie peňaženka, ako v prípade nulovej transakcie, ale z obyčajného páru kľúčov) je spustený cez dve hashovacie funkcie SHA256 a RIPEMD160. Takto sa tvoria údaje tretieho poľa. Štvrté pole obsahuje sprievodné informácie (napríklad informácie o aktuálnom stave, dátumoch expirácie, časovej pečiatke, identifikátoroch použitých krypto-algoritmov atď.). Piate pole obsahuje verejný kľúč z páru servisných kľúčov. S jeho pomocou sa následne skontroluje digitálny podpis, takže dôjde k jeho replikácii. Zdôvodnime potrebu takéhoto prístupu.

Pripomeňme si, že transakcia sa zadá do skupiny a tam sa uloží, kým sa nespracuje. Ukladanie do poolu je spojené s určitým rizikom – údaje o transakciách môžu byť sfalšované. Majiteľ potvrdí údaje o transakcii elektronickým digitálnym podpisom. Verejný kľúč na overenie tohto digitálneho podpisu je výslovne uvedený v jednom z polí transakcie a následne je zapísaný do registra. Zvláštnosti spracovania transakcií sú také, že útočník je schopný zmeniť údaje podľa vlastného uváženia a následne ich overiť pomocou svojho tajného kľúča a uviesť spárovaný verejný kľúč na overenie digitálneho podpisu v transakcii. Ak je autenticita a integrita zabezpečená výlučne digitálnym podpisom, potom takéto falšovanie zostane nepovšimnuté. Ak však okrem digitálneho podpisu existuje aj ďalší mechanizmus, ktorý zabezpečuje archiváciu a uchovávanie uložených informácií, potom je možné falšovanie odhaliť. Na to stačí zadať skutočný verejný kľúč vlastníka do registra. Poďme si vysvetliť, ako to funguje.

Nechajte útočníka sfalšovať údaje o transakciách. Z hľadiska kľúčov a digitálnych podpisov sú možné tieto možnosti:

1. Útočník vloží svoj verejný kľúč do transakcie, pričom digitálny podpis vlastníka zostane nezmenený.
2. Útočník vytvorí digitálny podpis na svojom súkromnom kľúči, ale ponechá verejný kľúč vlastníka nezmenený.
3. Útočník vytvorí digitálny podpis na svojom súkromnom kľúči a vloží do transakcie spárovaný verejný kľúč.

Je zrejmé, že možnosti 1 a 2 sú bezvýznamné, pretože budú vždy zistené počas overovania digitálneho podpisu. Iba možnosť 3 dáva zmysel a ak útočník vytvorí digitálny podpis na svojom vlastnom tajnom kľúči, potom je nútený v transakcii uložiť spárovaný verejný kľúč, ktorý sa líši od verejného kľúča vlastníka. Toto je jediný spôsob, ako môže útočník uložiť sfalšované údaje.

Predpokladajme, že vlastník má pevne stanovený pár kľúčov – súkromný a verejný. Nechajte údaje certifikovať digitálnym podpisom pomocou tajného kľúča z tohto páru a verejný kľúč je uvedený v transakcii. Predpokladajme tiež, že tento verejný kľúč bol predtým zadaný do registra a jeho pravosť bola spoľahlivo overená. Potom bude falzifikát indikovaný skutočnosťou, že verejný kľúč z transakcie nezodpovedá verejnému kľúču z registra.

Pozrime sa na to. Pri spracovaní úplne prvých transakčných údajov vlastníka je potrebné overiť pravosť verejného kľúča zapísaného do registra. Ak to chcete urobiť, prečítajte si kľúč z registra a porovnajte ho so skutočným verejným kľúčom vlastníka v rámci bezpečnostného perimetra (oblasť relatívnej nezraniteľnosti). Ak je pravosť kľúča potvrdená a je zaručená jeho stálosť pri umiestnení, potom je možné pravosť kľúča z následnej transakcie jednoducho potvrdiť/vyvrátiť porovnaním s kľúčom z registra. Inými slovami, kľúč z registra sa používa ako referenčná vzorka. Všetky ostatné transakcie vlastníka sú spracované podobne.

Transakcia je certifikovaná elektronickým digitálnym podpisom - tu sú potrebné tajné kľúče, a nie jeden, ale dva naraz - servisný kľúč a kľúč od peňaženky. Vďaka použitiu dvoch tajných kľúčov je zabezpečená potrebná úroveň bezpečnosti - veď tajný kľúč služby môžu poznať iní používatelia, zatiaľ čo tajný kľúč peňaženky pozná iba majiteľ bežného páru kľúčov. Takýto dvojkľúčový podpis sme nazvali „konsolidovaný“ digitálny podpis.

Overenie nenulových transakcií sa vykonáva pomocou dvoch verejných kľúčov: peňaženky a servisného kľúča. Proces overovania možno rozdeliť do dvoch hlavných etáp: prvou je kontrola súhrnu verejného kľúča peňaženky a druhou je kontrola elektronického digitálneho podpisu transakcie, rovnakého konsolidovaného, ​​ktorý bol vytvorený pomocou dvoch tajných kľúčov ( peňaženka a servis). Ak sa potvrdí platnosť digitálneho podpisu, po dodatočnom overení sa transakcia zapíše do registra.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Môže nastať logická otázka: ako skontrolovať, či transakcia patrí do konkrétneho reťazca s „koreňom“ vo forme nulovej transakcie? Na tento účel je proces overovania doplnený o jednu etapu - kontrolu konektivity. Tu budeme potrebovať údaje z prvých dvoch polí, ktoré sme doteraz ignorovali.

Predstavme si, že potrebujeme skontrolovať, či transakcia č. 3 skutočne nasleduje po transakcii č. 2. Na tento účel sa pomocou kombinovanej hašovacej metódy vypočíta hodnota hašovacej funkcie pre údaje z tretieho, štvrtého a piateho poľa transakcie č. 2. Potom sa vykoná zreťazenie dát z prvého poľa transakcie č. 3 a predtým získanej hodnoty kombinovanej hašovacej funkcie pre dáta z tretieho, štvrtého a piateho poľa transakcie č. 2. To všetko prebieha aj cez dve hašovacie funkcie SHA256 a RIPEMD160. Ak sa prijatá hodnota zhoduje s údajmi v druhom poli transakcie č. 2, kontrola prebehne a spojenie je potvrdené. To je jasnejšie znázornené na obrázkoch nižšie.

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu
DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

Vo všeobecnosti technológia generovania a zadávania oznámenia do registra vyzerá presne takto. Vizuálna ilustrácia procesu vytvárania reťazca upozornení je uvedená na nasledujúcom obrázku:

DPKI: odstránenie nedostatkov centralizovaného PKI pomocou blockchainu

V tomto texte sa nebudeme zaoberať detailmi, ktoré nepochybne existujú, a vrátime sa k diskusii o samotnej myšlienke decentralizovanej infraštruktúry verejného kľúča.

Keďže žiadateľ sám podáva žiadosť o registráciu oznámení, ktoré nie sú uložené v databáze CA, ale v registri, mali by sa zvážiť hlavné architektonické komponenty DPKI:

1. Register platných oznámení (RDN).
2. Register odvolaných oznámení (RON).
3. Register pozastavených oznámení (RPN).

Informácie o verejných kľúčoch sú uložené v RDN/RON/RPN vo forme hodnôt hashovacej funkcie. Za zmienku tiež stojí, že môže ísť buď o rôzne registre, alebo o rôzne reťazce, alebo dokonca o jeden reťazec ako súčasť jedného registra, keď sa do registra zapíše informácia o stave bežného verejného kľúča (zrušenie, pozastavenie atď.). štvrté pole dátovej štruktúry vo forme zodpovedajúcej hodnoty kódu. Existuje veľa rôznych možností pre architektonickú implementáciu DPKI a výber jedného alebo druhého závisí od mnohých faktorov, napríklad takých optimalizačných kritérií, ako sú náklady na dlhodobú pamäť na ukladanie verejných kľúčov atď.

DPKI sa teda môže ukázať, ak nie jednoduchšie, tak aspoň porovnateľné s centralizovaným riešením z hľadiska architektonickej zložitosti.

Hlavná otázka zostáva - Ktorý register je vhodný na implementáciu technológie?

Hlavnou požiadavkou na register je schopnosť generovať transakcie akéhokoľvek typu. Najznámejším príkladom účtovnej knihy je bitcoinová sieť. Pri implementácii vyššie opísanej technológie však vznikajú určité ťažkosti: obmedzenia existujúceho skriptovacieho jazyka, nedostatok potrebných mechanizmov na spracovanie ľubovoľných súborov údajov, metódy na generovanie transakcií ľubovoľného typu a oveľa viac.

V ENCRY sme sa pokúsili vyriešiť vyššie formulované problémy a vyvinuli sme register, ktorý má podľa nášho názoru množstvo výhod, a to:

  • podporuje niekoľko typov transakcií: môže vymieňať aktíva (to znamená vykonávať finančné transakcie) a vytvárať transakcie s ľubovoľnou štruktúrou,
  • vývojári majú prístup k proprietárnemu programovaciemu jazyku PrismLang, ktorý poskytuje potrebnú flexibilitu pri riešení rôznych technologických problémov,
  • poskytuje sa mechanizmus na spracovanie ľubovoľných súborov údajov.

Ak použijeme zjednodušený prístup, vykoná sa nasledujúca postupnosť akcií:

  1. Žiadateľ sa zaregistruje v DPKI a dostane digitálnu peňaženku. Adresa peňaženky je hash hodnota verejného kľúča peňaženky. Súkromný kľúč peňaženky pozná iba žiadateľ.
  2. Registrovaný subjekt dostane prístup k tajnému kľúču služby.
  3. Subjekt vygeneruje nulovú transakciu a overí ju digitálnym podpisom pomocou tajného kľúča peňaženky.
  4. Ak vznikne transakcia iná ako nula, je certifikovaná elektronickým digitálnym podpisom pomocou dvoch tajných kľúčov: peňaženkového a služobného.
  5. Subjekt odošle transakciu do fondu.
  6. Sieťový uzol ENCRY načíta transakciu z fondu a skontroluje digitálny podpis, ako aj konektivitu transakcie.
  7. Ak je digitálny podpis platný a spojenie je potvrdené, pripraví transakciu na zápis do registra.

Register tu funguje ako distribuovaná databáza, ktorá uchováva informácie o platných, zrušených a pozastavených oznámeniach.

Samozrejme, decentralizácia nie je všeliekom. Nikde nezmizne zásadný problém primárnej autentifikácie užívateľa: ak v súčasnosti overovanie žiadateľa vykonáva ČR, tak v DPKI sa navrhuje delegovať overovanie na členov komunity a na stimuláciu aktivity využiť finančnú motiváciu. Technológia overovania open source je dobre známa. Účinnosť takéhoto overovania sa potvrdila v praxi. Pripomeňme si opäť niekoľko významných vyšetrovaní online publikácie Bellingcat.

Vo všeobecnosti sa však ukazuje nasledujúci obrázok: DPKI je príležitosťou na nápravu, ak nie všetky, tak mnohé nedostatky centralizovaného PKI.

Prihláste sa na odber nášho Habrablogu, plánujeme aj naďalej aktívne pokrývať náš výskum a vývoj a sledovať Twitter, ak nechcete zmeškať ďalšie novinky o projektoch ENCRY.

Zdroj: hab.com

Pridať komentár