¿Qué es SSL?
Método de cifrado SSL
Palabras clave: método de cifrado SSL
Con el desarrollo de la tecnología de redes informáticas, la cómoda y rápida Internet ha ido acostumbrando gradualmente a la gente. Envío y recepción de correos electrónicos, compras y
transacciones en la página web En este momento, es necesario transmitir datos importantes o confidenciales en la página web, como la cuenta bancaria del usuario, la contraseña, etc. seguridad de la red
Se ha convertido en un problema urgente a resolver en las aplicaciones de redes informáticas modernas.
Los sistemas actuales de transacciones en línea a gran escala, como la banca en línea y el comercio electrónico, generalmente utilizan una combinación de HTTP y SSL. El lado del servidor utiliza un servidor web que admite SSL y el lado del cliente utiliza un navegador que admite SSL para lograr una comunicación segura.
SSL es la abreviatura de Secure Socket Layer (Protocolo de capa de socket seguro), que puede proporcionar transmisión confidencial en Internet.
Cuando Netscape lanzó el primer navegador Web, también propuso el protocolo estándar SSL, que actualmente cuenta con la versión 3.0. SSL utiliza tecnología de clave pública. Su objetivo es garantizar la confidencialidad y confiabilidad de la comunicación entre dos aplicaciones y puede ser compatible tanto en el lado del servidor como en el lado del usuario
al mismo tiempo. Actualmente, el protocolo SSL que utiliza tecnología de clave pública se ha convertido en el estándar de la industria para las comunicaciones seguras en Internet. Este artículo se centra en la comprensión del autor de SSL en términos de
protocolo SSL y programación SSL.
Introducción preliminar al protocolo SSL
El protocolo Secure Socket Layer puede evitar que los atacantes escuchen la comunicación entre las aplicaciones usuario/servidor y siempre autenticar el servidor.
También puede optar por autenticar al usuario. El protocolo SSL requiere un protocolo de capa de transporte (TCP) confiable. La ventaja del protocolo SSL es que
es independiente del protocolo de capa de aplicación. Los protocolos de capa de aplicación de alto nivel (como HTTP, FTP, TELNET, etc.) se pueden establecer de forma transparente en SSL
. p>arriba del acuerdo. El protocolo SSL ha completado el algoritmo de cifrado, la negociación de la clave de comunicación y la autenticación del servidor antes de la comunicación del protocolo de capa de aplicación.
Después de esto, los datos transmitidos por el protocolo de la capa de aplicación se cifrarán para garantizar la privacidad de la comunicación.
Según la descripción anterior, el canal seguro proporcionado por el protocolo SSL tiene las siguientes tres características:
1. Confidencialidad de los datos
Cifrar información significa ingresar código sin formato. Los archivos se convierten en archivos cifrados utilizando algoritmos de cifrado para lograr la confidencialidad de los datos. El proceso de cifrado requiere
una clave para cifrar los datos y luego descifrarlos. Sin la clave, los datos cifrados no se pueden descifrar. Una vez cifrados los datos, solo se debe transmitir la clave
utilizando un método seguro. Los datos cifrados se pueden transmitir públicamente.
2. Coherencia de los datos
El cifrado también puede garantizar la coherencia de los datos. Por ejemplo: el código de autenticación de mensajes (MAC) puede verificar la información cifrada proporcionada por el usuario. El destinatario puede utilizar MAC para verificar los datos cifrados y garantizar que no hayan sido manipulados durante la transmisión.
3. Verificación de seguridad
Otro uso del cifrado es como identidad personal. La clave del usuario se puede utilizar como su identidad de verificación de seguridad.
SSL utiliza tecnología de cifrado de clave pública (RSA) como protocolo de comunicación cifrado entre el cliente y el servidor a la hora de transmitir información confidencial.
Actualmente, la mayoría de servidores web y navegadores soportan ampliamente la tecnología SSL. Cuando el navegador intenta conectarse a un servidor con autenticación y cifrado SSL, activará una sesión SSL. El navegador verifica la autenticación y debe cumplir las siguientes tres condiciones:
1) Hay una autoridad que. emite certificados y, por supuesto, es posible crear certificados autofirmados (estructura x509).
2) El certificado no puede caducar.
3) El certificado pertenece al servidor al que está conectado.
Solo cuando se cumplen las tres condiciones, el navegador puede completar con éxito la autenticación. A través de estas tres condiciones, los usuarios pueden confirmar que su navegador está conectado al servidor correcto y no a algún servidor falso que quiere robar información importante como las contraseñas de los usuarios.
Otro protocolo de seguridad muy utilizado en el comercio electrónico actual es el protocolo SET. El protocolo SET (Secure Electronic Transaction,
Transacción Electrónica Segura) es una especificación lanzada conjuntamente por VISA y MasterCard en mayo de 1997. SET puede brindar mayor confianza, información de transacciones más completa, mayor seguridad y menor posibilidad de fraude en transacciones electrónicas. Las transacciones SET se llevan a cabo en tres etapas: el usuario compra al comerciante y confirma el pago; el comerciante verifica con el banco y el banco le paga; Cada etapa implica cifrado RSA de datos y firma digital RSA. Al utilizar el protocolo SET, se deben completar múltiples operaciones de cifrado y descifrado en una sola transacción, por lo que tiene alta seguridad. Sin embargo, el protocolo SET es más complicado que el protocolo SSL y tanto los comerciantes como los bancos deben modificar sus sistemas para implementarlo. Interoperabilidad.
En Linux, el servidor más popular que admite la autenticación SSL es OpenSSL. El proyecto OpenSSL es un proyecto colaborativo para desarrollar un conjunto de herramientas de código abierto completo, robusto y de calidad comercial que utiliza potentes algoritmos de cifrado para implementar una capa de socket segura (Secure Sockets Layer, SSL v2/v3) y seguridad de la capa de transporte (Transport Layer Security, TLS v1).
Este proyecto es gestionado y desarrollado por voluntarios de todo el mundo. Kit de herramientas OpenSSL y documentación relacionada.
Cómo configurar el servidor OpenSSL en Linux, primero desde la página de inicio de OpenSSL (/
Fan Xiaoming
El cifrado de clave pública RSA se usa ampliamente en la industria informática para autenticación y cifrado Licencia de cifrado de clave pública RSA disponible en RSA Data Security Inc. El cifrado de clave pública es un método de cifrado o descifrado que utiliza un par de claves asimétricas. La clave privada es privada y no pública. la clave pública, a su vez, se puede descifrar con la clave pública. El cifrado de clave es muy útil
Autenticación mediante criptografía de clave pública
La autenticación es un proceso de autenticación de identidad. Por ejemplo, incluidos A y B, el cifrado de clave pública será muy fácil de verificar. Verificar la identidad El símbolo de clave {datos} significa que los "datos" se han cifrado o descifrado utilizando una contraseña. pública y la otra es privada. La clave pública de A genera un mensaje aleatorio y lo envía a B. B: mensaje aleatorio
B usa su clave privada para cifrar el mensaje y devuelve el mensaje cifrado de A: {random-message}La clave privada de B
A recibe el mensaje y lo descifra utilizando la clave pública previamente revelada de B. Compara el mensaje descifrado con el mensaje que envió originalmente a B. Si son exactamente los mismos. De la misma manera, sabrá que está hablando con B. Cualquier intermediario no conocerá la clave privada de B y no podrá cifrar correctamente el mensaje aleatorio que A verifica
A menos que sepa exactamente lo que está cifrando. Es una buena idea cifrar un mensaje con su clave privada y luego enviarlo a otra persona porque el valor cifrado podría usarse en su contra. Tenga en cuenta que, dado que solo usted tiene la clave privada, solo usted puede cifrar el mensaje. A partir del mensaje original enviado, B crea un segmento de mensaje y lo cifra.
El segmento de información se toma de un mensaje aleatorio (mensaje aleatorio) y tiene las siguientes propiedades útiles:
1. Este segmento de información es difícil de restaurar. Incluso si alguien se hace pasar por B, no puede obtener el mensaje original del segmento de información;
2. El impostor encontrará mensajes diferentes y calculará el mismo valor del segmento de información;
3. Utilizando el segmento de información, la persona B puede protegerse. Calcula el segmento de información aleatoria enviado por A, cifra el resultado y envía el segmento de información cifrado de regreso a A. A puede calcular la misma información y descifrar el mensaje de B para autenticar a B.
Esta tecnología sólo representa firmas digitales. Al cifrar el mensaje aleatorio generado por A, B ha firmado el mensaje generado por A. Por lo tanto, nuestro protocolo de autenticación también requiere un cifrado único. Algunos mensajes son generados por B:
A——>B: Hola, ¿eres B?
B——>A: A, soy B
{Segmento de información [A, soy B]} Clave privada de B
Cuando usas este protocolo, B conoce el mensaje que envió a B y no le importa firmarlo. Primero envía el mensaje no cifrado, "A, soy B", y luego envía la versión cifrada del mensaje. A puede verificar muy cómodamente que B es B y, al mismo tiempo, B no ha firmado la información que no desea.
Enviar la clave pública
Entonces, ¿cómo envía B su clave pública de manera confiable? Mire el protocolo de autenticación de la siguiente manera:
A——>B: Hola
B——>A: Hola, soy B, la clave pública de B
A——>B: pruébalo
B——>A: A, soy B {Segmento de información [A, soy B] } clave privada de B
Bajo esto acuerdo, cualquiera puede convertirse en "B". Todo lo que necesitas son las claves pública y privada. Se lo envías a A diciendo que eres B, para que tu clave pública reemplace la contraseña de B. Luego envía un mensaje cifrado con su clave privada, demostrando su identidad. A no puede darse cuenta de que no eres B. Para solucionar este problema, las organizaciones de normalización han inventado los certificados. Un certificado tiene el siguiente contenido:
* El nombre del emisor del certificado
* La organización que emitió el certificado
* La clave pública del title
* Matasellos
El certificado se cifra utilizando la clave privada del emisor. Todo el mundo conoce la clave pública del emisor del certificado (por lo tanto, cada emisor del certificado tiene un certificado). Un certificado es un protocolo que vincula una clave pública a un nombre. Al utilizar tecnología de certificados, todos pueden verificar el certificado de B para determinar si ha sido falsificado. Suponiendo que B tiene control sobre su clave privada y que efectivamente es él quien obtuvo el certificado, todo estará bien.
Estos son los acuerdos revisados:
A——>B: Hola
B——>A: Hola, soy B, de B Verification
A——>B: pruébalo
B——>A: A, soy B {Segmento de información [A, soy B] } clave privada de B
Ahora, cuando A recibe el primer mensaje de B, puede verificar el certificado, la firma (descifrada usando el segmento de mensaje y la clave pública como se indicó anteriormente) y luego verificar el encabezado (el nombre de B) para determinar si es el segundo. Puede creer que la clave pública es la clave pública de B y exigir que B demuestre su identidad. Mediante el proceso anterior, B crea un segmento de mensaje y responde a A con una versión firmada. A puede verificar la información de B utilizando la clave pública obtenida del certificado y verificando el resultado.
Si un hacker se llama H
A——>H: Hola
H——> no puede crear un mensaje de B en el que A pueda confiar.
Intercambio de secretos
Una vez que A ha verificado a B, puede enviarle a B un mensaje que solo B puede descifrar y leer:
A— —> B: { secret} Clave pública de B
La única forma de encontrar la contraseña es usar la clave privada de B para decodificar la información anterior. El intercambio de contraseñas es otra forma de utilizar el cifrado de contraseñas de forma eficaz. Incluso si se intercepta la comunicación entre A y B, solo B puede obtener la contraseña.
Usar la contraseña como otra clave secreta mejora la seguridad de la red, pero esta vez es un algoritmo de cifrado simétrico (como DES, RC4, IDE A). Debido a que A generó la contraseña antes de enviársela a B, A conoce la contraseña. B conoce la contraseña porque B tiene la clave privada y puede descifrar la información de A. Pero todos conocían la contraseña y pudieron inicializar un algoritmo criptográfico simétrico y comenzar a enviar mensajes cifrados. Aquí está el acuerdo revisado:
A——>B: Hola
B——>A: Hola, soy B, verificación de B
A— —>B: pruébalo
B——>A: A, soy B {Segmento de información [A, soy B] }Clave privada de B
A——>B : ok B, aquí hay una {secreta}clave pública de B
B——>A: {algún mensaje}clave secreta
Hacker escuchando a escondidas
Entonces, si hay un hacker malicioso H entre A y B, aunque no pueda descubrir las contraseñas que A y B han intercambiado, puede interferir con su conversación. Puede dejar de lado la mayor parte de la información y optar por destruir cierta información (esto es muy simple, porque conoce el protocolo utilizado por A y B para comunicarse).
A——>H: Hola
H——>B: Hola
B——>H: Hola, soy B, B Verificación de B
H——>A: Hola, soy B, Verificación de B
A——>H: pruébalo
H— —〉B : pruébalo
B——〉H: A, soy B {segmento de información [A, soy B]} clave privada de B
H——〉 A: A, Soy B {Segmento de información [A, soy B] } la clave privada de B
A——>H: ok B, aquí hay una {secreta} clave pública de B
H——>B: ok B, aquí hay una clave pública secreta {secreta} de B
B——>H: {algún mensaje}clave-secreta
H——> R: Garble[{some message}secret-key]
H ignora algunos datos y no los modifica hasta que A y B intercambian contraseñas. Entonces H interfiere con la información de B a A. En este punto, A confía en B, por lo que puede creer en el mensaje comprometido y hacer todo lo posible para descifrarlo.
Cabe señalar que H no conoce la contraseña, y lo único que puede hacer es destruir los datos cifrados con la clave secreta. Dependiendo del protocolo, es posible que H no pueda producir un mensaje válido. Pero ¿qué pasa la próxima vez?
Para evitar esta destrucción, A y B generan un mensaje de código de verificación (código de autenticación de mensaje) en su protocolo. Un mensaje de suma de verificación (MAC) es parte de los datos generados por la contraseña y algunos mensajes de transporte. Las características anteriores descritas por el algoritmo de segmento de mensaje son exactamente su función para resistir H:
MAC= Digest[algún mensaje, secreto]
Debido a que H no conoce la contraseña, no puede derivar el valor correcto. Incluso si H interfiere aleatoriamente con los mensajes, siempre que la cantidad de datos sea grande, sus posibilidades de éxito son escasas. Por ejemplo, utilizando HD5 (un buen algoritmo de cifrado inventado por RSA), A y B pueden enviar valores MAC de 128 bits con sus mensajes. La probabilidad de que H adivine el MAC correcto es casi 1/18, 446, 744, 073, 709, 551, 616 y es aproximadamente igual a cero.
Este es otro acuerdo revisado:
A——>B: Hola
B——>A: Hola, soy B, la verificación de B p>
A——>B: pruébalo
B——>A: Hola, soy B, verificación de B
A, soy B
{Segmento de información [A, soy B]} clave privada de B
ok B, aquí hay una {secreta} clave pública de B
{algún mensaje, MAC} clave-secreta
Ahora H no tiene nada que hacer. Interfirió con todos los mensajes recibidos, pero la computadora MAC pudo detectarlo. La persona A y la persona B pueden detectar el valor MAC falso y dejar de hablar. H ya no puede comunicarse con B.
Preguntas frecuentes sobre OpenSSL