API di crittografia Microsoft - Microsoft CryptoAPI

L' interfaccia di programmazione dell'applicazione crittografica specifica della piattaforma Microsoft Windows (nota anche come CryptoAPI , Microsoft Cryptography API , MS-CAPI o semplicemente CAPI ) è un'interfaccia di programmazione dell'applicazione inclusa nei sistemi operativi Microsoft Windows che fornisce servizi per consentire agli sviluppatori di proteggere le applicazioni basate su Windows utilizzando la crittografia . È un insieme di librerie collegate dinamicamente che fornisce un livello di astrazione che isola i programmatori dal codice utilizzato per crittografare i dati. L'API Crypto è stata introdotta per la prima volta in Windows NT 4.0 e migliorata nelle versioni successive.

CryptoAPI supporta sia a chiave pubblica e chiave simmetrica crittografia, anche se le chiavi simmetriche persistenti non sono supportati. Include funzionalità per la crittografia e la decrittografia dei dati e per l' autenticazione mediante certificati digitali . Esso include anche un crittograficamente sicuro numeri pseudo generatore di funzioni CryptGenRandom .

CryptoAPI funziona con un numero di CSP ( Cryptographic Service Providers ) installati sulla macchina. I CSP sono i moduli che svolgono il lavoro effettivo di codifica e decodifica dei dati eseguendo le funzioni crittografiche. I fornitori di HSM possono fornire un CSP che funziona con il loro hardware.

API di crittografia: prossima generazione

Windows Vista presenta un aggiornamento dell'API Crypto noto come API di crittografia: Next Generation ( CNG ). Ha una migliore fattorizzazione API per consentire alle stesse funzioni di funzionare utilizzando un'ampia gamma di algoritmi crittografici e include una serie di algoritmi più recenti che fanno parte della Suite B della National Security Agency (NSA) . È anche flessibile, con supporto per il collegamento di API crittografiche personalizzate nel runtime CNG. Tuttavia, i provider di archiviazione delle chiavi CNG non supportano ancora le chiavi simmetriche. CNG funziona sia in modalità utente che kernel e supporta anche tutti gli algoritmi della CryptoAPI. Il provider Microsoft che implementa CNG è ospitato in Bcrypt.dll.

CNG supporta anche la crittografia a curva ellittica che, poiché utilizza chiavi più corte per lo stesso livello di sicurezza previsto , è più efficiente di RSA. L'API CNG si integra con il sottosistema della smart card includendo un modulo Base Smart Card Cryptographic Service Provider (Base CSP) che incapsula l'API della smart card. I produttori di smart card devono solo rendere i loro dispositivi compatibili con questo, piuttosto che fornire una soluzione da zero.

CNG aggiunge anche il supporto per Dual_EC_DRBG , un generatore di numeri pseudocasuali definito in NIST SP 800-90A che potrebbe esporre l'utente a intercettazioni da parte della National Security Agency poiché contiene una backdoor cleptografica , a meno che lo sviluppatore non si ricordi di generare nuovi punti base con una crittografia diversa sicuro generatore di numeri pseudocasuali o un vero generatore di numeri casuali e quindi pubblicare il seme generato per rimuovere la backdoor NSA. È anche molto lento. Viene utilizzato solo quando richiesto esplicitamente.

CNG sostituisce anche il PRNG predefinito con CTR_DRBG utilizzando AES come cifrario a blocchi, perché il precedente RNG che è definito nell'ormai sostituito FIPS 186-2 si basa su DES o SHA-1 , entrambi che sono stati violati. CTR_DRBG è uno dei due algoritmi in NIST SP 800-90 approvato da Schneier , l'altro è Hash_DRBG.

Guarda anche

Riferimenti

link esterno