In che modo la crittografia dei cookie lato client migliora la sicurezza del browser?

2

Se i cookie sono archiviati in testo in chiaro, qualsiasi programma che abbia accesso in lettura al file cookie può dirottare la sessione del browser, il che è negativo. Tuttavia, anche se i cookie sono crittografati, il browser deve disporre di informazioni sufficienti per decrittografarli per poterli effettivamente utilizzare. Non sembra che il browser recuperi le informazioni da remoto ogni volta che vuole decodificare un cookie? Ma se tali informazioni sono memorizzate localmente, allora qualsiasi programma che abbia accesso ad esso può decifrare anche il cookie. In che modo la crittografia dei cookie è utile in questo caso?

Modifica: questa domanda non riguarda la crittografia dei cookie lato server. Vedi questo commit per lo sfondo.

    
posta Cyker 01.07.2018 - 18:33
fonte

4 risposte

1

Dopo la modifica, la domanda riguarda qualcosa di completamente diverso.

Questo commit riguarda la crittografia del database dei cookie con una chiave specifica dell'utente, per gli utenti di Windows. In un ambiente Windows multiutente, è normale che un utente abbia accesso ai file di altri utenti. Crittografando il database dei cookie con una chiave contenuta nel registro utente e derivata dalla password utente, gli altri utenti non possono accedere a tali dati.

Questo aumenta la sicurezza dei cookie, poiché ogni utente malintenzionato che ottiene il file di database non sarà in grado di leggere i cookie. Per leggere i dati, l'utente malintenzionato deve ottenere il computer mentre l'utente è ancora connesso o compromettere la password.

Ma il database dei cookie non ha lo stesso valore dell'archiviazione della password salvata.

    
risposta data 02.07.2018 - 13:18
fonte
0

Lo scopo principale dei cookie è quello di memorizzare le informazioni del client per il server. Senza i cookie il server avrebbe dovuto gestire i seguenti problemi:

1. Identifica il cliente. L'accesso a tutti i siti Web è impossibile. L'identificazione tramite altri mezzi (agente utente, risoluzione dello schermo, impronta digitale su tela, ecc.) Potrebbe identificare il cliente, ma non affidabile al 100%.

2. Memorizza alcune informazioni sul client. Era più importante all'inizio di Internet. Ora lo storage è relativamente economico e per molti siti Web la quantità di spazio di archiviazione per i cookie anche per milioni di client non è un grosso problema.

Il codice cliente in una buona applicazione normalmente non ha una logica che dipende dalle informazioni contenute nei cookie. Qualsiasi dato di cui il cliente ha bisogno viene normalmente consegnato all'interno del contenuto (HTML, CSS, JavaScript) o tramite una chiamata di servizio, ad es. il client effettua una chiamata AJAX o REST e recupera le informazioni necessarie dal server.

Ecco perché in un'applicazione con una buona architettura la logica del client non dipende dal contenuto dei cookie e quindi il client non ha bisogno di decodificare i cookie.

I cookie crittografati danno normalmente falsa sensazione di sicurezza . Quando un utente malintenzionato accede al tuo file con i cookie, può copiarli e utilizzarli nel browser. Il server riceverà i cookie corretti, li decritterà e non sarà in grado di distinguere, se i cookie provengono da te o da un utente malintenzionato.

I cookie crittografati hanno un enorme svantaggio, perché rendono impossibile all'utente controllare quali informazioni vengono salvate nei cookie. Gli utenti pensano che il sito web stia raccogliendo alcune informazioni che potrebbero non piacere agli utenti e rende queste informazioni illeggibili per l'utente. Pertanto i cookie crittografati rendono i siti Web sospetti .

    
risposta data 01.07.2018 - 20:10
fonte
0

Penso che i cookie autodistruttivi sarebbero un modo migliore per migliorare la sicurezza del browser. Fortunatamente puoi farlo con molti browser popolari già con una semplice aggiunta. Opzionalmente puoi anche impostare la maggior parte dei browser per non salvare i cookie su disco o cancellare la cronologia dei cookie alla chiusura.

Se il tuo paranoico può semplicemente bloccare i cookie, quindi rinunciare a entrambi i cookie e l'argomento della crittografia del tutto. Inoltre, non c'è modo di garantire la crittografia end-to-end tra server / client, che era uno degli argomenti caldi degli anni Novanta.

Non può essere risolto. Il problema ha più a che fare con il lato server che con il lato client, è come entrare in un negozio e chiedergli se non controlli certificati. Probabilmente potresti strappare quella scena con un paio di luoghi popolari, ma il gioco è fatto. Solo perché porti con te un assegno certificato non garantisce che il posto in cui fai acquisti lo farebbe eccetto. Scenario simile con i cookie.

    
risposta data 01.07.2018 - 23:02
fonte
0

Questo dovrebbe essere un commento, ma è un po 'lungo.

If cookies are stored in plaintext, then any program which has read access to the cookie file can hijack the browser session

Questa affermazione ha senso solo se si suggerisce che i dati inviati da un server sotto forma di cookie debbano essere crittografati dal browser prima di essere impegnati nella memorizzazione non volatile. Il contenuto del cookie potrebbe essere già stato crittografato altrove. Si suppone che i cookie vengano scritti su disco (non necessariamente) e che il browser e il sistema operativo non impongano il blocco rigoroso o che il cookie permanga tra le sessioni del browser. Questo è un lotto di ipotesi non dichiarate.

Se qualcuno di questi non fosse implicito nella tua domanda, allora non ha senso.

Un programmatore competente utilizzerà i cookie di sessione, gli identificatori casuali e i dati lato server nel giusto mix per proteggere l'applicazione; sarebbe pericoloso fare ipotesi sui dettagli di implementazione del browser non specificamente documentati come requisiti. Forse potresti indicarci le specifiche del W3C per i cookie crittografati a cui ti stai riferendo?

    
risposta data 01.07.2018 - 23:45
fonte

Leggi altre domande sui tag