Uzoefu wa kutumia teknolojia ya Rutoken kusajili na kuidhinisha watumiaji kwenye mfumo (sehemu ya 1)

Habari za mchana Ninataka kushiriki uzoefu wangu juu ya mada hii.

Rutoken ni suluhisho za maunzi na programu katika uwanja wa uthibitishaji, usalama wa habari na saini ya kielektroniki. Kimsingi, hii ni kiendeshi cha flash ambacho kinaweza kuhifadhi data ya uthibitishaji ambayo mtumiaji hutumia kuingia kwenye mfumo.

Katika mfano huu, Rutoken EDS 2.0 hutumiwa.

Ili kufanya kazi na Rutoken hii unahitaji kufunga dereva kwenye madirisha.

Kwa Windows, kufunga dereva mmoja tu huhakikisha kwamba kila kitu kinachohitajika kimewekwa ili OS ione Rutoken yako na inaweza kufanya kazi nayo.

Unaweza kuingiliana na Rutoken kwa njia mbalimbali. Unaweza kuipata kutoka kwa upande wa seva ya programu, au moja kwa moja kutoka kwa upande wa mteja. Mfano huu utaangalia mwingiliano na Rutoken kutoka upande wa mteja wa programu.

Sehemu ya mteja ya programu inaingiliana na rutoken kupitia programu-jalizi ya rutoken. Hii ni programu ambayo imewekwa tofauti kwenye kila kivinjari. Kwa Windows unahitaji tu kupakua na kusakinisha programu-jalizi, iko kwenye kiungo hiki.

Hiyo ndiyo yote, sasa tunaweza kuingiliana na Rutoken kutoka upande wa mteja wa programu.

Mfano huu unajadili wazo la kutekeleza algoriti ya uidhinishaji wa mtumiaji katika mfumo kwa kutumia mpango wa kujibu changamoto.

Kiini cha wazo ni kama ifuatavyo:

  1. Mteja hutuma ombi la idhini kwa seva.
  2. Seva hujibu ombi kutoka kwa mteja kwa kutuma mfuatano wa nasibu.
  3. Mteja huweka kamba hii na bits 32 bila mpangilio.
  4. Mteja hutia saini kamba iliyopokelewa na cheti chake.
  5. Mteja hutuma ujumbe uliopokelewa kwa njia fiche kwa seva.
  6. Seva huthibitisha sahihi kwa kupokea ujumbe asilia ambao haujasimbwa.
  7. Seva huondoa biti 32 za mwisho kutoka kwa ujumbe uliopokelewa ambao haujasimbwa.
  8. Seva inalinganisha matokeo yaliyopokelewa na ujumbe uliotumwa wakati wa kuomba idhini.
  9. Ikiwa ujumbe ni sawa, basi idhini inachukuliwa kuwa imefanikiwa.

Katika algorithm hapo juu kuna kitu kama cheti. Kwa mfano huu, unahitaji kuelewa nadharia fulani ya kriptografia. Juu ya Habre kuna makala nzuri juu ya mada hii.

Katika mfano huu, tutatumia algoriti za usimbaji fiche zisizolingana. Ili kutekeleza algorithms asymmetrics, lazima uwe na jozi muhimu na cheti.

Jozi muhimu ina sehemu mbili: ufunguo wa faragha na ufunguo wa umma. Ufunguo wa faragha, kama jina lake linavyopendekeza, lazima liwe siri. Tunaitumia kusimbua maelezo. Ufunguo wa umma unaweza kusambazwa kwa mtu yeyote. Ufunguo huu unatumika kusimba data kwa njia fiche. Kwa hivyo, mtumiaji yeyote anaweza kusimba data kwa njia fiche kwa kutumia ufunguo wa umma, lakini ni mmiliki wa ufunguo wa faragha pekee anayeweza kusimbua habari hii.

Cheti ni hati ya kielektroniki ambayo ina taarifa kuhusu mtumiaji anayemiliki cheti, pamoja na ufunguo wa umma. Kwa cheti, mtumiaji anaweza kusaini data yoyote na kuituma kwa seva, ambayo inaweza kuthibitisha sahihi na kusimbua data.

Ili kusaini kwa usahihi ujumbe na cheti, unahitaji kuunda kwa usahihi. Kwa kufanya hivyo, jozi muhimu huundwa kwanza kwenye Rutoken, na kisha cheti lazima kiunganishwe na ufunguo wa umma wa jozi hii muhimu. Cheti lazima kiwe na ufunguo kamili wa umma ambao unapatikana kwenye Rutoken, hii ni muhimu. Ikiwa tutaunda jozi muhimu na cheti mara moja kwenye upande wa mteja wa programu, basi seva inawezaje kusimbua ujumbe huu uliosimbwa kwa njia fiche? Baada ya yote, hajui chochote kuhusu jozi muhimu au cheti.

Ikiwa unazama zaidi katika mada hii, unaweza kupata habari ya kuvutia kwenye mtandao. Kuna baadhi ya mamlaka za uthibitisho ambazo kwa hakika tunaziamini. Mamlaka hizi za uthibitishaji zinaweza kutoa vyeti kwa watumiaji; wanasakinisha vyeti hivi kwenye seva zao. Baada ya hayo, mteja anapofikia seva hii, anaona cheti hiki hiki, na anaona kwamba kilitolewa na mamlaka ya uthibitishaji, ambayo inamaanisha seva hii inaweza kuaminiwa. Pia kuna habari nyingi kwenye mtandao kuhusu jinsi ya kuweka kila kitu kwa usahihi. Kwa mfano, unaweza kuanza na hii.

Ikiwa tunarudi kwenye shida yetu, suluhisho linaonekana dhahiri. Unahitaji kwa namna fulani kuunda kituo chako cha uthibitishaji. Lakini kabla ya hapo, unahitaji kujua kwa msingi gani kituo cha uthibitisho kinapaswa kutoa cheti kwa mtumiaji, kwa sababu hajui chochote kuhusu hilo. (Kwa mfano, jina lake la kwanza, jina la mwisho, n.k.) Kuna kitu kinaitwa ombi la cheti. Maelezo zaidi kuhusu kiwango hiki yanaweza kupatikana, kwa mfano, kwenye Wikipedia ru.wikipedia.org/wiki/PKCS
Tutatumia toleo la 1.7 - PKCS#10.

Wacha tueleze algorithm ya kutengeneza cheti kwenye Rutoken (chanzo asili: nyaraka):

  1. Tunaunda jozi muhimu kwa mteja na kuihifadhi kwenye Rutoken. (kuokoa hutokea kiotomatiki)
  2. Tunaunda ombi la cheti kwa mteja.
  3. Kutoka kwa mteja tunatuma ombi hili kwa seva.
  4. Tunapopokea ombi la cheti kwenye seva, tunatoa cheti kutoka kwa mamlaka yetu ya uthibitishaji.
  5. Tunatuma cheti hiki kwa mteja.
  6. Tunahifadhi cheti cha Rutoken kwa mteja.
  7. Cheti lazima kifungwe kwa jozi muhimu ambayo iliundwa katika hatua ya kwanza.

Sasa inakuwa wazi jinsi seva itaweza kusimbua saini ya mteja, kwani yenyewe ilitoa cheti kwake.

Katika sehemu inayofuata, tutaangalia kwa undani jinsi ya kusanidi mamlaka ya cheti chako kulingana na maktaba ya wazi ya mfumo huria ya kufungua SSL.

Chanzo: mapenzi.com

Kuongeza maoni