Pengalaman menggunakan teknologi Rutoken untuk mendaftar dan membenarkan pengguna dalam sistem (bahagian 3)

hari yang baik!

Pada bahagian sebelumnya Kami telah berjaya mencipta pusat pensijilan kami sendiri. Bagaimanakah ia berguna untuk tujuan kita?

Menggunakan pihak berkuasa pensijilan tempatan, kami boleh mengeluarkan sijil dan juga mengesahkan tandatangan pada sijil ini.

Apabila mengeluarkan sijil kepada pengguna, pihak berkuasa pensijilan menggunakan permintaan sijil khas Pkcs#10, yang mempunyai format fail '.csr'. Permintaan ini mengandungi urutan yang dikodkan yang pihak berkuasa pensijilan tahu cara menghuraikan dengan betul. Permintaan mengandungi kedua-dua kunci awam pengguna dan data untuk membuat sijil (susunan bersekutu dengan data tentang pengguna).

Kami akan melihat cara menerima permintaan untuk sijil dalam artikel seterusnya, dan dalam artikel ini saya ingin memberikan arahan utama pihak berkuasa pensijilan yang akan membantu kami menyelesaikan tugas kami di bahagian belakang.

Jadi pertama kita perlu membuat sijil. Untuk melakukan ini kami menggunakan arahan:

openssl ca -batch -in user.csr -out user.crt

ca ialah arahan openSSL yang berkaitan dengan pihak berkuasa pensijilan,
-batch - membatalkan permintaan pengesahan apabila menjana sijil.
user.csr β€” meminta untuk mencipta sijil (fail dalam format .csr).
user.crt - sijil (hasil arahan).

Agar perintah ini berfungsi, pihak berkuasa pensijilan mesti dikonfigurasikan betul-betul seperti yang diterangkan di bahagian sebelumnya artikel. Jika tidak, anda perlu menyatakan tambahan lokasi perakuan akar pihak berkuasa pensijilan.

Perintah pengesahan sijil:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms ialah arahan openSSL yang digunakan untuk menandatangani, mengesahkan, menyulitkan data dan operasi kriptografi lain menggunakan openSSL.

-verify - dalam kes ini, kami mengesahkan sijil.

authenticate.cms - fail yang mengandungi data yang ditandatangani dengan sijil yang dikeluarkan oleh arahan sebelumnya.

-maklumkan PEM - Format PEM digunakan.

-CAfile /Users/……/demoCA/ca.crt - laluan ke sijil akar. (tanpa ini arahan tidak berfungsi untuk saya, walaupun laluan ke ca.crt ditulis dalam fail openssl.cfg)

-out data.file β€” Saya menghantar data yang disulitkan ke fail data.file.

Algoritma untuk menggunakan pihak berkuasa pensijilan di bahagian belakang adalah seperti berikut:

  • Pendaftaran pengguna:
    1. Kami menerima permintaan untuk membuat sijil dan menyimpannya ke fail user.csr.
    2. Kami menyimpan arahan pertama artikel ini ke fail dengan sambungan .bat atau .cmd. Kami menjalankan fail ini daripada kod, setelah sebelumnya menyimpan permintaan untuk mencipta sijil ke fail user.csr. Kami menerima fail dengan sijil user.crt.
    3. Kami membaca fail user.crt dan menghantarnya kepada klien.

  • Keizinan pengguna:
    1. Kami menerima data yang ditandatangani daripada pelanggan dan menyimpannya ke fail authenticate.cms.
    2. Simpan arahan kedua artikel ini pada fail dengan sambungan .bat atau .cmd. Kami menjalankan fail ini daripada kod, setelah sebelumnya menyimpan data yang ditandatangani daripada pelayan dalam authenticate.cms. Kami menerima fail dengan data data yang dinyahsulit.fail.
    3. Kami membaca data.file dan menyemak data ini untuk kesahihan. Apa sebenarnya yang perlu diperiksa diterangkan dalam artikel pertama. Jika data itu sah, maka kebenaran pengguna dianggap berjaya.

Untuk melaksanakan algoritma ini, anda boleh menggunakan mana-mana bahasa pengaturcaraan yang digunakan untuk menulis bahagian belakang.

Dalam artikel seterusnya kita akan melihat bagaimana untuk bekerja dengan pemalam Retoken.

Thank you!

Sumber: www.habr.com

Tambah komen