Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi Migrasi dari AWS IoT Greengrass Version 1.
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
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, hubungi perwakilan AWS Enterprise Support Anda.
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 inti Anda sudah disediakan dan berkomunikasi dengannya. 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 perangkat AWS IoT Greengrass inti Anda, jalankan perintah berikut:
sudo apt-get install softhsm2 libsofthsm2-dev pkcs11-dumpUntuk informasi lebih lanjut tentang paket ini, lihat Instal softhsm2
, Pasang libsofthsm2-dev , dan Instal pkcs11-dump . catatan
Jika Anda mengalami masalah saat menggunakan perintah ini di sistem Anda, lihat SoftHSM versi 2 aktif
. GitHub Situs ini menyediakan informasi penginstalan lebih lanjut, termasuk cara membangun dari sumber.
Konfigurasi SoftHSM
Dalam langkah ini, Anda mengonfigurasi SoftHSM
-
Beralih ke pengguna akar.
sudo su -
Gunakan halaman manual untuk menemukan
softhsm2.conflokasi yang menyeluruh dalam sistem. Lokasi yang umum adalah/etc/softhsm/softhsm2.conf, tetapi lokasi mungkin berbeda pada beberapa sistem.man softhsm2.conf -
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 -
Membuat direktori token di
/greengrassdirektori.catatan
Jika langkah ini dilewati, softhsm2-util melaporkan
ERROR: Could not initialize the library.mkdir -p /greengrass/softhsm2/tokens -
Konfigurasikan direktori token.
echo "directories.tokendir = /greengrass/softhsm2/tokens" > /etc/softhsm/softhsm2.conf -
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.
-
Menginisialisasi token SoftHSM.
softhsm2-util --init-token --slot 0 --label greengrass --so-pin 12345 --pin 1234catatan
Jika diminta, masukkan pin SO dari
12345dan pin pengguna dari1234. 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 -
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 -inhash.private.key -outhash.private.pem -
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
0dan mendefinisikan label kunci sebagaiiotkey. 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.
Temukan path ke pustaka penyedia SoftHSM (
libsofthsm2.so) pada sistem Anda:Dapatkan daftar paket yang diinstal untuk perpustakaan.
sudo dpkg -L libsofthsm2File
libsofthsm2.soterletak disofthsmdirektori.Salin jalur lengkap ke file (sebagai contoh,
/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so). Anda menggunakan nilai ini kemudian.
Hentikan daemon Greengrass.
cd /greengrass/ggc/core/ sudo ./greengrassd stopBuka file konfigurasi Greengrass. Ini adalah file config.json dalam direktori
/greengrass/configini.catatan
Contoh dalam prosedur ini ditulis dengan asumsi bahwa file
config.jsonmenggunakan format yang dihasilkan dari opsi Pembuatan Grup default di dalam Modul 2 dari tutorial Memulai.-
Di dalam
crypto.principalsobjek, masukkan objek sertifikat server MQTT berikut. Tambahkan koma di mana diperlukan untuk membuat file JSON valid."MQTTServerCertificate": { "privateKeyPath": "path-to-private-key" } -
Di
cryptoobjek, masukkanPKCS11objek 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 pembaruan over-the-air (OTA) dengan keamanan perangkat keras,
PKCS11objek juga harus berisiOpenSSLEngineproperti. Untuk informasi selengkapnya, lihat Konfigurasikan dukungan untuk over-the-air pembaruan. -
Edit
cryptoobjek:Konfigurasikan
PKCS11objek.Untuk
P11Provider, masukkan path lengkap kelibsofthsm2.so.Untuk
slotLabel, masukkangreengrass.Untuk
slotUserPin, masukkan1234.
Konfigurasikan path kunci privat di dalam
principalsobjek. Jangan editcertificatePathproperti.Untuk
privateKeyPathproperti, masukkan path RFC 7512 PKCS #11 berikut (yang menentukan label kunci). Lakukan ini untukIoTCertificate,SecretsManager, danMQTTServerCertificatepelaku utama.pkcs11:object=iotkey;type=private
-
Periksa
cryptoobjek. 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" }
-
Hapus nilai
caPath,certPath, dankeyPathdaricoreThingobjek. 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 Menyebarkan rahasia ke inti AWS IoT Greengrass.
Uji konfigurasi
Mulai daemon Greengrass.
cd /greengrass/ggc/core/ sudo ./greengrassd startJika 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
-
Panduan Penggunaan Antarmuka Token Kriptografi PKCS #11 Versi 2.40. Diedit oleh John Leiseboer dan Robert Griffin. 16 November 2014. Catatan Komite OASIS 02. http://docs.oasis-open. org/pkcs11/pkcs11-ug/v2.40/cn02/pkcs11-ug-v2.40-cn02.html
. Versi terbaru: http://docs.oasis-open. org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html .