Bekerja dengan perlindungan informasi kriptografis dan operator kunci perangkat keras di Linux


Menyimpan kunci pada token dan kartu pintar memberikan perlindungan tambahan terhadap penyusup eksternal dan internal, termasuk mereka yang memiliki tingkat akses tertentu ke sistem informasi dan peralatan.

Hari ini saya akan memberi tahu Anda bagaimana kami melindungi kunci enkripsi dan tanda tangan elektronik dalam sistem informasi kami, dan saya akan melakukan ini dalam panduan yang terinci dan diilustrasikan dengan baik untuk menyiapkan SUSE Linux Enterprise Server 12 SP3 untuk bekerja dengan token Aladdin JaCarta PKI dan CryptoPro CSP KC2 4.0.9944.

Ada beberapa alasan untuk menerbitkan panduan ini:

Alasan 1


Dokumentasi resmi tentang Aladdin-RD JaCarta lebih disesuaikan untuk sistem operasi Astra Linux dan ALT Linux, disertifikasi oleh Kementerian Pertahanan, FSTEC dan FSB sebagai sarana untuk melindungi informasi.

Alasan 2


Instruksi terbaik untuk mengkonfigurasi interaksi dengan media perangkat keras di Linux, yang ditemukan, juga dari wiki.astralinux.ru - Bekerja dengan CryptoPro CSP

Alasan 3


UPD 04/16/2019: Dalam proses pengaturan lingkungan dan peralatan, ternyata pembawa yang pertama kali tersedia sama sekali bukan JaCarta PKI Nano, seperti yang diharapkan, tetapi perangkat yang beroperasi di SafeNet Authentication Client eToken PRO pada mode PRO.

UPD 04/16/2019: Setelah Bank membutuhkan perangkat yang dapat bekerja di infrastruktur yang sama dengan eToken PRO (Java). Perangkat seperti itu, perusahaan "ZAO Aladdin R.D." menawarkan token JaCarta PRO, yang dipilih oleh bank. Namun, pada tahap pembentukan artikel dan dokumen pengiriman, seorang karyawan perusahaan melakukan kesalahan. Alih-alih model JaCarta PRO, JaCarta PKI tidak sengaja masuk ke artikel dan dokumen pengiriman.

UPD 04/16/2019: Saya berterima kasih kepada perusahaan Aladdin R.D. untuk membantu mencari tahu dan mengungkap kebenaran.

Tidak ada arti politis dan tersembunyi dalam kesalahan ini, tetapi hanya kesalahan teknis karyawan dalam menyiapkan dokumen. Token JaCarta PRO adalah produk dari perusahaan Aladdin R.D. Applet melakukan bagian fungsional dikembangkan oleh perusahaan "ZAO Aladdin R.D."


PRO eToken ini untuk pesta yang dirilis sebelum 1 Desember 2017.
Setelah tanggal ini, perusahaan "Aladdin R.D." Berhenti menjual perangkat eToken PRO (Java).

Berjalan sedikit di depan, saya harus mengatakan bahwa bekerja dengannya dikonfigurasi melalui driver yang sesuai - SafenetAuthenticationClient-10.0.32-0.x86_64 , yang hanya dapat diperoleh untuk mendukung Aladdin R.D. pada aplikasi online yang terpisah.

Di CryptoPro CSP, untuk bekerja dengan token ini, diperlukan untuk menginstal paket cprocsp-rdr-emv-64 | Modul dukungan EMV / Gemalto .

Token ini ditentukan dan ditanggapi. Menggunakan utilitas SACTools dari paket SafenetAuthenticationClient , dimungkinkan untuk menginisialisasi itu. Tetapi ketika bekerja dengan perlindungan informasi kriptografi, ia berperilaku sangat aneh dan tidak terduga.

Itu ditunjukkan sebagai berikut, pada perintah:

csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (205D325E5842) 00 00\alfa_shark' -check 

Jawabannya adalah semuanya baik-baik saja:

 [ErrorCode: 0x00000000] 

Tetapi segera setelah mencoba membaca kunci secara terprogram, pemeriksaan yang sama mulai menghasilkan kesalahan:

 [ErrorCode: 0x8009001a] 

Menurut daftar kode kesalahan dari model objek komponen Microsoft COM Error Codes (Security and Setup)

 NTE_KEYSET_ENTRY_BAD 0x8009001A Keyset as registered is invalid. 

"Set kunci tidak valid" - alasan untuk pesan ini mungkin terletak pada chip Gemalto lama, firmware dan applet, atau pada driver mereka untuk OS yang tidak mendukung standar generasi ES baru dan fungsi hash GOST R 34.10-2012 dan GOST R 34.11- 2012

Dalam kondisi ini, token diblokir. Indeks perlindungan informasi kriptografi mulai menunjukkan keadaan pembaca yang tidak relevan dan wadah utama. Restart penyedia layanan cprocspractor layanan cprocsp , layanan pcscd token dan kartu pintar dan seluruh sistem operasi tidak membantu, hanya menginisialisasi ulang.

Dalam keadilan, harus dicatat bahwa SafeNet eToken PRO bekerja dengan benar dengan tombol GOST R 34.10-2001 di OS Windows 7 dan 10.

Anda dapat mencoba menginstal CryptoPro CSP 4.0 FCN (Gemalto) , tetapi tujuannya adalah untuk melindungi ES dan kunci enkripsi kami dengan produk FSB dan FSTEC keluarga JaCarta, yang mendukung standar baru.

Masalahnya dipecahkan dengan mengambil token JaCarta PKI asli dalam casing biasa (XL).

Tetapi banyak waktu dihabiskan untuk mencoba agar Safenet eToken PRO bekerja. Saya ingin menarik perhatian pada ini dan, mungkin, melindungi seseorang dari ini.

Alasan 4


Terkadang Anda sendiri perlu kembali ke artikel dan instruksi lama. Ini nyaman ketika informasi ditempatkan di sumber eksternal. Jadi terima kasih kepada Habr untuk kesempatan ini.

Panduan pengaturan


Setelah memasang token JaCarta PKI di port USB server dan memulai sistem, kami memverifikasi bahwa perangkat baru terdeteksi dan muncul dalam daftar:

lsusb



Dalam kasus kami, itu adalah Bus 004 Perangkat 003: ID 24dc: 0101

Untuk mendiagnosis pembaca, Anda dapat menggunakan utilitas pcsc-tools dari keamanan: proyek chipcard (software.opensuse.org) .

Ini diluncurkan oleh perintah:

pcsc_scan



Sampai semua paket yang diperlukan diinstal, informasi tentang token tidak akan ditampilkan.

Menginstal driver dan perangkat lunak untuk bekerja dengan JaCarta PKI


Pada halaman Dukungan situs "Aladdin R.D." Kami mengunduh Dokumentasi dan perangkat lunak untuk bekerja hanya dengan JaCarta PKI

Menurut JaCarta untuk Panduan Implementasi Linux, klausul 4.2., Langkah pertama adalah menginstal pcsc-lite , ccid dan libusb .
Agar utilitas manajemen JaCarta berfungsi, komponen berikut ini harus diinstal:

  • PC / SC Lite - lapisan perantara untuk menyediakan akses ke kartu pintar sesuai dengan standar PC / SC, paket pcsc-lite.
  • Perpustakaan Ccid dan Libib untuk bekerja dengan kunci USB, kartu pintar dan pembaca kartu pintar.
Kami memeriksa ketersediaan paket-paket ini dan menginstal:

zypper search pcsc-lite



zypper search libusb



zypper install pcsc-lite





zypper search CCID



zypper install pcsc-ccid



zypper search CCID



zypper install libusb



Sebagai hasilnya, paket pcsc-lite diperbarui, CCID diinstal, libusb tidak diperlukan tindakan.

Dua perintah berikut menginstal paket dengan driver dan perangkat lunak secara langsung untuk bekerja dengan JaCarta PKI:

zypper install idprotectclientlib-637.03-0.x86_64.rpm



zypper install idprotectclient-637.03-0.x86_64.rpm



Periksa apakah driver dan perangkat lunak untuk JaCarta PKI diinstal:

zypper search idprotectclient



Ketika mencoba untuk membuat SafeNet eToken PRO berfungsi, saya menemukan informasi bahwa paket pembuka - Library for Smart Card Reader yang sudah diinstal di SLES dapat bertentangan dengan pcsc-lite - Perpustakaan Kartu Cerdas PCSC , instalasi yang membutuhkan Aladdin R.D.

zypper search openct



Karenanya, kami menghapus paket pembuka:

rpm -e openct

Sekarang semua driver dan perangkat lunak yang diperlukan untuk bekerja dengan token telah diinstal.

Kami melakukan diagnosa menggunakan utilitas pcsc-tools dan memastikan bahwa JaCarta terdeteksi di sistem operasi:

pcsc_scan



Menginstal paket CryptoPro CSP


Saat memasang CryptoPro CSP secara default, paket yang diperlukan untuk bekerja dengan token dan kartu pintar tidak ada.

zypper search cprocsp



Menginstal komponen JaCarta untuk komponen dukungan CryptoPro CSP di CSP

zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm



Beberapa komponen memiliki ketergantungan. Jadi, misalnya, jika Anda mencoba untuk menginstal paket dukungan SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm - modul dukungan EMV / Gemalto , kami akan mendapatkan pesan tentang perlunya menginstal komponen dasar dari dukungan pembaca CSP terlebih dahulu cprocsp -rdr-pcsc-64-4.0.9944-5.x86_64.rpm - Komponen PC / SC untuk pembaca CryptoPro CSP :

 zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/c] (c): c 

Instal paket dukungan dasar untuk pembaca dan media utama:

zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm



zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm

Sekarang Anda dapat menginstal modul untuk bekerja dengan jenis media lainnya dan komponen GUI:

zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm



 zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm 



Periksa konfigurasi final CryptoPro CSP:

 zypper search cprocsp Loading repository data... Reading installed packages... 


S | Name | Summary | Type
---+-----------------------------+----------------------------------------------------+--------
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package




Untuk menerapkan perubahan, kami memulai kembali layanan penyedia kriptografi dan memeriksa statusnya:

 /etc/init.d/cprocsp restart /etc/init.d/cprocsp status 



Pengaturan dan diagnostik CryptoPro CSP


Periksa apakah penyedia kriptografi melihat token kami dan jenis media lain yang tersedia dengan perintah berikut:

/opt/cprocsp/bin/amd64/csptest -card -enum -v –v



/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251



/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251



Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00 adalah media kami.

Mengikuti instruksi dari CryptoPro CSP untuk Linux. Konfigurasikan , lakukan registrasi di penyedia kriptografi:

 /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00" 



Sebagai hasil dari eksekusi di file konfigurasi /etc/opt/cprocsp/config64.ini
sebuah entri akan ditambahkan ke bagian [KeyDevices \ PCSC]:

[KeyDevices\PCSC\"Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"\Default]


Untuk memenuhi persyaratan Formulir CSP CryptoPro, Ketentuan Penggunaan dan Panduan Administrator Keamanan:
Penggunaan CryptoPro CSP CIP versi 4.0 dengan mode kontrol tombol yang ditingkatkan tidak diperbolehkan. Dimasukkannya mode ini dijelaskan dalam dokumen ZHTYA.00087-01 91 02. Panduan Administrator Keamanan.
Hal ini diperlukan untuk memungkinkan peningkatan kontrol penggunaan kunci:

 /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 1 

Periksa apakah mode ini diaktifkan:

cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl



Kami memulai kembali layanan penyedia kriptografi:

 /etc/init.d/cprocsp restart /etc/init.d/cprocsp status 

Setelah dimulai ulang, kami memeriksa bahwa tidak ada kesalahan dalam pekerjaan penyedia dengan operator utama:

/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext



/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique

 CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA AcquireContext: OK. HCRYPTPROV: 16052291 alfa_shark1 |SCARD\JACARTA_4E3900154029304C\CC00\E9F6 OK. Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec [ErrorCode: 0x00000000] 

Bekerja dengan Token JaCarta PKI


Mari kita jalankan program Xming (penerusan X11) di stasiun kami sehingga kami dapat membuka dan bekerja dengan antarmuka grafis dari utilitas yang diperlukan melalui SSH.



Setelah menginstal IDProtectClient - perangkat lunak untuk bekerja dengan JaCarta PKI, dua file muncul di server di folder / usr / share / aplikasi :

Athena-IDProtectClient.desktop
Athena-IDProtectManager.desktop

Ini adalah pintasan tempat Anda dapat melihat opsi startup untuk utilitas Exec = / usr / bin / SACTools

Jalankan utilitas IDProtectPINTool .

Dengan menggunakannya, kode akses PIN untuk token diatur dan diubah.

/usr/bin/IDProtectPINTool



Saat menginisialisasi token untuk pertama kalinya, tautan yang berisi kode PIN (kata sandi) dari operator utama secara default akan berguna

Program IDProtect_Manager memungkinkan Anda untuk melihat informasi tentang token dan wadah dengan kunci dan sertifikat:

/usr/bin/IDProtect_Manager



Untuk mengakses wadah dengan kunci, Anda harus memasukkan kata sandi:





Untuk bekerja dengan Klien Otentikasi SafeNet eToken PRO ada program serupa - Monitor Klien Otentikasi SafeNet dan Alat Klien Otentikasi SafeNet , yang dijalankan seperti ini:

 /usr/bin/SACMonitor /usr/bin/SACTools 



Lebih mudah untuk melakukan operasi secara langsung dengan wadah utama di antarmuka penyedia kriptografi CryptoPro JavaCSP:

/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane




Untuk menampilkan informasi tentang isi wadah dengan kunci, Anda dapat menjalankan perintah:

 /opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark1' -info 

Untuk mendiagnosis wadah, gunakan perintah yang sama dengan sakelar –check

 /opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark' –check 

Anda harus memasukkan kata sandi untuk wadah:





Pengambilan Kunci Perangkat Lunak


Secara umum, contoh pengambilan kunci pribadi dan sertifikat kunci publik dari wadah pada token menggunakan CryptoPro Java CSP adalah sebagai berikut:

 import ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry; import ru.CryptoPro.JCP.params.JCPProtectionParameter; KeyStore keyStore = KeyStore.getInstance("Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00", "JCSP"); keyStore.load(null, null); JCPPrivateKeyEntry entry = null; X509Certificate certificate = null; PrivateKey privateKey = null; try { entry = (JCPPrivateKeyEntry) keyStore.getEntry(keyAlias, new JCPProtectionParameter(pwd)); certificate = (X509Certificate) entry.getCertificate(); privateKey = entry.getPrivateKey(); } catch (UnrecoverableEntryException | NullPointerException e) { LOGGER.log(Level.WARNING, PRIVATE_KEY_NOT_FOUND + keyAlias + ExceptionUtils.getFullStackTrace(e)); } 


Jika Anda bertindak seperti ini:

 Key key = keyStore.getKey(keyAlias, pwd); 

maka penyedia kriptografi akan mencoba menampilkan permintaan untuk memasukkan kata sandi ke wadah melalui jendela konsol atau GUI.

Hasil


Token token pembawa kunci dipasang di port USB internal server.

Perangkat keras server itu sendiri disegel dan ditempatkan di ruangan dengan akses terbatas.

Langkah-langkah tersebut dapat meningkatkan tingkat perlindungan sistem informasi kami dari pencurian dan kompromi tanda tangan elektronik atau kunci enkripsi, baik jarak jauh melalui jaringan dan secara fisik.

Tautan yang bermanfaat


  1. Dokumentasi Jaadarta Aladdin-RD
  2. wiki.astralinux.ru - Bekerja dengan CryptoPro CSP
  3. Daftar kode kesalahan model objek komponen Kode Kesalahan COM Microsoft (Keamanan dan Setup)
  4. CryptoPro CSP 4.0 CSP 4.0 FCN (Gemalto)
  5. Utilitas diagnostik Pcsc-tools reader dari keamanan: proyek chipcard (software.opensuse.org)
  6. CryptoPro CSP untuk Linux. Kustomisasi.
  7. PIN operator kunci (kata sandi) default Aladdin-RD

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


All Articles