La interfaz de programación de aplicaciones criptográficas específica de la plataforma Microsoft Windows (también conocida como CryptoAPI , API de criptografía de Microsoft , MS-CAPI o simplemente CAPI ) es una interfaz de programación de aplicaciones incluida con los sistemas operativos Microsoft Windows que proporciona servicios para permitir a los desarrolladores proteger las aplicaciones basadas en Windows. utilizando criptografía . Es un conjunto de bibliotecas vinculadas dinámicamente que proporciona una capa de abstracción que aísla a los programadores del código utilizado para cifrar los datos. La Crypto API se introdujo por primera vez enWindows NT 4.0 [1] y mejorado en versiones posteriores.
CryptoAPI soporta tanto de clave pública y clave simétrica criptografía, a pesar de las claves simétricas persistentes no son compatibles. Incluye funcionalidad para cifrar y descifrar datos y para autenticación mediante certificados digitales . También incluye una función generadora de números pseudoaleatorios criptográficamente segura CryptGenRandom .
CryptoAPI funciona con varios CSP ( proveedores de servicios criptográficos ) instalados en la máquina. Los CSP son los módulos que realizan el trabajo real de codificar y decodificar datos al realizar las funciones criptográficas. Los proveedores de HSM pueden suministrar un CSP que funcione con su hardware.
API de criptografía: próxima generación
Windows Vista incluye una actualización de Crypto API conocida como Cryptography API: Next Generation ( CNG ). Tiene una mejor factorización de API para permitir que las mismas funciones funcionen utilizando una amplia gama de algoritmos criptográficos e incluye una serie de algoritmos más nuevos que forman parte de la Suite B de la Agencia de Seguridad Nacional (NSA) . [2] También es flexible, con soporte para conectar API criptográficas personalizadas en el tiempo de ejecución de CNG. Sin embargo, los proveedores de almacenamiento de claves CNG aún no admiten claves simétricas. [3] CNG funciona tanto en modo de usuario como de kernel , y también es compatible con todos los algoritmos de CryptoAPI. El proveedor de Microsoft que implementa CNG se encuentra en Bcrypt.dll.
CNG también admite la criptografía de curva elíptica que, debido a que utiliza claves más cortas para el mismo nivel de seguridad esperado , es más eficiente que RSA. [4] La API CNG se integra con el subsistema de tarjetas inteligentes al incluir un módulo Proveedor de servicios criptográficos de tarjetas inteligentes base (Base CSP) que encapsula la API de tarjetas inteligentes. Los fabricantes de tarjetas inteligentes solo tienen que hacer que sus dispositivos sean compatibles con esto, en lugar de proporcionar una solución desde cero.
CNG también agrega soporte para Dual_EC_DRBG , [5] un generador de números pseudoaleatorios definido en NIST SP 800-90A que podría exponer al usuario a escuchas de la Agencia de Seguridad Nacional ya que contiene una puerta trasera cleptográfica , a menos que el desarrollador recuerde generar nuevos puntos base un generador de números pseudoaleatorios criptográficamente seguro diferente o un generador de números aleatorios verdadero y luego publique la semilla generada para eliminar la puerta trasera de la NSA. También es muy lento. [6] Solo se utiliza cuando se solicita explícitamente.
CNG también reemplaza el PRNG predeterminado con CTR_DRBG usando AES como el cifrado de bloque, porque el RNG anterior que se define en el FIPS 186-2 ahora reemplazado se basa en DES o SHA-1 , ambos que se han roto. [7] CTR_DRBG es uno de los dos algoritmos en NIST SP 800-90 respaldados por Schneier , el otro es Hash_DRBG. [6]
Ver también
- CAPICOM
- DPAPI
- Sistema de cifrado de archivos
- Criptografía de clave pública
- Proveedor de servicios criptográficos
- PKCS # 11
- API de cifrado (Linux)
Referencias
- ^ Hurgando bajo el capó: la vista de un programador de Windows NT 4.0
- ^ Suite B Archivado el 7 de febrero de 2009 en la Wayback Machine.
- ^ Almacenamiento y recuperación de claves, Microsoft
- ^ El caso de la criptografía de curva elíptica, NSA
- ^ Schneier, Bruce (17 de diciembre de 2007). "Dual_EC_DRBG agregado a Windows Vista" . Schneier sobre seguridad . Consultado el 13 de enero de 2010 .
- ^ a b Schneier, Bruce (15 de noviembre de 2007). "La extraña historia de Dual_EC_DRBG" . Schneier sobre seguridad . Consultado el 12 de enero de 2010 .
- ^ "FIPS PUB 186-2" (PDF) . Estándares federales de procesamiento de información . Instituto Nacional de Estándares y Tecnología . 27 de enero de 2000 . Consultado el 13 de enero de 2010 .
enlaces externos
- Referencia de criptografía en MSDN
- Microsoft CAPI en CryptoDox