Pangalaman ngagunakeun téknologi Rutoken pikeun ngadaptar sareng otorisasi pangguna dina sistem (bagian 1)

Wilujeng sonten Abdi hoyong bagikeun pangalaman kuring dina topik ieu.

Rutoken mangrupikeun solusi parangkat lunak sareng parangkat lunak dina widang auténtikasi, kaamanan inpormasi sareng tanda tangan éléktronik. Intina, ieu mangrupikeun flash drive anu tiasa nyimpen data auténtikasi anu dianggo ku pangguna pikeun asup kana sistem.

Dina conto ieu, Rutoken EDS 2.0 dipaké.

Pikeun digawe sareng Rutoken ieu anjeun peryogi install supir dina windows.

Pikeun Windows, masang ngan hiji supir mastikeun yén sadaya anu diperyogikeun dipasang supados OS ningali Rutoken anjeun sareng tiasa damel sareng éta.

Anjeun tiasa berinteraksi sareng Rutoken dina sababaraha cara. Anjeun tiasa ngaksés éta tina sisi server aplikasi, atanapi langsung ti sisi klien. Conto ieu bakal ningali interaksi sareng Rutoken ti sisi klien aplikasi.

Bagian klien tina aplikasi nu berinteraksi sareng rutoken ngaliwatan plugin rutoken. Ieu mangrupikeun program anu dipasang nyalira dina unggal browser. Pikeun Windows anjeun ngan ukur kedah ngaunduh sareng masang plugin, ayana dina link ieu.

Éta éta, ayeuna urang tiasa berinteraksi sareng Rutoken ti sisi klien tina aplikasi.

Conto ieu ngabahas ide pikeun nerapkeun algoritma otorisasi pangguna dina sistem nganggo skéma tangtangan-réspon.

Intina ide nyaéta kieu:

  1. Klién ngirimkeun pamundut otorisasi ka server.
  2. server responds kana pamundut ti klien ku ngirim string acak.
  3. Klién nambihkeun senar ieu kalayan acak 32 bit.
  4. Klién nandatanganan string anu ditampi kalayan sertipikatna.
  5. Klién ngirim pesen énkripsi anu ditampi ka server.
  6. Server pariksa tanda tangan ku cara nampi pesen anu henteu énkripsi asli.
  7. server strips panungtungan 32 bit tina pesen unencrypted narima.
  8. Server ngabandingkeun hasil anu ditampi sareng pesen anu dikirim nalika nyuhunkeun otorisasina.
  9. Upami pesenna sami, maka otorisasina dianggap suksés.

Dina algoritma di luhur aya hiji hal saperti sertipikat. Pikeun conto ieu, anjeun kedah ngartos sababaraha téori cryptographic. Dina Habré aya artikel hébat dina topik ieu.

Dina conto ieu, urang bakal ngagunakeun algoritma enkripsi asimétri. Pikeun nerapkeun algoritma asimétri, anjeun kedah gaduh pasangan konci sareng sertipikat.

Pasangan konci diwangun ku dua bagian: konci pribadi sareng konci umum. Konci swasta, sakumaha ngaranna nunjukkeun, kudu rusiah. Kami nganggo éta pikeun ngadekrip inpormasi. Konci publik tiasa disebarkeun ka saha waé. konci ieu dipaké pikeun encrypt data. Ku kituna, sagala pamaké bisa encrypt data ngagunakeun konci publik, tapi ngan nu boga konci swasta bisa ngadekrip informasi ieu.

Sertipikat mangrupikeun dokumén éléktronik anu ngandung inpormasi ngeunaan pangguna anu gaduh sertipikat, ogé konci umum. Kalayan sertipikat, pangguna tiasa ngadaptarkeun data naon waé sareng ngirimkeunana ka server, anu tiasa pariksa tandatangan sareng ngadekrip data.

Pikeun leres nandatanganan pesen nganggo sertipikat, anjeun kedah nyiptakeunana leres. Jang ngalampahkeun ieu, pasangan konci munggaran dijieun dina Rutoken, lajeng sertipikat kudu numbu ka konci umum tina pasangan konci ieu. Sertipikat kudu persis konci umum anu lokasina di Rutoken, ieu penting. Upami urang ngan saukur nyiptakeun pasangan konci sareng sertipikat langsung di sisi klien aplikasi, teras kumaha server teras ngadekrip pesen énkripsi ieu? Barina ogé, anjeunna terang nanaon ngeunaan boh pasangan konci atanapi sertipikat.

Upami anjeun teuleum langkung jero kana topik ieu, anjeun tiasa mendakan inpormasi anu pikaresepeun dina Internét. Aya otoritas sertifikasi tangtu anu jelas urang percanten. Otoritas sertifikasi ieu tiasa ngaluarkeun sertipikat ka pangguna; aranjeunna masang sertipikat ieu dina server na. Saatos ieu, nalika klien ngaksés server ieu, anjeunna ningali pisan sertipikat ieu, sareng ningali yén éta dikaluarkeun ku otoritas sertifikasi, anu hartosna server ieu tiasa dipercaya. Aya ogé seueur inpormasi dina Internét ngeunaan kumaha nyetél sadayana kalayan leres. Contona, Anjeun bisa mimitian ku ieu.

Lamun urang balik deui ka masalah urang, solusi sigana atra. Anjeun kedah kumaha waé nyiptakeun pusat sertifikasi anjeun nyalira. Tapi sateuacan éta, anjeun kedah terang dina dasar naon pusat sertifikasi kedah ngaluarkeun sertipikat ka pangguna, sabab anjeunna henteu terang nanaon ngeunaan éta. (Contona, ngaran hareup, ngaran tukang, jsb) Aya hiji hal anu disebut pamundut sertipikat. Inpo nu langkung lengkep ihwal standar ieu tiasa dipendakan, contona, dina Wikipedia ru.wikipedia.org/wiki/PKCS
Urang bakal make versi 1.7 - PKCS # 10.

Hayu urang ngajelaskeun algoritma pikeun ngahasilkeun sertipikat dina Rutoken (sumber asli: dokuméntasi):

  1. Urang nyieun pasangan konci dina klien tur simpen dina Rutoken. (nyimpen lumangsung sacara otomatis)
  2. Urang nyieun pamundut sertipikat on klien.
  3. Ti klien kami ngirim pamundut ieu ka server.
  4. Nalika kami nampi pamundut sertipikat dina server, kami ngaluarkeun sertipikat ti otoritas sertifikasi kami.
  5. Urang ngirim sertipikat ieu ka klien.
  6. Urang nyimpen sertipikat Rutoken on klien nu.
  7. Sertipikat kedah kabeungkeut kana pasangan konci anu diciptakeun dina léngkah munggaran.

Ayeuna janten jelas kumaha server bakal tiasa ngadekrip signature klien, sabab eta sorangan ngaluarkeun sertipikat ka anjeunna.

Dina bagian salajengna, urang bakal ningali langkung caket kumaha nyetél otoritas sertipikat anjeun dumasar kana perpustakaan kriptografi open-source openSSL pinuh.

sumber: www.habr.com

Tambahkeun komentar