Sdílet prostřednictvím


Funkce CNG

CNG má následující funkce.

Kryptografická flexibilita

Jednou z nabídek klíčových hodnot CNG je kryptografická flexibilita, někdy označovaná jako kryptografická agnosticismus. Převod implementace protokolů, jako je protokol SSL (Secure Sockets Layer) (SSL) nebo zabezpečení přenosové vrstvy (TLS), CMS (S/MIME), IPsec, Kerberos atd., na CNG, ale bylo nutné, aby tato schopnost byla cenná. Na úrovni CNG bylo nutné poskytnout náhradu a zjistitelnost pro všechny typy algoritmů (symetrické, asymetrické, hashové funkce), generování náhodných čísel a další pomocné funkce. Změny na úrovni protokolu jsou důležitější, protože v mnoha případech rozhraní API protokolu potřebná k přidání výběru algoritmu a dalších možností flexibility, které dříve neexistovaly.

CNG je nejprve k dispozici v systému Windows Vista a je umístěna k nahrazení stávajících použití CryptoAPI v rámci softwarového zásobníku Společnosti Microsoft. Vývojáři třetích stran najdou v CNG spoustu nových funkcí, mezi které patří:

  • Nový kryptografický konfigurační systém, který podporuje lepší kryptografickou flexibilitu.
  • Jemně odstupňované abstrakce pro úložiště klíčů (a oddělení úložiště od operací algoritmů).
  • Izolace procesů pro operace s dlouhodobými klíči.
  • Nahraditelné generátory náhodných čísel
  • Úleva od omezení podepisování exportu.
  • Bezpečnost vláken v celém zásobníku.
  • Kryptografické rozhraní API v režimu jádra

CNG navíc zahrnuje podporu všech požadovaných algoritmů Suite B, včetně kryptografických (ECC). Stávající aplikace CryptoAPI budou nadále fungovat, jakmile bude CNG k dispozici.

Certifikace a dodržování předpisů

CNG se ověřuje ve standardu FIPS (Federal Information Processing Standards) 140-2 a je součástí cíle hodnocení pro certifikaci Společných kritérií systému Windows. CNG byl navržen tak, aby byl použitelný jako součást v systému ověřeném fiPS úrovně 2.

CNG splňuje požadavky na běžná kritéria uložením a používáním dlouhodobých klíčů v zabezpečeném procesu.

Podpora sady B

Důležitou funkcí CNG je podpora algoritmů Suite B. V únoru 2005 oznámila Národní bezpečnostní agentura (NSA) Spojených států koordinovanou sadu symetrických tajných dohod (označovanou také jako výměna klíčů), digitální podpis a hashové funkce pro budoucí vládu USA, která se nazývá Suite B. NSA oznámila, že certifikované implementace Suite B mohou a budou použity k ochraně informací určených jako Top Secret, Secret a soukromé informace, které byly v minulosti popsány jako Citlivé-But-Unclassified. Z tohoto důvodu je podpora Suite B velmi důležitá pro dodavatele aplikačního softwaru a systémové integrátory i pro Microsoft.

Všechny algoritmy Suite B jsou veřejně známé. Byly vyvinuty mimo rozsah státního tajemství historicky spojené s vývojem kryptografických algoritmů. V tomto časovém rámci některé evropské země a oblasti také navrhly stejné požadavky suite B na ochranu svých informací.

Kryptografie suite B doporučuje používat tři tečkované křivky Diffie-Hellman (ECDH) v mnoha existujících protokolech, jako je protokol IKE (Internet Key Exchange(IKE, zejména používaný v protokolu IPsec), zabezpečení vrstvy přenosu (TLS) a Secure MIME (S/MIME).

CNG zahrnuje podporu pro Sadu B, která se rozšiřuje na všechny požadované algoritmy: AES (všechny velikosti klíčů), řadu SHA-2 (SHA-256, SHA-384 a SHA-512) algoritmů hash, ECDH a elliptic curve DSA (ECDSA) nad standardními křivkami NIST P-256, P-384 a P-521. Binární křivky, koblitzové křivky, vlastní prime křivky a tři tečky Menezes-Qu-Vanstone (ECMQV) nejsou podporovány poskytovateli algoritmů Společnosti Microsoft, kteří jsou součástí systému Windows Vista.

Starší verze podpory

CNG poskytuje podporu pro aktuální sadu algoritmů v CryptoAPI 1.0. Každý algoritmus, který je aktuálně podporován v CryptoAPI 1.0, bude nadále podporován v CNG.

Podpora režimu jádra

CNG podporuje kryptografii v režimu jádra. Stejná rozhraní API se používají v režimu jádra i uživatele, aby plně podporovala funkce kryptografie. Kromě spouštěcích procesů, které budou používat CNG, fungují protokoly SSL/TLS i IPsec v režimu jádra. Ne všechny funkce CNG lze volat z režimu jádra. Referenční téma pro funkce, které nelze volat z režimu jádra, explicitně uvede, že funkci nelze volat z režimu jádra. Jinak lze všechny funkce CNG volat z režimu jádra, pokud volající běží v PASSIVE_LEVELIRQL. Některé funkce CNG režimu jádra se navíc můžou volat v DISPATCH_LEVEL IRQLv závislosti na možnostech poskytovatele.

Rozhraní zprostředkovatele podpory zabezpečení jádra Společnosti Microsoft (Ksecdd.sys) je univerzální kryptografický modul založený na softwaru, který se nachází na úrovni režimu jádra systému Windows. Ksecdd.sys běží jako ovladač exportu v režimu jádra a poskytuje kryptografické služby prostřednictvím jejich zdokumentovaných rozhraní pro komponenty jádra. Jediným integrovaným algoritmem poskytovatele Microsoftu, který Ksecdd.sys nepodporuje, je DSA.

Windows Server 2008 a Windows Vista: CNG nepodporuje připojitelné algoritmy a poskytovatele v režimu jádra. Jedinými podporovanými kryptografickými algoritmy dostupnými v režimu jádra jsou implementace poskytované Microsoftem prostřednictvím rozhraní CNG API režimu jádra.

Kontrola

Aby bylo nutné splnit některé požadavky na běžná kritéria kromě poskytování komplexního zabezpečení, mnoho akcí, ke kterým dochází ve vrstvě CNG, se audituje ve zprostředkovateli úložiště softwarových klíčů Microsoftu (KSP). Microsoft KSP dodržuje následující pokyny k vytvoření záznamů auditu v protokolu zabezpečení:

  • Je potřeba auditovat klíčová selhání a generování páru klíčů, včetně selhání samotestování.
  • Import a export klíče se musí auditovat.
  • Je nutné auditovat selhání zničení klíčů.
  • Trvalé klíče je potřeba auditovat při zápisu do souborů a čtení ze souborů.
  • Selhání kontroly konzistence podle párů musí být auditována.
  • Selhání ověření tajného klíče, pokud existuje, musí být auditována, například kontroly parity u klíčů 3DES.
  • Chyby při šifrování, dešifrování, hashování, podpisu, ověření, výměně klíčů a generování náhodných čísel se musí auditovat.
  • Kryptografické samoobslužné testy musí být auditovány.

Obecně platí, že pokud klíč nemá název, jedná se o dočasný klíč. Dočasný klíč se neuchová a microsoft KSP negeneruje záznamy auditu pro dočasné klíče. Microsoft KSP generuje záznamy auditu pouze v uživatelském režimu v procesu LSA. CNG v režimu jádra negeneruje žádný záznam auditu. Správci musí nakonfigurovat zásady auditu, aby z protokolu zabezpečení získali všechny protokoly auditu KSP. Správce musí spustit následující příkazový řádek, aby nakonfiguroval další audity vygenerované poskytovateli KSP:

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

Nahraditelné generátory náhodných čísel

Dalším vylepšením, které CNG poskytuje, je možnost nahradit výchozí generátor náhodných čísel (RNG). V cryptoAPI je možné poskytnout alternativní RNG jako součást poskytovatele kryptografických služeb (CSP), ale není možné přesměrovat CSP základní poskytovatelé cloudových služeb Společnosti Microsoft na použití jiného RNG. CNG umožňuje explicitně určit konkrétní RNG, který se má použít v rámci konkrétních volání.

Zabezpečení vláken

Všechny funkce, které upravují stejnou oblast paměti ve stejnou dobu (kritické oddíly) při volaném z samostatných vláken, nejsou bezpečné pro přístup z více vláken.

Režim operace

CNG podporuje pět režimů operací, které je možné použít s symetrickými blokovými šiframi prostřednictvím šifrovacích rozhraní API. Tyto režimy a jejich možnosti podpory jsou uvedeny v následující tabulce. Režim operace lze změnit nastavením vlastnosti BCRYPT_CHAINING_MODE pro zprostředkovatele algoritmu pomocí funkce BCryptSetProperty.

Režim provozu hodnota BCRYPT_CHAINING_MODE Algoritmy Standard
ECB (elektronická kniha kódů) BCRYPT_CHAIN_MODE_ECB Symetrické blokové šifry SP800-38A
CBC (řetězení bloků šifer) BCRYPT_CHAIN_MODE_CBC Symetrické blokové šifry SP800-38A
CFB (Šifrová zpětná vazba) BCRYPT_CHAIN_MODE_CFB Symetrické blokové šifry SP800-38A
CCM (Čítač s CBC) BCRYPT_CHAIN_MODE_CCM AES SP800-38C
GCM (galois/čítačový režim) BCRYPT_CHAIN_MODE_GCM AES SP800-38D

 

Poznámka

V systému Windows Vista jsou definovány pouze režimy činnosti ECB, CBC a CFB. GCM a CCM vyžadují systém Windows Vista s aktualizací Service Pack 1 (SP1) nebo Windows Server 2008.