stringtranslate.com

Microsoft CriptoAPI

La interfaz de programación de aplicaciones criptográficas específica de la plataforma Microsoft Windows (también conocida como CryptoAPI , Microsoft Cryptography API , 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 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 en Windows NT 4.0 [1] y se mejoró en versiones posteriores.

CryptoAPI admite criptografía de clave pública y de clave simétrica , aunque no se admiten claves simétricas persistentes. Incluye funcionalidad para cifrar y descifrar datos y para autenticación mediante certificados digitales . También incluye una función de generación 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 realizando 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 presenta una actualización de Crypto API conocida como Cryptography API: Next Generation ( CNG ). Tiene una mejor factorización 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 y ofrece soporte para conectar API criptográficas personalizadas en el tiempo de ejecución de CNG. Sin embargo, los proveedores de almacenamiento de claves de CNG todavía no admiten claves simétricas. [3] CNG funciona tanto en modo de usuario como de kernel , y también admite todos los algoritmos de CryptoAPI. El proveedor de Microsoft que implementa CNG se encuentra en Bcrypt.dll.

CNG también admite criptografía de curva elíptica que, debido a que utiliza claves más cortas para el mismo nivel esperado de seguridad , es más eficiente que RSA. [4] La API de CNG se integra con el subsistema de tarjetas inteligentes al incluir un módulo de Proveedor de servicios criptográficos de tarjetas inteligentes base (CSP base) que encapsula la API de tarjetas inteligentes. Los fabricantes de tarjetas inteligentes sólo tienen que hacer que sus dispositivos sean compatibles con esto, en lugar de ofrecer 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 por parte de la Agencia de Seguridad Nacional ya que contiene una puerta trasera cleptográfica , a menos que el desarrollador recuerde generar nuevos puntos base con un generador de números pseudoaleatorios criptográficamente seguro diferente o un generador de números aleatorios verdadero y luego publicar la semilla generada para eliminar la puerta trasera de la NSA. También es muy lento. [6] Sólo se utiliza cuando se solicita explícitamente.

CNG también reemplaza el PRNG predeterminado con CTR_DRBG usando AES como cifrado de bloque, porque el RNG anterior que se define en el FIPS 186-2 ahora reemplazado se basa en DES o SHA-1 , los cuales se han roto. [7] CTR_DRBG es uno de los dos algoritmos en NIST SP 800-90 respaldado por Schneier , el otro es Hash_DRBG. [6]

Ver también

Referencias

  1. ^ Hurgando debajo del capó: la visión de un programador de Windows NT 4.0
  2. ^ Suite B Archivado el 7 de febrero de 2009 en la Wayback Machine.
  3. ^ Almacenamiento y recuperación de claves, Microsoft
  4. ^ El caso de la criptografía de curva elíptica, NSA
  5. ^ Schneier, Bruce (17 de diciembre de 2007). "Dual_EC_DRBG agregado a Windows Vista". Schneier sobre seguridad . Consultado el 13 de enero de 2010 .
  6. ^ ab 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 .
  7. ^ "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