Características de CNG

CNG tiene las siguientes características.

Agilidad criptográfica

Una de las propuestas de valor clave de CNG es la agilidad criptográfica, a veces denominada independiente criptográfica. La conversión de protocolos como protocolo de capa de sockets seguros (SSL) o seguridad de la capa de transporte (TLS), CMS (S/MIME), IPsec, Kerberos, etc., a CNG, sin embargo, era necesario para que esta capacidad fuera valiosa. En el nivel de CNG, era necesario proporcionar sustitución y detectabilidad para todos los tipos de algoritmo (simétricas, asimétricas, funciones hash), generación de números aleatorios y otras funciones de utilidad. Los cambios en el nivel de protocolo son más significativos porque, en muchos casos, las API de protocolo necesitaban agregar selección de algoritmos y otras opciones de flexibilidad que no existían anteriormente.

CNG está disponible primero en Windows Vista y se coloca para reemplazar los usos existentes de CryptoAPI en toda la pila de software de Microsoft. Los desarrolladores de terceros encontrarán muchas características nuevas en CNG, entre las que se incluyen:

  • Un nuevo sistema de configuración criptográfica, que admite una mejor agilidad criptográfica.
  • Abstracción más específica para el almacenamiento de claves (y separación del almacenamiento de las operaciones de algoritmo).
  • Aislamiento de procesos para operaciones con claves a largo plazo.
  • Generadores de números aleatorios reemplazables.
  • Alivio de las restricciones de firma de exportación.
  • Seguridad para subprocesos en toda la pila.
  • API criptográfica en modo kernel.

Además, CNG incluye compatibilidad con todos los algoritmos de Suite B necesarios, incluida la criptografía de curva elíptica (ECC). Las aplicaciones CryptoAPI existentes seguirán funcionando a medida que CNG esté disponible.

Certificación y cumplimiento

CNG se valida en los estándares federales de procesamiento de información (FIPS) 140-2 y forma parte del objetivo de evaluación para la certificación criterios comunes de Windows. CNG se diseñó para ser utilizable como componente en un sistema validado de nivel 2 de FIPS.

CNG cumple los requisitos de criterios comunes almacenando y usando claves de larga duración en un proceso seguro.

Compatibilidad con Suite B

Una característica importante de CNG es su compatibilidad con los algoritmos de Suite B. En febrero de 2005, la Agencia Nacional de Seguridad (NSA) de la Estados Unidos anunció un conjunto coordinado de cifrado simétrico, acuerdo secreto asimétrico (también conocido como intercambio de claves), firmas digitales y funciones hash para el uso futuro del gobierno estadounidense llamado Suite B. La NSA ha anunciado que las implementaciones certificadas de Suite B pueden y se usarán para la protección de la información designada como Top Secret, Secret e información privada que, en el pasado se describió como Confidencial-Pero-Sin clasificar. Por este motivo, el soporte técnico de Suite B es muy importante para los proveedores de software de aplicaciones e integradores de sistemas, así como para Microsoft.

Todos los algoritmos de Suite B son conocidos públicamente. Se han desarrollado fuera del ámbito del secreto gubernamental históricamente asociado con el desarrollo de algoritmos criptográficos. En este mismo período de tiempo, algunos países y regiones europeos también han propuesto los mismos requisitos del Conjunto B para proteger su información.

La criptografía de Suite B recomienda el uso de la curva elíptica Diffie-Hellman (ECDH) en muchos protocolos existentes, como Internet Key Exchange (IKE, que se usa principalmente en IPsec), seguridad de la capa de transporte (TLS) y MIME seguro (S/MIME).

CNG incluye compatibilidad con suite B que se extiende a todos los algoritmos necesarios: AES (todos los tamaños de clave), la familia SHA-2 (SHA-256, SHA-384 y SHA-512) de algoritmos hash, ECDH y curva elíptica DSA (ECDSA) sobre las curvas primos estándar de NIST P-256, P-384 y P-521. Las curvas binarias, las curvas Koblitz, las curvas prime personalizadas y la curva elíptica Menezes-Qu-Vanstone (ECMQV) no son compatibles con los proveedores de algoritmos de Microsoft incluidos en Windows Vista.

Compatibilidad heredada

CNG proporciona compatibilidad con el conjunto actual de algoritmos en CryptoAPI 1.0. Todos los algoritmos que se admiten actualmente en CryptoAPI 1.0 seguirán siendo compatibles con CNG.

Compatibilidad con el modo kernel

CNG admite criptografía en modo kernel. Las mismas API se usan en el modo kernel y de usuario para admitir completamente las características de criptografía. Tanto SSL/TLS como IPsec funcionan en modo kernel además de los procesos de arranque que usarán CNG. No todas las funciones CNG se pueden llamar desde el modo kernel. El tema de referencia de las funciones a las que no se puede llamar desde el modo kernel indicará explícitamente que no se puede llamar a la función desde el modo kernel. De lo contrario, se puede llamar a todas las funciones CNG desde el modo kernel si el autor de la llamada se ejecuta en PASSIVE_LEVELIRQL. Además, algunas funciones CNG del modo kernel pueden llamarse en DISPATCH_LEVEL IRQL, en función de las funcionalidades del proveedor.

La interfaz del proveedor de compatibilidad con la seguridad del kernel de Microsoft (Ksecdd.sys) es un módulo criptográfico basado en software, basado en software que reside en el nivel de modo kernel de Windows. Ksecdd.sys se ejecuta como controlador de exportación en modo kernel y proporciona servicios criptográficos a través de sus interfaces documentadas a los componentes del kernel. El único algoritmo de proveedor integrado de Microsoft que no es compatible con Ksecdd.sys es DSA.

Windows Server 2008 y Windows Vista: CNG no admite algoritmos y proveedores conectables en modo kernel. Los únicos algoritmos criptográficos admitidos disponibles en modo kernel son las implementaciones proporcionadas por Microsoft a través de las API de CNG de modo kernel.

Auditoría

Para cumplir algunos de los requisitos de criterios comunes además de proporcionar seguridad completa, muchas acciones que se producen en la capa de CNG se auditan en el proveedor de almacenamiento de claves de software de Microsoft (KSP). El KSP de Microsoft cumple las siguientes directrices para crear registros de auditoría en el registro de seguridad:

  • Los errores de generación de claves y pares de claves, incluidos los errores de prueba automática, deben auditarse.
  • Se debe auditar la importación y exportación de claves.
  • Se deben auditar los errores de destrucción de claves.
  • Las claves persistentes deben auditarse cuando se escriben en archivos y se leen desde ellos.
  • Los errores de comprobación de coherencia en pares deben auditarse.
  • Los errores de validación de claves secretas, si existen, se deben auditar, por ejemplo, comprobaciones de paridad en claves 3DES.
  • Los errores de cifrado, descifrado, hash, firma, comprobación, intercambio de claves y generación de números aleatorios deben auditarse.
  • Se deben auditar las pruebas automáticas criptográficas.

En general, si una clave no tiene un nombre, es una clave efímera. Una clave efímera no persiste y Microsoft KSP no genera registros de auditoría para claves efímeras. Microsoft KSP genera registros de auditoría en modo de usuario solo en el proceso de LSA. CNG del modo kernel no genera ningún registro de auditoría. Los administradores deben configurar la directiva de auditoría para obtener todos los registros de auditoría de KSP del registro de seguridad. Un administrador debe ejecutar la siguiente línea de comandos para configurar auditorías adicionales generadas por KSP:

auditpol /set /subcategory:"otros eventos del sistema" /success:enable /failure:enable

Generadores de números aleatorios reemplazables

Otra mejora que proporciona CNG es la capacidad de reemplazar el generador de números aleatorios predeterminado (RNG). En CryptoAPI, es posible proporcionar un RNG alternativo como parte de un proveedor de servicios criptográficos (CSP), pero no es posible redirigir los CSP base de Microsoft para que usen otro RNG. CNG permite especificar explícitamente un RNG determinado para usarlo en llamadas concretas.

Seguridad para subprocesos

Las funciones que modifican el mismo área de memoria al mismo tiempo (secciones críticas) cuando se llama desde subprocesos independientes no son seguras para subprocesos.

Modo de operación

CNG admite cinco modos de operaciones que se pueden usar con cifrados de bloques simétricos a través de las API de cifrado. Estos modos y su compatibilidad se enumeran en la tabla siguiente. El modo de operación se puede cambiar estableciendo la propiedad BCRYPT_CHAINING_MODE para el proveedor de algoritmos mediante la función BCryptSetProperty .

Modo de operación BCRYPT_CHAINING_MODE valor Algoritmos Estándar
ECB (Libro electrónico) BCRYPT_CHAIN_MODE_ECB Cifrados de bloques simétricos SP800-38A
CBC (encadenamiento de bloques de cifrado) BCRYPT_CHAIN_MODE_CBC Cifrados de bloques simétricos SP800-38A
CFB (Comentarios de cifrado) BCRYPT_CHAIN_MODE_CFB Cifrados de bloques simétricos SP800-38A
CCM (Contador con CBC) BCRYPT_CHAIN_MODE_CCM AES SP800-38C
GCM (modo Galois/Contador) BCRYPT_CHAIN_MODE_GCM AES SP800-38D

 

Nota:

Solo los modos de operación ECB, CBC y CFB se definen en Windows Vista. GCM y CCM requieren Windows Vista con Service Pack 1 (SP1) o Windows Server 2008.