Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Modul 7: Mensimulasikan integrasi keamanan perangkat keras - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Modul 7: Mensimulasikan integrasi keamanan perangkat keras

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.7 dan yang lebih baru.

Modul lanjutan ini menunjukkan Anda cara mengonfigurasi modul keamanan perangkat keras yang disimulasikan (HSM) untuk digunakan dengan core Greengrass. Konfigurasi menggunakan SoftHSM, yang merupakan implementasi perangkat lunak murni yang menggunakan PKCS #11 antarmuka pemrograman aplikasi (API). Tujuan dari modul ini adalah untuk mengizinkan Anda untuk mengatur lingkungan di mana Anda dapat belajar dan melakukan pengujian awal terhadap implementasi perangkat lunak saja dari PKCS#11 API. Ini disediakan hanya untuk pembelajaran dan pengujian awal, bukan untuk penggunaan produksi dalam bentuk apapun.

Anda dapat menggunakan konfigurasi ini untuk bereksperimen dengan menggunakan layanan kompatibel-PKCS #11 untuk menyimpan kunci privat Anda. Untuk informasi lebih lanjut tentang implementasi perangkat lunak saja, lihat SoftHSM. Untuk informasi lebih lanjut tentang mengintegrasikan keamanan perangkat keras pada AWS IoT Greengrass core, termasuk persyaratan umum, lihat Integrasi keamanan perangkat keras.

penting

Modul ini ditujukan untuk tujuan eksperimen saja. Kami sangat tidak menganjurkan penggunaan SoftHSM dalam lingkungan produksi karena mungkin menyediakan rasa keamanan tambahan yang salah. Konfigurasi yang dihasilkan tidak menyediakan manfaat keamanan yang sebenarnya. Kunci yang disimpan di SoftHSM tidak disimpan lebih aman daripada sarana penyimpanan rahasia lainnya di lingkungan Greengrass.

Tujuan dari modul ini adalah untuk mengizinkan Anda untuk mempelajari tentang spesifikasi PKCS #11 dan melakukan pengujian awal perangkat lunak Anda jika Anda berencana untuk menggunakan HSM berbasis perangkat nyata di masa depan.

Anda harus menguji implementasi perangkat keras masa depan Anda secara terpisah dan sepenuhnya sebelum penggunaan produksi karena mungkin ada perbedaan antara implementasi PKCS #11 yang disediakan di SoftHSM dan implementasi berbasis perangkat keras.

Jika Anda memerlukan bantuan terkait orientasi modul keamanan perangkat keras yang didukung, kontak AWS perwakilan Support Korporasi.

Sebelum Anda memulai, jalankan skrip Penyiapan Perangkat Greengrass ini, atau pastikan bahwa Anda telah menyelesaikan Modul 1 dan Modul 2 dari tutorial Memulai. Dalam modul ini, kami berasumsi bahwa core Anda sudah disediakan dan berkomunikasi dengan AWS. Modul ini akan memakan waktu sekitar 30 menit untuk menyelesaikannya.

Instal perangkat lunak SoftHSM

Dalam langkah ini, Anda memasang SoftHSM dan alat pkcs11, yang digunakan untuk mengelola keberlangsungan SoftHSM Anda.

  • Di terminal pada AWS IoT Greengrass perangkat core Anda, jalankan perintah berikut:

    sudo apt-get install softhsm2 libsofthsm2-dev pkcs11-dump

    Untuk informasi lebih lanjut tentang paket ini, lihat Instal softhsm2, Pasang libsofthsm2-dev, dan Instal pkcs11-dump.

    catatan

    Jika Anda mengalami masalah ketika menggunakan perintah ini pada sistem Anda, lihat versi SoftHSM 2 di GitHub. Situs ini menyediakan informasi penginstalan lebih lanjut, termasuk cara membangun dari sumber.

Konfigurasi SoftHSM

Dalam langkah ini, Anda mengonfigurasi SoftHSM.

  1. Beralih ke pengguna akar.

    sudo su
  2. Gunakan halaman manual untuk menemukan softhsm2.conf lokasi yang menyeluruh dalam sistem. Lokasi yang umum adalah /etc/softhsm/softhsm2.conf, tetapi lokasi mungkin berbeda pada beberapa sistem.

    man softhsm2.conf
  3. Buat direktori untuk file konfigurasi softhsm2 di lokasi yang menyeluruh dalam sistem. Dalam contoh ini, kami mengasumsikan lokasi /etc/softhsm/softhsm2.conf.

    mkdir -p /etc/softhsm
  4. Membuat direktori token di /greengrass direktori.

    catatan

    Jika langkah ini dilewati, softhsm2-util melaporkan ERROR: Could not initialize the library.

    mkdir -p /greengrass/softhsm2/tokens
  5. Konfigurasikan direktori token.

    echo "directories.tokendir = /greengrass/softhsm2/tokens" > /etc/softhsm/softhsm2.conf
  6. Konfigurasikan backend berbasis file.

    echo "objectstore.backend = file" >> /etc/softhsm/softhsm2.conf
catatan

Pengaturan konfigurasi ini ditujukan untuk tujuan eksperimen saja. Untuk melihat semua opsi konfigurasi, baca halaman manual buku panduan untuk file konfigurasi.

man softhsm2.conf

Mengimpor kunci privat ke SoftHSM

Dalam langkah ini, Anda menginisialisasi token SoftHSM, mengkonversi format kunci privat, lalu mengimpor kunci privat.

  1. Menginisialisasi token SoftHSM.

    softhsm2-util --init-token --slot 0 --label greengrass --so-pin 12345 --pin 1234
    catatan

    Jika diminta, masukkan pin SO dari 12345 dan pin pengguna dari 1234. AWS IoT Greengrass tidak menggunakan pin SO (supervisor), sehingga Anda dapat menggunakan nilai apapun.

    Jika Anda menerima kesalahan CKR_SLOT_ID_INVALID: Slot 0 does not exist, coba perintah berikut:

    softhsm2-util --init-token --free --label greengrass --so-pin 12345 --pin 1234
  2. Konversikan kunci privat ke format yang dapat digunakan oleh alat impor SoftHSM. Untuk tutorial ini, Anda mengubah kunci privat yang Anda peroleh dari opsi pembuatan Grup Default di dalam Modul 2 dari tutorial Memulai.

    openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in hash.private.key -out hash.private.pem
  3. Impor kunci privat ke SoftHSM. Jalankan hanya salah satu perintah berikut, tergantung pada versi softhsm2-util Anda.

    Sintaks Raspbian softhsm2-util v2.2.0
    softhsm2-util --import hash.private.pem --token greengrass --label iotkey --id 0000 --pin 12340
    Sintaks Ubuntu softhsm2-util v2.0.0
    softhsm2-util --import hash.private.pem --slot 0 --label iotkey --id 0000 --pin 1234

    Perintah ini mengidentifikasi slot sebagai 0 dan mendefinisikan label kunci sebagai iotkey. Anda menggunakan nilai-nilai ini di bagian selanjutnya.

Setelah kunci privat diimpor, Anda dapat secara opsional menghapusnya dari direktori /greengrass/certs ini. Pastikan untuk menyimpan CA akar dan sertifikat perangkat dalam direktori.

Konfigurasikan core Greengrass untuk menggunakan SoftHSM

Dalam langkah ini, Anda memodifikasi file konfigurasi core Greengrass untuk menggunakan SoftHSM.

  1. Temukan path ke pustaka penyedia SoftHSM (libsofthsm2.so) pada sistem Anda:

    1. Dapatkan daftar paket yang diinstal untuk perpustakaan.

      sudo dpkg -L libsofthsm2

      File libsofthsm2.so terletak di softhsm direktori.

    2. Salin jalur lengkap ke file (sebagai contoh, /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so). Anda menggunakan nilai ini kemudian.

  2. Hentikan daemon Greengrass.

    cd /greengrass/ggc/core/ sudo ./greengrassd stop
  3. Buka file konfigurasi Greengrass. Ini adalah file config.json dalam direktori /greengrass/config ini.

    catatan

    Contoh dalam prosedur ini ditulis dengan asumsi bahwa file config.json menggunakan format yang dihasilkan dari opsi Pembuatan Grup default di dalam Modul 2 dari tutorial Memulai.

  4. Di dalam crypto.principals objek, masukkan objek sertifikat server MQTT berikut. Tambahkan koma di mana diperlukan untuk membuat file JSON valid.

    "MQTTServerCertificate": { "privateKeyPath": "path-to-private-key" }
  5. Di crypto objek, masukkan PKCS11 objek berikut. Tambahkan koma di mana diperlukan untuk membuat file JSON valid.

    "PKCS11": { "P11Provider": "/path-to-pkcs11-provider-so", "slotLabel": "crypto-token-name", "slotUserPin": "crypto-token-user-pin" }

    File Anda akan terlihat serupa dengan berikut ini:

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix.iot.region.amazonaws.com", "ggHost" : "greengrass.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto": { "PKCS11": { "P11Provider": "/path-to-pkcs11-provider-so", "slotLabel": "crypto-token-name", "slotUserPin": "crypto-token-user-pin" }, "principals" : { "MQTTServerCertificate": { "privateKeyPath": "path-to-private-key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" }, "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }
    catatan

    Untuk menggunakan over-the-air (OTA) update dengan keamanan perangkat keras,PKCS11objek juga harus berisiOpenSSLEngineproperti Untuk informasi selengkapnya, lihat Konfigurasikan dukungan untuk over-the-air pembaruan.

  6. Edit crypto objek:

    1. Konfigurasikan PKCS11 objek.

      • Untuk P11Provider, masukkan path lengkap ke libsofthsm2.so.

      • Untuk slotLabel, masukkan greengrass.

      • Untuk slotUserPin, masukkan 1234.

    2. Konfigurasikan path kunci privat di dalam principals objek. Jangan edit certificatePath properti.

      • Untuk privateKeyPath properti, masukkan path RFC 7512 PKCS #11 berikut (yang menentukan label kunci). Lakukan ini untuk IoTCertificate, SecretsManager, dan MQTTServerCertificate pelaku utama.

        pkcs11:object=iotkey;type=private
    3. Periksa crypto objek. Itu akan terlihat serupa dengan yang berikut ini:

      "crypto": { "PKCS11": { "P11Provider": "/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so", "slotLabel": "greengrass", "slotUserPin": "1234" }, "principals": { "MQTTServerCertificate": { "privateKeyPath": "pkcs11:object=iotkey;type=private" }, "SecretsManager": { "privateKeyPath": "pkcs11:object=iotkey;type=private" }, "IoTCertificate": { "certificatePath": "file://certs/core.crt", "privateKeyPath": "pkcs11:object=iotkey;type=private" } }, "caPath": "file://certs/root.ca.pem" }
  7. Hapus nilai caPath, certPath, dan keyPath dari coreThing objek. Itu akan terlihat serupa dengan yang berikut ini:

    "coreThing" : { "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }
catatan

Untuk tutorial ini, Anda menentukan kunci privat yang sama untuk semua pelaku utama. Untuk informasi lebih lanjut tentang memilih kunci privat untuk server MQTT lokal, lihat Performa. Untuk informasi lebih lanjut tentang secrets manager lokal, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

Uji konfigurasi

  • Mulai daemon Greengrass.

    cd /greengrass/ggc/core/ sudo ./greengrassd start

    Jika daemon dimulai dengan sukses, maka core Anda telah dikonfigurasi dengan benar.

    Anda sekarang siap untuk mempelajari spesifikasi PKCS #11 dan melakukan pengujian awal dengan API PKCS#11 yang disediakan oleh implementasi SoftHSM.

    penting

    Sekali lagi, sangat penting untuk menyadari bahwa modul ini ditujukan untuk pembelajaran dan pengujian saja. Ini tidak benar-benar meningkatkan postur keamanan lingkungan Greengrass Anda.

    Sebaliknya, tujuan dari modul ini adalah untuk mengizinkan Anda untuk mulai pembelajaran dan pengujian dalam persiapan untuk menggunakan HSM berbasis hardware nyata di masa depan. Pada saat itu, Anda harus secara terpisah dan sepenuhnya menguji perangkat lunak Anda terhadap HSM berbasis perangkat keras sebelum penggunaan produksi, karena mungkin ada perbedaan antara implementasi PKCS #11 yang disediakan di SoftHSM dan implementasi berbasis perangkat keras.

Lihat juga

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.