Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Autentikasi adalah aspek penting untuk mengakses dan beroperasi dengan aman dalam Azure Cloud HSM. Artikel ini menguraikan metode autentikasi, termasuk antarmuka baris perintah (CLI), PKCS#11, Java Ekstensi Kriptografi (JCE), dan OpenSSL. Artikel ini juga menyediakan praktik terbaik untuk pengelolaan multithreading dan sesi.
Metode autentikasi yang didukung
Azure Cloud HSM hanya mendukung autentikasi berbasis kata sandi. Ini tidak mendukung autentikasi melalui perangkat entri PIN (PED).
Autentikasi Cloud HSM CLI
Anda dapat mengautentikasi dengan menggunakan alat CLI seperti azcloudhsm_util dalam mode interaktif atau mode perintah tunggal. Dalam mode interaktif, gunakan loginHSM perintah . Untuk mode perintah tunggal, sertakan singlecmd dan parameter untuk loginHSM. Kami menyarankan Anda untuk menyimpan kredensial HSM dengan aman saat aplikasi Anda tidak menggunakannya.
Mode interaktif
./azcloudhsm_util
loginHSM -u CU -s cu1 -p user1234
Mode perintah tunggal
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 findKey
Autentikasi PKCS#11
Di PKCS#11, Anda masuk dengan menggunakan C_Login API setelah anda membuka sesi dengan menggunakan C_OpenSession. Anda hanya perlu menggunakan C_Login sekali per slot (kluster Cloud HSM). Setelah berhasil masuk, Anda dapat membuka sesi tambahan dengan menggunakan C_OpenSession tanpa masuk lagi.
char pPin[256] = "cu1:user1234";
…
rv = (func_list->C_Initialize) (NULL);
rv = (func_list->C_GetTokenInfo) (slot, &token_info);
rv = (func_list->C_OpenSession) (slot, CKF_SERIAL_SESSION | CKF_RW_SESSION, NULL, NULL, &session_rw);
rv = (func_list->C_Login) (session_rw, CKU_USER, (CK_UTF8CHAR_PTR) pPin, n_pin);
…
Untuk mendapatkan contoh kode untuk mengautentikasi ke PKCS#11, lihat guide untuk mengintegrasikan PKCS#11 dengan Azure Cloud HSM.
Autentikasi JCE
Penyedia JCE untuk Azure Cloud HSM menawarkan dukungan untuk metode masuk implisit dan eksplisit. Masing-masing cocok untuk kasus penggunaan yang berbeda.
Kami menyarankan agar Anda menggunakan masuk implisit jika memungkinkan, karena SDK secara otonom mengelola autentikasi. Metode ini sangat bermanfaat jika aplikasi Anda terputus dari kluster dan memerlukan autentikasi ulang. Masuk implisit juga memfasilitasi memberikan kredensial ke aplikasi Anda selama integrasi dengan platform di mana kendali langsung atas kode aplikasi tidak memungkinkan.
LoginManager lm = LoginManager.getInstance();
lm.login("PARTITION_1","cu1", "user1234");
…
lm.logout();
…
Untuk detail selengkapnya tentang metode masuk, lihat guide untuk mengintegrasikan JCE dengan Azure Cloud HSM.
Autentikasi OpenSSL
Saat Anda menggunakan mesin OpenSSL untuk Azure Cloud HSM, variabel lingkungan menyediakan kredensial. Kami menyarankan Anda untuk menyimpan kredensial HSM dengan aman saat aplikasi Anda tidak menggunakannya. Idealnya, konfigurasikan lingkungan Anda untuk mengambil dan mengatur variabel lingkungan ini secara otomatis untuk menghindari entri manual.
export azcloudhsm_password="cu1:user1234"
export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf
export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH
…
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
openssl genpkey -algorithm RSA -out private_key.pem -engine azcloudhsm_openssl
…
Nota
Perbarui jalur agar sesuai dengan versi SDK yang diinstal. Jalur penginstalan default adalah /opt/azurecloudhsm/. Untuk SDK terbaru, lihat rilis Azure Cloud HSM SDK.
Untuk detail autentikasi dengan OpenSSL, lihat guide untuk mengintegrasikan OpenSSL dengan Azure Cloud HSM.
Teknik multithreading
Azure Cloud HSM mendukung aplikasi multithreaded, tetapi ada pertimbangan untuk menanganinya:
-
PKCS#11: Inisialisasi pustaka PKCS#11 dengan hanya menggunakan
C_Initializesekali. Tetapkan setiap untai sesi tersendiri denganC_OpenSession. Usahakan untuk tidak menggunakan sesi yang sama di beberapa utas. -
JCE: Inisialisasi penyedia Azure Cloud HSM hanya sekali. Hindari berbagi instans objek Service Provider Interface (SPI) antar utas. Misalnya, gunakan objek
Cipher,Signature,Digest,Mac,KeyFactory, danKeyGeneratorhanya dalam konteks utas masing-masing.
Upaya ulang untuk integrasi operasi HSM
Microsoft mungkin menukar HSM di kluster Azure Cloud HSM Anda untuk tujuan operasional atau pemeliharaan, seperti jika perangkat gagal. Untuk menyiapkan aplikasi Anda untuk skenario tersebut, kami menyarankan agar Anda menambahkan logika coba lagi sisi klien ke semua operasi yang dikirim ke kluster Anda. Penyiapan ini mengantisipasi bahwa percobaan ulang berikutnya pada operasi yang gagal, baik karena penggantian atau pemeliharaan sementara, akan berhasil.
Penanganan sesi klien Cloud HSM
Klien Azure Cloud HSM masuk dan keluar dari semua sesi HSM setiap kali aplikasi melakukan masuk atau keluar. Akibatnya, jika aplikasi kedua menggunakan azurecloudhsm_client, aplikasi tersebut berbagi sesi yang sama dan mewarisi kredensial masuk yang sama jika berjalan dari host yang sama. Alat ini azurecloudhsm_client melacak aplikasi mana yang mencoba masuk. Ini memungkinkan aplikasi masuk dengan benar untuk menjalankan perintah yang memerlukan autentikasi.
Misalnya, jika Anda masuk dengan azurecloudhsm_util dan mencoba menjalankan aplikasi atau alat kunci di jendela terminal lain dengan penyedia Azure Cloud HSM, Anda mengalami kesalahan karena sesi aktif sudah terbuka. Anda harus menutup azurecloudhsm_util sesi agar aplikasi Anda dapat membuat sesi dengan azurecloudhsm_client berjalan di host Anda agar dapat diautentikasi.