Skip to content

refactor(randwords): remove #64

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

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open

refactor(randwords): remove #64

wants to merge 3 commits into from

Conversation

ee7
Copy link

@ee7 ee7 commented Feb 29, 2024

This was unused, and the word list needed better filtering to be viable.

@ee7 ee7 requested a review from viega as a code owner February 29, 2024 10:59
Copy link
Collaborator

@viega viega left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, I support the removal, though there's a stray 'endif' removed that is not related; I didn't check if that affects compilation, but I expect it would.

@ee7 ee7 changed the base branch from main to dev March 18, 2024 15:40
This was unused, and the word list needed better filtering to be viable.
@ee7 ee7 force-pushed the ee7/remove-randwords branch from 41d6c13 to 49a2922 Compare April 2, 2024 15:09
@ee7 ee7 requested a review from miki725 April 2, 2024 15:23
Copy link
Collaborator

@miki725 miki725 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @drraid you had some ideas how to generate better password for co-sign vs base64. Not sure if cleaning up random words to use for password generator in chalk would make more sense

@viega
Copy link
Collaborator

viega commented Apr 3, 2024 via email

@miki725
Copy link
Collaborator

miki725 commented Apr 3, 2024

I think @drraid comment came out of the chalk messaging:

https://github.com/crashappsec/chalk/blob/66a5bb4b979e9b94f881abf929363db164cba975/src/attestation/embed.nim#L24-L28

Write this down. In future chalk commands, you will need
to provide it via CHALK_PASSWORD environment variable.

writing down base64 is not ideal I think vs a collection of words so it was mostly a UX thing, not a security issue but he can comment better on his thoughts

@viega
Copy link
Collaborator

viega commented Apr 3, 2024 via email

@ee7
Copy link
Author

ee7 commented Apr 3, 2024

If we did want to move to a smaller wordlist instead, the EFF wordlists are pretty good for some applications:

We based our list off of data collected by Ghent University's Center for Reading Research. The Ghent team has long studied word recognition; you can participate yourself in their online quiz to measure your English vocabulary. This list gives us a good idea of which words are most likely to be familiar to English speakers and eliminates most of the unusual words in the original Diceware list. This data also includes "concreteness" ratings for each words, from very concrete words (such as screwdriver) to very abstract words (such as love).

We took all words between 3 and 9 characters from the list, prioritizing the most recognized words and then the most concrete words. We manually checked and attempted to remove as many profane, insulting, sensitive, or emotionally-charged words as possible, and also filtered based on several public lists of vulgar English words (for example this one published by Luis von Ahn). We further removed words which are difficult to spell as well as homophones (which might be confused during recall). We also ensured that no word is an exact prefix of any other word.

Our long list has an average length of 7.0 characters per word, and 12.9 bits of entropy per word, yielding an efficiency of 1.8 bits of entropy per character. Our short list has an average length of 4.5 characters per word, and 10.3 bits of entropy per word, yielding 2.3 bits of entropy per character. Our typo-tolerant list is much less efficient at only 1.4 bits of entropy per character. However, using a future autocomplete software feature, only three characters would need to be typed per word, in which case this would be the most efficient list to use at 3.1 bits of entropy per character typed.

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

Successfully merging this pull request may close these issues.

3 participants