Բարի օր Ես ուզում եմ կիսվել իմ փորձով այս թեմայի վերաբերյալ:
Rutoken- ը ապարատային եւ ծրագրային լուծումներ է վավերացման, տեղեկատվական անվտանգության եւ էլեկտրոնային ստորագրության ոլորտում: Ըստ էության, սա ֆլեշ կրիչ է, որը կարող է պահպանել վավերացման տվյալները, որոնք օգտագործողը օգտագործում է համակարգ մուտք գործելու համար:
Այս օրինակում օգտագործվում է Rutoken EDS 2.0:
Այս Rutoken-ի հետ աշխատելու համար ձեզ անհրաժեշտ է
Windows- ի համար պարզապես մեկ վարորդ տեղադրելը ապահովում է, որ անհրաժեշտ է այն ամենը, ինչ անհրաժեշտ է, որպեսզի ՕՀ-ն տեսնի ձեր ռուոկեն եւ կարող է աշխատել դրա հետ:
Հավելվածի հաճախորդային մասը փոխազդում է rutoken-ի հետ rutoken plugin-ի միջոցով: Սա ծրագիր է, որը տեղադրված է առանձին յուրաքանչյուր բրաուզերի վրա: Windows-ի համար պարզապես անհրաժեշտ է ներբեռնել և տեղադրել փլագինը,
Վերջ, այժմ մենք կարող ենք Rutoken-ի հետ շփվել հավելվածի հաճախորդի կողմից:
Այս օրինակը քննարկում է համակարգում օգտագործողի թույլտվության ալգորիթմի ներդրման գաղափարը՝ օգտագործելով մարտահրավեր-արձագանքման սխեմա:
Գաղափարի էությունը հետևյալն է.
- Հաճախորդը թույլտվության հարցում է ուղարկում սերվերին:
- Սերվերը պատասխանում է հաճախորդի խնդրանքին` ուղարկելով պատահական տող:
- Հաճախորդը լրացնում է այս տողը պատահական 32 բիթով:
- Հաճախորդը ստորագրում է ստացված տողը իր վկայականով:
- Հաճախորդը ստացված գաղտնագրված հաղորդագրությունն ուղարկում է սերվերին:
- Սերվերը ստուգում է ստորագրությունը՝ ստանալով բնօրինակ չգաղտնագրված հաղորդագրությունը:
- Սերվերը կտրում է ստացված չգաղտնագրված հաղորդագրությունից վերջին 32 բիթերը:
- Սերվերը ստացված արդյունքը համեմատում է հաղորդագրության հետ, որն ուղարկվել է թույլտվություն խնդրելիս:
- Եթե հաղորդագրությունները նույնն են, ապա թույլտվությունը համարվում է հաջողված:
Վերոնշյալ ալգորիթմում կա վկայագիր: Այս օրինակի համար դուք պետք է հասկանաք որոշ ծածկագրային տեսություն: Հաբրեի վրա կա
Այս օրինակում մենք կօգտագործենք ասիմետրիկ գաղտնագրման ալգորիթմներ: Ասիմետրիկ ալգորիթմներ իրականացնելու համար դուք պետք է ունենաք բանալիների զույգ և վկայական:
Բանալիների զույգը բաղկացած է երկու մասից՝ մասնավոր և հանրային բանալի: Մասնավոր բանալին, ինչպես ցույց է տալիս նրա անունը, պետք է գաղտնի լինի: Մենք այն օգտագործում ենք տեղեկատվության վերծանման համար: Հանրային բանալին կարող է բաժանվել ցանկացածին: Այս բանալին օգտագործվում է տվյալների գաղտնագրման համար: Այսպիսով, ցանկացած օգտատեր կարող է գաղտնագրել տվյալները՝ օգտագործելով հանրային բանալին, բայց միայն մասնավոր բանալու սեփականատերը կարող է վերծանել այդ տեղեկատվությունը:
Վկայագիրը էլեկտրոնային փաստաթուղթ է, որը պարունակում է տեղեկատվություն այն օգտագործողի մասին, ում պատկանում է վկայագիրը, ինչպես նաև հանրային բանալին: Հավաստագրի միջոցով օգտատերը կարող է ստորագրել ցանկացած տվյալ և ուղարկել այն սերվերին, որը կարող է ստուգել ստորագրությունը և վերծանել տվյալները։
Հաղորդագրությունը վկայականով ճիշտ ստորագրելու համար անհրաժեշտ է այն ճիշտ ստեղծել: Դա անելու համար նախ Rutoken-ում ստեղծվում է բանալիների զույգ, այնուհետև վկայականը պետք է միացվի այս բանալիների զույգի հանրային բանալիին: Վկայագիրը պետք է ունենա հենց այն հանրային բանալին, որը գտնվում է Rutoken-ում, սա կարևոր է: Եթե մենք պարզապես ստեղծենք բանալիների զույգ և վկայագիր անմիջապես հավելվածի հաճախորդի կողմից, ապա ինչպե՞ս կարող է սերվերը ապակոդավորել այս կոդավորված հաղորդագրությունը: Ի վերջո, նա ընդհանրապես ոչինչ չգիտի ո՛չ բանալիների զույգի, ո՛չ էլ վկայագրի մասին։
Եթե դուք ավելի խորանաք այս թեմայի մեջ, կարող եք հետաքրքիր տեղեկություններ գտնել ինտերնետում: Կան որոշակի հավաստագրման մարմիններ, որոնց մենք ակնհայտորեն վստահում ենք: Այս սերտիֆիկացման մարմինները կարող են վկայականներ տրամադրել օգտվողներին, նրանք տեղադրում են այդ վկայագրերը իրենց սերվերում: Դրանից հետո, երբ հաճախորդը մուտք է գործում այս սերվերը, նա տեսնում է հենց այս վկայականը և տեսնում է, որ այն տրվել է սերտիֆիկացման մարմնի կողմից, ինչը նշանակում է, որ այս սերվերին կարելի է վստահել: Ինտերնետում նույնպես շատ տեղեկություններ կան այն մասին, թե ինչպես կարելի է ամեն ինչ ճիշտ կարգավորել:
Եթե վերադառնանք մեր խնդրին, լուծումն ակնհայտ է թվում։ Դուք պետք է ինչ-որ կերպ ստեղծեք ձեր սեփական սերտիֆիկացման կենտրոնը: Բայց մինչ այդ պետք է պարզել, թե ինչի հիման վրա սերտիֆիկացման կենտրոնը պետք է վկայական տրամադրի օգտատիրոջը, քանի որ նա ոչինչ չգիտի այդ մասին։ (Օրինակ՝ նրա անունը, ազգանունը և այլն) Նման բան կա, որը կոչվում է վկայականի հարցում։ Այս ստանդարտի մասին լրացուցիչ տեղեկություններ կարելի է գտնել, օրինակ, Վիքիպեդիայում
Մենք կօգտագործենք 1.7 տարբերակը՝ PKCS#10:
Եկեք նկարագրենք Rutoken-ում վկայագիր ստեղծելու ալգորիթմը (բնօրինակ աղբյուր.
- Մենք ստեղծում ենք բանալիների զույգ հաճախորդի վրա և պահում այն Rutoken-ում: (պահումը տեղի է ունենում ավտոմատ կերպով)
- Մենք ստեղծում ենք սերտիֆիկատի հարցում հաճախորդի համար:
- Հաճախորդից մենք այս հարցումն ուղարկում ենք սերվերին:
- Երբ սերվերի վրա վկայական ստանալու հարցում ենք ստանում, մենք վկայական ենք տալիս մեր սերտիֆիկացման մարմնից:
- Մենք այս վկայականն ուղարկում ենք հաճախորդին:
- Մենք պահպանում ենք Rutoken վկայագիրը հաճախորդի վրա:
- Վկայագիրը պետք է կապված լինի բանալիների զույգի հետ, որը ստեղծվել է առաջին քայլում:
Այժմ պարզ է դառնում, թե ինչպես սերվերը կկարողանա վերծանել հաճախորդի ստորագրությունը, քանի որ ինքն է վկայական տվել նրան։
Հաջորդ մասում մենք ավելի ուշադիր կանդրադառնանք, թե ինչպես ստեղծել ձեր վկայականի մարմինը `հիմնվելով բացվող բաց կոդով գերտոգրաֆիայի գրադարանի վրա:
Source: www.habr.com