Kennwortverschlüsselung (Salt): Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Sicherheit}}{{ÜberarbeitenNeu}}
{{Sicherheit}}
==Was bedeutet Passwort-Salting und Passwort-Peppering?==
==Was bedeutet Passwort-Salting und Passwort-Peppering?==


[http://de.wikipedia.org/wiki/Salt_(Kryptologie) Passwort-Salting] is a way of making password hashing more secure by adding a random string of characters to passwords before their hash is calculated, which makes them harder to reverse.
[http://de.wikipedia.org/wiki/Salt_(Kryptologie) Passwort-Salting] ist eine Methode, um Passwort-Hashes sicherer zu machen. Dabei wird eine zufällige Zeichenkette an das Passwort angehängt, bevor der Hash berechnet wird. Das macht es schwieriger, das Passwort zu entschlüsseln.


[https://en.wikipedia.org/wiki/Pepper_%28cryptography%29 Password peppering] is a secret added to a password at hashing time to increase the security of the hashed password. This value differs from a salt in that it is not stored with the password hash, instead the pepper is kept separate in the config.php file. It must also be kept secret and be be hard to guess. Keeping the value separate to the salt and hashed password, meaning if password hashes are compromised, it is much harder to reverse engineer the plain text passwords.
[https://en.wikipedia.org/wiki/Pepper_%28cryptography%29 Passwort-Peppering] ist ein Schlüssel, der zum Zeitpunkt der Hash-Berechnung an das Passwort angehängt wird, um die Sicherheit des Passwort-Hashes zu erhöhen. So ein Schlüssel unterscheidet sich von einem Salt dadurch, dass er nicht mit dem Passwort-Hash gespeichert wird. Stattdessen wird der Pepper separat in der Moodle-Konfigurationsdatei ''config.php''. Er muss geheim gehalten werden und schwer zu erraten sein. Wenn der Schlüssel separat vom Salt und Passwort-Hash gespeichert wird, ist es schwieriger, die Passwörter zu entschlüsseln, selbst wenn der Passwort-Hash kompromittiert wurde.


==How does Moodle use password salting?==
==Wie verwendet Moodle Passwort-Salting?==
Vor Moodle 2.5 gab es einen einzigen systemweiten Salt, der für die Hash-Berechnung der Nutzerkennwörter verwendet wurde. Ab Version 2.5 generiert Moodle automatisch einen Salt für jeden einzelnen Nutzer. Das ist sicherer und bedeutet, dass die systemweite Konfigurationsvariable Salt für Neuinstallationen ab Moodle 2.5. nicht mehr nötig ist.


Prior to Moodle 2.5 there was a single site-wide salt which was used when hashing every user's password. From Moodle 2.5 onwards Moodle automatically generates and adds a different salt for each individual user. This is more secure and means that a site-wide configuration variable for the salt is no longer required for '''new''' installations of 2.5 or greater.
==Wie verwendet Moodle Passwort-Peppering?==


==How does Moodle use password peppering?==
Moodle 4.3 führt Passwort-Pepper ein, die in der Moodle-Konfigurationsdatei konfiguriert und verwaltet werden. Ein Pepper muss mindestens 112 Bits Entropie haben, so dass der Pepper selbst nicht einfach durch eine Brute-Force-Attacke geknackt werden kann, wenn die Kombination aus Passwort und Hash bekannt ist.


{{New features}}Moodle 4.3 introduces password peppers that are configured and managed via the config.php file. A pepper needs to have at least 112 bits of entropy, so the pepper itself cannot be easily brute forced if you have a known password + hash combo.
Wenn ein Pepper gesetzt ist, werden alle vorhandenen Kennwörter beim nächsten Login aktualisiert. Um ein Pepper für die Moodle-Site zu setzen, müssen folgenden Einstellungen in der Moodle-Konfigurationsdatei eingetragen werden:
 
Once a pepper is set, existing passwords will be updated on next user login.  To set peppers for your site, the following setting must be set in config.php:


<pre>
<pre>
Zeile 22: Zeile 21:
</pre>
</pre>


The 'passwordpeppers' array must be numerically indexed with a positive number. New peppers can be added by adding a new element to the array with a higher numerical index. Upon next login a users password will be rehashed with the new pepper:
Das '''passwordpeppers''' Array muss mit einer positiven Zahl numerisch indiziert werden. Ein neues Pepper kann hinzugefügt werden, indem ein neues Element mit einem größeren numerischen Index im Array hinzugefügt wird. Beim nächsten Login wird das Nutzerkennwort mit dem neuen Pepper neu gehasht:


<pre>
<pre>
Zeile 31: Zeile 30:
</pre>
</pre>


Peppers can not be removed in bulk without resetting all user passwords. However, peppers can be progressively removed by setting the latest pepper to an empty string:
Peppers können nicht im Bulk gelöscht werden, ohne alle Nutzerkennwörter neu zu setzen. Gleichwohl können Peppers schrittweise gelöscht werden, indem das letzte Pepper auf eine leere Zeichenkette gesetzt wird:


<pre>
<pre>
Zeile 41: Zeile 40:
</pre>
</pre>


==Backwards compatibility for site upgrades==
==Rückwärtskompatibilität für Moodle-Aktualisierungen==
 
'''Important!''' If you are upgrading a site from 2.4 or below and you are already using a site-wide salt in your configuration file, '''you need to keep using it to ensure your existing users can still log in'''.


Each time a user logs in their password hash will be converted to the new scheme, but it may take a long time before all your users have logged in. Alternatively, if you would like to force all your users to use the new scheme you could force reset all passwords using [[Bulk_user_actions|Bulk user actions]].
'''Wichtig''': Wenn Sie von Moodle 2.4 oder älter aktualisieren und Sie bereits ein systemweites Salt in Ihrer Moodle-Konfigurationsdatei stehen haben, '''müssenSie dies weiter verwenden, um sicherzustellen, dass Ihre vorhandenen Nutzer/innen sich weiter in Moodle anmelden können'''.


For more details about the old site-wide salt configuration, see the [https://docs.moodle.org/24/en/Password_salting Moodle 2.4 Password Salt documentation].
Jedes Mal, wenn sich ein Nutzer anmeldet, wird sein Passwort-Hash nach dem neuen Verfahren berechnet, aber es kann lange dauern, bis sich alle Nutzer/innen angemeldet haben. Wenn Sie erzwingen wollen, dass alle Nutzer/innen das neue Verfahren verwenden, können Sie über die [[Nutzerverwaltung (Bulk)]] eine Kennwortänderung für alle Nutzer/innen verlangen.


==Sites running PHP version below 5.3.7==
Mehr Informationen zur alten systemweiten Salt-Konfiguration finden Sie in der Moodle 2.4 Dokumentation: [https://docs.moodle.org/24/de/Kennwortverschl%C3%BCsselung_(Salt) Kennwortverschlüsselung (Salt)].


The new password hashing mechanism relies on bcrypt support from PHP which is only normally available in PHP version is 5.3.7 or greater (see note below). If you are using a version of PHP which doesn't properly support bcrypt, Moodle will fall back to the old password hashing scheme, so we recommend that you continue to use a site-wide salt until you are able to upgrade PHP.
==Moodle-Sites mit PHP-Versionen älter als 5.3.7==
Der neue Passwort-Hash-Algorithmus basiert auf der bcrypt Unterstützung von PHP, die erst ab PHP 5.3.7 verfügbar ist. Wenn Sie eine PHP Version verwenden, die bcrypt nicht ordentlich unterstützt, dann geht Moodle zurück auf das alte Hash-Verfahren, so dass wir empfehlen, weiter das systemweite Salt zu verwenden, bis Sie PHP aktualisiert haben.


Note: While an important fix to PHP's hashing algorithm was added in 5.3.7, some distributions of Linux have backported the fix to bcrypt to earlier versions of PHP. This means that some earlier versions of PHP may still work. To confirm if your PHP supports the new hashing scheme you can use [https://github.com/ircmaxell/password_compat/blob/master/version-test.php this test].
'''Hinweis''': Während ein wichtiger Bugfix im Hash-Algorithmus von PHP 5.3.7 hinzugefügt wurde, haben eine Linux-Distributionen diesen Bugfix auch für ältere PHP-Versionen gemacht. D.h. es kann sein, dass auch ältere PHP-Versionen funktionieren. Um das zu prüfen, ob Ihre PHP Version das neue Hash-Verfahren unterstützt, können Sie diesen [https://github.com/ircmaxell/password_compat/blob/master/version-test.php Test] nutzen.


[[Category:Sicherheit]]
[[Category:Sicherheit]]
[[en:Password salting]]
[[en:Password salting]]

Aktuelle Version vom 24. April 2024, 10:27 Uhr

Was bedeutet Passwort-Salting und Passwort-Peppering?

Passwort-Salting ist eine Methode, um Passwort-Hashes sicherer zu machen. Dabei wird eine zufällige Zeichenkette an das Passwort angehängt, bevor der Hash berechnet wird. Das macht es schwieriger, das Passwort zu entschlüsseln.

Passwort-Peppering ist ein Schlüssel, der zum Zeitpunkt der Hash-Berechnung an das Passwort angehängt wird, um die Sicherheit des Passwort-Hashes zu erhöhen. So ein Schlüssel unterscheidet sich von einem Salt dadurch, dass er nicht mit dem Passwort-Hash gespeichert wird. Stattdessen wird der Pepper separat in der Moodle-Konfigurationsdatei config.php. Er muss geheim gehalten werden und schwer zu erraten sein. Wenn der Schlüssel separat vom Salt und Passwort-Hash gespeichert wird, ist es schwieriger, die Passwörter zu entschlüsseln, selbst wenn der Passwort-Hash kompromittiert wurde.

Wie verwendet Moodle Passwort-Salting?

Vor Moodle 2.5 gab es einen einzigen systemweiten Salt, der für die Hash-Berechnung der Nutzerkennwörter verwendet wurde. Ab Version 2.5 generiert Moodle automatisch einen Salt für jeden einzelnen Nutzer. Das ist sicherer und bedeutet, dass die systemweite Konfigurationsvariable Salt für Neuinstallationen ab Moodle 2.5. nicht mehr nötig ist.

Wie verwendet Moodle Passwort-Peppering?

Moodle 4.3 führt Passwort-Pepper ein, die in der Moodle-Konfigurationsdatei konfiguriert und verwaltet werden. Ein Pepper muss mindestens 112 Bits Entropie haben, so dass der Pepper selbst nicht einfach durch eine Brute-Force-Attacke geknackt werden kann, wenn die Kombination aus Passwort und Hash bekannt ist.

Wenn ein Pepper gesetzt ist, werden alle vorhandenen Kennwörter beim nächsten Login aktualisiert. Um ein Pepper für die Moodle-Site zu setzen, müssen folgenden Einstellungen in der Moodle-Konfigurationsdatei eingetragen werden:

      $CFG->passwordpeppers = [
          1 => '#GV]NLie|x$H9[$rW%94bXZvJHa%z'
     ];

Das passwordpeppers Array muss mit einer positiven Zahl numerisch indiziert werden. Ein neues Pepper kann hinzugefügt werden, indem ein neues Element mit einem größeren numerischen Index im Array hinzugefügt wird. Beim nächsten Login wird das Nutzerkennwort mit dem neuen Pepper neu gehasht:

      $CFG->passwordpeppers = [
          1 => '#GV]NLie|x$H9[$rW%94bXZvJHa%z',
          2 => '#GV]NLie|x$H9[$rW%94bXZvJHa%$'
      ];

Peppers können nicht im Bulk gelöscht werden, ohne alle Nutzerkennwörter neu zu setzen. Gleichwohl können Peppers schrittweise gelöscht werden, indem das letzte Pepper auf eine leere Zeichenkette gesetzt wird:

      $CFG->passwordpeppers = [
          1 => '#GV]NLie|x$H9[$rW%94bXZvJHa%z',
          2 => '#GV]NLie|x$H9[$rW%94bXZvJHa%$',
          3 => ''
      ];

Rückwärtskompatibilität für Moodle-Aktualisierungen

Wichtig: Wenn Sie von Moodle 2.4 oder älter aktualisieren und Sie bereits ein systemweites Salt in Ihrer Moodle-Konfigurationsdatei stehen haben, müssenSie dies weiter verwenden, um sicherzustellen, dass Ihre vorhandenen Nutzer/innen sich weiter in Moodle anmelden können.

Jedes Mal, wenn sich ein Nutzer anmeldet, wird sein Passwort-Hash nach dem neuen Verfahren berechnet, aber es kann lange dauern, bis sich alle Nutzer/innen angemeldet haben. Wenn Sie erzwingen wollen, dass alle Nutzer/innen das neue Verfahren verwenden, können Sie über die Nutzerverwaltung (Bulk) eine Kennwortänderung für alle Nutzer/innen verlangen.

Mehr Informationen zur alten systemweiten Salt-Konfiguration finden Sie in der Moodle 2.4 Dokumentation: Kennwortverschlüsselung (Salt).

Moodle-Sites mit PHP-Versionen älter als 5.3.7

Der neue Passwort-Hash-Algorithmus basiert auf der bcrypt Unterstützung von PHP, die erst ab PHP 5.3.7 verfügbar ist. Wenn Sie eine PHP Version verwenden, die bcrypt nicht ordentlich unterstützt, dann geht Moodle zurück auf das alte Hash-Verfahren, so dass wir empfehlen, weiter das systemweite Salt zu verwenden, bis Sie PHP aktualisiert haben.

Hinweis: Während ein wichtiger Bugfix im Hash-Algorithmus von PHP 5.3.7 hinzugefügt wurde, haben eine Linux-Distributionen diesen Bugfix auch für ältere PHP-Versionen gemacht. D.h. es kann sein, dass auch ältere PHP-Versionen funktionieren. Um das zu prüfen, ob Ihre PHP Version das neue Hash-Verfahren unterstützt, können Sie diesen Test nutzen.