마이크로소프트 크립토API

마이크로소프트 윈도우 플랫폼 특정 암호화 응용 프로그래밍 인터페이스(Cryptographic Application Programming Interface, 일반적으로 크립토API, CryptoAPI, Microsoft Cryptography API, MS-CAPI 또는 단순히 CAPI로도 알려져 있음)는 마이크로소프트 윈도우 운영체제에 포함된 응용 프로그래밍 인터페이스로, 개발자가 암호학을 사용하여 윈도우 기반 응용 프로그램을 보호할 수 있도록 서비스를 제공한다. 이는 데이터를 암호화하는 데 사용되는 코드로부터 프로그래머를 격리시키는 추상화 계층을 제공하는 동적 링크 라이브러리 세트이다. 크립토 API는 윈도우 95 OSR2https://www.geoffchappell.com/notes/windows/archive/cryptoapi/index.htm 및 윈도우 NT 4.0Poking Around Under the Hood: A Programmer's View of Windows NT 4.0에서 처음 도입되었으며 이후 버전에서 향상되었다.

크립토API는 영구적인 대칭 키는 지원하지 않지만 공개 키 및 대칭 키 암호화를 모두 지원한다. 데이터 암호화 및 복호화 기능과 디지털 인증서를 사용한 인증 기능이 포함되어 있다. 또한 암호학적으로 안전한 유사난수 생성기 함수 CryptGenRandom도 포함되어 있다.

크립토API는 컴퓨터에 설치된 여러 CSP(암호화 서비스 공급자)와 함께 작동한다. CSP는 암호화 기능을 수행하여 데이터를 인코딩하고 디코딩하는 실제 작업을 수행하는 모듈이다. HSM 공급업체는 해당 하드웨어와 함께 작동하는 CSP를 제공할 수 있다.

암호화 API: 차세대
윈도우 비스타는 Cryptography API: Next Generation (CNG)으로 알려진 Crypto API 업데이트를 특징으로 한다. 이는 더 나은 API 분할을 통해 동일한 함수가 다양한 암호화 알고리즘을 사용하여 작동할 수 있도록 하며, 미국 국가안보국(NSA) 스위트 B의 일부인 여러 최신 알고리즘을 포함한다.Suite B  또한 CNG 런타임에 사용자 지정 암호화 API를 플러그인하는 것을 지원하는 유연성을 갖추고 있다. 그러나 CNG 키 저장 공급자는 여전히 대칭 키를 지원하지 않는다.Key Storage and Retrieval, Microsoft CNG는 사용자 및 커널 모드 모두에서 작동하며, 크립토API의 모든 알고리즘도 지원한다. CNG를 구현하는 마이크로소프트 공급자는 Bcrypt.dll에 저장된다.

CNG는 또한 타원 곡선 암호 방식을 지원하는데, 이는 동일한 예상 보안 수준에 대해 더 짧은 키를 사용하므로 RSA보다 효율적이다.The Case for Elliptic Curve Cryptography, NSA CNG API는 스마트 카드 API를 캡슐화하는 기본 스마트 카드 암호화 서비스 공급자(Base CSP) 모듈을 포함하여 스마트카드 하위 시스템과 통합된다. 스마트카드 제조업체는 처음부터 해결책을 제공하는 대신 자사 장치가 이에 호환되도록 하기만 하면 된다.

CNG는 또한 Dual_EC_DRBG에 대한 지원을 추가하는데, 이는 NIST SP 800-90A에 정의된 유사난수 생성기로, 개발자가 다른 암호학적으로 안전한 유사난수 생성기 또는 진정 난수 생성기로 새로운 기본점을 생성하고 NSA 백도어를 제거하기 위해 생성된 시드를 게시하는 것을 잊지 않는 한, 클렙토그래피 백도어를 포함하고 있기 때문에 사용자가 미국 국가안보국에 의한 도청에 노출될 수 있다. 또한 매우 느리다. 이는 명시적으로 호출될 때만 사용된다.

CNG는 또한 기본 PRNG를 AES를 블록 암호로 사용하는 CTR_DRBG로 대체하는데, 이전의 RNG(현재는 폐지된 FIPS 186-2에 정의됨)는 DES 또는 SHA-1에 기반을 두었으며, 둘 다 해독되었기 때문이다. CTR_DRBG는 NIST SP 800-90에 있는 두 가지 알고리즘 중 하나로, 슈나이어가 지지하며, 다른 하나는 Hash_DRBG이다.

 같이 보기 

 CAPICOM
 DPAPI
 암호화 파일 시스템
 공개 키 암호 방식
 암호화 서비스 공급자
 PKCS#11
 크립토 API (리눅스)

 각주 

 외부 링크 
 MSDN의 암호화 참조
 CryptoDox의 마이크로소프트 CAPI

분류:암호 소프트웨어
분류:마이크로소프트 윈도우 보안 기술
분류:마이크로소프트 API