¿La tercera parte requiere la clave pública de mi servidor para una conexión segura?

3

Estoy intentando integrarme con un servicio de terceros y han solicitado la clave pública de nuestro servidor. Se lo envié a ellos y dijeron que lo habían configurado en su extremo. Para que yo les haga una solicitud, ellos dicen que debo incluir el certificado con la solicitud.

¿Cómo funciona exactamente este esquema? No veo cómo puede funcionar un intercambio Diffie-Hellman en este caso. Cualquier esquema que pienso puede romperse fácilmente en el caso de un MITM. No tenemos forma de generar el secreto y enviárselo de forma segura como un apretón de manos estándar. Pero si generan el secreto, ¿cómo pueden devolverlo y demostrar que fueron ellos quienes lo generaron?

Estoy usando cURL, así que asumo que quieren que haga la solicitud con el indicador --cert (incluye clave pública y privada).

  

--cert le dice a curl que use el archivo de certificado de cliente especificado al obtener un archivo con HTTPS, FTPS u otro protocolo basado en SSL. los   el certificado debe estar en formato PKCS # 12 si se usa transporte seguro, o   Formato PEM si se utiliza cualquier otro motor. Si la contraseña opcional no es   especificado, será consultado en el terminal. Tenga en cuenta que este   opción asume un archivo de "certificado" que es la clave privada y la   certificado de cliente concatenado.

    
pregunta James E 17.11.2015 - 09:28
fuente

2 respuestas

5

Esto es autenticación mutua TLS.

Es una parte probada y bien documentada de TLS y ocurre durante el protocolo de enlace.

No ocurre nada inusual y se especifica que el protocolo de enlace falla si no proporciona el certificado del cliente.

MitM sigue siendo una preocupación, pero eso se ve mitigado para usted como cliente por la confianza de CA y la firma (o la fijación de certificados) por su parte y por la confianza de CA similar (o la fijación de certificados del cliente) en el lado del servidor. Alguien que suministre un certificado falsificado desde una posición MitM deberá estar firmado por CA o por un ingeniero social de un lado o del otro para fijar sus certificados maliciosos.

IMPORTANTE : DEBE proporcionar el certificado del cliente (si no está firmado por CA) de manera segura al operador del servidor. El intercambio de claves en banda ciertamente no está a la altura de esta tarea. Una opción es publicar el certificado en un punto final HTTPS seguro para un dominio del que sea propietario, desde el cual el operador del servidor puede descargar el certificado con la seguridad de que es de usted y no ha sido manipulado en tránsito. Esto tiene sus defectos (CA incompetentes, compromiso del servidor, etc.), pero debería ser suficiente para la mayoría de los casos.

Aquí hay una buena descripción del proceso: enlace

    
respondido por el Alain O'Dea 17.11.2015 - 17:00
fuente
0

El esquema funciona de la siguiente manera:

Al mostrar que puede cifrar o descifrar un mensaje con su clave privada , usted se autentica ante el tercero.

Debido a que su clave pública es pública, el tercero no está autentificado.

Cuando está utilizando https en sus solicitudes, obtiene un certificado que también autentica al tercero.

Por supuesto, también establece un canal de comunicación cifrado (seguro).

    
respondido por el jknappen 17.11.2015 - 09:53
fuente

Lea otras preguntas en las etiquetas