stringtranslate.com

API criptográfica de Microsoft

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 en los sistemas operativos Microsoft Windows que proporciona servicios para permitir a los desarrolladores proteger las aplicaciones basadas en Windows mediante 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.

Descripción general

CryptoAPI admite tanto el algoritmo de clave simétrica como la criptografía de clave pública , aunque no admite claves simétricas persistentes. Incluye funcionalidad para cifrar y descifrar datos y para la autenticación mediante certificados digitales . También incluye una función de generación de números pseudoaleatorios criptográficamente segura, CryptGenRandom . [ cita requerida ]

CryptoAPI funciona con varios proveedores de servicios criptográficos (CSP ) instalados en la máquina. Los CSP son los módulos que realizan el trabajo real de codificación y decodificación de datos mediante la ejecución de funciones criptográficas. Los proveedores de HSM pueden proporcionar un CSP que funcione con su hardware.

API de criptografía: próxima generación

Windows Vista incluye una actualización de la API criptográfica 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 al entorno de ejecución de CNG. Sin embargo, los proveedores de almacenamiento de claves de CNG aún 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. [4] El proveedor de Microsoft que implementa CNG está alojado 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. [5] La API de CNG se integra con el subsistema de tarjeta inteligente al incluir un módulo de Proveedor de servicios criptográficos de tarjeta inteligente base (Base Smart Card Cryptographic Service Provider, CSP base) que encapsula la API de tarjeta inteligente. 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 , [6] 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 verdaderamente aleatorios y luego publique la semilla generada para eliminar la puerta trasera de la NSA. También es muy lento. [7] Solo se usa cuando se lo solicita explícitamente.

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

Véase también

Referencias

  1. ^ Husmeando bajo el capó: la visión de un programador sobre Windows NT 4.0
  2. ^ Suite B Archivado el 7 de febrero de 2009 en Wayback Machine.
  3. ^ Almacenamiento y recuperación de claves, Microsoft
  4. ^ "¿Qué es una criptomoneda?" . Consultado el 24 de octubre de 2024 .
  5. ^ El caso de la criptografía de curva elíptica, NSA
  6. ^ Schneier, Bruce (17 de diciembre de 2007). "Dual_EC_DRBG Added to Windows Vista". Schneier on Security . Consultado el 13 de enero de 2010 .
  7. ^ ab Schneier, Bruce (15 de noviembre de 2007). "La extraña historia de Dual_EC_DRBG". Schneier on Security . Consultado el 12 de enero de 2010 .
  8. ^ "FIPS PUB 186-2" (PDF) . Normas federales de procesamiento de información . Instituto Nacional de Normas y Tecnología . 27 de enero de 2000 . Consultado el 13 de enero de 2010 .

Enlaces externos