V6: Password strength meter is flawed and misleading
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 15/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript
Research direction
The payload does not name the meter's source file, so first locate the password strength component in the v6 JavaScript sources and the scoring object it uses. Compare its current weights (length, character classes) with the proposed config in the issue. Done would mean a maintainer-agreed scoring model and a documentation note on composition rules, so expect the scope to be settled in the thread before any code change.
Written by the indexing model from the issue text.
Description
The new password strength meter does not reflect an understanding of actual password strength and how password attacks happen.
Checking for specific character classes overweights fake "complexity" and underweights length, especially with lengths beyond 15 that become impractical to brute force. Password possibilities = C^L where C is character set and L is length. Clearly length is exponentially more important than character variation, but the meter does not implement this simple mathematical understanding.
For example, the meter claims that n1*rA.Q6 is “stronger” than !)%^#*}/]]/ or {{{{---||||, but the last two passwords are significantly stronger because a) the characters are less probable, and b) they have ten characters instead of eight, adding 19 bits of entropy [log2(95^3)] and making them around 850,000 times harder to guess in an exhaustive search.
Worse, this component could be abused by clueless developers to implement composition rules, which are specifically forbidden in US National Institute of Standards and Technology (NIST) Digital Identity Guidelines.
As a guide, the meter is vaguely helpful, in spite of low scores for literally billions of strong passwords. At the very least it should have documentation added to explain the issues above and strongly discourage Bootstrap users from restricting password input based on score.
Even just changing the default scoring would help. The following is based on actual probability of characters in passwords, including how it affects Markov chains in hashcat and similar password cracking tools.
{
minLength: 0.5, // Meets minimum length
extraLength: 1.5, // 4+ characters over minimum
lowercase: 0.1, // Contains lowercase letters
uppercase: 0.5, // Contains uppercase letters
numbers: 0.3, // Contains numbers
special: 0.7, // Contains special characters
multipleSpecial: 1, // Multiple special characters
longPassword: 4 // 16+ characters
}
- Dominant language
- MDX
- Stars
- 175k
- Forks
- 78.7k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 103
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from twbs/bootstrap
-
Select input form caret wrong position on RTL modePossibly taken A pull request linked to this issue is open or already merged. Openbug confirmed css v6
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
twbs/bootstrap#43327 · 1 comment ·
Maintainers usually reply within 1 day
-
v6: OTP input keeps the rest of a selection when you type over itPossibly taken @thejesh23 claimed this 1 day ago. Openbug confirmed has-pr js v6
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
twbs/bootstrap#43323 · 2 comments ·
Maintainers usually reply within 1 day
-
v6: Strength ignores common symbols as special charactersPossibly taken @thejesh23 claimed this 1 day ago. Openbug confirmed docs has-pr js v6
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
twbs/bootstrap#43322 · 1 comment ·
Maintainers usually reply within 1 day
-
v6 alpha - hover-lift effect on menu dropdown only works when mouse is over the buttonPossibly taken @Aryan9891 claimed this 5 days ago. Openbug confirmed css has-pr v6
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
Dialog closes when a file input inside it has its picker cancelledPossibly taken @samyferhat claimed this 5 days ago. Openbug confirmed has-pr js v6
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
twbs/bootstrap#43278 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
Similar issues
-
Panic on live viewport resize when unstyled elements exist in display: none subtreePossibly taken @GoCoder7 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
DioxusLabs/blitz#1488 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
brave/adblock-lists#3068 ·
Maintainers usually reply within 1 day
-
Art style modal: show the character avatars it reads, and name them in the Use references buttonOpenenhancement good first issue priority: low size: XS
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Refit MenuOpen(RFE) Enhancement Refit Project
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
MegaMek/mekhq#10934 · 1 comment ·
Maintainers usually reply within 1 day