Pengesahan TPM

IoT Hub Device Provisioning Service adalah layanan pembantu untuk IoT Hub yang Anda gunakan untuk mengonfigurasi provisi perangkat tanpa sentuhan ke hub IoT tertentu. Dengan Device Provisioning Service, Anda dapat memprovisi jutaan perangkat dengan cara yang aman.

Artikel ini menjelaskan proses pengesahan identitas saat menggunakan Modul Platform Terpercaya (TPM). TPM adalah jenis modul keamanan perangkat keras (HSM). Artikel ini mengasumsikan Anda menggunakan TPM diskrit, firmware, atau terintegrasi. TPM yang diemulasi perangkat lunak sangat cocok untuk pembuatan prototipe atau pengujian, tetapi tidak memberikan tingkat keamanan yang sama seperti TPM diskrit, firmware, atau terintegrasi. Sebaiknya jangan gunakan TPM perangkat lunak dalam produksi. Untuk informasi selengkapnya tentang jenis TPM, lihat Pengantar Singkat TPM.

Artikel ini hanya relevan untuk perangkat yang menggunakan TPM 2.0 dengan dukungan kunci HMAC dan kunci dukungannya. Artikel ini bukan untuk perangkat yang menggunakan sertifikat X.509 untuk autentikasi. TPM adalah standar ISO di seluruh industri dari Grup Komputasi Terpercaya, dan Anda dapat membaca lebih lanjut tentang TPM pada spesifikasi lengkap TPM 2.0 atau spesifikasi ISO/IEC 11889. Artikel ini juga mengasumsikan Anda terbiasa dengan pasangan kunci publik dan privat, dan bagaimana penggunaannya untuk enkripsi.

SDK perangkat Device Provisioning Service menangani semua yang dijelaskan dalam artikel ini untuk Anda. Anda tidak perlu menerapkan tambahan apa pun jika Anda menggunakan SDK di perangkat Anda. Artikel ini membantu Anda memahami secara konseptual apa yang terjadi dengan chip keamanan TPM Anda ketika perangkat Anda melakukan provisi dan mengapa prosesnya sangat aman.

Gambaran Umum

TPM menggunakan sesuatu yang disebut kunci pengesahan (EK) sebagai akar kepercayaan yang aman. Kunci pengesahan unik untuk TPM dan mengubah kunci pada dasarnya akan mengubah perangkat menjadi perangkat yang baru.

Ada jenis kunci lain yang dimiliki TPM, yang disebut kunci akar penyimpanan (SRK). SRK dapat dihasilkan oleh pemilik TPM setelah mengambil kepemilikan TPM. Mengambil kepemilikan TPM adalah cara khusus TPM untuk mengatakan "seseorang menetapkan kata sandi di HSM." Jika perangkat TPM dijual ke pemilik baru, pemilik baru dapat mengambil kepemilikan TPM untuk menghasilkan SRK baru. Generasi SRK yang baru memastikan pemilik sebelumnya tidak dapat menggunakan TPM. Karena SRK tersebut unik untuk pemilik TPM, maka SRK tersebut dapat digunakan untuk menyegel data ke dalam TPM itu sendiri untuk pemilik tersebut. SRK menyediakan kotak pasir bagi pemilik untuk menyimpan kunci mereka dan memberikan akses pencabutan jika perangkat atau TPM dijual. Ini seperti pindah ke rumah baru: mengambil kepemilikan lalu mengubah kunci di pintu dan menghancurkan semua furnitur yang ditinggalkan oleh pemilik sebelumnya (SRK), tetapi Anda tidak dapat mengubah alamat rumah (EK).

Setelah perangkat disiapkan dan siap digunakan, perangkat akan memiliki EK dan SRK yang tersedia untuk digunakan.

Taking ownership of a TPM

Satu catatan tentang mengambil kepemilikan TPM: Mengambil kepemilikan TPM bergantung pada banyak hal, termasuk produsen TPM, set alat TPM yang digunakan, dan OS perangkat. Ikuti instruksi yang relevan dengan sistem Anda untuk mengambil kepemilikan.

Device Provisioning Service menggunakan bagian publik dari EK (EK_pub) untuk mengidentifikasi dan mendaftarkan perangkat. Vendor perangkat dapat membaca EK_pub selama pembuatan atau pengujian akhir dan mengunggah EK_pub ke layanan provisi sehingga perangkat akan dikenali ketika terhubung ke provisi. Device Provisioning Service tidak memeriksa SRK atau pemilik, jadi "membersihkan" TPM akan menghapus data pelanggan, tetapi EK (dan data vendor lainnya) dipertahankan dan perangkat akan tetap dikenali oleh Device Provisioning Service ketika terhubung ke provisi.

Proses pengesahan terperinci

Ketika perangkat dengan TPM terhubung ke Device Provisioning Service pertama kali, layanan akan terlebih dahulu memeriksa EK_pub yang disediakan terhadap EK_pub yang tersimpan dalam daftar pendaftaran. Jika EK_pubs tidak cocok, perangkat tidak diperbolehkan melakukan provisi. Jika EK_pubs cocok, layanan kemudian mengharuskan perangkat untuk membuktikan kepemilikan bagian privat EK melalui tantangan nonce, yang merupakan tantangan aman yang digunakan untuk membuktikan identitas. Device Provisioning Service menghasilkan nonce dan kemudian mengenkripsinya dengan SRK lalu EK_pub, yang keduanya disediakan oleh perangkat selama panggilan pendaftaran awal. TPM selalu menjaga bagian privat dari EK dengan aman. Hal ini akan mencegah pemalsuan dan memastikan token SAS diprovisikan dengan aman ke perangkat yang diotorisasi.

Mari kita pelajari proses pengesahan secara rinci.

Perangkat meminta penugasan IoT Hub

Pertama perangkat terhubung ke Device Provisioning Service dan meminta untuk provisi. Dengan demikian, perangkat menyediakan layanan dengan ID pendaftaran, ruang lingkup ID, serta EK_pub dan SRK_pub dari TPM. Layanan ini meneruskan nonce terenkripsi kembali ke perangkat dan meminta perangkat untuk mendekripsi nonce dan menggunakannya untuk menandatangani token SAS untuk terhubung lagi dan menyelesaikan provisi.

Device requests provisioning

Tantangan nonce

Perangkat mengambil nonce dan menggunakan bagian privat dari EK dan SRK untuk mendekripsi nonce ke dalam TPM; urutan enkripsi nonce mendelegasikan kepercayaan dari EK yang tidak dapat diubah, ke SRK, yang dapat berubah jika pemilik baru mengambil kepemilikan TPM.

Decrypting the nonce

Memvalidasi nonce dan menerima mandat

Perangkat kemudian dapat menandatangani token SAS menggunakan nonce yang didekripsi dan membangun kembali koneksi ke Device Provisioning Service menggunakan token SAS yang telah ditandatangani. Setelah tantangan Nonce selesai, layanan akan memungkinkan perangkat untuk provisi.

Device reestablishes connection to Device Provisioning Service to validate EK ownership

Langkah berikutnya

Sekarang perangkat terhubung ke IoT Hub, dan Anda beristirahat dengan aman mengetahui kunci perangkat Anda tersimpan dengan aman. Sekarang setelah Anda mengetahui bagaimana Device Provisioning Service memverifikasi identitas perangkat dengan aman menggunakan TPM, lihat artikel berikut ini untuk mempelajari lebih lanjut: