Mengautentikasi identitas dengan sertifikat X.509
IoT Hub menggunakan sertifikat X.509 untuk mengautentikasi perangkat. Autentikasi X.509 memungkinkan autentikasi perangkat IoT sebagai bagian dari pembentukan koneksi standar Keamanan Lapisan Transportasi (TLS).
Sertifikat otoritas sertifikat (CA) X.509 adalah sertifikat digital yang dapat menandatangani sertifikat lain. Sertifikat digital dianggap sebagai sertifikat X.509 jika sesuai dengan standar pemformatan sertifikat yang ditentukan oleh standar RFC 5280 IETF.
Fitur CA X.509 memungkinkan autentikasi perangkat ke IoT Hub menggunakan certificate authority (CA). Ini menyederhanakan proses pendaftaran perangkat awal dan logistik rantai pasokan selama manufaktur perangkat.
Autentikasi dan otorisasi
Autentikasi adalah proses membuktikan bahwa Anda adalah orang yang Anda katakan. Autentikasi memverifikasi identitas pengguna atau perangkat ke IoT Hub. Ini kadang-kadang disingkat menjadi AuthN.
Otorisasi adalah proses mengonfirmasi izin untuk pengguna atau perangkat yang diautentikasi di IoT Hub. Ini menentukan sumber daya dan perintah apa yang diizinkan untuk Anda akses, dan apa yang dapat Anda lakukan dengan sumber daya dan perintah tersebut. Otorisasi kadang-kadang disingkat menjadi AuthZ.
Sertifikat X.509 hanya digunakan untuk autentikasi di IoT Hub, bukan otorisasi. Tidak seperti ID Microsoft Entra dan tanda tangan akses bersama, Anda tidak dapat menyesuaikan izin dengan sertifikat X.509.
Jenis autentikasi sertifikat
Anda dapat menggunakan sertifikat X.509 apa pun untuk mengautentikasi perangkat dengan IoT Hub dengan mengunggah thumbprint sertifikat atau otoritas sertifikat (CA) ke IoT Hub.
X.509 CA ditandatangani - Opsi ini direkomendasikan untuk skenario produksi dan merupakan fokus dari artikel ini.
Jika perangkat Anda memiliki sertifikat X.509 yang ditandatangani CA, maka Anda mengunggah sertifikat CA akar atau menengah dalam rantai penandatanganan ke IoT Hub sebelum Anda mendaftarkan perangkat. Perangkat ini memiliki sertifikat X.509 dengan CA X.509 terverifikasi dalam rantai kepercayaan sertifikatnya. Ketika perangkat tersambung, perangkat menyajikan rantai sertifikat lengkapnya dan hub IoT dapat memvalidasinya karena tahu CA X.509. Beberapa perangkat dapat mengautentikasi terhadap CA X.509 terverifikasi yang sama.
X.509 ditandatangani sendiri
Jika perangkat Anda memiliki sertifikat X.509 yang ditandatangani sendiri, maka Anda memberi IoT Hub versi sertifikat untuk autentikasi. Saat mendaftarkan perangkat, Anda mengunggah thumbprint sertifikat, yang merupakan hash sertifikat X.509 perangkat. Ketika perangkat terhubung, perangkat menyajikan sertifikatnya dan hub IoT dapat memvalidasinya terhadap hash yang diketahuinya.
Penting
Fungsionalitas berikut untuk perangkat yang menggunakan autentikasi otoritas sertifikat (CA) X.509 belum tersedia secara umum, dan mode pratinjau harus diaktifkan:
- HTTPS, MQTT melalui WebSocket, dan AMQP melalui protokol WebSockets.
- Unggahan file (semua protokol).
Fitur ini umumnya tersedia di perangkat yang menggunakan autentikasi thumbprint X.509.
Menerapkan autentikasi X.509
Untuk keamanan ekstra, hub IoT dapat dikonfigurasi untuk tidak mengizinkan autentikasi SAS untuk perangkat dan modul, meninggalkan X.509 sebagai satu-satunya opsi autentikasi yang diterima. Saat ini, fitur ini tidak tersedia di portal Microsoft Azure. Untuk mengonfigurasi, mengatur disableDeviceSAS
dan disableModuleSAS
ke true
pada properti sumber daya IoT Hub:
az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true
Keuntungan autentikasi sertifikat CA X.509
IoT memerlukan identitas unik untuk setiap perangkat yang terhubung. Untuk autentikasi berbasis sertifikat, identitas ini dalam bentuk sertifikat.
Cara yang valid tetapi tidak efisien untuk memberikan sertifikat unik pada setiap perangkat adalah dengan meregenerasi sertifikat dan memberi semua mitra rantai pasokan kunci privat yang sesuai. Metode ini dilengkapi dengan tantangan yang harus diatasi untuk memastikan kepercayaan, sebagai berikut:
Harus berbagi kunci privat perangkat dengan mitra rantai pasokan, selain mengabaikan praktik terbaik PKI untuk tidak pernah berbagi kunci privat, ini menyebabkan pembuatan kepercayaan di rantai pasokan menjadi mahal. Hal ini memerlukan sistem seperti ruang aman untuk menampung kunci privat perangkat dan proses seperti audit keamanan berkala. Keduanya menambah biaya untuk rantai pasokan.
Memperhitungkan perangkat dengan aman dalam rantai pasokan, dan kemudian mengelolanya dalam penyebaran melalui penghentian perangkat, menjadi tugas satu-ke-satu untuk setiap pasangan kunci-ke-perangkat. Hubungan ini menghalangi manajemen grup perangkat kecuali konsep grup secara eksplisit dibangun ke dalam proses. Manajemen siklus hidup perangkat dan perhitungan yang aman, oleh karenanya, menjadi beban operasi yang berat.
Autentikasi sertifikat CA X.509 menawarkan solusi yang elegan untuk tantangan ini menggunakan rantai sertifikat. Rantai sertifikat dihasilkan dari CA yang menandatangani CA perantara yang bergiliran menandatangani CA perantara lain, dan seterusnya, hingga CA perantara terakhir menandatangani perangkat. Rantai sertifikat membuat hubungan satu-ke-banyak antara sertifikat CA dan perangkat hilirnya. Hubungan ini memungkinkan Anda mendaftarkan sejumlah perangkat ke IoT Hub dengan mendaftarkan sertifikat CA X.509 sekali.
Autentikasi CA X.509 juga menyederhanakan logistik rantai pasokan. Alur manufaktur perangkat yang khas melibatkan beberapa langkah dan penjaga. Dengan menggunakan otoritas sertifikat, Anda dapat menandatangani setiap kustodian ke dalam rantai kepercayaan kriptografi daripada mempercayakannya dengan kunci privat perangkat. Setiap kustodian menandatangani perangkat pada langkah alur proses produksi masing-masing. Hasil keseluruhan adalah rantai pasokan yang optimal dengan akuntabilitas bawaan melalui penggunaan rantai kepercayaan kriptografi.
Proses ini menghasilkan keamanan paling banyak saat perangkat melindungi kunci privatnya yang unik. Untuk akhir ini, sebaiknya gunakan Modul Aman Perangkat Keras (HSM) yang mampu menghasilkan kunci privat secara internal.
Azure IoT Hub Device Provisioning Service (DPS) memudahkan penyediaan grup perangkat ke hub. Untuk informasi selengkapnya, lihat Tutorial: Memprovisikan beberapa perangkat X.509 menggunakan grup pendaftaran.
Alur sertifikat X.509
Bagian ini menjelaskan cara menggunakan sertifikat CA X.509 untuk mengautentikasi perangkat yang terhubung ke IoT Hub, yang mencakup langkah-langkah berikut:
- Dapatkan sertifikat CA X.509.
- Menandatangani perangkat menggunakan sertifikat CA X.509.
- Daftarkan sertifikat CA X.509 ke IoT Hub.
- Mengautentikasi perangkat yang ditandatangani dengan CA X.509.
- Cabut sertifikat perangkat jika disusupi.
Mendapatkan sertifikat CA X.509
Sertifikat CA X.509 adalah bagian atas rantai sertifikat untuk setiap perangkat Anda. Anda dapat membeli atau membuatnya tergantung pada bagaimana Anda ingin menggunakannya.
Untuk lingkungan produksi, kami sarankan Anda membeli sertifikat CA X.509 dari penyedia layanan sertifikat profesional.
Anda juga dapat membuat sertifikat CA X.509 yang ditandatangani sendiri untuk tujuan pengujian. Untuk informasi selengkapnya tentang membuat sertifikat untuk pengujian, lihat Membuat dan mengunggah sertifikat untuk pengujian. Kami tidak merekomendasikan sertifikat yang ditandatangani sendiri untuk lingkungan produksi.
Terlepas dari bagaimana Anda mendapatkan sertifikat CA X.509 Anda, pastikan untuk menjaga rahasia kunci privat yang sesuai dan selalu dilindungi.
Membeli sertifikat
Membeli sertifikat CA memberikan keuntungan memiliki CA akar yang dikenal bertindak sebagai pihak ketiga tepercaya untuk menjamin legitimasi perangkat IoT sama perangkat tersambung. Pilih opsi ini jika perangkat Anda merupakan bagian dari jaringan IoT terbuka tempat perangkat berinteraksi dengan produk atau layanan pihak ketiga.
Untuk membeli sertifikat CA X.509, pilih penyedia layanan sertifikat akar. Penyedia CA akar memandu Anda tentang cara membuat pasangan kunci publik/privat dan cara membuat permintaan penandatanganan sertifikat (CSR) untuk layanan mereka. CSR adalah proses formal untuk mengajukan sertifikat dari otoritas sertifikat. Hasil pembelian ini adalah sertifikat yang digunakan sebagai sertifikat otoritas. Mengingat banyaknya penggunaan sertifikat X.509, sertifikat ini kemungkinan sudah diformat dengan benar sesuai standar RFC 5280 IETF.
Membuat sertifikat yang ditandatangani sendiri
Proses membuat sertifikat CA X.509 yang ditandatangani sendiri mirip dengan pembelian, kecuali bahwa proses tersebut tidak melibatkan penanda tangan pihak ketiga seperti otoritas sertifikat akar.
Anda dapat memilih opsi ini untuk pengujian sampai Anda siap untuk membeli sertifikat otoritas. Anda juga dapat menggunakan sertifikat CA X.509 yang ditandatangani sendiri dalam produksi jika perangkat Anda tidak terhubung ke layanan pihak ketiga di luar IoT Hub.
Menandatangani perangkat ke rantai sertifikat kepercayaan
Pemilik sertifikat CA X.509 dapat secara kriptografis menandatangani CA perantara yang pada gilirannya dapat menandatangani CA perantara lain, dan sebagainya, sampai CA perantara terakhir menandatangani sertifikat perangkat. Hasilnya adalah rantai sertifikat bertingkat yang dikenal sebagai rantai sertifikat kepercayaan. Delegasi kepercayaan ini penting karena membangun rantai tahanan dan menghindari berbagi kunci penandatanganan.
Cascade sertifikat dalam rantai ini merepresentasikan hand-off otoritas yang logis. Banyak rantai pasokan mengikuti hand-off logis ini di mana setiap CA perantara masuk ke rantai saat menerima semua sertifikat OS hulu. CA perantara terakhir akhirnya menandatangani setiap perangkat dan menyuntikkan semua sertifikat otoritas dari rantai ke perangkat.
Sertifikat perangkat (juga disebut sertifikat daun) harus memiliki nama umum (CN) yang diatur ke ID perangkat (CN=deviceId
) yang digunakan saat mendaftarkan perangkat IoT di Azure IoT Hub. Pengaturan ini diperlukan untuk autentikasi.
Untuk modul yang menggunakan autentikasi X.509, sertifikat modul harus memiliki nama umum (CN) yang diformat seperti CN=deviceId/moduleId
.
Pelajari cara membuat rantai sertifikat seperti yang dilakukan saat menandatangani perangkat.
Mendaftarkan sertifikat CA X.509 ke IoT Hub
Daftarkan sertifikat CA X.509 Anda ke IoT Hub, yang menggunakannya untuk mengautentikasi perangkat Anda. Sertifikat CA X.509 dapat mengautentikasi perangkat apa pun yang memiliki CA dalam rantai kepercayaan sertifikatnya. Mendaftarkan sertifikat CA X.509 adalah proses dua langkah yang meliputi pengunggahan file sertifikat dan penetapan bukti kepemilikan.
Proses pengunggahan memerlukan pengunggahan file yang berisi sertifikat Anda. Berkas ini seharusnya tidak boleh berisi kunci privat.
Langkah bukti kepemilikan melibatkan tantangan kriptografi dan proses respons antara Anda dan IoT Hub untuk memverifikasi bahwa Anda benar-benar memiliki sertifikat CA. Anda dapat memilih untuk memverifikasi kepemilikan secara otomatis atau manual. Untuk verifikasi manual, IoT Hub menghasilkan tantangan acak yang Anda tanda tangani dengan kunci privat sertifikat CA. Jika Anda menyimpan rahasia kunci privat dan dilindungi seperti yang direkomendasikan, maka hanya Anda yang memiliki pengetahuan untuk menyelesaikan langkah ini. Kerahasiaan kunci privat adalah sumber kepercayaan dalam metode ini. Setelah menandatangani tantangan, Anda mengunggah file yang berisi hasil untuk menyelesaikan verifikasi.
Pelajari cara mendaftarkan sertifikat CA Anda.
Mengautentikasi perangkat yang ditandatangani dengan sertifikat CA X.509
Dengan sertifikat CA X.509 Anda terdaftar dan perangkat yang ditandatangani dengan rantai kepercayaan sertifikat, langkah terakhir adalah autentikasi perangkat. Saat perangkat bertanda tangan CA X.509 tersambung, perangkat tersebut mengunggah rantai sertifikatnya untuk validasi. Dengan informasi ini, autentikasi IoT Hub mengautentikasi perangkat dalam proses dua langkah.
Pertama, IoT Hub secara kriptografis memvalidasi rantai sertifikat untuk konsistensi internal. Kemudian, IoT Hub mengeluarkan tantangan bukti kepemilikan ke perangkat. IoT Hub menyatakan perangkat autentik pada respons bukti kepemilikan yang berhasil dari perangkat. Deklarasi ini mengasumsikan bahwa kunci privat perangkat dilindungi dan hanya perangkat tersebut yang berhasil menanggapi tantangan ini. Sebaiknya gunakan chip yang aman seperti Hardware Secure Modules (HSM) di perangkat untuk melindungi kunci privat.
Koneksi perangkat yang berhasil ke IoT Hub menyelesaikan proses autentikasi dan juga menunjukkan pengaturan yang tepat. Setiap kali perangkat tersambung, IoT Hub menegosiasikan ulang sesi TLS dan memverifikasi sertifikat X.509 perangkat.
Mencabut sertifikat perangkat
IoT Hub tidak memeriksa daftar pencabutan sertifikat dari otoritas sertifikat saat mengautentikasi perangkat dengan autentikasi berbasis sertifikat. Jika Anda memiliki perangkat yang perlu diblokir agar tidak tersambung ke IoT Hub karena sertifikat yang berpotensi disusupi, nonaktifkan perangkat di registri identitas. Untuk informasi selengkapnya, lihat Menonaktifkan atau menghapus perangkat.
Contoh skenario
Company-X membuat Smart-X-Widgets yang dirancang untuk penginstalan profesional. Company-X mengalihdayakan manufaktur dan penginstalan. Factory-Y memproduksi Smart-X-Widgets dan Technician-Z menginstalnya. Company-X ingin Smart-X-Widget dikirim langsung dari Factory-Y ke Technician-Z untuk penginstalan dan kemudian menghubungkannya langsung ke instans IoT Hub Company-X. Untuk meluaskannya, Company-X perlu menyelesaikan beberapa operasi penyiapan satu kali untuk menyiapkan Smart-X-Widget untuk koneksi otomatis. Skenario end-to-end ini mencakup langkah-langkah berikut:
Mendapatkan sertifikat CA X.509
Mendaftarkan sertifikat CA X.509 ke IoT Hub
Menandatangani perangkat ke rantai sertifikat kepercayaan
Menyambungkan perangkat
Langkah-langkah ini ditunjukkan dalam Tutorial: Membuat dan mengunggah sertifikat untuk pengujian.
Mendapatkan sertifikat
Perusahaan-X dapat membeli sertifikat CA X.509 dari otoritas sertifikat akar publik atau membuatnya melalui proses yang ditandatangani sendiri. Opsi mana pun memerlukan dua langkah dasar: membuat pasangan kunci privat/umum dan menandatangani kunci umum ke dalam sertifikat.
Detail tentang cara menyelesaikan langkah-langkah ini berbeda dengan berbagai penyedia layanan.
Mendaftarkan sertifikat ke IoT Hub
Company-X perlu mendaftarkan CA X.509 ke IoT Hub di mana ia berfungsi untuk mengautentikasi Smart-X-Widgets saat terhubung. Proses satu kali ini memungkinkan kemampuan untuk mengautentikasi dan mengelola sejumlah perangkat Smart-X-Widget. Hubungan satu-ke-banyak antara sertifikat CA dan sertifikat perangkat adalah salah satu keuntungan utama menggunakan metode autentikasi CA X.509. Alternatifnya adalah mengunggah thumbprint sertifikat individual untuk setiap perangkat Smart-X-Widget, sehingga menambah biaya operasional.
Mendaftarkan sertifikat CA X.509 adalah proses dua langkah: mengunggah sertifikat lalu memberikan bukti kepemilikan.
Unggah sertifikat
Proses pengunggahan sertifikat CA X.509 hanya itu: mengunggah sertifikat CA ke IoT Hub. IoT Hub mengharapkan sertifikat dalam file.
Dalam keadaan apa pun, file sertifikat tidak boleh berisi kunci privat. Praktik terbaik dari standar yang mengatur Infrastruktur Kunci Umum (PKI) mewajibkan pengetahuan tentang kunci privat Company-X berada dalam Company-X secara eksklusif.
Membuktikan kepemilikan
Sertifikat CA X.509, sama seperti sertifikat digital lainnya, adalah informasi publik yang rentan disadap. Dengan demikian, penyadap dapat mencegat sertifikat dan mencoba mengunggahnya sebagai milik mereka sendiri. Dalam contoh kami, IoT Hub harus memastikan bahwa sertifikat CA yang diunggah Company-X benar-benar milik Company-X. Hal ini dilakukan dengan menantang Company-X membuktikan bahwa mereka memiliki sertifikat melalui alur bukti kepemilikan (PoP).
Untuk alur bukti kepemilikan, IoT Hub menghasilkan angka acak bagi Company-X untuk menandatangani menggunakan kunci privatnya. Jika Company-X mengikuti praktik terbaik PKI dan melindungi kunci privatnya, maka hanya mereka yang dapat merespons tantangan pembuktian kepemilikan dengan tepat. IoT Hub melanjutkan pendaftaran sertifikat CA X.509 begitu ada respons berhasil atas tantangan bukti kepemilikan.
Respons berhasil atas tantangan bukti kepemilikan dari IoT Hub akan menyelesaikan pendaftaran CA X.509.
Menandatangani perangkat ke rantai sertifikat kepercayaan
Dalam contoh kami, autentikasi berbasis sertifikat berarti bahwa setiap Smart-X-Widget harus memiliki sertifikat perangkat yang unik. Daripada membuat pasangan sertifikat/kunci individual untuk setiap perangkat, Company-X memutuskan untuk menggunakan sertifikat CA dan membuat rantai sertifikat kepercayaan untuk setiap perangkat.
Dalam contoh kami, Company-X menandatangani Factory-Y, yang bergiliran menandatangani Technician-Z yang akhirnya menandatangani Smart-X-Widget.
Diagram berikut menunjukkan bagaimana rantai sertifikat kepercayaan menyatu dalam contoh Smart-X-Widget kami.
- Company-X tidak pernah berinteraksi secara fisik dengan salah satu Smart-X-Widgets. Company-X memulai rantai sertifikat kepercayaan dengan menandatangani sertifikat CA perantara Factory-Y.
- Factory-Y sekarang memiliki sertifikat OS perantaranya sendiri dengan tanda tangan dari Company-X. Ini meneruskan salinan item ini ke setiap perangkat. Ini juga menggunakan sertifikat CA perantaranya untuk menandatangani sertifikat CA menengah Technician-Z dan sertifikat perangkat Smart-X-Widget.
- Technician-Z sekarang memiliki sertifikat CA perantaranya sendiri dengan tanda tangan dari Factory-Y. Ini meneruskan salinan item ini ke setiap perangkat. Ini juga menggunakan sertifikat OS perantaranya untuk menandatangani sertifikat perangkat Smart-X-Widget.
- Setiap perangkat Smart-X-Widget sekarang memiliki sertifikat perangkat unik sendiri dan salinan kunci umum serta tanda tangan dari setiap sertifikat CA perantara yang berinteraksi dengannya di seluruh rantai pasokan. Sertifikat dan tanda tangan ini dapat ditelusuri kembali ke akar Company-X asli.
Metode autentikasi CA menanamkan akuntabilitas yang aman ke dalam rantai pasokan manufaktur perangkat. Karena proses rantai sertifikat ini, tindakan setiap anggota dalam rantai dicatat secara kriptografi dan dapat diverifikasi.
Proses ini bergantung pada asumsi bahwa pasangan kunci umum/privat perangkat unik dibuat secara independen dan bahwa kunci privat selalu dilindungi dalam perangkat. Untungnya, chip silikon aman ada dalam bentuk Hardware Secure Modules (HSM) yang mampu membuat kunci secara internal dan melindungi kunci privat. Company-X hanya perlu menambahkan satu chip aman tersebut ke dalam tagihan komponen bahan Smart-X-Widget.
Mengautentikasi perangkat
Perangkat yang diproduksi untuk autentikasi CA X.509 dilengkapi dengan sertifikat perangkat unik dan rantai sertifikat dari rantai pasokan manufaktur masing-masing. Koneksi perangkat, bahkan untuk pertama kalinya, terjadi dalam proses dua langkah: pengunggahan rantai sertifikat dan bukti kepemilikan.
Dalam contoh kami, setiap Smart-X-Widget mengunggah sertifikat perangkat uniknya bersama dengan sertifikat CA Factory-Y dan Technician-Z X.509 dan kemudian merespons tantangan bukti kepemilikan dari IoT Hub.
Menggunakan sertifikat CA X.509 yang telah terdaftar sebelumnya dari Company-X, IoT Hub memvalidasi bahwa rantai sertifikat yang diunggah konsisten secara internal dan bahwa pemilik sertifikat CA X.509 yang valid berasal dari rantai. Seperti proses pendaftaran CA X.509, IoT Hub menggunakan proses respons tantangan bukti kepemilikan untuk memastikan bahwa rantai, dan oleh karena itu, sertifikat perangkat, adalah milik perangkat yang mengunggahnya. Respons berhasil memicu Hub IoT untuk menerima perangkat sebagai otentik dan mengizinkan koneksi.
Dasar kepercayaan ada pada melindungi kunci privat, termasuk kunci privat perangkat. Oleh karena itu, kami tidak dapat cukup menekankan pentingnya chip silikon aman dalam bentuk Modul Aman Perangkat Keras (HSM) untuk melindungi kunci privat perangkat, dan praktik terbaik keseluruhan untuk tidak pernah berbagi kunci privat dari sertifikat apa pun dalam rantai.
Langkah berikutnya
Gunakan Device Provisioning Service untuk Memprovisikan beberapa perangkat X.509 menggunakan grup pendaftaran.
Untuk mempelajari selengkapnya tentang bidang yang membentuk sertifikat X.509, lihat sertifikat X.509.
Jika Anda memiliki sertifikat OS akar atau sertifikat CA subordinat dan ingin mengunggahnya ke hub IoT, Anda harus memverifikasi bahwa Anda memiliki sertifikat tersebut. Untuk informasi selengkapnya, lihat Tutorial: Membuat dan mengunggah sertifikat untuk pengujian.