Bagikan melalui


Bingkai Keamanan: Data Sensitif | Mitigasi

Produk/Layanan Artikel
Batas Kepercayaan Mesin
Aplikasi Web
Database
API Web
Azure Document DB
Batas Kepercayaan Azure IaaS VM
Batas Kepercayaan Service Fabric
Dynamics CRM
Azure Storage
Klien Seluler
WCF

Memastikan bahwa biner dikaburkan jika berisi informasi sensitif

Judul Detail
Komponen Batas Kepercayaan Komputer
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Pastikan bahwa biner dikaburkan jika berisi informasi sensitif seperti rahasia dagang, logika bisnis sensitif yang tidak boleh dibalik. Hal ini untuk menghentikan rekayasa balik rakitan. Alat seperti CryptoObfuscator dapat digunakan untuk tujuan ini.

Mempertimbangkan untuk menggunakan Sistem File Terenkripsi (EFS) digunakan untuk melindungi data rahasia khusus pengguna

Judul Detail
Komponen Batas Kepercayaan Komputer
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Pertimbangkan untuk menggunakan Sistem File Terenkripsi (EFS) digunakan untuk melindungi data rahasia khusus pengguna dari musuh dengan akses fisik ke komputer.

Memastikan bahwa data sensitif yang disimpan oleh aplikasi pada sistem file dienkripsi

Judul Detail
Komponen Batas Kepercayaan Komputer
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Memastikan bahwa data sensitif yang disimpan oleh aplikasi pada sistem file dienkripsi (misalnya, menggunakan DPAPI), jika EFS tidak dapat diberlakukan

Memastikan bahwa konten sensitif tidak di-cache di browser

Judul Detail
Komponen Aplikasi Web
Fase SDL Build
Teknologi yang Berlaku Generik, Formulir Web, MVC5, MVC6
Atribut T/A
Referensi T/A
Langkah-langkah Browser dapat menyimpan informasi untuk tujuan penyimpanan dalam penenbolokan dan riwayat. File yang di-cache ini disimpan dalam folder, seperti folder Temporary Internet Files dalam kasus Internet Explorer. Saat halaman ini dirujuk lagi, browser menampilkannya dari cache. Jika informasi sensitif ditampilkan kepada pengguna (seperti alamat mereka, detail kartu kredit, Nomor Jaminan Sosial, atau nama pengguna), informasi ini dapat disimpan di cache browser, dan oleh karena itu dapat diambil melalui pemeriksaan cache browser atau hanya dengan menekan tombol "Kembali" browser. Atur nilai header respons kontrol cache ke "no-store" untuk semua halaman.

Contoh

<configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="no-store" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="-1" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

Contoh

Ini dapat diterapkan melalui filter. Contoh berikut dapat digunakan:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Response.IsRequestBeingRedirected))
            {
                //// Since this is MVC pipeline, this should never be null.
                return;
            }

            var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(System.Web.Mvc.OutputCacheAttribute), false);
            if (attributes == null || **Attributes**.Count() == 0)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
                filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
                if (!filterContext.IsChildAction)
                {
                    filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");
                }
            }

            base.OnActionExecuting(filterContext);
        }

Mengenkripsi bagian file konfigurasi Aplikasi Web yang berisi data sensitif

Judul Detail
Komponen Aplikasi Web
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Panduan: Mengenkripsi Bagian Konfigurasi di ASP.NET 2.0 Menggunakan DPAPI, Menentukan Penyedia Konfigurasi Dilindungi, Menggunakan Azure Key Vault untuk melindungi rahasia aplikasi
Langkah-langkah File konfigurasi seperti Web.config, appsettings.json sering digunakan untuk menyimpan informasi sensitif, termasuk nama pengguna, kata sandi, string koneksi database, dan kunci enkripsi. Jika Anda tidak melindungi informasi ini, aplikasi Anda rentan terhadap penyerang atau pengguna jahat yang mendapatkan informasi sensitif seperti nama pengguna akun dan kata sandi, nama database, dan nama server. Berdasarkan jenis penyebaran (azure/lokal), enkripsi bagian sensitif file konfigurasi menggunakan DPAPI atau layanan seperti Azure Key Vault.

Secara eksplisit menonaktifkan atribut HTML lengkapiotomatis dalam formulir dan input sensitif

Judul Detail
Komponen Aplikasi Web
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi MSDN: atribut lengkapiotomatis, Menggunakan LengkapiOtomatis dalam HTML, Kerentanan Sanitasi HTML, lengkapiOtomatis.,lagi?!
Langkah-langkah Atribut lengkapiotomatis menentukan apakah formulir harus mengaktifkan atau menonaktifkan lengkapiotomatis. Saat lengkapiotomatis aktif, browser otomatis menyelesaikan nilai berdasarkan nilai yang telah dimasukkan pengguna sebelumnya. Misalnya, saat nama dan kata sandi baru dimasukkan dalam formulir dan formulir dikirimkan, browser bertanya apakah kata sandi harus disimpan. Setelah itu saat formulir ditampilkan, nama dan kata sandi diisi secara otomatis atau selesai saat nama dimasukkan. Penyerang dengan akses lokal bisa mendapatkan kata sandi teks yang jelas dari cache browser. Secara default lengkapiotomatis diaktifkan, dan secara eksplisit harus dinonaktifkan.

Contoh

<form action="Login.aspx" method="post " autocomplete="off" >
      Social Security Number: <input type="text" name="ssn" />
      <input type="submit" value="Submit" />    
</form>

Memastikan bahwa data sensitif yang ditampilkan pada layar pengguna tertutupi

Judul Detail
Komponen Aplikasi Web
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Data sensitif seperti kata sandi, nomor kartu kredit, SSN dll. harus ditutupi saat ditampilkan di layar. Ini untuk mencegah personel yang tidak diotorisasi mengakses data (misalnya, kata sandi shoulder surfing, personel pendukung yang melihat jumlah pengguna SSN) . Pastikan bahwa elemen data ini tidak terlihat dalam teks biasa dan ditutupi dengan tepat. Elemen data tersebut harus dijaga saat menerimanya sebagai input (misalnya input type="password"), serta saat menampilkannya kembali di layar (misalnya hanya menampilkan 4 digit terakhir nomor kartu kredit).

Menerapkan penutupan data dinamis untuk membatasi paparan data sensitif pengguna non-istimewa

Judul Detail
Komponen Database
Fase SDL Build
Teknologi yang Berlaku Sql Azure, OnPrem
Atribut Versi SQL - V12, Versi SQL - MsSQL2016
Referensi Masking Data Dinamis
Langkah-langkah Tujuan penutupan data dinamis adalah untuk membatasi paparan data sensitif, mencegah pengguna yang tidak boleh memiliki akses ke data agar tidak melihatnya. Penutupan data dinamis tidak bertujuan untuk mencegah pengguna database tersambung langsung ke database dan menjalankan kueri lengkap yang mengekspos potongan data sensitif. Penutupan data dinamis melengkapi fitur keamanan SQL Server lainnya (audit, enkripsi, keamanan tingkat baris...) dan sangat disarankan untuk menggunakan fitur ini bersama dengan fitur tersebut sebagai tambahan untuk melindungi data sensitif dalam database dengan lebih baik. Harap dicatat bahwa fitur ini hanya didukung oleh SQL Server mulai dari 2016 dan Azure SQL Database.

Memastikan kata sandi disimpan dalam format hash dengan salt

Judul Detail
Komponen Database
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Hashing Kata Sandi menggunakan API Kripto .NET
Langkah-langkah Kata sandi tidak boleh disimpan dalam database penyimpanan pengguna kustom. Hash kata sandi harus disimpan dengan nilai salt sebagai gantinya. Pastikan salt untuk pengguna selalu unik dan Anda menerapkan b-crypt, s-crypt, atau PBKDF2 sebelum menyimpan kata sandi, dengan jumlah iterasi faktor kerja minimum 150.000 perulangan untuk menghilangkan kemungkinan serangan brutal.

Memastikan bahwa data sensitif dalam kolom database dienkripsi

Judul Detail
Komponen Database
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut Versi SQL - Semua
Referensi Mengenkripsi data sensitif di server SQL, Panduan: Mengenkripsi Kolom Data di SQL Server, Enkripsi berdasarkan Sertifikat
Langkah-langkah Data sensitif seperti nomor kartu kredit harus dienkripsi dalam database. Data dapat dienkripsi menggunakan enkripsi tingkat kolom atau oleh fungsi aplikasi menggunakan fungsi enkripsi.

Memastikan enkripsi tingkat database (TDE) diaktifkan

Judul Detail
Komponen Database
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Memahami Enkripsi Data Transparan SQL Server (TDE)
Langkah-langkah Fitur Enkripsi Data Transparan (TDE) di server SQL membantu dalam mengenkripsi data sensitif dalam database dan melindungi kunci yang digunakan untuk mengenkripsi data dengan sertifikat. Ini mencegah siapa pun tanpa kunci menggunakan data. TDE melindungi data "tidak aktif", yang berarti data dan file log. Ini memberikan kemampuan untuk mematuhi banyak undang-undang, peraturan, dan pedoman yang ditetapkan di berbagai industri.

Memastikan cadangan database dienkripsi

Judul Detail
Komponen Database
Fase SDL Build
Teknologi yang Berlaku SQL Azure, OnPrem
Atribut Versi SQL - V12, Versi SQL - MsSQL2014
Referensi Enkripsi pencadangan database SQL
Langkah-langkah SQL Server memiliki kemampuan untuk mengenkripsi data saat membuat cadangan. Dengan menentukan algoritme enkripsi dan pengenkripsi (Sertifikat atau Kunci Asimetris) saat membuat cadangan, seseorang dapat membuat file cadangan terenkripsi.

Memastikan bahwa data sensitif yang relevan dengan Web API tidak disimpan di penyimpanan browser

Judul Detail
Komponen API Web
Fase SDL Build
Teknologi yang Berlaku MVC 5, MVC 6
Atribut Penyedia Identitas - ADFS, Penyedia Identitas - ID Microsoft Entra
Referensi T/A
Langkah-langkah

Dalam penerapan tertentu, artefak sensitif yang relevan dengan autentikasi Web API disimpan di penyimpanan lokal browser. Misalnya, artefak autentikasi Microsoft Entra seperti adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key dll.

Semua artefak ini tersedia bahkan setelah keluar atau browser ditutup. Jika musuh mendapatkan akses ke artefak ini, musuh dapat menggunakannya kembali untuk mengakses sumber daya yang dilindungi (API). Pastikan bahwa semua artefak sensitif yang terkait dengan Web API tidak disimpan di penyimpanan browser. Dalam kasus saat penyimpanan pihak klien tidak dapat dihindari (misalnya, Aplikasi Halaman Tunggal (SPA) yang memanfaatkan alur Implicit OpenIdConnect/OAuth perlu menyimpan token akses secara lokal), menggunakan pilihan penyimpanan dengan tidak memiliki kegigihan. misalnya, lebih suka SessionStorage daripada LocalStorage.

Contoh

Cuplikan JavaScript di bawah berasal dari pustaka autentikasi kustom yang menyimpan artefak autentikasi di penyimpanan lokal. Implementasi tersebut harus dihindari.

ns.AuthHelper.Authenticate = function () {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: ns.Configurations.Tenant,
clientId: ns.Configurations.AADApplicationClientID,
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage', // enable this for Internet Explorer, as sessionStorage does not work for localhost.
};

Mengenkripsi data sensitif yang disimpan di Azure Cosmos DB

Judul Detail
Komponen Azure Document DB
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Mengenkripsi data sensitif pada tingkat aplikasi sebelum menyimpan dalam dokumen DB atau menyimpan data sensitif apa pun di solusi penyimpanan lain seperti Azure Storage atau Azure SQL

Menggunakan Azure Disk Encryption untuk mengenkripsi disk yang digunakan oleh Virtual Machines

Judul Detail
Komponen Batas Kepercayaan Azure IaaS VM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Menggunakan Azure Disk Encryption untuk mengenkripsi disk yang digunakan oleh komputer virtual
Langkah-langkah

Azure Disk Encryption adalah fitur baru yang saat ini dalam pratinjau. Fitur ini memungkinkan Anda mengenkripsi disk OS dan disk Data yang digunakan oleh Komputer Virtual IaaS. Untuk Windows, driver dienkripsi menggunakan teknologi enkripsi BitLocker standar industri. Untuk Linux, disk dienkripsi menggunakan teknologi DM-Crypt. Ini terintegrasi dengan Azure Key Vault untuk memungkinkan Anda mengontrol dan mengelola kunci enkripsi disk. Solusi Azure Disk Encryption mendukung tiga skenario enkripsi pelanggan berikut:

  • Aktifkan enkripsi pada IaaS VM baru yang dibuat dari file VHD terenkripsi pelanggan dan kunci enkripsi yang disediakan pelanggan, yang disimpan di Azure Key Vault.
  • Aktifkan enkripsi pada VM IaaS baru yang dibuat dari Marketplace Azure.
  • Aktifkan enkripsi pada VM IaaS yang sudah ada yang sudah berjalan di Azure.

Mengenkripsi rahasia dalam aplikasi Service Fabric

Judul Detail
Komponen Batas Kepercayaan Service Fabric
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut Lingkungan - Azure
Referensi Mengelola rahasia di aplikasi Service Fabric
Langkah-langkah Rahasia dapat berupa informasi sensitif apa pun, seperti string koneksi penyimpanan, kata sandi, atau nilai lain yang tidak boleh ditangani dalam teks biasa. Gunakan Azure Key Vault untuk mengelola kunci dan rahasia dalam aplikasi service fabric.

Melakukan pemodelan keamanan dan menggunakan Unit Bisnis/Tim jika diperlukan

Judul Detail
Komponen Dynamics CRM
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Melakukan pemodelan keamanan dan menggunakan Unit Bisnis/Tim jika diperlukan

Meminimalkan akses ke fitur berbagi pada entitas penting

Judul Detail
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Meminimalkan akses ke fitur berbagi pada entitas penting

Melatih pengguna tentang risiko yang terkait dengan fitur Dynamics CRM Share dan praktik keamanan yang baik

Judul Detail
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Melatih pengguna tentang risiko yang terkait dengan fitur Dynamics CRM Share dan praktik keamanan yang baik

Menyertakan aturan standar pengembangan yang melarang untuk menampilkan detail konfigurasi dalam manajemen pengecualian

Judul Detail
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi T/A
Langkah-langkah Sertakan aturan standar pengembangan yang melarang untuk menampilkan detail konfigurasi dalam manajemen pengecualian di luar pengembangan. Uji ini sebagai bagian dari tinjauan kode atau pemeriksaan berkala.

Menggunakan Enkripsi Layanan Penyimpanan (SSE) Azure untuk Data Tidak Aktif (Pratinjau)

Judul Detail
Komponen Azure Storage
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut StorageType - Blob
Referensi Enkripsi Layanan Penyimpanan Azure untuk Data Tidak Aktif (Pratinjau)
Langkah-langkah

Enkripsi Layanan Penyimpanan (SSE) Azure untuk Data Tidak Aktif akan membantu Anda melindungi data untuk memenuhi komitmen keamanan dan kepatuhan organisasi Anda. Dengan fitur ini, Azure Storage otomatis mengenkripsi data Anda sebelum mempertahankan pada penyimpanan dan mendekripsi sebelum pengambilan. Proses enkripsi, dekripsi, dan manajemen kunci transparan bagi pengguna. SSE hanya berlaku untuk memblokir blob, membagi blob, dan menambah blob. Jenis data lainnya, termasuk tabel, antrean, dan file, tidak akan dienkripsi.

Alur Kerja Enkripsi dan Dekripsi:

  • Pelanggan memungkinkan enkripsi pada akun penyimpanan
  • Saat pelanggan menulis data baru (PUT Blob, PUT Block, PUT Page, dll.) ke penyimpanan Blob; setiap tulisan dienkripsi menggunakan enkripsi AES 256-bit, salah satu cipher blok terkuat yang tersedia
  • Saat pelanggan perlu mengakses data (GET Blob, dll.), data otomatis didekripsi sebelum kembali ke pengguna
  • Jika enkripsi dinonaktifkan, penulisan baru tidak lagi dienkripsi dan data terenkripsi yang ada tetap dienkripsi hingga ditulis ulang oleh pengguna. Sementara enkripsi diaktifkan, menulis ke penyimpanan Blob akan dienkripsi. Status data tidak berubah dengan pengguna beralih antara mengaktifkan/menonaktifkan enkripsi untuk akun penyimpanan
  • Semua kunci enkripsi disimpan, dienkripsi, dan dikelola oleh Microsoft

Harap dicatat bahwa saat ini, kunci yang digunakan untuk enkripsi dikelola oleh Microsoft. Microsoft menghasilkan kunci awalnya, dan mengelola penyimpanan kunci yang aman serta rotasi reguler seperti yang ditentukan oleh kebijakan internal Microsoft. Di masa mendatang, pelanggan akan mendapatkan kemampuan mengelola kunci enkripsi mereka sendiri, dan menyediakan jalur migrasi dari kunci yang dikelola Microsoft ke kunci yang dikelola pelanggan.

Menggunakan Enkripsi Sisi Klien untuk menyimpan data sensitif di Azure Storage

Judul Detail
Komponen Azure Storage
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Enkripsi Sisi Klien dan Azure Key Vault untuk Microsoft Azure Storage, Tutorial: Mengenkripsi dan mendekripsi blob di Microsoft Azure Storage menggunakan Azure Key Vault, Menyimpan Data dengan Aman di Azure Blob Storage dengan Azure Encryption Extensions
Langkah-langkah

Paket Nuget Pustaka Klien Azure Storage untuk .NET mendukung enkripsi data dalam aplikasi klien sebelum mengunggah ke Azure Storage, dan mendekripsi data saat mengunduh ke klien. Pustaka ini juga mendukung integrasi dengan Azure Key Vault untuk manajemen kunci akun penyimpanan. Berikut deskripsi singkat tentang cara kerja enkripsi sisi klien:

  • SDK klien Azure Storage menghasilkan kunci enkripsi konten (CEK), yang merupakan kunci simetris sekali pakai
  • Data pelanggan dienkripsi menggunakan CEK ini
  • CEK kemudian dibungkus (dienkripsi) menggunakan kunci enkripsi kunci (KEK). KEK diidentifikasi oleh pengidentifikasi kunci dan dapat menjadi pasangan kunci asimetris atau kunci simetris serta dikelola secara lokal atau disimpan di Azure Key Vault. Klien Storage sendiri tidak pernah memiliki akses ke KEK. Ini hanya memanggil algoritme pembungkus kunci yang disediakan oleh Key Vault. Pelanggan dapat memilih untuk menggunakan penyedia kustom untuk pembungkusan/pembongkaran kunci jika ingin
  • Kemudian data yang dienkripsi diunggah ke layanan Azure Storage. Periksa tautan di bagian referensi untuk detail penerapan tingkat rendah.

Mengenkripsi data sensitif atau PII yang ditulis ke penyimpanan lokal ponsel

Judul Detail
Komponen Klien Seluler
Fase SDL Build
Teknologi yang Berlaku Umum, Xamarin
Atribut T/A
Referensi Mengelola pengaturan dan fitur di perangkat Anda dengan kebijakan Microsoft Intune, Keychain Valet
Langkah-langkah

Jika aplikasi menulis informasi sensitif seperti PII pengguna (email, nomor telepon, nama depan, nama belakang, preferensi, dll.) - pada sistem file ponsel, aplikasi harus dienkripsi sebelum menulis ke sistem file lokal. Jika aplikasi adalah aplikasi perusahaan, jelajahi kemungkinan penerbitan aplikasi menggunakan Windows Intune.

Contoh

Intune dapat dikonfigurasi dengan kebijakan keamanan berikut untuk melindungi data sensitif:

Require encryption on mobile device    
Require encryption on storage cards
Allow screen capture

Contoh

Jika aplikasi bukan aplikasi perusahaan, gunakan platform yang disediakan keystore, rantai kunci untuk menyimpan kunci enkripsi, menggunakan operasi kriptografi yang dapat dilakukan pada sistem file. Cuplikan kode berikut menunjukkan cara mengakses kunci dari rantai kunci menggunakan xamarin:

        protected static string EncryptionKey
        {
            get
            {
                if (String.IsNullOrEmpty(_Key))
                {
                    var query = new SecRecord(SecKind.GenericPassword);
                    query.Service = NSBundle.MainBundle.BundleIdentifier;
                    query.Account = "UniqueID";

                    NSData uniqueId = SecKeyChain.QueryAsData(query);
                    if (uniqueId == null)
                    {
                        query.ValueData = NSData.FromString(System.Guid.NewGuid().ToString());
                        var err = SecKeyChain.Add(query);
                        _Key = query.ValueData.ToString();
                    }
                    else
                    {
                        _Key = uniqueId.ToString();
                    }
                }

                return _Key;
            }
        }

Mengaburkan biner yang dibuat sebelum mendistribusikan ke pengguna akhir

Judul Detail
Komponen Klien Seluler
Fase SDL Build
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Obfuscation Kripto Untuk .NET
Langkah-langkah Biner yang dibuat (rakitan dalam apk) harus dikaburkan untuk menghentikan rekayasa balik rakitan. Alat seperti CryptoObfuscator dapat digunakan untuk tujuan ini.

Mengatur clientCredentialType ke Sertifikat atau Windows

Judul Detail
Komponen WCF
Fase SDL Build
Teknologi yang Berlaku .NET Framework 3
Atribut T/A
Referensi Fortify
Langkah-langkah Menggunakan UsernameToken dengan kata sandi teks biasa melalui saluran yang tidak terenkripsi mengekspos kata sandi kepada penyerang yang dapat mengendus pesan SOAP. Penyedia Layanan yang menggunakan UsernameToken mungkin menerima kata sandi yang dikirim dalam teks biasa. Mengirim kata sandi teks biasa melalui saluran yang tidak terenkripsi dapat mengekspos info masuk kepada penyerang yang dapat mengendus pesan SOAP.

Contoh

Konfigurasi penyedia layanan WCF berikut menggunakan UsernameToken:

<security mode="Message"> 
<message clientCredentialType="UserName" />

Atur clientCredentialType ke Sertifikat atau Windows.

Mode Keamanan WCF tidak diaktifkan

Judul Detail
Komponen WCF
Fase SDL Build
Teknologi yang Berlaku Umum, .NET Framework 3
Atribut Mode Keamanan - Transportasi, Mode Keamanan - Pesan
Referensi MSDN, Fortify Kingdom, Dasar-dasar Majalah Kode Keamanan WCF
Langkah-langkah Tak ada keamanan transportasi atau pesan yang ditentukan. Aplikasi yang mengirimkan pesan tanpa keamanan transportasi atau pesan tidak dapat menjamin integritas atau kerahasiaan pesan. Saat pengikatan keamanan WCF diatur ke Tidak Ada, keamanan transportasi dan pesan dinonaktifkan.

Contoh

Konfigurasi berikut mengatur mode keamanan menjadi Tidak Ada.

<system.serviceModel> 
  <bindings> 
    <wsHttpBinding> 
      <binding name=""MyBinding""> 
        <security mode=""None""/> 
      </binding> 
  </bindings> 
</system.serviceModel> 

Contoh

Mode Keamanan Di semua pengikatan layanan ada lima kemungkinan mode keamanan:

  • Tidak ada. Menonaktifkan keamanan.
  • Transportasi. Menggunakan keamanan transportasi untuk autentikasi timbal balik dan perlindungan pesan.
  • Pesan. Menggunakan keamanan pesan untuk autentikasi timbal balik dan perlindungan pesan.
  • Keduanya. Memungkinkan Anda menyediakan pengaturan untuk keamanan tingkat transportasi dan pesan (hanya MSMQ yang mendukung ini).
  • TransportWithMessageCredential. Info masuk diteruskan dengan perlindungan pesan dan pesan serta autentikasi server disediakan oleh lapisan transportasi.
  • TransportCredentialOnly. Info masuk klien diteruskan dengan lapisan transportasi dan tidak ada perlindungan pesan yang diterapkan. Gunakan keamanan transportasi dan pesan untuk melindungi integritas dan kerahasiaan pesan. Konfigurasi di bawah memberi tahu layanan untuk menggunakan keamanan transportasi dengan info masuk pesan.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>