L'elenco "Password Ban" di Microsoft memorizza in modo non sicuro le password utente?

68

Presumibilmente, Microsoft sta mettendo al bando le password comuni, e il loro elenco si aggiornerà in modo dinamico:

Microsoft says it is dynamically banning common passwords from Microsoft Account and Azure AD system. […] Microsoft is seeing more than 10 million accounts being attacked each day, and that this data is used to dynamically update the list of banned passwords.

Si basa sulle password attuali per gli account di altre persone, o semplicemente sulle password usate nei tentativi di forza bruta?

Potrebbe essere creato un sistema sicuro che controllasse gli aggiornamenti delle password con le password di altre persone e li rifiutasse se una password era troppo comune?

    
posta Michael 26.05.2016 - 18:57
fonte

4 risposte

123

Noi, in Microsoft, stiamo mettendo al bando le password più comunemente usate negli attacchi e nelle varianti vicine. Non basiamo questo sulle nostre popolazioni di utenti, che (a causa del sistema) non condividono queste password a meno che gli attacchi non cambino.

Le liste degli attacchi derivano generalmente dallo studio delle violazioni. Gli aggressori sono abbastanza intelligenti da guardare le liste per capire le password ad alta probabilità, quindi fanno la loro forza bruta, ecc. Attorno a quelle parole ad alta frequenza. Guardiamo le stesse liste più gli schemi di attacco per determinare i nostri elenchi di ban.

Spero che questo aiuti.

    
risposta data 27.05.2016 - 06:56
fonte
29

Un sistema che controlla le password degli account esistenti prima di decidere di bloccare la password di un nuovo utente come "troppo comune", in realtà, sarebbe controproducente. Non solo far sapere a un utente o a un utente malintenzionato che in realtà la password è valida per alcuni account, ma è valida per un lotto di account. In particolare, il valore soglia di comunanza - 1 di loro.

Quindi, l'approccio descritto nell'articolo è in effetti l'approccio che Microsoft sta usando per vietare le password comuni per Microsoft Account e Azure AD. Si tratta di una combinazione di password comuni e / o deboli note, password comunemente usate nei tentativi di accesso a forza bruta e variazioni su quelle password che sono determinate per essere troppo simili.

    
risposta data 26.05.2016 - 19:12
fonte
1

Could a secure system be built that checked password updates against other people's passwords and rejected them if a password was too common?

Ci sono dei motivi per non farlo, ma se avessi il compito di impedire l'uso eccessivo delle password, avrei ricevuto la password, l'ho hash, memorizzato l'hash in una tabella senza alcuna connessione con nessun utente e nemmeno il testo che è stato utilizzato per creare l'hash o aggiornare il conteggio se già esiste. Se il conteggio supera un limite, consiglia all'utente di scegliere un'altra password. Una volta che viene fornita una password accettabile, salila e salva l'hash salato per l'utente.

Quindi, non stai controllando direttamente le password degli altri utenti, solo contro i loro hash non salati.

    
risposta data 27.05.2016 - 19:11
fonte
0

Penso che la cosa migliore da fare sia controllare la debolezza della password sul lato server, questa può essere un'operazione costosa (ad esempio, la ricerca dai dizionari). Anche le password comunemente usate o controllate per gli attacchi sono una buona scommessa.

È possibile che MS provi prima a cancellare la password e a confrontarla con un elenco di password non sicure (che in realtà non sono utilizzate da nessun utente reale). Se l'hash fallisce, in questo caso, ad esempio, potrebbe cercare la forza della password con un altro euristico , infine può rifiutare o accettare la password e dimenticarla nella sua versione non hash. Se la password viene rifiutata, è probabile che sia aggiunto all'elenco di hash non protetto .

Il controllo della debolezza della password può anche tenere conto degli attacchi usati comunemente, quindi deve essere un algoritmo in evoluzione.

Questo ha 2 vantaggi:

  1. Non è necessario memorizzare TUTTI gli hash delle password non protette.
  2. Puoi vietare le collisioni dell'altro in hash (ad esempio una password complessa con lo stesso hash di una password debole).

Naturalmente quelle sono solo speculazioni, non possiamo sapere che le misure di sicurezza della password sono state prese da una corporazione così grande come Microsoft.

Come misura finale, utilizzerei un hash diverso per le password deboli rispetto alle password degli utenti reali.

EDIT: Perché anche le password deboli dovrebbero essere sottoposte a hash? Per me non c'è bisogno di un hash strong, ma le password deboli di hashing consentirebbero almeno di "proteggere" dati preziosi. Non è un costo fare un semplice hashing, ma se qualche perdita di dati del database, si sa che almeno i concorrenti non saranno in grado di invertire facilmente password deboli, che potrebbero essere ancora un problema di sicurezza per servizi che non usano il divieto lista o almeno può solo causare un piccolo vantaggio economico .

Quindi per rispondere a GroundZero comment: No, per me nessuna password debole dovrebbe essere memorizzata in testo normale. Un semplice hash sarebbe comunque utile per l'azienda. Questo perché ci sono password specifiche per la cultura, che raccolgono informazioni che richiederebbero un investimento massiccio, quindi perché dovresti memorizzare informazioni preziose in modo facile da recuperare?

    
risposta data 27.05.2016 - 10:49
fonte

Leggi altre domande sui tag