Estándares criptográficos
FIPS 140-2 es el acrónimo de Federal Information Processing Standard (estándares federales de procesamiento de la información), publicación 140-2, es un estándar de seguridad de ordenadores del gobierno de los Estados Unidos para la acreditación de módulos criptográficos. Su título original es Security Requirements for Cryptographic Modules (requerimientos de seguridad para módulos criptográficos), que salió a la luz en 2001 y la última actualización es del 3 de diciembre de 2003.
El Instituto Nacional para la Estandarización y Tecnología (NIST) emitió la serie de publicaciones FIPS 140 para coordinar los requerimientos y estandarización de módulos criptográficos en los que incluye componentes hardware y software. Los departamentos y agencias federales pueden validar que el módulo en uso se ampara en los certificados FIPS 140-1 y 140-2 donde se especifica el nombre exacto del módulo, hardware, software, firma y/o números de versión del componente.
Los módulos criptográficos son creados por el sector privado, o por la comunidad de código abierto, para ser usados por el gobierno de los Estados Unidos y las grandes industrias tales como financieras o de sanidad que recogen, almacenan, transfieren, comparten y distribuyen información "sensible, pero sin clasificar" (SSC). Se puede decir que, FIPS 140-2, el programa de validación de módulos criptográficos, es una unión de esfuerzos entre el NIST y el Centro de Seguridad de las Telecomunicaciones (CSE) del gobierno canadiense.
Los programas de seguridad supervisados por NIST y CSE están enfocados para trabajar con el gobierno y la industria para desarrollar sistemas y redes más seguras, promoviendo y usando instrumentos de evaluación de seguridad, técnicas, servicios y dando soporte a programas de validación, evaluación y prueba; y otras áreas como el desarrollo y mantenimiento de métricas de seguridad, indicadores de evaluación de seguridad y metodologías de evaluación, pruebas y metodología de pruebas, criterios de especificaciones de seguridad, consejos para el uso de productos de prueba y evaluación; investigación en áreas de métodos seguros, actividades de validación de protocolo de seguridad.
La norma FIPS 140-2 define cuatro niveles de seguridad. La validación FIPS 140-2 especifica el nivel de seguridad al que se ajusta el producto.
• El Nivel 1, que normalmente se utiliza en productos de cifrado de software exclusivamente, impone requisitos de seguridad basicos. Todos los componentes deben estar operativos y no deben existir brechas de seguridad flagrantes de diversos tipos.
• El Nivel 2 requiere autenticación basada en el cargo del usuario. (No se requiere la autenticación individual de los usuarios). También requiere la capacidad para detectar la intrusión física mediante sistemas de bloqueo físico o precintos de seguridad.
• El Nivel 3 añade resistencia a la intrusión física con fines de desmontaje o modificación, de manera que dificulta al máximo los ataques. Si se detecta la intrusión, el dispositivo debe ser capaz de borrar los parámetros de seguridad críticos. El Nivel 3 también incluye protección criptográfica eficaz y administración de claves, autenticación basada en la identidad y separación física o lógica entre las interfaces a través de las que se accede a los parámetros de seguridad crítica y se sale de ellos.
• El Nivel 4 incluye protección avanzada contra intrusiones y está diseñado para productos que operan en entornos desprotegidos físicamente.
Firma XML (también llamado XMLDsig, DSig XML, XML-Sig) es una recomendación del W3C que define una sintaxis XML para la firma digital. Funcionalmente, tiene mucho en común con PKCS#7, pero es más extensible y está orientada hacia la firma de documentos XML. Es utilizada por diversas tecnologías Web como SOAP, SAML y otras.
Las firmas XML se pueden utilizar para firmar datos o recursos de cualquier tipo, normalmente documentos XML, pero cualquier cosa que sea accesible a través de una URL puede firmarse. Una firma XML que se utiliza para firmar un recurso fuera del documento XML que la contiene se llama una firma separada (detached). Si se utiliza para firmar una parte del documento que la contiene, se llama una firma envuelta (enveloped). Si contiene los datos firmados dentro de sí mismo se llama una firma envolvente (enveloping).
Una firma XML consiste en un elemento Signature (Firma) en el espacio de nombres de http://www.w3.org/2000/09/xmldsig#. La estructura básica es la siguiente:
/>
/>
- El elemento SignedInfo contiene o referencia los datos firmados y especifica qué algoritmo se usa.
Los elementos SignatureMethod y CanonicalizationMethod son usados por el elemento SignatureValue y están incluidos enSignedInfo para evitar que sean modificados.
Uno o más elementos Reference especifican el recurso que se está firmando por la referencia URI y cualquier transformación que vaya a aplicarse al recurso antes de firmar. DigestMethod especifica el algoritmo hash antes de aplicar el hash.
DigestValue contiene el resultado de aplicar el algoritmo hash a el (o los) recurso(s) transformado(s).
- El elemento SignatureValue contiene el resultado de una firma codificada en Base64 (la firma generada con los parámetros especificados en el elemento SignatureMethod) del elemento SignedInfo después de aplicar el algoritmo especificado por elCanonicalizationMethod.
- El elemento KeyInfo permite opcionalmente al firmante especificar los destinatarios con la clave que valida la firma, generalmente en la forma de uno o más certificados digitales X.509. La parte restante debe identificar la clave del contexto si no está presenteKeyInfo.
- El elemento Object (opcional) contiene los datos firmados en caso de ser una firma envolvente.
PKCS (Public-Key Cryptography Standards) se refiere a un grupo de estándares de criptografía de clave pública concebidos y publicados por los laboratorios de RSA en California. A RSA Security se le asignaron los derechos de licenciamiento para la patente de algoritmo de clave asimétrica RSA y adquirió los derechos de licenciamiento para muchas otras patentes de claves.
Resumen de los estándares PKCS | |||
---|---|---|---|
Versión | Nombre | Comentarios | |
PKCS#1 | 2.1 | Estándar criptográficoRSA | Ver RFC 3447. Define el formato del cifrado RSA. |
PKCS#2 | - | Obsoleto | Definía el cifrado RSA de resúmenes de mensajes, pero fue absorbido por el PKCS#1. |
PKCS#3 | 1.4 | Estándar de intercambio de claves Diffie-Hellman | Un protocolo criptográfico que permite a dos partes sin conocimiento previo una de la otra establecer conjuntamente una clave secreta compartida, utilizando un canal de comunicaciones inseguro. |
PKCS#4 | - | Obsoleto | Definía la sintaxis de la clave RSA, pero fue absorbido por el PKCS#1. |
PKCS#5 | 2.0 | Estándar de cifrado basado en contraseñas | Recomendaciones para la implementación de criptografía basada en contraseñas, que cubren las funciones de derivación de claves, esquemas de encriptación, esquemas de autenticación de mensajes, y la sintaxis ASN.1 que identifica las técnicas. Ver RFC 2898 y PBKDF2. |
PKCS#6 | 1.5 | Estándar de sintaxis decertificadosextendidos | Define extensiones a la antigua especificación de certificados X.509 versión 1. La versión 3 del mismo lo dejó obsoleto. |
PKCS#7 | 1.5 | Estándar sobre la sintaxis del mensaje criptográfico | Ver RFC 2315. Usado para firmar y/o cifrar mensajes en PKI. También usado para la diseminación de certificados (p.ej. como respuesta a un mensaje PKCS#10). Fue la base para el estándar S/MIME, ahora basado en la RFC 3852, una actualización del estándar CMSCryptographic Message Syntax, utilizado para firmar digitalmente, obtener el digest, autenticar, o cifrar arbitrariamente el contenido de un mensaje (no confundir con Sistema de gestión de contenido -Content Management System-). |
PKCS#8 | 1.2 | Estándar sobre la sintaxis de la información declave privada | Ver RFC 5208. |
PKCS#9 | 2.0 | Tipos de atributos seleccionados | |
PKCS#10 | 1.7 | Estándar de solicitud de certificación | Ver RFC 2986. Formato de los mensajes enviados a una Autoridad de certificación para solicitar la certificación de una clave pública. Ver CSR. |
PKCS#11 | 2.20 | Interfaz de dispositivo criptográfico ("CryptographicTokenInterface" ocryptoki) | Define un API genérico de acceso a dispositivos criptográficos (ver HSM). |
PKCS#12 | 1.0 | Estándar de sintaxis de intercambio de información personal | Define un formato de fichero usado comúnmente para almacenar claves privadas con sucertificado de clave pública protegido mediante clave simétrica. |
PKCS#13 | – | Estándar decriptografía de curva elíptica | (Aparentemente abandonado, la única referencia es una propuesta de 1998.) |
PKCS#14 | – | Generación de número pseudo-aleatorios | (Aparentemente abandonado, no hay publicada documentación al respecto) |
PKCS#15 | 1.1 | Estándar de formato de información de dispositivo criptográfico | Define un estándar que permite a los usuarios de dispositivo criptográficos identificarse con aplicaciones independientemente de la implementación del PKCS#11 cryptoki u otro API. RSA ha abandonado las partes relacionadas con la tarjeta IC de este estándar, subsumidas por el estándar ISO/IEC 7816-15. |
No hay comentarios:
Publicar un comentario