Estoy diseñando una API web, que utilizará las credenciales de otro sistema para autenticarse. La API requerirá HTTPS, sin embargo, todavía quiero evitar el envío de una contraseña de texto simple básicamente a través del cable mediante la autenticación básica HTTP.
Soy consciente del protocolo de contraseña remota segura, pero TLS-SRP (como la autenticación SRP sobre TLS será efectiva) parece excesivo por el nivel de sensibilidad de los datos que proporcionará la API (en su mayoría, información de TI sensible al nivel de negocios; no es algo que queramos gritarle al mundo, pero no es una identificación financiera o personal).
Estoy pensando que un esquema en el que el cliente SHA256 hace un hash de su contraseña, luego transmite el nombre de usuario y el hash a través de HTTPS al servidor de API, que luego puede cifrarlo antes de compararlo con un hash almacenado, debería ser más que suficiente para transmitir y almacenar credenciales de usuario. ¿A qué vectores podría ser vulnerable (aparte de un keylogger en el dispositivo cliente)?