Bagikan melalui


Mengamankan Pesan Menggunakan Keamanan Transportasi

Bagian ini membahas keamanan transportasi Message Queuing (MSMQ) yang dapat Anda gunakan untuk mengamankan pesan yang dikirim ke antrean.

Catatan

Sebelum membaca topik ini, sebaiknya Anda membaca Konsep Keamanan.

Ilustrasi berikut menyediakan model konseptual komunikasi antrean menggunakan Windows Communication Foundation (WCF). Ilustrasi dan terminologi ini digunakan untuk menjelaskan konsep keamanan transportasi.

Queued Application Diagram

Saat mengirim pesan antrean menggunakan WCF dengan NetMsmqBinding, pesan WCF dilampirkan sebagai isi pesan MSMQ. Keamanan transportasi mengamankan seluruh pesan MSMQ (header atau properti pesan MSMQ dan isi pesan). Karena ini adalah isi pesan MSMQ, menggunakan keamanan transportasi juga mengamankan pesan WCF.

Konsep kunci di balik keamanan transportasi adalah bahwa klien harus memenuhi persyaratan keamanan untuk mendapatkan pesan ke antrean target. Ini tidak seperti Keamanan pesan, ketika pesan diamankan untuk aplikasi yang menerima pesan.

Keamanan transportasi menggunakan NetMsmqBinding dan MsmqIntegrationBinding memengaruhi cara pesan MSMQ diamankan saat transit antara antrean transmisi dan antrean target jika diamankan menyiratkan:

  • Menandatangani pesan untuk memastikan pesan tidak dirusak.

  • Mengenkripsi pesan untuk memastikan bahwa pesan tidak dapat dilihat atau dirusak. Cara ini direkomendasikan tetapi opsional.

  • Manajer antrean target yang mengidentifikasi pengirim pesan agar tidak ditolak.

Di MSMQ, terlepas dari autentikasi, antrean target memiliki daftar kontrol akses (ACL) untuk memeriksa apakah klien memiliki izin untuk mengirim pesan ke antrean target. Aplikasi penerima juga diperiksa izinnya untuk menerima pesan dari antrean target.

Properti Keamanan Transportasi MSMQ WCF

MSMQ menggunakan keamanan Windows untuk autentikasi. Tindakan ini menggunakan pengidentifikasi keamanan Windows (SID) untuk mengidentifikasi klien dan menggunakan layanan direktori Active Directory sebagai otoritas sertifikat saat mengautentikasi klien. Tindakan ini membutuhkan MSMQ untuk diinstal dengan integrasi Active Directory. Karena SID domain Windows digunakan untuk mengidentifikasi klien, opsi keamanan ini hanya bermakna bila klien dan layanan merupakan bagian dari domain Windows yang sama.

MSMQ juga menyediakan kemampuan untuk melampirkan sertifikat dengan pesan yang tidak terdaftar di Active Directory. Dalam hal ini, ini memastikan bahwa pesan ditandatangani menggunakan sertifikat terlampir.

WCF menyediakan kedua opsi ini sebagai bagian dari keamanan transportasi MSMQ dan keduanya merupakan poros utama untuk keamanan transportasi.

Secara default, keamanan transportasi diaktifkan.

Dengan dasar-dasar ini, bagian berikut merinci properti keamanan transportasi yang dibundel dengan NetMsmqBinding dan MsmqIntegrationBinding.

Mode Autentikasi MSMQ

MsmqAuthenticationMode menentukan apakah akan menggunakan keamanan domain Windows atau keamanan berbasis sertifikat eksternal untuk mengamankan pesan. Dalam kedua mode autentikasi, saluran transportasi antrean WCF menggunakan CertificateValidationMode yang ditentukan dalam konfigurasi layanan. Mode validasi sertifikat menentukan mekanisme yang digunakan untuk memeriksa validitas sertifikat.

Saat keamanan transportasi diaktifkan, pengaturan defaultnya adalah WindowsDomain.

Mode Autentikasi Domain Windows

Pilihan untuk menggunakan keamanan Windows memerlukan integrasi Active Directory. WindowsDomain adalah mode keamanan transportasi default. Ketika opsi ini diatur, saluran WCF melampirkan Windows SID ke pesan MSMQ dan menggunakan sertifikat internal yang diperoleh dari Active Directory. MSMQ menggunakan sertifikat internal ini untuk mengamankan pesan. Manajer antrean penerima menggunakan Active Directory untuk mencari dan menemukan sertifikat yang cocok untuk mengautentikasi klien dan memeriksa apakah SID juga cocok dengan klien. Langkah autentikasi ini dijalankan jika sertifikat, baik yang dibuat secara internal dalam kasus mode autentikasi WindowsDomain atau yang dibuat secara eksternal dalam kasus mode autentikasi Certificate, dilampirkan ke pesan meskipun antrean target tidak ditandai sebagai memerlukan autentikasi .

Catatan

Saat membuat antrean, Anda dapat menandai antrean sebagai antrean yang diautentikasi untuk menunjukkan bahwa antrean memerlukan autentikasi klien yang mengirim pesan ke antrean. Cara ini memastikan bahwa tidak ada pesan yang tidak diautentikasi yang diterima dalam antrean.

SID yang dilampirkan dengan pesan juga digunakan untuk memeriksa ACL antrean target untuk memastikan bahwa klien memiliki wewenang untuk mengirim pesan ke antrean.

Mode Autentikasi Sertifikat

Pilihan untuk menggunakan mode autentikasi sertifikat tidak memerlukan integrasi Active Directory. Bahkan, dalam beberapa kasus, seperti saat MSMQ diinstal dalam mode grup kerja (tanpa integrasi Active Directory) atau saat menggunakan protokol transfer SOAP Handal Messaging Protocol (SRMP) untuk mengirim pesan ke antrean, hanya Certificate yang berfungsi.

Saat mengirim pesan WCF dengan Certificate, saluran WCF tidak melampirkan Windows SID ke pesan MSMQ. Dengan demikian, antrean target ACL harus mengizinkan Anonymous akses pengguna untuk mengirim ke antrean. Manajer antrean penerima memeriksa apakah pesan MSMQ ditandatangani dengan sertifikat tetapi tidak melakukan autentikasi apa pun.

Sertifikat dengan klaim dan informasi identitasnya diisi di ServiceSecurityContext oleh saluran transportasi antrean WCF. Layanan dapat menggunakan informasi ini untuk melakukan autentikasi pengirimnya sendiri.

Tingkat Perlindungan MSMQ

Tingkat perlindungan menentukan cara melindungi pesan MSMQ untuk memastikan bahwa pesan tidak dirusak. Pesan tersebut ditentukan dalam properti MsmqProtectionLevel. Nilai defaultnya adalah Sign.

Tingkat Perlindungan Tanda

Pesan MSMQ ditandatangani menggunakan sertifikat yang dibuat secara internal saat menggunakan mode autentikasi WindowsDomain atau sertifikat yang dibuat secara eksternal saat menggunakan mode autentikasi Certificate.

Tingkat Perlindungan Enkripsi dan Masuk

Pesan MSMQ ditandatangani menggunakan sertifikat yang dibuat secara internal saat menggunakan mode autentikasi WindowsDomain atau sertifikat yang dibuat secara eksternal saat menggunakan mode autentikasi Certificate.

Selain menandatangani pesan, pesan MSMQ dienkripsi menggunakan kunci publik dari sertifikat yang diperoleh dari Active Directory milik manajer antrean penerima yang meng-hosting antrean target. Manajer antrean pengiriman memastikan bahwa pesan MSMQ dienkripsi saat transit. Manajer antrean penerima mendekripsi pesan MSMQ menggunakan kunci pribadi dari sertifikat internalnya dan menyimpan pesan dalam antrean (jika diautentikasi dan diizinkan) dalam teks yang jelas.

Catatan

Untuk mengenkripsi pesan, akses Active Directory diperlukan (UseActiveDirectory properti NetMsmqBinding harus diatur ke true) dan dapat digunakan dengan Certificate dan WindowsDomain.

Tidak ada Tingkat Perlindungan

Hal ini tersirat bila MsmqProtectionLevel diatur menjadi None. Nilai ini tidak bisa menjadi nilai yang valid untuk mode autentikasi lainnya.

Catatan

Jika pesan MSMQ ditandatangani, MSMQ memeriksa apakah pesan ditandatangani dengan sertifikat terlampir (internal atau eksternal) terlepas dari status antrean, yaitu antrean yang diautentikasi atau tidak.

Algoritma Enkripsi MSMQ

Algoritma enkripsi menentukan algoritma yang akan digunakan untuk mengenkripsi pesan MSMQ pada kabel. Properti ini hanya digunakan jika MsmqProtectionLevel diatur menjadi EncryptAndSign.

Algoritma yang didukung adalah RC4Stream dan AES dan standarnya adalah RC4Stream.

Anda dapat menggunakan algoritma AES hanya ketika pengirim telah menginstal MSMQ 4.0. Selain itu, antrean target juga harus di-hosting di MSMQ 4.0.

Algoritma Hash MSMQ

Algoritma hash menentukan algoritma yang digunakan untuk membuat tanda tangan digital dari pesan MSMQ. Manajer antrean penerima menggunakan algoritma yang sama untuk mengautentikasi pesan MSMQ. Properti ini hanya digunakan jika MsmqProtectionLevel diatur menjadi Sign atau EncryptAndSign.

Algoritma yang didukung adalah MD5, SHA1, SHA256, dan SHA512. Default adalah SHA1.

Karena masalah benturan dengan MD5/SHA1, Microsoft merekomendasikan SHA256 atau lebih baik.

Lihat juga