In che modo un team di amministratori di sistema condivide le password in modo sicuro?


83

Quali sono le migliori pratiche per condividere centinaia di password tra poche persone? Queste password proteggono i dati mission-critical e non possono mai essere visibili al di là di un piccolo team.



11
BTW centinaia è un numero molto preoccupante. Cosa succede quando uno dei membri del team viene licenziato? L'aggiornamento di centinaia di password sarà doloroso.
Zoredache,

2
Distaccato dalla cosa "centinaia è un numero molto preoccupante". Penso che potresti aver bisogno di fare il backup e riconsiderare come stai gestendo l'intera cosa della sicurezza in primo luogo piuttosto che tentare di mettere il cerotto su ciò che hai attualmente.
Maximus Minimus,

Risposte:


14

Probabilmente scriverei una soluzione web-based personalizzata ospitata su una rete intranet aziendale. (dai un'occhiata a http://lastpass.com per ispirazione o per usarlo. La condivisione delle password è una delle sue caratteristiche, anche se potrebbe non funzionare per il tuo volume.)

EDIT : certo, la migliore soluzione, non condividerli. La memorizzazione di password in chiaro su qualsiasi supporto è pericolosa, in particolare quando lo scopo di memorizzarle è condividerle. C'è un numero quasi infinito di soluzioni, ognuna con un pericolo associato. Perché non metterli su un'immagine disco crittografata, masterizzare quell'immagine su un singolo CD, mettere il CD in una cassaforte che solo una guardia armata può aprire e avere persone autorizzate presentare un documento di identità per sbloccarlo?

Il punto è che non conosciamo veramente il tuo scenario. Perché condividi centinaia di password mission-critical? Sono per la tua intranet di backoffice, VPN o sono password dei clienti che tieni in chiaro per qualche motivo? Tutte le persone di cui hai bisogno per condividerlo nella stessa installazione? Un transfert fisico come un CD crittografato o un tavolo stampato archiviato in una cassaforte funzionerebbe davvero? O i tuoi amministratori di sistema sono sparsi in tutto il mondo, rendendo i mezzi elettronici per condividerli l' unica soluzione?


50
IMO Costruire il proprio sistema di sicurezza / crittografia non è quasi mai l'approccio giusto a un problema.
Zoredache,

2
@Zoredache, Questo è un sacco di merda. Tuttavia, penso che la soluzione basata sul Web per l'hosting delle password sia stupida, ma ha fatto msanford a dire intranet. Tuttavia è ancora rischioso. Lo stesso per tutte le altre soluzioni in rete.
d -_- b

2
@Zoredache, l'OP non sta costruendo un sistema di crittografia personalizzato, sembra che tutto ciò di cui abbia bisogno sia un database sicuro. @sims Non vedo nulla di male in una soluzione web ben progettata. La risposta votata suggerisce proprio questo (basato sul web! = Http; basato sul web = archiviato online). Certo, una volta che ho letto questa domanda una seconda volta, concordo sul fatto che il modello di base della condivisione di tonnellate di password sembra probabilmente non necessario e che potrebbe essere raggiunta una soluzione migliore. Ma il PO non mi ha dato abbastanza informazioni per esprimere quel giudizio ...
msanford,

2
> @Zoredache, è un sacco di schifezze. <Um, Sims, stai praticamente volando di fronte alla maggior parte delle persone che usano la crittografia. Progettare la crittografia è difficile, rendendola utile la crittografia è ancora più difficile. schneier.com/essay-037.html A volte il male minore - quello che conosci - è la scelta migliore, se confrontato con il male che non conosci (cioè un disegno non testato, non rivisto da pari, potrebbe avere bug, potrebbero avere falle nella sicurezza, ecc.)
Avery Payne,

1
@Overy: progettare un sistema crittografico è difficile e dovrebbe essere lasciato agli esperti, sì. L'uso di strumenti collaudati, come GPG su un file di testo condiviso o Keepass (che utilizza le implementazioni .NET di AES e SHA-256) non sta progettando il proprio sistema.
mfinni,

38

La migliore pratica non è quella di condividere le password. Utilizza strumenti come sudo per consentire agli utenti di ottenere l'accesso di cui hanno bisogno dal proprio account. Se hai pochi utenti, ognuno dovrebbe avere i propri account dove necessario. LDAP (Unix / Linux) e Active Directory sono una buona soluzione per garantire l'accesso a più server da un database comune.

Quando è necessario disporre di una copia scritta di una password, sigillarla in una busta firmata e datata sul sigillo. Cambia la password quando viene utilizzata. Quando la password viene modificata, sigillarla con una nuova busta.

Per le password che devono davvero essere condivise, utilizzare uno degli strumenti per password come Keepass che può avere il proprio database su una rete. Gli strumenti con i client per più piattaforme sono migliori. Considera se hai bisogno di più di un database. Ricorda che devi fidarti davvero di tutti coloro che hanno accesso a questi dati.


+1 per gli account utente senza privilegi per amministratori con possibile escalation di privilegi, su server * nix lo combinerei con l'utilizzo solo della certificazione dsa / rsa per sshd. Se stai facendo cose con strumenti grafici su Linux, potresti anche usare una configurazione di policykit personalizzata.
Aaron Tate,

12
Questo. La revoca dell'accesso per gli utenti quando utilizzano credenziali condivise è un vero incubo. Ove possibile, delegare l'accesso tramite un account univoco degli utenti. Ci sono sempre alcune situazioni in cui una password comune è inevitabile, ma "centinaia" di password condivise urlano un difetto di progettazione critico.
Chris Thorpe,

4
Concordo sul fatto che in genere non condivido le password, ma ci sono molte situazioni in cui è necessario, ad esempio dispositivi di rete con un unico accesso, siti di fornitori in cui tutti gli amministratori di sistema utilizzano lo stesso accesso per l'ordinazione e SQL sa utenti o password di amministratore locale in cui necessario. Ecco perché penso che KeePass sia il migliore per questo: funziona su più piattaforme, consente una buona sicurezza e organizza facilmente centinaia di password.
Paul Kroon,

2
Abbiamo una variazione su questo, in cui abbiamo le password di root scritte ma bloccate in una cassaforte che solo il team dei sistemi ha le chiavi da aprire. Le nostre stesse password di root sono lunghe 16 caratteri e sono generate in modo da essere quasi impossibili da ricordare. Sì, c'è qualche insicurezza lì, ma se qualcuno si rompe nella cassaforte, sospetto che abbiamo problemi più grandi.
Frenchie,

2
Ecco un vero scenario di casi d'uso per il nostro team: condivisione di password per applicazioni basate su Web in cui non supportano più accessi per un singolo account. Quindi, se più di una persona nel team deve poter accedere a quell'account, deve esserci un modo per condividere le password per quell'account.
Jordan Reiter,

11

Siamo andati con KeePass per questo preciso scopo. È un piccolo programma fantastico che memorizza tutte le password in un file di database crittografato. Esistono funzionalità di sicurezza aggiuntive come la necessità di un file chiave insieme alla password principale per accedere alle password. Ciò consente livelli multipli di sicurezza (separare il file delle chiavi e il database), mantenendo allo stesso tempo conveniente per tutti lavorare con tutte le diverse password. Ad esempio, è possibile eseguire l'app e il file chiave da un'unità USB, ma archiviare il database sulla rete da qualche parte. Ciò richiederebbe credenziali per la condivisione di rete, la password principale e l'unità USB fisica con il file chiave.


KeePass sembra supportare più piattaforme, una grande vittoria ai miei occhi (lavoro in un ambiente a piattaforma mista). Anche la funzione "auto-type" sembra utile.
Avery Payne,

2
Stupida idea di mantenere le password in rete.
d -_- b

1
@Sims - come li condividi? KeePass utilizza un file crittografato per l'archivio. È solo una versione più utilizzabile di un file di testo crittografato con GPG su un server Unix a cui tutti hanno accesso.
mfinni,

1
@Sims - Di solito sono d'accordo con te, ma diventa una situazione di sicurezza vs produttività. Non vorrei mettere la password di root di un server in qualcosa del genere, ma la password di amministrazione di uno switch Layer 2 che ha un solo login è un buon candidato per questo. C'è un momento in cui ci vuole più lavoro per fare le cose nel modo più sicuro di quello che dovrebbe ripulire dopo una violazione della sicurezza. Inoltre, oltre a tutta la crittografia, avresti la sicurezza AD / NTFS sul file e un po 'di oscurità mettendo il file (che può essere nominato qualsiasi cosa) in una posizione casuale.
Paul Kroon,

Non stavo pensando a una macchina Windows. Ma sì, se puoi avere un solo utente per quel passaggio, immagino che avrebbe senso. Altrimenti, come dice Bill, dire di no per le password condivise, che era anche il mio punto sulle chiavi.
d -_- b

5

Quali sono le migliori pratiche per condividere centinaia di password tra poche persone?

Facile, questo è disponibile in due gusti:

  1. No, chiaro e semplice. Se si sceglie di eseguire questa operazione, si rinvia l'autenticazione della password a un'autorità attendibile esterna e si controlla l'autenticazione da lì.

  2. Si, ma nel fare ciò si dispone di controlli di accesso esterni che dispongono di password o token di sicurezza che non sono registrati all'interno del sistema in uso (ovvero il record di password è protetto da un'altra password con disponibilità limitata). Ci sono numerosi problemi con questo.

Queste password proteggono i dati mission-critical e non possono mai essere visibili al di là di un piccolo team.

È necessario considerare seriamente un servizio di autenticazione sicuro che si integra con un servizio di directory per risolvere il problema. La combinazione DS / AS crea una "autorità" affidabile che può fungere da arbitro per tutti i tuoi utenti e dispositivi. È possibile sottrarre l'accesso agli account utente dalla password effettiva utilizzata nell'autenticazione, semplificando la "disconnessione" delle password dalla politica di accesso. Il controllo delle password avviene disattivando l'account dell'utente; quindi se un amministratore lascia, semplicemente chiudi il suo account e il loro accesso è sparito (perché la password di quella persona concede l'accesso solo in base alla validità del DS / AS che conferma l'account valido).

Funzionerà solo quando ti trovi in ​​un ambiente che consente ai tuoi dispositivi / programmi di deviare le loro richieste di autenticazione a fonti esterne, quindi potrebbe non essere una soluzione per te . Se hai una percentuale significativa di dispositivi / programmi in grado di supportare l'autenticazione esterna, andrei avanti e lo farei, se non altro per consolidare diverse centinaia di password fino a un elenco gestibile, diciamo, una dozzina. Se decidi di seguire questa strada, ci sono diverse soluzioni standard, ben note e ben collaudate.

  • Active Directory. Probabilmente il più noto del gruppo, ti offre Kerberos come opzione di autenticazione e fornisce LDAP per DS di base.
  • Samba / Winbind. Pensa a questo come "Active Directory Light", non ottieni tutte le funzionalità di AD ma piuttosto un modello precedente basato su NT4 (pensa all'hash LANMAN). Questo sarà soppiantato con l'integrazione AD di Samba 4 e probabilmente "sparirà".
  • Novell Directory Services. Non ne so abbastanza per consigliarlo, ma so che esiste ancora. Molte entità governative gestiscono ancora NDS, quindi se stai lavorando in quel "settore" ti interesserà. Di recente Novell ha portato NDS in esecuzione come servizio Linux, ma non so se sia ancora un prodotto attivo (circa 2005).
  • LDAP + Kerberos. Questo è fondamentalmente "Active Directory", meno tutte le "belle funzionalità". Tuttavia, sono anche noti componenti con una base di codice stabile e matura, quindi l'integrazione di questi servizi è di solito l'estensione della "personalizzazione" necessaria per far funzionare le cose.
  • Tasti SSH + (inserire qui il programma di amministrazione del sistema, probabilmente fantoccio). Utile solo dove hai SSH su tutta la linea e tutti i dispositivi sono accessibili in questo modo. Le chiavi possono essere distribuite e revocate secondo necessità e le password diventano "irrilevanti" quando la chiave SSH concede l'accesso. L'uso di un sistema come Puppet consente di aggiornare centinaia di macchine emettendo comandi in massa per aggiungere / revocare chiavi SSH.
  • Una combinazione di quanto sopra.

C'è anche una domanda su quanta sicurezza hai bisogno. Non hai specificato se per "mission critical" intendi che testate nucleari potrebbero piovere sulle città, o se "mission critical" significa che l'ultima spedizione di Furbies non arriverà in città. Sarebbe davvero utile se ci fosse qualcosa che descrivesse una valutazione del rischio / minaccia.


2

Poche cose:

  • Come altri hanno già detto, questa è una cattiva idea. Utilizzare un LDAP, ecc
  • Se ti impegni a farlo per qualsiasi motivo, almeno consolida le password. 100 password non gestite indicano che non stai aggiornando le password.
  • Conservali su carta. Richiedere al personale di firmare la carta con un inchiostro di colore diverso per facilitare la determinazione della copia di un foglio.
  • Se sei su Unix, usa S / KEY per generare password singole. Conservalo in un posto sicuro.

È inoltre necessario andare oltre le misure di sicurezza meccaniche di mettere le password di carta in modo sicuro o crittografare le password. Leggi come le organizzazioni con modelli di sicurezza maturi proteggono le chiavi e le combinazioni sicure. Non consiglio di fare quello che vuoi fare, ma se lo fai:

  • Le persone che useranno le password non possono controllare l'accesso alle password. Un gruppo distinto di persone in una diversa catena di gestione deve controllare l'accesso alla cassaforte, al cassetto, ecc. Se si dispone di un gruppo finanziario, potrebbero essere candidati. Forse il vicepresidente del marketing, ecc.
  • Ci deve essere un registro scritto quando la cassaforte è aperta e qualcuno prende possesso di una password.
  • La password deve essere cambiata entro 24 ore dal check-out.

Procedure come questa sono un dolore al collo, ma serviranno da incentivo per le persone ad adottare pratiche più sane. Se non fai qualcosa di simile a quello che ho descritto, non preoccuparti di seguire le istruzioni per bloccare le password, perché un giorno verrai comunque violato.


2

So che questa è una vecchia domanda, ma di recente mi sono imbattuto in una soluzione web open source chiamata Corporate Vault che potrebbe essere interessante per alcuni. Non ho ancora avuto la possibilità di provarlo.


1

usiamo un programma chiamato Password Safe . è bello e molto sicuro, puoi impostare il database su un'unità di rete e dare a tutti coloro che ne hanno bisogno l'accesso e la password alla cassaforte stessa, che quindi memorizza tutti i nomi utente e le password crittografate in modo sicuro.


1

https://pypi.python.org/pypi/django-pstore/ utilizza la crittografia GPG per utente per le password condivise (e qualsiasi altro dato che potresti voler condividere). Il server non conosce mai alcuna password, contiene solo i dati crittografati. Ognuno usa la propria chiave privata per decrittografare i segreti condivisi.

Il sistema include la gestione dei diritti: non tutti hanno pieno accesso.



0

SPB Wallet è un buon prodotto che usavamo per usare PW safe di ghost, ma SPB wallet ti consente di sincronizzarti con una condivisione di rete e anche di sincronizzarti con il tuo iPhone se ottieni l'app. Ha anche un generatore di password integrato e puoi generarli da password semplici a password estremamente complesse. Puoi anche copiare la password mentre la password è ancora contrassegnata da un asterisco, quindi se qualcuno ti sta guardando puoi copiarla e incollarla senza che nessuno la veda. L'app per PC si blocca automaticamente quando non c'è attività per un periodo di tempo definito.


0

Un'altra opzione è Azure Key Vault che archivia in modo sicuro i tuoi segreti e ti consente di autorizzare l'accesso ad essi a livello di codice , ruotare facilmente le tue password, ecc.


0

La nostra migliore pratica è quella di condividere il minor numero possibile di password.

Pertanto ad esempio: - utilizzare my.cnf nella directory principale home per le password del database - utilizzare le chiavi ssh per accedere ai server e disporre di una password di root consentita solo tramite console (quindi è necessario disporre dell'accesso fisico / bmc al server ) - usa ldap ovunque possibile (ssh, bmc, switch, redmine, ....)

Tuttavia, ci sono alcune situazioni in cui non siamo in grado di utilizzare questo approccio (come la password di root). Quindi utilizziamo keepass sul nostro archivio condiviso, ma conserviamo solo 10 password necessarie.


-1

Ottima domanda Sarei interessato ad altre risposte.

Ecco cosa faccio, ma prima consiglio di usare chiavi pre-condivise ove possibile. Non so se ciò sia possibile con i sistemi Windows.

Poiché la quantità di password dovrebbe essere ridotta (se possibile, utilizzare le chiavi), utilizzo un file di testo semplice crittografato con gpg su un sistema che non ha NIC. Quindi (1) è necessario l'accesso fisico e (2) una password.

modificato per chiarezza


Chiavi? Come in, chiavi USB? Chiavi fisiche che aprono le serrature? Chiavi della smart card? Chiavi GPG? Chiavi con passphrase che esistono solo nel wetware nella tua testa? Combinazioni di quanto sopra?
Avery Payne,

Chiavi della macchina! JK. Per chiarire, intendo i tasti ssh. Ecco perché ho detto che potrebbe non essere possibile utilizzare chiavi pre-condivise con Windows.
d -_- b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.