Hace poco aprendí cómo funciona WPA-PSK. Si entiendo correctamente, el protocolo de enlace de 4 vías permite que el protocolo garantice la posesión mutua del PMK (y, por lo tanto, el PSK) sin enviar el PMK / PSK. De esta manera no es susceptible a un ataque de hombre en el medio.
Mi pregunta es, ¿cómo se garantiza la autenticación mutua en el caso de WPA-Enterprise? Estoy ejecutando 802.1x con FreeRadius y PEAP en mi red doméstica (solo como un proyecto de hobby) y funciona, pero no estoy seguro si entiendo cómo funciona.
Estoy usando PEAP, por lo que los clientes se autentican con nombres de usuario y contraseñas. Pero, ¿se aseguran los clientes de que la red WiFi con la que están hablando no es un intermediario? El servidor de autenticación tiene un certificado SSL / TLS, pero está autofirmado. ¿No debería instalarse en los clientes el certificado de CA raíz utilizado para firmar el certificado del servidor para que esto funcione? Este no es el caso en mi configuración, pero todos mis clientes Android se conectan bien.
Si mi entendimiento anterior es correcto, eso significaría que WPA-Enterprise con PEAP es menos seguro que WPA-PSK porque es posible un ataque de hombre en el medio para interceptar las contraseñas. Esto me parece raro. ¿Hay algún defecto en mi entendimiento?
EDITAR:
Encontré una respuesta parcial en esto artículo . Sin embargo, todavía tengo preguntas sin respuesta.
- ¿Esto significa realmente que mi configuración de PEAP de WPA2-Enterprise es menos segura que la simple WPA2-PSK? Parece realmente contrario a la intuición porque WPA2-PSK es mucho más simple y solo requiere un secreto compartido. ¿Cómo es posible que WPA2-PSK pueda garantizar la autenticación mutua con solo un secreto compartido mientras que WPA2-Enterprise no lo es?
- ¿Debería preocuparme por ello (y proceder a mejorar / asegurar mi configuración) o no es probable que pueda explotarse?
- ¿Cómo puedo hacer que los clientes validen el certificado del servidor? ¿Es la única forma de instalar los certificados manualmente en todos los clientes? (En ese caso, si necesito distribuir certificados de todos modos, puedo cambiar a EAP-TLS)
- ¿O es posible usar un certificado público al igual que con HTTPS? ¿Cómo funcionaría eso? Con HTTPS, su certificado está 'anclado' a su dominio, lo que usted ha demostrado a la CA que es suya. ¿Cómo funciona esto con los servidores RADIUS?
EDITAR:
Encontré más respuestas.
EAP-MS-CHAP-V2 (Microsoft Challenge-Handshake Authentication Protocol versión 2) es un método de autenticación mutua que admite la autenticación de computadora o usuario basada en contraseña. Durante el proceso de autenticación EAP-MS-CHAP v2, tanto el cliente como el servidor RADIUS deben probar que tienen conocimiento de la contraseña del usuario para que la autenticación sea exitosa. La autenticación mutua se proporciona al incluir un paquete de autenticador devuelto al cliente después de una autenticación exitosa del servidor.
(No puedo publicar más de 2 enlaces, por lo que no podré proporcionar una fuente para esta cotización)
Aquí se explica que la segunda etapa / protocolo de autenticación interno, MS-CHAPv2, también es un protocolo de autenticación mutua. Tiene sentido ahora.
Sin embargo, este artículo sugiere que MS-CHAPv2 no está ya no es seguro Dado que confío en las propiedades de autenticación mutua de MS-CHAPv2 en mi configuración de WPA2-Enterprise, ¿existen alternativas a MS-CHAPv2 que sean más seguras?
EDITAR:
Me acabo de enterar de EAP-PWD, un nuevo protocolo de autenticación EAP de una sola etapa que se supone que es más fuerte que PEAPv0 / EAP-MSCHAPv2, proporciona autenticación mutua y no necesita certificados SSL / TLS. / p>
EAP-PWD es altamente seguro (la contraseña nunca se transmite, incluso en forma cifrada), no requiere certificados PKI y también requiere solo 3 viajes de ida y vuelta de autenticación. Por lo tanto, se considera eficiente desplegar, por ejemplo, Eduroam y otros entornos. Requiere que la base de datos de usuarios de Radiator tenga acceso a la contraseña de texto sin formato correcta.
El único problema parece ser que todavía no se ha adoptado ampliamente. Sin embargo, Android (> 4.0) lo admite, lo que está bien. Pero todavía no pude encontrar mucha información al respecto y, por su aspecto, Windows no lo admite.