Ottima domanda!
Dichiarazione di non responsabilità: ho lavorato per grandi aziende tecnologiche e questa risposta si basa su questo. Non vengono divulgate tecniche specifiche o proprietarie dell'azienda.
Autenticazione delle persone
Scommetto che Facebook, Google, Twitter e altre grandi aziende tecnologiche non utilizzare tali servizi di terze parti per le loro password interne
In realtà, almeno alcuni fanno gestori di password di terze parti - per dipendenti e servizi non critici . Per la natura dell'attività, i dipendenti hanno spesso bisogno di interagire con siti Web di terzi (gestione delle informazioni dei dipendenti, prenotazione di viaggi, carte di credito dei dipendenti, ...). Tieni presente che queste sono credenziali individuali: autenticano una persona, non una risorsa o un processo
Il più grande dei servizi supporterà SSO (single sign-on) fornito dall'azienda. SSO è molto più sicuro, ma non tutti i fornitori lo supporteranno.
Un'altra pratica adottata nella maggior parte delle grandi aziende tecnologiche è l'uso di chiavi di sicurezza per l ' autenticazione a due fattori utilizzando U2F / FIDO o più recentemente WebAuthn / FIDO2
TOTP (" Google Authenticator") è comune, ma più vulnerabile agli attacchi MITM.
Autenticazione di risorse e processi
In che modo un'azienda molto grande può gestire alcune delle password più sensibili al mondo? (esempio: password di accesso root del team Gmail!)
Non esiste una "password root del team Gmail". La sua esistenza costituirebbe una minaccia enorme per la privacy dei dati degli utenti e, per estensione, per l'azienda.
C'è una sottile differenza con il tuo ultimo caso qui. Non stiamo autenticando le persone, stiamo autenticando risorse e processi.
Di solito non c'è di solito bisogno o vantaggio di usare una password per quei casi, ma sono ancora utilizzati per comodità, facilità di implementazione o perché non ci sono altre alternative.
Esaminiamo alcuni scenari ispirati a esempi di vita reale presso grandi aziende tecnologiche :
Il pin a 8 cifre della cassaforte contenente il cavo che ti collega al data center
Questa cassaforte potrebbe contenere o meno un cavo
Qui stiamo parlando di una risorsa condivisa che viene autenticata utilizzando una credenziale condivisa . Non esiste un modo (semplice) per renderlo più sicuro supportando credenziali individuali o accesso isolato.
Altri esempi:
Best practice per questo tipo della risorsa è:
- Condivisione del segreto attraverso un canale sicuro (come un gestore di password)
- Controllo dell'accesso segreto (le persone vengono autenticate e l'accesso al segreto viene registrato)
- Rotazione segreta: il segreto viene cambiato periodicamente
Ovviamente, troverai spesso anche pratiche sub-par!
Scenario 2 - Il processo software che memorizza la posta elettronica degli utenti
Ti fideresti di questo pezzo casuale di codice per memorizzare i tuoi segreti più intimi?
Questo scenario è più complesso. Qui abbiamo un processo che deve identificarsi con altri processi (come un database o un server web).
Le migliori pratiche possono includere:
- Nessun utilizzo di password (o segreti condivisi).
- Utilizzo di token di autenticazione di breve durata, comuni in protocolli come Kerberos
- Utilizzo di piattaforme di gestione delle chiavi come Hashicorp Vault o AWS Key Management Services, che facilitano la generazione, la rotazione e l'autenticazione dei segreti.
- Utilizzo di moduli di protezione hardware, garantendo che l'accesso a un dispositivo fisico debba avvenire affinché il processo possa svolgere la sua funzione
- Utilizzo di revisione del codice protocolli. Questo ha un duplice scopo di controllo degli accessi e auditing, per garantire che nessuna singola persona possa ottenere il controllo del sistema
Le peggiori pratiche includono:
Scenario 3: il gruppo amministrativo mondiale che può riavviare tutti i server
Sai di avere un problema quando devi spiegare a tante persone di non premere il pulsante rosso
Qui abbiamo un'azione o un'attività che può essere eseguito da determinati tipi di persone .
La migliore pratica è l'utilizzo di un appropriato sistema di controllo degli accessi basato sui ruoli (RBAC). Questi sono spesso fatti su misura e variano da organizzazione a organizzazione. Un esempio primitivo è un gruppo UNIX.
Come nell'esempio delle "credenziali condivise", il controllo / registrazione è essenziale e in questo caso più semplice, poiché la risorsa è elettronica / software -basato. L'appartenenza al gruppo può essere data o presa liberamente, da un gruppo di amministratori (che è solo un altro gruppo!) O anche da un quorum di membri del gruppo stesso
Sull'importanza dei processi rispetto a tech
Sono note grandi aziende per utilizzare implementazioni di Shamir's Secret Sharing?
Un po '. Anche nel regno dei cripto-nerd che conducono calcoli super sicuri, scoprirai che in pratica i processi umani sono spesso importanti quanto quelli tecnici.
Esempi famosi: