¿Es una mala práctica usar certificados SSL autofirmados?

29

Los certificados SSL son bastante caros para las personas, especialmente si necesita proteger diferentes subdominios. Estoy considerando usar certificados autofirmados, ya que mi objetivo principal es asegurar la conexión y no autenticarme.

Sin embargo, varios navegadores muestran advertencias desagradables cuando se encuentran con dicho certificado. ¿Desalentaría el uso de certificados autofirmados (por ejemplo, para aplicaciones web pequeñas o la página de administración de un sitio web pequeño)? ¿O está bien en algunos casos?

Wookai
fuente

Respuestas:

14

En general, es malo usar un certificado autofirmado. Si lo hace, corre el riesgo de que las personas abandonen su sitio cuando reciban una advertencia de que su certificado es malo. Más importante aún, corre un mayor riesgo de que alguien realice un ataque de inyección en el que use su propio certificado autofirmado en lugar del suyo y el visitante no sepa nada mejor.

Consulte el artículo aquí, http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.html para obtener un poco más de información al respecto.

Ben Hoffman
fuente
14

Como dijo RandomBen, los certificados autofirmados generalmente están mal vistos por las razones que explicó. Pero hay una situación en la que están bien: si el conjunto de personas que necesitan enviar datos confidenciales a su sitio web es pequeño y limitado, todos son algo técnicamente competentes, y usted puede comunicarse con todos ellos. En ese caso, puede proporcionar a cada persona los detalles del certificado, luego pueden verificar manualmente el certificado cuando van a su sitio y agregar una excepción de seguridad, si corresponde.

Como ejemplo extremo, en mi VPS personal tengo un subdominio administrativo, al que solo yo debería tener acceso. No habría ningún problema para asegurar ese dominio con un certificado autofirmado porque puedo verificar manualmente que el certificado del servidor que se utiliza para proteger la conexión es el mismo que instalé en el servidor.

En los casos en que un certificado autofirmado no funcione o prefiera tener uno "real", recomiendo Let's Encrypt , un proyecto iniciado por Internet Security Research Group y respaldado por las principales compañías de Internet, que ofrece certificados SSL en gratis. Pueden hacerlo porque el proceso de verificación que usan está completamente automatizado y, de hecho, un servidor web que admite su protocolo ACME (como Caddy , que actualmente uso) puede obtener certificados por sí solo. Let's Encrypt no verifica que usted, como persona, eres quien dices que eres; solo verifica que su servidor web sea capaz de servir contenido en el dominio que reclama. Let's Encrypt es compatible con todos los principales navegadores, pero es bien sabido que la verificación es mínima, por lo que si está ejecutando algo como un sitio de comercio electrónico o cualquier cosa donde la gente envíe información confidencial, probablemente debería gastar el dinero para obtener un certificado con un mayor nivel de validación.

Solía ​​recomendar los certificados StartSSL gratuitos de StartCom para las personas que no querían pagar la validación, pero ya no. StartCom fue adquirido en secreto por WoSign en 2016 y posteriormente emitió certificados ilegítimos para varios dominios. Como resultado, los principales navegadores eliminaron su soporte para certificados StartCom. (Hasta donde sé, IE nunca los admitió de todos modos). En cualquier caso, Let's Encrypt es mucho más conveniente.

David Z
fuente
+1 para el primer párrafo. Utilizo un certificado autofirmado para Webmin en mi servidor porque solo lo utilizo yo y el diseñador, pero no recomendaría hacerlo para uso público general.
DisgruntledGoat
3

No es una mala práctica usar certificados autofirmados. Los certificados autofirmados tienen muchos propósitos prácticos para los cuales simplemente no tiene sentido usar un certificado firmado por una CA.

Por ejemplo, en muchos de mis servidores, tengo un inicio de sesión sin contraseña configurado. Estos son servidores a los que me conecto con tanta frecuencia, y a veces mantengo múltiples conexiones SSH abiertas, por lo que es una molestia escribir mi nombre de usuario y contraseña cada vez.

En cambio, uso un certificado SSL autofirmado que genero en cada una de las máquinas de mi cliente (una estación de trabajo en la oficina, una computadora portátil y la estación de trabajo de mi casa). Este tipo de configuración me permite usar frases de contraseña bastante largas, seguras y completamente únicas para cada uno de mis servidores sin afectar la productividad. Y debido a que tengo acceso directo a los servidores donde puedo instalar la clave pública para cada certificado, no tiene sentido que use un certificado firmado por CA.

Yo pude crear mi propia entidad emisora raíz con la que puedo firmar todos los certificados de uso interno para nuestra empresa, y de esta manera sólo tendría que instalar una sola clave pública de cada servidor. Sin embargo, nuestra organización no ha crecido hasta el tamaño que realmente lo necesita, y para los propósitos de HTTP seguro, esto sería lo mismo que tener un certificado autofirmado.

Del mismo modo, los certificados autofirmados se usan con frecuencia para conexiones de correo electrónico, firma PGP y conexiones de servidor a servidor donde es trivial intercambiar previamente claves públicas. En muchos de estos casos, esto es realmente más seguro que confiar en una cadena de certificados que podría verse comprometida en cualquier punto de la cadena.

Lèse majesté
fuente
No entiendo por qué está utilizando certificados SSL en su caso. Menciona que no desea escribir su contraseña varias veces: simplemente puede usar una clave privada SSH con ssh-agent, para autenticarlo automáticamente en cada servidor sin tener que escribir su contraseña más de una vez.
Wookai
@Wookai: Esa sería una forma de hacerlo para SSH, pero el uso de certificados de cliente SSL es un método de autenticación de cliente mucho más general. También uso mis certificados de cliente para la autenticación HTTPS , así como el correo electrónico, y si elijo configurar una CA interna más tarde, se vuelve aún más flexible / potente. En ese punto, no necesitaré instalar claves privadas individuales para cada cliente / usuario. Es solo una solución más robusta IMO.
Lèse majesté
2

Si está asegurando múltiples subdominios, es posible que desee usar certificados comodín , que (dependiendo de cuántos subdominios esté asegurando) podría resultar significativamente más barato que comprar uno por dominio; por ejemplo, RapidSSL tiene el comodín cada vez más barato que los certificados individuales una vez que tiene cuatro dominios en uso.

Cebjyre
fuente