Come devono essere memorizzate le password se devono essere recuperabili?

18

Mediante "crittografia" delle password che stai violando CWE-257 : memorizzazione delle password in un formato ripristinabile. Ma questo è esattamente ciò che il governo francese vuole . Vogliono essere in grado di ottenere le password di qualsiasi utente. A detta di tutti, questa è una cosa negativa e Bruce Schneier è d'accordo .

Quindi, come puoi soddisfare questo mandato francese oltre a mantenere un elevato livello di sicurezza?

    
posta rook 10.04.2011 - 03:06
fonte

5 risposte

18

Non forzare ancora-un'altra-password per i tuoi utenti. Usa PKI, token hardware o qualche altro metodo come OAuth o OpenID che si avvale di un sito di Identity Provider che si trova al di fuori di qualsiasi giurisdizione di cui sei preoccupato.

Si noti che i requisiti effettivi della legge francese del 2004 in questione Loi pour la confiance dans l'économie numérique alias Atto sulla fiducia nell'economia digitale non sono chiari e sembra che alcuni rapporti abbiano interpretato erroneamente o esagerato gli effetti. Ad esempio sembra che potrebbe essere sufficiente fornire semplicemente l'applicazione della legge con qualche altro accesso all'account dell'utente, ad es. per un'indagine sulla pornografia infantile, in un modo che non offusca all'utente l'accesso al proprio account (come una normale reimpostazione della password).

    
risposta data 10.04.2011 - 07:43
fonte
6

Utilizza Crittografia a chiave pubblica . Il tuo server avrà solo la chiave pubblica. Ciò consentirà al server di crittografare una password e quindi di confrontare il testo cifrato per autenticare un utente.

La chiave privata dovrebbe trovarsi su un'unità all'interno di un caveau di una banca . Se il governo francese richiede una password, è possibile accedere alla chiave privata per decrittografare la password.

    
risposta data 10.04.2011 - 03:06
fonte
4

Questa domanda è stata discussa, in una forma o nell'altra, per qualche tempo come problema di "key escrow". Esistono problemi fondamentali con l'architettura di fornire a terzi l'accesso ai dati protetti. Questi sono invarianti al modo in cui implementate la crittografia. Vedi questo articolo per esempio.

Sto interpretando la domanda su come fornire accesso a dati protetti da parte di terzi: il dibattito sul fatto che ciò corrisponda effettivamente all'attuale situazione con il governo francese che sto considerando tangenziale; e ci sono rischi irrisolvibili nel fare questo dalla natura del problema. Quindi considera questa risposta come fare il meglio di una brutta situazione.

Una serie di requisiti potrebbe essere:

  1. Il server ha accesso a tutti i record
  2. Al governo può essere concesso l'accesso, ma solo a record specifici
  3. Dovrebbe essere abbastanza efficiente registrare un nuovo utente
  4. Dovrebbe essere molto efficiente per autenticare un utente
  5. Non deve necessariamente essere così efficiente per recuperare un record

In realtà esiste una soluzione molto bella a questo problema con tecniche di crittografia molto moderne, chiamate crittografia funzionale, tuttavia non è efficiente. Con questi tipi di schemi, il server può contenere una chiave privata principale che consente loro di decodificare qualsiasi record e possono creare una nuova chiave privata che può essere utilizzata solo per decrittografare record specifici. Questo risolve (1), (2) e (5), è in conflitto con (3) e non fornisce (4).

Per fornire (4), suggerirei un sistema ibrido in cui qualsiasi sistema esistente di autenticazione basato su password sia usato per continuare a fare (4), ed è aumentato con una crittografia dell'utente registrare (compresa la password). Se il record viene fornito al governo, una volta che ha recuperato la password, può comparare assicurandosi che sia la stessa password utilizzata per autenticare l'utente.

Un'alternativa all'utilizzo della crittografia delle funzioni sarebbe che il server crittografasse il record con uno schema di crittografia appropriato che consenta loro di generare una prova di "conoscenza zero" di ciò che il record è ogni volta che il governo richiede un record (invece di dare la chiave privata). La prova potrebbe essere crittografata durante il transito al governo (e si potrebbe anche usare una prova "verificatore designato" per impedire al governo di condividere la prova con gli altri).

Nessuna di queste soluzioni potrà mai risolvere il fatto che il governo ha bisogno di fiducia per non abusare della sua autorità, dal momento che la protezione contro questo conflitto con la definizione del problema che stiamo cercando di "risolvere".

    
risposta data 10.04.2011 - 18:23
fonte
2

Usando PGP, non è necessario memorizzare una password. L'utente si iscrive inviando la propria chiave pubblica. Quando devono effettuare l'accesso, inviare all'utente un testo casuale, farli firmare e restituirlo. Quindi verifica la loro firma per autenticarli.

    
risposta data 10.04.2011 - 19:00
fonte
2

Conservalo due volte. Una volta che utilizzi PKI con una chiave privata che non è facilmente accessibile e una volta che usi un formato non recuperabile, in questo modo se devi soddisfare una richiesta legale hai un metodo per farlo e puoi utilizzare le best practice standard per il giorno -day authentication.

    
risposta data 23.05.2011 - 04:58
fonte

Leggi altre domande sui tag