Passwords are useful primitive in a number of applications, allowing a user to authenticate themselves by knowing the secret information. Unfortunately, effective offline password cracking techniques limit the use of passwords to derive encryption or authentication keys. An attacker with access to a signature or encrypted file that used a password, or the hash of a password, as the key can make repeated guesses until they find the password. Given advanced tools such asDocumentation Index
Fetch the complete documentation index at: https://docs.celo.org/llms.txt
Use this file to discover all available pages before exploring further.
hashcat and extensive experience, hackers are very good at guessing passwords.
Rate-limited or expensive hashing can be used to make it much more difficult to crack a password.
Computationally expensive password hashing functions, such as PBKDF and scrypt, are commonly used for this purpose, but provide limited protection and are expensive to run on end-user devices.
ODIS implements hashing (i.e. PRF evaluation) with a rate limit controlled by the committee of ODIS operators, and can be used to harden a password into a stronger cryptographic key.
As long as this committee remains collectively honest and secure, an attacker cannot make more guesses at a users password than ODIS allows, making it extremely unlikely a good password will be broken.
Using ODIS for key hardening allows passwords to be used in a number of applications, including to create encrypted account backups and as a factor in smart contract account recovery.
Rate limiting
Choosing an appropriately restrictive rate limit is crucial. Using a rate limit that is too restrictive may cause users to become frustrated as their access is denied if they take too many tries to recall their password, and a rate limit that is too loose can allow an attacker a much better chance at guessing the users password. The appropriate rate limit is related to how much entropy the user secret has.- A strong user password can tolerate a loose rate limit, allowing millions of attempts without significant chance of attacker success.
- An average user password can tolerate a moderate rate limit, allowing hundreds of attempts.
- A 4 or 6 digit PIN can tolerate tens of attempts before the attacker has a significant chance of success.