¿Es posible usar una colección abierta de certificados SSL predeterminados para mi navegador?

3

Los navegadores y los sistemas operativos vienen con un conjunto de certificados SSL predeterminados para organizaciones bien conocidas, como los certificados raíz de las CA.

Comprendo que el modelo de confianza es el siguiente: selecciono (en realidad, los desarrolladores de mi software seleccionan para mí) algunas de las principales autoridades de certificación y decido que confío en ellas. Aunque casi nunca voy a los sitios de estas entidades emisoras de certificados, los sitios a los que utilizo certificados que dependen de las entidades emisoras de certificados, por lo que confío automáticamente en cualquier certificado derivado de un certificado raíz en el que confío.

Sin embargo, realmente confío en los sitios que visito más que las CA raíz . Por lo tanto, no quiero usar este modelo basado en árboles. En su lugar, me gustaría que fuera mi responsabilidad personal verificar y almacenar individualmente el certificado de cada sitio que visito. Entiendo que esto puede generar riesgos ya que mis propios recursos para detectar certificados comprometidos son limitados.

Parece que podría hacer esto hoy: puedo eliminar todos mis certificados raíz y comenzar a agregar excepciones a cada sitio que visito (asumiendo que decido confiar en ellos). Sin embargo, esto introduciría un período de ajuste muy frustrante en el que mi navegación se interrumpe con frecuencia al tener que agregar constantemente una excepción a los sitios que navego con frecuencia.

Además, me imagino que esta impracticabilidad se puede resolver fácilmente: muchos de los sitios que visito son casos no controvertidos, confiables y directos, como Google, StackExchange, sitios de noticias, etc. Si algunos extraños al azar en Internet acordaron que un certificado es el certificado SSL legítimo para www.cnn.com, podría creerlo y simplemente usar el certificado que dieron (¿cuáles son las probabilidades de que estas personas hayan comprometido el certificado de CNN?) y al mismo tiempo conspiró para fabricar un consenso aparente a favor del certificado falsificado?). Por lo tanto, podría haber un repositorio en línea de sitios comunes, no controvertidos, para que pueda descargar sus certificados de forma masiva cada año y así reducir enormemente el número de excepciones que necesito agregar. Obviamente, los casos delicados como mi banco no se incluirían en este repositorio; yo mismo examinaría ese certificado manualmente luego de una cuidadosa consideración.

Esto eliminaría mi necesidad de confiar en los certificados raíz y eliminaría el riesgo de CAs comprometidas o malintencionadas. A cambio, el nuevo riesgo es que haya una operación muy concertada para envenenar el repositorio con certificados falsificados de un sitio intrascendente que se ha comprometido justo cuando descargo mis certificados para el año (puedo compararlos con los que comparto). Ya tenemos y escrutamos cambios inesperados). El impacto en la facilidad de uso es insignificante: después de instalar mi navegador, solo necesito descargar un archivo zip lleno de certificados y volcarlos en mi caché de certificados. Ahora tendría que decidir personalmente si confiar en sitios oscuros o sensibles en lugar de confiarlos automáticamente a través del certificado raíz, pero tal vez eso no sea algo tan malo.

¿Es este tipo de modelo posible? ¿Ya existe tal repositorio? ¿Existen fallas importantes que no he considerado?

Tenga en cuenta que también estoy interesado en las implicaciones de los problemas de seguridad de larga data. Por ejemplo, creo que es interesante considerar la implicación de adoptar mi esquema propuesto anteriormente, dada la posibilidad de que mi CA raíz y mi banco ya hayan sido comprometidos y lo hayan sido durante varios años.

    
pregunta Superbest 30.12.2014 - 18:34
fuente

2 respuestas

2

El modelo del que habla es Fijación de certificados y claves públicas . El defecto primario es la mantenibilidad; es el problema tradicional de hosts contra dns con la carga adicional de asegurarse de que las actualizaciones manuales sean confiables (porque si no prestas atención allí, no has ganado nada).

También puede ser más difícil administrar el soporte técnico en su software básico. Observo que Firefox parece haber agregado algo para ello . Chrome ha tenido algunos pinches desde Chromium 13 , aunque no está claro. yo que es una interfaz accesible por el usuario.

En resumen, es una buena idea, no trivial de configurar, más difícil de mantener con el tiempo. Tiene sentido en ciertos ámbitos limitados de relaciones de confianza altamente sensibles (su banco es bueno), pero no como una forma general de vida.

    
respondido por el gowenfawr 30.12.2014 - 19:26
fuente
1
  

¿Es este tipo de modelo posible? ¿Ya existe tal repositorio?

Todavía no creo que exista tal cosa. Además, no creo que sea práctico debido al gran tamaño.

Sin embargo: a continuación hay algunas cosas que van en una dirección similar.

Google hace algo similar con sus conjuntos de pines de certificados precargados. (Pero solo cargan un pequeño número de sitios hasta donde yo sé.

Hay cosas similares. Sé de varios complementos de Firefox que hacen cosas similares. - Todos ellos son interesantes a su manera, pero ninguno de ellos es realmente satisfactorio.

Mecanismos en línea para monitorear / agregar certificados.

Aquí hay algunas ideas que requieren una conexión a Internet.

Existe el " Proyecto de perspectivas ". La idea es que hay varios notarios en todo el Internet que puedes preguntar si un certificado dado es de alguna manera nuevo o extraño. ( complemento de Firefox )

Una extensión de "Perspectivas" es el proyecto " Convergencia de Moxie Marlinspike . ( complemento de Firefox )

Y hay " Patrulla de Certificación " que le avisa (más o menos) de cambios inesperados en el certificado. - Encontré el nivel de ruido terrible para la navegación general. Fue un infierno pop-up. - Pero es bastante útil tener una idea de la gran cantidad de cambios que suceden en cert-sphere. (Lo cual creo que contaría contra la distribución de un conjunto de certificados como un archivo zip o algo así). ( Complemento de Firefox )

Una idea para eliminar el "Rogue CA que acaba de emitir certificados para * .google.com, * .microsoft.com y nadie se dio cuenta" -problema es el problema de Adam Langley " Transparencia del certificado ". La idea básica es que un certificado no se considera válido hasta que se anuncie públicamente en un registro. Esto no eliminaría las CA falsas / pirateadas, pero haría que el daño sea mucho más fácil de evaluar y corregir.

Hay " DANE " que solo mantiene un hash de certificado en DNS. Esto se puede utilizar además del sistema de cadena de confianza de CA normal. - O podría ser usado en lugar de él.

Sin conexión

Aquí hay algunas ideas que no requieren conexión a Internet.

Chipsets precargados de Chrome
Chrome se envía con (y se actualiza regularmente) algunos hashes de certificados. enlace

    
respondido por el StackzOfZtuff 31.12.2014 - 15:13
fuente

Lea otras preguntas en las etiquetas