Pengesahan TPM

Artikel ini menjelaskan konsep yang terlibat saat menyediakan perangkat menggunakan pengesahan Modul Platform Tepercaya (TPM) dalam Device Provisioning Service (DPS). Artikel ini relevan untuk semua persona yang terlibat dalam mendapatkan perangkat yang siap untuk disebarkan.

Modul Platform Tepercaya (TPM) adalah jenis modul keamanan perangkat keras (HSM). Artikel ini mengasumsikan bahwa Anda menggunakan TPM diskrit, firmware, atau terintegrasi. TPM yang ditiru perangkat lunak sangat cocok untuk pembuatan prototipe atau pengujian, tetapi tidak memberikan tingkat keamanan yang sama seperti TPM diskrit, firmware, atau terintegrasi. Kami tidak merekomendasikan penggunaan TPM perangkat lunak dalam produksi.

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

SDK perangkat Device Provisioning Service menangani semua yang dijelaskan dalam artikel ini untuk Anda. Anda tidak perlu menerapkan dukungan TPM 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.

TPM memiliki jenis kunci lain 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, perangkat memiliki EK dan SRK yang tersedia untuk digunakan.

Diagram yang menunjukkan mengambil kepemilikan TPM.

Langkah-langkah khusus yang terlibat dalam mengambil kepemilikan TPM bervariasi tergantung pada produsen, set alat TPM yang digunakan, dan sistem operasi perangkat.

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

Saat perangkat dengan TPM terhubung ke Device Provisioning Service, layanan terlebih dahulu memeriksa EK_pub yang disediakan terhadap EK_pub yang disimpan dalam daftar pendaftaran. Jika EK_pubs tidak cocok, perangkat tidak diizinkan untuk menyediakan. 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.

Perangkat meminta provisi

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.

Mendekripsi 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.

Perangkat membangun kembali koneksi ke Device Provisioning Service untuk memvalidasi kepemilikan EK