Mengonfigurasi pengesahan untuk Always Encrypted menggunakan Azure Attestation

Berlaku untuk:Azure SQL Database

Microsoft Azure Attestation adalah solusi untuk membuktikan Trusted Execution Environments (TEEs), termasuk enklave Intel Software Guard Extensions (Intel SGX).

Untuk menggunakan Azure Attestation dalam membuktikan enklave Intel SGX yang digunakan untuk Always Encrypted dengan enklave aman di Azure SQL Database, Anda perlu:

  1. Membuat penyedia pengesahan dan mengonfigurasikannya dengan kebijakan pengesahan yang direkomendasikan.

  2. Tentukan URL pengesahan dan bagikan dengan admin aplikasi.

Penting

Dengan enklave Intel SGX di Azure SQL Database, pengesahan bersifat wajib dan memerlukan Microsoft Azure Attestation. Enklave VBS di Azure SQL Database tidak mendukung pengesahan. Artikel ini hanya berlaku untuk enklave Intel SGX.

Catatan

Mengonfigurasi pengesahan adalah tanggung jawab administrator pengesahan. Lihat Peran dan tanggung jawab saat mengonfigurasi enklave dan pengesahan Intel SGX.

Membuat dan mengonfigurasikan penyedia pengesahan

Penyedia pengesahan adalah sumber daya di Azure Attestation yang mengevaluasi permintaan pengesahan terhadap kebijakan pengesahan dan masalah token pengesahan.

Kebijakan pengesahan ditentukan menggunakan tata bahasa aturan klaim.

Penting

Penyedia pengesahan dibuat dengan kebijakan default untuk enklave Intel SGX, yang tidak memvalidasi kode yang berjalan di dalam enklave. Microsoft sangat menyarankan Anda menetapkan kebijakan yang direkomendasikan yang digunakan dalam output berikut, dan tidak menggunakan kebijakan default untuk Always Encrypted dengan enklave aman.

Microsoft merekomendasikan kebijakan berikut untuk membuktikan enklave Intel SGX yang digunakan untuk Always Encrypted di Azure SQL Database:

version= 1.0;
authorizationrules 
{
       [ type=="x-ms-sgx-is-debuggable", value==false ]
        && [ type=="x-ms-sgx-product-id", value==4639 ]
        && [ type=="x-ms-sgx-svn", value>= 2 ]
        && [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"] 
    => permit();
};

Kebijakan memverifikasi:

  • Enklave di dalam Azure SQL Database tidak mendukung penelusuran kesalahan.

    Enklave dapat dimuat dengan penelusuran kesalahan yang aktif maupun non-aktif. Dukungan penelusuran kesalahan dirancang untuk memungkinkan pengembang memecahkan masalah kode yang berjalan di enklave. Dalam sistem produksi, penelusuran kesalahan dapat memungkinkan administrator untuk memeriksa konten enklave, yang akan mengurangi tingkat perlindungan yang disediakan enklave. Kebijakan yang direkomendasikan menonaktifkan penelusuran kesalahan untuk memastikan bahwa jika admin mencurigakan yang mencoba mengaktifkan dukungan penelusuran kesalahan dengan mengambil alih mesin enklave, pengesahan akan gagal.

  • ID produk enklave cocok dengan ID produk yang ditetapkan ke Always Encrypted dengan enklave aman.

    Setiap enklave memiliki ID produk unik yang membedakan enklave tersebut dari enklave lain. ID produk yang ditetapkan ke enklave Always Encrypted adalah 4639.

  • Nomor versi keamanan (SVN) pustaka lebih besar dari atau sama dengan 2.

    SVN memungkinkan Microsoft untuk merespons potensi bug keamanan yang diidentifikasi dalam kode enklave. Jika masalah keamanan ditemukan dan diperbaiki, Microsoft akan menyebarkan versi baru enklave dengan SVN baru (bertahap). Kebijakan yang direkomendasikan diperbarui untuk mencerminkan SVN baru. Dengan memperbarui kebijakan Anda agar sesuai dengan kebijakan yang direkomendasikan, Anda dapat memastikan bahwa jika administrator berbahaya mencoba memuat enklave yang lebih lama dan tidak aman, pengesahan akan gagal.

  • Pustaka di enklave telah ditandatangani menggunakan kunci penandatanganan Microsoft (nilai klaim x-ms-sgx-mrsigner adalah hash kunci penandatanganan).

    Salah satu tujuan utama pengesahan adalah untuk meyakinkan klien bahwa biner yang berjalan di enklave adalah biner yang seharusnya berjalan. Kebijakan pengesahan menyediakan dua mekanisme untuk tujuan ini. Salah satunya adalah klaim mrenclave , yang merupakan hash biner yang seharusnya dijalankan dalam enklave. Masalah dengan mrenclave adalah bahwa hash biner berubah bahkan hanya dengan perubahan sepele pada kode, yang membuatnya sulit untuk mengubah kode yang berjalan di enklave. Oleh karena itu, kami merekomendasikan penggunaan mrsigner, yang merupakan hash kunci yang digunakan untuk menandatangani biner enklave. Saat Microsoft merevs enklave, mrsigner tetap sama selama kunci penandatanganan tidak berubah. Dengan cara ini, memungkinkan untuk menyebarkan biner yang diperbarui tanpa merusak aplikasi pelanggan.

Penting

Microsoft mungkin perlu memutar kunci yang digunakan untuk menandatangani biner enklave Always Encrypted, yang diharapkan menjadi peristiwa langka. Sebelum versi baru enklave biner ditandatangani dengan kunci baru, disebarkan ke Azure SQL Database, artikel ini akan diperbarui untuk memberikan kebijakan pengesahan baru yang direkomendasikan dan instruksi tentang bagaimana Anda harus memperbarui kebijakan di penyedia pengesahan Anda untuk memastikan aplikasi terus bekerja tanpa gangguan.

Untuk petunjuk cara membuat penyedia pengesahan dan mengonfigurasi dengan kebijakan pengesahan, gunakan langkah berikut:

Tentukan URL pengesahan untuk kebijakan pengesahan Anda

Setelah mengonfigurasi kebijakan pengesahan, Anda perlu membagikan URL pengesahan dengan administrator aplikasi yang menggunakan Always Encrypted dengan enklave aman di Azure SQL Database. URL pengesahan adalah Attest URI dari penyedia pengesahan yang berisi kebijakan pengesahan, yang terlihat seperti ini: https://MyAttestationProvider.wus.attest.azure.net.

Menggunakan portal Microsoft Azure untuk menentukan URL pengesahan

Di panel Gambaran Umum untuk penyedia pengesahan Anda, salin nilai properti Attest URI ke clipboard.

Menggunakan PowerShell untuk menentukan URL pengesahan

Gunakan cmdlet Get-AzAttestation untuk mengambil properti penyedia pengesahan, termasuk AttestURI.

Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName

Untuk informasi selengkapnya, lihat Membuat dan mengelola penyedia pengesahan.

Langkah berikutnya

Baca juga