Motivo per vietare le cifre come primo carattere nelle password?

12

Quando ho sottoscritto un servizio da DHL (servizio di consegna pacchi in Germania), hanno avuto la più strana guida per le password che ho visto finora:

  • Almeno 8 caratteri ma non più di 13.
  • Solo uso di caratteri "validi". I caratteri indicati non includevano ' o " o ; o \ che sono le cose che proverei ad usare prima in una iniezione SQL.
  • Almeno una lettera maiuscola e minuscola.
  • Una cifra, ma non all'inizio .

Perché si dovrebbe vietare una cifra come primo carattere? In un mondo perfetto, salverebbero e cancellerebbero la password usando bcrypt o scrypt e tutte quelle restrizioni sul limite superiore dell'entropia potrebbero essere facilmente revocate. Apparentemente hanno un sistema di archiviazione debole come VARCHAR(13) o un triste mix di codice legacy e gestione delle carriere del carico.

Non riesco ancora a capire la regola in base alla quale la cifra non appare all'inizio della password. Perché dovrebbe farlo? L'unica cosa che posso pensare è che PHP valuta l'espressione "1Test" == 1 su true. In caso contrario, gli identificatori nei linguaggi di programmazione non devono iniziare con una cifra. Forse questa è l'origine dei "caratteri validi"?

Si può indovinare cosa sta facendo DHL nel back-end?

    
posta Martin Ueding 19.03.2016 - 20:41
fonte

3 risposte

4

È possibile che tu stia pensando troppo e stiano solo cercando di estrapolare molte password comuni facili da indovinare?

    
risposta data 20.03.2016 - 03:42
fonte
2

Penso che tu sia abbastanza azzeccato nella tua analisi.

Il requisito di lunghezza rende quasi certo che il backend memorizzi le password senza eseguire il locking di esse. Ciò potrebbe significare che quando si elabora la password nel codice, c'è il rischio che la password venga valutata da qualche parte. Come ti indichi, PHP valuterà "1Test" == 1 a true , causando tutti i tipi di problemi con una password che inizia con un numero.

Non riesco a vedere nessun altro motivo, sebbene ci possa naturalmente essere un numero qualsiasi di casi speciali con il codice specifico in esecuzione sul sito.

Questi tipi di requisiti sono in genere un segno di cattiva memorizzazione e gestione delle password.

    
risposta data 21.03.2016 - 22:56
fonte
0

L'unica cosa che posso pensare è la seguente. Molti linguaggi di programmazione vietano i numeri all'inizio dei nomi delle variabili. È possibile che stiano facendo un nome di variabile fuori dalla password. Ma quella sarebbe una scelta back-end molto strana!

    
risposta data 20.03.2016 - 02:45
fonte

Leggi altre domande sui tag