cyrtophora

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit a050da2b5e8711311b72b625ef5b0e78b497db69
parent 4397e3ba38deb84ef080b52531eeb453df4ef419
Author: Jackson G. Kaindume <seestem@merely.tech>
Date:   Thu, 18 Aug 2022 01:34:28 +0200

add more info

Diffstat:
Mdoc/password-hashing.md | 26+++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/doc/password-hashing.md b/doc/password-hashing.md @@ -18,26 +18,26 @@ A cool way to prevent this type of leak is by __obfuscating__ the users password with a [__hash function__](https://en.wikipedia.org/wiki/Hash_function). There are lots of hash functions that can be used, but most of these -are not recommended. For example if you use SHA-256 or other +will be a bad idea to use. For example if you use SHA-256 or other computationally cheap (hash function without a __work factor__ -parameter) functions, they are vulnerable to dictionary attacks. +parameter) functions, they are vulnerable to rainbow table attacks. Bruteforce is also possible if the password length is short/known, asic miners can generate 100 TeraHashes PER Second. The server can increase the passwords entropy by concatenating it with -a random string. Users can also protect themselves by using longer -passwords. +a random string aka the __salt__. Users can also protect themselves +by using longer passwords. -The best method to use against plaintext password leaks and dictionary -attacks is to use a __Password Hash Function__. Which is a hash -function specially designed to be slow/expensive to compute which -makes it impossible to bruteforce with current machines. +The best method to use against plaintext password leaks and rainbow +table attacks is to use a __Password Hash Function__. Which is a hash +function specially designed to be slow/expensive to compute even on +specialized hardware. ## Scrypt [recommended] -The [scrypt](https://en.wikipedia.org/wiki/Scrypt) hash function uses large amounts of memory when hashing +The [scrypt](https://www.tarsnap.com/scrypt.html) hash function uses large amounts of memory when hashing making it expensive to scale to the point of reasonable bruteforce -attacks. +attacks. Secure against hardware brute-force attacks. A number of cryptocurrencies use __scrypt__ for proof of work. @@ -46,7 +46,8 @@ Created by Colin Percival of [Tarsnap](https://en.wikipedia.org/wiki/Tarsnap) ## Argon2d [recommended] The [Argon2d](https://en.wikipedia.org/wiki/Argon2) function is -designed to resist GPU cracking attacks. +designed to resist GPU cracking attacks. Secure against hardware +brute-force attacks. It is the winner of [Password Hashing Competition](https://www.password-hashing.net/). @@ -55,12 +56,15 @@ It is the winner of [Password Hashing Competition](https://www.password-hashing. [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) is based on the [blowfish](https://en.wikipedia.org/wiki/Blowfish_(cipher)) cipher. +Vulnerable against hardware brute-force attacks. + ## PBKDF2 [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) is an key derivation function with a sliding computational cost to reduce bruteforce search. +Vulnerable against hardware brute-force attacks. ## Conclusion