Revision 69af5044
Von Moritz Bunkus vor fast 9 Jahren hinzugefügt
SL/Auth/Password.pm | ||
---|---|---|
3 | 3 |
use strict; |
4 | 4 |
|
5 | 5 |
use Carp; |
6 |
use Digest::MD5 (); |
|
7 | 6 |
use Digest::SHA (); |
8 | 7 |
use Encode (); |
9 | 8 |
use PBKDF2::Tiny (); |
... | ... | |
49 | 48 |
if ($params{algorithm} =~ m/^SHA256/) { |
50 | 49 |
return '{' . $params{algorithm} . '}' . Digest::SHA::sha256_hex($salt . $params{password}); |
51 | 50 |
|
52 |
} elsif ($params{algorithm} =~ m/^SHA1/) { |
|
53 |
return '{' . $params{algorithm} . '}' . Digest::SHA::sha1_hex($salt . $params{password}); |
|
54 |
|
|
55 |
} elsif ($params{algorithm} =~ m/^MD5/) { |
|
56 |
return '{' . $params{algorithm} . '}' . Digest::MD5::md5_hex($salt . $params{password}); |
|
57 |
|
|
58 |
} elsif ($params{algorithm} eq 'CRYPT') { |
|
59 |
return '{CRYPT}' . crypt($params{password}, substr($params{login}, 0, 2)); |
|
60 |
|
|
61 | 51 |
} elsif ($params{algorithm} =~ m/^PBKDF2/) { |
62 | 52 |
return $class->hash_pkkdf2(password => $params{password}, stored_password => $params{stored_password}); |
63 | 53 |
|
... | ... | |
86 | 76 |
my ($class, $password, $default_algorithm) = @_; |
87 | 77 |
|
88 | 78 |
return ($1, $2) if $password =~ m/^\{ ([^\}]+) \} (.+)/x; |
89 |
return ($default_algorithm || 'CRYPT', $password);
|
|
79 |
return ($default_algorithm || 'PBKDF2', $password);
|
|
90 | 80 |
} |
91 | 81 |
|
92 | 82 |
1; |
Auch abrufbar als: Unified diff
Passwörter: Unterstützung für crypt, MD5 und SHA-1 entfernt
Diese Algorithmen gelten allesamt als unsicher.
Falls die Datenbank jemals in falsche Hände geraten sollte, so würden
zumindest die mit crypt und MD5 gehashten Passwörter schnell zu knacken
sein. Die mit SHA-1 gehashten dürften etwas länger dauern, aber auch sie
sind gefährdet. Daher werden sie in der Datenbank schlicht
entfernt. Admins müssen für solche Accounts neue Passwörter vergeben.
Dies sollte nur Accounts betreffen, deren Passwort sich seit der
Einführung von SHA256S als Mechanismus in kivitendo 2.7.0 Mitte 2011
nicht mehr geändert hat.