Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local accounts: check password quality #544

Closed
jouvin opened this issue Dec 19, 2022 · 2 comments · Fixed by #719
Closed

Local accounts: check password quality #544

jouvin opened this issue Dec 19, 2022 · 2 comments · Fixed by #719
Assignees

Comments

@jouvin
Copy link

jouvin commented Dec 19, 2022

Hi,

Currently, when defining the password for an IAM account, the only requirement is that the password is at least 6 characters. This looks very weak, considering that IAM is a central authentication service giving potentially access to a lot of resources. If it is not necessarily a problem when you disable/hide local account support, it is a major one if you enable IAM login through user/pwd.

An urgent first step would be to require at least 8 characters and to check for a mix of letters, characters and symbols. On the long term, the ability to define the criteria, at least the minimum length, would be good. And the ability to check the password with a service like https://haveibeenpwned.com would be great!

Cheers,

Michel

@enricovianello
Copy link
Member

@giacomini what do you think can be the right requirement for the password? Do you agree with:

  • a mix of characters and symbols
  • at least 8 characters

As a note about the haveibeenpwned service, I can report the follow.

The HaveIBeenPwned password check does not work by transmitting the password to their site. Only the first 5 characters of the hashed password are transmitted and HIBP then returns all the suffix-hashes for known leaked passwords, along with a number indicating how often they've been found in public leaks, allowing you to locally compare those against the full hash of your password. (The method is called k-anonymity and described further here: https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ ) Neither your password, nor the full SHA-1 hash ever leave your system.

Example: "Password"

SHA-1 hash: 8be3c943b1609fffbfc51aad666d0a04adf83c9d
API URL: https://api.pwnedpasswords.com/range/8be3c

Returns among others this suffix:

943B1609FFFBFC51AAD666D0A04ADF83C9D:130999

So "Password" has been found in leaks 130999 times, and is not a good password to use.

Example: "tun834v9y8n347mv834yv34"

SHA-1 hash: d896bd51f8362d72e90f00617f16bbbd571e4aa0
API URL: https://api.pwnedpasswords.com/range/d896b

Checking for the suffix "d51f8362d72e90f00617f16bbbd571e4aa0" in the returned hashes returns no results, so "tun834v9y8n347mv834yv34" was not found in any leaks (yet).

I agree also this kind of check can be added. What do you think @giacomini ?

@jouvin
Copy link
Author

jouvin commented Mar 1, 2023

@enricovianello about the minimum requirements, I think a mix of alpha, numeric and symbols with a min length of is a good starting point. In an ideal world, you would allow site to disabled each character group (with a variable in the instance config file) and define the minimum length (with a hardcoded min at 6 or 8?) but probably it is not so useful and you could wait that somebody comes with a real use case.

@enricovianello enricovianello added this to the v1.8.2 milestone Mar 2, 2023
@enricovianello enricovianello moved this from Todo to In Progress in Backlog Mar 2, 2023
@enricovianello enricovianello modified the milestones: v1.8.2, v1.8.3 May 2, 2023
@enricovianello enricovianello removed this from Backlog May 2, 2023
@enricovianello enricovianello moved this to Todo in v1.8.3 Jun 29, 2023
@enricovianello enricovianello removed the status in v1.8.3 Jun 30, 2023
@enricovianello enricovianello removed this from the v1.8.3 milestone Nov 15, 2023
@enricovianello enricovianello removed this from v1.8.3 Nov 15, 2023
@enricovianello enricovianello moved this to Todo in v1.8.4 Jan 11, 2024
@enricovianello enricovianello moved this from Todo to In Progress in v1.8.4 Feb 23, 2024
@enricovianello enricovianello removed this from v1.8.4 Mar 8, 2024
@enricovianello enricovianello moved this to In Progress in v1.9.0 Mar 8, 2024
@enricovianello enricovianello linked a pull request Jun 5, 2024 that will close this issue
@enricovianello enricovianello moved this from In Progress to On Review in v1.9.0 Jun 5, 2024
@enricovianello enricovianello removed this from v1.9.0 Jun 21, 2024
@enricovianello enricovianello moved this to On Review in v1.10.0 Jun 21, 2024
@rmiccoli rmiccoli closed this as completed Aug 2, 2024
@github-project-automation github-project-automation bot moved this from On Review to Done in v1.10.0 Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants