|
|
|
|
| |
| In this paper the authors examine the mechanism used in Oracle databases for protecting users' passwords. The paper explains how to hash is generated, and shows the feasibility of brute force attack on retrieved hashes. The paper also lists several practices to help secure the hashes against bruteforcing. |
| |
Credit:
The original article can be found at: http://www.sans.org/info/911/
|
| |
The Algorithm:
1. Concatenate the username and the password to produce a plaintext string;
2. Convert the plaintext string to uppercase characters;
3. Convert the plaintext string to multi-byte storage format; ASCII characters have the
high byte set to 0x00;
4. Encrypt the plaintext string (padded with 0s if necessary to the next even block length)
using the DES algorithm in cipher block chaining (CBC) mode with a fixed key value of
0x0123456789ABCDEF;
5. Encrypt the plaintext string again with DES-CBC, but using the last block of the output
of the previous step (ignoring parity bits) as the encryption key. The last block of the
output is converted into a printable string to produce the password hash value.
Dictionary Attack:
Given the weak Oracle password hashing mechanism, it is practical for an attacker with modern hardware to exhaust all possibilities for a limited password length to brute-force the password hash. Using a standard Intel Pentium 4 2.8 GHz workstation with OpenSSL 0.9.8-beta3, the authors achieved a rate of approximately 830,000 password hashes/second on a 32-byte data block. With a password length of 8 alphanumeric characters and a known username of 8 characters, an attacker could compute all possible possible passwords for a particular account in approximately 39.3 days using similar hardware, expecting to successfully recover the plaintext password in approximately 20 days. This is especially problematic for organizations with a password expiration duration that is shorter than 20 days, since it is likely an attacker will be able to produce the plaintext password before the account password is changed.
The full paper can be found at: http://www.sans.org/info/911/
|
|
|
|
|
|
|
|
|
|