Infrastruktur Kunci Publik: Otoritas Sertifikasi Berdasarkan Utilitas OpenSSL dan SQLite3 (Postcryptum)

Dalam salah satu komentar yang dikirim oleh garex , sebagai tanggapan terhadap pernyataan :
Tetapi hari ini dalam versi standar openssl tidak ada dukungan untuk GOST R 34.11-2012 dan GOST R 34.10-2012. Selain itu, dalam versi 1.1, dukungan kriptografi GOST dikecualikan dari pengiriman standar ("Mesin GOST sudah usang dan karena itu telah dihapus.")
dikatakan:
Apa yang tidak seperti ini yang "dihapus?" github.com/gost-engine/engine
Contoh pembuatan : github.com/rnixik/docker-openssl-gost/blob/master/Dockerfile

Diputuskan untuk menguji versi openssl ini sebagai bagian dari CAFL63 CA. Menggunakan contoh build yang ditentukan, openssl sendiri dan mesin GOST dirakit dan diinstal tanpa masalah (semuanya telah diuji di lingkungan Linux dan diinstal di direktori / usr / local / ssl). Secara alami, untuk bekerja dengan kriptografi GOST (kita berbicara tentang GOST R 34.10-2012, GOST R 34.11-2012), Anda perlu mendaftarkan koneksi mesin gost.so di file konfigurasi openssl.cnf:

. . # OpenSSL default section [openssl_def] engines = engine_section # Engine scetion [engine_section] gost = gost_section # Engine gost section [gost_section] engine_id = gost dynamic_path = /usr/local/ssl/lib/engines-1.1/gost.so default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet . . . 

Anda dapat memeriksa koneksi mesin tamu dengan menjalankan perintah:

 bash-4.3$ /usr/local/ssl/bin/openssl ciphers . . . GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89 . . . bash-4.3$ 

Untuk melihat algoritma hash berbasis GOST yang didukung, jalankan saja perintah berikut:

 bash-4.3$ /usr/local/ssl/bin/openssl list –digest-algorithms| grep md_gost md_gost12_256 md_gost12_512 md_gost94 bash-4.3$ 

Seperti yang Anda lihat, dengan dukungan kriptografi Rusia di versi openssl dengan mesin terhubung, semuanya baik-baik saja.

Jika Anda menghubungkan utilitas openssl (Tools-> Settings-> System) di CA yang dibuat sebelumnya, maka sekilas itu akan berfungsi. Anda akan dapat melihat permintaan dan sertifikat. Dalam hal ini, semua bidang yang termasuk dalam DN (nama yang dibedakan) (TIN, PSRN, SNILS) ditampilkan dengan benar. Tapi di sini ada ekstensi, seperti issuerSignTool, subjectSignTool dan lainnya, openssl menolak untuk menyebutkan:

gambar

Perlu dicatat bahwa ekstensi ini merupakan bagian yang tidak terpisahkan dari SKEPP (verifikasi kunci sertifikat yang memenuhi syarat untuk tanda tangan elektronik), persyaratan yang disetujui oleh perintah Layanan Keamanan Federal pada tanggal 27 Desember 2011 N 795.

Analisis utilitas openssl menunjukkan bahwa itu tidak mendukung ekstensi isserSignTool, objectSignTools, dan lainnya yang diperkenalkan oleh TK-26 untuk SKEPEP:
...
Galat Memuat bagian ekstensi permintaan v3_req
139974322407168: error: 22097081: X509 V3 rutin: do_ext_nconf: ekstensi tidak dikenal: crypto / x509v3 / v3_conf.c: 82:
139974322407168: kesalahan: 22098080: X509 V3 rutin: X509V3_EXT_nconf: kesalahan dalam ekstensi: crypto / x509v3 / v3_conf.c: 47: nama = subjectSignTool, nilai = Nama sistem perlindungan informasi kriptografi pengguna
...
Galat Memuat bagian ekstensi permintaan v3_req
140154981721856: error: 22097081: X509 V3 rutin: do_ext_nconf: ekstensi tidak dikenal: crypto / x509v3 / v3_conf.c: 82:
140154981721856: kesalahan: 22098080: X509 V3 rutin: X509V3_EXT_nconf: kesalahan dalam ekstensi: crypto / x509v3 / v3_conf.c: 47: nama = subjectSignTool, nilai = Nama sistem perlindungan informasi kriptografi pengguna
...
Kesalahan Memuat ekstensi ekstensi cert_ext
140320065406720: error: 0D06407A: rutin encoding asn1: a2d_ASN1_OBJECT: angka pertama terlalu besar: crypto / asn1 / a_object.c: 61:
140320065406720: kesalahan: 2208206E: X509 V3 rutin: r2i_certpol: pengidentifikasi objek tidak valid: crypto / x509v3 / v3_cpols.c: 135: bagian :, nama: KC1ClassSignTool, nilai:
140320065406720: kesalahan: 22098080: X509 V3 rutin: X509V3_EXT_nconf: kesalahan dalam ekstensi: crypto / x509v3 / v3_conf.c: 47: name = CertificatePolicies, nilai = KC1ClassSignTool, KC2ClassSignTool
..
Dalam hal ini, CAFL63 CA juga menolak untuk membuat permintaan dan menerbitkan sertifikat untuk openssl, karena secara ketat memonitor kepatuhan terhadap persyaratan untuk CLEP:



Pada saat yang sama, kadang-kadang persyaratan ini berlebihan, misalnya, ketika menggunakan sertifikat dalam proses pendidikan, untuk manajemen dokumen internal (penandatanganan, enkripsi dokumen), untuk https akses ke sistem perusahaan (situs, portal, dll., Yang disebut, SSL- sertifikat).
Berdasarkan hal ini, revisi CAFL63 dilakukan. Sekarang menjadi mungkin untuk tidak mengisi bidang ekstensi (Alat-> Pengaturan-> Sistem):



Utilitas CAFL63 memungkinkan Anda untuk melihat permintaan pihak ketiga (Sertifikat-> Melihat sertifikat pihak ketiga atau tombol "Lihat eksternal X509" pada tab "Sertifikat"), tetapi dengan kelemahan yang sama:



Revisi ini memungkinkan hari ini untuk menggunakan CAFF63 CA untuk tujuan pendidikan, untuk mengatur alur kerja perusahaan, dll.

Itu saja yang ingin saya sampaikan di dalam postscript.

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


All Articles