Red de conocimiento informático - Material del sitio web - Cómo crear un certificado usando OpenSSL

Cómo crear un certificado usando OpenSSL

OpenSSL es un conjunto de herramientas de desarrollo de seguridad basado en criptografía que proporciona un conjunto potente y completo de capacidades, incluidos los principales algoritmos de cifrado, capacidades de administración y encapsulación de claves y certificados comunes, protocolos SSL y aplicaciones enriquecidas para pruebas y otros fines.

1. Algoritmo de cifrado simétrico

OpenSSL proporciona ocho algoritmos de cifrado simétrico, siete de los cuales son algoritmos de cifrado de paquetes y solo un algoritmo de cifrado de flujo, RC4. Los siete algoritmos de cifrado de bloques son AES, DES, Blowfish, CAST, IDEA, RC2 y RC5. Todos admiten el modo de libro de códigos electrónico (ECB), el modo de encadenamiento de bloques de cifrado (CBC), el modo de retroalimentación de cifrado (CFB) y el modo de retroalimentación de salida. (OFB) Estos cuatro modos de cifrado de cifrado de bloques de uso común. Entre ellos, AES utiliza una longitud de paquete del modo de retroalimentación de cifrado (CFB) y del modo de retroalimentación de salida (OFB) de 128 bits, mientras que otros algoritmos utilizan 64 bits. De hecho, el algoritmo DES no solo admite el algoritmo DES interno comúnmente utilizado, sino que también admite algoritmos 3DES de tres y dos claves.

2. Algoritmo de cifrado asimétrico

OpenSSL implementa cuatro algoritmos de cifrado asimétrico, incluidos DH, RSA, DSA y curva elíptica (EC) para el intercambio de claves de usuario y RSA para el intercambio de claves y digitales. firmas, que también se pueden utilizar para cifrar datos si puede tolerar velocidades más lentas. El algoritmo DSA, por otro lado, generalmente se utiliza sólo para firmas digitales.

3. Algoritmo de resumen de mensajes

OpenSSL implementa cinco algoritmos de resumen de mensajes: MD2, MD5, MDC2, SHA (SHA1) y RIPEMD. El algoritmo SHA en realidad incluye dos algoritmos de resumen de mensajes, SHA y SHA1. Además, OpenSSL también implementa dos algoritmos de resumen de mensajes, DSS y DSS1, especificados por el estándar DSS. Además, OpenSSL implementa dos algoritmos de resumen de mensajes, DSS y DSS1, especificados en el estándar DSS.

4. Gestión de claves y certificados

La gestión de claves y certificados es una parte importante de OpenSSL, proporciona funciones ricas y admite múltiples estándares.

En primer lugar, OpenSSL implementa el estándar ASN.1 para certificados y claves, y proporciona codificación y decodificación DER, PEM y BASE64 de certificados, claves públicas, claves privadas, solicitudes de certificados, CRL, etc. OpenSSL proporciona métodos, funciones y aplicaciones para generar una variedad de pares de claves públicas y simétricas, y proporciona codificación y decodificación DER de claves públicas y privadas. OpenSSL proporciona métodos, funciones y aplicaciones para generar una variedad de pares de claves públicas y simétricas, y proporciona codificación y decodificación DER para claves públicas y privadas. OpenSSL también implementa los códecs PKCS#12 y PKCS#8 para claves privadas. OpenSSL proporciona protección criptográfica para claves privadas en el estándar, lo que permite almacenar y distribuir claves de forma segura.

OpenSSL implementa la codificación y decodificación de certificados estándar X.509, el formato PKCS#12 y las funciones de codificación y decodificación PKCS#7. También proporciona una base de datos de texto que admite funciones de gestión de certificados, incluida la generación de claves de certificado, generación de solicitudes, emisión, revocación y verificación de certificados.

De hecho, la aplicación CA proporcionada por OpenSSL es una pequeña autoridad de certificación (CA) que implementa todo el proceso de emisión de certificados y la mayoría de los mecanismos de gestión de certificados.

5. Protocolos SSL y TLS

OpenSSL implementa SSLv2 y SSLv3 que admiten la mayoría de los protocolos de algoritmos. OpenSSL también implementa TLSv1.0, una versión estandarizada de SSLv3. Aunque las diferencias no son enormes, todavía hay muchos detalles que sí lo son.

Aunque existen muchas implementaciones de software de OpenSSL, el protocolo SSL implementado internamente por OpenSSL puede darnos una comprensión más clara del protocolo SSL, porque hay al menos dos puntos: Primero, el protocolo SSL implementado por OpenSSL es de código abierto Sí, podemos rastrear cada detalle de la implementación del protocolo SSL. En segundo lugar, el protocolo SSL implementado por OpenSSL es de código abierto. El protocolo SSL implementado por OpenSSL es un protocolo SSL puro y no se combina con otros protocolos (como HTTP), lo que aclara la verdadera naturaleza del protocolo SSL.

6. Aplicaciones

Las aplicaciones OpenSSL se han convertido en una parte importante de OpenSSL, algo que los desarrolladores de OpenSSL no esperaban. Muchas aplicaciones OpenSSL ahora se basan en aplicaciones OpenSSL en lugar de la API OpenSSL, como OpenCA, que se implementa completamente utilizando aplicaciones OpenSSL. API. Leer todos estos ejemplos le brindará una comprensión más completa de la API de OpenSSL y, por supuesto, será un ejercicio de fuerza de voluntad.

Las aplicaciones OpenSSL proporcionan funciones relativamente completas. A los ojos de bastantes personas, OpenSSL lo ha hecho todo por sí mismo y no requiere ningún trabajo de desarrollo adicional, por lo que también llaman a estas aplicaciones para comandos OpenSSL. Las aplicaciones OpenSSL incluyen principalmente generación de claves, gestión de certificados, conversión de formato, cifrado y firma de datos, pruebas SSL y otras funciones de configuración auxiliares.

7. Mecanismo del motor El mecanismo del motor apareció en la versión OpenSSL 0.9.6 Al principio estaba separado de la versión habilitada para el motor, pero en la versión OpenSSL 0.9.7, el mecanismo del motor estaba integrado en el kernel. y se convirtió en una parte integral de OpenSSL. El propósito del mecanismo del motor es permitir que OpenSSL utilice de forma transparente bibliotecas criptográficas de software de terceros o dispositivos criptográficos de hardware para el cifrado. El mecanismo del motor de OpenSSL logra este propósito con éxito, haciendo de OpenSSL no solo una biblioteca criptográfica, sino una biblioteca criptográfica con la que puede funcionar. grande Una interfaz criptográfica común con la que funcionan la mayoría de las bibliotecas o dispositivos criptográficos. Por supuesto, hacer que una biblioteca o dispositivo específico funcione con OpenSSL requiere escribir una pequeña cantidad de código de interfaz, pero no es una gran cantidad de trabajo, aunque sí requiere un poco de conocimiento de criptografía y la funcionalidad del mecanismo del motor es consistente. con los objetivos de la funcionalidad CSP proporcionada por Windows Básicamente lo mismo. Actualmente, la versión 0.9.7 de OpenSSL admite ocho dispositivos criptográficos integrados de terceros, incluidos CryptoSwift, nCipher, Atalla, Nuron, UBSEC, Aep, SureWare y dispositivos criptográficos de hardware para IBM 4758 CCA. Las interfaces del motor que admiten la interfaz PKCS#11 ahora también están disponibles y se han desarrollado interfaces que admiten Microsoft CryptoAPI. Por supuesto, todo el soporte de interfaz del motor anterior no es necesariamente completo; por ejemplo, es posible que solo admita uno o dos algoritmos de clave pública.

8. Accesibilidad

El mecanismo BIO es una interfaz IO de alto nivel proporcionada por OpenSSL, que encapsula casi todos los tipos de interfaces IO, como acceso a memoria, acceso a archivos y sockets. . Esto permite una reutilización de código significativamente mayor y reduce en gran medida la complejidad de las API proporcionadas por OpenSSL.

OpenSSL también proporciona un conjunto de soluciones y funciones API de soporte para generar y gestionar números aleatorios. Los números aleatorios son un requisito previo importante para determinar si una clave es segura.

OpenSSL también proporciona muchas otras funciones auxiliares, como una API para generar claves a partir de contraseñas, un mecanismo de archivos de configuración para la emisión y gestión de certificados, y más. Si tiene paciencia, quedará gratamente sorprendido por las numerosas funciones pequeñas que descubrirá a medida que aprenda OpenSSL.