Recentemente sono entrato nelle sfide del codice, fatte dai miei amici, da me o da qualche altra fonte che ha a che fare con la sicurezza. Ora, ho il seguente scenario:
<Login form>
|
|
[ Proccess login ] --> (Valid) --> [Create session in database]
| |
| |
| [Encrypt session with a random key]
(Invalid) |
| |
| <Encrypt and print key>
[Return to Login form]
Ora suggerisco all'utente di chiudere semplicemente il browser e torna a utilizzare l'app l'altro giorno.
<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]
Come puoi vedere, ho bisogno di crittografare quella chiave e far sì che l'utente la memorizzi. Il che significa:
- Basato su crittografia e decodifica tramite chiavi
- Solo una chiave privata
- Utilizzabile in ECMAScript e PHP
EDIT : penso di non averlo chiarito: non riesco a memorizzare la chiave. Quello che posso fare è questo:
[Generates key] --> [Encrypt common word] --> [Store encrypted word on database]
Quindi, quando l'utente tenta un tasto:
[Encrypt common word with the given key] --> <Same Result> --> Let user in
|
|
<Different result> --> Die
C'è qualcosa che posso usare? Se sì, cosa?