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

Calculate entropy of new account password, instead of asking for certain characters #6

Closed
gprst opened this issue Mar 24, 2022 · 7 comments
Labels
enhancement New feature or request

Comments

@gprst
Copy link

gprst commented Mar 24, 2022

Describe the bug
I am trying to create an account, using a passphrase with a very high (>150bits) entropy. Passky rejects my passphrase, because it doesn't contain any number nor special characters.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://vault.passky.org/register
  2. Fill out all fields with some value, and the "password" field with: "scariness untying demeaning algorithm alive stingray"
  3. See error: "Password must be at least 8 characters long, contains at least one uppercase, one number and one special character: @ $ ! % * # ? & , _ ( ) = - ."

Expected behavior
Being able to register with this very strong passphrase

Desktop:

  • OS: Windows 10
@zigazajc007
Copy link
Member

Hello,

Thanks for reporting a bug.

Password strength policies are applied to prevent users from using insecure passwords. If I remove them, then users would be able to use insecure passwords.

One of the main goals of Passky is to be unbloated and easy to use. It would require a lot of unnecessary lines of code to calculate good entropy. It's much more secure for the user to use numbers, special characters and upper case characters than passphrase "password password password password password" as an example.

You can use passphrases without any spaces and put a number and special characters at the end, so the password would comply with policies.

It would also be better to use only the first 2 or last 2 characters of every word in the passphrase for a password. As you would create a strong password that won't be included in any wordlist or English dictionary.

Example:
Passphrase: Fish Full Choice Admire Worse She Production
Generated Password: Fifuchadwoshpr443!

I will close this issue, but if you have any comment feel free to open it again.

@gprst
Copy link
Author

gprst commented Mar 24, 2022

@zigazajc007 I understand for the unbloated part and the fact that calculating entropy might be tedious or overkill, but I would like to stress that P@ssword123 would match with Passky's password policy, while still probably being one of the ten first password an attacker would try.

What it means is that if we could use a passphrase, we could use password password password password, but your rule doesn't prevent bad passwords neither. If a user doesn't know about passwords best practices, they'll just use a bad password easy to brute force.

Now, maybe we could find a middle ground, like adding a rule saying that the password should at least contain two different character types, and be long enough — say, 16 or 20 characters long?

@zigazajc007
Copy link
Member

Thanks, you can expect a change in password strength policy in the next update.

@zigazajc007 zigazajc007 reopened this Mar 25, 2022
@zigazajc007
Copy link
Member

Passky Server has just been updated to v6.1.0. This version has a simple web page that would show you some info on how to use Passky and also it would report you an error or a warning if it's found.

Example: https://eu1.passky.org

Now I will be able to start working on Passky Clients.
Password strength policy will be changed when Passky Client will be updated.

Thanks again for your patient.

@zigazajc007 zigazajc007 added the enhancement New feature or request label May 1, 2022
@zigazajc007
Copy link
Member

I have made a simple JS library for calculating Password Entropy.
Test Website: https://passwordentropy.rabbit-company.com
Source Code: https://github.com/Rabbit-Company/PasswordEntropy-JS

Currently I have set that 80 bits are minimum. If anyone have other suggestion feel free to provide it.

@zigazajc007
Copy link
Member

zigazajc007 commented Oct 6, 2022

Preview:

image

@zigazajc007
Copy link
Member

Issue closed because it has been implemented in v8.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants