Necesito usar un servicio externo al que solo se pueda acceder por contraseña.
No me gusta la idea de almacenar la contraseña de texto sin formato en el servidor, pero AFAIK no hay mucho que pueda hacer.
Teniendo en cuenta que solo un cliente podrá acceder a este servicio (que tampoco puede conocer toda la contraseña), mi idea de intentar hacer las cosas un poco más difíciles para un pirata informático es almacenar "la mitad" de la clave en el servidor, y "la mitad" de la clave en el cliente.
Sé que esto tampoco puede ser perfecto, y que alguien que tenga acceso total al servidor podrá encontrar la contraseña, pero es mejor que nada. (Otras sugerencias son bienvenidas.)
Teniendo en cuenta los cambios de contraseña de vez en cuando , y que no quiero cambiar la "mitad del servidor" de esta contraseña, mi mejor idea hasta ahora es la siguiente:
- Genere una clave aleatoria K y guárdela en el servidor
- Encripta la contraseña (P) con K, generando E y dale E al cliente
- Ahora, cada vez que el cliente desea acceder al servicio, proporciona E y el servidor descifra E utilizando K.
- Cuando la contraseña (P) cambia (a P '), solo necesito cifrarla con K nuevamente y proporcionar la nueva E' al cliente.
¿Esto parece razonable? ¿Alguna otra idea?