Best practice per l'archiviazione e l'invio di fingerprint del browser a endpoint protetti

0

Ho una grande API e JSON Web Tokens (JWT) utilizzati per l'autorizzazione dell'utente. Questi token sono convalidati sul frontend (proxy nginx) con codice Lua. Ora voglio proteggere la mia API un po 'di più con le impronte digitali del browser. L'idea è di memorizzare l'impronta digitale del client nel token JWT e passare questa impronta digitale dal client al server ad ogni richiesta. Se le impronte digitali coincidono, allora è ok, in caso contrario, quindi blocchiamo l'accesso, poiché probabilmente il nostro token è stato rubato.

Ci sono molti modi per creare le impronte digitali del browser e Fingerprintjs2 sembra una buona soluzione. Quello che voglio sapere è come nel mondo reale memorizzano questa impronta digitale (o generano al volo ogni volta?) E in che modo lo inviano al server (utilizzando cookie, intestazioni, parametri di ricezione o pubblicazione).

    
posta Jacobian 06.11.2017 - 13:01
fonte

1 risposta

1

il fingerprinting è usato per qualsiasi cosa tranne che per la sicurezza, quindi non usarlo per tale scopo.

Dato che stai usando openresty, puoi in effetti aggiungere sicurezza al gestore della sessione lua-resty-session ha diverse opzioni su dove memorizzare i dati della sessione.

Quando leggi pluggable-storage-adapters vedi una tabella di adattatori di memoria .

Per il tuo scopo ti suggerirei di implementarne uno con Extra Security e implementare HMAC.

Ciò assicurerà che i dati della sessione rimangano sul server e che il client abbia solo un token HMAC che non possono alterare senza perdere la sessione.

Per ulteriore protezione, puoi aggiungere un piccolo codice all'autenticazione Lua per assicurarti che la sessione venga invalidata quando cambia la sorgente ip.

Spero che questo risponda alla tua domanda.

- Incluso un commento che ho fatto a questo abile.

le impronte digitali possono essere utilizzate per migliorare la certezza di un utente specifico, tuttavia è inadeguato sostituire altri mezzi di identificazione.

(vedi come un documento di identità presso un funzionario della dogana, il tuo passaporto ti identifica, il suo numero (e il controllo effettuato dai sistemi automatici) convalida che il documento è reale e l'immagine della tua foto può essere utilizzata per convalidare te stesso In totale, mentre c'è solo 1 vettore principale di autenticità (il passaporto) ci sono molti controlli per convalidarlo.

Ogni assegno aggiunge la certezza che la persona è chi afferma di essere. e come parte di uno schema di autenticazione è possibile aggiungere l'impronta digitale come informazioni aggiuntive all'identità della prova. Ma non dovrebbe mai sostituire altre dimostrazioni come generiche e facilmente falsificarle o estrarle con altri mezzi.

    
risposta data 06.11.2017 - 13:36
fonte

Leggi altre domande sui tag