Password vault vendor accused of making a hash of encryption
Password vault vendor Bitwarden has responded to renewed criticism of the encryption scheme it uses to protect users’ secret encryption keys by enhancing the mechanism’s default security configuration.
The issue centers on the number of PBKDF2 hash iterations used to compute the decryption key for a user’s password vault. In this scenario, OAWSP recommends using the PBKDF2 algorithm with random salts, SHA-256, and 600,000 iterations (a figure recently increased from the previous recommendation of 310,00 rounds).
Bitwarden said that its data is protected with 200,001 iterations – 100,001 iterations on the client side and a further 100,000 on the server side. But security researcher Wladimir Palant has warned that, while this might sound impressive, the server-side iterations are ineffective. And, much worse, older accounts were stuck with much lower security settings (unless they manually increased iterations on their settings).
In a technical blog post published on Monday (January 23), Palant said a Bitwarden account he set up in 2020 operated with just 5,000 iterations (adding that increasing the count to 200,000 failed to cause a “noticeable slowdown”).
Password vault data can only be decrypted using a key derived from a user’s master password. Hashing this password through an insufficient number of iterations leaves secrets at risk to potential brute-force attacks.
LastPass breach aftermath revisited
Failure to follow industry best practice on the number of hashing iterations becomes a live problem in the event of a password vault server breach, a calamity that recently befell LastPass.
LastPass was faulted for applying fewer than the recommended number of iterations in hashing users’ encryption keys, performing only 100,000 in the best-case scenario. Much worse yet, it had failed to migrate older accounts to even this suboptimal level, leaving them with just 5,000 rounds of protection.
The LastPass breach prompted Palant to investigate practices in this area among other password vault developers, uncovering shortcomings with Bitwarden’s approach in the process.
The public disclosure of the issue this week prompted cryptographer Nadim Kobeissi to point out that he and a team of colleagues had uncovered and reported (PDF) the same problem five years ago.
The issue was downplayed in 2018 but its re-emergence this week, in the aftermath of the LastPass breach, has prompted Bitwarden to act.
The open source password management service has responded by increasing its default client-side iterations to 350,000 in a change that initially applies only to new accounts. It’s still somewhat unclear whether or not existing accounts will automatically be updated.
A post by BitWarden to Mastodon left some in the community scratching their heads.
“They [Bitwarden] give no indication on the timeline for this change and are vague about whether existing accounts will automatically be upgraded to the new, higher default,” a poster on Bitwarden’s community forum writes.
According to a subsequent post on the same forum, Bitwarden is treating this criticism as a feature request.
In response to queries from The Daily Swig, Bitwarden confirmed that “defaults are increasing”, adding that users had previously been able to “adjust and increase iterations [at] anytime”.
YOU MAY ALSO LIKE Popular password managers auto-filled credentials on untrusted websites