You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Passphraseme allows users to not use a word separator with --sep ""; for example passphraseme -sw --sep="" might give: "givenopportunityionreportedrimslukeshowed".
Passphraseme also allows users to use the EFF fandom lists, which are not uniquely decodable. For example, "light", "saber" and "lightsaber" are all on the Star Wars list. This can be an issue if a user runs passphraseme -sw --sep="" 5, expecting a 5-word passphrase and all the entropy that entails (about 60 bits), but instead gets "helplessyachtdecemberlightsaber", which is effectively a 4-word passphrase, giving only about 48 bits of entropy (again, this is because "lightsaber" is a single word on the list).
The EFF long and short lists avoid this issue because they do not have prefix words: "We also ensured that no word is an exact prefix of any other word." If we removed all prefix words from the fandom lists, we'd remove "light", since it's a prefix word of "lightsaber", and would avoid the issue described above.
Is this a serious, real-world issue?
Honestly, I've never been confident about a mathematical procedure to, given a not uniquely decodable list, calculate the actual chance of one of these issues actually happening. The issue also assumes that the attacker knows the word list that you used to create your passphrase and is brute-forcing through all possible 1-word passphrases, 2-word passphrases, 3-word passphrases, 4-word passphrases (where they would guess "helplessyachtdecemberlightsaber"!), etc..
But I've always thought there was good reason for EFF to remove prefix words on the long and short non-fandom lists. (And for 1Password's passphrase generator to require word separators.) tbh I'm kind of disappointed EFF didn't do the same for the fandom lists.
Possible solutions for Passphraseme
Force users to use a separator of some kind (in other words, do not accept a separator of ""), as 1Password's passhrase generator does.
Capitalize the first letter of each word if --sep is set to "". These capitalized letters effectively act as word separators ("LightSaber" vs. "Lightsaber").
Passphraseme allows users to not use a word separator with
--sep ""
; for examplepassphraseme -sw --sep=""
might give: "givenopportunityionreportedrimslukeshowed".Passphraseme also allows users to use the EFF fandom lists, which are not uniquely decodable. For example, "light", "saber" and "lightsaber" are all on the Star Wars list. This can be an issue if a user runs
passphraseme -sw --sep="" 5
, expecting a 5-word passphrase and all the entropy that entails (about 60 bits), but instead gets "helplessyachtdecemberlightsaber", which is effectively a 4-word passphrase, giving only about 48 bits of entropy (again, this is because "lightsaber" is a single word on the list).The EFF long and short lists avoid this issue because they do not have prefix words: "We also ensured that no word is an exact prefix of any other word." If we removed all prefix words from the fandom lists, we'd remove "light", since it's a prefix word of "lightsaber", and would avoid the issue described above.
Is this a serious, real-world issue?
Honestly, I've never been confident about a mathematical procedure to, given a not uniquely decodable list, calculate the actual chance of one of these issues actually happening. The issue also assumes that the attacker knows the word list that you used to create your passphrase and is brute-forcing through all possible 1-word passphrases, 2-word passphrases, 3-word passphrases, 4-word passphrases (where they would guess "helplessyachtdecemberlightsaber"!), etc..
But I've always thought there was good reason for EFF to remove prefix words on the long and short non-fandom lists. (And for 1Password's passphrase generator to require word separators.) tbh I'm kind of disappointed EFF didn't do the same for the fandom lists.
Possible solutions for Passphraseme
""
), as 1Password's passhrase generator does.--sep
is set to""
. These capitalized letters effectively act as word separators ("LightSaber" vs. "Lightsaber").The text was updated successfully, but these errors were encountered: