DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Գաղտնիք չէ, որ սովորաբար օգտագործվող օժանդակ գործիքներից մեկը, առանց որի տվյալների պաշտպանությունը բաց ցանցերում անհնար է, թվային վկայականի տեխնոլոգիան է։ Սակայն գաղտնիք չէ, որ տեխնոլոգիայի հիմնական թերությունն անվերապահ վստահությունն է թվային սերտիֆիկատներ տրամադրող կենտրոնների նկատմամբ։ ENCRY-ի տեխնոլոգիաների և նորարարությունների գծով տնօրեն Անդրեյ Չմորան առաջարկեց կազմակերպման նոր մոտեցում հանրային բանալին ենթակառուցվածք (Հանրային բանալիների ենթակառուցվածք, PKI- ն), որը կօգնի վերացնել առկա թերությունները և որն օգտագործում է բաշխված գրքույկ (բլոկչեյն) տեխնոլոգիա։ Բայց առաջին հերթին առաջինը:

Եթե ​​դուք ծանոթ եք, թե ինչպես է աշխատում ձեր ներկայիս հանրային բանալին ենթակառուցվածքը և գիտեք դրա հիմնական թերությունները, կարող եք առաջ անցնել ստորև առաջարկվող փոփոխություններին:

Ի՞նչ են թվային ստորագրությունները և վկայականները:Ինտերնետում փոխգործակցությունը միշտ ներառում է տվյալների փոխանցում: Մենք բոլորս շահագրգռված ենք ապահովելու, որ տվյալները փոխանցվում են անվտանգ: Բայց ի՞նչ է անվտանգությունը: Անվտանգության ամենապահանջված ծառայություններն են գաղտնիությունը, ամբողջականությունը և իսկությունը: Այդ նպատակով ներկայումս օգտագործվում են ասիմետրիկ ծածկագրման կամ հանրային բանալիով ծածկագրման մեթոդները։

Սկսենք նրանից, որ այս մեթոդներն օգտագործելու համար փոխազդեցության սուբյեկտները պետք է ունենան երկու առանձին զուգակցված բանալիներ՝ հրապարակային և գաղտնի: Նրանց օգնությամբ ապահովվում են մեր վերը նշված անվտանգության ծառայությունները։

Ինչպե՞ս է ձեռք բերվում տեղեկատվության փոխանցման գաղտնիությունը: Տվյալներն ուղարկելուց առաջ ուղարկող բաժանորդը գաղտնագրում է (կրիպտոգրաֆիկ կերպով փոխակերպում) բաց տվյալները՝ օգտագործելով ստացողի հանրային բանալին, իսկ ստացողը վերծանում է ստացված գաղտնագրված տեքստը՝ օգտագործելով զուգավորված գաղտնի բանալի։

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Ինչպե՞ս է ձեռք բերվում փոխանցված տեղեկատվության ամբողջականությունն ու իսկությունը: Այս խնդիրը լուծելու համար ստեղծվել է մեկ այլ մեխանիզմ. Բաց տվյալները գաղտնագրված չեն, բայց ծածկագրված հեշ ֆունկցիայի կիրառման արդյունքը՝ մուտքագրված տվյալների հաջորդականության «սեղմված» պատկերը, փոխանցվում է կոդավորված ձևով: Նման հեշինգի արդյունքը կոչվում է «digest» և այն գաղտնագրվում է ուղարկող բաժանորդի («վկա») գաղտնի բանալին օգտագործելով: Դիջեստի կոդավորման արդյունքում ստացվում է թվային ստորագրություն։ Այն հստակ տեքստի հետ միասին փոխանցվում է ստացող բաժանորդին («ստուգիչ»): Նա գաղտնազերծում է վկայի հանրային բանալիի թվային ստորագրությունը և այն համեմատում գաղտնագրային հեշ ֆունկցիայի կիրառման արդյունքի հետ, որը ստուգիչը ինքնուրույն հաշվարկում է ստացված բաց տվյալների հիման վրա: Եթե ​​դրանք համընկնում են, դա ցույց է տալիս, որ տվյալները փոխանցվել են վավերական և ամբողջական ձևով ուղարկող բաժանորդի կողմից, և ոչ թե փոփոխվել հարձակվողի կողմից:

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Անձնական տվյալների և վճարային տեղեկատվության հետ աշխատող ռեսուրսների մեծ մասը (բանկեր, ապահովագրական ընկերություններ, ավիաընկերություններ, վճարային համակարգեր, ինչպես նաև պետական ​​պորտալներ, ինչպիսիք են հարկային ծառայությունը) ակտիվորեն օգտագործում են ասիմետրիկ ծածկագրման մեթոդներ:

Ի՞նչ կապ ունի թվային վկայականը դրա հետ։ Դա պարզ է. Ե՛վ առաջին, և՛ երկրորդ գործընթացները ներառում են հանրային բանալիներ, և քանի որ դրանք կենտրոնական դեր են խաղում, շատ կարևոր է ապահովել, որ բանալիներն իրականում պատկանում են ուղարկողին (վկային, ստորագրության ստուգման դեպքում) կամ ստացողին և չեն պատկանում: փոխարինվել է հարձակվողների բանալիներով: Ահա թե ինչու թվային վկայագրեր գոյություն ունեն՝ ապահովելու հանրային բանալու իսկությունը և ամբողջականությունը:

Նշում. հանրային բանալու իսկությունը և ամբողջականությունը հաստատվում է ճիշտ այնպես, ինչպես հանրային տվյալների իսկությունն ու ամբողջականությունը, այսինքն՝ օգտագործելով էլեկտրոնային թվային ստորագրությունը (EDS):
Որտեղի՞ց են գալիս թվային վկայականները:Վստահելի սերտիֆիկացման մարմինները կամ Հավաստագրման մարմինները (CA) պատասխանատու են թվային վկայագրերի տրամադրման և պահպանման համար: Դիմորդը պահանջում է վկայական տրամադրել CA-ից, անցնում է նույնականացում Գրանցման կենտրոնում (CR) և ստանում վկայական CA-ից: CA-ն երաշխավորում է, որ վկայագրի հրապարակային բանալին պատկանում է հենց այն կազմակերպությանը, որի համար այն տրվել է:

Եթե ​​դուք չեք հաստատում հանրային բանալու իսկությունը, ապա այս բանալի փոխանցման/պահման ժամանակ հարձակվողը կարող է այն փոխարինել իր սեփականով: Եթե ​​փոխարինումը տեղի է ունեցել, հարձակվողը կկարողանա վերծանել այն ամենը, ինչ ուղարկող բաժանորդը փոխանցում է ստացող բաժանորդին, կամ փոխել բաց տվյալները՝ իր հայեցողությամբ։

Թվային վկայագրերն օգտագործվում են ամենուր, որտեղ առկա է ասիմետրիկ ծածկագրություն: Ամենատարածված թվային վկայականներից մեկը SSL վկայագրերն են՝ HTTPS արձանագրության միջոցով ապահով հաղորդակցության համար: Հարյուրավոր ընկերություններ, որոնք գրանցված են տարբեր իրավասություններում, ներգրավված են SSL վկայագրերի տրամադրման գործում: Հիմնական մասնաբաժինը բաժին է ընկնում հինգից տասը խոշոր վստահելի կենտրոններին՝ IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave:

CA-ն և CR-ն PKI-ի բաղադրիչներն են, որը ներառում է նաև.

  • Բացեք գրացուցակը – հանրային տվյալների բազա, որն ապահովում է թվային վկայագրերի անվտանգ պահպանում:
  • Վկայականի չեղյալ հայտարարման ցուցակ – հանրային տվյալների բազա, որն ապահովում է չեղյալ համարված հանրային բանալիների թվային վկայագրերի անվտանգ պահպանում (օրինակ՝ զուգակցված մասնավոր բանալին խախտելու պատճառով): Ենթակառուցվածքի սուբյեկտները կարող են ինքնուրույն մուտք գործել այս տվյալների բազա կամ կարող են օգտվել մասնագիտացված առցանց հավաստագրման կարգավիճակի արձանագրությունից (OCSP), որը հեշտացնում է ստուգման գործընթացը:
  • Վկայական օգտագործողներ – սպասարկվող PKI սուբյեկտները, ովքեր օգտատերերի համաձայնագիր են կնքել CA-ի հետ և ստուգում են թվային ստորագրությունը և/կամ գաղտնագրում տվյալները՝ հիմնվելով վկայագրի հանրային բանալիի վրա:
  • Բաժանորդներ – սպասարկվել է PKI սուբյեկտներին, ովքեր ունեն գաղտնի բանալի, որը զուգակցված է վկայագրի հանրային բանալու հետ, և ովքեր բաժանորդային պայմանագիր են կնքել CA-ի հետ: Բաժանորդը միաժամանակ կարող է լինել վկայականից օգտվող:

Այսպիսով, հանրային բանալին ենթակառուցվածքի վստահելի կազմակերպությունները, որոնք ներառում են CA-ներ, CR-ներ և բաց գրացուցակներ, պատասխանատու են.

1. Դիմումատուի ինքնության իսկության ստուգում:
2. Հանրային բանալին վկայագրի պրոֆիլավորում:
3. Հանրային բանալին վկայականի տրամադրում այն ​​դիմորդի համար, ում ինքնությունը հավաստիորեն հաստատված է:
4. Փոխեք հանրային բանալին վկայագրի կարգավիճակը:
5. Հանրային բանալիի վկայականի ընթացիկ կարգավիճակի մասին տեղեկատվության տրամադրում:

PKI-ի թերությունները, որո՞նք են դրանք:PKI-ի հիմնական թերությունը վստահելի կազմակերպությունների առկայությունն է:
Օգտագործողները պետք է անվերապահորեն վստահեն CA-ին և CR-ին. Բայց, ինչպես ցույց է տալիս պրակտիկան, անվերապահ վստահությունը հղի է լուրջ հետեւանքներով։

Վերջին տասը տարիների ընթացքում այս ոլորտում մի քանի խոշոր սկանդալներ են եղել՝ կապված ենթակառուցվածքների խոցելիության հետ:

— 2010 թվականին Stuxnet չարամիտ ծրագիրը սկսեց տարածվել առցանց՝ ստորագրվելով RealTek-ի և JMicron-ի գողացված թվային վկայագրերի միջոցով:

- 2017 թվականին Google-ը մեղադրել է Symantec-ին մեծ քանակությամբ կեղծված վկայագրեր տրամադրելու մեջ։ Այն ժամանակ Symantec-ը արտադրության ծավալներով ամենամեծ CA-ներից մեկն էր։ Google Chrome 70 դիտարկիչում այս ընկերության և նրա հետ կապված GeoTrust և Thawte կենտրոնների կողմից տրված հավաստագրերի աջակցությունը դադարեցվել է մինչև 1 թվականի դեկտեմբերի 2017-ը:

CA-ները վտանգված էին, և արդյունքում տուժեցին բոլորը՝ իրենք՝ CA-ները, ինչպես նաև օգտվողներն ու բաժանորդները: Ենթակառուցվածքների նկատմամբ վստահությունը խաթարվել է. Բացի այդ, թվային վկայականները կարող են արգելափակվել քաղաքական հակամարտությունների համատեքստում, ինչը նույնպես կազդի բազմաթիվ ռեսուրսների շահագործման վրա։ Սա հենց այն է, ինչից մի քանի տարի առաջ վախենում էին Ռուսաստանի նախագահի աշխատակազմում, որտեղ 2016-ին նրանք քննարկում էին պետական ​​սերտիֆիկացման կենտրոն ստեղծելու հնարավորությունը, որը SSL վկայականներ կտրամադրի RuNet-ի կայքերին: Գործերի ներկա վիճակն այնպիսին է, որ նույնիսկ պետական ​​պորտալները Ռուսաստանում օգտագործումը թվային վկայագրեր, որոնք թողարկվել են ամերիկյան Comodo կամ Thawte ընկերությունների կողմից (Symantec-ի դուստր ձեռնարկություն):

Մեկ այլ խնդիր էլ կա՝ հարցը օգտատերերի առաջնային նույնականացում (նույնականացում):. Ինչպե՞ս նույնականացնել օգտվողին, ով կապվել է CA-ի հետ՝ առանց անմիջական անձնական կապի թվային վկայական տրամադրելու խնդրանքով: Այժմ դա լուծվում է իրավիճակային՝ կախված ենթակառուցվածքի հնարավորություններից։ Ինչ-որ բան վերցված է բաց գրանցամատյաններից (օրինակ՝ վկայականներ պահանջող իրավաբանական անձանց մասին), այն դեպքերում, երբ դիմորդները ֆիզիկական անձինք են, կարող են օգտագործվել բանկային գրասենյակներ կամ փոստային բաժանմունքներ, որտեղ նրանց ինքնությունը հաստատվում է անձը հաստատող փաստաթղթերի միջոցով, օրինակ՝ անձնագիր:

Անձնավորելու նպատակով հավատարմագրերը կեղծելու խնդիրը հիմնարար խնդիր է: Նշենք, որ տեղեկատվական-տեսական նկատառումներից ելնելով այս խնդրի ամբողջական լուծումը չկա. առանց a priori հավաստի տեղեկատվություն ունենալու անհնար է հաստատել կամ հերքել կոնկրետ թեմայի իսկությունը։ Որպես կանոն, ստուգման համար անհրաժեշտ է ներկայացնել դիմումատուի ինքնությունը հաստատող փաստաթղթերի փաթեթ։ Գոյություն ունեն ստուգման բազմաթիվ տարբեր մեթոդներ, սակայն դրանցից ոչ մեկը փաստաթղթերի իսկության լիարժեք երաշխիք չի տալիս: Համապատասխանաբար, դիմումատուի ինքնության իսկությունը նույնպես չի կարող երաշխավորվել:

Ինչպե՞ս կարելի է վերացնել այդ թերությունները։Եթե ​​PKI-ի խնդիրները ներկայիս վիճակում կարելի է բացատրել կենտրոնացմամբ, ապա տրամաբանական է ենթադրել, որ ապակենտրոնացումը կօգնի մասամբ վերացնել հայտնաբերված թերությունները:

Ապակենտրոնացումը չի ենթադրում վստահելի սուբյեկտների առկայությունը, եթե դուք ստեղծեք ապակենտրոնացված հանրային բանալիների ենթակառուցվածք (Ապակենտրոնացված հանրային բանալիների ենթակառուցվածք, DPKI), ապա ոչ CA, ոչ էլ CR պետք չեն: Եկեք հրաժարվենք թվային վկայագրի գաղափարից և օգտագործենք բաշխված ռեեստր՝ հանրային բանալիների մասին տեղեկությունները պահելու համար: Մեր դեպքում ռեգիստրը մենք անվանում ենք գծային տվյալների բազա, որը բաղկացած է առանձին գրառումներից (բլոկներից), որոնք կապված են բլոկչեյն տեխնոլոգիայի միջոցով: Թվային վկայագրի փոխարեն կներդրենք «ծանուցում» հասկացությունը։

Ինչպես կանդրադառնա ծանուցումների ստացման, ստուգման և չեղարկման գործընթացը առաջարկվող DPKI-ում.

1. Յուրաքանչյուր դիմորդ ծանուցման համար դիմում է ներկայացնում ինքնուրույն՝ գրանցման ժամանակ լրացնելով ձևաթուղթ, որից հետո ստեղծում է գործարք, որը պահվում է մասնագիտացված լողավազանում:

2. Հանրային բանալու մասին տեղեկատվությունը, սեփականատիրոջ մանրամասների և այլ մետատվյալների հետ միասին, պահվում է բաշխված ռեեստրում, այլ ոչ թե թվային վկայագրում, որի թողարկման համար կենտրոնացված PKI-ում պատասխանատու է CA-ն:

3. Դիմումատուի ինքնության իսկության ստուգումն իրականացվում է փաստից հետո DPKI օգտվողների համայնքի համատեղ ջանքերով, այլ ոչ թե CR-ի կողմից:

4. Միայն նման ծանուցման սեփականատերը կարող է փոխել հանրային բանալու կարգավիճակը:

5. Յուրաքանչյուրը կարող է մուտք գործել բաշխված մատյան և ստուգել հանրային բանալու ներկայիս կարգավիճակը:

Նշում. Դիմորդի ինքնության համայնքային ստուգումը առաջին հայացքից կարող է անվստահելի թվալ: Բայց մենք պետք է հիշենք, որ մեր օրերում թվային ծառայությունների բոլոր օգտվողներն անխուսափելիորեն թվային հետք են թողնում, և այս գործընթացը միայն կշարունակի թափ հավաքել։ Իրավաբանական անձանց բաց էլեկտրոնային ռեգիստրներ, քարտեզներ, տեղանքի պատկերների թվայնացում, սոցիալական ցանցեր՝ այս ամենը հանրությանը հասանելի գործիքներ են: Դրանք արդեն հաջողությամբ կիրառվում են ինչպես լրագրողների, այնպես էլ իրավապահ մարմինների կողմից հետաքննության ընթացքում։ Օրինակ, բավական է հիշել Bellingcat-ի կամ JIT համատեղ քննչական խմբի հետաքննությունները, որոնք ուսումնասիրում են մալազիական Boeing-ի կործանման հանգամանքները։

Այսպիսով, ինչպե՞ս կարող է գործնականում աշխատել ապակենտրոնացված հանրային բանալիների ենթակառուցվածքը: Եկեք կանգ առնենք բուն տեխնոլոգիայի նկարագրության վրա, որը մենք արտոնագրվել է 2018թ և մենք իրավամբ դա համարում ենք մեր նոու-հաուն:

Պատկերացրեք, որ կա մի սեփականատեր, ով ունի բազմաթիվ հանրային բանալիներ, որտեղ յուրաքանչյուր բանալին որոշակի գործարք է, որը պահվում է ռեեստրում: CA-ի բացակայության դեպքում ինչպե՞ս կարող եք հասկանալ, որ բոլոր բանալիները պատկանում են այս կոնկրետ սեփականատիրոջը: Այս խնդիրը լուծելու համար ստեղծվում է զրոյական գործարք, որը պարունակում է տեղեկություններ սեփականատիրոջ և նրա դրամապանակի մասին (որից դեբետագրվում է գործարքը գրանցամատյանում տեղադրելու միջնորդավճարը)։ Անվավեր գործարքը մի տեսակ «խարիսխ» է, որին կցվեն հանրային բանալիների վերաբերյալ տվյալների հետ կապված հետևյալ գործարքները: Յուրաքանչյուր նման գործարք պարունակում է տվյալների մասնագիտացված կառուցվածք կամ այլ կերպ ասած՝ ծանուցում:

Ծանուցումը տվյալների կառուցվածքային շարք է, որը բաղկացած է ֆունկցիոնալ դաշտերից և ներառում է տեղեկություններ սեփականատիրոջ հանրային բանալու մասին, որի պահպանումը երաշխավորվում է բաշխված ռեեստրի համապատասխան գրառումներից մեկում տեղադրմամբ:

Հաջորդ տրամաբանական հարցն այն է, թե ինչպես է ձևավորվում զրոյական գործարք: Անվավեր գործարքը, ինչպես հաջորդները, վեց տվյալների դաշտերի ագրեգացիա է: Զրոյական գործարքի ձևավորման ժամանակ ներգրավված է դրամապանակի բանալիների զույգը (հանրային և զուգակցված գաղտնի բանալիներ): Բանալիների այս զույգը հայտնվում է այն պահին, երբ օգտատերը գրանցում է իր դրամապանակը, որից ռեեստրում զրոյական գործարքի տեղադրման և հետագայում ծանուցումներով գործողությունների համար միջնորդավճարը կգանձվի:

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Ինչպես ցույց է տրված նկարում, դրամապանակի հանրային բանալու ամփոփումը ստեղծվում է SHA256 և RIPEMD160 հեշ ֆունկցիաների հաջորդական կիրառմամբ: Այստեղ RIPEMD160-ը պատասխանատու է տվյալների կոմպակտ ներկայացման համար, որոնց լայնությունը չի գերազանցում 160 բիթը։ Սա կարևոր է, քանի որ ռեեստրը էժան տվյալների բազա չէ: Հանրային բանալին ինքնին մուտքագրվում է հինգերորդ դաշտում: Առաջին դաշտը պարունակում է տվյալներ, որոնք կապ են հաստատում նախորդ գործարքի հետ: Զրոյական գործարքի դեպքում այս դաշտը ոչինչ չի պարունակում, ինչը տարբերում է այն հետագա գործարքներից: Երկրորդ դաշտը գործարքների կապը ստուգելու տվյալներն են: Հակիրճ լինելու համար առաջին և երկրորդ դաշտերի տվյալները կանվանենք համապատասխանաբար «հղում» և «ստուգում»: Այս դաշտերի բովանդակությունը ստեղծվում է կրկնվող հեշինգի միջոցով, ինչպես ցույց է տրված ստորև բերված նկարում երկրորդ և երրորդ գործարքները կապելով:

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Առաջին հինգ դաշտերի տվյալները հավաստվում են էլեկտրոնային ստորագրությամբ, որը ստեղծվում է դրամապանակի գաղտնի բանալիով:

Վերջ, զրոյական գործարքն ուղարկվում է լողավազան և հաջող ստուգումից հետո մուտքագրվում է ռեեստր: Այժմ դուք կարող եք դրան «կապել» հետևյալ գործարքները. Դիտարկենք, թե ինչպես են ձևավորվում զրոյից այլ գործարքներ։

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Առաջին բանը, որ հավանաբար գրավեց ձեր ուշադրությունը, բանալիների զույգերի առատությունն է: Բացի արդեն ծանոթ դրամապանակի բանալիների զույգից, օգտագործվում են սովորական և սպասարկման բանալիների զույգեր:

Սովորական հանրային բանալին այն է, ինչի համար ամեն ինչ սկսվեց: Այս բանալին ներգրավված է արտաքին աշխարհում ծավալվող տարբեր ընթացակարգերի և գործընթացների մեջ (բանկային և այլ գործարքներ, փաստաթղթերի հոսք և այլն): Օրինակ, սովորական զույգից գաղտնի բանալին կարող է օգտագործվել տարբեր փաստաթղթերի համար թվային ստորագրություններ ստեղծելու համար՝ վճարման հանձնարարականներ և այլն, և հանրային բանալին կարող է օգտագործվել այս թվային ստորագրությունը ստուգելու համար այս հրահանգների հետագա կատարմամբ, պայմանով, որ դա վավեր է.

Ծառայությունների զույգը տրվում է գրանցված DPKI սուբյեկտին: Այս զույգի անունը համապատասխանում է իր նպատակին։ Նկատի ունեցեք, որ զրոյական գործարք կազմելիս/ստուգելիս ծառայության բանալիները չեն օգտագործվում:

Կրկին պարզաբանենք բանալիների նպատակը.

  1. Դրամապանակի բանալիներն օգտագործվում են ինչպես զրոյական գործարքի, այնպես էլ ցանկացած այլ ոչ զրոյական գործարք ստեղծելու/ստուգելու համար: Դրամապանակի մասնավոր բանալին հայտնի է միայն դրամապանակի տիրոջը, ով նաև բազմաթիվ սովորական հանրային բանալիների տերն է:
  2. Սովորական հանրային բանալին իր նպատակներով նման է հանրային բանալին, որի համար վկայագիրը տրվում է կենտրոնացված PKI-ում:
  3. Ծառայության բանալիների զույգը պատկանում է DPKI-ին: Գաղտնի բանալին տրվում է գրանցված անձանց և օգտագործվում է գործարքների համար թվային ստորագրություններ ստեղծելիս (բացառությամբ զրոյական գործարքների): Հանրայինն օգտագործվում է գործարքի էլեկտրոնային թվային ստորագրությունը ստուգելու համար, նախքան այն տեղադրվելը գրանցամատյանում:

Այսպիսով, կա բանալիների երկու խումբ. Առաջինը ներառում է ծառայության բանալիներ և դրամապանակի բանալիներ. դրանք իմաստ ունեն միայն DPKI-ի համատեքստում: Երկրորդ խումբը ներառում է սովորական բանալիներ. դրանց շրջանակը կարող է տարբեր լինել և որոշվում է կիրառական առաջադրանքներով, որոնցում դրանք օգտագործվում են: Միևնույն ժամանակ, DPKI-ն ապահովում է սովորական հանրային բանալիների ամբողջականությունն ու իսկությունը:

Ծանոթագրություն. Ծառայության բանալիների զույգը կարող է հայտնի լինել տարբեր DPKI կազմակերպությունների: Օրինակ, դա կարող է նույնը լինել բոլորի համար: Հենց այս պատճառով է, որ յուրաքանչյուր ոչ զրոյական գործարքի ստորագրությունը ստեղծելիս օգտագործվում են երկու գաղտնի բանալի, որոնցից մեկը դրամապանակի բանալին է. դա հայտնի է միայն դրամապանակի տիրոջը, որը նաև շատ սովորականների սեփականատեր է: հանրային բանալիներ. Բոլոր ստեղները ունեն իրենց նշանակությունը: Օրինակ, միշտ հնարավոր է ապացուցել, որ գործարքը գրանցվել է գրանցամատյանում գրանցված DPKI սուբյեկտի կողմից, քանի որ ստորագրությունը ստեղծվել է նաև գաղտնի ծառայության բանալիով: Եվ չի կարող լինել չարաշահումներ, ինչպիսիք են DOS հարձակումները, քանի որ սեփականատերը վճարում է յուրաքանչյուր գործարքի համար:

Բոլոր գործարքները, որոնք հաջորդում են զրոյական մեկին, ձևավորվում են նույն ձևով. հանրային բանալին (ոչ թե դրամապանակը, ինչպես զրոյական գործարքի դեպքում, այլ սովորական բանալիների զույգից) իրականացվում է SHA256 և RIPEMD160 երկու հեշ ֆունկցիաների միջոցով: Այսպես են ձևավորվում երրորդ դաշտի տվյալները։ Չորրորդ դաշտը պարունակում է ուղեկցող տեղեկատվություն (օրինակ՝ տեղեկատվություն ընթացիկ կարգավիճակի, պիտանելիության ժամկետների, ժամանակացույցի, օգտագործվող կրիպտոալգորիթմների նույնացուցիչների մասին և այլն)։ Հինգերորդ դաշտը պարունակում է հանրային բանալին ծառայության բանալիների զույգից: Նրա օգնությամբ թվային ստորագրությունն այնուհետեւ կստուգվի, ուստի այն կկրկնօրինակվի: Եկեք հիմնավորենք նման մոտեցման անհրաժեշտությունը։

Հիշեցնենք, որ գործարքը մուտքագրվում է լողավազան և պահվում այնտեղ, մինչև այն մշակվի: Լողավազանում պահելը կապված է որոշակի ռիսկի հետ՝ գործարքի տվյալները կարող են կեղծվել: Սեփականատերը գործարքի տվյալները հավաստում է էլեկտրոնային թվային ստորագրությամբ: Այս թվային ստորագրությունը ստուգելու հանրային բանալին հստակորեն նշված է գործարքի դաշտերից մեկում և այնուհետև մուտքագրվում է գրանցամատյանում: Գործարքների մշակման առանձնահատկություններն այնպիսին են, որ հարձակվողը կարող է փոխել տվյալները իր հայեցողությամբ, այնուհետև ստուգել դրանք՝ օգտագործելով իր գաղտնի բանալին և նշել զուգակցված հանրային բանալի՝ գործարքում թվային ստորագրությունը ստուգելու համար: Եթե ​​իսկությունն ու ամբողջականությունն ապահովվեն բացառապես թվային ստորագրության միջոցով, ապա նման կեղծիքն աննկատ կմնա։ Սակայն, եթե թվային ստորագրությունից բացի կա լրացուցիչ մեխանիզմ, որն ապահովում է պահված տեղեկատվության և՛ արխիվացումը, և՛ պահպանությունը, ապա կեղծիքը կարող է հայտնաբերվել։ Դա անելու համար բավական է գրանցամատյանում մուտքագրել սեփականատիրոջ իսկական հանրային բանալին: Եկեք բացատրենք, թե ինչպես է սա աշխատում:

Թող հարձակվողը կեղծի գործարքի տվյալները: Բանալիների և թվային ստորագրությունների տեսանկյունից հնարավոր են հետևյալ տարբերակները.

1. Հարձակվողը գործարքի մեջ դնում է իր հանրային բանալին, մինչդեռ սեփականատիրոջ թվային ստորագրությունը մնում է անփոփոխ:
2. Հարձակվողը թվային ստորագրություն է ստեղծում իր անձնական բանալիի վրա, սակայն սեփականատիրոջ հանրային բանալին թողնում է անփոփոխ:
3. Հարձակվողը թվային ստորագրություն է ստեղծում իր անձնական բանալիի վրա և գործարքի մեջ տեղադրում է զուգակցված հանրային բանալին:

Ակնհայտ է, որ 1-ին և 2-րդ տարբերակներն անիմաստ են, քանի որ դրանք միշտ կհայտնաբերվեն թվային ստորագրության ստուգման ժամանակ: Միայն 3-րդ տարբերակն է իմաստալից, և եթե հարձակվողը թվային ստորագրություն է կազմում իր սեփական գաղտնի բանալիի վրա, ապա նա ստիպված է լինում գործարքի մեջ պահպանել զուգակցված հանրային բանալին, որը տարբերվում է սեփականատիրոջ հանրային բանալինից: Սա միակ միջոցն է հարձակվողի համար կեղծված տվյալներ պարտադրելու:

Ենթադրենք, որ սեփականատերն ունի ֆիքսված զույգ բանալիներ՝ մասնավոր և հանրային: Թող տվյալները վավերացվեն թվային ստորագրությամբ՝ օգտագործելով այս զույգի գաղտնի բանալին, և գործարքի մեջ նշվում է հանրային բանալին: Ենթադրենք նաև, որ այս հանրային բանալին նախկինում մուտքագրվել է ռեեստր և դրա իսկությունը հավաստիորեն ստուգված է: Այնուհետև կեղծիքը կնշանակվի այն փաստով, որ գործարքի հանրային բանալին չի համապատասխանում ռեեստրի հանրային բանալին:

Եկեք ամփոփենք: Սեփականատիրոջ առաջին գործարքի տվյալները մշակելիս անհրաժեշտ է ստուգել գրանցամատյանում մուտքագրված հանրային բանալու իսկությունը: Դա անելու համար կարդացեք բանալին ռեեստրից և համեմատեք այն սեփականատիրոջ իրական հանրային բանալիի հետ անվտանգության պարագծում (հարաբերական անխոցելիության տարածք): Եթե ​​բանալիի իսկությունը հաստատված է, և դրա պահպանումը երաշխավորվում է տեղադրման ժամանակ, ապա հաջորդ գործարքից բանալու իսկությունը հեշտությամբ կարելի է հաստատել/հերքել՝ համեմատելով այն ռեեստրի բանալի հետ: Այլ կերպ ասած, ռեեստրից բանալին օգտագործվում է որպես հղման նմուշ: Սեփականատիրոջ մյուս բոլոր գործարքները մշակվում են նույն կերպ:

Գործարքը վավերացված է էլեկտրոնային թվային ստորագրությամբ. այստեղ անհրաժեշտ են գաղտնի բանալիներ, և ոչ թե մեկ, այլ միանգամից երկու՝ սպասարկման բանալի և դրամապանակի բանալի: Երկու գաղտնի բանալիների օգտագործման շնորհիվ ապահովված է անվտանգության անհրաժեշտ մակարդակը. ի վերջո, ծառայության գաղտնի բանալին կարող է հայտնի լինել այլ օգտվողներին, մինչդեռ դրամապանակի գաղտնի բանալին հայտնի է միայն սովորական բանալիների զույգի սեփականատիրոջը: Նման երկու բանալի ստորագրությունը մենք անվանեցինք «համախմբված» թվային ստորագրություն:

Ոչ զրոյական գործարքների ստուգումն իրականացվում է երկու հանրային բանալիների միջոցով՝ դրամապանակ և սպասարկման բանալի: Ստուգման գործընթացը կարելի է բաժանել երկու հիմնական փուլի. առաջինը ստուգում է դրամապանակի հանրային բանալին, իսկ երկրորդը ստուգում է գործարքի էլեկտրոնային թվային ստորագրությունը, նույն համախմբվածը, որը ձևավորվել է երկու գաղտնի բանալիների միջոցով ( դրամապանակ և սպասարկում): Եթե ​​թվային ստորագրության վավերականությունը հաստատվում է, ապա լրացուցիչ ստուգումից հետո գործարքը մուտքագրվում է գրանցամատյանում:

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Կարող է առաջանալ տրամաբանական հարց՝ ինչպե՞ս ստուգել՝ արդյոք գործարքը պատկանում է կոնկրետ շղթային՝ «արմատով» զրոյական գործարքի տեսքով։ Այդ նպատակով ստուգման գործընթացը համալրվում է ևս մեկ փուլով՝ կապի ստուգում։ Այստեղ է, որ մեզ անհրաժեշտ կլինեն առաջին երկու դաշտերի տվյալները, որոնք մինչ այժմ անտեսել ենք:

Եկեք պատկերացնենք, որ մենք պետք է ստուգենք, թե արդյոք թիվ 3 գործարքը իրականում գալիս է թիվ 2 գործարքից հետո: Դա անելու համար, օգտագործելով համակցված հեշավորման մեթոդը, հաշվարկվում է հեշ ֆունկցիայի արժեքը թիվ 2 գործարքի երրորդ, չորրորդ և հինգերորդ դաշտերի տվյալների համար։ Այնուհետև կատարվում է թիվ 3 գործարքի առաջին դաշտի տվյալների միացումը և թիվ 2 գործարքի երրորդ, չորրորդ և հինգերորդ դաշտերի տվյալների համար նախկինում ստացված համակցված հեշ ֆունկցիայի արժեքը։ Այս ամենը նաև գործարկվում է SHA256 և RIPEMD160 երկու հեշ ֆունկցիաների միջոցով: Եթե ​​ստացված արժեքը համապատասխանում է թիվ 2 գործարքի երկրորդ դաշտի տվյալներին, ապա ստուգումն անցնում է, և կապը հաստատվում է։ Սա ավելի հստակ ցույց է տրված ստորև բերված նկարներում:

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով
DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Ընդհանուր առմամբ, գրանցամատյանում ծանուցում ստեղծելու և մուտքագրելու տեխնոլոգիան հենց այսպիսի տեսք ունի. Ծանուցումների շղթայի ձևավորման գործընթացի տեսողական նկարազարդումը ներկայացված է հետևյալ նկարում.

DPKI. կենտրոնացված PKI-ի թերությունների վերացում բլոկչեյնի միջոցով

Այս տեքստում մենք չենք կանգնի այն մանրամասների վրա, որոնք, անկասկած, կան, և կվերադառնանք ապակենտրոնացված հանրային բանալիների ենթակառուցվածքի գաղափարի քննարկմանը:

Այսպիսով, քանի որ դիմումատուն ինքն է դիմում ծանուցումների գրանցման համար, որոնք պահվում են ոչ թե CA տվյալների բազայում, այլ ռեեստրում, պետք է հաշվի առնել DPKI-ի հիմնական ճարտարապետական ​​բաղադրիչները.

1. Վավերական ծանուցումների գրանցամատյան (RDN):
2. Չեղյալ հայտարարված ծանուցումների ռեգիստր (RON):
3. Կասեցված ծանուցումների ռեգիստր (RPN):

Հանրային բանալիների մասին տեղեկատվությունը պահվում է RDN/RON/RPN-ում՝ հեշ ֆունկցիայի արժեքների տեսքով: Հարկ է նաև նշել, որ դրանք կարող են լինել կամ տարբեր ռեգիստրներ, կամ տարբեր շղթաներ, կամ նույնիսկ մեկ շղթա՝ որպես մեկ ռեեստրի մաս, երբ սովորական հանրային բանալու կարգավիճակի մասին տեղեկատվությունը (չեղյալ, կասեցում և այլն) մուտքագրվում է: Տվյալների կառուցվածքի չորրորդ դաշտը՝ համապատասխան կոդի արժեքի տեսքով: DPKI-ի ճարտարապետական ​​իրականացման համար կան բազմաթիվ տարբեր տարբերակներ, և մեկի կամ մյուսի ընտրությունը կախված է մի շարք գործոններից, օրինակ, այնպիսի օպտիմալացման չափանիշներից, ինչպիսիք են հանրային բանալիների պահպանման երկարաժամկետ հիշողության արժեքը և այլն:

Այսպիսով, DPKI-ն կարող է լինել, եթե ոչ ավելի պարզ, ապա գոնե համեմատելի ճարտարապետական ​​բարդության տեսանկյունից կենտրոնացված լուծման հետ:

Հիմնական հարցը մնում է. Ո՞ր ռեգիստրն է հարմար տեխնոլոգիան կիրառելու համար:

Ռեեստրի հիմնական պահանջը ցանկացած տեսակի գործարքներ ստեղծելու հնարավորությունն է: Գրքերի ամենահայտնի օրինակը Bitcoin ցանցն է: Բայց վերը նկարագրված տեխնոլոգիան իրականացնելիս որոշակի դժվարություններ են առաջանում. գոյություն ունեցող սցենարային լեզվի սահմանափակումներ, տվյալների կամայական հավաքածուների մշակման համար անհրաժեշտ մեխանիզմների բացակայություն, կամայական տիպի գործարքներ ստեղծելու մեթոդներ և շատ ավելին:

Մենք ENCRY-ում փորձեցինք լուծել վերը նշված խնդիրները և մշակեցինք ռեեստր, որը, մեր կարծիքով, ունի մի շարք առավելություններ, մասնավորապես.

  • աջակցում է մի քանի տեսակի գործարքների. այն կարող է և՛ փոխանակել ակտիվներ (այսինքն՝ կատարել ֆինանսական գործարքներ), և՛ ստեղծել գործարքներ կամայական կառուցվածքով,
  • մշակողներին հասանելի է PrismLang ծրագրավորման սեփական լեզուն, որն ապահովում է անհրաժեշտ ճկունություն տարբեր տեխնոլոգիական խնդիրներ լուծելիս,
  • տրամադրվում է կամայական տվյալների հավաքածուների մշակման մեխանիզմ:

Եթե ​​մենք ընդունենք պարզեցված մոտեցում, ապա տեղի է ունենում գործողությունների հետևյալ հաջորդականությունը.

  1. Դիմորդը գրանցվում է DPKI-ում և ստանում թվային դրամապանակ: Դրամապանակի հասցեն դրամապանակի հանրային բանալու հեշ արժեքն է: Դրամապանակի մասնավոր բանալին հայտնի է միայն դիմողին:
  2. Գրանցված սուբյեկտին հասանելիություն է տրվում ծառայության գաղտնի բանալին:
  3. Սուբյեկտը ստեղծում է զրոյական գործարք և այն ստուգում է թվային ստորագրությամբ՝ օգտագործելով դրամապանակի գաղտնի բանալին:
  4. Եթե ​​զրոյից այլ գործարք է ձևավորվում, ապա այն վավերացվում է էլեկտրոնային թվային ստորագրությամբ՝ օգտագործելով երկու գաղտնի բանալի՝ դրամապանակ և ծառայողական:
  5. Սուբյեկտը գործարք է ներկայացնում լողավազան:
  6. ENCRY ցանցի հանգույցը կարդում է գործարքը լողավազանից և ստուգում թվային ստորագրությունը, ինչպես նաև գործարքի միացումը:
  7. Եթե ​​թվային ստորագրությունը վավեր է, և կապը հաստատված է, ապա այն պատրաստում է գործարքը գրանցամատյանում մուտքագրման համար:

Այստեղ ռեեստրը գործում է որպես բաշխված տվյալների բազա, որը պահպանում է վավեր, չեղարկված և կասեցված ծանուցումների մասին տեղեկությունները:

Իհարկե, ապակենտրոնացումը համադարման չէ: Առաջնային օգտատերերի նույնականացման հիմնարար խնդիրը ոչ մի տեղ չի անհետանում. եթե ներկայումս հայտատուի ստուգումն իրականացվում է CR-ի կողմից, ապա DPKI-ում առաջարկվում է ստուգումը պատվիրակել համայնքի անդամներին և օգտագործել ֆինանսական մոտիվացիա՝ ակտիվությունը խթանելու համար: Բաց կոդով ստուգման տեխնոլոգիան հայտնի է: Նման ստուգման արդյունավետությունը գործնականում հաստատվել է: Կրկին հիշենք Bellingcat առցանց հրատարակության մի շարք աղմկահարույց հետաքննություններ:

Բայց ընդհանուր առմամբ ստացվում է հետևյալ պատկերը՝ DPKI-ն հնարավորություն է ուղղելու կենտրոնացված PKI-ի, եթե ոչ բոլորը, ապա շատ թերություններ։

Բաժանորդագրվեք մեր Habrablog-ին, մենք նախատեսում ենք շարունակել ակտիվորեն լուսաբանել մեր հետազոտություններն ու զարգացումները և հետևել Twitter, եթե չեք ցանկանում բաց թողնել ENCRY նախագծերի մասին այլ նորություններ:

Source: www.habr.com

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