Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Setelah Anda mengonfigurasi otentikasi kuorum untuk AWS CloudHSM klaster Anda, pengguna kripto tidak dapat melakukan pengelolaan kunci HSM atau operasi penggunaan sendiri jika kunci mereka memiliki nilai kuorum yang terkait. Topik ini menjelaskan bagaimana pengguna kripto bisa mendapatkan token sementara untuk melakukan manajemen kunci HSM atau operasi penggunaan kunci.
catatan
Setiap token kuorum berlaku untuk satu operasi. Ketika operasi itu berhasil, token tidak lagi valid dan pengguna kripto harus mendapatkan token baru. Token kuorum hanya berlaku selama sesi login Anda saat ini. Jika Anda keluar dari CloudHSM CLI atau jika jaringan terputus, token tidak lagi valid dan Anda perlu mendapatkan token baru. Anda hanya dapat menggunakan token CloudHSM dalam CloudHSM CLI. Anda tidak dapat menggunakannya untuk mengautentikasi di aplikasi yang berbeda.
Contoh berikut menunjukkan output ketika pengguna kripto mencoba membuat tanda tangan dengan kunci terkait kuorum pada HSM setelah otentikasi kuorum dikonfigurasi. Perintah gagal dengan Quorum Failed
kesalahan, yang berarti otentikasi kuorum gagal:
aws-cloudhsm >
crypto sign rsa-pkcs --key-filter attr.label=rsa-private-key-example --hash-function sha256 --data YWJjMTIz
{ "error_code": 1, "data": "Quorum Failed" }
Pengguna kripto harus menyelesaikan tugas-tugas berikut untuk mendapatkan token sementara untuk melakukan manajemen kunci atau operasi penggunaan kunci pada HSM:
Langkah-langkah
Langkah 1. Dapatkan token kuorum
-
Mulai CloudHSM CLI.
$
/opt/cloudhsm/bin/cloudhsm-cli interactive
-
Masuk ke cluster sebagai pengguna kripto.
aws-cloudhsm >
login --username
--passwordcrypto_user1
--role crypto-userpassword123
Contoh ini
crypto_user1
masuk ke CloudHSM CLI dengan peran tersebut.crypto-user
Ganti nilai-nilai ini dengan nilai Anda sendiri.{ "error_code": 0, "data": { "username": "crypto_user1", "role": "crypto-user" } }
-
Hasilkan token kuorum menggunakan perintah. quorum token-sign generate
Dalam perintah berikut,
key-usage
mengidentifikasi nama layanan di mana Anda akan menggunakan token yang Anda hasilkan. Dalam hal ini, token adalah untuk operasi penggunaan kunci (key-usage
layanan) Contoh ini menggunakan--filter
bendera untuk mengaitkan token dengan kunci tertentu.aws-cloudhsm >
quorum token-sign generate --service key-usage --token
</path/crypto_user1.token>
--filter attr.label=rsa-private-key-example{ "error_code": 0, "data": { "path": "/home/crypto_user1.token" } }
Contoh ini mendapatkan token kuorum untuk pengguna kripto dengan nama pengguna
crypto_user1
dan menyimpan token ke file bernama.crypto_user1.token
Untuk menggunakan perintah contoh berikut, ganti nilai ini dengan nilai Anda sendiri:quorum token-sign generatePerintah menghasilkan token kuorum layanan penggunaan kunci di jalur file yang ditentukan. Anda dapat memeriksa file token:
$
cat
</path/crypto_user1.token>
{ "version": "2.0", "service": "key-usage", "key_reference": "0x0000000000680006", "approval_data": "AAIABQAAABkAAAAAAGgABi5CDa9x9VyyRIaFbkSrHgJjcnlwdG9fdXNlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnPQBLAAAAAAAAAAAAAgAFAAAAGgAAAAAAaAAGQvd2qKY+GJj8gXo9lKuANGNyeXB0b191c2VyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGc9AEsAAAAAAAAAAA==", "token": "5GlgoWOlQU4fw4QIlbxkPGZVOVoDugFGuSKE/k67ncM=", "signatures": [] }
File token terdiri dari yang berikut:
-
layanan: Pengidentifikasi untuk layanan kuorum yang dikaitkan dengan token.
-
key_reference: Pengidentifikasi untuk kunci yang dikaitkan dengan token kuorum ini.
-
approval _data: Token data mentah yang dikodekan base64 yang dihasilkan oleh HSM.
-
token: Token base64 yang dikodekan dan SHA-256 yang di-hash dari approval _data
-
tanda tangan: Array token bertanda tangan yang disandikan base64 (tanda tangan) dari token yang tidak ditandatangani. Setiap tanda tangan pemberi persetujuan dalam bentuk literal objek JSON:
{ "username": "
<APPROVER_USERNAME>
", "role": "<APPROVER_ROLE>
", "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>
" }Setiap tanda tangan dibuat dari hasil pemberi persetujuan menggunakan kunci pribadi RSA 2048-bit yang sesuai yang kunci publiknya terdaftar di HSM.
-
-
Validasi token kuorum layanan pengguna baru. quorum token-sign listPerintah mengonfirmasi bahwa token ada di CloudHSM.
aws-cloudhsm >
quorum token-sign list
{ "error_code": 0, "data": { "tokens": [ { "username": "crypto_user", "service": "key-usage", "key-reference": "0x0000000000680006", "minimum-token-count": 2 } ] } }
Ini
minimum-token-count
menyajikan tampilan cluster agregat dari jumlah minimum token kunci yang dapat digunakan sesuai dengan nama pengguna, layanan, dan referensi kunci yang diambil dari satu HSM di cluster.Misalnya, dengan asumsi cluster 2-HSM, jika kami menerima dua (2) token penggunaan kunci yang dihasilkan oleh pengguna
crypto_user1
untuk kunci dengan referensi0x0000000000680006
dari HSM pertama di cluster dan kami menerima satu (1) token penggunaan kunci yang dihasilkan oleh penggunacrypto_user1
untuk kunci dengan referensi0x0000000000680006
dari HSM lain di cluster, kami akan menampilkan."minimum-token-count": 1
Langkah 2. Dapatkan tanda tangan dari menyetujui pengguna kripto
Pengguna crypto yang memiliki token kuorum harus mendapatkan token yang disetujui oleh pengguna kripto lainnya. Untuk memberikan persetujuan mereka, pengguna crypto =-lainnya menggunakan kunci penandatanganan mereka untuk menandatangani token secara kriptografis di luar HSM.
Ada banyak cara yang berbeda untuk menandatangani token. Contoh berikut menunjukkan cara menandatangani token menggunakan OpenSSL
Dalam contoh ini, pengguna kripto yang memiliki token (crypto-user
) membutuhkan setidaknya dua (2) persetujuan. Contoh perintah berikut menunjukkan bagaimana dua (2) pengguna kripto dapat menggunakan OpenSSL untuk menandatangani token secara kriptografis.
-
Dekode token unsigned base64 yang dikodekan dan letakkan ke dalam file biner:
$
echo -n '5GlgoWOlQU4fw4QIlbxkPGZVOVoDugFGuSKE/k67ncM=' | base64 -d > crypto_user1.bin
-
Gunakan OpenSSL dan kunci pribadi pemberi persetujuan untuk menandatangani token unsigned kuorum biner untuk layanan pengguna dan membuat file tanda tangan biner:
$
openssl pkeyutl -sign \ -inkey crypto_user1.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in crypto_user1.bin \ -out crypto_user1.sig.bin
-
Encode tanda tangan biner ke base64:
$
base64 -w0 crypto_user1.sig.bin > crypto_user1.sig.b64
-
Salin dan tempel tanda tangan yang disandikan base64 ke dalam file token, menggunakan format literal objek JSON yang ditentukan sebelumnya untuk tanda tangan pemberi persetujuan:
{ "version": "2.0", "service": "key-usage", "key_reference": "0x0000000000680006", "approval_data": "AAIABQAAABkAAAAAAGgABi5CDa9x9VyyRIaFbkSrHgJjcnlwdG9fdXNlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnPQBLAAAAAAAAAAAAAgAFAAAAGgAAAAAAaAAGQvd2qKY+GJj8gXo9lKuANGNyeXB0b191c2VyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGc9AEsAAAAAAAAAAA==", "token": "5GlgoWOlQU4fw4QIlbxkPGZVOVoDugFGuSKE/k67ncM=", "signatures": [ { "username": "crypto_user1", "role": "crypto-user", "signature": "wa7aPzmGwBjcEoZ6jAzYASp841AfgOvcI27Y/tGlCj1E9DawnFw5Uf0IJT2Ca7T5XD2ThVkUi0B+dhAomdqYNl6aUUFrJyH9GBJ+E0PmA5jNVm25tzeRWBJzneTg4/zTeE2reNqrHFHicWnttQLe9jS09J1znuDGWDe0HaBKWUaz2gUInJRqmeXDsZYdSvZksrqUH5dci/RsaDE2+tGiS9g0RcIkFbsPW4HpGe2e5HVzGsqrV8O3PKlYQv6+fymfcNTTuoxKcHAkOjpl43QSuSIu2gVq7KI8mSmmWaPJL47NPjmcBVB5vdEQU+oiukaNfLJr+MoDKzAvCGDg4cDArg==" }, { "username": "crypto_user2", "role": "crypto-user", "signature": "wa7aPzmGwBjcEoZ6jAzYASp841AfgOvcI27Y/tGlCj1E9DawnFw5Uf0IJT2Ca7T5XD2ThVkUi0B+dhAomdqYNl6aUUFrJyH9GBJ+E0PmA5jNVm25tzeRWBJzneTg4/zTeE2reNqrHFHicWnttQLe9jS09J1znuDGWDe0HaBKWUaz2gUInJRqmeXDsZYdSvZksrqUH5dci/RsaDE2+tGiS9g0RcIkFbsPW4HpGe2e5HVzGsqrV8O3PKlYQv6+fymfcNTTuoxKcHAkOjpl43QSuSIu2gVq7KI8mSmmWaPJL47NPjmcBVB5vdEQU+oiukaNfLJr+MoDKzAvCGDg4cDArg==" } ] }
Langkah 3. Menyetujui token di CloudHSM; cluster dan jalankan operasi
Setelah pengguna kripto memiliki persetujuan dan tanda tangan yang diperlukan, mereka dapat memasok token itu ke klaster CloudHSM bersama dengan manajemen kunci atau operasi penggunaan kunci.
Pastikan operasi kunci sesuai dengan layanan kuorum yang sesuai yang terkait dengan token kuorum. Untuk informasi lebih lanjut, lihat Layanan dan tipe yang didukung untuk informasi lebih lanjut.
Selama transaksi, token akan disetujui dalam AWS CloudHSM cluster dan menjalankan operasi kunci yang diminta. Keberhasilan operasi kunci bergantung pada token kuorum yang disetujui yang valid dan operasi kunci yang valid.
contoh Hasilkan tanda tangan dengan mekanisme RSA-PKCS
Dalam contoh berikut, pengguna kripto yang masuk membuat tanda tangan dengan kunci pada HSM:
aws-cloudhsm >
crypto sign rsa-pkcs --key-filter attr.label=rsa-private-key-example --hash-function sha256 --data YWJjMTIz --approval /path/crypto_user1.token
{ "error_code": 0, "data": { "key-reference": "0x0000000000640007", "signature": "h6hMqXacBrT3x3MXV13RXHdQno0+IQ6iy0kVrGzo23+eoWT0ZZgrSpBCu5KcuP6IYYHw9goQ5CfPf4jI1nO5m/IUJtF1A1lmcz0HjEy1CJ7ICXNReDRyeOU8m43dkJzt0OUdkbtkDJGAcxkbKHLZ02uWsGXaQ8bOKhoGwsRAHHF6nldTXquICfOHgSd4nimObKTqzUkghhJW5Ot5oUyLMYP+pZmUS38ythybney94Wj6fzYOER8v7VIY5ijQGa3LfxrjSG4aw6QijEEbno5LSf18ahEaVKmVEnDBL54tylCJBGvGsYSY9HNhuJoHPgiDL/TDd2wfvP4PaxbFRyyHaw==" } }
Jika pengguna crypto mencoba melakukan operasi penggunaan kunci HSM lain dengan token yang sama, gagal:
aws-cloudhsm >
crypto sign rsa-pkcs --key-filter attr.label=rsa-private-key-example --hash-function sha256 --data YWJjMTIz --approval /home/crypto_user1.token
{ "error_code": 1, "data": "Quorum approval is required for this operation" }
Untuk melakukan operasi kunci HSM lainnya, pengguna kripto harus membuat token kuorum baru, mendapatkan tanda tangan baru dari pemberi persetujuan, dan menjalankan operasi kunci yang diinginkan dengan argumen --approval untuk memasok token kuorum.
Gunakan quorum token-sign list untuk memeriksa token yang tersedia. Contoh ini menunjukkan bahwa pengguna kripto tidak memiliki token yang disetujui.
aws-cloudhsm >
quorum token-sign list
{ "error_code": 0, "data": { "tokens": [] } }