Кіріспе

Қолданба бағдарламалау интерфейсі

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-ны ұсына алады.

Криптографиялық 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.