Konsep Dasar

Di bawah ini adalah beberapa konsep dasar yang terkait dengan Microsoft Azure Attestation.

JSON Web Token (JWT)

JSON Web Token (JWT) adalah metode RFC7519 standar terbuka untuk mengirimkan informasi antar pihak dengan aman sebagai objek JavaScript Object Notation (JSON). Informasi ini dapat diverifikasi dan dipercaya karena ditandatangani secara digital. JSON Web Token dapat ditandatangani menggunakan rahasia atau pasangan kunci publik/privat.

JSON Web Key (JWK)

JSON Web Key (JWK) adalah struktur data JSON yang mewakili kunci kriptografi. Spesifikasi ini juga menentukan struktur data JWK Set JSON yang mewakili set JWK.

Penyedia pengesahan

Penyedia pengesahan milik penyedia sumber Azure bernama Microsoft.Attestation. Penyedia sumber adalah titik akhir layanan yang menyediakan kontrak REST Azure Attestation dan disebarkan menggunakan Azure Resource Manager. Setiap penyedia pengesahan memenuhi kebijakan tertentu yang dapat ditemukan. Penyedia pengesahan dibuat dengan kebijakan default untuk setiap jenis pengesahan (perhatikan bahwa enklave VBS tidak memiliki kebijakan default). Lihat contoh kebijakan pengesahan guna mengetahui detail lebih lanjut tentang kebijakan default untuk SGX.

Permintaan pengesahan

Permintaan pengesahan adalah objek JSON berseri yang dikirim oleh aplikasi klien ke penyedia pengesahan. Objek permintaan untuk enklave SGX memiliki dua properti:

  • "Quote" - Nilai properti "Quote" adalah string yang berisi representasi yang dikodekan Base64URL dari kutipan pengesahan
  • "EnclaveHeldData" – Nilai properti "EnclaveHeldData" adalah string yang berisi representasi yang dikodekan Base64URL dari Enclave Held Data.

Azure Attestation akan memvalidasi "Quote" yang disediakan, dan kemudian akan memastikan bahwa hash SHA256 dari Enclave Held Data yang disediakan dinyatakan dalam 32 byte pertama dari bidang reportData dalam kutipan.

Kebijakan pengesahan

Kebijakan pengesahan digunakan untuk memproses bukti pengesahan dan dapat dikonfigurasi oleh pelanggan. Inti dari Azure Attestation adalah mesin kebijakan, yang memproses klaim yang merupakan bukti. Kebijakan digunakan untuk menentukan apakah Azure Attestation akan mengeluarkan token pengesahan berdasarkan bukti (atau tidak), dan dengan demikian mendukung Attester (atau tidak). Dengan demikian, kegagalan untuk meloloskan semua kebijakan akan mengakibatkan tidak ada token JWT yang dikeluarkan.

Jika kebijakan default di penyedia pengesahan tidak memenuhi kebutuhan, pelanggan dapat membuat kebijakan kustom di salah satu wilayah yang didukung oleh Azure Attestation. Manajemen kebijakan adalah fitur utama yang disediakan untuk pelanggan oleh Azure Attestation. Kebijakan akan bersifat spesifik ke jenis pengesahan dan dapat digunakan untuk mengidentifikasi enklave atau menambahkan klaim ke token output atau memodifikasi klaim dalam token output.

Lihat contoh kebijakan pengesahan

Manfaat penandatanganan kebijakan

Kebijakan pengesahan akan menentukan apakah token pengesahan akan dikeluarkan oleh Azure Attestation atau tidak. Kebijakan juga menentukan klaim yang akan dihasilkan dalam token pengesahan. Dengan demikian, sangat penting bahwa kebijakan yang dievaluasi oleh layanan merupakan kebijakan yang ditulis oleh administrator dan belum diubah atau dimodifikasi oleh entitas eksternal.

Model kepercayaan menentukan model otorisasi penyedia pengesahan untuk menentukan dan memperbarui kebijakan. Dua model didukung - satu berdasarkan otorisasi Microsoft Entra dan satu berdasarkan kepemilikan kunci kriptografi yang dikelola pelanggan (disebut sebagai model terisolasi). Model yang terisolasi akan memungkinkan Azure Attestation untuk memastikan bahwa kebijakan yang diajukan pelanggan tidak diubah.

Dalam model terisolasi, admin membuat penyedia pengesahan yang menentukan set sertifikat X.509 penandatanganan tepercaya dalam file. Admin kemudian dapat menambahkan kebijakan yang ditandatangani ke penyedia pengesahan. Saat memproses permintaan pengesahan, Azure Attestation akan memvalidasi tanda tangan kebijakan menggunakan kunci publik yang diwakili oleh parameter "jwk" atau "x5c" di header. Azure Attestation juga akan memverifikasi apakah kunci publik di header permintaan berada dalam daftar sertifikat penandatanganan tepercaya yang terkait dengan penyedia pengesahan. Dengan cara ini, pihak yang mengandalkan (Azure Attestation) dapat mempercayai kebijakan yang ditandatangani menggunakan sertifikat X.509 yang diketahuinya.

Lihat contoh sertifikat penanda tangan kebijakan untuk mengetahui sampelnya.

Token pengesahan

Respons Azure Attestation akan berupa string JSON yang nilainya berisi JWT. Azure Attestation akan memaketkan klaim dan menghasilkan JWT yang ditandatangani. Operasi penandatanganan dilakukan menggunakan sertifikat yang ditandatangani sendiri dengan nama subjek yang cocok dengan elemen AttestUri dari penyedia pengesahan.

Get OpenID Metadata API mengembalikan respons Konfigurasi OpenID sebagaimana ditentukan oleh protokol OpenID Connect Discovery. API mengambil metadata tentang sertifikat penandatanganan yang digunakan oleh Azure Attestation.

Lihat contoh token pengesahan.

Enkripsi data tidak aktif

Untuk melindungi data pelanggan, Azure Attestation tetap memiliki data di Azure Storage. Penyimpanan Azure menyediakan enkripsi data tidak aktif saat ditulis ke pusat data, dan mendekripsinya bagi pelanggan agar dapat mengaksesnya. Enkripsi ini tejadi dengan menggunakan kunci enkripsi terkelola Microsoft.

Selain melindungi data dalam penyimpanan Azure, Azure Attestation juga memanfaatkan Azure Disk Encryption (ADE) untuk mengenkripsi komputer virtual layanan. Untuk Azure Attestation yang berjalan di enklave komputasi rahasia Azure, ekstensi Azure Disk Encryption saat ini tidak didukung. Dalam skenario seperti itu, untuk mencegah data disimpan dalam memori, file halaman dinonaktifkan.

Tidak ada data pelanggan yang ditahan pada hard disk drive lokal instans Azure Attestation.

Langkah berikutnya