¿Es un certificado SSL autofirmado un falso sentido de seguridad?


30

¿Es un certificado SSL autofirmado una falsa sensación de seguridad?

Si está siendo escuchado, el usuario simplemente aceptará el certificado como siempre lo hace.

Respuestas:


25

Pregunta interesante, depende del uso en mi opinión. Todavía está protegido en términos de que la sesión está encriptada, pero no tiene forma de saber si es el certificado SSL correcto que se le presenta a menos que distribuya su certificado raíz de CA a usuarios / clientes. Para pruebas internas / proyectos de desarrollo, esto funcionaría muy bien, usted genera un certificado de CA raíz que utiliza para distribuir a sus usuarios (se puede hacer a través de la Política de grupo en Windows y a través de la línea de comando openssl en Linux / BSD) y luego usa ese certificado raíz para firmando sus CSR's. Los usuarios no verán una advertencia ni nada y usted sabe que el certificado está firmado por su CA interna.

Para los sitios externos en los que no puede asegurar esto, todavía diría que un certificado autofirmado es mejor que ningún SSL si envía contraseñas u otra información confidencial a través de la conexión.

Sin embargo, en el lado positivo, hay muchos emisores de certificados "comerciales" muy baratos, GoDaddy es uno de ellos. Puede obtener un certificado por unos 40 euros por año. GoDaddy incluso ofrece certificados gratuitos para los sitios web de proyectos OpenSource.


Esto es exactamente lo que hacemos. Tenga cuidado, aunque con los certificados baratos. Algunos de ellos tienen CA raíz bastante extrañas y no todos están en la colección de certificados de CA raíz que se envían con todos los navegadores.
wolfgangsz

44
+1 excepto que " el certificado autofirmado es mejor que no tener SSL en absoluto", si verifica que es su certificado y no uno proporcionado por un MITM. Honestamente, ¿cuándo fue la última vez que un usuario normal hizo eso? (Sospecho que la respuesta involucraría la luna azul y los cerdos voladores) En otras palabras, al usar un certificado SSL autofirmado sin haber distribuido sus certificados CA a los usuarios, está insensibilizando a los usuarios a la alerta aterradora que reciben: aprenderán para hacer clic en esto, como "bueno, me dijeron que ignorara la advertencia en mysite.example.com, para que pueda ignorarla en todas partes; ¡mira, un icono de candado!" ¡Voila, falsa sensación de seguridad!
Piskvor

77
@Piskvor, en realidad es culpa de los navegadores. Primero, los navegadores generalmente no proporcionan una forma de "aceptar permanentemente" certificados autofirmados previamente desconocidos para que el usuario no se ponga en peligro en cada inicio de sesión. En segundo lugar, los navegadores no desalientan el uso del antiguo HTTP simple, también crean una falsa sensación de seguridad. Entonces, HTTP siempre es peor que HTTPS, tanto en seguridad como en conocimiento del usuario (¡al menos reciben la advertencia!).
Rotsor

1
@Rotsor: Primero, Opera tiene esta característica que usted describe incorporada, FF tiene Certificate Patrol (que al menos advierte sobre el cambio de certificado). Tenga en cuenta también que no todo en SSL es un navegador (IMAPS, etc.). En segundo lugar, ¿cómo es la gran cantidad de sitios HTTP solamente culpa de los navegadores? (y no, los navegadores solo HTTPS nunca se dieron cuenta, precisamente porque había una red drásticamente más pequeña para navegar con ellos). En tercer lugar, "recibirían la advertencia" sería útil, si solo los usuarios lo leyeran , y no hicieran clic ciegamente en "aceptar" para que desaparezca. "Hacer clic en aceptar significa comprender" es un engaño compartido de los desarrolladores.
Piskvor

1
@Piskvor, es bueno saber que algunos navegadores proporcionan esa función. En cuanto a HTTP, no puedo decir qué hay que hacer (rechazar HTTP obviamente no es una opción), pero tener más advertencias relacionadas con la seguridad con SSL autofirmado que sin SSL es definitivamente incorrecto y los navegadores son ¡culpa!
Rotsor

12

Voy a estar en desacuerdo, una vez por razones técnicas limitadas, y una vez por razones generales.

El fundamento técnico estrecho es que el OP preguntó acerca de los certificados autofirmados, y varias otras respuestas se refieren a los certificados firmados por CA privadas, lo cual es un problema ligeramente diferente. Pero no es muy diferente, así que eso es realmente solo una nota de pasada.

La principal objeción es que creo que mientras los certificados firmados comercialmente sean más que un gasto trivial, y $ 40 al año no es un gasto trivial para muchas personas en este planeta, los certificados autofirmados tienen un papel importante que desempeñar en seguridad de internet, siempre que se reconozcan sus limitaciones .

Un certificado autofirmado es como una clave ssh de mi known_hostsarchivo. Sin verificación independiente, no puede asegurarme que estoy hablando con el sistema que creo que soy; pero puede asegurarme que el sistema con el que estoy hablando ahora es el mismo sistema con el que hablé la última vez que pensé que estaba teniendo una conversación con él. Guardamos en caché las claves ssh todo el tiempo, y nunca he conocido a un administrador del sistema que verifique independientemente más de una fracción de las claves públicas en su known_hostsarchivo.

Los certificados autofirmados (y, para el caso, los certificados firmados por CA no generalmente válidas) son mucho mejores que ningún SSL, siempre y cuando las personas se den cuenta de que, a menos que los verifiquen, solo aseguran la comunicación para ellos mismos, el servidor en el otro extremo del registro DNS, y cualquier hombre en el medio actualmente en la línea. Si verifican independientemente el certificado, la autenticación y el cifrado son al menos tan fuertes como los proporcionados por un certificado firmado por una CA reconocida.

Por otra parte, aquellos que deseen presentar el uso de certificados firmados por una autoridad reconocida como el uno y única panacea de seguridad de Internet puede tener que pensar mucho sobre cuestiones tales como la inclusión de CA firmante del Gobierno chino en el paquete estándar de Mozilla , y el certificados SSL fraudulentos firmados por Comodo .


Por desgracia, el modelo de "CA confiable" está roto (y lo ha estado durante años); desafortunadamente, no va a desaparecer (y no hay nada realmente mejor para reemplazarlo). Como siempre, SSL y las CA de confianza no son un polvo mágico de seguridad; el usuario necesita mantener activamente la seguridad, que es, en su mayor parte, una suposición bastante loca.
Piskvor

2
¿Son sus usuarios capaces de hacer una evaluación educada de su nivel de confianza en la integridad de su ruta al servidor DNS actual (incluida la posibilidad de envenenamiento de caché) y el dispositivo que están golpeando? El mío no sabe qué es DNS, y mucho menos poder tomar decisiones de seguridad educadas sobre su conexión a un servidor en otro estado, conectado a otro sitio a través de MPLS, que está conectado al usuario a través de una VPN de cliente, que son a través de wifi cafetería no encriptada. Evite darles esa responsabilidad.
Shane Madden

2
@Shane Madden: Un área en la que esto es posible son las interfaces web de administración, por ejemplo, phpMyAdmin (o, en menor grado, SVN sobre HTTPS). Por lo general, hay un número limitado de usuarios, y contienen una fracción significativa de una pista . No esperaría que mi bisabuelo hiciera cara o cruz de una advertencia de certificado SSL, pero definitivamente espero esto de un compañero administrador del sistema, especialmente si se trata de un servidor bajo su control. Un usuario de variedades de jardín tampoco tiene ni idea de que known_hosts@MadHatter está haciendo referencia.
Piskvor

8

Para los sitios externos, donde los usuarios no tienen instalado su certificado de CA (que es el caso más común), sí, un certificado autofirmado da una falsa sensación de seguridad y, por lo tanto, es peor que inútil:

  • Primero, sin un certificado de CA preinstalado, ¿cómo verifica el usuario que el certificado realmente proviene de usted y no de un atacante? Al hacer coincidir los campos del certificado (CN, huellas digitales, etc.), por supuesto, pero ¿contra qué? Así que ahora necesita un canal lateral para verificar el certificado, y en los pocos casos que he visto eso, los operadores de la línea de soporte (que deberían haber servido como canal lateral para la verificación) no tienen idea de lo que se supone que significa; Además, operar dicho canal lateral es mucho más costoso que obtener un certificado firmado por CA de confianza, por lo que el usuario debe confiar ciegamente en usted.

  • En segundo lugar, la alerta de miedo que recibe el usuario da miedo por una buena razón: dado que el usuario no puede / no verificará el certificado presentado, es posible que esté transmitiendo datos de forma segura al Elbonian Haxx0r D00dz.

  • Tercero, y lo peor de todo, está insensibilizando a los usuarios : "bueno, me dijeron que debería ignorar esa advertencia en https://mysite.example.com/ , y un yunque no cayó sobre mi cabeza, y mi el pez dorado tampoco murió; muuuy, eso significa que es solo otro cuadro de alerta sin ningún significado real, por lo que puedo ignorar este cuadro cada vez que lo encuentro; de todos modos, obtengo ese bonito ícono de candado, y eso es importante ".

En otras palabras, el nivel de protección es comparable al HTTP simple (a excepción del rastreo en el cable: aunque los datos están encriptados en tránsito, esa es una característica bastante anémica sin verificación de punto final), pero la sensación de protección es irrazonablemente alta . Mala analogía del automóvil: "Tengo ABS, así que ahora puedo conducir de manera más segura en malas condiciones", excepto que el ABS solo existe en el folleto de ventas del automóvil, sin estar realmente presente en el automóvil.

Lectura sugerida: OWASP SSL Mejores prácticas

TL; DR: Al usar certificados autofirmados en sitios públicos, está haciendo de la Red un lugar peor, un usuario despistado a la vez.


2
@downvoter: Le agradecería si señalara dónde mi respuesta es objetivamente incorrecta ("incorrecta" en lugar de "incómoda, inconveniente y una molestia para implementar"). La seguridad es difícil, y decir "la la la no puedo escucharte" no hace nada para solucionarlo.
Piskvor

2
Aunque no voté en contra de su respuesta, el texto de información sobre herramientas en la flecha hacia abajo indica el voto negativo sin más razón que una respuesta que no es útil. Creo que la falsa sensación de péndulo de seguridad también puede oscilar en la otra dirección. Las recientes infracciones de comodo RA demuestran que tampoco es tan difícil para un "villano" obtener un certificado perfectamente legítimo.
mahnsc

@mahnsc: Gracias por el recordatorio; Soy consciente de eso :-) "¿Es un certificado SSL autofirmado una falsa sensación de seguridad?" "Sí, por las siguientes razones ..." suena útil, ¿no? Entonces, tenía curiosidad de por qué este no sería el caso: podría aprender algo desde un punto de vista opuesto; de un voto negativo, no tanto.
Piskvor

1
@mahnsc: Buen punto sobre las CA comprometidas. No estoy diciendo que la lista de CA raíz esté establecida en piedra e inquebrantable: no existe seguridad perfecta; pero requiere mucho más esfuerzo romper eso que configurar un proxy SSL de captura en una puerta de enlace de red.
Piskvor

1
@mahnsc: quise decir que es más fácil configurar un proxy SSL y espero que el usuario haga clic en las advertencias que configurar un proxy SSL y que una solicitud de certificado falsa pase por el proceso de verificación de CA. Cualquiera de los dos es posible, como hemos visto, pero el primero es mucho más fácil de hacer (y más difícil de detectar después, ya que los usuarios del navegador generalmente no mantienen pistas de auditoría).
Piskvor

8

Depende Si cree que lo hace más seguro, entonces aumenta su riesgo al elegir hacer cosas más riesgosas con su falsa sensación de seguridad. Si lo trata funcionalmente equivalente a HTTP, entonces diría que es un poco más seguro.

Sin SSL / HTTPS, cualquier persona con wireshark en su red (o la red local de cualquier persona que inicie sesión) puede escuchar trivialmente y capturar nombres de usuario / contraseñas enviados como texto sin formato.

Con SSL autofirmado no pueden simplemente escuchar, sino que ahora deben falsificar su sitio, potencialmente alterar el DNS para hacer un ataque man it the middle (MITM). Esto sigue siendo una amenaza, pero es significativamente más difícil de lograr para ellos.

El otro problema con el uso de SSL autofirmado es que muchos navegadores tratan los certificados autofirmados como una amenaza de seguridad importante y le advierten antes de ingresar (por ejemplo, Chrome) con una página roja gigante. http://www.sslshopper.com/article-ssl-certificates-in-google-chrome.html Esto podría ser un gran inconveniente.

Entonces, la conclusión es: si ejecuta algo que no necesita ser particularmente seguro (por ejemplo, sin datos de tarjeta de crédito, sin números de seguro social) y no puede permitirse un certificado adecuado, un certificado autofirmado podría tener sentido (por ejemplo, evitar que otros usuarios de la red puedan rastrear fácilmente su información de inicio de sesión).


0

Depende de lo que quiera decir con "seguridad", y cuál es el alcance.

Por ejemplo, su navegador viene con un conjunto de CA aceptado por defecto. Esto significa que cualquier certificado emitido por esta CA es aceptado por su navegador (hasta que coincida con el nombre DNS). Ahora, imagine que algún gobierno malvado posee una CA, o puede obligar a la CA a emitir un certificado para el sitio que está visitando. Entonces, hacer un MITM es muy fácil: pueden hacer proxy de su conexión, enviando a su navegador el certificado que tienen, y su navegador lo aceptará, ya que proviene de una CA "confiable". Hasta que sean transparentes a DNS (que es la base para MITM), está bien.

Entonces, la "lista de AC aceptadas" es básicamente un gran agujero de seguridad, hasta que una de estas AC coopere con algún gobierno malvado. Tener tu propia CA es mucho mejor.

Por supuesto, puede hacerlo en su empresa o en su servidor doméstico, porque puede instalar su propio certificado de CA en el cliente, que también controla. En un servidor público, no puede tratar con ningún usuario, pidiéndole que agregue una excepción o que agregue su certificado.

Por lo tanto, depende de lo que quiera decir para "seguridad" y del alcance. SI posee los clientes, SEGURO, el autofirmado es más seguro, hasta que instale en el propio cliente el certificado de su propia CA.

Por supuesto, no puede hacerlo en un sitio web público ya que no posee todos los clientes. Entonces, correrá el riesgo de comportamientos diferentes, lo que no es seguro.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.