Quali sono le implicazioni dell'archiviazione di dati sensibili nei bookmarklet?

1

Durante la discussione delle alternative per chiedere al browser di ricordare la password, un tizio ha suggerito di utilizzare un bookmarklet per memorizzare le credenziali degli utenti. La risposta originale è in portoghese, ma tradurrò qui il protocollo che ha utilizzato:

  1. L'utente, quando ha effettuato l'accesso, ha accesso a un bookmarklet [link] con un token univoco

  2. Può trascinare quel bookmarklet normalmente nella barra dei collegamenti o nei segnalibri

  3. Quando fai clic su quel bookmarklet, il token viene memorizzato nella proprietà window.name e viene caricato un URL

  4. Questo URL contiene un JS con un altro token univoco

  5. Il JS unisce entrambi i token e crea un hash [autenticazione]

  6. L'utente viene reindirizzato a un altro URL con l'hash come argomento

Un po 'più complicato del necessario IMHO, ma l'idea di base era salvare le credenziali nella barra dei preferiti, in modo che l'utente potesse caricare il sito e accedere automaticamente solo facendo clic su un singolo link.

Sto cercando di comprendere le implicazioni di tale pratica. Suppongo che sia sicuro contro XSS almeno (dal momento che il codice JavaScript non può accedere alla barra dei preferiti con qualsiasi mezzo AFAIK). E rispetto alle password memorizzate nel browser, non sembra troppo lontano (entrambi consentirebbero a un'altra persona con accesso fisico alla macchina di accedere facilmente all'utente). A meno che non ci sia qualcos'altro che sto trascurando ...

Informazioni aggiuntive: Il mio intento originale era quello di conservare (non necessariamente conservare) nel browser alcuni dati che nemmeno il server può accedere (ad esempio una chiave di crittografia lato client). Questo dettaglio è importante, altrimenti questo scenario non sarebbe diverso da una funzione "Ricordami" . Ma per favore non concentrarti troppo sulle specifiche (ne ho discusso a lungo sia in questo sito che altrove), solo su ciò che è stato chiesto.

In altre parole, supponiamo che il mio modello di thread ponga maggiore enfasi sulla riservatezza dei dati nel cloud e meno sul computer client dell'utente (ad esempio, qualcuno con accesso locale che vede la password non è un problema, ma una vulnerabilità XSS che perde sarebbe). E la facilità d'uso è un requisito, altrimenti nessuno utilizzerà il mio sistema (alternative più sicure come usare un gestore di password o un'estensione del browser che interagisce con PGP o anche - in futuro - l'API WebCrypto sarà offerta agli utenti più attenti alla sicurezza, ma non richiesto , ho posto la domanda per capire meglio le implicazioni dell'uso dei bookmarklet / la barra dei preferiti, non di basare la mia intera decisione su di essa da sola).

    
posta mgibsonbr 29.01.2014 - 08:08
fonte

1 risposta

2

Non dovresti memorizzare i dati sensibili nei segnalibri perché la gente non ti aspetterà e non tratterà quindi i dati sensibili in modo appropriato.

Essenzialmente non è diverso dall'opzione "ricorda la mia password" fornita dal browser o dal portachiavi OSX, tranne che è meno protetto e l'utente e i relativi amministratori di sistema non possono capisci che è necessario proteggerlo .

IE "ricorda la mia password" è protetto da DPAPI. Il KeyChain OSX è simile. KeePass richiede una password aggiuntiva. Ecco perché sono "più protetti". Ma il punto principale è che le persone sanno che contengono dati sensibili e in genere vengono trattati in modo appropriato dagli amministratori del sistema.

Ma un segnalibro è solo un segnalibro, giusto? Niente di sensibile a riguardo? Sincronizza & Condividi tutto ciò che ti piace, vero?

Devi consentire all'utente di utilizzare il software appropriato per portachiavi / password per il sistema in cui si trovano. Cioè lascia che il browser "ricordi" la password se lo desidera, usa OSX KeyChain, KWallet di KDE, GnomeKeyring di Gnome, KeePass e così via.

    
risposta data 30.01.2014 - 16:45
fonte

Leggi altre domande sui tag