Rekomendasi untuk enkripsi data
Berlaku untuk rekomendasi daftar periksa Well-Architected Framework Security:
SE:07 | Enkripsi data dengan menggunakan metode standar industri modern untuk menjaga kerahasiaan dan integritas. Menyelaraskan cakupan enkripsi dengan klasifikasi data; memprioritaskan metode enkripsi platform asli. |
---|
Jika data Anda tidak dilindungi, data tersebut dapat dimodifikasi dengan berbahaya, yang menyebabkan hilangnya integritas dan kerahasiaan.
Panduan ini menjelaskan rekomendasi untuk mengenkripsi dan melindungi data Anda. Enkripsi adalah proses penggunaan algoritma kriptografi untuk membuat data tidak dapat dibaca dan mengunci data dengan kunci. Dalam status terenkripsi, data tidak dapat diurai. Ini hanya dapat didekripsi dengan menggunakan kunci yang dipasangkan dengan kunci enkripsi.
Definisi
Istilah | Definisi |
---|---|
Sertifikat | File digital yang menyimpan kunci publik untuk enkripsi atau dekripsi. |
Suite cipher | Serangkaian algoritma yang digunakan untuk mengenkripsi dan mendekripsi informasi untuk mengamankan koneksi jaringan melalui Keamanan Lapisan Transportasi (TLS). |
Komputasi rahasia | Komputasi Rahasia adalah perlindungan data yang digunakan dengan melakukan komputasi di Lingkungan Eksekusi Tepercaya berbasis perangkat keras yang dibuktikan. |
Dekripsi | Proses di mana data terenkripsi tidak terkunci dengan kode rahasia. |
Enkripsi ganda | Proses enkripsi data dengan menggunakan dua atau beberapa lapisan enkripsi independen. |
Enkripsi | Proses di mana data dibuat tidak dapat dibaca dan dikunci dengan kode rahasia. |
Hashing | Proses transformasi data menjadi teks atau angka dengan niat menyembunyikan informasi. |
Kunci | Kode rahasia yang digunakan untuk mengunci atau membuka kunci data terenkripsi. |
Tanda Tangan | Stempel autentikasi terenkripsi pada data. |
Penandatanganan | Proses memverifikasi keaslian data dengan menggunakan tanda tangan. |
X.509 | Standar yang menentukan format sertifikat kunci publik. |
Strategi desain utama
Mandat organisasi atau persyaratan peraturan dapat memberlakukan mekanisme enkripsi. Misalnya, mungkin ada persyaratan bahwa data harus tetap hanya di wilayah yang dipilih, dan salinan data dipertahankan di wilayah tersebut.
Persyaratan ini seringkali merupakan minimum dasar. Berusahalah untuk tingkat perlindungan yang lebih tinggi. Anda bertanggung jawab untuk mencegah kebocoran kerahasiaan dan pengubahan data sensitif, baik data pengguna eksternal maupun data karyawan.
Mekanisme enkripsi kemungkinan perlu mengamankan data dalam tiga tahap:
Data tidak aktif adalah semua informasi yang disimpan di objek penyimpanan.
Contoh mengamankan data tidak aktif menggunakan BitLocker untuk mengenkripsi data yang disimpan ke penyimpanan pada disk.
Data saat transit adalah informasi yang ditransfer antara komponen, lokasi, atau program.
Contoh mengamankan data saat transit adalah mengenkripsi data dengan TLS sehingga paket yang berpindah melalui jaringan publik dan privat aman.
Data yang digunakan adalah data yang secara aktif sedang dikerjakan dalam memori.
Contoh mengamankan data yang digunakan adalah mengenkripsi dengan komputasi rahasia untuk melindungi data saat diproses.
Pilihan sebelumnya tidak saling eksklusif. Mereka sering digunakan bersama-sama dalam konteks seluruh solusi. Satu tahap mungkin bertindak sebagai kontrol kompensasi. Misalnya, Anda mungkin perlu mengisolasi data untuk mencegah perubahan saat data dibaca dari memori.
Menentukan persyaratan enkripsi
Klasifikasikan data berdasarkan tujuan dan tingkat sensitivitasnya untuk menentukan data apa yang perlu Anda enkripsi. Untuk data yang harus dienkripsi, tentukan tingkat perlindungan yang diperlukan. Apakah Anda memerlukan enkripsi TLS end-to-end untuk semua data saat transit? Untuk data tidak aktif, fitur Azure mana yang dapat memenuhi kebutuhan Anda? Apakah Anda perlu mengenkripsi data ganda di setiap titik penyimpanan? Bagaimana Anda menerapkan perlindungan informasi?
Penting untuk menyeimbangkan keputusan enkripsi Anda karena ada tradeoff yang signifikan.
Tradeoff: Setiap hop enkripsi dapat memperkenalkan latensi performa. Kompleksitas operasional dapat terjadi dalam kaitannya dengan pemecahan masalah dan pengamatan. Pemulihan bisa menjadi tantangan.
Cakupan tradeoff ini. Mengantisipasi tradeoff untuk data yang diklasifikasikan sebagai sensitif. Persyaratan bahkan dapat menentukan tradeoff, misalnya jika jenis data tertentu harus dienkripsi dan disimpan dalam ambang batas tertentu.
Ada kasus ketika enkripsi tidak dimungkinkan karena keterbatasan teknis, investasi, atau alasan lainnya. Pastikan alasan tersebut jelas, valid, dan terdokumen.
Mekanisme enkripsi yang kuat seharusnya bukan satu-satunya bentuk pertahanan Anda. Menerapkan proses pencegahan pencurian data, metode pengujian yang tepat, dan deteksi anomali.
Untuk informasi tentang klasifikasi, lihat Rekomendasi tentang klasifikasi data.
Menggunakan mekanisme enkripsi asli
Sebagian besar layanan Azure menyediakan tingkat enkripsi dasar. Jelajahi opsi enkripsi yang disediakan platform.
Sangat disarankan agar Anda tidak menonaktifkan kemampuan platform untuk mengembangkan fungsionalitas Anda sendiri. Fitur enkripsi platform menggunakan standar industri modern, dikembangkan oleh para ahli, dan sangat diuji.
Untuk kesempatan yang jarang terjadi, jika Anda perlu mengganti enkripsi yang disediakan platform, evaluasi pro dan kontra dan gunakan algoritma kriptografi standar industri.
Pengembang harus menggunakan API kriptografi yang dibangun ke dalam sistem operasi daripada pustaka kriptografi nonplatform. Untuk .NET, ikuti model kriptografi .NET.
Memilih pendekatan kunci enkripsi
Secara default, layanan Azure menggunakan kunci enkripsi yang dikelola Microsoft untuk mengenkripsi dan mendekripsi data. Azure bertanggung jawab atas manajemen kunci.
Anda dapat memilih kunci yang dikelola pelanggan. Azure masih menggunakan kunci Anda, tetapi Anda bertanggung jawab atas operasi utama. Anda memiliki fleksibilitas untuk mengubah kunci saat Diinginkan. Dekripsi adalah alasan kuat untuk menggunakan kunci yang dikelola pelanggan.
Anda harus memasangkan enkripsi yang kuat dengan dekripsi yang kuat. Dari perspektif keamanan, melindungi kunci dekripsi penting karena rotasi adalah cara umum untuk mengontrol radius ledakan jika kunci disusupi. Pantau akses untuk mendeteksi akses dan aktivitas anomali.
Simpan kunci terpisah dari data terenkripsi. Pemisahan ini membantu memastikan bahwa penyusupan satu entitas tidak memengaruhi entitas lainnya. Jika Anda menggunakan kunci yang dikelola pelanggan, simpan di penyimpanan kunci. Simpan data yang sangat sensitif dalam modul keamanan perangkat keras terkelola (HSM).
Kedua toko dilindungi dengan akses berbasis identitas. Fitur ini memungkinkan Anda menolak akses, bahkan ke platform.
Menggunakan algoritma enkripsi standar
Gunakan algoritma kriptografi yang mapan dan ikuti standar industri alih-alih membuat implementasi kustom.
Standar industri untuk algoritma memerlukan skema enkripsi untuk memiliki tingkat entropi tertentu. Sumber entropi disuntikkan selama enkripsi. Entropi membuat algoritma kuat dan menyulitkan penyerang untuk mengekstrak informasi. Tentukan ambang entropi yang dapat ditoleransi. Prosedur enkripsi bersifat intensif prosesor. Temukan keseimbangan yang tepat sehingga Anda memaksimalkan siklus komputasi yang dihabiskan untuk enkripsi, relatif terhadap target performa keseluruhan permintaan komputasi.
Tradeoff: Jika Anda memilih algoritma yang sangat kompleks atau menyuntikkan lebih dari jumlah entropi yang wajar, itu menurunkan performa sistem Anda.
Menggunakan hash dan checksum
Biasanya, hashing adalah teknik deteksi kesalahan. Anda juga dapat menggunakan hashing untuk keamanan karena mendeteksi perubahan pada data yang mungkin disebabkan oleh perubahan. Fungsi hash didasarkan pada kriptografi, tetapi tidak menggunakan kunci. Fungsi hash menggunakan algoritma untuk menghasilkan checksum. Checksum dapat membandingkan data untuk memverifikasi integritasnya.
Aplikasi harus menggunakan keluarga algoritma hash SHA-2, seperti SHA-256, SHA-384, atau SHA-512.
Mengenkripsi data tidak aktif
Mengklasifikasikan dan melindungi objek penyimpanan informasi sesuai dengan persyaratan kepatuhan internal dan eksternal. Lihat rekomendasi berikut:
Enkripsi data dengan menggunakan opsi asli yang disediakan untuk layanan penyimpanan, penyimpanan data, dan sumber daya lain yang digunakan untuk menyimpan data. Enkripsi data ini meskipun Anda menyimpan data di layanan penyimpanan atau sumber daya ini hanya untuk sementara. Enkripsi juga data cadangan Anda untuk mempertahankan tingkat keamanan yang sama dengan sumber aslinya.
Untuk informasi selengkapnya, lihat Data saat perlindungan tidak aktif.
Gunakan enkripsi ganda. Jika persyaratan bisnis Anda meminta jaminan yang lebih tinggi, Anda dapat melakukan enkripsi ganda. Enkripsi data dalam dua lapisan atau lebih dengan menggunakan kunci independen yang dikelola pelanggan. Simpan data di HSM terkelola. Untuk membaca data, Anda memerlukan akses ke kedua kunci. Jika satu kunci disusupi, kunci lainnya masih melindungi data. Teknik ini bertujuan untuk meningkatkan biaya penyerang.
Anda juga dapat menggunakan enkripsi yang disediakan platform untuk mengenkripsi data ganda. Enkripsi yang disediakan platform melindungi media penyimpanan di tingkat infrastruktur, dan Anda menerapkan lapisan enkripsi lain di tingkat data. Misalnya, layanan broker pesan memiliki enkripsi yang disediakan platform melalui kunci yang dikelola Microsoft yang melindungi pipa pesan. Metode ini memungkinkan Anda mengenkripsi pesan dengan kunci yang dikelola pelanggan.
Gunakan lebih dari satu kunci enkripsi. Gunakan kunci enkripsi kunci (KEK) untuk melindungi kunci enkripsi data (DEK) Anda.
Gunakan kontrol akses berbasis identitas untuk mengontrol akses ke data. Tambahkan firewall jaringan untuk menyediakan lapisan keamanan tambahan yang memblokir akses tak terduga dan tidak aman.
Untuk informasi selengkapnya, lihat Rekomendasi untuk manajemen identitas dan akses.
Simpan kunci di HSM terkelola yang memiliki kontrol akses hak istimewa terkecil. Pisahkan data dari kunci ke data.
Simpan data dalam jumlah terbatas sehingga Anda hanya mengenkripsi apa yang diperlukan. Data Anda tidak boleh hidup lebih lama dari siklus enkripsi Anda. Saat data tidak lagi diperlukan, hapus data terenkripsi tanpa menghabiskan siklus dekripsi.
Mengenkripsi data dalam transit
Gunakan protokol aman untuk komunikasi server klien. Protokol transportasi memiliki lapisan keamanan bawaan. TLS adalah standar industri untuk bertukar data antara titik akhir klien dan server.
Jangan gunakan versi yang lebih rendah dari TLS 1.2. Migrasikan solusi untuk mendukung TLS 1.2, dan gunakan versi ini secara default. Semua layanan Azure mendukung TLS 1.2 pada titik akhir HTTPS publik.
Risiko: Klien lama yang tidak mendukung TLS 1.2 mungkin tidak berfungsi dengan baik jika kompatibilitas mundur tidak didukung.
Semua komunikasi situs web harus menggunakan HTTPS, terlepas dari sensitivitas data yang ditransfer. Selama jabat tangan klien-server, negosiasikan penggunaan kebijakan HTTP Strict Transport Security (HSTS) sehingga transportasi HTTPS dipertahankan dan tidak turun ke HTTP selama komunikasi. Kebijakan ini melindungi dari serangan man-in-the-middle.
Dukungan untuk HSTS adalah untuk versi yang lebih baru. Anda mungkin memutuskan kompatibilitas mundur dengan browser yang lebih lama.
Catatan
Anda juga dapat mengenkripsi protokol untuk membuat koneksi aman untuk database. Misalnya, Azure SQL Database mendukung protokol Aliran Data Tabular (TDS), yang mengintegrasikan jabat tangan TLS.
Cipher suite adalah sekumpulan algoritma yang digunakan untuk menstandarkan jabat tangan antara klien dan server. Cipher memastikan bahwa pertukaran dienkripsi dan diautentikasi. Pilihan sandi tergantung pada versi TLS yang digunakan server. Untuk beberapa layanan, seperti Azure Application Gateway, Anda dapat memilih versi TLS dan suite cipher yang ingin Anda dukung. Terapkan cipher suite yang menggunakan Advanced Encryption Standard (AES) sebagai cipher blok simetris. AES-128, AES-192, dan AES-256 dapat diterima.
Mengelola siklus hidup sertifikat. Sertifikat memiliki masa pakai yang telah ditentukan. Jangan menyimpan sertifikat berumur panjang, dan jangan biarkan sertifikat kedaluwarsa sendiri. Terapkan proses yang memperbarui sertifikat pada frekuensi yang dapat diterima. Anda dapat mengotomatiskan proses perpanjangan yang terjadi pada interval singkat.
Catatan
Jika Anda menggunakan penyematan sertifikat, biasakan diri Anda dengan kelincahan dan batasan manajemen sertifikat.
Alur kerja Anda tidak boleh mengizinkan sertifikat yang tidak valid diterima di lingkungan. Proses penyematan sertifikat harus memvalidasi sertifikat dan memberlakukan pemeriksaan validasi tersebut. Anda harus memantau log akses untuk memastikan bahwa kunci penandatanganan digunakan dengan izin yang tepat.
Jika kunci disusupi, sertifikat harus segera dicabut. Otoritas sertifikat (CA) menyediakan daftar pencabutan sertifikat (CRL) yang menunjukkan sertifikat yang tidak valid sebelum kedaluwarsa. Pemeriksaan validasi Anda harus memperhitungkan CRL.
Tradeoff: Proses validasi sertifikasi dapat rumit dan biasanya melibatkan CA. Tentukan data yang harus Anda enkripsi dengan sertifikat. Untuk jenis komunikasi lainnya, tentukan apakah Anda dapat menerapkan kontrol kompensasi yang dilokalkan untuk menambahkan keamanan.
Salah satu cara melokalisasi kontrol adalah dengan TLS bersama (mTLS). Ini membangun kepercayaan pada kedua arah antara klien dan server. Klien dan server memiliki sertifikat mereka sendiri, dan setiap sertifikat diautentikasi dengan pasangan kunci publik atau privat mereka. Dengan mTLS, Anda tidak bergantung pada CA eksternal. Tradeoff adalah kompleksitas tambahan dalam mengelola dua sertifikat.
Enkripsi ganda koneksi VPN jika diperlukan. Lakukan enkripsi ganda untuk menambahkan pertahanan secara mendalam ke terowongan VPN Anda. Saat Anda menggunakan dua server VPN, Anda dapat menyembunyikan alamat IP antara server, dan juga menyembunyikan alamat IP antara server dan tujuan. Selama proses ini, data saat transit juga dienkripsi dua kali.
Tradeoff: Dibandingkan dengan pengaturan VPN tunggal, pengaturan VPN ganda sering lebih mahal, dan koneksi sering lebih lambat.
Menerapkan proses pengelogan dan pemantauan. Lacak sumber daya masuk akses yang menyimpan informasi tentang klien, seperti IP sumber, port, dan protokol mereka. Gunakan informasi ini untuk mendeteksi anomali.
Mengenkripsi data yang digunakan
Untuk beban kerja keamanan tinggi, segmentasi, isolasi, dan hak istimewa paling sedikit adalah pola desain yang direkomendasikan.
Dalam konteks perlindungan yang digunakan, batas perangkat keras mungkin memerlukan enkripsi data saat digunakan dalam CPU fisik dan memori untuk memastikan isolasi VM, kode manajemen host, dan komponen lainnya. Enkripsi dan dekripsi data hanya boleh dilakukan dalam batas isolasi tersebut.
Persyaratan keamanan atau peraturan yang lebih ketat mungkin juga memerlukan bukti berbasis perangkat keras dan ditandatangani secara kriptografis bahwa data sedang dienkripsi saat digunakan, ini dapat diperoleh melalui pengesahan. Komputasi rahasia adalah salah satu teknologi yang mendukung persyaratan. Layanan tertentu di Azure menawarkan kemampuan untuk melindungi data saat sedang dikomputasi. Untuk informasi selengkapnya, lihat Azure Facilitation: Azure Confidential Compute.
Pertimbangkan siklus hidup akhir data yang sering Anda lindungi data yang sering berpindah melalui beberapa sistem dalam masa pakainya, berhati-hatilah untuk memastikan bahwa semua bagian komponen solusi dapat memberikan tingkat perlindungan yang diperlukan, atau memastikan bahwa strategi manajemen data Anda menyediakan segmentasi atau masking yang sesuai.
Fasilitasi Azure
Bagian berikut ini menjelaskan layanan dan fitur Azure yang bisa Anda gunakan untuk mengenkripsi data Anda.
Kunci yang dikelola pelanggan
Simpan kunci yang dikelola pelanggan di Azure Key Vault atau di HSM yang dikelola Key Vault.
Key Vault memperlakukan kunci seperti rahasia lainnya. Kontrol akses berbasis peran Azure (RBAC) mengakses kunci melalui model izin. Kontrol berbasis identitas ini harus digunakan dengan kebijakan akses Key Vault.
Untuk informasi selengkapnya, lihat Menyediakan akses ke kunci, sertifikat, dan rahasia Key Vault dengan menggunakan RBAC.
Azure Key Vault Premium dan Managed-HSM semakin meningkatkan penawaran dengan menyertakan kemampuan komputasi rahasia dan Rilis Kunci Aman yang mendukung kebijakan untuk memastikan bahwa kunci hanya pernah dirilis ke beban kerja yang dapat membuktikan secara kriptografis dijalankan di dalam Trusted Execution Environment (TEE).
Perlindungan data tidak aktif
Azure Storage secara otomatis mengenkripsi data Anda dengan cipher blok saat data disimpan ke akun penyimpanan. Untuk Azure Blob Storage dan Azure Queue Storage, Storage juga menyediakan enkripsi sisi klien melalui pustaka.
Untuk informasi selengkapnya, lihat Enkripsi penyimpanan.
Azure Virtual Machines memiliki file disk yang berfungsi sebagai volume penyimpanan virtual. Anda dapat mengenkripsi file disk virtual sehingga konten tidak dapat diakses.
Disk terkelola dapat diekspor dari portal. Enkripsi dan enkripsi sisi server di host hanya dapat melindungi data setelah diekspor. Namun, Anda harus melindungi data selama proses ekspor. Anda dapat menggunakan Azure Disk Encryption untuk melindungi dan melindungi data Anda selama proses ekspor.
Azure menawarkan beberapa opsi enkripsi untuk disk terkelola. Untuk informasi selengkapnya, lihat Gambaran umum opsi enkripsi disk terkelola.
SQL Database menawarkan fitur enkripsi data transparan yang digunakan untuk mengenkripsi file database di tingkat halaman.
Perlindungan data dalam transit
Dengan Key Vault, Anda dapat menyediakan, mengelola, dan menyebarkan sertifikat Secure Sockets Layer publik dan privat (SSL) atau TLS. Anda dapat menggunakan sertifikat dengan Azure dan dengan sumber daya internal yang terhubung.
Perlindungan penggunaan data
Layanan tertentu di Azure menawarkan kemampuan untuk melindungi data saat dihitung dalam CPU fisik dan memori host menggunakan komputasi rahasia Azure.
Confidential Virtual Machines menawarkan seluruh komputer virtual yang berjalan di dalam TEE, memori dan menjalankan konten CPU komputer virtual dienkripsi menawarkan pendekatan 'lift & shift' sederhana untuk memindahkan aplikasi yang tidak dimodifikasi dengan persyaratan keamanan tinggi ke Azure. Setiap VM rahasia Azure memiliki Modul Platform Kepercayaan virtual (TPM) khususnya sendiri. Enkripsi dilakukan saat komponen sistem operasi boot dengan aman.
Simpul pekerja AKS Rahasia, Kontainer Rahasia di AKS atau Kontainer Rahasia pada Azure Container Instances (ACI) menawarkan kemampuan untuk menjalankan dan mengelola kontainer yang tidak dimodifikasi di dalam TEE yang memungkinkan pelanggan mendapatkan manfaat dari perlindungan yang digunakan. Penawaran kontainer adalah Azure Confidential Virtual Machines bawaan dan mendapat manfaat dari perlindungan yang sama.
Solusi Application Enclave adalah aplikasi yang dibuat khusus dengan memanfaatkan ekstensi CPU tertentu yang ditawarkan oleh SKU komputer virtual yang mendukung Intel Software Guard Extensions (SGX), ini menawarkan Trusted Compute Base (TCB) yang sangat terperinci tetapi mengharuskan aplikasi untuk dikodekan secara khusus untuk memanfaatkan fitur.
Rilis Kunci Aman dapat dikombinasikan dengan teknologi ini untuk memastikan bahwa data terenkripsi hanya pernah didekripsi di dalam TEE yang membuktikannya memberikan tingkat perlindungan yang diperlukan melalui proses yang dikenal sebagai Pengesahan.
Manajemen rahasia
Anda dapat menggunakan Key Vault untuk menyimpan dan mengontrol akses ke token, kata sandi, sertifikat, kunci API, dan rahasia lainnya dengan aman. Gunakan Key Vault sebagai solusi manajemen kunci dan sertifikat. SKU Premium mendukung HSM.
Contoh
Contoh berikut menunjukkan solusi enkripsi yang dapat Anda gunakan untuk mengelola kunci, sertifikat, dan rahasia.
Tautan terkait
- Model kriptografi .NET
- Azure Disk Encryption
- Enkripsi penyimpanan untuk data tidak aktif
- Penyematan sertifikat di layanan Azure
- Menyediakan akses ke kunci, sertifikat, dan rahasia Key Vault dengan menggunakan RBAC
- Gambaran umum opsi enkripsi disk terkelola
- Enkripsi data transparan
- Gambaran umum Modul Platform Kepercayaan
- Komputasi rahasia Azure
Tautan komunitas
Daftar periksa keamanan
Lihat kumpulan rekomendasi lengkap.