Utilizzo di scrypt per crittografare i dati in una variabile di sessione

1

Diciamo che voglio memorizzare alcuni dati nella sessione del nodo, ad esempio, come un token di autenticità. Ovviamente voglio memorizzarlo in modo crittografato se sta andando in un cookie, quindi decrittarlo su un server per confrontare.

Qual è un modo accettabile per realizzare questo? Stavo pensando di generare semplicemente una password casuale all'avvio del server e usare qualcosa come PGP per fare la traduzione.

Questa è una soluzione praticabile?

    
posta dsp_099 12.03.2015 - 01:59
fonte

1 risposta

2

No. PGP renderà la tua sessione più che buona. Quindi non usare PGP. La crittografia assimmetrica non è richiesta poiché il mittente delle informazioni crittografate (che crittografa) e il destinatario delle informazioni crittografate (che dovrebbero essere in grado di leggerle), è la stessa entità (il tuo server).

Questo significa che se vuoi cifrare qualcosa da memorizzare in un cookie, usa invece un codice simmetrico come AES256.

Ma la cosa migliore da fare è non memorizzare affatto i dati nei cookie, invece, memorizzarli sul server, generare un "ID di sessione" sufficientemente sicuro e casuale e legare "l'ID di sessione" al blob di dati su server. L '"ID di sessione" è quindi ciò che viene inviato tramite il cookie. Poiché l'ID della sessione è effettivamente casuale, non ha alcun significato particolare per nessun altro rispetto al tuo server, quindi non è necessario che sia crittografato.

Anche scrypt è una funzione di derivazione della password, non una funzione di crittografia, ed è effettivamente a senso unico.

Per impedire a qualcuno di eseguire il hogging delle risorse sul server, puoi sospendere le sessioni dopo un breve periodo e avere anche una funzione che se un IP specifico richiede una nuova sessione, tutte le vecchie sessioni da questo IP vengono eliminate.

    
risposta data 12.03.2015 - 03:17
fonte

Leggi altre domande sui tag