¿Qué tan segura es la autenticación de Windows integrada para IIS SMTP?

5

Tengo un servidor SMTP de Windows que actualmente permite el método de autenticación "AUTH LOGIN". Como ahora sé, esto es simplemente una codificación base-64 del nombre de usuario y la contraseña, que es básicamente tan malo como el texto plano, ya que los spammers pueden detectar la contraseña de texto simple en tránsito.

Como solución rápida, la Autenticación de Windows integrada (IWA) está disponible para que la use. Creo que IWA utiliza la autenticación "AUTH NTLM". ¿Se considera esto "suficientemente seguro"? ¿Hay alguna vulnerabilidad en la naturaleza que haga de "AUTH NTLM" una mala idea?

    
pregunta anon 02.04.2013 - 19:04
fuente

1 respuesta

4

La mala idea no es el uso de NTLM, sino la falta de uso de SSL. Sin SSL, los datos viajan sin protección y, en particular, los atacantes activos pueden secuestrar la conexión (por ejemplo, justo después de que se realizó la autenticación). Ninguna cantidad de NTLM solucionará eso.

Para usar SSL con STMP, hay dos formas:

  • Ejecute la transacción SMTP completa en un servidor SSL. El cliente debe ser consciente, de antemano, de que se espera que comience la transacción mediante un protocolo de enlace SSL. El puerto tradicional para un servidor STMP-within-SSL es 465.

  • Haga que el cliente y el servidor utilicen STARTTLS . La conexión comienza con el puerto "normal" (25), pero el cliente y el servidor luego negocian el uso de SSL / TLS y, después de esa negociación, comienzan un protocolo de enlace SSL / TLS.

De cualquier manera, debe configurar el cliente para que no envíe la contraseña "como texto claro". La mayoría de los clientes se pueden configurar de esa manera.

Si usa SSL / TLS , enviar el nombre de usuario + contraseña "tal como está" está bien. Si no usa SSL / TLS, el cambio de la autenticación básica a NTLM puede ralentizar a los atacantes menos competentes, pero no crea que realmente los frustrará. La criptografía en NTLM no vale exactamente mucho entusiasmo, pero el mayor problema con NTLM en bruto sobre un socket desprotegido es el igual que el inicio de sesión en bruto + contraseña en un socket desprotegido: el socket no está protegido.

En comparación con la autenticación básica, NTLM no muestra la contraseña en sí, por lo que los atacantes solo pasivos no aprenderán la contraseña de inmediato; sin embargo, obtienen un hash de contraseña, con una función de hash muy rápida (unos pocos MD4 y MD5, como máximo), lo que significa que la fuerza bruta en las contraseñas será efectiva. Un atacante solo pasivo con una buena GPU todavía tiene una buena posibilidad de romper algunas contraseñas de usuario.

Una buena razón para cambiar a NTLM es la integración con otros métodos de autenticación, por ejemplo. tarjetas inteligentes. Pero si sus usuarios tienen contraseñas, la autenticación básica hace el truco con menos complicaciones.

    
respondido por el Thomas Pornin 02.04.2013 - 19:17
fuente

Lea otras preguntas en las etiquetas