Menggunakan otentikasi kuorum untuk petugas crypto - AWS CloudHSM

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan otentikasi kuorum untuk petugas crypto

Petugas kripto (CO) pada HSM dapat mengatur konfigurasi autentikasi kuorum untuk operasi berikut pada HSM:

  • Membuat pengguna HSM

  • Membuat pengguna HSM

  • Mengubah kata sandi pengguna HSM lainnya

Setelah HSM dikonfigurasi untuk autentikasi kuorum, CO tidak dapat melakukan operasi manajemen pengguna HSM sendiri. Contoh berikut menunjukkan output ketika CO mencoba untuk membuat pengguna baru di HSM. Perintah gagal dengan kesalahan RET_MXN_AUTH_FAILED, yang menunjukkan bahwa autentikasi kuorum gagal.

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes createUser failed: RET_MXN_AUTH_FAILED creating user on server 0(10.0.2.14) failed Retry/Ignore/Abort?(R/I/A):A

Untuk melakukan operasi manajemen pengguna HSM, CO harus menyelesaikan tugas berikut:

Jika Anda belum mengatur konfigurasi HSM untuk autentikasi kuorum untuk CO, lakukan itu sekarang. Untuk informasi lebih lanjut, lihat Pengaturan pertama kali.

Dapatkan token kuorum

Pertama, CO harus menggunakan alat baris perintah cloudhsm_mgmt_util untuk meminta token kuorum.

Dapatkan token kuorum.
  1. Gunakan perintah berikut untuk memulai alat baris perintah cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  2. Gunakan perintah loginHSM untuk masuk ke HSM sebagai pengguna CO. Untuk informasi selengkapnya, lihat Mengelola pengguna HSM dengan CloudHSM Management Utility (CMU).

  3. Gunakan getToken untuk mendapatkan token kuorum. Untuk informasi selengkapnya, lihat contoh berikut atau gunakan perintah help getToken.

contoh — Dapatkan token kuorum

Contoh ini mendapat token kuorum untuk CO dengan nama pengguna officer1 dan menyimpan token ke file bernama officer1.token. Untuk menggunakan perintah contoh berikut, ganti nilai ini dengan nilai Anda sendiri:

  • officer1— Nama CO yang mendapatkan token. Ini harus CO yang sama yang login ke HSM dan menjalankan perintah ini.

  • officer1.token— Nama file yang digunakan untuk menyimpan token kuorum.

Dalam perintah berikut,3 mengidentifikasi layanan yang Anda dapat gunakan dengan token yang Anda dapatkan. Dalam hal ini, token adalah untuk operasi manajemen pengguna HSM (layanan 3). Untuk informasi lebih lanjut, lihat Tetapkan nilai minimum kuorum pada HSM.

aws-cloudhsm>getToken 3 officer1 officer1.token getToken success on server 0(10.0.2.14) Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 getToken success on server 1(10.0.1.4) Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1

Dapatkan tanda tangan dari menyetujui CO

Seorang CO yang memiliki token kuorum harus mendapatkan token yang disetujui oleh CO lainnya. Untuk memberikan persetujuan mereka, CO lain menggunakan kunci penandatanganan mereka untuk secara kriptografi menandatangani token. Mereka melakukan ini di luar HSM.

Ada banyak cara yang berbeda untuk menandatangani token. Contoh berikut menunjukkan cara melakukannya dengan OpenSSL. Untuk menggunakan alat penandatanganan yang berbeda, pastikan bahwa alat menggunakan kunci privat CO (kunci penandatangan) untuk menandatangani SHA-256 digest token .

contoh — Dapatkan tanda tangan dari CO pemberi persetujuan

Dalam contoh ini, CO yang memiliki token (officer1) membutuhkan setidaknya dua persetujuan. Contoh perintah berikut menunjukkan bagaimana dua CO dapat menggunakan OpenSSL untuk secara kriptografi menandatangani token.

Pada perintah pertama, officer1 menandatangani tokennya sendiri. Untuk menggunakan perintah contoh berikut, ganti nilai ini dengan nilai Anda sendiri:

  • officer1.key dan officer2.key— Nama file yang berisi kunci penandatanganan CO.

  • officer1.token.sig1 dan officer1.token.sig2— Nama file yang akan digunakan untuk menyimpan tanda tangan. Pastikan untuk menyimpan setiap tanda tangan dalam file yang berbeda.

  • officer1.token— Nama file yang berisi token yang ditandatangani CO.

$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.token Enter pass phrase for officer1.key:

Pada perintah berikut, officer2 menandatangani token yang sama.

$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.token Enter pass phrase for officer2.key:

Menyetujui token yang ditandatangani di HSM

Setelah CO mendapat jumlah minimum persetujuan (tanda tangan) dari CO lain, ia harus menyetujui token yang ditandatangani pada HSM.

Untuk menyetujui token yang ditandatangani pada HSM
  1. Buat file persetujuan token. Untuk informasi selengkapnya, lihat contoh berikut.

  2. Gunakan perintah berikut untuk memulai alat baris perintah cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  3. Gunakan perintah loginHSM untuk masuk ke HSM sebagai pengguna CO. Untuk informasi selengkapnya, lihat Mengelola pengguna HSM dengan CloudHSM Management Utility (CMU).

  4. Gunakan perintah approveToken untuk menyetujui token yang ditandatangani, melewati file persetujuan token. Untuk informasi selengkapnya, lihat contoh berikut.

contoh — Buat file persetujuan token dan setujui token yang ditandatangani di HSM

File persetujuan token adalah file teks dalam format tertentu yang dibutuhkan HSM. File berisi informasi tentang token, pemberi persetujuan, dan tanda tangan pemberi persetujuan. Berikut ini adalah contoh file persetujuan token.

# For "Multi Token File Path", type the path to the file that contains # the token. You can type the same value for "Token File Path", but # that's not required. The "Token File Path" line is required in any # case, regardless of whether you type a value. Multi Token File Path = officer1.token; Token File Path = ; # Total number of approvals Number of Approvals = 2; # Approver 1 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer1; Approval File = officer1.token.sig1; # Approver 2 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer2; Approval File = officer1.token.sig2;

Setelah membuat file persetujuan token, CO menggunakan alat baris perintah cloudhsm_mgmt_util untuk masuk ke HSM. CO kemudian menggunakan perintah approveToken untuk menyetujui token, seperti yang ditunjukkan dalam contoh berikut. Ganti approval.txt dengan nama file persetujuan token.

aws-cloudhsm>approveToken approval.txt approveToken success on server 0(10.0.2.14) approveToken success on server 1(10.0.1.4)

Ketika perintah ini berhasil, HSM telah menyetujui token kuorum. Untuk memeriksa status token, gunakan perintah listTokens, seperti yang ditunjukkan dalam contoh berikut. Output perintah menunjukkan bahwa token memiliki jumlah persetujuan yang diperlukan.

Waktu validitas token menunjukkan berapa lama token dijamin bertahan di HSM. Bahkan setelah waktu validitas token berlalu (nol detik), Anda masih dapat menggunakan token.

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 ===================== Server 1(10.0.1.4) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 listTokens success

Gunakan token untuk operasi manajemen pengguna

Setelah CO memiliki token dengan jumlah persetujuan yang diperlukan, seperti yang ditunjukkan pada bagian sebelumnya, CO dapat melakukan salah satu operasi manajemen pengguna HSM berikut:

  • Buat pengguna HSM dengan perintah createUser

  • Hapus pengguna HSM dengan perintah deleteUser

  • Ubah kata sandi pengguna HSM yang berbeda dengan perintah changePswd

Untuk informasi selengkapnya tentang menggunakan perintah ini, lihat Mengelola pengguna HSM.

CO dapat menggunakan token hanya untuk satu operasi. Ketika operasi itu berhasil, token tidak lagi berlaku. Untuk melakukan operasi manajemen pengguna HSM lain, CO harus mendapatkan token kuorum baru, mendapatkan tanda tangan baru dari pemberi persetujuan, dan menyetujui token baru di HSM.

catatan

Token MofN hanya berlaku selama sesi login Anda saat ini terbuka. Jika Anda keluar dari cloudhsm_mgmt_util atau sambungan jaringan terputus, token tidak lagi valid. Demikian pula, token resmi hanya dapat digunakan dalam cloudhsm_mgmt_util, tidak dapat digunakan untuk mengautentikasi dalam aplikasi yang berbeda.

Pada contoh perintah berikut, CO membuat pengguna baru pada HSM.

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes

Setelah perintah sebelumnya berhasil, perintah listUsers berikutnya menunjukkan pengguna baru.

aws-cloudhsm>listUsers Users on server 0(10.0.2.14): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO Users on server 1(10.0.1.4): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO

Jika CO mencoba untuk melakukan operasi manajemen pengguna HSM lain, operasi akan gagal dengan kesalahan autentikasi kuorum, seperti yang ditunjukkan dalam contoh berikut.

aws-cloudhsm>deleteUser CU user1 Deleting user user1(CU) on 2 nodes deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 0(10.0.2.14) Retry/rollBack/Ignore?(R/B/I):I deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 1(10.0.1.4) Retry/rollBack/Ignore?(R/B/I):I

Perintah listTokens akan menampilkan bahwa CO tidak memiliki token yang disetujui, seperti yang ditunjukkan dalam contoh berikut. Untuk melakukan operasi manajemen pengguna HSM lain, CO harus mendapatkan token kuorum baru, mendapatkan tanda tangan baru dari pemberi persetujuan, dan menyetujui token baru pada HSM.

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== Num of tokens = 0 ===================== Server 1(10.0.1.4) ===================== Num of tokens = 0 listTokens success