¿Es seguro consumir servicios a través de HTTPS que no está firmado por una CA de confianza?

25

Estoy creando una aplicación cliente que consumirá una aplicación de servicio web proporcionada por un proveedor de servicios externo. El servicio está expuesto con una URL HTTPS que no está firmada por una autoridad de certificación confiable.

¿Es seguro consumir sus servicios con la situación actual? Tenga en cuenta que conocemos a la compañía proveedora de servicios y tenemos un acuerdo comercial con ellos.

    
pregunta Salman 27.03.2017 - 13:28
fuente

6 respuestas

40

Puede usarlo de manera segura si pinea su certificado . Esto agrega complejidad al mantenimiento y la implementación, pero en realidad mejora la seguridad.

Si no lo hace, entonces depende de cómo construyeron su cadena de confianza: si solo están usando certificados autofirmados, entonces no tienen suerte y no pueden usar sus servicios de forma segura. Si solo usan una CA privada, aún puede importar su CA y confiar en ella.

En general, le recomendaría que implemente la fijación de certificados (o raíz).

Editar @LieRyan hizo un buen comentario en el que me gustaría gastar.

En algunas configuraciones, fijar un certificado requerirá que lo agregue a las listas de anclajes raíz de la máquina. Por ejemplo, esto es necesario si está utilizando IIS en Windows para alojar su aplicación.

Ahora, dependiendo de cómo se generó el certificado, esto podría ser o no ser un problema. Específicamente: si el certificado tiene una propiedad de "uso clave" y esa propiedad NO enumera "Firma de certificado", entonces se puede usar de manera segura porque no se puede usar para firmar otros certificados (los detalles son un poco más complejos pero ese es el más importante).

Si el certificado NO tiene una propiedad de "uso clave" o si esa propiedad tiene una "firma de certificado", entonces podría llevar a que el SO confíe en otros certificados firmados por ese certificado. Si implementó la fijación de certificados, eso no debería ser un problema para su aplicación (ya que la fijación evitará el uso de certificados válidos), pero podría ser para otra parte del sistema operativo.

    
respondido por el Stephane 27.03.2017 - 14:27
fuente
26
  

¿Es seguro consumir sus servicios con la situación actual?

Esa es una pregunta cargada. Déjame descomponerlo:

  

¿Puedo comunicarme con ellos de forma segura, de forma que ningún tercero pueda interceptarlos?

Sí, puedes. Sin embargo, deberá realizar la ceremonia de intercambio de claves y la verificación de identidad manualmente en lugar de depender de la CA para hacerlo. Esto se puede hacer, por ejemplo, teniendo representantes de confianza de cada compañía que se reúnan regularmente para intercambiar información de identificación e intercambiar materiales de claves (certificados). La seguridad de su conexión depende de la seguridad de este intercambio, por lo que debe asegurarse de asegurar dicho intercambio con el nivel de seguridad adecuado.

  

¿Puedo confiar en que esta empresa no me estafará?

Eso es un problema legal. Tenga en cuenta que incluso la CA pública no hace esta afirmación. Todo lo que hace una CA pública es afirmar que una clave pertenece a una organización específica, no afirman la moralidad de la empresa que certifican. Es posible que desee asegurarse de tener contratos sobre qué tipo de servicios se prestarán entre sí, y si necesita que se liquiden los pagos, y qué sucede si una parte rompe el contrato de forma unilateral.

  

¿Puedo confiar en que esta empresa sea competente en la gestión de su seguridad para evitar pérdidas indebidas?

Esa es también una pregunta difícil. Usted querría asegurarse de que su contrato especifique qué sucede si la otra parte no puede cumplir con sus requisitos de seguridad y causó pérdidas a otros de usted. También es posible que desee solicitar a la otra compañía que presente un certificado de auditoría por parte de un auditor financiero y / o de seguridad independiente.

    
respondido por el Lie Ryan 27.03.2017 - 15:22
fuente
6

Como siempre, se trata de que confíe en el proveedor de ese servicio.

En este caso, no puede retransmitir a una CA (Autoridad de Certificación) conocida mundialmente para garantizar la confianza, lo cual es cuestionable de todos modos.

Como siempre, al conectarse, debe verificar el emisor del certificado (la CA) y si confía en esa CA a través de su tienda local. Si confía en el certificado de CA almacenado localmente, esto no es menos seguro que (o incluso más seguro que) usar un CA de terceros.

    
respondido por el Marcel 27.03.2017 - 13:40
fuente
2

El riesgo de usar un certificado autofirmado es para el cliente. Los certificados SSL son utilizados por el cliente para conocer la clave pública de los servidores que luego se usa para el cifrado. El uso de un certificado firmado por una CA de confianza garantiza al cliente que la clave pertenece al servidor deseado.

Cuando un cliente acepta un certificado que no está firmado por una CA de confianza, existe el riesgo de que el cliente se comunique con un servidor falso (aquí viene el ataque del hombre en medio). Si el cliente confirma que el certificado es genuino por una vez, entonces el navegador recordará el certificado y no mostrará ninguna advertencia para la próxima visita.

Se debe tener en cuenta que dado que un certificado autofirmado no es "administrado" por una CA, no hay revocación posible. Si un atacante roba su clave privada, usted pierde permanentemente, mientras que los certificados emitidos por la AC aún tienen la red de seguridad teórica de revocación (una forma en que la CA declara que un certificado determinado está en mal estado).

Por lo tanto, se recomienda utilizar certificados firmados por una CA de confianza. Si no puede darse el lujo de obtener un certificado de CA, es mejor ir a la fijación de certificados como se sugiere en la respuesta de stephane.

    
respondido por el jey 27.03.2017 - 15:41
fuente
1

Su pregunta puede terminar en ¿puedo confiar en una URL HTTPS que no está firmada por una autoridad de certificación confiable?

En mi humilde opinión, no es exactamente la pregunta correcta. Preferiría ¿Qué puede garantizar que consulte el servicio adecuado? La diferencia no es simplemente la redacción. Es en lo que puedes y quieres confiar. La respuesta a la primera pregunta es inmediatamente el servicio debe utilizar un certificado de una CA conocida . La respuesta a la segunda pregunta es Debo conocer el certificado o la autoridad de certificación del servicio , pero ese certificado puede ser autofirmado, siempre que el servicio lo proporcione un canal alternativo. Luego, simplemente declara ese certificado o cualquier certificado autofirmado que lo validaría en la configuración de la aplicación y puede confiar en .

    
respondido por el Serge Ballesta 27.03.2017 - 16:25
fuente
0

No es el consumo del servicio lo que le brinda seguridad (autenticidad), En cambio, es el conocimiento de cómo verifica el certificado recibido del servidor lo que le asegura la autenticidad.

El hecho de que estés preguntando muestra el nivel de seguridad que tienes: un usuario pasivo que desea avanzar en seguridad.

El uso de una CA conocida (por el sistema operativo) hace que el consumo de un certificado firmado sea seguro para cualquier usuario pasivo, ya que el sistema de confianza puede advertir con información precisa sobre cualquier signo de posible falta de autenticidad (explicando lo "posible" en condición bien entendida), o ninguna advertencia si todo está bien (o todo el sistema está comprometido, lo que está fuera de alcance).

Usted dijo que está "construyendo una aplicación" a pesar de que la aplicación en sí podría técnicamente contener cualquier clave pública para comparación y comportarse de manera segura (siendo capaz de verificar la autenticidad). Como desarrollador, estoy notando una tendencia reciente a los obstáculos en el proceso de aprobación de la biblioteca y la aplicación pública, incluso más de lo necesario, CA autofirmada (donde el yo está bien definido), por ejemplo. esto emerge en enlace

    
respondido por el user160083 27.03.2017 - 15:39
fuente

Lea otras preguntas en las etiquetas