Pengalaman nggunakake teknologi Rutoken kanggo ndhaptar lan menehi wewenang pangguna ing sistem (bagean 1)

sugeng sonten Aku pengin nuduhake pengalaman babagan topik iki.

Rutoken minangka solusi hardware lan piranti lunak ing bidang otentikasi, keamanan informasi lan tandha elektronik. Ateges, iki minangka flash drive sing bisa nyimpen data otentikasi sing digunakake pangguna kanggo mlebu menyang sistem.

Ing conto iki, Rutoken EDS 2.0 digunakake.

Kanggo nggarap Rutoken iki sampeyan kudu nginstal driver ing windows.

Kanggo Windows, nginstal mung siji driver mesthekake yen kabeh sing dibutuhake wis diinstal supaya OS ndeleng Rutoken sampeyan lan bisa digunakake.

Sampeyan bisa sesambungan karo Rutoken ing macem-macem cara. Sampeyan bisa ngakses saka sisih server aplikasi, utawa langsung saka sisih klien. Conto iki bakal ndeleng interaksi karo Rutoken saka sisih klien aplikasi.

Bagian klien saka aplikasi sesambungan karo rutoken liwat plugin rutoken. Iki minangka program sing diinstal kanthi kapisah ing saben browser. Kanggo Windows sampeyan mung kudu ngundhuh lan nginstal plugin, dumunung ing link iki.

Mekaten, saiki kita bisa sesambungan karo Rutoken saka sisih klien aplikasi kasebut.

Conto iki mbahas ide kanggo ngetrapake algoritma wewenang pangguna ing sistem nggunakake skema tantangan-respon.

Inti saka gagasan kaya ing ngisor iki:

  1. Klien ngirim panjalukan wewenang menyang server.
  2. Server nanggapi panjalukan saka klien kanthi ngirim senar acak.
  3. Klien bantalan senar iki kanthi acak 32 bit.
  4. Klien menehi tandha senar sing ditampa kanthi sertifikat.
  5. Klien ngirim pesen sing dienkripsi menyang server.
  6. Server verifikasi teken kanthi nampa pesen asli sing ora dienkripsi.
  7. Server ngudani 32 bit pungkasan saka pesen sing ora dienkripsi.
  8. Server mbandhingake asil sing ditampa karo pesen sing dikirim nalika njaluk wewenang.
  9. Yen pesen padha, banjur wewenang dianggep sukses.

Ing algoritma ing ndhuwur ana sertifikat. Kanggo conto iki, sampeyan kudu ngerti sawetara teori kriptografi. Ing HabrΓ© ana artikel gedhe babagan topik iki.

Ing conto iki, kita bakal nggunakake algoritma enkripsi asimetris. Kanggo ngetrapake algoritma asimetris, sampeyan kudu duwe pasangan kunci lan sertifikat.

Pasangan kunci kasusun saka rong bagean: kunci pribadi lan kunci umum. Kunci pribadhi, kaya jenenge, kudu rahasia. Kita nggunakake kanggo decrypt informasi. Kunci umum bisa disebarake marang sapa wae. Tombol iki digunakake kanggo ndhelik data. Mangkono, pangguna bisa ndhelik data nggunakake kunci umum, nanging mung sing nduweni kunci pribadi sing bisa dekripsi informasi kasebut.

Sertifikat minangka dokumen elektronik sing ngemot informasi babagan pangguna sing duwe sertifikat, uga kunci umum. Kanthi sertifikat, pangguna bisa mlebu data apa wae lan ngirim menyang server, sing bisa verifikasi teken lan dekripsi data kasebut.

Kanggo mlebu pesen kanthi bener kanthi sertifikat, sampeyan kudu nggawe kanthi bener. Kanggo nindakake iki, pasangan tombol pisanan digawe ing Rutoken, banjur sertifikat kudu disambungake menyang kunci umum saka pasangan tombol iki. Sertifikat kudu persis kunci umum sing ana ing Rutoken, iki penting. Yen kita mung nggawe pasangan kunci lan sertifikat langsung ing sisih klien aplikasi, banjur kepiye server bisa dekripsi pesen sing dienkripsi iki? Sawise kabeh, dheweke ora ngerti apa-apa babagan pasangan kunci utawa sertifikat.

Yen sampeyan nyilem luwih jero menyang topik iki, sampeyan bisa nemokake informasi menarik ing Internet. Ana panguwasa sertifikasi tartamtu sing jelas dipercaya. Panguwasa sertifikasi iki bisa ngetokake sertifikat kanggo pangguna; padha nginstal sertifikat kasebut ing server. Sawise iki, nalika klien ngakses server iki, dheweke ndeleng sertifikat iki, lan weruh yen ditanggepi dening panguwasa sertifikasi, tegese server iki bisa dipercaya. Ana uga akeh informasi ing Internet babagan carane nyetel kabeh kanthi bener. Contone, sampeyan bisa miwiti karo iki.

Yen kita bali menyang masalah kita, solusi kasebut katon jelas. Sampeyan kudu piye wae nggawe pusat sertifikasi dhewe. Nanging sadurunge iku, sampeyan kudu ngerti apa basis pusat sertifikasi kudu ngetokake sertifikat kanggo pangguna, amarga dheweke ora ngerti apa-apa. (Contone, jeneng ngarep, jeneng mburi, etc.) Ana bab sing disebut panjalukan sertifikat. Informasi liyane babagan standar iki bisa ditemokake, contone, ing Wikipedia ru.wikipedia.org/wiki/PKCS
Kita bakal nggunakake versi 1.7 - PKCS # 10.

Ayo kita nerangake algoritma kanggo ngasilake sertifikat ing Rutoken (sumber asli: dokumentasi):

  1. Kita nggawe pasangan tombol ing klien lan simpen ing Rutoken. (simpen dumadi kanthi otomatis)
  2. Kita nggawe panjalukan sertifikat ing klien.
  3. Saka klien kita ngirim panjalukan iki menyang server.
  4. Nalika kita nampa panjalukan kanggo sertifikat ing server, kita ngetokake sertifikat saka wewenang sertifikasi.
  5. Kita ngirim sertifikat iki menyang klien.
  6. Kita nyimpen sertifikat Rutoken ing klien.
  7. Sertifikat kasebut kudu diikat karo pasangan kunci sing digawe ing langkah pisanan.

Saiki dadi jelas kepiye server bisa dekripsi teken klien, amarga dheweke menehi sertifikat kasebut.

Ing bagean sabanjure, kita bakal nliti babagan carane nyiyapake wewenang sertifikat adhedhasar perpustakaan kriptografi open-source openSSL sing lengkap.

Source: www.habr.com

Add a comment