Come consentire solo all'utente finale di accedere ai dati in un'app Web

1

Ho letto molto sui comuni metodi di crittografia utilizzati in un'applicazione django.

Tuttavia, i miei requisiti sono molto diversi. Sto cercando un modo per crittografare i dati della mia web app in modo che solo il proprietario dei dati sia in grado di accedervi. Ciò significa che anche noi non saremo in grado di accedervi.

Questo significa che ogni proprietario di un documento diverso dovrà avere una chiave di decrittazione diversa, e ovviamente non possiamo memorizzare questa chiave sul server, altrimenti possiamo anche aprire i documenti. Significa che ogni volta che un utente deve accedere al proprio documento, dovrà inserire la chiave di decodifica? Non mi piace, perché questo rende l'app Web quasi inutilizzabile. Ci sono alternative migliori?

    
posta user469652 21.01.2016 - 09:07
fonte

1 risposta

2

L'unico modo per farlo è consegnare i dati crittografati al browser degli utenti e far decriptare il codice del browser.

Per riuscirci, devi anche fornire un meccanismo che permetta all'utente di inserire qualche forma di chiave che solo loro conoscono.

Puoi semplicemente presentarlo come passcode e impostare i requisiti minimi di lunghezza / complessità.

È possibile però memorizzare le informazioni di sicurezza in locale, in modo che l'utente non debba continuare a inserirle. Ovviamente, più a lungo lo metti in cache, più diventa esposto. Ma poi di nuovo, la sicurezza inutilizzabile è altrettanto brutta quanto nessuna sicurezza.

È possibile combinare l'uso dell'accesso di autenticazione con il codice locale per creare una chiave di proprietà dell'utente passando la password con hash al back-end per l'autenticazione, ma anche eseguendo un algoritmo per fornire la crittografia locale. Questo sarebbe ragionevolmente sicuro poiché il back-end non conoscerà mai la password effettiva. Le password tipiche, tuttavia, non contengono abbastanza entropia per la crittografia, quindi è necessario almeno salare la password e probabilmente eseguire più cicli di crittografia.

Temo di non avere idea se tutto ciò sia fattibile in Django perché non lo uso. Anche se una rapida ricerca su Google ha suggerito alcune linee di indagine speranzose.

    
risposta data 23.01.2016 - 17:18
fonte

Leggi altre domande sui tag