Criptografía de clave pública
Primero debe comprender el principio de criptografía de clave pública. Tanto el servidor como el cliente tienen su propia clave pública y clave (secreta / privada).
La clave pública se puede usar para dos cosas.
- Cifrar datos a receta .
- Verifique los datos recibidos del remitente u otros datos firmados, como certificados firmados.
La clave privada también se puede usar para dos cosas.
- Descifra los datos recibidos del remitente.
- Firmar datos en receptor u otros datos, como certificados firmados.
Cuando realice el envío de datos a una receta , se seguirán los siguientes pasos:
- El remitente firma los datos con su clave privada.
- El remitente encripta los datos con recetas clave pública
- El receptor descifra los datos con su clave privada.
- El receptor verifica la firma de remitentes con remitentes clave pública.
Cadena de certificados
Un certificado es un «documento digital» que verifica la propiedad de la clave pública, el certificado se firma de la misma manera que otros datos en la criptografía de clave pública. Y los certificados pueden iniciar sesión con una clave privada que pertenece a otro certificado firmado por un tercer certificado, esto se denomina cadena de certificados
Tomemos un ejemplo, el emisor de certificados envía un certificado a un host web. El certificado que pertenece al emisor de certificados está firmado por una entidad emisora de certificados . Se completarán los siguientes pasos.
- La autoridad de certificación crea un par de claves públicas con el certificado de pertenencia. (Certificado raíz)
- La autoridad de certificación firma su propio certificado con su clave privada. (Autofirmado)
- El emisor de certificados crea un par de claves públicas con el certificado de pertenencia.
- El certificado de autoridad firma emisores de certificados con su clave privada.
- El webhost crea un par de claves públicas con el certificado de pertenencia.
- El emisor de certificados firma el certificado de webhosts con su clave privada.
Esto se denomina cadena de certificados , si el certificado de la autoridad de certificados es un certificado de confianza, el certificado de webhost es de confianza. Esta cadena se puede expandir hasta el infinito.
Seguridad de la capa de transporte
- Si hay un proxy interceptor entre el servidor web y el cliente, principalmente el proxy utiliza sus propios certificados firmados en los que el cliente puede o no puede confiar. Entonces, ¿por qué no hacer proxy simplemente tomar el certificado del servidor y enviarlo al cliente para que el cliente confíe en él? Además, si la clave privada solo la tiene el servidor, ¿por qué un intermediario otorga su propio certificado y descifra el mensaje?
Debido a que hay una clave pública que pertenece al certificado enviado por el servidor , el cliente cifrará los datos utilizando la clave pública del servidor , y middle-man no puede descifrar los datos enviados por client ya que middle-man no tiene la clave privada del servidor .
- El hash de firma generado por la clave privada se puede descifrar con una clave pública. ¿Alguien no puede descifrar eso además del cliente y puede ver la firma?
La firma no está cifrada, por lo que no puede descifrarla. Pero puede verificarlo usando la clave pública del remitente , y todos los que tengan la clave pública del remitente pueden verificar la firma.
- ¿El cliente ya tiene la clave pública con la que inicia el mensaje cifrado o primero pregunta al servidor?
Normalmente, la clave pública y el certificado se intercambian bajo el protocolo de enlace de la sesión TLS. Pero es posible generar previamente un certificado y otorgarle al servidor ese certificado antes del protocolo de enlace TLS. Por ejemplo, esto se usa en el servidor OpenSSH.