Tutorial: Amankan AWS IoT Greengrass Nucleus Lite dengan Modul Platform Tepercaya (TPM) - AWS IoT Greengrass

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

Tutorial: Amankan AWS IoT Greengrass Nucleus Lite dengan Modul Platform Tepercaya (TPM)

Tutorial ini menjelaskan cara mengaktifkan dan mengkonfigurasi dukungan Trusted Platform Module (TPM) untuk AWS IoT Greengrass nucleus lite. TPM menyediakan akar kepercayaan berbasis perangkat keras untuk penyimpanan kunci yang aman. Fitur keamanan ini melindungi operasi kriptografi dan kredensi sensitif, meningkatkan keamanan dan integritas perangkat.

Ketika Anda menyelesaikan integrasi ini, perangkat AWS IoT Greengrass inti Anda akan menggunakan kunci pribadi yang dilindungi TPM untuk identitas dan komunikasinya dengan layanan. AWS IoT

Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.

penting

Mekanisme ini hanya didukung dengan menginstal AWS IoT Greengrass nucleus lite dengan penyediaan sumber daya manual.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:

Tutorial ini berisi petunjuk tentang cara menggunakan TPM2 chip sebagai Hardware Security Module (HSM) untuk membuat kunci pribadi dan CSR yang digunakan untuk membuat sertifikat AWS IoT benda.

Langkah 1: Siapkan instance NitroTPM

  1. Siapkan instance NitroTPM. Untuk informasi lebih lanjut, lihat NitroTPM.

  2. Luncurkan instance terakhir menggunakan AMI kustom yang dibuat pada langkah sebelumnya.

    penting

    Saat menghubungkan dengan SSH, gunakan ubuntu pengguna alih-alih. root

  3. Periksa apakah perangkat TPM ada dan bekerja dengan menjalankan perintah berikut:

    ls -la /dev/tpm*

    Anda harus melihat /dev/tpm0 dan /dev/tpmrm0 perangkat.

Langkah 2: Instal dan konfigurasikan alat TPM

  1. Instal paket yang diperlukan dengan menjalankan perintah berikut:

    sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0
  2. Verifikasi izin perangkat TPM dengan menjalankan perintah berikut:

    ls -l /dev/tpm0 # Should be owned by tss:root with permissions 0660 ls -l /dev/tpmrm0 # Should be owned by tss:tss with permissions 0660

Langkah 3: Konfigurasikan penyedia OpenSSL TPM2

  1. Edit file konfigurasi OpenSSL:

    sudo vi /etc/ssl/openssl.cnf
  2. Tambahkan konfigurasi berikut:

    [openssl_init] providers = provider_sect [provider_sect] default = default_sect tpm2 = tpm2_sect [default_sect] activate = 1 [tpm2_sect] identity = tpm2 module = /usr/local/lib64/tpm2.so activate = 1
  3. Sesuaikan jalur modul seperlunya. Anda dapat menemukan jalur yang benar menggunakan:

    find /usr -name "tpm2.so"

Langkah 4: Hasilkan kunci TPM persisten

  1. Buat kunci primer dengan menjalankan perintah berikut:

    sudo tpm2_createprimary -C o -c primary.ctx
  2. Buat objek kunci ECC dengan menjalankan perintah berikut:

    sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub
  3. Muat kunci dengan menjalankan perintah berikut:

    sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx
  4. Buat kunci persisten dengan menjalankan perintah berikut:

    sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002

    Ini menciptakan kunci persisten dengan pegangan (seperti0x81000002).

Langkah 5: Hasilkan Permintaan Penandatanganan Sertifikat (CSR)

Pada langkah ini, Anda akan menggunakan kunci pribadi TPM2 yang dilindungi untuk menghasilkan Permintaan Penandatanganan Sertifikat (CSR).

  1. Hasilkan CSR menggunakan kunci TPM:

    openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing"
  2. Ganti 0x81000002 dengan nilai pegangan yang Anda pilih dan TPMThing dengan nama benda yang Anda inginkan.

Langkah 6: Buat sertifikat dari CSR

  1. Di komputer pengembangan Anda, buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

    mkdir greengrass-v2-certs
  2. Gunakan file CSR untuk membuat dan mengunduh sertifikat untuk AWS IoT hal itu ke komputer pengembangan Anda.

    aws iot create-certificate-from-csr \ --set-as-active \ --certificate-signing-request file://path_to_device.csr \ --certificate-pem-outfile greengrass-v2-certs/device.pem.crt

    Jika permintaan berhasil, responsnya terlihat mirip dengan contoh berikut:

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }

Langkah 7: Siapkan Greengrass Nucleus Lite dengan dukungan TPM

Untuk mengaktifkan dukungan TPM di Greengrass Nucleus Lite, lakukan perubahan berikut:

  1. Konfigurasikan izin pengguna dengan menambahkan ggcore pengguna ke tss grup untuk akses TPM:

    sudo usermod -a -G tss ggcore
  2. Perbarui direktori kredensil dengan menyelesaikan langkah-langkah berikut:

    • Hapus file kunci pribadi dari direktori kredensial.

      • Karena kami menggunakan kunci TPM persisten, tidak ada file kunci pribadi yang perlu disalin.

    • Salin yang baru device.pem.crt ke direktori kredensil itu.

  3. Edit config.yaml dengan konfigurasi khusus TPM berikut:

    system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ...
  4. Reboot Greengrass Nucleus Lite Anda dengan menjalankan perintah berikut:

    systemctl restart greengrass-lite.target

Pemecahan masalah

Jika Anda mengalami masalah selama penyiapan atau pengoperasian AWS IoT Greengrass perangkat yang TPM2 diaktifkan, coba langkah pemecahan masalah berikut:

Perangkat TPM tidak ditemukan (saat menggunakan NitroTPM)

Jika tidak /dev/tpm0 ada, lakukan langkah-langkah berikut:

  1. Verifikasi bahwa Anda menggunakan jenis instans yang didukung NitroTPM.

  2. Pastikan AMI dibuat dengan--tpm-support v2.0.

  3. Verifikasi bahwa instance diluncurkan dari AMI kustom.

Kesalahan ditolak izin

Jika Anda mengalami kesalahan akses TPM, lakukan hal berikut:

  1. Verifikasi bahwa pengguna berada dalam tss grup:groups $USER.

  2. Periksa izin perangkat TPM menggunakan perintah berikut:

    ls -l /dev/tpm*
  3. Verifikasi Anda keluar dan masuk kembali setelah menambahkan ke tss grup.

Masalah penyedia OpenSSL

Jika penyedia TPM tidak ditemukan, lakukan hal berikut:

  1. Verifikasi tpm2.so jalur di/etc/ssl/openssl.cnf.

  2. Periksa instalasi penyedia dengan menjalankan perintah berikut:

    openssl list -providers
  3. Verifikasi tpm2-openssl paket diinstal dengan benar.

Langkah selanjutnya

Sekarang setelah Anda berhasil mengintegrasikan perangkat AWS IoT Greengrass inti Anda TPM2, Anda dapat:

  • Menerapkan komponen ke perangkat aman AWS IoT Greengrass Anda

  • Siapkan AWS IoT Greengrass perangkat tambahan dengan TPM2 integrasi

Untuk informasi selengkapnya tentang keamanan pada AWS IoT Greengrass perangkat, lihatKeamanan di AWS IoT Greengrass.