Wie Passwörter gespeichert werden
Table of Contents
Passwörter werden häufig eingesetzt um Programme und Daten zu schützen. Dennoch sind Passwörter alles andere als sicher
Passwörter in Linux
Die generierten Passwörter werden in der etc/passwd mit DES verschlüsselt gespeichert. Und zwar in der Form Username:Passwort:UserID:GroupID:Groupname:homedirectory Und da diese Passwörter im Klartext sicher eine zu leichte Beute wären, wird das Passwort mit DES verschlüsselt
DES
DES steht für Data Encryption Standard, ein Algorithmus der 1973 von IBM entwickelt wurde, da die National Security Agency (die unter anderem Telefonate / eMails überwacht und das Spionagesystem Echelon betreibt.) einen neuen Algorithmus suchte, um Computer der Regierung außerhalb des Bereichs “National Security” zu schützen. Der DES von IBM erhielt 1973 den Zuschlag für nicht klassifizierte Umgebungen und wurde bis 1977 intensiv getestet. In der Federal Processing Standards Publication 46-2 wurde der Algo so beschrieben.
… ein mathematischer Algorithmus zur Verschlüsselung und Entschlüsselung von binärcodierten Informationen. Beim Verschlüsseln werden die Daten in eine unverständliche Form gebracht, den Zifferncode. Beim Entschlüsseln dieses Zifferncodes werden die Daten wieder in ihre ursprüngliche Form gebracht, den sogenannten Klartext. …
DES verwendet zum Verschlüsseln einen 64-Bit-Schlüssel, welcher aus einem eingegebenen Passwort und zufälligen Füllbuchstaben besteht. 64-Bit ermöglichen 70.000.000.000.000.000 (70 Billiarden) mögliche Schlüsselkombinationen. Nach der Schlüsselvergabe werden drei wichtige mathematische Operationen durchgeführt. Zuerst die Anfangspermutation bei der die vorhandenen Buchstaben anhand einer fest vorgegebenen Tabelle umgeordnet werden um den Eingabeblock zu erzeugen.
Dann wird der Eingabeblock mittels einer Transformation in den sogenannten Vorausgabeblock umgewandelt.
Zuletzt wird dieser dann nochmals einer Permutation unterzogen. Das besondere an diesem Verfahren ist, daß es sich um einen sogenanten Falltüralgorithmus (Hash) handelt, man kann also nur das Passwort verschlüsseln und nicht wieder entschlüsseln. D.h. nach der Eingabe eines Passwortes beim Login wird dieses verschlüsselt und mit dem gespeicherten und verschlüsselten Passwort verglichen. Natürlich kann die Passwortdatei nun in die Gewalt eines Angreifers kommen und für einen Brute-Force-Angriff mißbraucht werden. Aus diesem Grunde wurde das Konzept abgeändert und das sogenannte Passwordshadowing eingeführt.
shadowing
In dem Verfahren werden die Passwörter nicht mehr in der lesbaren /etc/passwd
gespeichert, sondern in der unzugänglichen /etc/shadow
nach folgendem Muster:
Username : Passwort : Tage seit dem 01.01.1970 seitdem das Passwort geändert wurde : Tage bis das PW geändert werden muß; : Tage die der User im Vorraus gewarnt wird sein PW zu ändern : Tage bis der Account gesperrt wird : reserviert
Da die Passwörter nur von etc/passwd
nach /etc/shadow
verlagert werden, ändert sich lediglich der Richtkreis, auf den sich der Angreifer einschießt, deshalb sollte man natürlich besonders die Shadow-Suite pflegen und patchen.
Sources: Federal Processing Standards Publication 46-2, Hacker’s Guide, Linux Hacker’s Guide, misc