Microsoft Windows Қауіпсіздік API: CryptoAPI және CNG
Microsoft CryptoAPI
Microsoft Windows CryptoAPI: қауіпсіздік үшін криптографиялық API. Деректерді шифрлау, растау, цифрлық сертификаттарды қолдау. Windows NT 4.0-тан бастап қолданылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Қолданба бағдарламалау интерфейсі
Application programming interface
Microsoft Windows платформасына тән криптографиялық қолданба бағдарламалау интерфейсі (Cryptographic Application Programming Interface) (CryptoAPI, Microsoft Cryptography API, MS CAPI немесе жай CAPI) – Microsoft Windows операциялық жүйелеріне енгізілген қолданба бағдарламалау интерфейсі. Бұл интерфейс бағдарламашыларға криптографияны пайдалану арқылы Windows негізіндегі қолданбаларды қорғауға мүмкіндік беретін қызметтерді ұсынады. Бұл – бағдарламашыларды деректерді шифрлау үшін қолданылатын кодтан оқшаулайтын абстракция қабатын қамтамасыз ететін динамикалық байланысты кітапханалар жиынтығы. Crypto API алғаш рет Windows NT 4.0 нұсқасында пайда болды және кейінгі нұсқаларда жақсартылды. CryptoAPI ашық кілт және симметриялық кілт криптографиясын қолдайды, бірақ тұрақты симметриялық кілттерді қолдамайды. Ол деректерді шифрлау және шифрлауды шешу, сондай-ақ цифрлық сертификаттарды пайдалану арқылы аутентификациялау мүмкіндіктерін қамтиды. Сондай-ақ, криптографиялық тұрғыдан қауіпсіз псевдокездейсоқ сан генераторы функциясы CryptGenRandom да бар. CryptoAPI машинаға орнатылған бірнеше CSP (криптографиялық қызмет провайдерлері)мен жұмыс істейді. CSP – криптографиялық функцияларды орындау арқылы деректерді кодтау және декодтау жұмысын атқаратын модульдер. HSM өндірушілері өздерінің аппараттық құралдарымен жұмыс істейтін CSP-ны ұсына алады.
The Microsoft Windows platform specific Cryptographic Application Programming Interface (also known variously as CryptoAPI, Microsoft Cryptography API, MS CAPI or simply CAPI) is an application programming interface included with Microsoft Windows operating systems that provides services to enable developers to secure Windows based applications using cryptography. It is a set of dynamically linked libraries that provides an abstraction layer which isolates programmers from the code used to encrypt the data. The Crypto API was first introduced in Windows NT 4.0 and enhanced in subsequent versions. CryptoAPI supports both public key and symmetric key cryptography, though persistent symmetric keys are not supported. It includes functionality for encrypting and decrypting data and for authentication using digital certificates. It also includes a cryptographically secure pseudorandom number generator function CryptGenRandom. CryptoAPI works with a number of CSPs (Cryptographic Service Providers) installed on the machine. CSPs are the modules that do the actual work of encoding and decoding data by performing the cryptographic functions. Vendors of HSMs may supply a CSP which works with their hardware.
Криптографиялық API: Келесі буын
Windows Vista жүйесінде Crypto API-ге Cryptography API: Next Generation (CNG) деп аталатын жаңарту енгізілді. Ол шифрлау алгоритмдерінің кең ауқымын қолдана отырып, бірдей функцияларды орындауға мүмкіндік беретін жақсартылған API құрылымына ие және Ұлттық қауіпсіздік агенттігінің (NSA) B жинағына кіретін бірқатар жаңа алгоритмдерді қамтиды. CNG сонымен қатар икемді, ол CNG орындалу уақытына арнайы криптографиялық API-лерді қосу мүмкіндігін ұсынады. Дегенмен, CNG кілттік сақтағыштары әлі де симметриялық кілттерді қолдамайды. CNG пайдаланушы және ядро режимдерінде жұмыс істейді және CryptoAPI-дің барлық алгоритмдерін қолдайды. CNG-ді жүзеге асыратын Microsoft провайдері Bcrypt.dll файлында орналасқан. CNG эллиптік қисық криптографиясын да қолдайды, ол бірдей қауіпсіздік деңгейі үшін RSA-ға қарағанда тиімдірек, себебі қысқа кілттерді пайдаланады. CNG API смарт-карталармен интеграция үшін Base Smart Card Cryptographic Service Provider (Base CSP) модулін қамтиды, ол смарт-карта API-ін қамтиды. Смарт-карта өндірушілері өз құрылғыларын осы модульмен үйлесімді етуі керек, жаңадан шешім іздеудің қажеті жоқ. CNG сонымен қатар NIST SP 800 90A стандартында анықталған Dual EC DRBG-ді қолдайды, ол Ұлттық қауіпсіздік агенттігінің тыңдауына мүмкіндік беретін клептографиялық артқы есікке ие, егер әзірлеуші жаңа базалық нүктелерді басқа криптографиялық тұрақты псевдокездейсоқ сандар генераторымен немесе нағыз кездейсоқ сандар генераторымен жасап, кейін NSA артқы есігін жою үшін пайда болған тұқымды жарияламайынша. Бұл алгоритм сонымен қатар өте баяу. Ол тек тікелей шақырылған жағдайда ғана қолданылады. CNG сонымен қатар әдепкі PRNG-ді AES блоктық шифрі ретінде қолданылатын CTR DRBG-мен алмастырады, себебі бұрынғы RNG, енді қолданылмайтын FIPS 186-2 стандартында DES немесе SHA-1 негізінде құрылған, ал екеуі де бұзылған. CTR DRBG – Schneier ұсынған NIST SP 800 90 стандартындағы екі алгоритмнің бірі, екіншісі Hash DRBG.
Windows Vista features an update to the Crypto API known as Cryptography API: Next Generation (CNG). It has better API factoring to allow the same functions to work using a wide range of cryptographic algorithms, and includes a number of newer algorithms that are part of the National Security Agency (NSA) Suite B. It is also flexible, featuring support for plugging custom cryptographic APIs into the CNG runtime. However, CNG Key Storage Providers still do not support symmetric keys. CNG works in both user and kernel mode, and also supports all of the algorithms from the CryptoAPI. The Microsoft provider that implements CNG is housed in Bcrypt. dll. CNG also supports elliptic curve cryptography which, because it uses shorter keys for the same expected level of security, is more efficient than RSA. The CNG API integrates with the smart card subsystem by including a Base Smart Card Cryptographic Service Provider (Base CSP) module which encapsulates the smart card API. Smart card manufacturers just have to make their devices compatible with this, rather than provide a from scratch solution. CNG also adds support for Dual EC DRBG, a pseudorandom number generator defined in NIST SP 800 90A that could expose the user to eavesdropping by the National Security Agency since it contains a kleptographic backdoor, unless the developer remembers to generate new base points with a different cryptographically secure pseudorandom number generator or a true random number generator and then publish the generated seed in order to remove the NSA backdoor. It is also very slow. It is only used when called for explicitly. CNG also replaces the default PRNG with CTR DRBG using AES as the block cipher, because the earlier RNG which is defined in the now superseded FIPS 186 2 is based on either DES or SHA 1, both which have been broken. CTR DRBG is one of the two algorithms in NIST SP 800 90 endorsed by Schneier, the other being Hash DRBG.