Pengesahan sertifikat X.509
Artikel ini menjelaskan konsep yang terlibat saat menyediakan perangkat menggunakan pengesahan sertifikat X.509 di Device Provisioning Service (DPS). Artikel ini relevan untuk semua persona yang terlibat dalam mendapatkan perangkat yang siap untuk disebarkan.
Sertifikat X.509 dapat disimpan dalam modul keamanan perangkat keras HSM.
Tip
Kami sangat menyarankan penggunaan HSM dengan perangkat untuk menyimpan rahasia dengan aman, seperti sertifikat X.509, di perangkat Anda yang sedang diproduksi.
Memahami rantai sertifikat X.509
Menggunakan sertifikat X.509 sebagai mekanisme pengesahan adalah cara terbaik untuk menskalakan produksi dan menyederhanakan penyediaan perangkat. Sertifikat X.509 biasanya diatur dalam rantai kepercayaan sertifikat di mana setiap sertifikat dalam rantai ditandatangani oleh kunci privat dari sertifikat berikutnya yang lebih tinggi, dan seterusnya, diakhiri dengan sertifikat akar yang ditandatangani sendiri. Pengaturan ini menetapkan rantai kepercayaan yang didelegasikan dari sertifikat akar yang dihasilkan oleh otoritas sertifikat tepercaya (CA) melalui setiap sertifikat perantara ke sertifikat akhir yang diinstal pada perangkat. Untuk mempelajari lebih lanjut, lihat Autentikasi Perangkat menggunakan Sertifikat CA X.509.
Seringkali rantai sertifikat mewakili hierarki logis atau fisik yang terkait dengan perangkat. Misalnya, produsen mungkin membuat hierarki sertifikat berikut:
- Sertifikat OS akar yang ditandatangani sendiri memulai rantai sertifikat.
- Sertifikat akar menghasilkan sertifikat OS perantara unik untuk setiap pabrik.
- Sertifikat setiap pabrik menghasilkan sertifikat OS perantara unik untuk setiap lini produksi di pabrik.
- Sertifikat lini produksi menghasilkan sertifikat perangkat unik (entitas akhir) untuk setiap perangkat yang diproduksi di baris.
Untuk mempelajari lebih lanjut, lihat Pemahaman konseptual tentang sertifikat CA X.509 di industri IoT.
Sertifikat akar
Sertifikat akar adalah sertifikat X.509 yang ditandatangani sendiri yang mewakili otoritas sertifikat (CA). Ini adalah terminal, atau jangkar kepercayaan, dari rantai sertifikat. Sertifikat akar dapat diterbitkan sendiri oleh organisasi atau dibeli dari otoritas sertifikat akar. Sertifikat akar juga dapat disebut sertifikat OS akar.
Sertifikat menengah
Sertifikat perantara adalah sertifikat X.509 yang telah ditandatangani oleh sertifikat akar (atau oleh sertifikat perantara lain dengan sertifikat akar dalam rantainya) dan juga dapat menandatangani sertifikat baru. Sertifikat perantara terakhir dalam rantai menandatangani sertifikat daun. Sertifikat perantara juga dapat disebut sertifikat OS perantara.
Sertifikat perantara digunakan dengan berbagai cara. Misalnya, sertifikat perantara dapat digunakan untuk mengelompokkan perangkat menurut lini produk, pelanggan yang membeli perangkat, divisi perusahaan, atau pabrik.
Bayangkan bahwa Contoso adalah perusahaan besar dengan Infrastruktur Kunci Umum (PKI) sendiri menggunakan sertifikat akar bernama ContosoRootCert
. Setiap anak perusahaan Contoso memiliki sertifikat perantara mereka sendiri yang ditandatangani oleh ContosoRootCert
. Setiap anak perusahaan menggunakan sertifikat perantara mereka untuk menandatangani sertifikat daun mereka untuk setiap perangkat. Dalam skenario ini, Contoso dapat menggunakan satu instans DPS di mana ContosoRootCert
merupakan sertifikat terverifikasi. Mereka dapat memiliki grup pendaftaran untuk setiap anak perusahaan. Dengan cara ini setiap anak perusahaan tidak perlu khawatir tentang memverifikasi sertifikat.
Sertifikat "daun" entitas akhir
Sertifikat daun, atau sertifikat entitas akhir, mengidentifikasi pemegang sertifikat. Hal ini memiliki sertifikat akar dalam rantai sertifikatnya dan nol atau beberapa sertifikat perantara. Sertifikat daun tidak digunakan untuk menandatangani sertifikat lain. Ini secara unik mengidentifikasi perangkat ke layanan provisi dan kadang-kadang disebut sebagai sertifikat perangkat. Selama autentikasi, perangkat menggunakan kunci privat yang terkait dengan sertifikatnya untuk menanggapi bukti tantangan kepemilikan dari layanan.
Menggunakan sertifikat X.509 dengan DPS
Layanan penyediaan memperlihatkan dua jenis pendaftaran yang dapat Anda gunakan untuk mengontrol akses perangkat dengan mekanisme pengesahan X.509:
- Entri Pendaftaran individu dikonfigurasi dengan sertifikat perangkat yang terkait dengan perangkat tertentu. Entri ini mengontrol pendaftaran untuk perangkat tertentu.
- Entri Grup pendaftaran dikaitkan dengan sertifikat CA perantara atau akar tertentu. Entri ini mengontrol pendaftaran untuk semua perangkat yang memiliki sertifikat perantara atau akar dalam rantai sertifikat mereka.
Sertifikat hanya dapat ditentukan dalam satu entri pendaftaran di instans DPS Anda.
Dukungan TLS timbal balik
Ketika pendaftaran DPS dikonfigurasi untuk pengesahan X.509, TLS bersama (mTLS) didukung oleh DPS.
Persyaratan algoritma enkripsi DPS
Device Provisioning Service hanya menerima sertifikat X.509 yang menggunakan algoritma Rivest-Shamir-Adleman (RSA) atau algoritma Elliptic Curve Cryptography (ECC) untuk enkripsi. ECC dan RSA memberikan tingkat kekuatan enkripsi yang setara, tetapi ECC menggunakan panjang kunci yang lebih pendek.
Jika Anda menggunakan metode ECC untuk menghasilkan sertifikat X.509 untuk pengesahan perangkat, kami sarankan kurva elips berikut:
- nistP256
- nistP384
- nistP521
Persyaratan penamaan sertifikat DPS
Sertifikat daun yang digunakan dengan entri pendaftaran individu harus memiliki nama umum subjek (CN) yang diatur ke ID pendaftaran. ID pendaftaran mengidentifikasi pendaftaran perangkat dengan DPS dan harus unik untuk instans DPS (cakupan ID) tempat perangkat mendaftar.
Untuk grup pendaftaran, nama umum subjek (CN) mengatur ID perangkat yang terdaftar di IoT Hub. ID perangkat akan ditampilkan di Catatan Pendaftaran untuk perangkat yang diautentikasi di grup pendaftaran. Untuk pendaftaran individu, ID perangkat dapat diatur dalam entri pendaftaran. Jika tidak diatur dalam entri pendaftaran, maka nama umum subjek (CN) digunakan.
Untuk mempelajari selengkapnya, lihat Mengautentikasi perangkat yang ditandatangani dengan sertifikat CA X.509.
Persyaratan rantai perangkat DPS
Saat perangkat mencoba pendaftaran melalui DPS menggunakan grup pendaftaran, perangkat harus mengirim rantai sertifikat dari sertifikat daun ke sertifikat terverifikasi. Jika tidak, autentikasi gagal.
Misalnya, jika hanya sertifikat akar yang diverifikasi dan sertifikat perantara diunggah ke grup pendaftaran, perangkat harus menampilkan rantai sertifikat dari sertifikat daun sampai ke sertifikat akar terverifikasi. Rantai sertifikat ini akan mencakup sertifikat perantara apa pun di antaranya. Autentikasi gagal jika DPS tidak dapat melintasi rantai sertifikat ke sertifikat terverifikasi.
Misalnya, pertimbangkan perusahaan yang menggunakan rantai perangkat berikut untuk perangkat.
Dalam contoh ini, sertifikat akar diverifikasi dengan DPS, dan intermediate2
sertifikat diunggah pada grup pendaftaran.
Jika perangkat hanya mengirim rantai perangkat berikut selama provisi, autentikasi gagal. Karena DPS tidak dapat mencoba autentikasi dengan asumsi validitas intermediate1
sertifikat.
Jika perangkat mengirimkan rangkaian perangkat lengkap sebagai berikut selama provisi, maka DPS dapat mencoba autentikasi perangkat.
Urutan operasi DPS dengan sertifikat
Ketika perangkat terhubung ke layanan provisi, layanan berjalan rantai sertifikatnya dimulai dengan sertifikat perangkat (daun) dan mencari entri pendaftaran yang sesuai. Ini menggunakan entri pertama yang ditemukan dalam rantai untuk menentukan apakah akan menyediakan perangkat. Artinya, jika pendaftaran individu untuk sertifikat perangkat ada, layanan provisi menerapkan entri tersebut. Jika tidak ada pendaftaran individu untuk perangkat, layanan mencari grup pendaftaran yang sesuai dengan sertifikat perantara pertama. Jika menemukannya, entri tersebut akan berlaku; jika tidak, ia mencari grup pendaftaran untuk sertifikat perantara berikutnya, dan sebagainya, turun rantai ke akar.
Layanan ini menerapkan entri pertama yang ditemukannya, sehingga:
- Jika entri pendaftaran pertama yang ditemukan diaktifkan, layanan provisi perangkat.
- Jika entri pendaftaran pertama yang ditemukan dinonaktifkan, layanan tidak menyediakan perangkat.
- Jika tidak ada entri pendaftaran yang ditemukan untuk salah satu sertifikat dalam rantai sertifikat perangkat, layanan tidak menyediakan perangkat.
Setiap sertifikat dalam rantai sertifikat perangkat dapat ditentukan dalam entri pendaftaran, tetapi hanya dapat ditentukan dalam satu entri dalam instans DPS.
Mekanisme ini dan struktur hierarki rantai sertifikat memberikan fleksibilitas yang kuat dalam cara Anda dapat mengontrol akses untuk masing-masing perangkat dan grup perangkat. Misalnya, bayangkan lima perangkat dengan rantai sertifikat berikut:
- Perangkat 1: sertifikat akar -> sertifikat A -> sertifikat perangkat 1
- Perangkat 2: sertifikat akar -> sertifikat A -> sertifikat perangkat 2
- Perangkat 3: sertifikat akar -> sertifikat A -> sertifikat perangkat 3
- Perangkat 4: sertifikat akar -> sertifikat B -> sertifikat perangkat 4
- Perangkat 5: sertifikat akar -> sertifikat B -> sertifikat perangkat 5
Awalnya, Anda dapat membuat satu entri pendaftaran grup yang diaktifkan untuk sertifikat akar guna mengaktifkan akses untuk kelima perangkat. Jika sertifikat B kemudian disusupi, Anda dapat membuat entri grup pendaftaran yang dinonaktifkan untuk sertifikat B untuk mencegah Perangkat 4 dan Perangkat 5 mendaftar. Jika nanti Perangkat 3 disusupi, Anda dapat membuat entri pendaftaran individu yang dinonaktifkan untuk sertifikatnya. Tindakan ini mencabut akses untuk Perangkat 3, namun tetap mengizinkan Perangkat 1 dan Perangkat 2 untuk mendaftar.