¿Es seguro transferir certificados del Servicio 1 al Servicio 2 a través de HTTPS?

1

Necesito transferir certificados SSL (incluidas sus claves privadas) entre dos servicios a través de HTTPS.

Por ejemplo, el servicio 1 hace una llamada PUT REST al servicio 2 a través de HTTPS. Solicitud de carga útil = el certificado que incluye la clave privada.

¿Eso es seguro? ¿Hay una forma más segura de transferir certificados?

    
pregunta Andrew Hanson 12.12.2017 - 20:02
fuente

1 respuesta

1

Limitemos la pregunta al tráfico de la red solamente, por lo que tratamos las máquinas como seguras. Además, tratamos la versión TLS utilizada como segura (asegúrese de usar la última versión, ya que hubo algunos errores en versiones anteriores).

La seguridad de HTTPS consta de dos partes:

Autenticidad: si ambos clientes ya tienen algún tipo de certificado conocido por el otro lado o uno firmado por una CA, ambos lados confían (o un mecanismo de token implementado de forma segura, como en su ejemplo), Se puede asumir que el cliente al que se están conectando es, de hecho, el que dice ser. Esto está asegurado por las firmas digitales, que consideramos seguras en este momento (suponiendo que se utilicen algoritmos criptográficos y hash adecuados, como SHA256 y RSA-2048 o más).

Cifrado: La seguridad del cifrado depende de si ambas partes pueden confiar en las claves que se están utilizando. Suponiendo que ninguna de las partes filtró una clave privada, es seguro asumir que nadie, excepto esos dos clientes, puede participar en el intercambio de claves inicial. Las firmas digitales mencionadas anteriormente garantizan que las claves asimétricas pertenecen al otro lado respectivamente, mientras que la criptografía asimétrica garantiza que solo el propietario de la clave privada puede leer los mensajes.

Si se cumplen estas condiciones, ambas partes pueden acordar de forma segura un secreto compartido para esta sesión HTTPS, sin que nadie en el medio pueda calcular el mismo secreto, incluso si lee todos los paquetes que se envían.

Editar: usando el método que agregó a su pregunta, esta transferencia debe ser segura (tenga en cuenta las condiciones anteriores). Asegúrese de que AMBOS lados proporcionen una forma de autenticarse respectivamente. Si el Servicio A se conecta al Servicio B (que es del lado del servidor en este ejemplo), A verifica el certificado de B. Son capaces de establecer una conexión segura, pero B no puede estar seguro de que A es quien pretende ser .

Aquí es donde se debe usar su sistema de token (con suerte seguro). También puede usar otra forma de autenticación, pero asegúrese de usar una , ya que esto podría ser un problema grave. Un atacante puede importar su propio certificado al Servicio B ... No digo más;)

    
respondido por el GxTruth 13.12.2017 - 09:31
fuente

Lea otras preguntas en las etiquetas