Token perangkat keras/perangkat lunak atau Modul Keamanan Perangkat Keras (HSM) digunakan dengan berbagai aplikasi untuk menyimpan kunci kriptografik (publik &pribadi ) dan sertifikat. Misalnya, NitroKey dan Smartcard-HSM adalah beberapa HSM. Namun, ada juga beberapa alternatif perangkat lunak seperti SoftHSM(v2), yang secara khusus dikembangkan sebagai bagian dari proyek OpenDNSSEC..
SoftHSM pada dasarnya adalah implementasi dari toko kriptografi yang dapat diakses melalui antarmuka PKCS #11. Antarmuka PKCS#11 digunakan untuk berkomunikasi atau mengakses perangkat kriptografi seperti HSM (Hardware Security Modules) dan kartu pintar. Tujuan utama perangkat HSM adalah untuk menghasilkan kunci kriptografi dan menandatangani/mengenkripsi informasi tanpa mengungkapkan kunci pribadi kepada orang lain.
Untuk memberi Anda latar belakang cepat, pengguna OpenDNSSEC tidak mungkin membeli token perangkat keras baru untuk penyimpanan kunci kriptografi. Jadi, untuk mengatasi masalah ini, OpenDNSSEC mulai menyediakan "SoftHSM", implementasi perangkat lunak dari perangkat kriptografi generik dengan antarmuka PKCS#11. SoftHSM dirancang untuk memenuhi persyaratan OpenDNSSEC dan juga bekerja dengan produk kriptografi lainnya.
Ketergantungan
Pustaka kriptografi Botan atau OpenSSL dapat digunakan dengan proyek SoftHSM. Jika Botan digunakan dengan SoftHSM, maka pastikan Botan memiliki dukungan untuk GNU MP (--with-gnump), sesuatu yang akan meningkatkan kinerja selama operasi kunci publik.
Instalasi
SoftHSM tersedia dari situs web OpenDNSSEC, dan dapat diunduh menggunakan perintah wget dengan cara berikut.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Sekarang, ekstrak paket menggunakan perintah tar dengan cara berikut.
Setelah ekstraksi, jalankan skrip configure untuk memeriksa dependensi perangkat lunak SoftHSM.
./configure
Snapshot berikut menunjukkan bahwa skrip konfigurasi menunjukkan kesalahan karena paket "header OpenSSL" tidak ada.
Jadi atasi ini, instal paket "openssl-dev" dengan cara yang disorot seperti di bawah ini.
apt-get install openssl-dev
Output dari skrip configure menunjukkan bahwa semua paket yang diperlukan sekarang tersedia untuk kompilasi alat.
Snapshot berikut menunjukkan opsi yang tersedia untuk skrip konfigurasi alat SoftHSM.
Semua opsi yang ditawarkan oleh skrip configure dapat diakses melalui perintah berikut:
./configure --help
--disable-ecc Disable support for ECC (default enabled)
--disable-gost Disable support for GOST (default enabled)
--disable-visibility Disable hidden visibilty link mode [enabled]
--with-crypto-backend Select crypto backend (openssl|botan)
--with-openssl=PATH Specify prefix of path of OpenSSL
--with-botan=PATH Specify prefix of path of Botan
--with-migrate Build the migration tool. Used when migrating
a SoftHSM v1 token database. Requires SQLite3
--with-objectstore-backend-db
Build with database object store (SQLite3)
--with-sqlite3=PATH Specify prefix of path of SQLite3
--disable-p11-kit Disable p11-kit integration (default enabled)
--with-p11-kit=PATH Specify install path of the p11-kit module, will
override path given by pkg-config
Sekarang, jalankan perintah make untuk mengkompilasi kode sumber SoftHSM.
make
Selanjutnya, jalankan "make install command" untuk menginstal alat SoftHSM.
make install
File konfigurasi
Lokasi default file konfigurasi adalah /etc/softhsm2.conf yang dapat diubah dengan menyetel SOFTHSM2_CONF
variabel lingkungan.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
Pengaturan default SoftHSM ditunjukkan pada cuplikan berikut.
Inisialisasi Soft Token
Langkah pertama untuk menggunakan SoftHSM adalah dengan menggunakan inisialisasi. Kita dapat menggunakan antarmuka "softhsm2-util" atau "PKCS#11" untuk menginisialisasi perangkat. Cuplikan berikut menunjukkan inisialisasi perangkat SoftHSM.
softhsm2-util --init-token --slot 0 --label "Token-1"
PIN Security Officer (SO) digunakan untuk menginisialisasi ulang token dan PIN pengguna diberikan ke aplikasi sehingga dapat berinteraksi dengan token (seperti penggunaan dengan Mozilla Firefox). Itu sebabnya, atur SO dan PIN pengguna. Setelah token diinisialisasi, lebih banyak slot akan ditambahkan secara otomatis ke token baru yang belum diinisialisasi. Token yang diinisialisasi akan dipindahkan ke slot lain berdasarkan nomor seri token. Disarankan untuk menemukan dan berinteraksi dengan token dengan mencari label token atau nomor seri di daftar slot/info token.
Pilihan lain dari "softhsm2-util" ditampilkan di bawah.
Snapshot berikut menunjukkan slot token.
Cadangan
Semua token dan objeknya disimpan di lokasi yang diberikan oleh softhsm2.conf. Dengan demikian, pencadangan dapat dilakukan sebagai salinan file biasa.
softhsm dengan utilitas opensc
Dalam tutorial ini, utilitas PKCS11 dari proyek OpenSC digunakan untuk mengakses perangkat SoftHSM. Detail tentang penginstalan dan penggunaan "OpenSC" tersedia di situs howtoforge.
apt-get install opensc
Snapshot berikut menunjukkan bahwa perintah PKCS#11 dijalankan pada SoftHSM. Sakelar "-t" digunakan untuk menguji mekanisme SoftHSM.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t
Kesimpulan
Dalam artikel ini, kita membahas bagaimana perangkat lunak berbasis perangkat lunak HSM SoftHSM dapat diinstal dan diinisialisasi pada platform Ubuntu. Ini dapat dikonfigurasi menggunakan standar PKCS11 untuk HSM/Smartcard untuk mengakses perangkat.