Actualmente estoy implementando un pequeño servidor web en una plataforma integrada que tiene recursos muy limitados. Estoy planeando utilizar una comunicación no segura porque TLS podría no ser posible en mi entorno integrado, pero sin embargo no quiero que se transmitan pares de nombre de usuario / contraseña en texto claro.
He visto Autenticación básica , que no es la mejor solución en términos de seguridad, ya que transmitimos toda la información, incluido el nombre de usuario y la contraseña en texto sin cifrar.
En comparación con la autenticación básica, Autenticación de resumen parece más seguro, pero el gran problema aquí es que la suma de HA1 almacenada en la base de datos debe tratarse como contraseñas reales (porque en realidad es lo que son). Tan pronto como obtenga un vistazo a la suma de HA1 de un usuario, podrá obtener acceso a todas las áreas a las que el usuario podrá acceder, ya que podrá calcular una suma de HA1 válida por cada nonce que el servidor envíe.
¿Hay algún otro método de autenticación establecido que se pueda utilizar en el contexto de HTTP y evite las vulnerabilidades descritas anteriormente? Tenga en cuenta que solo necesito autenticación segura y no comunicación segura. Si no es así, es posible que deba reconsiderar el uso de TLS, en cuyo caso la autenticación básica sería suficiente.