¿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 conveniencia de la interconexión a Internet ha ido acostumbrando gradualmente a las personas a enviar y recibir correos electrónicos desde páginas web. , compras y

transacciones, que requiere la transmisión de datos importantes o sensibles en la página web, como el número de cuenta bancaria del usuario, contraseña, etc. Por lo tanto, la seguridad de la red se ha convertido en un problema de seguridad urgente que debe resolverse en aplicaciones de redes informáticas modernas. Por lo tanto, la seguridad de la red

se ha convertido en un problema urgente que debe resolverse 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 habilitado para SSL y el lado del cliente usa un navegador habilitado para SSL para lograr una comunicación segura.

SSL es la abreviatura de Secure Socket Layer, que proporciona transmisión secreta en Internet.

Cuando Netscape lanzó el primer navegador web, también propuso el estándar del protocolo 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 lograr soporte tanto del lado del servidor como del 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 comunicaciones seguras en Internet. Este artículo habla principalmente sobre la comprensión del autor de SSL desde dos aspectos:

Protocolo SSL y diseño de programa SSL.

Introducción preliminar al protocolo SSL

El protocolo Secure Socket Layer protege las comunicaciones entre aplicaciones usuario/servidor contra escuchas por parte de atacantes y siempre autentica la identidad del servidor y del usuario.

El protocolo SSL requiere un protocolo de capa de transporte (TCP) confiable.

El protocolo SSL realiza algoritmos de cifrado, negociación de claves de comunicación y autenticación del servidor, y luego los protocolos de capa de aplicación pueden comunicarse. comunicación entre sí

. Posteriormente, los datos transmitidos por el protocolo de la capa de aplicación se cifran para mantener la comunicación privada.

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

El cifrado de la información utiliza algoritmos de cifrado para El proceso de convertir archivos de entrada en archivos cifrados para lograr la confidencialidad de los datos. El proceso de cifrado requiere

cifrar los datos utilizando una clave y luego descifrarlos. Sin la clave, los datos cifrados no se pueden descifrar. Una vez que los datos estén cifrados, simplemente transfiera la clave secreta

de forma segura. 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: un código de autenticación de mensajes (MAC) verifica la información cifrada proporcionada por el usuario y el destinatario puede utilizarlo para verificar los datos cifrados, garantizando que los datos no hayan sido manipulados durante la transmisión.

3.Consistencia de los datos

2.

3.Autenticación de seguridad

Otro uso del cifrado es como identificador personal, el usuario. La clave secreta se puede utilizar como verificación de seguridad.

SSL utiliza criptografía de clave pública (RSA) como protocolo de comunicación cifrado al transmitir información confidencial entre usuarios y servidores.

SSL ahora es ampliamente compatible con la mayoría de los servidores y navegadores web. Cuando un navegador intenta conectarse a un servidor con autenticación y cifrado SSL,

el navegador activa una sesión SSL y verifica la autenticación, que debe cumplir las siguientes tres condiciones:

1 ) Existe una autoridad que emite certificados y, por supuesto, es posible crear certificados autofirmados (estructura x509).

2) El certificado no debe caducar.

3) El certificado pertenece al servidor al que está conectado.

Solo cuando se cumplen estas tres condiciones, el navegador podrá completar con éxito la autenticación.

Con estas tres condiciones implementadas, los usuarios pueden estar seguros de que el navegador se está conectando al servidor correcto y no a un servidor falso que intenta robar la contraseña del usuario y otra información importante.

Otro protocolo de seguridad ampliamente utilizado en el comercio electrónico actual es el protocolo SET (Transacción Electrónica Segura), que es una especificación conjunta lanzada en mayo de 1997 por dos importantes compañías de tarjetas de crédito, VISA y MasterCard. Las transacciones SET

brindan mayor confianza, información de transacción más completa, mayor seguridad y menor riesgo de fraude.

La transacción se divide en tres etapas: el usuario compra al comerciante y confirma el pago; el comerciante verifica el pago al banco y el banco le paga. Cada etapa

implica cifrado RSA y firma digital RSA de los datos. Al utilizar el protocolo SET, se pueden realizar múltiples operaciones de cifrado y descifrado en una sola transacción, por lo que es altamente seguro. Sin embargo, el protocolo SET es más complejo que el protocolo SSL y tanto los comerciantes como los bancos deben modificar sus propios sistemas. interoperable.

Uno de los servidores de autenticación SSL más populares en Linux es OpenSSL Server, un proyecto colaborativo destinado a desarrollar un

kit de herramientas potente, completo, de código abierto y de calidad comercial que utiliza un cifrado sólido. Algoritmos para implementar Secure Sockets Layer (SSL). El kit de herramientas utiliza potentes algoritmos criptográficos para Secure Sockets Layer (SSL), SSL v2/v3 y Transport Layer Security (TLS v1).

El proyecto es gestionado y desarrollado por voluntarios de todo el mundo para desarrollar el kit de herramientas OpenSSL y la documentación relacionada.

Cómo configurar el servidor OpenSSL en Linux, comience desde la página de inicio de OpenSSL (/

Fan

La tecnología de cifrado de clave pública RSA se usa ampliamente en la computadora Industria para autenticación y cifrado de identidad. 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 utilizando un par de cifrado asimétrico, cada uno de los cuales consta de una clave pública y una clave privada. se mantiene en secreto y no se hará público. Los datos cifrados con la clave pública solo se pueden descifrar con la clave pública

Autenticación mediante criptografía de clave pública

La autenticación es un proceso de autenticación. En el siguiente ejemplo que contiene A y B, se utiliza la clave pública. La criptografía de clave hace que sea muy fácil verificar la identidad. El símbolo de clave {datos} significa que los "datos" se han cifrado o descifrado utilizando una contraseña. La identidad de B, una es una clave pública y la otra es una clave privada. A genera un mensaje aleatorio y lo envía a B. A-〉B: mensaje aleatorio

B cifra el mensaje con el suyo. clave privada y devuelve el mensaje cifrado de A B-〉A: {random. -message}Clave privada de B

Después de que A recibe el mensaje, lo descifra utilizando la clave pública anterior de B. Compara el mensaje descifrado con el. mensaje enviado originalmente a B. Si son idénticos, sabrá que está hablando con B. Ningún intermediario conocerá la clave privada de B y no podrá cifrar correctamente el mensaje aleatorio que A verificó y usar la clave privada para cifrar. el mensaje. No es una buena idea enviarlo a otras personas porque el valor cifrado podría usarse en su contra, lo cual es importante: dado que solo usted tiene la clave privada, solo usted puede cifrar la información de A. En lugar de la información original, Se crea y cifra un segmento de información. El segmento de información se toma de información aleatoria y tiene las siguientes propiedades útiles:

1.

Cualquiera que se haga pasar por B no puede obtener la información original del segmento de información;

2. El impostor encontrará información diferente que calcula el mismo valor del segmento;

3. , B puede protegerse a sí mismo. Calcula los segmentos aleatorios enviados por A, cifra los resultados y envía los segmentos cifrados de regreso a A. Al cifrar el mensaje aleatorio generado por A, B ha firmado el mensaje generado por A. Alguna información es generada por B:

A -> B: Hola, ¿eres B?

B -->A: A, soy B

{Segmento de mensaje [A, soy B] }Clave privada de B

Usar con En este acuerdo, B conoce la información que le envía y no le importa firmar la información. Primero envía el mensaje no cifrado "A, soy B". Luego se envía una versión cifrada del segmento del mensaje. Mientras tanto, B no firma la información que no quiere.

Enviar clave pública

Entonces, ¿cómo envía B su clave pública de manera confiable? Mire el protocolo de verificación que se muestra en la siguiente figura:

A --> B: hola

B --> A: Hola, soy B. La clave pública de B

A --> B. A: Hola, soy B. La clave pública de B

A --> B: pruébalo

B --> A: A, soy B { infobox [A, soy B] }clave privada de B

Bajo este protocolo, cualquiera puede ser "B". Todo lo que necesitas son las claves pública y privada. Envías un mensaje a A diciendo que eres B, de modo que tu clave pública reemplaza la contraseña de B. Luego envía otro mensaje cifrado con su clave privada para demostrar su identidad. Para resolver este problema, las organizaciones de normalización inventaron los certificados. El certificado contiene lo siguiente:

* El nombre de la persona que emitió el certificado

* La organización que emitió el certificado

* La clave pública del header

* 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 que cada emisor del certificado tiene una copia del 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 controla su propia clave privada y que efectivamente es él quien obtuvo el certificado, entonces todo está bien.

El siguiente es el acuerdo revisado:

A --> B: Hola

B --> A: Hola, soy B. B Checksum

A --> B: Prueba. --> B: Prueba

B --> A: A, soy B {Segmento de mensaje [A, soy B] } Ahora, cuando A recibe el primer mensaje de B, puede verificar el certificado y la firma (descifrados utilizando el segmento de información y la clave pública como se mencionó anteriormente). Luego verifique el título (el nombre de B) para asegurarse de que sea B. B completa el proceso anterior, genera un segmento de mensaje y responde a A con la versión firmada. A puede verificar la información de B utilizando la clave pública obtenida del certificado y verificar el resultado.

Si un hacker llamado H

A -> H: Hola

H -> no puede crear información de B en la que A confíe.

Intercambio de contraseñas (secretas)

Una vez que A autentica a B, puede enviarle a B un mensaje que solo B puede descifrar y leer:

A - -> B : {secreto} A: clave {un determinado mensaje}

Hacker escuchando a escondidas

Por lo tanto, si un hacker malicioso H está en medio de A y B, no puede descubrir A y B B ha intercambiado contraseñas, pero puede interferir con su conversación. Puede soltar la mayor parte de la información y optar por destruir una cierta cantidad de ella (esto es muy sencillo, ya que conoce el protocolo de conversación de A y B).

A-->H: Hola

H-->B: Hola

B-->H: Hola, soy B. Suma de comprobación de B

H-〉A: Hola, soy B, suma de comprobació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, I Es B {Segmento de información [ A, soy B]}La clave privada de B

A-->H: Está bien B, hay un secreto {secreto} aquí. Clave pública de B

H -->B: OK B, aquí hay un secreto {secreto} Clave pública de B

B --> H: {un dato }Clave secreta

H --> A: Garble[{a message}Clave secreta]

H ignora algunos datos sin modificarlos hasta que A y B intercambian la contraseña. En este punto, A confía en B, por lo que puede creer en la información interferida y hacer todo lo posible para descifrarla.

Cabe señalar que H no conoce la contraseña, lo único que puede hacer es destruir los datos cifrados con la clave secreta. Dependiendo del protocolo, es posible que H no pueda generar información válida. Pero ¿qué pasa la próxima vez?

Para evitar esta infracción, A y B generan un Código de autenticación de mensaje (MAC) en su protocolo. Un código de autenticación de mensaje (MAC) es un dato generado a partir de una contraseña y algún mensaje transmitido. Las propiedades anteriores descritas por el algoritmo de segmento de mensaje son exactamente lo que hacen para H:

MAC= Digest[algún mensaje, secreto]

Debido a que H no conoce la contraseña, no puede Obtenga el valor correcto. Incluso si H interfiere aleatoriamente con la información, siempre que la cantidad de datos sea grande, sus posibilidades de éxito son muy pequeñas. Por ejemplo, utilizando HD5 (un buen algoritmo de cifrado inventado por RSA), A y B pueden enviar un valor MAC de 128 bits al enviar información. La probabilidad de que H adivine el MAC correcto es cercana a 1/18, 446, 744, 073, 709, 551, 616, que es aproximadamente cero.

El siguiente es el protocolo revisado:

A -> B: hola

B -> A: Hola, soy B. La calibración de B

p>

A -> B: Prove.-〉B: Prueba

B-〉A: Hola, soy B, suma de verificación de B

A, soy B

{InfoSegmento[A, yo soy B]}. La clave privada de B

OK B, aquí hay una clave secreta {secreta}La clave pública de B

{un determinado mensaje, MAC} clave secreta

Ahora H Había nada que pudiéramos hacer. Interfiere con todos los mensajes entrantes, pero las computadoras MAC pueden detectarlo. A y B pueden detectar el valor MAC falsificado y dejar de comunicarse entre sí.

Preguntas frecuentes sobre OpenSSL

H ya no puede comunicarse con B.