Fitur CNG

CNG memiliki fitur-fitur berikut.

Kelincahan Kriptografi

Salah satu proposisi nilai utama CNG adalah kelincahan kriptografi, kadang-kadang disebut agnostikisme kriptografi. Mengonversi implementasi protokol seperti protokol Secure Sockets Layer (SSL) atau keamanan lapisan transportasi (TLS), CMS (S/MIME), IPsec, Kerberos, dan sebagainya, ke CNG, namun, diperlukan untuk membuat kemampuan ini berharga. Pada tingkat CNG, perlu untuk memberikan substitusi dan penemuan untuk semua jenis algoritma (simetris, asimetris, fungsi hash), pembuatan angka acak, dan fungsi utilitas lainnya. Perubahan tingkat protokol lebih signifikan karena dalam banyak kasus API protokol perlu menambahkan pemilihan algoritma dan opsi fleksibilitas lainnya yang sebelumnya tidak ada.

CNG pertama kali tersedia di Windows Vista dan diposisikan untuk menggantikan penggunaan CryptoAPI yang ada di seluruh tumpukan perangkat lunak Microsoft. Pengembang pihak ketiga akan menemukan banyak fitur baru di CNG, termasuk:

  • Sistem konfigurasi kriptografi baru, mendukung kelincahan kriptografi yang lebih baik.
  • Abstraksi yang lebih halus untuk penyimpanan kunci (dan pemisahan penyimpanan dari operasi algoritma).
  • Isolasi proses untuk operasi dengan kunci jangka panjang.
  • Generator angka acak yang dapat diganti.
  • Bantuan dari pembatasan penandatanganan ekspor.
  • Thread-safety di seluruh tumpukan.
  • API kriptografi mode kernel.

Selain itu, CNG menyertakan dukungan untuk semua algoritma Suite B yang diperlukan, termasuk kriptografi kurva elips (ECC). Aplikasi CryptoAPI yang ada akan terus berfungsi saat CNG tersedia.

Sertifikasi dan Kepatuhan

CNG divalidasi ke Federal Information Processing Standards (FIPS) 140-2 dan merupakan bagian dari Target Evaluasi untuk sertifikasi Kriteria Umum Windows. CNG dirancang agar dapat digunakan sebagai komponen dalam sistem tervalidasi FIPS level 2.

CNG mematuhi persyaratan Kriteria Umum dengan menyimpan dan menggunakan kunci berumur panjang dalam proses yang aman.

Dukungan Suite B

Fitur penting CNG adalah dukungannya untuk algoritma Suite B. Pada bulan Februari 2005, Badan Keamanan Nasional (NSA) Amerika Serikat mengumumkan serangkaian enkripsi simetris terkoordinasi, perjanjian rahasia asimetris (juga dikenal sebagai pertukaran kunci), tanda tangan digital, dan fungsi hash untuk penggunaan pemerintah AS di masa mendatang yang disebut Suite B. NSA telah mengumumkan bahwa implementasi Suite B bersertifikat dapat dan akan digunakan untuk perlindungan informasi yang ditetapkan sebagai informasi Rahasia, Rahasia, dan privat Teratas yang, di masa lalu digambarkan sebagai Sensitif-Tapi-Tidak Diklasifikasikan. Karena itu, dukungan Suite B sangat penting untuk vendor perangkat lunak aplikasi dan integrator sistem serta Microsoft.

Semua algoritma Suite B diketahui secara publik. Mereka telah dikembangkan di luar ruang lingkup keamsipan pemerintah secara historis yang terkait dengan pengembangan algoritma kriptografi. Dalam jangka waktu yang sama ini, beberapa negara dan wilayah Eropa juga telah mengusulkan persyaratan Suite B yang sama untuk melindungi informasi mereka.

Kriptografi Suite B merekomendasikan penggunaan kurva elips Diffie-Hellman (ECDH) dalam banyak protokol yang ada seperti Internet Key Exchange (IKE, terutama digunakan dalam IPsec), keamanan lapisan transportasi (TLS), dan Secure MIME (S/MIME).

CNG mencakup dukungan untuk Suite B yang meluas ke semua algoritma yang diperlukan: AES (semua ukuran kunci), keluarga SHA-2 (SHA-256, SHA-384 dan SHA-512) dari algoritma hash, ECDH, dan kurva elips DSA (ECDSA) di atas kurva prima standar NIST P-256, P-384, dan P-521. Kurva biner, kurva Koblitz, kurva prima kustom, dan kurva elips Menezes-Qu-Vanstone (ECMQV) tidak didukung oleh penyedia algoritma Microsoft yang disertakan dengan Windows Vista.

Dukungan Warisan

CNG menyediakan dukungan untuk set algoritma saat ini di CryptoAPI 1.0. Setiap algoritma yang saat ini didukung di CryptoAPI 1.0 akan terus didukung di CNG.

Dukungan Mode Kernel

CNG mendukung kriptografi dalam mode kernel. API yang sama digunakan dalam mode kernel dan pengguna untuk sepenuhnya mendukung fitur kriptografi. Baik SSL/TLS maupun IPsec beroperasi dalam mode kernel selain proses booting yang akan menggunakan CNG. Tidak semua fungsi CNG dapat dipanggil dari mode kernel. Topik referensi untuk fungsi yang tidak dapat dipanggil dari mode kernel akan secara eksplisit menyatakan bahwa fungsi tidak dapat dipanggil dari mode kernel. Jika tidak, semua fungsi CNG dapat dipanggil dari mode kernel jika pemanggil berjalan di PASSIVE_LEVELIRQL. Selain itu, beberapa fungsi CNG mode kernel dapat dipanggil di DISPATCH_LEVEL IRQL, tergantung pada kemampuan penyedia.

Antarmuka penyedia dukungan keamanan kernel Microsoft (Ksecdd.sys) adalah tujuan umum, modul kriptografi berbasis perangkat lunak yang berada di tingkat mode kernel Windows. Ksecdd.sys berjalan sebagai driver ekspor mode kernel, dan menyediakan layanan kriptografi melalui antarmuka yang di dokumentasikan ke komponen kernel. Satu-satunya algoritma penyedia Microsoft bawaan yang tidak didukung oleh Ksecdd.sys adalah DSA.

Windows Server 2008 dan Windows Vista: CNG tidak mendukung algoritma dan penyedia yang dapat dicolokkan dalam mode kernel. Satu-satunya algoritma kriptografi yang didukung yang tersedia dalam mode kernel adalah implementasi yang disediakan oleh Microsoft melalui API CNG mode kernel.

Audit

Untuk mematuhi beberapa persyaratan Kriteria Umum selain memberikan keamanan komprehensif, banyak tindakan yang terjadi di lapisan CNG diaudit di penyedia penyimpanan kunci perangkat lunak (KSP) Microsoft. Microsoft KSP mematuhi panduan berikut untuk membuat catatan audit di log keamanan:

  • Kegagalan pembuatan kunci dan pasangan kunci, termasuk kegagalan pengujian mandiri, harus diaudit.
  • Impor dan ekspor kunci harus diaudit.
  • Kegagalan penghancuran kunci harus diaudit.
  • Kunci persisten perlu diaudit ketika ditulis dan dibaca dari file.
  • Kegagalan pemeriksaan konsistensi yang bijaksana harus diaudit.
  • Kegagalan validasi kunci rahasia, jika ada, harus diaudit, misalnya, pemeriksaan paritas pada kunci 3DES.
  • Kegagalan dalam enkripsi, dekripsi, hashing, tanda tangan, verifikasi, pertukaran kunci, dan pembuatan angka acak harus diaudit.
  • Tes mandiri kriptografi harus diaudit.

Secara umum, jika kunci tidak memiliki nama, kunci tersebut adalah kunci ephemeral. Kunci ephemeral tidak bertahan, dan Microsoft KSP tidak menghasilkan catatan audit untuk kunci ephemeral. Microsoft KSP hanya menghasilkan catatan audit dalam mode pengguna dalam proses LSA. Tidak ada catatan audit yang dihasilkan oleh mode kernel CNG. Administrator perlu mengonfigurasi kebijakan audit untuk mendapatkan semua log audit KSP dari log keamanan. Administrator harus menjalankan baris perintah berikut untuk mengonfigurasi audit tambahan yang dihasilkan oleh KSP:

auditpol /set /subcategory:"other system events" /success:enable /failure:enable

Generator Angka Acak yang Dapat Diganti

Peningkatan lain yang diberikan CNG adalah kemampuan untuk mengganti generator angka acak default (RNG). Di CryptoAPI, dimungkinkan untuk menyediakan RNG alternatif sebagai bagian dari penyedia layanan kriptografi (CSP), tetapi tidak mungkin untuk mengalihkan CSP Microsoft Base untuk menggunakan RNG lain. CNG memungkinkan untuk secara eksplisit menentukan RNG tertentu untuk digunakan dalam panggilan tertentu.

Keamanan Thread

Fungsi apa pun yang memodifikasi area memori yang sama pada saat yang sama (bagian penting) saat dipanggil dari utas terpisah tidak aman untuk utas.

Mode Operasi

CNG mendukung lima mode operasi yang dapat digunakan dengan cipher blok simetris melalui API enkripsi. Mode ini dan dukungannya tercantum dalam tabel berikut. Mode operasi dapat diubah dengan mengatur properti BCRYPT_CHAINING_MODE untuk penyedia algoritma dengan menggunakan fungsi BCryptSetProperty .

Mode operasi nilai BCRYPT_CHAINING_MODE Algoritma Standard
ECB (Buku Kode Elektronik) BCRYPT_CHAIN_MODE_ECB Cipher blok simetris SP800-38A
CBC (Rantai Blok Cipher) BCRYPT_CHAIN_MODE_CBC Cipher blok simetris SP800-38A
CFB (Umpan Balik Sandi) BCRYPT_CHAIN_MODE_CFB Cipher blok simetris SP800-38A
CCM (Penghitung dengan CBC) BCRYPT_CHAIN_MODE_CCM AES SP800-38C
GCM (Mode Galois/Penghitung) BCRYPT_CHAIN_MODE_GCM AES SP800-38D

 

Catatan

Hanya mode operasi ECB, CBC, dan CFB yang didefinisikan dalam Windows Vista. GCM dan CCM memerlukan Windows Vista dengan Paket Layanan 1 (SP1) atau Windows Server 2008.