Bingkai Keamanan: Kriptografi | Mitigasi
Gunakan hanya cipher blok simetris dan panjang kunci yang disetujui
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Produk hanya boleh menggunakan cipher blok simetris dan panjang kunci terkait yang telah disetujui secara eksplisit oleh Crypto Advisor di organisasi Anda. Algoritma simetris yang disetujui di Microsoft mencakup cipher blok berikut:
Harap dicatat bahwa semua cipher blok simetris harus digunakan dengan mode sandi yang disetujui, yang memerlukan penggunaan vektor inisialisasi (VI) yang sesuai. VI yang sesuai, biasanya merupakan angka acak dan tidak pernah menjadi nilai konstan Penggunaan algoritma kripto lama atau yang tidak disetujui dan kunci yang lebih singkat untuk membaca data yang ada (dibandingkan dengan menulis data baru) dapat diizinkan setelah mendapat ulasan oleh Crypto Board organisasi Anda. Namun, Anda harus mengajukan pengecualian terhadap persyaratan ini. Selain itu, dalam penyebaran perusahaan, produk harus mempertimbangkan administrator peringatan ketika kripto lemah digunakan untuk membaca data. Peringatan tersebut harus jelas dan dapat ditindaklanjuti. Dalam beberapa kasus, mungkin tepat untuk memiliki Kebijakan Grup mengontrol penggunaan kripto yang lemah Algoritma .NET yang diizinkan untuk kelincahan kripto terkelola (sesuai urutan preferensi)
Harap dicatat bahwa algoritma-algoritma ini tidak ada yang dapat ditentukan melalui metode |
Gunakan mode cipher blok dan vektor inisialisasi yang disetujui untuk cipher simetris
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Semua cipher blok simetris harus digunakan dengan mode cipher simetris yang disetujui. Satu-satunya mode yang disetujui adalah CBC dan CTS. Secara khusus, mode operasi buku kode elektronik (ECB) harus dihindari; penggunaan ECB memerlukan ulasan Crypto Board organisasi Anda. Semua penggunaan OFB, CFB, CTR, CCM, dan GCM atau mode enkripsi lainnya harus ditinjau oleh Crypto Board organisasi Anda. Menggunakan kembali vektor inisialisasi (VI) yang sama dengan cipher blok dalam "mode cipher streaming," seperti CTR, menyebabkan data terenkripsi terungkap. Semua cipher blok simetris juga harus digunakan dengan vektor inisialisasi (VI) yang sesuai. VI yang sesuai adalah angka yang kuat dan acak secara kriptografis dan tidak pernah menjadi nilai konstan. |
Gunakan algoritma asimetris, panjang kunci, dan padding yang disetujui
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Penggunaan algoritma kriptografi terlarang menimbulkan risiko signifikan terhadap keamanan produk dan harus dihindari. Produk hanya boleh menggunakan algoritma kriptografi tersebut dan panjang kunci terkait dan padding yang telah disetujui secara eksplisit oleh Crypto Board organisasi Anda.
|
Gunakan generator angka acak yang disetujui
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Gunakan generator angka acak yang disetujui. Fungsi pseudorandom seperti rand fungsi runtime C, Sistem kelas .NET Framework.Random, atau fungsi sistem seperti GetTickCount, oleh karena itu, tidak boleh digunakan dalam kode tersebut. Penggunaan algoritma dual elliptic curve random number generator (DUAL_EC_DRBG) dilarang
|
Jangan gunakan cipher aliran simetris
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Cipher aliran simetris, seperti RC4, tidak boleh digunakan. Alih-alih cipher aliran simetris, produk harus menggunakan cipher blok, khususnya AES dengan panjang kunci setidaknya 128 bit. |
Gunakan algoritma MAC/HMAC/keyed hash yang disetujui
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Produk hanya boleh menggunakan kode autentikasi pesan (MAC) yang disetujui atau algoritma kode autentikasi pesan berbasis hash (HMAC). Kode autentikasi pesan (MAC) adalah sepotong informasi yang dilampirkan pada pesan yang memungkinkan penerimanya untuk memverifikasi keaslian pengirim dan integritas pesan menggunakan kunci rahasia. Penggunaan MAC (HMAC)berbasis hash atau MAC berbasis block-cipher diizinkan selama semua algoritma enkripsi hash atau simetris yang mendasarinya juga disetujui untuk digunakan; saat ini termasuk fungsi HMAC-SHA2 (HMAC-SHA256, HMAC-SHA384 dan HMAC-SHA512) dan MAC berbasis cipher blok CMAC/OMAC1 dan OMAC2 (ini didasarkan pada SEL). Penggunaan HMAC-SHA1 dapat diizinkan untuk kompatibilitas platform, tetapi Anda akan diminta untuk mengajukan pengecualian untuk prosedur ini dan menjalani tinjauan Crypto organisasi Anda. Pemotongan HMAC yang kurang dari 128 bit tidak diperbolehkan. Menggunakan metode pelanggan untuk hash kunci dan data tidak disetujui, dan harus menjalani ulasan Crypto Board organisasi Anda sebelum digunakan. |
Gunakan hanya fungsi hash kriptografi yang sudah disetujui
Judul | Detail |
---|---|
Komponen | Aplikasi Web |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Produk harus menggunakan keluarga algoritma hash SHA-2 (SHA256, SHA384, dan SHA512). Jika hash yang lebih pendek diperlukan, seperti panjang output 128-bit agar sesuai dengan struktur data yang dirancang dengan mempertimbangkan hash MD5 yang lebih pendek, tim produk dapat memotong salah satu hash SHA2 (biasanya SHA256). Perhatikan bahwa SHA384 adalah versi SHA512 yang terpotong. Pemotongan hash kriptografi untuk tujuan keamanan yang kurang dari 128 bit tidak diperbolehkan. Kode baru tidak boleh menggunakan algoritma hash MD2, MD4, MD5, SHA-0, SHA-1, atau RIPEMD. Tabrakan hash layak secara komputasi untuk algoritma ini, yang menghancurkannya dengan efektif. Algoritma .NET yang diizinkan untuk kelincahan kripto terkelola (sesuai urutan preferensi):
|
Gunakan algoritme enkripsi yang kuat untuk mengenkripsi data dalam database
Judul | Detail |
---|---|
Komponen | Database |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | Memilih algoritma enkripsi |
Langkah-langkah | Algoritma enkripsi mendefinisikan transformasi data yang tidak dapat dengan mudah dibalik oleh pengguna yang tidak sah. SQL Server memungkinkan administrator dan pengembang untuk memilih di antara beberapa algoritma, termasuk DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit SEL, 192-bit SEL, dan 256-bit SEL |
Paket SSIS harus dienkripsi dan ditandatangani secara digital
Judul | Detail |
---|---|
Komponen | Database |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | Identifikasi Sumber Paket dengan Tanda Tangan Digital, Mitigasi Ancaman dan Kerentanan (SSIS) |
Langkah-langkah | Sumber paket adalah individu atau organisasi yang membuat paket. Menjalankan paket dari sumber yang tidak dikenal atau tidak tepercaya dapat berisiko. Untuk mencegah kerusakan paket SSIS yang tidak sah, tanda tangan digital harus digunakan. Selain itu, untuk memastikan kerahasiaan paket selama penyimpanan/transit, paket SSIS harus dienkripsi |
Tambahkan tanda tangan digital ke database penting yang dapat diamankan
Judul | Detail |
---|---|
Komponen | Database |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | TAMBAHKAN TANDA TANGAN (Transact-SQL) |
Langkah-langkah | Dalam kasus di mana integritas database penting yang dapat diamankan harus diverifikasi, tanda tangan digital harus digunakan. Database yang dapat diamankan seperti prosedur, fungsi, perakitan, atau pemicu yang disimpan dapat ditandatangani secara digital. Di bawah ini adalah contoh kapan hal ini dapat berguna: Katakanlah ISV (Vendor Perangkat Lunak Independen) telah memberikan dukungan untuk perangkat lunak yang dikirimkan ke salah satu pelanggan mereka. Sebelum memberikan dukungan, ISV ingin memastikan bahwa database yang dapat diamankan dalam perangkat lunak tidak dirusak baik karena kesalahan atau kesengajaan. Jika sekuritas ditandatangani secara digital, ISV dapat memverifikasi tanda tangan digitalnya dan memvalidasi integritasnya. |
Gunakan EKM server SQL untuk melindungi kunci enkripsi
Judul | Detail |
---|---|
Komponen | Database |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | SQL Server Extensible Key Management (EKM),Extensible Key Management Menggunakan Azure Key Vault (SQL Server) |
Langkah-langkah | SQL Server Extensible Key Management mengaktifkan kunci enkripsi yang melindungi file database untuk disimpan dalam perangkat off-box seperti modul smartcard, USB device, atau EKM/HSM. Ini juga mengaktifkan perlindungan data dari administrator database (kecuali anggota grup sysadmin). Data dapat dienkripsi dengan menggunakan kunci enkripsi yang hanya dapat diakses oleh pengguna database pada modul EKM/HSM eksternal. |
Gunakan fitur AlwaysEncrypted jika kunci enkripsi tidak boleh diungkapkan ke mesin Database
Judul | Detail |
---|---|
Komponen | Database |
Fase SDL | Build |
Teknologi yang Berlaku | SQL Azure, OnPrem |
Atribut | SQL Version - V12, MsSQL2016 |
Referensi | Always Encrypted (Mesin Database) |
Langkah-langkah | Always Encrypted adalah fitur yang dirancang untuk melindungi data sensitif, seperti nomor kartu kredit atau nomor identifikasi nasional/regional (misalnya nomor jaminan sosial AS), yang disimpan dalam database Azure SQL atau database SQL Server. Always Encrypted memungkinkan klien untuk mengenkripsi data sensitif di dalam aplikasi klien dan tidak pernah mengungkapkan kunci enkripsi ke Mesin Database (SQL Database atau SQL Server). Sebagai hasilnya, Always Encrypted memberikan pemisahan antara mereka yang memiliki data (dan dapat melihatnya) dan mereka yang mengelola data (tetapi tidak boleh memiliki akses) |
Simpan Kunci Kriptografi dengan aman di Perangkat IoT
Judul | Detail |
---|---|
Komponen | Perangkat IoT |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | OS Perangkat - Windows IoT Core, Konektivitas Perangkat - SDK perangkat Azure IoT |
Referensi | TPM di Windows IoT Core, Mengatur TPM di Windows IoT Core, Azure IoT Device SDK TPM |
Langkah-langkah | Kunci Symmetric atau Certificate Private dengan aman di penyimpanan yang dilindungi perangkat keras seperti TPM atau chip Smart Card. Windows 10 IoT Core mendukung pengguna TPM dan ada beberapa TPM yang kompatibel yang dapat digunakan: TPM (dTPM) Terpisah. Disarankan untuk menggunakan Firmware atau Diskret TPM. TPM Perangkat Lunak hanya boleh digunakan untuk tujuan pengembangan dan pengujian. Setelah TPM tersedia dan kunci disediakan di dalamnya, kode yang menghasilkan token harus ditulis tanpa hard coding informasi sensitif apa pun di dalamnya. |
Contoh
TpmDevice myDevice = new TpmDevice(0);
// Use logical device 0 on the TPM
string hubUri = myDevice.GetHostName();
string deviceId = myDevice.GetDeviceId();
string sasToken = myDevice.GetSASToken();
var deviceClient = DeviceClient.Create( hubUri, AuthenticationMethodFactory. CreateAuthenticationWithToken(deviceId, sasToken), TransportType.Amqp);
Seperti yang dapat dilihat, kunci utama perangkat tidak ada dalam kode. Sebaliknya, telah tersimpan dalam TPM di slot 0. Perangkat TPM menghasilkan token SAS berumur pendek yang kemudian digunakan untuk terhubung ke IoT Hub.
Buat kunci simetris acak dengan panjang yang sesuai untuk autentikasi ke IoT Hub
Judul | Detail |
---|---|
Komponen | Gateway IoT Cloud |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | Pilihan Gateway - Azure IoT Hub |
Referensi | T/A |
Langkah-langkah | IoT Hub berisi Registri Identitas perangkat dan saat menyediakan perangkat, akan menghasilkan kunci Simetris acak secara otomatis. Disarankan untuk menggunakan fitur ini dari Azure IoT Hub Identity Registry untuk menghasilkan kunci yang digunakan untuk autentikasi. IoT Hub juga memungkinkan kunci untuk ditentukan saat membuat perangkat. Jika kunci dibuat di luar IoT Hub selama penyediaan perangkat, disarankan untuk membuat kunci simetris acak atau setidaknya 256 bit. |
Pastikan kebijakan manajemen perangkat diberlakukan yang memerlukan PIN penggunaan dan memungkinkan penghapusan jarak jauh
Judul | Detail |
---|---|
Komponen | Klien Dynamics CRM Seluler |
Fase SDL | Penyebaran |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Pastikan kebijakan manajemen perangkat diberlakukan yang memerlukan PIN penggunaan dan memungkinkan penghapusan jarak jauh |
Pastikan kebijakan manajemen perangkat sudah diberlakukan yang memerlukan PIN/kata sandi/kunci otomatis dan mengenkripsi semua data (misalnya BitLocker)
Judul | Detail |
---|---|
Komponen | Klien Dynamics CRM Outlook |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Pastikan kebijakan manajemen perangkat sudah diberlakukan yang memerlukan PIN/kata sandi/kunci otomatis dan mengenkripsi semua data (misalnya BitLocker) |
Pastikan kunci penandatanganan digulirkan saat menggunakan Server Identitas
Judul | Detail |
---|---|
Komponen | Server Identitas |
Fase SDL | Penyebaran |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | Server Identitas - Kunci, Tanda Tangan, dan Kriptografi |
Langkah-langkah | Pastikan tombol penandatanganan digulirkan saat menggunakan Server Identitas. Tautan di bagian referensi menjelaskan bagaimana ini harus direncanakan tanpa menyebabkan pemadaman pada aplikasi yang mengandalkan Server Identitas. |
Pastikan bahwa ID klien dan rahasia klien yang kuat secara kriptografis digunakan di Server Identitas
Judul | Detail |
---|---|
Komponen | Server Identitas |
Fase SDL | Build |
Teknologi yang Berlaku | Generik |
Atribut | T/A |
Referensi | T/A |
Langkah-langkah | Pastikan bahwa ID klien dan rahasia klien yang kuat secara kriptografis digunakan di Server Identitas. Panduan berikut harus digunakan saat membuat ID dan rahasia klien:
|
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk