¿Qué cifrado usar cuando el usuario necesita memorizar la clave?

0

Hace poco me metí en los desafíos de código, hechos por mis amigos, yo mismo o alguna otra fuente que tiene que ver con la seguridad. Ahora, tengo el siguiente escenario:

  <Login form>
       |
       |
[ Proccess login ] --> (Valid) --> [Create session in database]
       |                                        |
       |                                        |
       |                         [Encrypt session with a random key]
    (Invalid)                                   |
       |                                        |
       |                              <Encrypt and print key>
[Return to Login form]

Ahora sugiero que el usuario simplemente cierre su navegador y vuelva a usar la aplicación el otro día.

  <Login form>
       |
       |
[ Proccess login ] --> (Valid) --> [Detect that the user already has a session]
       |                                                |
       |                                                |
       |                                       <Ask user for the key>
    (Invalid)                                           |
       |                                                |
       |                                 (Right key) <-----> (Wrong key)
[Return to Login form]            {Let the user in the app}     [Die]            

Como puede ver, necesito cifrar esa clave y hacer que el usuario la memorice. Lo que significa:

  • Basado en el cifrado y descifrado por claves
  • Sólo una clave privada
  • Utilizable en ECMAScript y PHP

EDIT : creo que no lo dejé en claro: no puedo guardar la clave. Lo que puedo hacer es esto:

[Generates key] --> [Encrypt common word] --> [Store encrypted word on database]

Entonces, cuando el usuario intenta una clave:

[Encrypt common word with the given key] --> <Same Result> --> Let user in
                 |
                 |
        <Different result> --> Die

¿Hay algo que pueda usar? Si es así, ¿qué?

    
pregunta MucaP 15.12.2017 - 21:30
fuente

0 respuestas

Lea otras preguntas en las etiquetas