Sobre el protocolo HTTPS y flujo de trabajo, y la estructura de los mensajes

  En este artículo se utiliza para comprender los principios de HTTP / HTTPS, así como su configuración y optimización se puede encontrar https://www.cnblogs.com/zhjh256/p/6262620.html,https://www.cnblogs.com/zhjh256/ p / 7570772.html.

0, primer vistazo a la estructura y los procesos paquete HTTP

  Muchos desarrolladores cada día para hacer frente a los protocolos http, pero no saben http aspecto tienen los paquetes, como el tipo de estructura, es hora de popularizar un poco más. HTTP se utiliza para información se refiere como HTTP paquetes, solicitante (cliente) se llama una solicitud HTTP paquetes de mensaje; el respondedor (servidor) llama un paquete de respuesta, HTTP paquetes por una pluralidad de datos de línea es en sí mismo configuración de cadena de texto.
  http paquetes

HTTP estructura de solicitud:
  HTTP paquetes se puede dividir en la línea de petición, cabeceras de petición, líneas en blanco, la porción de cuatro solicitudes del cuerpo. También fue el mensaje en las cabeceras de petición (Request Line + cabecera de la solicitud), líneas en blanco, la solicitud del cuerpo. Típicamente, las secciones anteriores deben ser, y el cuerpo no debe última solicitud, y al final de cada sección se utilizan como una línea en blanco a la bandera final.

  paquete de petición

  línea de solicitud: método de petición (Método,) + espacio + identificador uniforme de recursos (URI) versión del espacio HTTP + + + CR LF;

  Encabezado de solicitud: Nombre del campo Valor de colon + + + CR LF;

  Línea en blanco: retorno de carro (CR) + línea de alimentación (la LF);

  Solicitud cuerpo: la adición de usuario personalizada, tal como un cuerpo de correos y similares;

  Ejemplos de encabezado de solicitud (Google panel Navegador de Red):

  ejemplos Request packets

HTTP estructura mensaje de respuesta:
  La única diferencia entre la estructura del paquete de solicitud de reacción en que la estructura de paquete utilizado en lugar de la primera línea de mensaje de petición de información de estado. Línea de estado (barra de estado), proporcionando un código de estado para ilustrar los recursos solicitados.

  mensaje de respuesta

  La línea de estado: estado HTTP versión de código de espacio + + + + espacio de estado Código Descripción + CR LF;

  cabecera de respuesta: Nombre del campo Valor de colon + + + CR LF;

  Línea en blanco: retorno de carro (CR) + línea de alimentación (la LF);

  cuerpo de la respuesta: la adición de usuario personalizada, tal como un cuerpo de correos y similares;

  En los ejemplos de cabecera de respuesta (Google panel Navegador de Red):

  Ejemplos de mensaje de respuesta

código de estado de respuesta:
  código de estado enviado por el servidor en respuesta a las solicitudes del cliente al servidor.

  • 1xx (información): la recepción de la solicitud, continuar con el procesamiento
  • 2xx (con éxito): solicitud ha sido recibido con éxito, entendido y aceptado
  • 3xx (redirección): son necesarias nuevas medidas para completar la solicitud
  • 4xx (error cliente): La solicitud contiene errores de sintaxis o incapaz de cumplir
  • 5xx (Error del servidor): El servidor no puede satisfacer la solicitud válida obvia

  Por favor revise el código de estado: HTTPS: //en.wikipedia.org/wiki ...

  El "ilustra el HTTP" un libro, campos de cabecera HTTP petición de paquetes también se pueden subdividir en un campo de cabecera común, el campo de cabecera entidad en el campo de encabezado de la solicitud, de manera similar, los campos de cabecera HTTP paquete de respuesta también puede ser subdividido en común cabecera campo, el campo de cabecera entidad en el campo de cabecera de respuesta
  campo de cabecera subdivide en tres

  navegador Google panel de Newwork será único campo de cabecera genérica señala, el resto del campo por la cabecera de las peticiones y el campo de cabecera de respuesta en dos categorías, no lo hacen de subdivisión
  Pie de foto

  Los detalles de la información de la cabecera HTTP se pueden encontrar https://www.processon.com/view/link/58025201e4b0d6b27dd4c8af#map.

  Ver diagrama de HTTP.

En primer lugar, ¿cuál es HTTPS

  HTTPS SSL capa de cifrado se basa en HTTP, y cifrar datos es versión segura del protocolo HTTP. Ahora es ampliamente utilizado en las comunicaciones sensibles a la seguridad del World Wide Web, como el pago de la transacción.

  HTTPS función principal es:

(1) para cifrar los datos, y establecer una información de canal de seguridad, para garantizar la seguridad durante la transmisión de datos;

(2) ser cierto para la autenticación del servidor web.

  A menudo usamos la comunicación HTTPS y las compras de acceso Web interfaz de la página de facturación. Cuando se utiliza la comunicación HTTPS, ya no se usa http://, pero el interruptor https://. Además, cuando un navegador visita un sitio web HTTPS comunicación efectiva, la barra de direcciones del navegador será una marca aparece bloqueados. Visualización de HTTPS será distinta en función de los diferentes navegadores.

En segundo lugar, ¿por qué la necesidad de HTTPS

  Puede ocultar o robo de identidad y otros problemas de seguridad en el protocolo HTTP. mecanismo de comunicación el uso de HTTPS puede prevenir con eficacia estos problemas, entonces, comenzamos a entender en virtud de
lo que son los problemas del protocolo HTTP:

  • Comunicación usando el texto en claro (no cifrado), el contenido puede ser interceptada

  Desde HTTP en sí no tiene una función de cifrado, no puede hacerlo por la totalidad de las comunicaciones (utilizando HTTP contenido protocolo de petición y la comunicación de respuesta) está cifrada. Esto es, HTTP paquetes de texto claro (sin cifrar se refiere paquete) esquema de transmisión.

  protocolo HTTP es expresamente defectos conducen a la pérdida de datos, manipulación de datos, el secuestro de tráfico, ataques de phishing y otros problemas de seguridad son razones importantes. El protocolo HTTP puede cifrar los datos no, todos los datos de comunicación son claras "rayas" en la red. Oliendo el equipo de red y medios técnicos, se puede recuperar el contenido de los paquetes HTTP.

  • No se ha podido probar la integridad del mensaje, que puede haber sido manipulado

  La llamada La integridad es la exactitud de la información. Si no se puede demostrar su integridad, por lo general significa que no se puede juzgar la exactitud de la información. Dado que el HTTP paquetes de protocolo no pueden probar la integridad de las comunicaciones, y por lo tanto, después de una petición o respuesta enviaron hasta que este periodo de tiempo antes de que la otra parte a recibir, incluso si el contenido de la petición o la respuesta ha sido manipulado, no hay manera de saber.
  En otras palabras, no hay manera de confirmar una solicitud enviados / recibidos, y en respuesta a la petición / respuesta es la misma antes y después.

  • No verifica la identidad de las partes que se comunican, es probable que el encubrimiento encuentro

  HTTP solicitudes de protocolo y las respuestas no confirman la fiesta de comunicación. Cuando protocolo de comunicación HTTP, ya que el proceso paso a que una parte de comunicación no existe, cualquier persona puede iniciar una solicitud. Además, siempre que el servidor recibe la solicitud, no importa que la otra parte devolverá una respuesta (pero la dirección IP y número de puerto se limita al remitente de la premisa no está configurado para restringir el acceso al servidor de la web)

  El protocolo HTTP no puede verificar la identidad de las partes que se comunican, cualquier persona puede forjar servidores falsos para engañar a los usuarios, y "phishing", el usuario no puede detectar.

 

  En el protocolo HTTPS contraste, que comparó más que el protocolo HTTP ventajas siguientes (se detallará a continuación):

  • privacidad de los datos: Después de los contenidos de cifrado simétrico, cada uno conectado a generar una clave de cifrado única
  • Integridad de los datos: el contenido transmitido a través de una comprobación de integridad
  • Autenticación: tercero no puede ser forjado servidor (cliente) la identidad

Tres, HTTPS HTTP cómo resolver los problemas anteriores?

  HTTPS no es una nueva capa de aplicación del protocolo. parte de interfaz de comunicación HTTP simplemente sustituyendo sólo los protocolos SSL y TLS.

  Por lo general, HTTP y TCP comunicación directa. Cuando se usa SSL, las comunicaciones SSL y se convirtió en el primero, luego las comunicaciones SSL y el TCP. En resumen, el llamado HTTPS, HTTP protocolo SSL es en realidad lleva esta capa de la cáscara.

  Después de usar SSL, HTTP tendrán las cifrado HTTPS, certificados, y proteger la integridad de estas funciones. Eso HTTP, junto con el cifrado y la autenticación y la protección de la integridad después de un HTTPS.

  La función principal del protocolo HTTPS son sustancialmente dependiente de la funcionalidad SSL TLS / protocolo SSL, TLS / se implementa depende de los tres algoritmos básicos: las funciones de hash, de cifrado simétrico y el cifrado asimétrico, que se consigue mediante el uso de un cifrado asimétrico y las claves de autenticación la negociación, la negociación de una clave simétrica algoritmo de cifrado para el cifrado de datos, sobre la base de una función hash para verificar la integridad de la información.

1. contenido de la resolución de problemas podría ser pinchado - Cifrado

Un método de cifrado simétrico

  De esta manera con el uso de una clave de cifrado y el descifrado. Se utilizarán las claves de cifrado y descifrado. Sin la llave no será capaz de descifrar la contraseña, por el contrario, cualquier persona podrá ser la clave para descifrar el.

  La clave debe ser enviada a la otra parte cuando cifrado cifrado simétrico. ¿Cómo podemos con seguridad se puede transmitir? Cuando la llave se envía a través de Internet, si la comunicación es clave para que pueda supervisar que dictará el atacante, mientras que también se pierde significado cifrado. Para esto es para tratar de mantener la clave segura recibido.

2. El método de cifrado asimétrico

  cifrado de clave pública utilizando un par de claves asimétricas. Una llama la clave privada, y el otro se llama la clave pública. Como su nombre indica, la clave privada no puede permitir que nadie más sabe que, si bien la clave pública puede ser liberado libremente, cualquier persona puede obtener.

  El uso de un sistema criptográfico de clave pública, el texto cifrado transmitido utilizando la clave pública de la otra parte está cifrada, la información cifrada recibida por la otra, y luego usando su propia clave privada para el descifrado. De esta manera, no hay necesidad de enviar la clave privada para descifrar, pero también no tiene que preocuparse de llaves y robado por un atacante espionaje.

  El cifrado asimétrico se caracteriza por muchos de transmisión de información, el servidor sólo necesita mantener una clave privada de comunicación cifrado puede realizarse y una pluralidad de clientes.

  Este enfoque tiene las siguientes desventajas:

  • La clave pública es pública, por lo que para el cifrado de clave privada, los hackers pueden utilizar la clave pública para descifrar adquirir interceptada su contenido;
  • Clave Pública no contiene información sobre el servidor, usando un algoritmos de cifrado asimétrico no puede garantizar la legitimidad de la identidad del servidor, existe el riesgo de ataque al medio, el servidor de envío de intermediario clave pública del cliente puede ser interceptada y manipulada durante la transmisión;
  • El cifrado de datos usando un proceso de cifrado y descifrado asimétrico consume cierto tiempo, reduciendo la eficiencia de transmisión de datos;

3. El método de cifrado + cifrado asimétrico simétrico (HTTPS de esta manera)

  La ventaja del uso de clave simétrica es la eficiencia descifrado es relativamente rápido, los beneficios del uso de claves asimétricas que pueden hacer entrega de contenido no puede ser violada, porque incluso si interceptaron a los datos, pero no hay una clave privada correspondiente, no puedan romperse el contenido. Decir que agarrar una caja fuerte, pero no hay ninguna llave de la caja no se puede abrir la caja fuerte. A continuación vamos a cifrado simétrico y el cifrado asimétrico se combinan para hacer pleno uso de sus ventajas respectivas de ambos, en aspectos clave de cambio del uso de la encriptación asimétrica, después de establecer comunicaciones intercambiar mensajes a través de la etapa de cifrado simétrico.

  En concreto: un texto cifrado transmitido utilizando la clave pública del otro para cifrar "clave simétrica" ​​y el otro con su propia clave privada para descifrar get "clave simétrica", que asegura que la seguridad de intercambio de claves bajo la premisa de utilizar el cifrado simétrico para la comunicación. Por lo tanto, HTTPS mezclado el cifrado y el cifrado simétrico y el cifrado asimétrico utilizado.

2. El mensaje puede haber sido manipulado para resolver el problema - Firma Digital

  Red necesidad proceso de transmisión que pasar por muchos nodos intermedios, aunque los datos no se pueden descifrar, pero puede ser manipulado, cómo verificar la integridad de los datos que? ---- verificar las firmas digitales.

  Las firmas digitales tienen dos efectos:

  • Puede determinar si el mensaje es, en efecto firmado por el remitente a cabo concurrente, porque los demás no se puede fingir firma del remitente.
  • Las firmas digitales pueden determinar la integridad del mensaje, para probar si los datos no ha sido manipulado.

  ¿Cómo generar una firma digital:
  

  La primera generación de un mensaje de texto a digerir la función hash, y luego genera una firma digital cifrada con el remitente privada transmitida al receptor junto con el texto original. Entonces no es el destinatario verificar el proceso de firma digital.

  Digital proceso de verificación de firmas:

  

  Sólo el destinatario de la clave pública del remitente puede descifrar la información de resumen cifrado, y luego producir un resumen de la información recibida con la función hash original, la información resumida en comparación con la entrada anterior. Si es así, entonces la información recibida es completa y no se ha modificado en tránsito, o información explicativa se ha modificado, la firma digital puede verificar la integridad de la información.

  Asumen la mensajería se produce entre Kobe, James dos. James envía un mensaje junto con la firma digital a Kobe, Kobe después de recibir el mensaje, mediante la verificación de la firma digital, puede validar el mensaje recibido es enviado por James. Por supuesto, la premisa de este proceso es conocer la clave pública de James Kobe. La pregunta clave es, y el propio mensaje, la clave pública no puede ser enviado a través de una red insegura directamente a Kobe, o cómo llegar al público resultó ser James.

  En este punto es necesario introducir la autoridad de certificación (Certificate Authority, conocido como CA), el número de CA no es mucho, Kobe construyó un cliente de confianza certificados de CA de todos. se firmó CA clave pública de Santiago (y otros datos) genera el certificado digital.

3. Resolver problemas de comunicación la identidad de las partes puede ser disfrazados - Certificado Digital

  autoridad de certificación está en la posición de los lados de cliente y servidor de terceros son fiables.   Introducimos el proceso de negocio de la entidad emisora de certificados:
  

  • operadores de servidores para enviar la clave pública a la tercera CA partido, organizar la información, la información personal (nombre de dominio) y otra información y solicitar la certificación;
  • CA a través de línea, sin conexión y otros diversos medios para verificar la autenticidad de la información proporcionada por el solicitante, tales como la existencia de la organización, el negocio es legítimo, si la propiedad del nombre de dominio y así sucesivamente;
  • Tales como información para su aprobación, CA emitirá documentos de certificación al solicitante - Certificado. Certificado contiene la siguiente información: la clave pública del solicitante, la organización del solicitante y la información personal, agencias de información de entidad emisora, el mensaje de texto sin formato de tiempo válido, el número de serie del certificado, etc., e incluir una firma. En el que el algoritmo de generación de firma: En primer lugar, calcular el resumen del mensaje utilizando una función hash se describe en la información de texto plano, y luego, utilizando la clave privada de la CA para cifrar el resumen del mensaje, es decir, la firma texto cifrado;
  • Cuando un cliente realiza una solicitud al servidor de servidor de cliente, el servidor devuelve el archivo de certificado;
  • Cliente Cliente relacionado con el certificado de lectura de texto plano, usando la misma función hash calculado resumen del mensaje y, a continuación, utilizando la clave pública correspondiente CA descifra la firma mensaje de datos a digerir del certificado contraste, si el mismo, el certificado puede ser confirmada legitimidad, es decir, servidor de claves pública es digno de confianza.
  • El cliente verificará el certificado relacionado con la información de nombre de dominio, la información de tiempo válido; cliente construido confiaba información del certificado CA (incluido el público), si la CA no es de confianza, y luego encontrar el certificado de CA correspondiente, el certificado será juzgado ilegal.

Cuatro, HTTPS flujo de trabajo

1.Client iniciar un HTTPS (como https://juejin.im/user/5a9a9cdcf265da238b7d771cpetición), de conformidad con lo dispuesto en el RFC2818, el cliente tiene que saber la conexión del puerto 443 (por defecto) del servidor.

2.Server el certificado de clave pública preconfigurado (certificado de clave pública) se devuelve al cliente.

la validación de certificados de clave pública 3.Client: por ejemplo, si dentro del período de validez, el uso del certificado no coincide con la solicitud del cliente sitio, que no está en la lista de revocación de CRL, es en un certificado es válido, es un proceso recursivo, hasta verificar el certificado raíz (sistema operativo certificado raíz incorporado o certificado de cliente-root incorporado). Si la información de autenticación a través de la advertencia a seguir, no a través de la pantalla.

4.Client usando el generador de números pseudoaleatorios genera se utiliza un cifrado de clave simétrica, entonces la clave de cifrado simétrica certificado de clave pública emitida Server.

5.Server su clave privada (clave privada) para descifrar el mensaje, para obtener la clave simétrica. En este punto, cliente y servidor tanto mantener la misma clave simétrica.

6.Server mediante el cifrado de clave simétrica "texto plano Un contenido", a un cliente.

7.Client respuesta utilizando la clave simétrica para descifrar el texto cifrado para obtener un "Un contenido claro".

8.Client HTTPS petición iniciada de nuevo, el uso de "contenido claro B" petición de cifrado de clave simétrica, el servidor utiliza la clave simétrica para descifrar el texto cifrado para obtener un "contenido de B claro".

En quinto lugar, la diferencia entre HTTP y HTTPS

  • protocolo de transferencia de texto sin formato de protocolo HTTP, HTTPS se construye mediante SSL + HTTP cifrado protocolo de transmisión, la autenticación de los protocolos de red, protocolos de seguridad de http.

  
  Acerca de la seguridad, describió la relación entre los dos con la analogía más simple es que la carga de camiones, furgonetas bajo HTTP es convertible, los bienes están expuestos. Los HTTPS es un coche recipiente cerrado, seguridad, naturalmente, aumentar mucho.

  • HTTPS es más seguro que el HTTP, los motores de búsqueda, propicio para el SEO, Google, Baidu primera indexación de páginas HTTPS;
  • certificados SSL necesitan utilizar HTTPS, HTTP y por fuera;
  • puerto HTTPS estándar 443, HTTP puerto estándar 80;
  • La capa de transporte HTTPS, HTTP capa de aplicación;
  • HTTPS bloqueo verde de seguridad en el navegador, HTTP no muestra;

En sexto lugar, ¿por qué no todos los sitios utilizan HTTPS

  Desde entonces, el seguro HTTPS, entonces ¿por qué no todos los sitios web utilizan HTTPS?

  En primer lugar, mucha gente todavía cree que existan barreras HTTPS aplicación, el umbral que requiere cuestiones de autoridad del certificado CA SSL. Seleccione el certificado desde la compra hasta la implementación, se consume más tiempo bajo el modelo tradicional.

  En segundo lugar, HTTPS considerado generalmente ser mayor que el HTTP sobrecarga de rendimiento, en comparación con la comunicación de texto llano con comunicación cifrada consumirá más recursos de CPU y de memoria. Si cada cifrado de comunicaciones, consumirá recursos considerables, en partes iguales a la hora en un ordenador, el número de solicitudes que se pueden procesar también debe ser reducida. Pero eso no es el caso, el usuario puede optimizar el rendimiento, el certificado desplegado en SLB o CDN, para resolver este problema. Para dar un ejemplo real, "doble 11" periodo, punto HTTPS Taobao, Lynx todavía garantizar el acceso a los sitios y lateral móvil, navegar, buen funcionamiento de las transacciones, suavizar. Prueba encontró que, después de muchas páginas rendimiento optimizado y HTTP sin cambios e incluso mejoran ligeramente, por lo que después de la optimización a través de HTTPS en realidad no se lenta.

  Además, usted quiere ahorrar el costo de la compra de un certificado es una de las razones. Para la comunicación HTTPS, el certificado es esencial. El certificado debe ser comprado para usar la autoridad de certificación (CA).

  Por último, la conciencia de seguridad. En comparación con el, la conciencia de seguridad doméstica extranjera y la aplicación de la tecnología de Internet es relativamente maduro industria, HTTPS tendencia despliegue de la sociedad, las empresas y el gobierno juntos para empujar.

Referencia: https: //segmentfault.com/a/1190000018992153

https://www.jianshu.com/p/0e1fa5ae6a1e

Supongo que te gusta

Origin www.cnblogs.com/zhjh256/p/12541893.html
Recomendado
Clasificación