Come memorizzare in modo sicuro le password per un gestore di password basato sul team online?

2

Voglio creare un gestore di password sicuro basato sul team online?

L'idea è che voglio essere in grado di condividere password con altre persone del team, in modo sicuro, in modo tale che se l'intero database viene compromesso, l'hacker non sarà ancora in grado di accedere ai dati. Ricorda che questo processo deve essere reversibile, quindi l'hashing non è ovviamente una soluzione.

In un sistema a utente singolo, la soluzione è ovviamente la crittografia con una password principale, che viene memorizzata dall'utente (cioè non memorizzata nel database)

In una situazione di squadra potremmo avere una password principale che tutti gli utenti di una squadra conoscono. Viene utilizzato per crittografare / decrittografare le password memorizzate.

Il problema è che richiede a tutte le squadre di ricordare la stessa password. Questo è un problema se un utente è membro di 5 diversi team, lui / lei dovrà ricordare 5 password principali!

Ci sono alternative migliori?

    
posta Yahya Uddin 21.08.2016 - 15:04
fonte

3 risposte

2

Un semplice apporach potrebbe essere quello di memorizzare le password come messaggi crittografati PGP in cui ogni membro del gruppo definito è considerato un destinatario (ad esempio GPG Keychain su Mac aggiunge la chiave on come destinatario per impostazione predefinita in modo da poter decrittografare già crittografato messaggi agli altri).

Quindi un utente vuole aggiungere una password, la crittografa con le chiavi del pub dei suoi compagni di squadra e tutti possono decrittografarla con le proprie chiavi private. tuttavia, se il DB viene violato, nessuno può decodificarlo senza le chiavi private dei membri del team.

Se memorizzi correttamente le tue Private Keys, questa potrebbe essere un'alternativa relativamente sicura

    
risposta data 21.08.2016 - 15:15
fonte
2

Dai un'occhiata al white paper di 1Password for Teams . Descrive esattamente come lo facciamo. [Divulgazione: lavoro per AgileBits, i creatori di 1Password.]

In qualche modo è simile alla risposta di Martin Fischer ma invece di usare PGP / GPG si costruisce nel uso di chiavi pubbliche in un gestore di password. E invece di criptare ogni password con la chiave pubblica di share-ee, funziona attraverso una serie di quelli che chiamiamo "vault". Gli elementi di ciascun vault sono crittografati con una chiave simmetrica del vault (AES-GCM), ma le chiavi del vault sono crittografate con le chiavi pubbliche dei membri del vault. Quindi condividere un vault significa crittografare la chiave del vault con la chiave pubblica della persona con cui stai condividendo.

Per far sì che tutto funzioni senza intoppi per le persone (oltre a garantire che tutte le chiavi siano generate lato client e mai e poi mai criptate) abbiamo bisogno di una catena di chiavi un po 'più complicata che crittografa le chiavi per cifrare le chiavi rispetto a quella che la risposta di Martin suggerisce , ma questa complessità è in gran parte invisibile all'utente.

    
risposta data 22.08.2016 - 01:34
fonte
1

Una frase comune in sicurezza è se un segreto è condiviso da più di 2 persone, quindi non è più un segreto . In IT, la seconda persona è spesso il computer stesso, quindi solo un singolo essere umano dovrebbe saperlo.

IMHO, dovresti imitare mail cifrate inviate a diversi destinatari:

  • il messaggio è crittografato con un algoritmo simmetrico e un tasto casuale
  • la chiave è crittografata con un algoritmo asimmetrico e la chiave pubblica di uno dei destinatari, quelle chiavi crittografate vengono aggiunte al messaggio

Quando un destinatario riceve il messaggio, usa la sua chiave privata per recuperare la chiave simmetrica e da quella il messaggio originale.

Potresti fare lo stesso con le tue password sicure: - ogni squadra sicura è criptata con una chiave simmetrica - una copia di quella chiave crittografata con la chiave pubblica di ogni membro del team è conservata nel database

In questo modo:

  • tutte le password necessarie per un team vengono mantenute insieme
  • possono essere letti solo dai membri del team
  • ogni membro deve solo conoscere la propria chiave privata - o più esattamente la password che sblocca il file contenente la chiave ...
risposta data 21.08.2016 - 18:31
fonte

Leggi altre domande sui tag