Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: IoT Edge 1.5
Penting
IoT Edge 1.5 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai per 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.
Chip modul platform tepercaya (TPM) adalah prosesor kriptografi aman yang melakukan operasi kriptografi. Teknologi ini menyediakan fungsi keamanan berbasis perangkat keras. Komputer virtual Azure IoT Edge untuk Linux di Windows (EFLOW) tidak memiliki TPM virtual yang terpasang. Namun, Anda dapat mengaktifkan atau menonaktifkan fitur passthrough TPM, yang memungkinkan komputer virtual EFLOW menggunakan TPM OS host Windows. Fitur passthrough TPM memungkinkan Anda:
- Menggunakan teknologi TPM untuk provisi perangkat IoT Edge dengan Device Provisioning Service (DPS)
- Mendapatkan akses baca-saja ke kunci kriptografi yang disimpan di TPM
Artikel ini menunjukkan kepada Anda cara menulis sampel kode C# untuk membaca kunci kriptografi yang disimpan di TPM perangkat.
Penting
Akses ke kunci TPM terbatas pada baca-saja. Untuk menulis kunci ke TPM, lakukan dari OS host Windows.
Prasyarat
OS host Windows dengan TPM atau vTPM (jika Anda menggunakan komputer virtual OS host Windows).
Komputer virtual EFLOW dengan Passthrough TPM diaktifkan. Dalam sesi PowerShell yang ditingkatkan, jalankan
Set-EflowVmFeature -feature "DpsTpm" -enable
untuk mengaktifkan passthrough TPM. Untuk informasi selengkapnya, lihat Set-EflowVmFeature untuk mengaktifkan passthrough TPM.Pastikan indeks NV (indeks default=3001) diinisialisasi dengan 8 byte data. Default AuthValue yang digunakan oleh contoh adalah {1,2,3,4,5,6,7,8}, yang cocok dengan contoh NV (Windows) dalam pustaka TSS.MSR saat menulis ke TPM. Inisialisasi semua indeks pada host Windows sebelum membaca dari VM EFLOW. Untuk informasi selengkapnya tentang sampel TPM, lihat TSS.MSR.
Peringatan
Mengaktifkan passthrough TPM ke komputer virtual dapat meningkatkan risiko keamanan.
Membuat dTPM yang dapat dieksekusi
Ikuti langkah-langkah ini untuk membuat sampel yang dapat dieksekusi untuk mengakses indeks TPM dari EFLOW VM. Untuk informasi selengkapnya tentang passthrough TPM EFLOW, lihat Azure IoT Edge untuk Linux di Keamanan Windows.
Buka Visual Studio 2019 atau 2022.
Pilih Buat proyek baru.
Pilih Aplikasi Konsol dalam daftar templat, lalu pilih Berikutnya.
Isi bidang Nama Proyek, Lokasi, dan Nama Solusi , lalu pilih Berikutnya.
Pilih kerangka kerja target. Versi .NET 6.0 LTS terbaru lebih disukai. Setelah Anda memilih kerangka kerja target, pilih Buat. Visual Studio membuat solusi aplikasi konsol baru.
Di Penjelajah Solusi, klik kanan nama proyek dan pilih Kelola Paket NuGet.
Pilih Telusuri, lalu cari
Microsoft.TSS
. Untuk informasi selengkapnya tentang paket ini, lihat Microsoft.TSS.Pilih paket Microsoft.TSS dari daftar, lalu pilih Instal.
Edit file Program.cs , dan ganti konten dengan kode sampel TPM EFLOW - Program.cs.
Pilih Bangun>solusi Build untuk membangun proyek. Verifikasi bahwa proses build berhasil.
Di Penjelajah Solusi, klik kanan proyek, lalu pilih Terbitkan.
Di wizard Terbitkan, pilih Folder>Folder. Pilih Telusuri, dan pilih lokasi output untuk file yang dapat dieksekusi yang akan dihasilkan. Pilih Selesai. Setelah profil publikasi dibuat, pilih Tutup.
Pada tab Terbitkan , pilih Perlihatkan semua tautan pengaturan . Ubah konfigurasi berikut lalu pilih Simpan.
- Runtime Target: linux-x64.
- Mode penyebaran: Mandiri.
Pilih Terbitkan, lalu tunggu hingga executable dibuat.
Jika penerbitan berhasil, Anda akan melihat file baru di folder output Anda.
Salin dan jalankan executable
Setelah file yang dapat dieksekusi dan file dependensi dibuat, Anda perlu menyalin folder ke komputer virtual EFLOW. Langkah-langkah berikut menunjukkan kepada Anda cara menyalin semua file yang diperlukan dan cara menjalankan yang dapat dieksekusi di dalam komputer virtual EFLOW.
Mulai sesi PowerShell yang ditinggikan menggunakan Jalankan sebagai Administrator.
Ubah direktori ke folder induk yang berisi file yang diterbitkan. Misalnya, jika file yang diterbitkan berada di bawah folder TPM di direktori
C:\Users\User
. Anda dapat menggunakan perintah berikut untuk mengubah ke folder induk.cd "C:\Users\User"
Buat file tar dengan semua file yang dibuat di langkah sebelumnya. Misalnya, jika Anda memiliki semua file di bawah folder TPM, Anda dapat menggunakan perintah berikut untuk membuat file TPM.tar .
tar -cvzf TPM.tar ".\TPM"
Setelah file TPM.tar berhasil dibuat, gunakan
Copy-EflowVmFile
cmdlet untuk menyalin file tar yang dibuat ke VM EFLOW. Misalnya, jika Anda memiliki nama file tar TPM.tar di direktoriC:\Users\User
. Anda dapat menggunakan perintah berikut untuk menyalin ke VM EFLOW.Copy-EflowVmFile -fromFile "C:\Users\User\TPM.tar" -toFile "/home/iotedge-user/" -pushFile
Sambungkan ke komputer virtual EFLOW.
Connect-EflowVm
Ubah direktori ke folder tempat Anda menyalin file tar dan periksa apakah file tersedia. Jika Anda menggunakan contoh sebelumnya, saat tersambung ke VM EFLOW, Anda sudah berada di folder akar pengguna iotedge . Jalankan
ls
perintah untuk mencantumkan file dan folder.Jalankan perintah berikut untuk mengekstrak semua konten dari file tar .
tar -xvzf TPM.tar
Setelah ekstraksi, Anda akan melihat folder baru dengan semua file TPM.
Ubah direktori ke folder TPM .
cd TPM
Tambahkan izin yang dapat dieksekusi ke file utama yang dapat dieksekusi. Misalnya, jika nama proyek Anda adalah TPMRead, executable utama Anda bernama TPMRead. Jalankan perintah berikut untuk membuatnya dapat dieksekusi.
chmod +x TPMRead
Untuk mengatasi masalah globalisasi ICU, jalankan perintah berikut. Misalnya, jika nama proyek Anda adalah TPMTest run:
sed -i '/"configProperties": /a \\t"System.Globalization.Invariant\": true,' TPMTest.runtimeconfig.json
Langkah terakhir adalah menjalankan file yang dapat dieksekusi. Misalnya, jika nama proyek Anda adalah TPMTest, jalankan perintah berikut:
./TPMTest
Anda akan melihat output yang mirip dengan yang berikut ini.
Langkah berikutnya
Pelajari cara mengembangkan modul IoT Edge dengan kontainer Linux menggunakan IoT Edge untuk Linux di Windows.