Panduan ini memberikan contoh perintah pkcs11-tool
untuk menggunakan kunci Cloud HSM di
Debian 11 (Bullseye) menggunakan library PKCS #11. Perintah yang disertakan dalam
petunjuk ini mungkin memerlukan perubahan berdasarkan OS atau distribusi Linux Anda.
Sebelum memulai
Sebelum melanjutkan, selesaikan langkah-langkah di Menggunakan kunci Cloud HSM dengan OpenSSL.
Menggunakan enkripsi dan dekripsi simetris
Bagian berikut menunjukkan cara mengenkripsi dan mendekripsi menggunakan kunci enkripsi simetris, OpenSSL, dan alat pkcs11.
Prasyarat
Buat kunci enkripsi simetris mentah Cloud HSM. Untuk membuat kunci Cloud HSM, tetapkan Level perlindungan ke HSM saat membuat kunci baru.
Catat algoritma enkripsi simetris mentah yang Anda pilih untuk kunci. Setiap algoritma memiliki persyaratannya sendiri untuk padding, vektor inisialisasi, dan data tambahan yang diautentikasi.
Buat file input yang berisi data yang ingin Anda enkripsi.
Enkripsi
Untuk mengenkripsi file teks, jalankan perintah berikut:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --encrypt \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
--iv INITIALIZATION_VECTOR \
--input-file INPUT_TEXT_FILE_PATH \
--output-file ENCRYPTED_TEXT_FILE_PATH
Ganti kode berikut:
PATH_TO_LIBKMSP11_SO
: jalur ke modul PKCS#11—misalnya,/usr/local/lib/libkmsp11.so
.MECHANISM
: mekanisme yang akan digunakan, berdasarkan algoritma kunci—misalnya,AES-CBC-PAD
.HSM_KEY_NAME
: nama kunci Cloud HSM yang akan digunakan untuk enkripsi.INITIALIZATION_VECTOR
: nilai vektor inisialisasi yang akan digunakan sebagai bagian dari enkripsi.INPUT_TEXT_FILE_PATH
: jalur ke file input yang ingin Anda enkripsi.ENCRYPTED_TEXT_FILE_PATH
: jalur tempat Anda ingin menyimpan file teks terenkripsi.
Dekripsi
Untuk mendekripsi file teks, jalankan perintah berikut:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --decrypt \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
--iv INITIALIZATION_VECTOR \
--input-file ENCRYPTED_TEXT_FILE_PATH \
--output-file DECRYPTED_TEXT_FILE_PATH
Ganti kode berikut:
PATH_TO_LIBKMSP11_SO
: jalur ke modul PKCS#11—misalnya,/usr/local/lib/libkmsp11.so
.MECHANISM
: mekanisme yang akan digunakan, berdasarkan algoritma kunci—misalnya,ECDSA
.HSM_KEY_NAME
: nama kunci Cloud HSM yang digunakan untuk mengenkripsi file yang ingin Anda dekripsi.INITIALIZATION_VECTOR
: nilai vektor inisialisasi yang akan digunakan sebagai bagian dari enkripsi.ENCRYPTED_TEXT_FILE_PATH
: jalur ke file yang ingin didekripsi.DECRYPTED_TEXT_FILE_PATH
: jalur tempat Anda ingin menyimpan file teks yang didekripsi.
Menggunakan enkripsi dan dekripsi asimetris
Bagian berikut menunjukkan cara mengenkripsi dan mendekripsi menggunakan kunci enkripsi asimetris, OpenSSL, dan alat pkcs11.
Prasyarat
Buat Kunci Dekripsi Asimetris Cloud HSM dan download kunci publiknya.
Buat file input dengan beberapa teks.
echo Hello World! >> input.txt
Enkripsi
Untuk mengenkripsi file teks, jalankan perintah berikut:
openssl pkeyutl -in INPUT_TEXT_FILE_PATH -encrypt -pubin \
-inkey PUBLIC_KEY \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha256 \
-pkeyopt rsa_mgf1_md:sha256 > ENCRYPTED_TEXT_FILE_PATH
Ganti kode berikut:
INPUT_TEXT_FILE_PATH
: jalur ke file input yang ingin Anda enkripsi.PUBLIC_KEY
: jalur ke kunci publik.ENCRYPTED_TEXT_FILE_PATH
: jalur tempat Anda ingin menyimpan file teks terenkripsi.
Dekripsi
Untuk mendekripsi file teks, jalankan perintah berikut:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO \
--decrypt --mechanism RSA-PKCS-OAEP --slot 0 --hash-algorithm=sha256 \
--mgf MGF1-SHA256 --label HSM_KEY_NAME --type privkey \
-i ENCRYPTED_TEXT_FILE_PATH \
-o OUTPUT_TEXT_FILE_PATH
Ganti kode berikut:
PATH_TO_LIBKMSP11_SO
: jalur ke modul PKCS#11 (path/to/libkmsp11.so).HSM_KEY_NAME
: nama kunci Cloud HSM yang sesuai dengan kunci publik yang digunakan untuk mengenkripsi file teks.ENCRYPTED_TEXT_FILE_PATH
: jalur ke file yang ingin didekripsi.OUTPUT_TEXT_FILE_PATH
: jalur tempat Anda ingin menyimpan output yang didekripsi.
Menandatangani dan Memverifikasi
Bagian berikut menunjukkan cara menandatangani dan memverifikasi menggunakan kunci penandatanganan asimetric dan alat pkcs11.
Prasyarat
Buat Kunci Tanda Tangan Asimetris Cloud HSM.
Buat file dengan data input yang di-hash yang ingin Anda tanda tangani.
Tanda tangan
Untuk menandatangani file teks, jalankan perintah berikut:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --sign \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
-i INPUT_TEXT_FILE_PATH \
-o OUTPUT_SIGNATURE_FILE_PATH
Ganti kode berikut:
PATH_TO_LIBKMSP11_SO
: jalur ke modul PKCS#11, misalnyapath/to/libkmsp11.so
.HSM_KEY_NAME
: nama kunci Cloud HSM yang ingin Anda gunakan untuk penandatanganan.MECHANISM
: mekanisme yang akan digunakan, berdasarkan algoritma kunci. Contoh,ECDSA
.INPUT_TEXT_FILE_PATH
: jalur ke file input yang ingin Anda tanda tangani.OUTPUT_SIGNATURE_FILE_PATH
: jalur tempat Anda ingin menyimpan file tanda tangan.
Verifikasi
Untuk memverifikasi file tanda tangan, jalankan perintah berikut:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --verify \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
-i INPUT_TEXT_FILE_PATH \
--signature-file SIGNATURE_FILE_PATH
Ganti kode berikut:
PATH_TO_LIBKMSP11_SO
: jalur ke modul PKCS#11, misalnyapath/to/libkmsp11.so
.HSM_KEY_NAME
: nama kunci Cloud HSM yang digunakan untuk membuat tanda tangan yang ingin Anda verifikasi.MECHANISM
: mekanisme yang akan digunakan, berdasarkan algoritma kunci. Contoh,ECDSA
.INPUT_TEXT_FILE_PATH
: jalur ke file yang sebelumnya ditandatangani.SIGNATURE_FILE_PATH
: jalur ke file tanda tangan.