DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Ne paslaptis, kad viena iš dažniausiai naudojamų pagalbinių priemonių, be kurios neįmanoma duomenų apsauga atviruose tinkluose, yra skaitmeninių sertifikatų technologija. Tačiau ne paslaptis, kad pagrindinis technologijos trūkumas – besąlygiškas pasitikėjimas skaitmeninius sertifikatus išduodančiais centrais. ENCRY technologijų ir inovacijų direktorius Andrey Chmora pasiūlė naują požiūrį į organizavimą viešojo rakto infrastruktūra (Vieša pagrindinė infrastruktūra, PKI), kuris padės pašalinti esamus trūkumus ir kuriame naudojama paskirstytos knygos (blockchain) technologija. Bet pirmiausia pirmiausia.

Jei žinote, kaip veikia jūsų dabartinė viešojo rakto infrastruktūra, ir žinote pagrindinius jos trūkumus, galite pereiti prie to, ką siūlome pakeisti toliau.

Kas yra skaitmeniniai parašai ir sertifikatai?Sąveika internete visada apima duomenų perdavimą. Visi esame suinteresuoti užtikrinti, kad duomenys būtų perduodami saugiai. Bet kas yra saugumas? Labiausiai pageidaujamos saugos paslaugos yra konfidencialumas, vientisumas ir autentiškumas. Šiuo metu naudojami asimetrinės kriptografijos arba kriptografijos su viešuoju raktu metodai.

Pradėkime nuo to, kad norint naudoti šiuos metodus, sąveikos subjektai turi turėti du atskirus suporuotus raktus – viešąjį ir slaptąjį. Su jų pagalba teikiamos saugos paslaugos, kurias minėjome aukščiau.

Kaip pasiekiamas informacijos perdavimo konfidencialumas? Prieš siųsdamas duomenis, siunčiantis abonentas atvirus duomenis užšifruoja (kriptografiškai transformuoja) naudodamas gavėjo viešąjį raktą, o gavėjas gautą šifruotą tekstą iššifruoja naudodamas suporuotą slaptąjį raktą.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Kaip pasiekiamas perduodamos informacijos vientisumas ir autentiškumas? Šiai problemai išspręsti buvo sukurtas kitas mechanizmas. Atviri duomenys nėra šifruojami, tačiau kriptografinės maišos funkcijos taikymo rezultatas – „suspaustas“ įvesties duomenų sekos vaizdas – perduodamas šifruota forma. Tokio maišos rezultatas vadinamas „sutraukimu“ ir užšifruojamas naudojant slaptą siunčiančiojo abonento („liudytojo“) raktą. Užšifravus santrauką, gaunamas skaitmeninis parašas. Jis kartu su aiškiu tekstu perduodamas gavėjui abonentui („patikrintojui“). Jis iššifruoja liudytojo viešajame rakte esantį skaitmeninį parašą ir palygina jį su kriptografinės maišos funkcijos taikymo rezultatu, kurį tikrintojas apskaičiuoja savarankiškai pagal gautus atvirus duomenis. Jei jie sutampa, tai rodo, kad duomenis siunčiantis abonentas perdavė autentiška ir išsamia forma, o jų nepakeitė užpuolikas.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Dauguma išteklių, kurie dirba su asmens duomenimis ir mokėjimo informacija (bankai, draudimo bendrovės, oro linijos, mokėjimo sistemos, taip pat vyriausybės portalai, tokie kaip mokesčių tarnyba), aktyviai naudoja asimetrinės kriptografijos metodus.

Ką su juo turi skaitmeninis sertifikatas? Tai paprasta. Tiek pirmas, tiek antrasis procesai yra susiję su viešaisiais raktais, ir kadangi jie atlieka pagrindinį vaidmenį, labai svarbu užtikrinti, kad raktai iš tikrųjų priklausytų siuntėjui (liudytojui, parašo tikrinimo atveju) arba gavėjui, o ne pakeisti užpuolikų raktais. Štai kodėl egzistuoja skaitmeniniai sertifikatai, užtikrinantys viešojo rakto autentiškumą ir vientisumą.

Pastaba: viešojo rakto autentiškumas ir vientisumas patvirtinamas lygiai taip pat, kaip ir viešųjų duomenų autentiškumas ir vientisumas, tai yra naudojant elektroninį skaitmeninį parašą (EDS).
Iš kur atsiranda skaitmeniniai sertifikatai?Patikimos sertifikavimo institucijos arba sertifikavimo institucijos (CA) yra atsakingos už skaitmeninių sertifikatų išdavimą ir priežiūrą. Pareiškėjas prašo CA išduoti sertifikatą, identifikuojamas Registracijos centre (CR) ir iš CA gauna sertifikatą. CA garantuoja, kad sertifikato viešasis raktas priklauso būtent tam subjektui, kuriam jis buvo išduotas.

Jei nepatvirtinsite viešojo rakto autentiškumo, užpuolikas šio rakto perdavimo / saugojimo metu gali jį pakeisti savo. Jei pakeitimas įvyko, užpuolikas galės iššifruoti viską, ką siunčiantis abonentas perduoda priimančiam abonentui, arba pakeisti atvirus duomenis savo nuožiūra.

Skaitmeniniai sertifikatai naudojami visur, kur yra asimetrinė kriptografija. Vienas iš labiausiai paplitusių skaitmeninių sertifikatų yra SSL sertifikatai, skirti saugiam ryšiui HTTPS protokolu. Šimtai įmonių, registruotų įvairiose jurisdikcijose, dalyvauja išduodant SSL sertifikatus. Pagrindinė dalis tenka nuo penkių iki dešimties didelių patikimų centrų: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave.

CA ir CR yra PKI komponentai, kurie taip pat apima:

  • Atidaryti katalogą – vieša duomenų bazė, užtikrinanti saugų skaitmeninių sertifikatų saugojimą.
  • Sertifikatų panaikinimo sąrašas – vieša duomenų bazė, kurioje saugiai saugomi atšauktų viešųjų raktų skaitmeniniai sertifikatai (pavyzdžiui, dėl susieto privataus rakto pavojaus). Infrastruktūros subjektai gali savarankiškai pasiekti šią duomenų bazę arba gali naudoti specializuotą sertifikavimo būsenos protokolą (OCSP), kuris supaprastina tikrinimo procesą.
  • Sertifikato vartotojai – aptarnaujami PKI subjektai, sudarę vartotojo sutartį su CA ir tikrinantys skaitmeninį parašą ir (arba) šifruojančius duomenis pagal viešąjį raktą iš sertifikato.
  • Stebėtojai – aptarnavo PKI subjektus, kuriems priklauso slaptasis raktas, susietas su viešuoju raktu iš sertifikato ir kurie yra sudarę abonentinę sutartį su CA. Abonentas vienu metu gali būti sertifikato vartotojas.

Taigi, patikimi viešojo rakto infrastruktūros subjektai, įskaitant CA, CR ir atvirus katalogus, yra atsakingi už:

1. Pareiškėjo tapatybės autentiškumo patikrinimas.
2. Viešojo rakto sertifikato profiliavimas.
3. Viešojo rakto sertifikato išdavimas pareiškėjui, kurio tapatybė patikimai patvirtinta.
4. Pakeiskite viešojo rakto sertifikato būseną.
5. Informacijos apie esamą viešojo rakto sertifikato būseną pateikimas.

PKI trūkumai, kokie jie?Esminis PKI trūkumas yra patikimų subjektų buvimas.
Vartotojai turi besąlygiškai pasitikėti CA ir CR. Tačiau, kaip rodo praktika, besąlygiškas pasitikėjimas kupinas rimtų pasekmių.

Per pastaruosius dešimt metų šioje srityje kilo keli dideli skandalai, susiję su infrastruktūros pažeidžiamumu.

— 2010 metais internete pradėjo plisti Stuxnet kenkėjiška programa, pasirašyta naudojant pavogtus skaitmeninius sertifikatus iš RealTek ir JMicron.

– 2017 metais „Google“ apkaltino „Symantec“ išduodant daug suklastotų sertifikatų. Tuo metu „Symantec“ buvo viena didžiausių CA pagal gamybos apimtis. „Google Chrome 70“ naršyklėje šios įmonės ir su ja susijusių centrų „GeoTrust“ ir „Thawte“ išduotų sertifikatų palaikymas buvo sustabdytas iki 1 m. gruodžio 2017 d.

CA buvo pažeistos, ir dėl to nukentėjo visi – pačios CA, taip pat vartotojai ir abonentai. Pasitikėjimas infrastruktūra buvo pakirstas. Be to, skaitmeniniai sertifikatai gali būti blokuojami politinių konfliktų kontekste, o tai taip pat turės įtakos daugelio išteklių veikimui. Būtent to prieš kelerius metus buvo baiminamasi Rusijos prezidento administracijoje, kur 2016 m. buvo svarstoma galimybė sukurti valstybinį sertifikavimo centrą, kuris išduos SSL sertifikatus „RuNet“ svetainėms. Dabartinė padėtis tokia, kad Rusijoje net valstybiniai portalai naudoti skaitmeniniai sertifikatai, išduoti Amerikos kompanijų „Comodo“ arba „Thawte“ (dukterinė „Symantec“ įmonė).

Yra ir kita problema – klausimas pirminis vartotojų autentifikavimas (autentifikavimas).. Kaip atpažinti vartotoją, kuris kreipėsi į CA su prašymu išduoti skaitmeninį sertifikatą be tiesioginio asmeninio kontakto? Dabar tai sprendžiama situaciškai, priklausomai nuo infrastruktūros galimybių. Kažkas paimama iš atvirų registrų (pavyzdžiui, informacija apie juridinius asmenis, prašančius pažymų), tais atvejais, kai pareiškėjai yra fiziniai asmenys, galima pasinaudoti banko skyriais ar pašto skyriais, kuriuose jų tapatybė patvirtinama naudojant asmens tapatybės dokumentus, pavyzdžiui, pasą.

Įgaliojimų klastojimo siekiant apsimetinėjimo problema yra esminė. Pastebėkime, kad iki galo šios problemos sprendimo nėra dėl informacinių-teorinių priežasčių: a priori neturint patikimos informacijos, neįmanoma patvirtinti ar paneigti konkretaus dalyko autentiškumo. Paprastai patikrinimui būtina pateikti dokumentų, įrodančių pareiškėjo tapatybę, rinkinį. Yra daug skirtingų tikrinimo būdų, tačiau nė vienas iš jų nesuteikia visiškos dokumentų autentiškumo garantijos. Todėl pareiškėjo tapatybės autentiškumas taip pat negali būti garantuotas.

Kaip galima pašalinti šiuos trūkumus?Jeigu dabartinės PKI problemos gali būti paaiškinamos centralizavimu, tai logiška manyti, kad decentralizacija padėtų iš dalies pašalinti nustatytus trūkumus.

Decentralizacija nereiškia patikimų subjektų buvimo – jei kuriate decentralizuota viešojo rakto infrastruktūra (Decentralizuota viešojo rakto infrastruktūra, DPKI), tada nereikia nei CA, nei CR. Atsisakykime skaitmeninio sertifikato koncepcijos ir naudokime paskirstytą registrą informacijai apie viešuosius raktus saugoti. Mūsų atveju registru vadiname linijinę duomenų bazę, susidedančią iš atskirų įrašų (blokų), susietų naudojant blockchain technologiją. Vietoj skaitmeninio sertifikato pristatysime „pranešimo“ sąvoką.

Kaip pranešimų gavimo, tikrinimo ir atšaukimo procesas atrodys siūlomame DPKI:

1. Kiekvienas pareiškėjas paraišką dėl pranešimo pateikia savarankiškai, registracijos metu užpildydamas formą, po kurios sukuria operaciją, kuri saugoma specializuotame fonde.

2. Informacija apie viešąjį raktą kartu su savininko rekvizitais ir kitais metaduomenimis yra saugoma paskirstytame registre, o ne skaitmeniniame sertifikate, už kurio išdavimą centralizuotame PKI yra atsakinga CA.

3. Pareiškėjo tapatybės autentiškumo patikrinimas atliekamas po fakto bendromis DPKI vartotojų bendruomenės, o ne CR, pastangomis.

4. Tik tokio pranešimo savininkas gali pakeisti viešojo rakto būseną.

5. Kiekvienas gali pasiekti paskirstytą knygą ir patikrinti esamą viešojo rakto būseną.

Pastaba: Bendrijos prašytojo tapatybės patvirtinimas iš pirmo žvilgsnio gali atrodyti nepatikimas. Tačiau turime prisiminti, kad šiais laikais visi skaitmeninių paslaugų vartotojai neišvengiamai palieka skaitmeninį pėdsaką ir šis procesas tik įsibėgės. Atviri elektroniniai juridinių asmenų registrai, žemėlapiai, reljefo vaizdų skaitmeninimas, socialiniai tinklai – visa tai yra viešai prieinamos priemonės. Jas jau sėkmingai naudoja tyrimų metu tiek žurnalistai, tiek teisėsaugos institucijos. Pavyzdžiui, užtenka prisiminti „Bellingcat“ ar jungtinės tyrimų grupės JIT, tiriančios Malaizijos „Boeing“ katastrofos aplinkybes, tyrimus.

Taigi, kaip decentralizuota viešojo rakto infrastruktūra veiktų praktiškai? Pasilikime prie pačios technologijos aprašymo, kurį mes patentuota 2018 m ir mes pagrįstai laikome tai savo žiniomis.

Įsivaizduokite, kad yra savininkas, kuriam priklauso daug viešųjų raktų, kur kiekvienas raktas yra tam tikra operacija, saugoma registre. Jei nėra CA, kaip suprasti, kad visi raktai priklauso šiam konkrečiam savininkui? Šiai problemai išspręsti sukuriama nulinė operacija, kurioje yra informacija apie savininką ir jo piniginę (iš kurios nurašomi komisiniai už operacijos įvedimą į registrą). Nulinė operacija yra tam tikras „inkaras“, prie kurio bus prijungtos šios operacijos su duomenimis apie viešuosius raktus. Kiekviena tokia operacija turi specializuotą duomenų struktūrą arba, kitaip tariant, pranešimą.

Pranešimas yra struktūrizuotas duomenų rinkinys, susidedantis iš funkcinių laukų ir apimantis informaciją apie savininko viešąjį raktą, kurio išlikimą garantuoja patalpinimas viename iš susijusių paskirstytojo registro įrašų.

Kitas logiškas klausimas – kaip sudaromas nulinis sandoris? Nulinė operacija, kaip ir vėlesnės, yra šešių duomenų laukų agregatas. Formuojant nulinę operaciją, dalyvauja piniginės raktų pora (viešieji ir suporuoti slaptieji raktai). Ši raktų pora atsiranda tuo metu, kai vartotojas užregistruoja savo piniginę, iš kurios bus nurašomi komisiniai už nulinės operacijos įvedimą į registrą ir vėliau operacijas su pranešimais.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Kaip parodyta paveikslėlyje, piniginės viešojo rakto santrauka generuojama nuosekliai taikant maišos funkcijas SHA256 ir RIPEMD160. Čia RIPEMD160 yra atsakingas už kompaktišką duomenų atvaizdavimą, kurio plotis neviršija 160 bitų. Tai svarbu, nes registras nėra pigi duomenų bazė. Pats viešasis raktas įvedamas penktame lauke. Pirmame lauke yra duomenys, užmezgantys ryšį su ankstesne operacija. Nulinės operacijos atveju šiame lauke nėra nieko, kas išskirtų ją nuo vėlesnių operacijų. Antrasis laukas yra duomenys, skirti patikrinti operacijų ryšį. Trumpumo dėlei duomenis pirmajame ir antrame laukuose vadinsime atitinkamai „nuoroda“ ir „patikrinti“. Šių laukų turinys generuojamas kartotiniu maišos būdu, kaip parodyta susiejant antrą ir trečią operacijas toliau pateiktame paveikslėlyje.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Pirmųjų penkių laukelių duomenys yra patvirtinti elektroniniu parašu, kuris generuojamas naudojant slaptą piniginės raktą.

Tai viskas, nulinė operacija siunčiama į telkinį ir po sėkmingo patikrinimo įtraukiama į registrą. Dabar su juo galite „susieti“ šias operacijas. Panagrinėkime, kaip formuojami sandoriai, išskyrus nulį.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Pirmas dalykas, kuris tikriausiai patraukė jūsų dėmesį, yra raktų porų gausa. Be jau žinomos piniginės raktų poros, naudojamos įprastos ir aptarnavimo raktų poros.

Paprastas viešasis raktas yra tai, dėl ko viskas buvo pradėta. Šis raktas dalyvauja įvairiose išoriniame pasaulyje vykstančiose procedūrose ir procesuose (bankinės ir kitos operacijos, dokumentų srautas ir kt.). Pavyzdžiui, slaptas raktas iš įprastos poros gali būti naudojamas skaitmeniniams parašams generuoti įvairiems dokumentams – mokėjimo pavedimams ir pan., o viešasis raktas gali būti naudojamas patikrinti šį skaitmeninį parašą vėliau vykdant šias instrukcijas, jei galiojantis.

Paslaugų pora išduodama registruotam DPKI subjektui. Šios poros pavadinimas atitinka jos paskirtį. Atkreipkite dėmesį, kad formuojant / tikrinant nulinę operaciją paslaugų raktai nenaudojami.

Dar kartą išsiaiškinkime raktų paskirtį:

  1. Piniginės raktai naudojami niekinei operacijai ir bet kuriai kitai nenulinei operacijai generuoti / patikrinti. Privatų piniginės raktą žino tik piniginės savininkas, kuris taip pat yra daugelio įprastų viešųjų raktų savininkas.
  2. Įprastas viešasis raktas pagal paskirtį yra panašus į viešąjį raktą, kurio sertifikatas išduodamas centralizuotame PKI.
  3. Paslaugos raktų pora priklauso DPKI. Slaptasis raktas išduodamas registruotiems subjektams ir naudojamas generuojant skaitmeninius transakcijų parašus (išskyrus nulines operacijas). Viešas naudojamas sandorio elektroniniam skaitmeniniam parašui patikrinti prieš jį paskelbiant registre.

Taigi, yra dvi raktų grupės. Pirmasis apima paslaugų raktus ir piniginės raktus – jie prasmingi tik DPKI kontekste. Antroji grupė apima paprastus raktus – jų apimtis gali skirtis ir priklauso nuo programos užduočių, kuriose jie naudojami. Tuo pačiu metu DPKI užtikrina įprastų viešųjų raktų vientisumą ir autentiškumą.

Pastaba: paslaugų raktų pora gali būti žinoma skirtingiems DPKI subjektams. Pavyzdžiui, tai gali būti vienoda visiems. Būtent dėl ​​šios priežasties generuojant kiekvienos nenulinės operacijos parašą, naudojami du slapti raktai, vienas iš kurių yra piniginės raktas – jį žino tik piniginės savininkas, kuris yra ir daugelio paprastų viešieji raktai. Visi raktai turi savo reikšmę. Pavyzdžiui, visada galima įrodyti, kad operaciją į registrą įvedė registruotas DPKI subjektas, nes parašas taip pat buvo sugeneruotas naudojant slaptosios tarnybos raktą. Ir negali būti piktnaudžiavimo, pavyzdžiui, DOS atakų, nes savininkas moka už kiekvieną operaciją.

Visos operacijos, einančios po nulinio vieneto, formuojamos panašiai: viešasis raktas (ne piniginė, kaip nulinės operacijos atveju, o iš įprastos raktų poros) paleidžiamas per dvi maišos funkcijas SHA256 ir RIPEMD160. Taip formuojami trečiojo lauko duomenys. Ketvirtajame lauke pateikiama papildoma informacija (pavyzdžiui, informacija apie dabartinę būseną, galiojimo datas, laiko žymą, naudojamų kriptovaliutų identifikatorius ir kt.). Penktame lauke yra viešasis raktas iš paslaugos raktų poros. Su jo pagalba bus patikrintas skaitmeninis parašas, todėl jis bus atkartotas. Pagrįskime tokio požiūrio poreikį.

Prisiminkite, kad operacija įvedama į telkinį ir saugoma ten, kol ji bus apdorota. Laikymas telkinyje yra susijęs su tam tikra rizika – sandorių duomenys gali būti suklastoti. Savininkas sandorio duomenis patvirtina elektroniniu skaitmeniniu parašu. Viešasis šio skaitmeninio parašo tikrinimo raktas yra aiškiai nurodytas viename iš operacijos laukų ir vėliau įvedamas į registrą. Transakcijų apdorojimo ypatumai yra tokie, kad užpuolikas gali keisti duomenis savo nuožiūra, o vėliau juos patikrinti naudodamas savo slaptąjį raktą ir nurodyti suporuotą viešąjį raktą skaitmeniniam parašui patikrinti transakcijoje. Jei autentiškumas ir vientisumas užtikrinami tik skaitmeniniu parašu, toks klastojimas bus nepastebėtas. Tačiau jei, be skaitmeninio parašo, yra papildomas mechanizmas, užtikrinantis ir saugomos informacijos archyvavimą, ir išlikimą, tada klastotę galima aptikti. Norėdami tai padaryti, pakanka į registrą įvesti tikrą savininko viešąjį raktą. Paaiškinkime, kaip tai veikia.

Leiskite užpuolikui suklastoti operacijų duomenis. Raktų ir skaitmeninių parašų požiūriu galimos šios parinktys:

1. Užpuolikas įdeda savo viešąjį raktą į operaciją, o savininko skaitmeninis parašas lieka nepakitęs.
2. Užpuolikas sukuria skaitmeninį parašą savo privačiame rakte, bet palieka savininko viešąjį raktą nepakeistą.
3. Užpuolikas sukuria skaitmeninį parašą savo privačiame rakte ir įdeda suporuotą viešąjį raktą į operaciją.

Akivaizdu, kad 1 ir 2 parinktys yra beprasmės, nes jos visada bus aptiktos tikrinant skaitmeninį parašą. Prasminga tik 3 parinktis, ir jei užpuolikas sudaro skaitmeninį parašą ant savo slaptojo rakto, tada jis yra priverstas išsaugoti suporuotą viešąjį raktą, kuris skiriasi nuo savininko viešojo rakto. Tai vienintelis būdas užpuolikui primesti suklastotus duomenis.

Tarkime, kad savininkas turi fiksuotą raktų porą – privačių ir viešųjų. Tegul duomenys yra patvirtinami skaitmeniniu parašu naudojant šios poros slaptąjį raktą, o viešasis raktas nurodomas sandoryje. Taip pat tarkime, kad šis viešasis raktas anksčiau buvo įvestas į registrą ir jo autentiškumas buvo patikimai patikrintas. Tada klastojimas bus parodytas tuo, kad sandorio viešasis raktas neatitinka viešojo registro rakto.

Apibendrinsime. Tvarkant pačius pirmuosius savininko sandorio duomenis, būtina patikrinti į registrą įvesto viešojo rakto autentiškumą. Norėdami tai padaryti, perskaitykite raktą iš registro ir palyginkite jį su tikruoju savininko viešuoju raktu saugos perimetre (santykinio nepažeidžiamumo srityje). Jei rakto autentiškumas patvirtinamas ir užtikrinamas jo išlikimas įdėjus, tada rakto iš vėlesnės operacijos autentiškumą galima lengvai patvirtinti / paneigti palyginus jį su raktu iš registro. Kitaip tariant, raktas iš registro naudojamas kaip atskaitos pavyzdys. Visos kitos savininko operacijos apdorojamos panašiai.

Sandoris patvirtinamas elektroniniu skaitmeniniu parašu – čia reikalingi slapti raktai ir ne vienas, o du iš karto – paslaugų raktas ir piniginės raktas. Dviejų slaptųjų raktų panaudojimo dėka užtikrinamas reikiamas saugumo lygis – juk paslaugos slaptąjį raktą gali žinoti kiti vartotojai, o slaptąjį piniginės raktą žino tik įprastos raktų poros savininkas. Tokį dviejų raktų parašą pavadinome „konsoliduotu“ skaitmeniniu parašu.

Nenuliutinių operacijų tikrinimas atliekamas naudojant du viešuosius raktus: piniginę ir aptarnavimo raktą. Patvirtinimo procesą galima suskirstyti į du pagrindinius etapus: pirmasis – piniginės viešojo rakto santraukos patikrinimas, o antrasis – elektroninio skaitmeninio operacijos parašo tikrinimas, tas pats konsoliduotas, kuris buvo suformuotas naudojant du slaptus raktus ( piniginė ir paslauga). Jeigu patvirtinamas skaitmeninio parašo galiojimas, po papildomo patikrinimo sandoris įrašomas į registrą.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Gali kilti logiškas klausimas: kaip patikrinti, ar sandoris priklauso konkrečiai grandinei, kurios „šaknis“ yra nulinės operacijos forma? Šiuo tikslu patikros procesas papildytas dar vienu etapu – ryšio tikrinimu. Čia mums reikės duomenų iš pirmųjų dviejų laukų, kurių iki šiol nepaisėme.

Įsivaizduokime, kad reikia patikrinti, ar sandoris Nr. 3 iš tikrųjų ateina po operacijos Nr. 2. Tam, naudojant kombinuotą maišos metodą, duomenims iš trečiojo, ketvirto ir penkto operacijos Nr. 2 laukų apskaičiuojama maišos funkcijos reikšmė. Tada atliekamas duomenų sujungimas iš pirmojo operacijos Nr. 3 lauko ir anksčiau gautos kombinuotos maišos funkcijos reikšmės duomenims iš trečiojo, ketvirto ir penkto operacijos Nr. 2 laukų. Visa tai taip pat vykdoma per dvi maišos funkcijas SHA256 ir RIPEMD160. Jei gauta reikšmė sutampa su duomenimis, esančiais antrajame operacijos Nr.2 laukelyje, tada patikrinimas praeina ir ryšys patvirtinamas. Tai aiškiau parodyta toliau pateiktuose paveikslėliuose.

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę
DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Apskritai pranešimo generavimo ir įvedimo į registrą technologija atrodo būtent taip. Vaizdinė pranešimų grandinės formavimo proceso iliustracija pateikta šiame paveikslėlyje:

DPKI: pašalina centralizuoto PKI trūkumus naudojant blokų grandinę

Šiame tekste neapsiribosime detalėmis, kurios neabejotinai egzistuoja, o grįšime prie pačios decentralizuotos viešojo rakto infrastruktūros idėjos aptarimo.

Taigi, kadangi pareiškėjas pats pateikia paraišką registruoti pranešimus, kurie saugomi ne CA duomenų bazėje, o registre, reikėtų atsižvelgti į pagrindinius DPKI architektūrinius komponentus:

1. Galiojančių pranešimų registras (RDN).
2. Panaikintų pranešimų registras (RON).
3. Sustabdytų pranešimų registras (RPN).

Informacija apie viešuosius raktus saugoma RDN/RON/RPN maišos funkcijos reikšmių pavidalu. Taip pat verta paminėti, kad tai gali būti arba skirtingi registrai, arba skirtingos grandinės, arba net viena grandinė kaip vieno registro dalis, kai informacija apie įprasto viešojo rakto būseną (atšaukimas, sustabdymas ir kt.) įvedama ketvirtasis duomenų struktūros laukas atitinkamos kodo reikšmės pavidalu. Yra daug įvairių DPKI architektūrinio įgyvendinimo variantų, o vieno ar kito pasirinkimas priklauso nuo daugybės faktorių, pavyzdžiui, tokių optimizavimo kriterijų kaip ilgalaikės atminties kaina viešiesiems raktams saugoti ir pan.

Taigi, DPKI gali pasirodyti jei ne paprastesnis, tai bent jau panašus į centralizuotą sprendimą architektūrinio sudėtingumo požiūriu.

Pagrindinis klausimas išlieka - Kuris registras tinkamas technologijai įdiegti?

Pagrindinis reikalavimas registrui yra galimybė generuoti bet kokio tipo operacijas. Garsiausias knygos pavyzdys yra Bitcoin tinklas. Tačiau diegiant aukščiau aprašytą technologiją iškyla tam tikrų sunkumų: esamos scenarijų kalbos apribojimai, būtinų savavališkų duomenų rinkinių apdorojimo mechanizmų trūkumas, savavališko tipo operacijų generavimo metodai ir daug daugiau.

Mes, ENCRY, bandėme išspręsti aukščiau suformuluotas problemas ir sukūrėme registrą, kuris, mūsų nuomone, turi daug privalumų, būtent:

  • palaiko kelių tipų sandorius: gali keistis turtu (ty atlikti finansines operacijas) ir sudaryti savavališkos struktūros sandorius,
  • kūrėjai turi prieigą prie patentuotos programavimo kalbos PrismLang, kuri suteikia reikiamo lankstumo sprendžiant įvairias technologines problemas,
  • numatytas savavališkų duomenų rinkinių apdorojimo mechanizmas.

Jei laikysimės supaprastinto požiūrio, tada atliekama tokia veiksmų seka:

  1. Pareiškėjas užsiregistruoja DPKI ir gauna skaitmeninę piniginę. Piniginės adresas yra piniginės viešojo rakto maišos reikšmė. Privatųjį piniginės raktą žino tik pareiškėjas.
  2. Užregistruotam subjektui suteikiama prieiga prie paslaugos slaptojo rakto.
  3. Subjektas sugeneruoja nulinę operaciją ir patvirtina ją skaitmeniniu parašu naudodamas slaptą piniginės raktą.
  4. Jei sudaroma kitokia nei nulinė operacija, ji patvirtinama elektroniniu skaitmeniniu parašu, naudojant du slaptus raktus: piniginės ir tarnybinį.
  5. Subjektas pateikia sandorį fondui.
  6. ENCRY tinklo mazgas nuskaito operaciją iš telkinio ir patikrina skaitmeninį parašą, taip pat operacijos ryšį.
  7. Jei skaitmeninis parašas galioja ir ryšys patvirtinamas, tada jis paruošia sandorį įtraukimui į registrą.

Čia registras veikia kaip paskirstyta duomenų bazė, kurioje saugoma informacija apie galiojančius, atšauktus ir sustabdytus pranešimus.

Žinoma, decentralizacija nėra panacėja. Esminė pirminio vartotojo autentifikavimo problema niekur nedingsta: jei šiuo metu pareiškėjo patikrą atlieka CR, tai DPKI siūloma patikrą deleguoti bendruomenės nariams, o aktyvumui skatinti pasitelkti finansinę motyvaciją. Atvirojo kodo patvirtinimo technologija yra gerai žinoma. Tokio patikrinimo veiksmingumas buvo patvirtintas praktikoje. Dar kartą prisiminkime keletą didelio atgarsio sulaukusių internetinio leidinio „Bellingcat“ tyrimų.

Tačiau apskritai susidaro toks vaizdas: DPKI yra galimybė ištaisyti jei ne visus, tai daugelį centralizuoto PKI trūkumų.

Prenumeruokite mūsų Habrablogą, planuojame ir toliau aktyviai skelbti savo tyrimus ir plėtrą bei sekti Twitter, jei nenorite praleisti kitų naujienų apie ENCRY projektus.

Šaltinis: www.habr.com

Добавить комментарий