Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Maksud
Cryptography API: Next Generation (CNG) adalah pengganti jangka panjang untuk CryptoAPI. CNG dirancang agar dapat diperluas pada berbagai tingkatan dan tidak bergantung pada jenis kriptografi tertentu dalam pengoperasiannya.
Audiens pengembang
CNG ditujukan untuk digunakan oleh pengembang aplikasi yang akan memungkinkan pengguna untuk membuat dan bertukar dokumen dan data lain di lingkungan yang aman, terutama melalui media yang tidak aman seperti Internet. Pengembang harus terbiasa dengan bahasa pemrograman C dan C++ dan lingkungan pemrograman berbasis Windows. Meskipun tidak diperlukan, pemahaman tentang kriptografi atau subjek terkait keamanan disarankan.
Jika Anda mengembangkan penyedia algoritma kriptografi CNG atau penyedia penyimpanan kunci, Anda harus mengunduh kit pengembangan penyedia kriptografi dari Microsoft.
Persyaratan saat proses berjalan
CNG didukung dimulai dengan Windows Server 2008 dan Windows Vista. Untuk informasi tentang persyaratan runtime untuk elemen pemrograman tertentu, lihat bagian Persyaratan dari halaman referensi untuk elemen tersebut.
Di bagian ini
Topik berikut memberikan informasi tentang CNG dan cara menggunakannya di aplikasi Anda:
| Topik | Deskripsi |
|---|---|
| Tentang CNG | Menjelaskan fitur CNG, primitif kriptografi, serta penyimpanan, pengambilan, impor, dan ekspor kunci. |
| Menggunakan CNG | Menjelaskan cara menggunakan fitur konfigurasi kriptografi CNG dan pemrograman CNG yang khas. |
| Referensi CNG | Deskripsi terperinci tentang elemen pemrograman CNG. Halaman ini mencakup deskripsi referensi API untuk bekerja dengan CNG. |
Kapan menggunakan CNG
Gunakan CNG saat Anda memerlukan kontrol langsung atas operasi kriptografi dalam aplikasi Windows. Panduan berikut membantu Anda memilih API yang sesuai:
| Skenario | API yang direkomendasikan |
|---|---|
| Enkripsi/dekripsi simetris (AES, ChaCha20-Poly1305) | CNG (BCryptEncrypt / BCryptDecrypt) |
| Hashing (SHA-256, SHA-384, SHA-512) | CNG (BCryptCreateHash) |
| Operasi asimetris (RSA, ECDSA, ML-DSA) | CNG (BCryptSignHash, BCryptVerifySignature) |
| Melindungi data pengguna saat tidak aktif (cakupan per pengguna atau per mesin) | DPAPI (lebih sederhana, tidak diperlukan manajemen kunci) |
| Melindungi data yang dapat diakses oleh beberapa pengguna atau mesin | DPAPI-NG (NCryptProtectSecret) |
| Koneksi TLS/SSL | Schannel (menggunakan CNG secara internal) |
| Kode warisan yang sudah menggunakan CryptoAPI | Lanjutkan dengan CryptoAPI untuk pemeliharaan, tetapi rencanakan migrasi ke CNG untuk fitur baru |
Peringatan
Kesalahan umum dalam kriptografi yang perlu dihindari:
- Jangan gunakan mode sandi blok ECB - ini bocor pola teks biasa. Gunakan CBC dengan IV acak, atau sebaiknya mode terautentikasi seperti GCM.
- Jangan menanamkan kunci enkripsi secara langsung ke dalam kode sumber. Gunakan penyedia penyimpanan utama atau DPAPI untuk perlindungan kunci.
- Jangan gunakan MD5 atau SHA-1 untuk tujuan integritas atau keamanan. Gunakan SHA-256 atau lebih kuat.
- Selalu validasi kode pengembalian dari fungsi CNG. Operasi kriptografi yang gagal yang diabaikan secara diam-diam dapat menyebabkan data disimpan tanpa terenkripsi.