|
1 | 1 | <?xml version="1.0" encoding="utf-8"?>
|
2 | 2 | <!-- $Revision$ -->
|
3 |
| - |
4 |
| -<appendix xml:id="xpass.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> |
| 3 | +<appendix xml:id="xpass.constants" xmlns="http://docbook.org/ns/docbook"> |
5 | 4 | &reftitle.constants;
|
6 | 5 | &extension.constants;
|
7 | 6 |
|
8 |
| - <para> |
9 |
| - Xpass extension provides various set of constants. |
10 |
| - Hash methods (CRYPT_PREFIX_) for <function>crypt_gensalt</function> prefix parameter. |
11 |
| - Error codes (CRYPT_SALT_) returned by <function>crypt_checksalt</function>. |
12 |
| - Password algorithms (PASSWORD_) for <function>password_hash</function> algo parameter. |
13 |
| - </para> |
| 7 | + <simpara> |
| 8 | + Xpass extension provides various set of constants. |
| 9 | + Hash methods (CRYPT_PREFIX_) for <function>crypt_gensalt</function> prefix parameter. |
| 10 | + Error codes (CRYPT_SALT_) returned by <function>crypt_checksalt</function>. |
| 11 | + Password algorithms (PASSWORD_) for <function>password_hash</function> algo parameter. |
| 12 | + </simpara> |
14 | 13 |
|
15 | 14 | <variablelist xml:id="xpass.constants.algo">
|
16 | 15 | <title>Hashing methods</title>
|
|
21 | 20 | </term>
|
22 | 21 | <listitem>
|
23 | 22 | <simpara>
|
24 |
| - The original hashing method from Unix V7, based on the DES block cipher. |
25 |
| - Because DES is cheap on modern hardware, because there are only 4096 possible |
26 |
| - salts and 2**56 distinct passphrases, which it truncates to 8 characters, |
27 |
| - it is feasible to discover any passphrase hashed with this method. |
28 |
| - It should only be used if you absolutely have to generate hashes that will |
29 |
| - work on an old operating system that supports nothing else. |
| 23 | + The original hashing method from Unix V7, based on the DES block cipher. |
| 24 | + Because DES is cheap on modern hardware, |
| 25 | + because there are only <literal>4096</literal> possible salts and 2**56 distinct passphrases, |
| 26 | + which it truncates to 8 characters, |
| 27 | + it is feasible to discover any passphrase hashed with this method. |
| 28 | + It should only be used if you absolutely have to generate hashes that will |
| 29 | + work on an old operating system that supports nothing else. |
30 | 30 | </simpara>
|
31 | 31 | </listitem>
|
32 | 32 | </varlistentry>
|
|
37 | 37 | </term>
|
38 | 38 | <listitem>
|
39 | 39 | <simpara>
|
40 |
| - An extension of traditional DES, which eliminates the length limit, increases |
41 |
| - the salt size, and makes the time cost tunable. It originates with BSDI BSD/OS |
42 |
| - and is also available on at least NetBSD, OpenBSD, and FreeBSD due to the |
43 |
| - use of David Burren's FreeSec library. It is much better than traditional DES |
44 |
| - and bigcrypt, but still should not be used for new hashes. |
| 40 | + An extension of traditional DES, which eliminates the length limit, |
| 41 | + increases the salt size, and makes the time cost tunable. |
| 42 | + It originates with BSDI BSD/OS and is also available on at least NetBSD, |
| 43 | + OpenBSD, and FreeBSD due to the use of David Burren's FreeSec library. |
| 44 | + It is much better than traditional DES and bigcrypt, |
| 45 | + but still should not be used for new hashes. |
45 | 46 | </simpara>
|
46 | 47 | </listitem>
|
47 | 48 | </varlistentry>
|
|
52 | 53 | </term>
|
53 | 54 | <listitem>
|
54 | 55 | <simpara>
|
55 |
| - A hash based on the MD5 algorithm, originally developed by Poul-Henning Kamp for FreeBSD. |
56 |
| - Supported on most free Unixes and newer versions of Solaris. Not as weak as the DES-based |
57 |
| - hashes below, but MD5 is so cheap on modern hardware that it should not be used for new |
58 |
| - hashes. Processing cost is not adjustable. |
| 56 | + A hash based on the MD5 algorithm, originally developed by Poul-Henning Kamp for FreeBSD. |
| 57 | + Supported on most free Unixes and newer versions of Solaris. |
| 58 | + Not as weak as the DES-based hashes below, |
| 59 | + but MD5 is so cheap on modern hardware that it should not be used for new hashes. |
| 60 | + Processing cost is not adjustable. |
59 | 61 | </simpara>
|
60 | 62 | </listitem>
|
61 | 63 | </varlistentry>
|
|
80 | 82 | <listitem>
|
81 | 83 | <simpara>
|
82 | 84 | A hash based on SHA-2 with 256-bit output, originally developed by Ulrich Drepper for GNU libc.
|
83 |
| - Supported on Linux but not common elsewhere. Acceptable for new hashes. |
84 |
| - The default processing cost parameter is 5000, which is too low for modern hardware. |
| 85 | + Supported on Linux but not common elsewhere. |
| 86 | + Acceptable for new hashes. |
| 87 | + The default processing cost parameter is <literal>5000</literal>, |
| 88 | + which is too low for modern hardware. |
85 | 89 | </simpara>
|
86 | 90 | </listitem>
|
87 | 91 | </varlistentry>
|
|
93 | 97 | <listitem>
|
94 | 98 | <simpara>
|
95 | 99 | A hash based on SHA-2 with 512-bit output, originally developed by Ulrich Drepper for GNU libc.
|
96 |
| - Supported on Linux but not common elsewhere. Acceptable for new hashes. |
97 |
| - The default processing cost parameter is 5000, which is too low for modern hardware. |
| 100 | + Supported on Linux but not common elsewhere. |
| 101 | + Acceptable for new hashes. |
| 102 | + The default processing cost parameter is <literal>5000</literal>, |
| 103 | + which is too low for modern hardware. |
98 | 104 | </simpara>
|
99 | 105 | </listitem>
|
100 | 106 | </varlistentry>
|
|
105 | 111 | </term>
|
106 | 112 | <listitem>
|
107 | 113 | <simpara>
|
108 |
| - Scrypt is a password-based key derivation function created by Colin Percival, originally |
109 |
| - for the Tarsnap online backup service. The algorithm was specifically designed to make it |
110 |
| - costly to perform large-scale custom hardware attacks by requiring large amounts of memory. |
111 |
| - In 2016, the scrypt algorithm was published by IETF as RFC 7914. |
| 114 | + Scrypt is a password-based key derivation function created by Colin Percival, |
| 115 | + originally for the Tarsnap online backup service. |
| 116 | + The algorithm was specifically designed to make it costly to perform |
| 117 | + large-scale custom hardware attacks by requiring large amounts of memory. |
| 118 | + In 2016, the scrypt algorithm was published by IETF as RFC 7914. |
112 | 119 | </simpara>
|
113 | 120 | </listitem>
|
114 | 121 | </varlistentry>
|
|
122 | 129 | Gost-yescrypt uses the output from yescrypt as an input message to HMAC with the
|
123 | 130 | GOST R 34.11-2012 (Streebog) hash function with a 256-bit digest.
|
124 | 131 | Thus, yescrypt's cryptographic properties are superseded by those of the GOST hash function.
|
125 |
| - This hashing method is useful in applications that need modern passphrase hashing, but have |
126 |
| - to rely on GOST algorithms. The GOST R 34.11-2012 (Streebog) hash function |
127 |
| - has been published by the IETF as RFC 6986. Acceptable for new hashes where required. |
| 132 | + This hashing method is useful in applications that need modern passphrase hashing, |
| 133 | + but have to rely on GOST algorithms. |
| 134 | + The GOST R 34.11-2012 (Streebog) hash function has been published by the IETF as RFC 6986. |
| 135 | + Acceptable for new hashes where required. |
128 | 136 | </simpara>
|
129 | 137 | </listitem>
|
130 | 138 | </varlistentry>
|
|
135 | 143 | </term>
|
136 | 144 | <listitem>
|
137 | 145 | <simpara>
|
138 |
| - Yescrypt is a scalable passphrase hashing scheme designed by Solar Designer, which is based |
139 |
| - on Colin Percival's scrypt. While yescrypt's strength against password guessing attacks comes |
140 |
| - from its algorithm design, its cryptographic security is guaranteed by its use of SHA-256 |
141 |
| - on the outer layer. The SHA-256 hash function has been published by NIST in FIPS PUB 180-2 |
| 146 | + Yescrypt is a scalable passphrase hashing scheme designed by Solar Designer, |
| 147 | + which is based on Colin Percival's scrypt. |
| 148 | + While yescrypt's strength against password guessing attacks comes from its algorithm design, |
| 149 | + its cryptographic security is guaranteed by its use of SHA-256 on the outer layer. |
| 150 | + The SHA-256 hash function has been published by NIST in FIPS PUB 180-2 |
142 | 151 | (and its subsequent revisions such as FIPS PUB 180-4) and by the IETF as RFC 4634
|
143 |
| - (and subsequently RFC 6234). Recommended for new hashes. |
| 152 | + (and subsequently RFC 6234). |
| 153 | + Recommended for new hashes. |
144 | 154 | </simpara>
|
145 | 155 | </listitem>
|
146 | 156 | </varlistentry>
|
|
166 | 176 | </term>
|
167 | 177 | <listitem>
|
168 | 178 | <simpara>
|
169 |
| - Unkown hashing method or invalid parameters. |
| 179 | + Unknown hashing method or invalid parameters. |
170 | 180 | </simpara>
|
171 | 181 | </listitem>
|
172 | 182 | </varlistentry>
|
|
233 | 243 | </varlistentry>
|
234 | 244 | </variablelist>
|
235 | 245 | </appendix>
|
236 |
| - |
237 | 246 | <!-- Keep this comment at the end of the file
|
238 | 247 | Local variables:
|
239 | 248 | mode: sgml
|
|
0 commit comments