Die Rolle von Hash-Funktionen bei der Passwortsicherheit
Veröffentlicht am: 24 Feb. 2024
Zuletzt geändert am: 23 Sep. 2025
Hash-Funktionen spielen eine entscheidende Rolle bei der Passwortsicherheit für sichere Webdienste. Diese Dienste speichern niemals Ihr tatsächliches Passwort, sondern eine gehashte Version davon. Hash-Funktionen sind Algorithmen, die Eingabedaten (wie ein Passwort) in eine Zeichenkette fester Größe umwandeln. Dieser Prozess ist unumkehrbar, d.h. es ist nahezu unmöglich, die ursprüngliche Eingabe aus dem Hash abzuleiten. Wenn Sie sich anmelden, hackt der Dienst das von Ihnen angegebene Passwort und vergleicht es mit dem gespeicherten Hashwert. Auf diese Weise können Hacker selbst bei einem Datenverlust nicht auf Klartextpasswörter zugreifen, was die Sicherheit insgesamt erhöht.
Ein einfaches Anmeldeverfahren
Schauen wir uns zunächst an, wie ein einfacher Anmeldevorgang aussehen würde. Wir melden uns bei einem Webdienst auf die übliche Weise mit einem Kontonamen und einem Passwort an:

Unser einfacher Webservice hat in seiner Datenbank eine Tabelle mit allen Kontonamen und den dazugehörigen Passwörtern:

Der Webservice sucht zunächst den Kontonamen aus dem ausgefüllten Anmeldeformular in seiner Datenbank. Wenn der Name in der Datenbank existiert, vergleicht der Dienst auch das Passwort aus dem Anmeldeformular mit dem zugehörigen Passwort in der Datenbank. Wenn die Passwörter übereinstimmen, wird die Registrierung durchgeführt. Andernfalls wird die Registrierung verweigert. Auf den ersten Blick ist dies ein sicheres Anmeldeverfahren. Nur wer im Besitz eines gültigen Kontonamens ist und das zugehörige Kennwort kennt, kann sich Zugang zu dem entsprechenden Konto verschaffen. Allen anderen wird der Zugang verweigert. So weit, so gut! Aber was genau ist an diesem Verfahren nicht sicher?
Das Problem ist, dass die Passwörter in einer Datenbank gespeichert sind. Das bedeutet, dass sie potenziell jedem bekannt sind, der Zugriff auf die Datenbank hat, einschließlich der Betreiber der Webdienste und ihrer Mitarbeiter. Darüber hinaus ist es mittlerweile gängige Praxis, dass viele Unternehmen den eigentlichen Betrieb der von ihnen angebotenen Webdienste an US-amerikanische Cloud Computing-Anbieter wie Amazon Web Services oder Google Cloud auslagern. Daher können wir davon ausgehen, dass die Betreiber und Mitarbeiter dieser Cloud Computing-Anbieter im Prinzip auch Zugriff auf die Datenbank und damit auf unser Passwort haben. Darüber hinaus könnten sich natürlich auch Kriminelle unbefugt Zugang zu den Daten in der Datenbank verschaffen.
Außerdem ist es kein Geheimnis, dass die meisten Nutzer von Webdiensten das gleiche Passwort für mehrere Dienste verwenden. Wer also das Passwort für das Facebook/Twitter-Konto oder das Online-Reisebüro einer Zielperson in Erfahrung bringen konnte, wird mit etwas Glück auch das Passwort für deren E-Mail, Online-Banking, persönlichen Organizer, eine Dating-Plattform und das Intranet des Unternehmens, in dem die Zielperson arbeitet, haben. Der wirtschaftliche Anreiz, Passwörter aus der Datenbank eines beliebigen Webdienstes zu stehlen, ist dementsprechend hoch, selbst wenn dieser Webdienst selbst kein lukratives Ziel ist! Die Frage ist: Wie können wir dieses Problem lösen?
Ein ausgefeilteres Anmeldeverfahren
Erinnern wir uns: Der oben beschriebene Webdienst hat in seiner Datenbank eine Tabelle mit allen Kontonamen und den dazugehörigen Passwörtern:

Wir passen diese Tabelle auf folgende Weise an. Anstatt die Passwörter zu speichern, wenden wir eine kryptographische Hash-Funktion unserer Wahl auf die Passwörter an:

Dann speichern wir anstelle der Passwörter die resultierenden Hash-Werte in der Datenbank:

Dies ändert das Anmeldeverfahren nur geringfügig. Wir melden uns nach wie vor auf die übliche Weise mit einem Kontonamen und einem Passwort an:

Der Webservice sucht zunächst den Kontonamen aus dem ausgefüllten Anmeldeformular erneut in seiner Datenbank. Aber im nächsten Schritt ist das neue Verfahren anders. Wenn der Name in der Datenbank vorhanden ist, wird die Hash-Funktion auf das Passwort aus dem Anmeldeformular angewendet. Erst dann wird der resultierende Hash-Wert mit dem entsprechenden Hash-Wert in der Datenbank verglichen. Auch hier werden die Kennwörter nicht mehr miteinander verglichen, sondern nur noch ihre Hash-Werte. Wenn die Hash-Werte übereinstimmen, wird die Anmeldung durchgeführt. Andernfalls wird die Anmeldung verweigert.
Abgesehen von der Verwendung der Hash-Funktion hat sich an der Anmeldeprozedur nichts geändert. Aus den Eigenschaften von kryptographischen Hash-Funktionen folgt, dass der Vergleich der Hash-Werte genauso gut ist wie der direkte Vergleich der Kennwörter. Aber jetzt werden die Passwörter selbst nicht mehr in der Datenbank des Webdienstes gespeichert. Jeder, der sich Zugriff auf die Datenbank verschafft – ob autorisiert oder nicht – hat keinen Zugriff mehr auf die Passwörter, sondern nur noch auf deren Hash-Werte. Der oben beschriebene wirtschaftliche Anreiz, die Passwörter aus der Datenbank eines Webdienstes zu stehlen, entfällt also, da die Passwörter nun nicht mehr in der Datenbank enthalten sind.
Wie Hash-Funktionen in der Praxis funktionieren
Wir hoffen, dass wir besser erklären konnten, wie das möglich ist und warum es gängige Praxis ist, dass sichere Webdienste nicht einmal die Passwörter kennen, die wir beim Einloggen verwenden. In der Praxis wird die Sicherheit dieses Verfahrens noch erhöht, indem die Hash-Werte mit einer speziellen kryptografischen Hash-Funktion(bcrypt) erzeugt und zusätzlich mit einer datenbankweiten geheimen Zeichenfolge (Salt) verknüpft werden, bevor diese Hash-Funktion angewendet wird.
Wenn Sie Ihr Passwort für einen Webdienst vergessen haben, können Sie bei den meisten Webdiensten ein neues Passwort anfordern. Sie erhalten dann eine E-Mail mit einem Link, der Sie zu einem Formular führt, in dem Sie ein neues Passwort festlegen können. Wir wissen jetzt, warum dies so umständlich gehandhabt wird: Der Webdienst kennt Ihr altes Passwort nicht. Leider halten sich noch nicht alle Unternehmen an diese bewährte Sicherheitspraxis. Wenn Sie per E-Mail oder in einem Telefongespräch mit einem Support-Team angeben, dass Sie Ihr Passwort vergessen haben, und Ihnen dann tatsächlich Ihr Passwort mitgeteilt wird, können Sie daraus schließen, dass sich dieses Unternehmen nicht an moderne Informationssicherheitsstandards hält. Spätestens dann sollten Sie unbedingt darauf achten, dass Sie dieses Passwort in keinem anderen Zusammenhang verwenden. Um konsequent für jeden Webdienst ein eigenes Passwort zu verwenden, sollten Sie einen Passwort-Manager nutzen. Dann müssen Sie sich nicht mehr viele einzelne Passwörter merken und haben den zusätzlichen Vorteil, dass Sie stattdessen hochwertige Zufallspasswörter erstellen können. Es gibt Webbrowser-Plug-ins für beliebte Passwortmanager, die sogar die Anmeldebildschirme Ihrer Webdienste für Sie ausfüllen. Selten treffen Komfort und Sicherheit so gut zusammen.
Integration von Passwortsicherheit und Hash-Funktionen in Ihr persönliches Cybersicherheitstraining
Zusammenfassend lässt sich sagen, dass Hash-Funktionen eine entscheidende Rolle beim Schutz von Passwörtern vor Cyberangriffen spielen. Ihre Wirksamkeit hängt jedoch stark davon ab, wie gut die Menschen ihre Passwörter verstehen und verwalten. An dieser Stelle kommt die Schulung in Sachen Cybersicherheit ins Spiel. Indem wir den Menschen beibringen, wie man sichere Passwörter erstellt und vor Online-Bedrohungen auf der Hut ist, können wir alle dazu beitragen, dass unsere persönlichen Daten sicher bleiben. Denken Sie daran, dass die Sicherheit im Internet eine Teamleistung ist, und dass ein wenig Know-how einen großen Beitrag zum Schutz in der digitalen Welt leistet.