{"id":30524,"date":"2023-10-04T10:10:21","date_gmt":"2023-10-04T08:10:21","guid":{"rendered":"https:\/\/www.kaspersky.de\/blog\/?p=30524"},"modified":"2023-10-04T10:10:21","modified_gmt":"2023-10-04T08:10:21","slug":"how-to-store-passwords","status":"publish","type":"post","link":"https:\/\/www.kaspersky.de\/blog\/how-to-store-passwords\/30524\/","title":{"rendered":"Passwortspeicherung als Grundstein der Sicherheit"},"content":{"rendered":"<p>Jetzt, wo das erste Quartal des 21. Jahrhunderts zu Ende geht, ist sicher jedem bewusst, dass Passw\u00f6rter digitales Gold sind und dass ihr Schutz ein wichtiger Aspekt der Gew\u00e4hrleistung der Datensicherheit und des Datenschutzes ist. Dennoch speichern noch l\u00e4ngst nicht alle Unternehmen ihre Passw\u00f6rter richtig.<\/p>\n<p>In diesem Beitrag sehen wir uns an, wie man Benutzerpassw\u00f6rter NICHT speichern sollte und welche Methoden von Diensten verwendet werden, die es mit der Sicherheit ernst meinen.<\/p>\n<p>\u00a0<\/p>\n<h2>Der falsche Weg: Speichern von Passw\u00f6rtern im Klartext<\/h2>\n<p>Die einfachste Methode besteht darin, Passw\u00f6rter in einer unverschl\u00fcsselten Datenbank zu speichern. Wenn sich ein Benutzer anzumelden versucht, wird die Authentifizierung lediglich durch den Abgleich der eingegebenen Daten mit den in der Datenbank gespeicherten Daten vorgenommen.<\/p>\n<p>Allerdings besteht immer die Gefahr, dass Angreifer diese Datenbank auf irgendeine Weise stehlen \u2013 zum Beispiel durch das Ausnutzen von Sicherheitsl\u00fccken in der Datenbanksoftware. Alternativ k\u00f6nnte eine Passworttabelle von einem Mitarbeiter mit hohen Zugriffsrechten in b\u00f6ser Absicht gestohlen werden. Auch geleakte oder abgefangene Anmeldedaten von Mitarbeitern k\u00f6nnten zum Diebstahl von Kennw\u00f6rtern verwendet werden. Kurz gesagt, es gibt viele Szenarien, in denen etwas schief gehen kann. Denken Sie daran: Daten, die in offener Form gespeichert sind, sind genau das \u2013 offen.<\/p>\n<p>\u00a0<\/p>\n<h2>Ein angemessener Weg: verschl\u00fcsselte Passw\u00f6rter<\/h2>\n<p>Was, wenn Sie Passw\u00f6rter in verschl\u00fcsselter Form speichern? Auf den ersten Blick keine schlechte Idee, in der Praxis allerdings nicht ganz unproblematisch. Denn werden Passw\u00f6rter verschl\u00fcsselt in der Datenbank gespeichert, m\u00fcssen sie jedes Mal entschl\u00fcsselt werden, um sie mit den Benutzereingaben abzugleichen.<\/p>\n<p>Und das bedeutet, dass der Verschl\u00fcsselungsschl\u00fcssel irgendwo in unmittelbarer N\u00e4he sein muss. Wenn das der Fall ist, kann dieser Schl\u00fcssel zusammen mit der Kennwortdatenbank leicht in die H\u00e4nde von Hackern fallen. Damit w\u00e4re der ganze Zweck verfehlt: Die Cyberkriminellen k\u00f6nnten diese Datenbank schnell entschl\u00fcsseln und die Kennw\u00f6rter im Klartext abrufen, womit wir wieder am Anfang st\u00fcnden.<\/p>\n<p>Wie Kryptographen allen Ernstes scherzen, wird das Problem des Datenschutzes durch Verschl\u00fcsselung nicht gel\u00f6st \u2013 vielmehr wird es dadurch zu einem Problem der sicheren Schl\u00fcsselspeicherung. Man kann zwar einige raffinierte Schemata entwickeln, die das Risiko verringern, aber im Allgemeinen wird es nicht m\u00f6glich sein, Passw\u00f6rter auf diese Weise zuverl\u00e4ssig zu sch\u00fctzen.<\/p>\n<p>\u00a0<\/p>\n<h2>Der bessere Weg: das Speichern von Passwort-Hashes<\/h2>\n<p>Die optimale Methode ist, Passw\u00f6rter \u00fcberhaupt nicht zu speichern. Denn was man nicht hat, kann auch nicht gestohlen werden, oder?<\/p>\n<p>Aber wie kann man \u00fcberpr\u00fcfen, ob ein angemeldeter Benutzer das richtige Kennwort eingegeben hat? Hier kommen <a href=\"https:\/\/de.wikipedia.org\/wiki\/Hashfunktion\" target=\"_blank\" rel=\"noopener nofollow\">Hash-Funktionen<\/a> ins Spiel: spezielle kryptografische Algorithmen, die beliebige Daten auf vorhersehbare, aber nicht umkehrbare Weise in eine Bitfolge fester L\u00e4nge zerlegen.<\/p>\n<p><em>Vorhersehbar<\/em> bedeutet in diesem Fall, dass die gleichen Daten immer in den gleichen Hash umgewandelt werden. Und <em>unumkehrbar<\/em> will hei\u00dfen, dass es v\u00f6llig unm\u00f6glich ist, die gehashten Daten \u00fcber den Hash wiederherzustellen. So macht es jeder Online-Dienst, der sich auch nur ein bisschen um die Daten seiner Nutzer k\u00fcmmert und seinen Ruf sch\u00e4tzt.<\/p>\n<p>Wenn man bei der Registrierung ein Passwort erstellt, wird nicht das Passwort selbst, sondern sein Hash zusammen mit dem Benutzernamen in der Datenbank gespeichert. Dieser Hash wird dann w\u00e4hrend des Anmeldevorgangs mit dem Hash des vom Benutzer eingegebenen Passworts verglichen. Wenn beide \u00fcbereinstimmen, bedeutet dies, dass die Passw\u00f6rter identisch sind.<\/p>\n<p>Im Falle eines Datenbanklecks gelangen die Angreifer nicht in den Besitz der Passw\u00f6rter, sondern ihrer Hashes, aus denen die urspr\u00fcnglichen Daten nicht wiederhergestellt werden k\u00f6nnen. Selbstverst\u00e4ndlich ist dies ein gro\u00dfer Fortschritt in Sachen Sicherheit, aber zum Jubeln ist es noch zu fr\u00fch: Wenn Cyberkriminelle die Hashes in die H\u00e4nde bekommen, k\u00f6nnten sie versuchen, einen Brute-Force-Angriff durchzuf\u00fchren.<\/p>\n<p>\u00a0<\/p>\n<h2>Der noch bessere Weg: Salted Hashes<\/h2>\n<p>Nachdem sie sich Zugang zu Ihrer Datenbank verschafft haben, k\u00f6nnten Hacker versuchen, die Passw\u00f6rter per Brute-Force-Verfahren zu extrahieren. Das hei\u00dft, sie nehmen eine Zeichenkombination, berechnen ihren Hash und suchen in allen Eintr\u00e4gen der Datenbank nach \u00dcbereinstimmungen. Gibt es keine \u00dcbereinstimmung, wird eine andere Kombination ausprobiert und so weiter. Bei einer \u00dcbereinstimmung ist das Kennwort, das zur Berechnung des Hashwerts in der Datenbank verwendet wurde, somit bekannt.<\/p>\n<p>Noch schlimmer ist, dass der Prozess des Crackens gehashter Kennw\u00f6rter mit Hilfe so genannter <a href=\"https:\/\/de.wikipedia.org\/wiki\/Rainbow_Table\" target=\"_blank\" rel=\"noopener nofollow\"><em>Rainbow Tables<\/em><\/a> erheblich beschleunigt werden kann. Rainbow Tables sind riesige Datenstrukturen mit vorab berechneten Hash-Funktionen f\u00fcr die am h\u00e4ufigsten vorkommenden Passw\u00f6rter. So erleichtern sie die Suche nach \u00dcbereinstimmungen in der gestohlenen Datenbank. Und das alles geschieht nat\u00fcrlich automatisch, so dass das Knacken von Passw\u00f6rtern viel zu schnell geht, als dass es angenehm w\u00e4re.<\/p>\n<p>Allerdings gibt es auch eine gute Nachricht: Es ist unm\u00f6glich, die Hashes aller m\u00f6glichen Zeichenkombinationen im Voraus zu berechnen \u2013 eine vollst\u00e4ndige Regenbogentabelle f\u00fcr jeden Hash-Algorithmus w\u00fcrde mehr Speicherplatz beanspruchen, als es auf der Erde gibt. Selbst bei dem nicht allzu zuverl\u00e4ssigen MD5-Algorithmus w\u00fcrde eine solche hypothetische Tabelle stolze 340 282 366 920 938 463 463 374 607 431 768 211 456 Datens\u00e4tze enthalten. Daher werden nur die h\u00e4ufigsten Kombinationsm\u00f6glichkeiten in Rainbow-Tabellen aufgenommen.<\/p>\n<p>Um den Einsatz von Rainbow Tables zu unterbinden, haben Kryptographen eine L\u00f6sung gefunden, die sich eine weitere wichtige Eigenschaft von Hash-Funktionen zunutze macht: Selbst die kleinste \u00c4nderung im Quelltext ver\u00e4ndert das Hash-Ergebnis bis zur Unkenntlichkeit.<\/p>\n<p>Bevor ein Passwort-Hash ermittelt und in die Datenbank geschrieben wird, wird ihm eine zuf\u00e4llige Menge von Zeichen (Salt genannt) hinzugef\u00fcgt. So werden die Hashes in der Datenbank so ver\u00e4ndert, dass selbst <a href=\"https:\/\/www.kaspersky.com\/blog\/25-worst-passwords-2014\/7239\/\" target=\"_blank\" rel=\"noopener nofollow\">die einfachsten, offensichtlichsten und am h\u00e4ufigsten verwendeten Kennw\u00f6rter<\/a> wie \u201e12345678\u201c und \u201epassword\u201c nicht mit Hilfe von Rainbow Tables geknackt werden k\u00f6nnen.<\/p>\n<p>Die einfachste Variante verwendet dasselbe Salt f\u00fcr alle Passw\u00f6rter. Allerdings wird bei der hackresistentesten Variante f\u00fcr jeden einzelnen Datensatz ein eigenes Salt erstellt. Der Vorteil dieses Ansatzes ist, dass die Salts in derselben Datenbank gespeichert werden k\u00f6nnen, ohne dass ein zus\u00e4tzliches Risiko besteht: selbst, wenn die Angreifer den Salt kennen, macht dies ihre Aufgabe nicht einfacher. Um die Hashes zu knacken, m\u00fcssen sie nach wie vor Brute-Force-Methoden anwenden und jede einzelne Kombination durchgehen.<\/p>\n<p>Je mehr Online-Dienste diese Methode der Nicht-Speicherung von Passw\u00f6rtern verwenden, desto weniger wahrscheinlich wird ein potenzieller Massendiebstahl von Nutzer-Anmeldeinformationen (und die anschlie\u00dfenden Probleme im Zusammenhang mit dem Hacken von Konten).<\/p>\n<p>\u00a0<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"mdr\"><input type=\"hidden\" class=\"placeholder_for_banner\" data-cat_id=\"mdr\" value=\"28669\">\n","protected":false},"excerpt":{"rendered":"<p>Wie Online-Dienste die Passw\u00f6rter von Nutzern speichern sollten und wie man den Schaden im Falle eines Datenlecks oder eines Hacks minimiert.<\/p>\n","protected":false},"author":2726,"featured_media":30525,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1848,3107,3108],"tags":[1525,208,978,2907,980,2635,125,1653,645],"class_list":{"0":"post-30524","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-enterprise","9":"category-smb","10":"tag-datenlecks","11":"tag-hacking","12":"tag-hash","13":"tag-konten","14":"tag-kryptographie","15":"tag-online-dienste","16":"tag-passworter","17":"tag-security","18":"tag-technologie"},"hreflang":[{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/how-to-store-passwords\/30524\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/how-to-store-passwords\/26286\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/how-to-store-passwords\/21719\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/how-to-store-passwords\/28961\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/how-to-store-passwords\/26568\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/how-to-store-passwords\/26693\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/how-to-store-passwords\/29183\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/how-to-store-passwords\/36161\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/how-to-store-passwords\/49101\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/how-to-store-passwords\/21014\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/how-to-store-passwords\/21802\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/how-to-store-passwords\/26839\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/how-to-store-passwords\/32570\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/how-to-store-passwords\/32223\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.de\/blog\/tag\/passworter\/","name":"Passw\u00f6rter"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/30524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/users\/2726"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/comments?post=30524"}],"version-history":[{"count":2,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/30524\/revisions"}],"predecessor-version":[{"id":30527,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/posts\/30524\/revisions\/30527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/media\/30525"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/media?parent=30524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/categories?post=30524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.de\/blog\/wp-json\/wp\/v2\/tags?post=30524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}