Privasi dan Keamanan Data

Melindungi dan mengelola informasi sensitif dalam aplikasi ADO.NET tergantung pada produk dan teknologi dasar yang digunakan untuk membuatnya. ADO.NET tidak secara langsung menyediakan layanan untuk mengamankan atau mengenkripsi data.

Kriptografi dan Kode Hash

Kelas di namespace .NET Framework System.Security.Cryptography dapat digunakan dari aplikasi ADO.NET Anda untuk mencegah data dibaca atau dimodifikasi oleh pihak ketiga yang tidak sah. Beberapa kelas adalah pembungkus untuk Microsoft CryptoAPI yang tidak dikelola, sementara yang lain adalah implementasi terkelola. Topik Layanan Kriptografi memberikan ringkasan kriptografi dalam .NET Framework, menjelaskan bagaimana kriptografi diterapkan, dan bagaimana Anda dapat melakukan tugas kriptografi tertentu.

Tidak seperti kriptografi, yang memungkinkan data dienkripsi dan kemudian didekripsi, data hashing adalah proses satu arah. Hashing data berguna ketika Anda ingin mencegah perusakan dengan memeriksa bahwa data belum diubah: mengingat string input yang identik, algoritma hash selalu menghasilkan nilai output pendek yang identik yang dapat dengan mudah dibandingkan. Memastikan Integritas Data dengan Kode Hash menjelaskan bagaimana Anda dapat menghasilkan dan memverifikasi nilai hash.

Mengenkripsi File Konfigurasi

Melindungi akses ke sumber data Anda adalah salah satu tujuan terpenting ketika mengamankan aplikasi. String koneksi menimbulkan potensi kerentanan jika tidak diamankan. String koneksi yang disimpan dalam file konfigurasi disimpan dalam file XML standar yang telah ditetapkan oleh .NET Framework sebagai kumpulan elemen yang umum. Konfigurasi yang dilindungi memungkinkan Anda mengenkripsi informasi sensitif dalam file konfigurasi. Meskipun terutama dirancang untuk aplikasi ASP.NET, konfigurasi yang dilindungi juga dapat digunakan untuk mengenkripsi bagian file konfigurasi di aplikasi Windows. Untuk informasi lebih lengkap, lihat Melindungi Informasi Koneksi.

Mengamankan Nilai String dalam Memori

Jika objek String berisi informasi sensitif, seperti sandi, nomor kartu kredit, atau data pribadi, ada risiko informasi tersebut dapat terungkap setelah digunakan karena aplikasi tidak dapat menghapus data dari memori komputer.

String tidak dapat diubah; nilainya tidak dapat diubah setelah dibuat. Perubahan yang muncul untuk memodifikasi nilai string benar-benar membuat instans baru dari objek String dalam memori, menyimpan data sebagai teks biasa. Selain itu, tidak mungkin untuk memprediksi kapan instans string akan dihapus dari memori. Reklamasi memori dengan string tidak deterministik dengan pengumpulan sampah .NET. Anda harus menghindari penggunaan kelas String dan StringBuilder jika data Anda benar-benar sensitif.

Kelas SecureString menyediakan metode untuk mengenkripsi teks menggunakan Data Protection API (DPAPI) di memori. String kemudian dihapus dari memori ketika tidak lagi diperlukan. Tidak ada metode ToString untuk membaca konten SecureString dengan cepat. Anda dapat menginisialisasi instans baru SecureString tanpa nilai atau dengan meneruskannya penunjuk ke larik Char objek. Anda kemudian dapat menggunakan berbagai metode kelas untuk bekerja dengan string.

Lihat juga