Microsoft CryptoAPI — Microsoft CryptoAPI

Specyficzny dla platformy Microsoft Windows interfejs programowania aplikacji kryptograficznych (znany również jako CryptoAPI , Microsoft Cryptography API , MS-CAPI lub po prostu CAPI ) to interfejs programowania aplikacji dołączony do systemów operacyjnych Microsoft Windows , który zapewnia usługi umożliwiające programistom zabezpieczanie aplikacji opartych na systemie Windows za pomocą kryptografii . Jest to zestaw dynamicznie powiązanych bibliotek, który zapewnia warstwę abstrakcji, która izoluje programistów od kodu używanego do szyfrowania danych. Interfejs Crypto API został po raz pierwszy wprowadzony w systemie Windows NT 4.0 i ulepszony w kolejnych wersjach.

CryptoAPI obsługuje zarówno klucza publicznego i klucza symetrycznego kryptografii, chociaż uporczywe klucze symetryczne nie są obsługiwane. Zawiera funkcje szyfrowania i deszyfrowania danych oraz uwierzytelniania przy użyciu certyfikatów cyfrowych . Zawiera również kryptograficznie bezpieczną funkcję generatora liczb pseudolosowych CryptGenRandom .

CryptoAPI współpracuje z wieloma dostawcami usług kryptograficznych (CSP ) zainstalowanymi na komputerze. Dostawcy CSP to moduły, które wykonują rzeczywistą pracę polegającą na kodowaniu i dekodowaniu danych poprzez wykonywanie funkcji kryptograficznych. Dostawcy HSM mogą dostarczać dostawcę CSP, który współpracuje z ich sprzętem.

Kryptograficzne API: następna generacja

System Windows Vista zawiera aktualizację interfejsu Crypto API znanego jako Cryptography API: Next Generation ( CNG ). Ma lepsze faktoring API, aby umożliwić działanie tych samych funkcji przy użyciu szerokiej gamy algorytmów kryptograficznych i zawiera szereg nowszych algorytmów, które są częścią pakietu B Narodowej Agencji Bezpieczeństwa (NSA) . Jest również elastyczny i obsługuje podłączanie niestandardowych interfejsów API kryptograficznych do środowiska wykonawczego CNG. Jednak dostawcy magazynu kluczy CNG nadal nie obsługują kluczy symetrycznych. CNG działa zarówno w trybie użytkownika, jak i jądra , a także obsługuje wszystkie algorytmy z CryptoAPI. Dostawca Microsoft, który implementuje CNG, znajduje się w Bcrypt.dll.

CNG obsługuje również kryptografię krzywych eliptycznych, która, ponieważ używa krótszych kluczy dla tego samego oczekiwanego poziomu bezpieczeństwa , jest bardziej wydajna niż RSA. Interfejs API CNG integruje się z podsystemem kart inteligentnych poprzez włączenie modułu Base Smart Card Cryptographic Service Provider (Base CSP), który zawiera interfejs API kart inteligentnych. Producenci kart inteligentnych muszą po prostu zapewnić zgodność swoich urządzeń z tym, zamiast oferować rozwiązanie od zera.

CNG dodaje również wsparcie dla Dual_EC_DRBG , generatora liczb pseudolosowych zdefiniowanego w NIST SP 800-90A, który może narazić użytkownika na podsłuchiwanie przez Agencję Bezpieczeństwa Narodowego, ponieważ zawiera backdoora kleptograficznego , chyba że programista pamięta o wygenerowaniu nowych punktów bazowych z innym kryptograficznie zabezpiecz generator liczb pseudolosowych lub prawdziwy generator liczb losowych, a następnie opublikuj wygenerowany seed w celu usunięcia backdoora NSA. Jest też bardzo powolny. Jest używany tylko na wyraźne żądanie.

CNG zastępuje również domyślny PRNG CTR_DRBG, używając AES jako szyfru blokowego, ponieważ wcześniejszy RNG, który jest zdefiniowany w zastąpionym obecnie FIPS 186-2, jest oparty na DES lub SHA-1 , które zostały złamane. CTR_DRBG jest jednym z dwóch algorytmów w NIST SP 800-90 wspieranym przez firmę Schneier , drugim jest Hash_DRBG.

Zobacz też

Bibliografia

Linki zewnętrzne