Infrastruktur Kunci Publik: Utilitas Pembuatan Permintaan Sertifikat Berkualitas

gambar Salah satu objek utama dari Infrastruktur Kunci Publik (PKI / PKI) bersama dengan pasangan kunci adalah sertifikat, yang saat ini sebenarnya merupakan analog dari paspor sipil.

Memiliki sertifikat di tangannya, seorang warga negara dapat memperoleh akses ke portal Layanan Negara, membayar pajak, melindungi email- nya, menandatangani dan mengenkripsi dokumen, dan banyak lagi.

Sertifikat, seperti paspor , dikeluarkan berdasarkan aplikasi dan penyediaan sejumlah dokumen. Daftar dokumen untuk memperoleh sertifikat ada di setiap pusat sertifikasi yang diakreditasi oleh Kementerian Komunikasi (nama baru adalah Kementerian Pengembangan Digital, Telekomunikasi dan Komunikasi Massa). Aplikasi untuk paspor memiliki tanda tangan dari pemohon. Setelah menerima paspor, pemohon akan membubuhkan tanda tangannya di paspor, yang akan disertifikasi oleh karyawan kantor paspor dan stempel resmi. Foto dan kemampuan pemilik untuk mereproduksi tanda tangannya dan memungkinkannya diidentifikasi sebagai pemilik paspor tertentu.

Skema serupa digunakan untuk memperoleh sertifikat kunci verifikasi tanda tangan elektronik (SKEPEP). Pertama, seorang warga negara yang ingin menerima sertifikat harus mendapatkan "keterampilan" dalam membubuhkan tanda tangannya sendiri. "Keterampilan" ini diwujudkan melalui tanda terima oleh pemohon dari pasangan kunci yang berisi kunci publik atau kunci verifikasi tanda tangan elektronik (KEPP) dan kunci pribadi atau kunci tanda tangan elektronik, yang, pada kenyataannya, memungkinkan Anda untuk menghasilkan tanda tangan elektronik dan menandatangani dokumen elektronik. Identifikasi tanda tangan elektronik di bawah dokumen dilakukan sesuai dengan algoritma berikut. Dari sertifikat ditentukan oleh kunci mana (GOST R 34.10-2001, GOST R 34.10-2012 dengan panjang kunci 64 atau 128 byte) dokumen ditandatangani. Jenis kunci menentukan algoritma hashing yang digunakan saat menandatangani dokumen. Itu bisa GOST R 34.11-94 atau GOST R 34.11-2012 dengan panjang hash 256 atau 512 bit. Menurut algoritma yang dipilih, hash dari dokumen sumber dipertimbangkan. Dan berdasarkan nilai hash yang dihitung dari dokumen sumber, kunci publik (KEPP) dan parameternya (semua ini diambil dari sertifikat SKEPEP), keaslian tanda tangan elektronik di bawah dokumen tersebut diperiksa.

Untuk membuat pasangan kunci, berbagai cara perlindungan informasi kriptografi (CPSI) digunakan yang mendukung algoritma kriptografi GOST R 34.10-2001 dan GOST R 34.10-2012. Harus diingat bahwa penggunaan skema tanda tangan GOST R 34.10-2001 untuk menghasilkan tanda tangan setelah 31 Desember 2018 tidak diperbolehkan! Alat perlindungan informasi kriptografi yang menerapkan berbagai algoritma dan protokol kriptografi dapat berupa perangkat lunak dan perangkat keras. Akses ke perlindungan informasi kriptografi dilakukan melalui antarmuka kriptografi. Sebagian besar sistem perlindungan informasi kriptografi bersertifikasi dengan kriptografi Rusia mendukung antarmuka kriptografi PKCS # 11 universal, yang didukung pada semua platform, atau antarmuka Microsoft CSP dan CryptoAPI pada platform MS Windows (selanjutnya disebut sebagai MS CSP). Dua antarmuka kriptografis inilah yang didukung, misalnya, oleh portal Layanan Negara . Kedua jenis perlindungan informasi kriptografis ini akan dipertimbangkan lebih lanjut:


Harus diingat bahwa jika ada keinginan atau kebutuhan untuk bekerja dengan tanda tangan elektronik tidak hanya pada platform Windows, tetapi juga pada platform lain (Linux, macOS, dll.), Maka token PKCS # 11 dengan dukungan untuk kriptografi Rusia harus dipilih.

Selain fungsi utama yang terkait dengan membuat permintaan, utilitas ini menyediakan fungsi untuk bekerja dengan token dan sertifikat:


Kolom gabungan (kotak kombo) โ€œSelect a token:โ€ pada jendela utama berisi daftar alat perlindungan informasi kriptografi yang tersedia untuk menghasilkan pasangan kunci. Jika utilitas pembuatan kueri berjalan pada platform Windows dan penyedia kriptografi CSP dengan dukungan kriptografi Rusia dipasang di dalamnya, maka token MS_CSP virtual akan ditentukan dalam daftar alat perlindungan informasi kriptografi yang tersedia ("Pilih token:"). Jadi, jika ada keinginan untuk menggunakan penyedia kriptografi MS CSP, maka harus diinstal pada sistem sebelum memulai utilitas.

Untuk menambahkan dukungan untuk token PKCS # 11 baru, cukup pilih item menu "Manajemen Token -> Tambahkan Token". Menambahkan dukungan untuk token baru terdiri dari memilih perpustakaan PKCS # 11 untuk jenis plug-in dari token / kartu pintar dan menetapkan nama yang nyaman (nama panggilan). Saat menambahkan dukungan untuk jenis token baru (serta saat memulai utilitas, jika dukungan token sebelumnya ditambahkan) dengan token yang terhubung (dimasukkan), kode PIN akan diperlukan untuk mengaksesnya:


Tetapi ini akan terjadi hanya jika token tidak hanya terhubung, tetapi juga dalam kondisi kerja, mis. diinisialisasi. Periksa token dan, jika perlu, inisialisasi, ubah kode PIN untuk mengaksesnya, dll. nyaman dengan utilitas p11conf :


Dengan memilih item "Manajemen Token-> Token", Anda dapat melihat mekanisme kriptografi dari token tertentu, misalnya, apakah ada dukungan untuk algoritma GOST R 34.10-2012. Untuk MS_CSP token virtual, semua penyedia CSP dengan dukungan untuk algoritma GOST dan mekanisme yang didukung oleh mereka tercantum:


Jika token yang dipilih tidak mendukung jenis pasangan kunci yang dipilih, pesan yang sesuai akan ditampilkan:


Sebelum melanjutkan langsung mengisi bidang permintaan, perlu memutuskan untuk tujuan apa sertifikat diperlukan, yaitu tentukan "Peran sertifikat." Saat ini, peran tersebut telah mengakumulasi lebih dari selusin:


Dan setiap peran dikaitkan dengan banyak OID berbeda yang termasuk dalam sertifikat. Jadi, misalnya, untuk akses ke portal layanan publik, diperlukan tawaran berikut:

{} {clientAuth, emailProtection, 1.3.6.1.4.1.311.20.2.2, 1.2.643.100.2.1, 1.2.643.2.2.34.6, 1.3.6.1.5.5.7.3.2, 1.3.6.1.5.5.7.3.4, 1.2.643.5.1.24.2.1.3, 1.2.643.6.14, 1.2.643.3.215.4, 1.2.643.3.215.5, 1.2.643.3.215.6, 1.2.643.3.215.7, 1.2.643.3.215.8, 1.2.643.3.215.9, 1.2.643.3.215.11, 1.2.643.3.215.12, 1.2.643.3.215.13, 1.3.6.1.4.1.40870.1.1.1, 1.2.643.2.64.1.1.1, 1.2.643.3.5.10.2.12, 1.2.643.6.3.2, 1.2.643.5.1.24.2.46, 1.2.643.6.45.1.1.1, 1.2.643.5.1.24.2.30, 1.2.643.5.1.28.2, 1.2.643.5.1.28.3, 1.2.643.3.202.1.8} 

OID untuk peran lain (misalnya, "Situs Gazprombank", "Konsumen Alkohol", dll.) Dapat ditemukan dalam kode sumber utilitas (variabel oid_roles_bad, operator:

 set oid_roses_bad {. . .} 
)
Kehadiran begitu banyak cairan sulit dipahami. Kita berbicara tentang sertifikat yang memenuhi syarat, di mana ada TIN oid, PSRN, SNILS, dll., Yang secara unik mengidentifikasi individu dan badan hukum dan, tampaknya, ini akan cukup untuk mengakses portal layanan Negara, dan lainnya juga. Tapi, Dura lex, sed lex - Hukum itu keras, tapi itu hukum.

Dalam bidang "Nama CIPF", perlu untuk menunjukkan nama CIPF (token / smart card, CSP), yang tertulis dalam sertifikat kesesuaian (jangan dikacaukan dengan sertifikat X509) dari Layanan Keamanan Federal Rusia atau dokumen serupa lainnya, salinan yang harus disediakan pada saat pembelian CIPF. Selanjutnya, nilai bidang ini akan dimasukkan dalam sertifikat.

Jadi, setelah memutuskan sistem perlindungan informasi kriptografis dan pasangan kunci, Anda dapat melanjutkan untuk mengisi aplikasi / permintaan elektronik untuk sertifikat kunci verifikasi tanda tangan elektronik (SKEPEP):


Bidang pertama yang harus diisi adalah "Nama Umum", di mana nama lengkap pemegang sertifikat yang akan datang dimasukkan. Untuk seorang individu, ini adalah nama lengkap seperti pada paspor. Untuk badan hukum, ini adalah nama perusahaan dari register. Informasi ini untuk badan hukum akan secara otomatis diduplikasi di bidang "Nama Organisasi" ("O"):


Saat mengisi formulir, kebenaran mengisi bidang TIN, BIN, SNIL diperiksa (saat Anda memasukkan angka, bidang berubah merah, bidang yang diisi dengan benar berubah kehijauan), alamat email:


Setelah mengisi semua bidang permintaan dan mengklik tombol "Selesai", permintaan sertifikat akan diterima pada akhirnya:


Dalam proses membuat permintaan, pasangan kunci akan dihasilkan pada token yang dipilih. Pada saat yang sama, jika token virtual "MS_CSP" dipilih sebagai token, yang, pada gilirannya, mendukung berbagai media untuk menyimpan pasangan kunci, maka akan diusulkan untuk memilih media tertentu:


Ingatlah bahwa pasangan kunci berisi dua kunci: privat dan publik. Kunci publik, juga disebut kunci verifikasi tanda tangan elektronik, dikirim ke permintaan sertifikat. Untuk melihat permintaan yang dihasilkan, yang berisi kunci publik, gunakan menu "Sertifikat-> Lihat permintaan":


Kunci pribadi tetap dengan pemohon pada token-nya, kode PIN (kata sandi) yang darinya harus disimpan sebagai biji matanya. Dan karena ada korespondensi yang jelas antara kunci publik dan pribadi, Anda selalu dapat memeriksa siapa yang memiliki permintaan sertifikat, dan kemudian sertifikat itu sendiri, tanda tangan pada dokumen, dll.

Sekarang dengan semua dokumen yang diperlukan, dengan permintaan yang dihasilkan pada flash drive, Anda dapat pergi ke pusat sertifikasi terdekat dan menerima sertifikat. Jadi, permintaan datang untuk mengeluarkan sertifikat di salah satu CA, dibuat dengan mempertimbangkan Hukum Federal 6 April 2011. 63- "Tentang tanda tangan elektronik":


Permintaan ke CA akan melalui tahapan impor, peninjauan, persetujuan, dan penerbitan sertifikat untuk permintaan ini:


Sertifikat yang dikeluarkan akan dipublikasikan pada salah satu layanan CA, dari mana ia dapat diunduh. Dan sekarang sudah cukup untuk sertifikat yang dikeluarkan untuk diekspor ke flash drive pemohon:


Dan sekarang, ketika sertifikat diterima, itu tetap menaruhnya di CIPF (PKCS # 11, MS CSP) (Sertifikat-> Impor x509):


Untuk memverifikasi bahwa sertifikat terletak pada token, Anda dapat melihat konten token / smart card (Sertifikat-> Lihat x509 pada token):


Nah, jadi itu adalah "baju besi" (Beri saya kertas KERTAS! Final Paper, Armor. (Dog Heart c / f)), hubungkan token ke browser Firefox dengan dukungan untuk kriptografi Rusia dan temukan sertifikat yang dikeluarkan dalam sertifikat pribadi (termasuk sertifikat tersebut, yang tokennya memiliki kunci pribadi):


Utilitas CreateCSRCAFL63 dikembangkan pada Tcl / Tk . Untuk mengakses fungsi kriptografis dari MS CSP dan token PKCS # 11, paket cwapi telah dikembangkan yang mengimplementasikan persyaratan untuk perpustakaan C oleh Tcl. Tidak sulit untuk menerapkan persyaratan ini, tetapi terkadang dibutuhkan banyak waktu karena rutinitasnya. Dan di sini SWIG utilitas publik datang untuk menyelamatkan . , yang memungkinkan Anda membuat modul antarmuka antara pustaka C / C ++ dan bahasa lainnya. Ini bukan hanya Tcl, tetapi juga Java dan lainnya. Proyek ini didokumentasikan dengan sangat baik dan memiliki banyak contoh. Menggunakannya tidak sulit. Dalam kasus kami, untuk mendapatkan modul antarmuka, file sumber sederhana cwapi.i ditulis untuk utilitas swig:

 %module cwapi %inline %{ #include "cwapi.h" %} %include "cwapi_SWIG.h" 

File cwapi.h berisi deskripsi fungsi dari proyek cwapi utama:
 #ifdef __cplusplus extern "C" { #endif int CW_Initialize (char *configdir); int CW_Finalize (); int addp11mod (char *nickname, char *library); int remp11mod (char *nickname); char * lmod (); char * ltok (); char * lcert (char *token, int priv_cert); char* createreq (char *token, char *subject, char *keyusage, int keyparams, int pem, char *skzi, char* role); char* viewx509 (char *nickname, int CertOrReq); char* x509pem (char *nickname); char* x509fromfile(char *token, char *infile, char *trusts); int delcert (char *nickname, int priv_cert); int p12tofile (char *token, char *nickname, char *outfile); char* p12fromfile(char *token, char *infile); char* lmech(char* token); char* tinfo(char* token); #ifdef __cplusplus } #endif 

Dengan menjalankan perintah:

 $export SWIG_LIB=/usr/local/swig-3.0.12/Lib $/usr/local/swig-3.0.12/swig -tcl8 -o cwapi_wrap.c cwapi_.i $ 

dalam file cwapi_wrap.c kita mendapatkan modul antarmuka yang sudah jadi. Tambahkan ke proyek cwapi, bangun kembali dan dapatkan paket baru, yang digunakan dalam utilitas ini.
Untuk mendapatkan kit distribusi, sangat mudah untuk menggunakan utilitas freewrap , sementara perpustakaan cwapi juga termasuk langsung dalam paket distribusi. Utilitas dan distribusi kode sumber tersedia untuk platform Windows dan Linux.

Saya ingin menyebutkan utilitas lain, yaitu tcl2c . Utilitas ini โ€œmembungkusโ€ kode tcl / tk ke dalam kode C.

Untuk mendapatkan kode yang dapat dieksekusi, jalankan saja perintah:

 $cc -o create_csr_ create_csr.c -ltcl -ltk $ 

Distribusi untuk platform Linux juga mencakup distribusi C dengan koneksi statis paket cwapi.

Source: https://habr.com/ru/post/id412993/


All Articles