Pengesahan sertifikat X.509

Artikel ini memberikan gambaran umum tentang konsep IoT Hub Device Provisioning (DPS) yang terlibat saat menyediakan perangkat menggunakan pengesahan sertifikat X.509. 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.

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 akar tepercaya (CA) turun melalui setiap CA perantara ke sertifikat "daun" entitas akhir yang dipasang pada perangkat. Untuk mempelajari lebih lanjut, lihat Autentikasi Perangkat menggunakan Sertifikat CA X.509.

Seringkali rantai sertifikat mewakili beberapa hierarki logis atau fisik yang terkait dengan perangkat. Misalnya, produsen dapat:

  • mengeluarkan sertifikat CA root yang ditandatangani sendiri
  • gunakan sertifikat akar untuk menghasilkan sertifikat CA perantara unik untuk setiap pabrik
  • gunakan sertifikat masing-masing pabrik untuk menghasilkan sertifikat CA perantara unik untuk setiap lini produksi di pabrik
  • dan terakhir gunakan sertifikat jalur produksi, untuk menghasilkan sertifikat perangkat (entitas akhir) yang unik untuk setiap perangkat yang diproduksi di jalur tersebut.

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. Untuk mempelajari lebih lanjut, lihat Mendapatkan sertifikat CA X.509. Sertifikat akar juga dapat disebut sebagai sertifikat CA 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). Sertifikat perantara terakhir dalam rantai digunakan untuk menandatangani sertifikat daun. Sertifikat perantara juga dapat disebut sebagai sertifikat CA perantara.

Mengapa sertifikat perantara berguna?

Sertifikat perantara digunakan dalam berbagai cara. Misalnya, sertifikat perantara dapat digunakan untuk mengelompokkan perangkat menurut lini produk, pelanggan yang membeli perangkat, divisi perusahaan, atau pabrik.

Bayangkan Contoso adalah perusahaan besar dengan Infrastruktur Kunci Publik (PKI) miliknya sendiri menggunakan sertifikat akar bernama ContosoRootCert. Setiap anak perusahaan Contoso memiliki sertifikat perantaranya sendiri yang ditandatangani oleh ContosoRootCert. Setiap anak perusahaan kemudian akan menggunakan sertifikat perantara mereka untuk menandatangani sertifikat daun mereka untuk setiap perangkat. Dalam skenario ini, Contoso dapat menggunakan satu instans DPS di mana ContosoRootCert adalah sertifikat terverifikasi. Mereka dapat memiliki grup pendaftaran untuk setiap anak perusahaan. Dengan cara ini setiap anak perusahaan tidak perlu khawatir tentang verifikasi sertifikat.

Sertifikat "daun" entitas akhir

Sertifikat daun, atau sertifikat entitas akhir, mengidentifikasi pemegang sertifikat. Ini memiliki sertifikat akar dalam rantai sertifikatnya serta nol atau lebih sertifikat perantara. Sertifikat daun tidak digunakan untuk menandatangani sertifikat lainnya. Hal ini secara unik mengidentifikasi perangkat ke layanan provisi dan kadang-kadang disebut sebagai sertifikat perangkat. Selama autentikasi, perangkat menggunakan kunci privat yang terkait dengan sertifikat ini untuk menanggapi tantangan bukti kepemilikan dari layanan.

Sertifikat daun yang digunakan dengan entri Pendaftaran individu atau grup Pendaftaran 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. ID pendaftaran adalah string karakter alfanumerik yang tidak peka huruf besar/kecil ditambah karakter khusus: '-', , '.''_', ':'. Karakter terakhir harus alfanumerik atau tanda hubung ('-'). DPS mendukung ID pendaftaran hingga 128 karakter; namun, panjang maksimum nama umum subjek dalam sertifikat X.509 adalah 64 karakter. OLEH KARENA ITU, ID pendaftaran dibatasi hingga 64 karakter saat menggunakan sertifikat X.509.

Untuk grup pendaftaran, nama umum subjek (CN) juga 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.

Mengontrol akses perangkat ke layanan penyediaan dengan sertifikat X.509

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 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 akan 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 akan gagal jika DPS tidak dapat melintasi rantai sertifikat ke sertifikat terverifikasi.

Misalnya, pertimbangkan perusahaan yang menggunakan rantai perangkat berikut untuk perangkat.

Example device certificate chain

Dalam contoh ini, hanya sertifikat akar yang diverifikasi, dan sertifikat menengah2 diunggah pada grup pendaftaran.

Example root verified

Jika perangkat hanya mengirim rantai perangkat berikut selama provisi, autentikasi akan gagal. Karena DPS tidak dapat mencoba autentikasi dengan asumsi validitas sertifikat intermediate1

Example failing certificate chain

Jika perangkat mengirimkan rangkaian perangkat lengkap sebagai berikut selama provisi, maka DPS dapat mencoba autentikasi perangkat.

Example device certificate chain

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 (daun) 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 di bawah 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.

Perhatikan bahwa setiap sertifikat dalam rantai sertifikat perangkat dapat ditentukan dalam entri pendaftaran, tetapi hanya dapat ditentukan dalam satu entri dalam instans DPS.

Mekanisme dan struktur hierarki rantai sertifikat ini memberikan fleksibilitas yang kuat dalam cara Anda mengontrol akses untuk perangkat individual maupun 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.