CNG Özellikleri
CNG aşağıdaki özelliklere sahiptir.
- Şifreleme Çevikliği
- Sertifikasyon ve Uyumluluk
- Paketi B Destek
- Eski Destek
- çekirdek modu desteği
- denetim
- Değiştirilebilir Rastgele Sayı Oluşturucuları
- İş Parçacığı Güvenliği
- İşlem Modu
Şifreleme Çevikliği
CNG'nin önemli değer tekliflerinden biri, bazen şifreleme agnostisizmi olarak adlandırılan şifreleme çevikliğidir. Ancak bu özelliğin değerli hale getirilmesi için Güvenli Yuva Katmanı protokolü (SSL) veya aktarım katmanı güvenlik (TLS), CMS (S/MIME), IPsec, Kerberos vb. gibi protokollerin CNG'ye dönüştürülmesi gerekiyordu. CNG düzeyinde, tüm algoritma türleri (simetrik, asimetrik, karma işlevler), rastgele sayı oluşturma ve diğer yardımcı program işlevleri için değiştirme ve bulunabilirlik sağlamak gerekiyordu. Çoğu durumda algoritma seçimi ve daha önce mevcut olmayan diğer esneklik seçeneklerini eklemek için gereken protokol API'leri nedeniyle protokol düzeyindeki değişiklikler daha önemlidir.
CNG ilk olarak Windows Vista'da kullanılabilir ve Microsoft yazılım yığını genelinde CryptoAPI'nin mevcut kullanımlarının yerini alacak şekilde konumlandırılır. Üçüncü taraf geliştiriciler CNG'de aşağıdakiler dahil olmak üzere birçok yeni özellik bulur:
- Daha iyi şifreleme çevikliğini destekleyen yeni bir şifreleme yapılandırma sistemi.
- Anahtar depolama için daha ayrıntılı soyutlama (ve depolamayı algoritma işlemlerinden ayırma).
- Uzun vadeli anahtarlara sahip işlemler için işlem yalıtımı.
- Değiştirilebilir rastgele sayı oluşturucular.
- dışarı aktarma imzalama kısıtlamalarından kurtulma.
- Yığın genelinde iş parçacığı güvenliği.
- Çekirdek modu şifreleme API'si.
Ayrıca CNG, eliptik eğri şifreleme(ECC) dahil olmak üzeregerekli tüm Suite B algoritmaları için destek içerir. CNG kullanılabilir hale geldikçe mevcut CryptoAPI uygulamaları çalışmaya devam edecektir.
Sertifikasyon ve Uyumluluk
CNG, Federal Bilgi İşleme Standartları (FIPS) 140-2'ye doğrulanır ve Windows Ortak Ölçütler sertifikası için Değerlendirme Hedefi'nin bir parçasıdır. CNG, FIPS düzey 2 doğrulanmış bir sistemde bileşen olarak kullanılabilir olacak şekilde tasarlanmıştır.
CNG, uzun ömürlü anahtarları güvenli bir işlemde depolayarak ve kullanarak Ortak Ölçüt gereksinimlerine uygundur.
B Paketi Desteği
CNG'nin önemli özelliklerinden biri, Suite B algoritmalarına yönelik desteğidir. Şubat 2005'te, ABD Ulusal Güvenlik Ajansı (NSA) simetrik şifreleme, asimetrik gizli anlaşma (anahtar değişimi olarak da bilinir), gelecekteki ABD kamu kullanımı için dijital imza ve karma işlevleri Suite Bolarak adlandırılan eşgüdümlü bir dizi açıkladı. NSA, sertifikalı Suite B uygulamalarının, geçmişte Hassas-Ama Sınıflandırılmamış olarak tanımlanan Çok Gizli, Gizli ve özel bilgiler olarak belirlenen bilgilerin korunması için kullanılabileceğini ve kullanılacağını duyurdu. Bu nedenle, Suite B desteği hem uygulama yazılımı satıcıları ve sistem tümleştiricileri hem de Microsoft için çok önemlidir.
Tüm Paket B algoritmaları genel olarak bilinir. Bunlar, geçmişte şifreleme algoritması geliştirmeyle ilişkili devlet gizliliği kapsamı dışında geliştirilmiştir. Bu zaman diliminde, bazı Avrupa ülkeleri ve bölgeleri de bilgilerini korumak için aynı Suite B gereksinimlerini önermektedir.
Paket B şifrelemesi, İnternet Anahtar Değişimi (IKE, çoğunlukla IPsec'te kullanılır), aktarım katmanı güvenlik (TLS) ve Güvenli MIME (S/MIME) gibi birçok mevcut protokolde üç nokta eğri Diffie-Hellman (ECDH) kullanılmasını önerir.
CNG, gerekli tüm algoritmaları kapsayan Suite B desteği içerir: AES (tüm anahtar boyutları), KARMA algoritmalarının SHA-2 ailesi (SHA-256, SHA-384 ve SHA-512), NIST standart prime eğrileri P-256, P-384 ve P-521 üzerinde üç nokta eğrisi DSA (ECDSA). İkili eğriler, Koblitz eğrileri, özel asal eğriler ve üç nokta eğrisi Menezes-Qu-Vanstone (ECMQV), Windows Vista'ya dahil edilen Microsoft algoritma sağlayıcıları tarafından desteklenmez.
Eski Destek
CNG, CryptoAPI 1.0'daki geçerli algoritma kümesi için destek sağlar. Şu anda CryptoAPI 1.0'da desteklenen her algoritma CNG'de desteklenmeye devam edecektir.
Çekirdek Modu Desteği
CNG, çekirdek modunda şifrelemeyi destekler. Şifreleme özelliklerini tam olarak desteklemek için hem çekirdek hem de kullanıcı modunda aynı API'ler kullanılır. Hem SSL/TLS hem de IPsec, CNG kullanacak önyükleme işlemlerine ek olarak çekirdek modunda çalışır. Tüm CNG işlevleri çekirdek modundan çağrılmaz. Çekirdek modundan çağrılamayan işlevlerin başvuru konusu, işlevin çekirdek modundan çağrılamadığını açıkça belirtir. Aksi takdirde, çağıran PASSIVE_LEVELIRQLüzerinde çalışıyorsa, tüm CNG işlevleri çekirdek modundan çağrılabilir. Ayrıca, sağlayıcının özelliklerine bağlı olarak bazı çekirdek modu CNG işlevleri DISPATCH_LEVEL IRQL'de çağrılabilir.
Microsoft çekirdek güvenlik desteği sağlayıcısı arabirimi (Ksecdd.sys), Windows'un çekirdek modu düzeyinde bulunan genel amaçlı, yazılım tabanlı, şifreleme modülüdür. Ksecdd.sys, çekirdek modu dışarı aktarma sürücüsü olarak çalışır ve belgelenmiş arabirimleri aracılığıyla çekirdek bileşenlerine şifreleme hizmetleri sağlar. Ksecdd.sys tarafından desteklenmeyen tek yerleşik Microsoft sağlayıcı algoritması DSA'dır.
Windows Server 2008 ve Windows Vista: CNG, çekirdek modunda takılabilir algoritmaları ve sağlayıcıları desteklemez. Çekirdek modunda kullanılabilen desteklenen tek şifreleme algoritmaları, Microsoft tarafından çekirdek modu CNG API'leri aracılığıyla sağlanan uygulamalardır.
Denetim
Kapsamlı güvenlik sağlamanın yanı sıra Bazı Ortak Ölçüt gereksinimlerine uymak için, CNG katmanında gerçekleşen birçok eylem Microsoft yazılım anahtarı depolama sağlayıcısında (KSP) denetlenmektedir. Microsoft KSP, güvenlik günlüğünde denetim kayıtları oluşturmak için aşağıdaki yönergelere uyar:
- Kendi kendine test hataları da dahil olmak üzere anahtar ve anahtar çifti oluşturma hataları denetlenmelidir.
- Anahtar içeri ve dışarı aktarma denetlenmelidir.
- Önemli yok etme hataları denetlenmelidir.
- Kalıcı anahtarların dosyalara yazıldığında ve dosyalardan okunduğunda denetlenmeleri gerekir.
- Çifte dayalı tutarlılık denetimi hataları denetlenmelidir.
- Varsa gizli anahtar doğrulama hataları denetlenmelidir, örneğin 3DES anahtarlarında eşlik denetimleri.
- Şifreleme, şifre çözme, karma oluşturma, imza, doğrulama, anahtar değişimi ve rastgele sayı oluşturma hataları denetlenmelidir.
- Şifreleme kendi kendine testleri denetlenmelidir.
Genel olarak, bir anahtarın adı yoksa kısa ömürlü bir anahtardır. Kısa ömürlü anahtar kalıcı olmaz ve Microsoft KSP kısa ömürlü anahtarlar için denetim kayıtları oluşturmaz. Microsoft KSP, yalnızca LSA işleminde kullanıcı modunda denetim kayıtları oluşturur. Çekirdek modu CNG tarafından denetim kaydı oluşturulmaz. Yöneticilerin güvenlik günlüğünden tüm KSP denetim günlüklerini almak için denetim ilkesini yapılandırması gerekir. Bir yöneticinin KSP'ler tarafından oluşturulan ek denetimleri yapılandırmak için aşağıdaki komut satırını çalıştırması gerekir:
auditpol /set /subcategory:"diğer sistem olayları" /success:enable /failure:enable
Değiştirilebilir Rastgele Sayı Oluşturucuları
CNG'nin sağladığı bir diğer iyileştirme de varsayılan rastgele sayı oluşturucuyu (RNG) değiştirme olanağıdır. CryptoAPI'de, şifreleme hizmeti sağlayıcısının (CSP) bir parçası olarak alternatif bir RNG sağlamak mümkündür, ancak Microsoft Base CSP'lerini başka bir RNG kullanacak şekilde yeniden yönlendirmek mümkün değildir. CNG, belirli çağrılarda kullanılacak belirli bir RNG'yi açıkça belirtmeyi mümkün kılar.
İş Parçacığı Güvenliği
Ayrı iş parçacıklarından çağrılırken aynı bellek alanını aynı anda değiştiren işlevler (kritik bölümler) iş parçacığı güvenli değildir.
İşlem Modu
CNG, şifreleme API'leri aracılığıyla simetrik blok şifrelemeleri ile kullanılabilen beş işlem modunu destekler. Bu modlar ve desteklenebilirliği aşağıdaki tabloda listelenmiştir. İşlem modu, BCryptSetProperty işlevi kullanılarak algoritma sağlayıcısı için BCRYPT_CHAINING_MODE özelliği ayarlanarak değiştirilebilir.
İşlem modu | BCRYPT_CHAINING_MODE değeri | Algoritma | Standart |
---|---|---|---|
ECB (Elektronik Kod Kitabı) | BCRYPT_CHAIN_MODE_ECB | Simetrik blok şifreleri | SP800-38A |
CBC (Şifreleme Blok Zincirleme) | BCRYPT_CHAIN_MODE_CBC | Simetrik blok şifreleri | SP800-38A |
CFB (Şifreleme Geri Bildirimi) | BCRYPT_CHAIN_MODE_CFB | Simetrik blok şifreleri | SP800-38A |
CCM (CBC ile sayaç) | BCRYPT_CHAIN_MODE_CCM | AES | SP800-38C |
GCM (Galois/Sayaç Modu) | BCRYPT_CHAIN_MODE_GCM | AES | SP800-38D |
Not
Windows Vista'da yalnızca ECB, CBC ve CFB işlem modları tanımlanır. GCM ve CCM, Windows Vista Service Pack 1 (SP1) veya Windows Server 2008 gerektirir.