Why LockYit Now Protects Your Master Password with Argon2id
From LockYit 1.3.1, the app uses Argon2id to make the keys from your master password. This change gives your master password more protection against a person who tries to guess it. It also makes the unlock faster. You do not have to do anything. This post tells you what changed and why it is better.
Why the Calculation Is Important
LockYit does not use your master password directly as a key. The app does a calculation on the password, and the result of this calculation is the key.
A person who gets a copy of your vault, or of our server data, cannot read it without your master password. But that person can try to guess it. For each possible password, they must do the same calculation as the app. When each calculation needs more work, they can test fewer passwords.
Argon2id is a calculation that was made for this purpose. It is a variant of Argon2, which won the Password Hashing Competition in 2015. RFC 9106 describes Argon2 and recommends Argon2id. OWASP also recommends Argon2id for passwords.
What Changed in 1.3.1
| Before 1.3.1 | From 1.3.1 | |
|---|---|---|
| Calculation on your master password | PBKDF2-HMAC-SHA256, 100,000 iterations | Argon2id, 19 MiB of memory, 2 passes |
| Salt for the key that encrypts your vault key | 16 random bytes | 32 random bytes |
| Your email address in the calculation | No | Yes |
| Value that signs you in (SRP verifier) | From SHA-256 | From the same Argon2id result |
The app does one Argon2id calculation. The result is a root key. From the root key, the app makes two values with HKDF-SHA256:
- the key that encrypts your vault key;
- the value that signs you in to our servers.
The app does not keep these keys. It does the calculation again at each unlock.
Benefit 1: Each Guess Needs Memory
Special hardware, for example graphics cards, can test very many passwords at the same time. Each test of PBKDF2 needs very little memory, so this hardware does many tests in parallel.
Each Argon2id calculation needs 19 MiB of memory. The hardware has a limited quantity of memory, so it can do far fewer tests at the same time. This makes each guess much more expensive for an attacker. For you, one calculation at each unlock is a small cost.
Benefit 2: Better Protection of Our Server Data
Our servers never get your master password. They keep a value that lets the app sign you in (an SRP verifier). The verifier is not your password. But a person who copies our database can try to guess your password from it.
Before 1.3.1, the verifier came from SHA-256, which is very fast to test. Now the verifier comes from the Argon2id root key. Thus, each guess against our server data also needs one full Argon2id calculation, with 19 MiB of memory.
Benefit 3: Each Guess Is for One Account Only
The calculation uses your email address and a random salt for your account. Thus, an attacker cannot calculate a list of results one time and use it against all accounts. Each guess is for one account, with the correct email address.
Benefit 4: Faster Unlock
A stronger calculation can also be a faster calculation. Argon2id gets its strength from memory, not from a long time on the processor. We measured the unlock calculation on real devices:
| Device | Before 1.3.1 (PBKDF2) | From 1.3.1 (Argon2id) |
|---|---|---|
| Xiaomi Redmi Note 8 (2019) | about 3.2 seconds | about 0.55 seconds |
| iPad | about 0.9 seconds | about 0.26 seconds |
| iPhone 12 mini | about 0.55 seconds | about 0.12 seconds |
| Mac | about 0.36 seconds | about 0.06 seconds |
On these devices, the unlock calculation is 3 to 6 times faster than before.
Benefit 5: Nothing to Do
Your account moves to Argon2id automatically at your first sign-in with LockYit 1.3.1. Your master password does not change. Your vault key does not change, so all your items, files and backups stay the same.
What You Must Do
- Update all your devices to the latest version, 1.3.1 or later. After you sign in with 1.3.1 on one device, your other devices need 1.3.1 or later to sign in. Until you update a device, it still opens your vault without an internet connection. See Update all your devices.
- Use a long master password. Argon2id makes each guess more expensive, but it cannot protect a password that is easy to guess. A long master password is still the most important protection.
Read More
- Encryption on your device and Your master password on our Security page.
- Release notes for LockYit 1.3.1.
