security - para - certificados ssl
¿Los certificados son útiles para la intranet SSL? (2)
Me han encargado el desarrollo de una interfaz de intranet para el software de línea de comandos, y ahora estoy investigando las opciones de seguridad. Nuestra aplicación de línea de comandos ha finalizado, pero no he comenzado a escribir la interfaz web. No sé exactamente cuáles son los requisitos de seguridad para los clientes potenciales, aunque creo que ssh
generalmente es aceptable para la interfaz de línea de comando. Con esto en mente, estoy pidiendo ayuda para desarrollar un menú de opciones con sus pros / contras asociados. Algún día, podemos considerar la posibilidad de liberar nuestra interfaz web a Internet, por lo que estoy dispuesto a considerar más seguridad de la que actualmente es necesaria si es fácil y / o gratuita.
He estado leyendo mucho, y mi conclusión tentativa es que la seguridad SSL sin certificado es el mejor enfoque, no porque menos seguridad sea inaceptable, sino porque SSL es el estándar y porque no parece ser difícil preparar. Yo, un experto en seguridad, no necesitaría explicar por qué menos seguridad es aceptable para los no expertos en seguridad. Podría actualizar mi aplicación para usar un certificado en el futuro si es necesario.
Aquí hay una lista de opciones de seguridad relacionadas con SSL, ordenadas por mi percepción del nivel de seguridad con mis comentarios. ¿Qué nivel de protección necesito?
Sin SSL Esto podría ser aceptable si nuestros clientes no están preocupados porque sus empleados vean / cambien los datos de los demás. Es posible que sus empleados quieran compartir los resultados entre ellos de todos modos, y yo podría usar control de acceso basado en IP y / o contraseñas para la seguridad.
Haz SSL sin certificado. Esto encripta la comunicación, que al menos protege los datos para que no sean leídos por empleados no autorizados. Usando una contraseña, este es el mismo nivel de seguridad que
ssh
en la línea de comandos, ¿verdad? No necesito preocuparme por los ataques de hombre en el medio en una intranet, ¿verdad? Una estafa para este enfoque sería si hubiera un montón de mensajes de advertencia del navegador.Haga SSL con un certificado autofirmado. ¿Qué me da esto que ningún certificado me dé? Si el DNS se puede cambiar de manera inapropiada, entonces el cliente, entonces mi aplicación es la menor de sus preocupaciones. Dicho de otra manera, si el DNS puede cambiar, entonces creo que
ssh
sería vulnerable.Haga SSL con una autoridad certificadora local. OpenSSL me permite crear mi propia Autoridad de certificación. ¿Qué me da esto que un certificado autofirmado no me da? Supongo que en una LAN, es menos importante que se verifique el servidor.
Haga SSL con una Autoridad de certificación externa. ¿Hay alguna vez una razón para ir por esta ruta para una intranet? Encontré algunos "certificados de intranet" en venta en línea, pero no está claro qué es lo que están ofreciendo, no puedo hacerlo yo mismo.
Como referencia, esta página puede ser útil para comparar certificados:
http://httpd.apache.org/docs/trunk/ssl/ssl_faq.html#aboutcerts
[actualizar]
Here''s un artículo que analiza los riesgos y las reglas para obtener un certificado interno de una CA pública.
- Haga SSL con una Autoridad de certificación externa. ¿Hay alguna vez una razón para ir por esta ruta para una intranet? Encontré algunos "certificados de intranet" en venta en línea, pero no está claro qué es lo que están ofreciendo, no puedo hacerlo yo mismo.
El beneficio es que no necesita aprender a configurar su propia Autoridad de Certificación si necesita administrar un número decente de certificados y / o máquinas. Tal certificado ya sería confiable para todos los navegadores sin necesidad de instalar sus propios certificados en la tienda de confianza.
Sin embargo , esto es realmente menos seguro porque alguien podría comprar un certificado para una intranet diferente y usarlo en su red. Por este motivo, los proveedores de SSL ya no ofrecen este servicio. Para obtener más información, consulte: https://www.godaddy.com/help/phasing-out-intranet-names-and-ip-addresses-in-ssls-6935
Si solo tiene una intranet muy pequeña, le recomendaría usar un certificado autofirmado, y luego simplemente agregará cada certificado autofirmado a la tienda de confianza de cada computadora.
Sin embargo, rápidamente no es práctico instalar un nuevo certificado en cada computadora de su intranet cada vez que quiera agregar una nueva computadora. En este punto, desea configurar su propia Autoridad de certificación para que solo necesite instalar un único certificado de CA en la tienda de confianza de cada computadora.
Sí, los certificados siguen siendo útiles para Intranet SSL.
Hay una diferencia importante entre SSH y SSL sin certificado: cuando se conecta por primera vez a un servidor con SSH, su SSH almacena la huella digital del servidor. Si luego intentas conectarte con lo que el cliente SSH considera que es la misma máquina pero recupera una huella dactilar diferente, te avisa que podría haber alguien interceptando tus comunicaciones.
SSL-sin-un-certificado, por otro lado, no almacena la huella digital del servidor. Sus comunicaciones seguirán encriptadas, pero si alguien secuestra el servidor DNS como usted mencionó o, como señala Rushyo , si tiene envenenamiento por ARP o algo similar, podrían realizar un ataque de hombre en el medio. SSH, como se mencionó anteriormente, supondría (suponiendo que se hubiera conectado al servidor correcto en algún momento del pasado) que la huella digital había cambiado y lo alertaría.
Un certificado autofirmado sería comparable en seguridad a SSH. Un hombre en el medio podría generar su propio certificado autofirmado, pero siempre que sus aplicaciones estén configuradas para aceptar solo ese certificado autofirmado, debería recibir una alerta similar a la que SSH le brindará.
Una autoridad de certificación local le ofrece seguridad similar a los certificados autofirmados, pero puede ser más escalable. Si tiene varios servidores, cada uno puede tener su propio certificado, pero un cliente solo necesita el nivel superior para confiar en todos ellos. Si un servidor está en peligro, puede revocar su certificado en lugar de tener que cambiar el certificado de cada servidor.
No creo que una autoridad de certificación externa tenga ninguna ventaja, aparte de posiblemente menos configuración, si sus máquinas ya tienen la autoridad de certificación confiable.
Por último, no sé lo suficiente sobre la autenticación de dos factores para evaluarlo, pero para la mayoría de las aplicaciones, SSL debería ser suficiente.
Descargo de responsabilidad: no soy un experto en seguridad.