Menggunakan CloudHSM Management Utility (CMU) untuk mengelola otentikasi dua faktor (2FA) untuk petugas kripto - AWS CloudHSM

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

Menggunakan CloudHSM Management Utility (CMU) untuk mengelola otentikasi dua faktor (2FA) untuk petugas kripto

Untuk peningkatan keamanan, Anda dapat mengatur konfigurasi Dua Factor Authentication (2FA) untuk membantu melindungi klaster. Anda hanya dapat mengaktifkan 2FA untuk petugas kripto (CO).

catatan

Anda tidak dapat mengaktifkan 2FA untuk pengguna kripto (CU) atau aplikasi. Autentikasi dua faktor (2FA) hanya untuk pengguna CO.

Memahami 2FA untuk pengguna HSM

Saat Anda masuk ke klaster dengan akun modul layanan perangkat keras (HSM) yang mendukung 2FA, Anda menyediakan cloudhsm_mgmt_util (CMU) dengan kata sandi Anda—faktor pertama, apa yang Anda tahu—dan CMU memberi Anda token dan meminta Anda untuk menandatangani token. Untuk menyediakan faktor kedua—apa yang Anda miliki—Anda tandatangani token dengan kunci privat dari pasangan kunci yang telah Anda buat dan terkait dengan pengguna HSM. Untuk mengakses klaster, Anda memberikan token ditandatangani untuk CMU.

Otentikasi kuorum dan 2FA

Klaster menggunakan kunci yang sama untuk autentikasi kuorum dan 2FA. Ini berarti pengguna dengan 2FA diaktifkan secara efektif terdaftar untuk M-of-N-access-control (MofN). Untuk berhasil menggunakan autentikasi 2FA dan kuorum untuk pengguna HSM yang sama, pertimbangkan hal-hal berikut:

  • Jika Anda menggunakan autentikasi kuorum untuk pengguna saat ini, Anda harus menggunakan pasangan kunci yang sama yang Anda buat untuk pengguna kuorum untuk mengaktifkan 2FA untuk pengguna tersebut.

  • Jika Anda menambahkan persyaratan 2FA untuk pengguna non-2FA yang bukan pengguna autentikasi kuorum, maka Anda mendaftarkan pengguna itu sebagai pengguna MofN dengan autentikasi 2FA.

  • Jika Anda menghapus persyaratan 2FA atau mengubah kata sandi untuk pengguna 2FA yang juga pengguna autentikasi kuorum, Anda juga akan menghapus pendaftaran pengguna kuorum sebagai pengguna MofN.

  • Jika Anda menghapus persyaratan 2FA atau mengubah kata sandi untuk pengguna 2FA yang juga pengguna autentikasi kuorum, tetapi Anda masih ingin pengguna tersebut berpartisipasi dalam autentikasi kuorum, maka Anda harus mendaftarkan pengguna tersebut lagi sebagai pengguna MofN.

Untuk informasi selengkapnya tentang autentikasi kuorum, lihat Menggunakan CMU untuk mengelola otentikasi kuorum.

Bekerja dengan 2FA untuk pengguna HSM

Bagian ini menjelaskan cara bekerja dengan 2FA untuk pengguna HSM, termasuk membuat pengguna HSM 2FA, memutar kunci, dan masuk ke HSM sebagai pengguna dengan 2FA diaktifkan. Untuk informasi lebih lanjut tentang bekerja dengan pengguna HSM, lihat Mengelola pengguna HSM di AWS CloudHSM, Menggunakan CloudHSM Management Utility (CMU) untuk mengelola pengguna, createUser, loginHSM dan logoutHSM, dan changePswd.

Membuat pengguna 2FA

Untuk mengaktifkan 2FA untuk pengguna HSM, gunakan kunci yang memenuhi persyaratan berikut.

Anda dapat membuat pasangan kunci baru atau menggunakan kunci yang sudah ada yang memenuhi persyaratan berikut.

  • Tipe kunci: Asimetris

  • Penggunaan kunci: Tanda Tangan dan Verifikasi

  • Spesifikasi kunci: RSA_2048

  • Algoritme penandatanganan meliputi:

    • sha256WithRSAEncryption

catatan

Jika Anda menggunakan autentikasi kuorum atau berencana untuk menggunakan autentikasi kuorum, lihat Otentikasi kuorum dan 2FA.

Gunakan CMU dan key pair untuk membuat pengguna CO baru dengan 2FA diaktifkan.

Untuk membuat pengguna CO dengan 2FA diaktifkan
  1. Dalam satu terminal, lakukan langkah-langkah berikut:

    1. Akses HSM Anda dan masuk ke utilitas Manajemen CloudHSM:

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. Masuk sebagai CO dan gunakan perintah berikut untuk membuat MFA pengguna baru dengan 2FA:

      aws-cloudhsm>createUser CO MFA <CO USER NAME> -2fa /home/ec2-user/authdata *************************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)? yCreating User exampleuser3(CO) on 1 nodesAuthentication data written to: "/home/ec2-user/authdata"Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below.Leave this field blank to use the path initially provided.Enter filename:
    3. Biarkan terminal di atas dalam keadaan ini. Jangan tekan enter atau masukkan nama file apa pun.

  2. Di terminal lain, lakukan langkah-langkah berikut:

    1. Akses HSM Anda dan masuk ke utilitas Manajemen CloudHSM:

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. Buat pasangan kunci publik-pribadi menggunakan perintah berikut:

      openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
      openssl rsa -pubout -in private_key.pem -out public_key.pem
    3. Jalankan perintah berikut untuk menginstal fitur kueri json untuk mengekstrak Digest dari file authdata:

      sudo yum install jq
    4. Untuk mengekstrak nilai intisari, pertama-tama temukan data berikut di file authdata:

      { "Version":"1.0", "PublicKey":"", "Data":[ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature":"" } ] }
      catatan

      Digest yang diperoleh dikodekan base64, namun untuk menandatangani intisari, Anda perlu file yang akan diterjemahkan terlebih dahulu dan kemudian ditandatangani. Perintah berikut akan memecahkan kode intisari dan menyimpan konten yang diterjemahkan dalam 'digest1.bin'

      cat authdata | jq '.Data[0].Digest' | cut -c2- | rev | cut -c2- | rev | base64 -d > digest1.bin
    5. Konversikan konten kunci publik, tambahkan "\n" dan hapus spasi seperti yang ditunjukkan di sini:

      -----BEGIN PUBLIC KEY-----\n<PUBLIC KEY>\n-----END PUBLIC KEY-----
      penting

      Perintah di atas menunjukkan bagaimana "\n" ditambahkan segera setelahBEGIN PUBLIC KEY-----, spasi antara "\n" dan karakter pertama dari kunci publik dihapus, "\n" ditambahkan sebelumnya-----END PUBLIC KEY, dan spasi dihapus antara "\n" dan akhir kunci publik.

      Ini adalah format PEM untuk kunci publik yang diterima dalam file authdata.

    6. Rekatkan konten format pem kunci publik di bagian kunci publik di file authdata.

      vi authdata
      { "Version":"1.0", "PublicKey":"-----BEGIN PUBLIC KEY-----\n<"PUBLIC KEY">\n-----END PUBLIC KEY-----", "Data":[ { "HsmId":<"HSM ID">, "Digest":<"DIGEST">, "Signature":”” } ] }
    7. Tanda tangani file token menggunakan perintah berikut:

      openssl pkeyutl -sign -in digest1.bin -inkey private_key.pem -pkeyopt digest:sha256 | base64 Output Expected: <"THE SIGNATURE">
      catatan

      Seperti yang ditunjukkan pada perintah di atas, gunakan openssl pkeyutl bukan openssl dgst untuk menandatangani.

    8. Tambahkan intisari yang ditandatangani di File Authdata di bidang “Tanda Tangan”.

      vi authdata
      { "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "Kkdl ... rkrvJ6Q==" }, { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "K1hxy ... Q261Q==" } ] }
  3. Kembali ke terminal pertama dan tekanEnter:

    Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below. Leave this field blank to use the path initially provided. Enter filename: >>>>> Press Enter here createUser success on server 0(10.0.1.11)

Mengelola 2FA untuk pengguna HSM

Gunakan perubahan kata sandi untuk mengubah kata sandi untuk pengguna 2FA, atau untuk mengaktifkan atau menonaktifkan 2FA, atau untuk memutar kunci 2FA. Setiap kali Anda mengaktifkan 2FA, Anda harus menyediakan kunci publik untuk login 2FA.

Mengubah kata sandi akan melakukan salah satu skenario berikut:

  • Mengubah kata sandi untuk pengguna 2FA

  • Mengubah kata sandi untuk pengguna non-2FA

  • Tambahkan 2FA ke pengguna non-2FA

  • Hapus 2FA dari pengguna 2FA

  • Memutar kunci untuk pengguna 2FA

Anda juga dapat menggabungkan tugas. Misalnya, Anda dapat menghapus 2FA dari pengguna dan mengubah kata sandi pada saat yang sama, atau Anda mungkin memutar kunci 2FA dan mengubah kata sandi pengguna.

Untuk mengubah password atau memutar kunci untuk pengguna CO dengan 2FA diaktifkan
  1. Gunakan CMU untuk masuk ke HSM sebagai CO dengan 2FA diaktifkan.

  2. Gunakan changePswd untuk mengubah kata sandi atau memutar kunci dari pengguna CO dengan 2FA diaktifkan. Gunakan parameter -2fa dan sertakan lokasi dalam sistem file agar sistem menulis file authdata. File ini termasuk digest untuk setiap HSM di klaster.

    aws-cloudhsm>changePswd CO example-user <new-password> -2fa /path/to/authdata

    CMU meminta Anda untuk menggunakan kunci privat untuk menandatangani digest di file authdata dan mengembalikan tanda tangan dengan kunci publik.

  3. Gunakan kunci privat untuk menandatangani digest di file authdata, tambahkan tanda tangan dan kunci publik untuk file authdata berformat JSON dan kemudian memberikan CMU dengan lokasi file authdata. Untuk informasi lebih lanjut, lihat Referensi konfigurasi.

    catatan

    Klaster menggunakan kunci yang sama untuk autentikasi kuorum dan 2FA. Jika Anda menggunakan autentikasi kuorum atau berencana untuk menggunakan autentikasi kuorum, lihat Otentikasi kuorum dan 2FA.

Untuk menonaktifkan 2FA untuk pengguna CO dengan 2FA diaktifkan
  1. Gunakan CMU untuk masuk ke HSM sebagai CO dengan 2FA diaktifkan.

  2. Gunakan changePswd untuk menghapus 2FA dari pengguna CO dengan 2FA diaktifkan.

    aws-cloudhsm>changePswd CO example-user <new password>

    CMU meminta Anda untuk mengonfirmasi operasi perubahan kata sandi.

    catatan

    Jika Anda menghapus persyaratan 2FA atau mengubah kata sandi untuk pengguna 2FA yang juga pengguna autentikasi kuorum, Anda juga akan menghapus pendaftaran pengguna kuorum sebagai pengguna MofN. Untuk informasi selengkapnya tentang pengguna kuorum dan 2FA, lihat Otentikasi kuorum dan 2FA.

  3. Ketik y.

    CMU mengonfirmasi operasi perubahan kata sandi.

Referensi konfigurasi

Berikut ini adalah contoh dari properti 2FA di file authdata untuk kedua permintaan yang dihasilkan CMU dan tanggapan Anda.

{ "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId": "hsm-lgavqitns2a", "Digest": "k5O1p3f6foQRVQH7S8Rrjcau6h3TYqsSdr16A54+qG8=", "Signature": "Kkdl ... rkrvJ6Q==" }, { "HsmId": "hsm-lgavqitns2a", "Digest": "IyBcx4I5Vyx1jztwvXinCBQd9lDx8oQe7iRrWjBAi1w=", "Signature": "K1hxy ... Q261Q==" } ] }
Data

Simpul tingkat atas. Berisi simpul bawahan untuk setiap HSM di klaster. Muncul dalam permintaan dan tanggapan untuk semua perintah 2FA.

Intisari

Ini adalah apa yang harus Anda tanda tangani untuk memberikan faktor kedua autentikasi. CMU dihasilkan dalam permintaan untuk semua perintah 2FA.

HsmId

ID dari HSM Anda. Muncul dalam permintaan dan tanggapan untuk semua perintah 2FA.

PublicKey

Bagian kunci publik dari pasangan kunci yang Anda buat dimasukkan sebagai string berformat PEM. Anda memasukkan ini dalam tanggapan untuk createUser dan changePswd.

Tanda tangan

Digest bertanda tangan dengan encode Base 64. Anda memasukkan ini dalam tanggapan untuk semua perintah 2FA.

Versi

Versi file data autentikasi berformat JSON. Muncul dalam permintaan dan tanggapan untuk semua perintah 2FA.