Cryptographic Agility
Uno dei miglioramenti delle chiavi CNG è l’agilità crittografica, a volte chiamata anche Agnosticismo crittografico. La Conversione dei protocolli con il protocollo Secure Sockets Layer (SSL) o il transport_layer_security (TLS), CMS (S/MIME), IPsec, Kerberos e così via, a CNG, tuttavia, erano necessari per rendere questa abilità effefttiva.
A livello di CNG, era necessario fornire la sostituzione e l’identificabilità per tutti i tipi di algoritmo (funzioni hash simmetriche, asimmetriche,), la generazione casuale di numeri e altre funzioni di utilità. Le modifiche a livello di protocollo sono più significative, perché in molti casi il protocollo API necessario per aggiungere l'algoritmo di selezione e altre opzioni di flessibilità che non esistevano in precedenza.
Il supporto CNG è disponibile a partire da Windows Vista e viene posizionato per sostituire in futuro le attuali CryptoAPI che si trovano in tutto lo stack del software Microsoft.
Dimatek aggiunge nelle sue Api le funzionalità e i vantaggi CNG, nascondendo ai programmatori le sue complessità di basso livello:
Inoltre, CNG include anche il suporto per tutta la necessaria suite B di algoritmi incluso anche elliptic curve cryptography (ECC). Tutte le funzioni esistenti di dimatek che supportano le CryptoAPI continueranno comunque a funzionare regolarmente come prima.
Certification and Compliance
CNG ha la certificazione Federal Information Processing Standards (FIPS) 140-2 livello 2 insieme con i criteri di valutazione sulle piattaforme selezionate. Altre piattaforme avranno oil livello di certiicazione FIPS 140-2 livello 1. Queste piattaforme avranno la stessa implementazione di CNG, solo con diverse certificazioni.
CNG è conforme ai requisiti di criteri di memorizzazione e l'utilizzo di chiavi a lungo termine attraverso un processo sicuro.
Support Suite B
Una caratteristica importante di CNG è il supporto per gli algoritmi Suite B. Nel febbraio del 2005, la National Security Agency (NSA) degli Stati Uniti ha annunciato un accordo segreti per un insieme coordinato di crittografia simmetrica, asimmetrica (noto anche come key exchange), funzioni di firma e l'hash digitale per utilizzo futuro del governo U.S. chiamato Suite b.
La NSA ha annunciato che le implementazioni certificate Suite possono e saranno utilizzate per la protezione delle informazioni designati a informazioni private che, in passato sono state descritte come Top segret, e Informazioni private. A causa di ciò, il supporto Suite B è molto importante per i fornitori di applicazioni software e gli integratori di sistema per Microsoft.
Tutti gli algoritmi Suite B sono noti al pubblico. Esse sono state sviluppate di fuori dell'ambito del segreto governativo storicamente associato allo sviluppo di algoritmo di crittografia. In questo stesso lasso di tempo, alcuni paesi europei hanno proposto gli stessi requisiti Suite B per proteggere le loro informazioni
La crittografia Suite B raccomanda l’uso della curva ellittica Diffie-Hellman (ECDH) in molti protocolli esistenti come Internet Key Exchange (IKE, principalmente usato per IPsec), protezione del livello di trasporto (TLS) e Secure MIME (S/MIME).
CNG Include il supporto per la Suite B che si estende a tutti i necessari algoritmi: AES (tutte le dimensioni chiave), la famiglia SHA-2 (SHA-256, SHA-384 e SHA-512) degli algoritmi di hash, ECDH e la curva ellittica ECDSA (DSA) nel corso del NIST-standard prime curve P-256, P-384 e P-521. Le Curve Binarie, curve Koblitz, curve prime personalizzate e curva ellittica Menezes-Qu-Vanstone (ECMQV) non sono supportate dagli algoritmi dei provider Microsoft algoritmo incluso con Windows Vista e quindi nenache Dimatek per ora le supporta.
Legacy Support
Dimatek CNG fornisce il supporto per il set corrente di algoritmi in CryptoAPI 1.0. Ogni algoritmo che attualmente è supportato in CryptoAPI 1.0 continuerà a essere supportato in CNG e quindi anche con DIMATEK.
Kernel Mode Support
CNG supporta la crittografia in modalità kernel. Le stesse API vengono utilizzate in modalità utente del kernel e a sostenere appieno le funzionalità di crittografia. Sia SSL/TLS e IPSec operare in modalità kernel oltre ai processi di avvio che utilizzeranno CNG. Non tutte le funzioni CNG possano essere chiamate da modalità kernel. L'argomento di riferimento per le funzioni che non può essere chiamato da modalità kernel intende dichiarare esplicitamente che la funzione non può essere chiamata da modalità kernel. In caso contrario, tutte le funzioni CNG possano essere chiamate in modalità kernel se il chiamante è in esecuzione PASSIVE_LEVEL. Inoltre, alcune funzioni CNG modalità kernel possono essere chiamate a DISPATCH_LEVEL IRQL, a seconda delle funzionalità del provider.
Il supporto della sicurezza del kernel per Microsoft (Ksecdd.sys) è un obiettivo generale, il modulo crittografico, basato su software residente a livello di modalità kernel di Windows. Ksecdd.sys viene eseguito come una modalità kernel esportabile e fornisce servizi di crittografia mediante loro interfacce documentate ai componenti del kernel. L0unico algoritmo provider di Microsoft non supportato da Ksecdd.sys è DSA.
Windows Server 2008 and Windows Vista: CNG non supporta gli algoritmi a caldo fornitri da provider in modalità kernel. Gli algoritmi crittografici sono solo supportati e disponibili in modalità kernel sono implementazioni fornite da Microsoft tramite l'API CNG in modalità kernel.
Auditing
Per rispettare alcuni requisiti “Criteri Comuni” oltre a fornire sicurezza globale, molte azioni che accadono a livello CNG sono verificate nel software di archiviazione delle chiavi provider Microsoft (KSP). La KSP Microsoft aderisce alle linee guida seguenti per creare record nel log di protezione:
• Chiave e gli errori di generazione della coppia chiave, inclusi errori di verifica automatico, devono essere controllati..
• Chiave di importazione ed esportazione devono essere controllati..
• I Fallimenti nella distruzione della chiave devono essere controllati.
• Chiavi persistenti devono essere controllati quando essi sono scritte e lette da file.
• Gli errori di controllo di coerenza Pair-Wise devono essere controllati.
• Errori di convalida chiave segreta, se ci sono, devono essere controllati, ad esempio, controllo parità sulle chiavi 3DES.
• Errori in crittografia, decrittografia, hash, firma, verifica, scambio di chiave, e generazione di numeri casuali dovrà essere controllata.
• Cryptographic self-tests devono essere controllati.
In generale, se una chiave non dispone di un nome, è una chiave effimera. Una chiave effimera non persiste, e la KSP Microsoft non consente di generare i record di controllo per le chiavi effimere. La Microsoft KSP genera record di verifica in modalità utente solo nel processo LSA. Nessun record di controllo è generato da CNG in modalità kernel. Gli amministratori devono configurare i criteri di controllo per ottenere tutti i registri di verifica KSP dal Registro di protezione. Un amministratore deve eseguire la seguente riga di comando per configurare ulteriori verifiche generati da KSPs:
auditpol /set /subcategory:"other system events" /success:enable /failure:enable
Replaceable Random Number Generators
Un altro miglioramento che CNG fornisce è la possibilità di sostituire il valore predefinito del generatore di numeri casuali (RNG). Da CryptoAPI, è possibile fornire un'alternativa RNG come parte di un provider del servizio di crittografia (CSP, Cryptographic Service Provider), ma non è possibile reindirizzare i DSN di base di Microsoft per utilizzare un altro RNG. CNG rende possibile specificare in modo esplicito un particolare RNG da utilizzare in particolari chiamate.
Thread Safety
Tutte le funzioni all'interno CNG sono progettate per supportare l'esecuzione con multithreading/simultanea. Alcune funzioni CryptoAPI sono thread-safe mentre altri non sono, e spesso è difficile prevedere quali API possono essere utilizzate in modo sicuro in un ambiente con multithreading.
Mode of Operation
CNG supporta 3 modalità operative che possono essere usate con symmetric block ciphers attraverso le api di through the encryption APIs. These modes and their supportability are listed in the following table. The mode of operation can be changed by setting the BCRYPT_CHAINING_MODE property for the algorithm provider by using the BCryptSetProperty function.
Mode of operation BCRYPT_CHAINING_MODE value Algorithms Standard
CNG supporta tre modalità operative che possono essere utilizzate con cifratura simmetrica tramite l'API di crittografia. Queste modalità e le loro capacità di supporto sono elencati nella tabella riportata di seguito. La modalità di funzionamento può essere modificata impostando la propproprietà BCRYPT_CHAINING_MODE per il provider dell'algoritmo utilizzando la funzione DmtBCryptSetProperty
ECB (Electronic Codebook) BCRYPT_CHAIN_MODE_ECB Symmetric block ciphers SP800-38A
CBC (Cipher Block Chaining) BCRYPT_CHAIN_MODE_CBC Symmetric block ciphers SP800-38A
CFB (Cipher Feedback) BCRYPT_CHAIN_MODE_CFB Symmetric block ciphers SP800-38A
CCM (Counter with CBC) BCRYPT_CHAIN_MODE_CCM AES SP800-38C
GCM (Galois/Counter Mode) BCRYPT_CHAIN_MODE_GCM AES SP800-38D
Note solo i modi ECB, CBC, e CFB son odefiniti in Windows Vista. GCM e CCM richiedono Windows Vista con Service Pack 1 (SP1), windows 7 o Windows Server 2008.