diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2011-12-01 11:37:46 -0500 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2011-12-01 11:37:46 -0500 |
| commit | e7c1589b9c4020a098a9c5c56ff916e643c9726b (patch) | |
| tree | 1f9c55127a7432c39af92a76f03347519105ebd9 /docs | |
| parent | 66cb7c4383aecd0edfc8415d32b3e791717e3c40 (diff) | |
| download | passlib-e7c1589b9c4020a098a9c5c56ff916e643c9726b.tar.gz | |
minor documentation changes
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/lib/passlib.hash.crypt16.rst | 10 | ||||
| -rw-r--r-- | docs/lib/passlib.hash.oracle10.rst | 11 | ||||
| -rw-r--r-- | docs/new_app_quickstart.rst | 20 |
3 files changed, 22 insertions, 19 deletions
diff --git a/docs/lib/passlib.hash.crypt16.rst b/docs/lib/passlib.hash.crypt16.rst index 28c5424..9fd2a21 100644 --- a/docs/lib/passlib.hash.crypt16.rst +++ b/docs/lib/passlib.hash.crypt16.rst @@ -51,7 +51,8 @@ The crypt16 algorithm uses a weakened version of the des-crypt algorithm: The salt string uses little-endian :func:`hash64 <passlib.utils.h64.decode_int12>` encoding. -3. The password is NULL padded at the end or truncated to 16 bytes, as appropriate. +3. If the password is larger than 16 bytes, the end is truncated to 16 bytes. + If the password is smaller than 16 bytes, the end is NULL padded to 16 bytes. 4. The lower 7 bits of the first 8 characters of the password are used to form a 56-bit integer; with the first character providing @@ -62,9 +63,10 @@ The crypt16 algorithm uses a weakened version of the des-crypt algorithm: starting with a null input block, and using the 56-bit integer from step 4 as the DES key. - The salt is used to to mutate the normal DES encrypt operation - by swapping bits :samp:`{i}` and :samp:`{i}+24` in the DES E-Box output - if and only if bit :samp:`{i}` is set in the salt value. + The salt value from step 2 is used to to mutate the normal + DES encrypt operation by swapping bits :samp:`{i}` and :samp:`{i}+24` + in the DES E-Box output if and only if bit :samp:`{i}` is set in + the salt value. 6. The 64-bit result of the last round of step 5 is then lsb-padded with 2 zero bits. diff --git a/docs/lib/passlib.hash.oracle10.rst b/docs/lib/passlib.hash.oracle10.rst index 27e7b6b..15deac3 100644 --- a/docs/lib/passlib.hash.oracle10.rst +++ b/docs/lib/passlib.hash.oracle10.rst @@ -82,11 +82,12 @@ Oracle10 account passwords, due to the following flaws [#flaws]_: (eg ``system``) will occur more frequently as salts, weakening the effectiveness of the salt in foiling pre-computed tables. -* The fact that is it case insensitive, and simply concatenates the username - and password, greatly reduces the keyspace for brute-force - or pre-computed attacks. +* The fact that it is case insensitive, and simply concatenates the username + and password, greatly reduces the keyspace that must be searched by + brute-force or pre-computed attacks. -* It's simplicity makes high-speed brute force attacks much more feasible. +* It's simplicity, and decades of research on high-speed DES + implementations, makes efficient brute force attacks much more feasible. Deviations ========== @@ -109,7 +110,7 @@ There is only one known issue: .. rubric:: Footnotes .. [#enc] The exact encoding used in step 3 of the algorithm is not clear from known references. - PassLib uses ``utf-16-be``, as this is both compatible with existing test vectors + PassLib uses ``utf-16-be``, as this is both compatible with existing test vectors, and supports unicode input. .. [#flaws] Whitepaper analyzing flaws in this algorithm - diff --git a/docs/new_app_quickstart.rst b/docs/new_app_quickstart.rst index a3a84ff..d18afb3 100644 --- a/docs/new_app_quickstart.rst +++ b/docs/new_app_quickstart.rst @@ -86,7 +86,7 @@ There is also an alternative LDAP-formatted version Issues: Neither the original Blowfish, nor the modified version which BCrypt uses, have been NIST approved; this matter of concern is what motivated the development of SHA512-Crypt. -As well, it's rounds parameter is logarithmically scaled, +As well, its rounds parameter is logarithmically scaled, making it hard to fine-tune the amount of time taken to verify passwords; which can be an issue for applications that handle a large number of simultaneous logon attempts (eg web apps). @@ -102,7 +102,7 @@ of simultaneous logon attempts (eg web apps). SHA512-Crypt ............ :class:`~passlib.hash.sha512_crypt` is -based on well-tested :class:`~passlib.hash.md5_crypt` +based on the well-tested :class:`~passlib.hash.md5_crypt` algorithm. In use since 2008, it's the default hash on most Linux systems; its direct ancestor :class:`!md5_crypt` has been in use since 1994 on most Unix systems. If you want your application's hashes to be readable by the @@ -112,10 +112,10 @@ on 32 bit processors; as well as LDAP-formatted versions of these ( :class:`~passlib.hash.ldap_sha512_crypt` and :class:`~passlib.hash.ldap_sha256_crypt`). -Issues: Like :class:`~passlib.hash.md5_crypt`, it's algorithm +Issues: Like :class:`~passlib.hash.md5_crypt`, its algorithm composes the underlying message digest hash in a baroque and somewhat arbitrary set combinations. -So far this "kitchen sink" design has been successful in it's +So far this "kitchen sink" design has been successful in its primary purpose: to prevent any attempts to create an optimized version for use in a pre-computed or brute-force search. However, this design also hampers analysis of the algorithm @@ -123,13 +123,13 @@ for future flaws. This algorithm is probably the best choice for Google App Engine, as Google's production servers appear to provide native support -via :mod:`crypt`, which will be used by Passlib. +via :mod:`crypt`, which will be used by Passlib. .. note:: - References to this algorithm are frequently confused with a raw SHA-512 hash; - while it uses SHA-512 as a cryptographic primitive, - this algorithm's resulting password hash is far more secure. + References to this algorithm are frequently confused with a raw SHA-512 hash. + While :class:`!sha512_crypt` uses the SHA-512 hash as a cryptographic primitive, + the algorithm's resulting password hash is far more secure. PBKDF2 ...... @@ -148,10 +148,10 @@ on 32 bit processors; as well as LDAP-formatted versions of these ( :class:`~passlib.hash.ldap_pbkdf2_sha256`). Issues: PBKDF2 has no security or portability issues. -However, it's only come into wide use as a password hash +However, it has only come into wide use as a password hash in recent years; mainly hampered by the fact that there is no standard format for encoding password hashes using this algorithm -(which is why Passlib has it's own :ref:`custom format <mcf-pbkdf2-format>`). +(which is why Passlib has its own :ref:`custom format <mcf-pbkdf2-format>`). .. note:: |
