13 ms·
Apple Passwords’ generated strong password format
- mediumsmart 2y agoI like the apple password keychain feature too but there have to be rules in place too. username max 10 password min 32 - batteryhorsestaple structure - 3 languages strong and easy
- proking 2y ago[flagged]
- raverbashing 2y agoLooks like a good design Doing something like randomly sampling a range of a-zA-Z0-9 and all the symbols without order or structure is absolutely the worse way of doing it for passwords that humans need to type/read, or in fact anything that might get tripped by special characters (like shell scripts, etc) Yes yes you might lose a bit of entropy, just add one or two characters to it and it will make up for it. Passwords are not so much bruteforced from zero anymore rather than leaked from places with bad password hashes
- tuxone 2y agoI just opened the Password app for the first time to look at the generator. It seems like the pattern is: [a-zA-Z0-9]{6}\-[a-zA-Z0-9]{6}\-[a-zA-Z0-9]{6} with exactly only one uppercase char and one digit. I don't want to do the maths but that looks like a lot of removed entropy.
- timabdulla 2y agoHe mentions the entropy in the article...
- Veliladon 2y ago*They just FYI.
- tuxone 2y agoRight, thanks. So from 160 bits down to 70 bits of entropy (there is also fancy syllables and bad words to take into account).
- eviks 2y agoQuite the opposite > these new passwords have 71 bits of entropy, up from the 69 from the previous format.
- tuxone 2y agoI am referring to the loss of entropy compared to a (theoretically) fully random 20-chars password.
- nneonneo 2y agoNit, 160 bits of entropy would be if you could get 8 bits per character, but that’s highly unrealistic. 6.0~6.3 bits is more feasible based on what most websites will tend to accept, which lands you at around 120-126 bits of entropy for a fully random password.
- deleted 2y ago[deleted]
- nneonneo 2y agoFully random: 62^18 in that format, or about 107 bits of entropy. Their approach: ~71 bits per the article (I counted ~73 bits but I’m not using their exact algorithm) I’d say it’s not too bad. With a good password hashing algorithm you’re looking at nearly 2^100 operations to bruteforce their passwords, which isn’t going to be feasible anytime soon. (Even with a crappy hash algorithm it’s still going to be over 2^80 operations). And, in this case, that entropy trade off means the passwords are easier to remember and type in, making it more likely for humans to actually use those passwords.
- eviks 2y agoWhy not just use real words with longer password instead? That'd be easier to type than these shorter "word-like" syllables
- bombcar 2y agoEven if horse-battery-staple works mathematically people don't trust that it's "really random". 1password supports it as "memorable password".
- eviks 2y agoWe know from user generated passwords that people trust even less random stuff just fine But you could always have an option for a different, more random-looking, style
- david422 2y agoHere's a format I really like: 3CatsHave12Legs! Easy to memorize, and pretty strong.
- rhaps0dy 2y agoHow many more passwords of this format can you construct? `have` is fixed, the `!` at the end is a classic, and the 12 number is pre-determined by true cats and the 3. So the only degrees of freedom you have are: - the entity number (3) - the kind of entity (Cats) - the kind of part (Legs) and that's not a huge number of combinations.
- bayindirh 2y ago"My4BikesHave9WheelsBecause1IsATricycle?" is a valid one for example?
- nothercastle 2y agoYou have to type that all in without error and the archaic app needs to actually support that many characters
- calgoo 2y agoI always liked the 1Password word passwords… you select the number of words and it generates each word in upper OR lowercase, and connect them with symbols or numbers. Easy to memorize, and better then keepass or others that use more fixed formats: same characters between words and words are just in title format where the first letter is upper case and rest is lowercase.
- nneonneo 2y agoThe extra randomness really only buys you a couple extra bits of entropy, but makes it more annoying to remember which format your password is in. It’s much more effective (entropy-wise and memory-wise) to tack on an extra word.
- the_snooze 2y agoI always make that the default in my 1Password instances. If the threats we're trying to protect against are mainly 1) weak passwords and 2) password reuse, then there's still room there for human-friendly readable passwords. I don't see much marginal benefit of generating something like cnC*i8Npc2J7zWRYFfsy (the common default template across password managers) over teo-PRETENDS4cognac.
- jorvi 2y agoThe problem is that many sites still use archaic password rules. 1Password should by default just always capitalize one word, and add “1” at the end of the memorable password. Since the words are separated by “-“ or “.”, you already hit the “at least one symbol” rule.
- dark-star 2y agoI especially like sites that disallow pasting into password fields.... Yes, that is apparently a thing, especially for banking or finance related sites (from my experience)
- yojo 2y agoFor a while, the login for TreasuryDirect (the gov site for buying US bonds) disabled paste and typing! It required you to click out your password on an onscreen keyboard. I pity the folks who don’t know how to use dev tools.
- mr_mitm 2y agoI'm glad someone is thinking about UX and ergonomics when it comes to passwords. Most people I interact with have by now realized that generating passwords is a good idea. But if you are already generating the password, please do not include special characters. I regularly use different keyboard layouts (sometimes it is not even clear which layout is active, like in the vSphere web console), and the fact that passwords are often not shown on the screen when typing them makes for terrible UX and causes frustration. The usual advice about character classes is only for casual users who don't know what makes a secure password. Entropy is the deciding factor: Ten random lower case letters is much more secure than "Summer2024!", which satisfies most password rules and has more characters. Personally I stick to lower case letters for things like my Netflix password or Wifi key, because typing with a TV remote can be a huge pain. To keep a similar entropy, just increase the length by one or two characters.
- nothercastle 2y agoHow much more entropy do you really get for 1 additional capital letter. Probably only a few bits worth 8-12.
- candiddevmike 2y agoA 10 character password with all lowercase is 47 bits, if you do half upper/half lower it goes to 57 (using Shannon entropy).
- tzs 2y agoWouldn't that be 54.98 bits? 57 bits would be if you allowed mixed case with no constraint on how many are upper and how many are lower. With the constraint that it has to be half upper/half lower you only get 252 times as many passwords instead of 1024 times as many.
- zeta0134 2y agoYou multiply the entropy of the previous word by the added entropy of the new symbol. This grows exponentially! Extra character classes can help if you're stuck needing to make a really short password for some reason, but if you're randomly generating each symbol anyway, just tossing a few more on the end is *far* more effective. You massively increase the brute force search space with each additional symbol.
- pentagrama 2y agoIt sounds like a clever design giving the complex topic, I will like to read some qualitative and quantitative research with real users to validate the design. And when reading this I was thinking, what about Chinese logographic writing system or Arabic alphabet? Apple has a similar password design solution but for those cases?
- sethaurus 2y agoWhat are the typical password requirements in the Chinese and Arabic writing worlds? Given how rarely English-first websites even accept non-ascii characters within passwords, I honestly have no idea.
- throw0101b 2y agoReminder that Diceware uses real words strung together: * https://en.wikipedia.org/wiki/Diceware https://en.wikipedia.org/wiki/Diceware * https://diceware.rempe.us/ https://diceware.rempe.us/ * https://packages.debian.org/search?keywords=diceware https://packages.debian.org/search?keywords=diceware
- q0uaur 2y agothank you for this! i was looking for an easy way to generate passwords for this, and while diceware isn't in my distro's repos, turns out the EFF publishes the word list and the method to generate them online, making it super easy to make a small bash script to generate these! here's the link: https://www.eff.org/dice https://www.eff.org/dice
- throw0101b 2y agoCompile and drop it into /usr/local or /opt: * https://github.com/ulif/diceware https://github.com/ulif/diceware
- hk1337 2y agoNobody will probably like it but I just use pwgen to generate passwords now and store it in 1Password since Keychain removed the memorable password option. pwgen: aliased to pwgen --ambiguous --capitalize --numerals --symbols --secure
- mi_lk 2y agoTIL!
- mr_mitm 2y agoThis would be a more secure and much more ergonomic option: pwgen --ambiguous --no-capitalize --secure 12 Your command produces passwords like this: X3_>r"9' I can't even copy it by double clicking on it. Mine produces passwords like this: stq7nt4nvh3g It even has more entropy by one or two orders of magnitude.
- deleted 2y ago[deleted]
- hk1337 2y agoI usually end up piping the result to a file so I can see it and edit if I need to and cat | pbcopy the file contents to the clipboard and save it in 1password. After that, 1password either fills in the password for me or copying it is just a button click. The main issue I face is that some web sites will either not allow passwords longer than a certain length or will only allow some special characters.
- tiffanyh 2y agoWhile I generally like Apple format, it still fails due to including ambiguous characters. Such as: i, I, l, L, o, O, 0,
- explodingwaffle 2y agoAt least in my iOS 18 Passwords app, the passwords are shown in a monospace font that (probably deliberately) differentiates all these (e.g. a slashed zero).
- kccqzy 2y agoThat's why my own password generator on my phone (which predates any password generation by iOS) uses base58 encoding.
- unit149 2y agoKey generation on iOS 12 is unlike generating entropy during AES encryption through a mouse.
- mmooss 2y agoIt's less of an issue on high-resolution screens.
- VyseofArcadia 2y agoThere is/was a fork of KeePass[0] that had a similar "pronounceable passwords" feature where you'd end up with things like "JorbHamstrayPrablem" or other things that sound like they'd come out of Coach Z's mouth. [0] Not the one I'm currently using, and I don't remember which
- Nifty3929 2y agoIt is a KeePass extension called Readable Passphrases or something like that, based on that one XKCD comic.
- VyseofArcadia 2y agoNo, it's not that. That uses real words, e.g. correct-horse-battery-staple.
- seanw444 2y agoKeepassXC? I use it, and it lets you generate passphrases like that (as opposed to passwords).
- throawayonthe 2y ago[dead]
- nashashmi 2y agoDoes anyone have concerns that this reduces the variance of passwords to something than 35^(character length) because of rules like pronounceable memorable and typeable?
- ec109685 2y ago^20 is a big number.
- andreareina 2y agoArticle says it has 71 bits of entropy, that's a number with 22 digits in it. It's not really an issue.
- deleted 2y ago[deleted]
- chrisshroba 2y ago71 bits of entropy feels rather low... It seems like many recommendations are to use at least 75-100, or even 128. Being fairly conservative, if you had 10k hosts hashing 1B passwords a second, it would take 7.5 years worst case to crack [1]. If a particular site neglects to use a slow hash function and salting, it's easy to imagine bad actors precomputing rainbow tables that would make attacks relatively easy. You can rebut that that's still a crazy amount of computation needed, but since it's reusable, I find it easy to believe it's already being done. For comparison, if the passwords have 100 bits of entropy, it would take those same 10k servers over 4 billion years to crack the password. [1]: (2*71 / 1e9 / 10000 / (606024*365)) ≈ 7.5
- lordofmoria 2y agoI think the assumption is that this is going into a somewhat modern hashing algorithm like argon, bcrypt (created 1999 - that's a quarter-century ago), or scrypt with salt. With those assumptions, the calculations aren't reusable, and definitely not 1B passwords / second. If that's not true and the password is being stored using MD5 (something that's been NIST-banned at this point for over a decade), then honestly all bets are off, and even 128 bits of entropy might not be enough.
- andreareina 2y agoIf you have an adversary that can afford to tie up 10k servers each capable of doing gigahash per second for 7.5 years go ahead and use a stronger password. And while you're at it you better buy the best physical security that money can buy.
- betenoire 2y agoWhen I started CS decades ago, our student passwords for our server accounts were all similarly generated. They were given to us on a slip of paper, of course, and I still remember the two I was given over 20 years later. I was (naively) bummed when I didn't see this practice in the industry after graduation
- gorkish 2y agoAm I the only one who is frustrated that most password dialogs wont accept emoji as input?
- ChrisMarshallNY 2y agoI want poo-fire-poo-puke, dammit! Oh dear, did I just reveal a secret password?
- ellisv 2y agoOnce I wrote a little pet project to sample words from /usr/share/dic/words and concat them together to produce "memorable" passwords. It was fun but certainly not good enough for real world use. At the end of the day any password manager will do the job, the problem is getting people (friends & family) to use them.
- reginald78 2y agoIsn't this essentially the correct horse battery staple method? The only reason I could see anything wrong with it is if the dictionary is somehow limited.
- graypegg 2y agoOne place where this has saved me is trying to type in my VRChat password, on a standalone Quest 3 headset. The tedium of trying to type in a password in VR with a virtual keyboard, while having the headset slid up onto my forehead juuuust enough so I can see my phone with my password manager on it, is by far the worst modern login process I've ever experienced. Just having pronounceable syllables is enough to speed that process up significantly.
- beretguy 2y agooh gosh... you just reminded me... it's even worse if you are wearing glasses under the vr set. You try to lift up vr and that lifts glasses into your forehead and you can't see anything and it hurts.
- graypegg 2y agoOH yeah I can imagine. Now you have your glasses about to smush into your eyes, your vision is blurry, the quest is probably making some "about to sleep" sound now because you're trying to pull your glasses away, which the headset interprets as it being removed and of course... will decide to cull the app you were in so you can start the godforesaken process all over again.
- skydhash 2y agoThese devices are where a physical keys like yubikeys made the most sense. You set one to quickly access services. And you can then quickly invalidate one that is lost. Better than passkeys that try to get me to use a big phone for that purpose.
- RockRobotRock 2y agoThe mobile app used to have a feature to let you type from your phone but Meta removed that because fuck you
- pdxpatzer 2y agoquestion: would it be possible/smart to have a system where the entity that is authenticating you has a way to disclose to you the maximum password complexity that it can handle ? Something like a GeekCode string that you can feed to your password generator and come out with a the strongest password possibly handled by the system ?
- sureIy 2y agoI think we just moved to Passkeys for that.
- 0xbadcafebee 2y agoYeah, actually, that would work fine. But the people who maintain the login pages don't update their complexity rules right half the time, so the geekcode would go out of date quickly, and you'd end up spitting out invalid passwords, and people would stop using it
- madeofpalk 2y agoApple/OP actually maintains a list of crowdsourced password rules for websites https://github.com/apple/password-manager-resources/blob/main/quirks/password-rules.json https://github.com/apple/password-manager-resources/blob/mai...
- kergonath 2y agoOn one hand it’s terrible that they have to do this. On the other, in terms of attention to detail and user experience it’s great.
- ttepasse 2y agoApple some years ago proposed a string format for password rules – to be used in password managers and also an HTML attribute for that: <input type="password" passwordrules="minlength: 8; maxlength: 12; required: lower; required: upper; required: digit; required: [-];"> It seems implemented in Safari and UIKit, but I can’t find any implementation documentation for other brothers. Sad. https://developer.apple.com/password-rules/ https://developer.apple.com/password-rules/ https://developer.apple.com/documentation/security/customizing-password-autofill-rules https://developer.apple.com/documentation/security/customizi...
- LorenDB 2y agoSite seems to be down. Here's a Wayback Machine link: https://web.archive.org/web/20241009143931/https://rmondello.com/2024/10/07/apple-passwords-generated-strong-password-format/ https://web.archive.org/web/20241009143931/https://rmondello...
- 0xbadcafebee 2y agoWhy not just do the 4 english words thing? https://xkcd.com/936/ https://xkcd.com/936/
- sedatk 2y agoBecause this is ~25% shorter, and have 71 bits of entropy instead of 44 bits.
- pta2002 2y agoAlso, people speak languages other than English, and things like Unicode normalization mean that identical characters can be encoded differently depending on what's being used to type the password in, and I'd be willing to bet most websites don't handle that properly. Not to mention non-latin alphabets, which can be even messier. Good luck explaining to someone that the reason their bank's website isn't matching their password is due to there being two ways to encode "olá" (and there isn't a good way to use a specific one, or know which one was used to set the password!)
- notfed 2y ago-1 very obscure format. Here's a great password dictionary that only contains common English words [1]. Use 5 words and you have a 70-bit password. [1] https://github.com/sts10/generated-wordlists https://github.com/sts10/generated-wordlists
- blame-troi 2y agoI like the generator with the exception of hyphens. Many sites don’t allow them or treat them as a special character. Unfortunately there is no longer any way that I’ve found to tweak rules. There was once a way buried under a few menus but it’s gone.
- throawayonthe 2y ago[dead]
- gnarlouse 2y agoApple Passwords are precisely memorizable.
- lukewrites 2y agohttps://archive.is/DKOtf https://archive.is/DKOtf Archive.is snapshot of the article
- mmooss 2y ago(2018) "This post briefly summarizes part of a talk I gave in 2018. All information in this post has been accessible on YouTube since then. There is no new information or news in this post."
- amelius 2y agoBy the way, I just found out that older versions of VNC (such as tigervnc and x11vnc) that are still part of modern distros such as Ubuntu use only the first 8 characters of the password. This fact is in itself questionable, but then just dropping the remainder of the characters and not telling the user is plain stupid and unacceptable.
- remram 2y agoWhy make people enter the dash? On some devices this means switching to the "special characters" mode. And if they are always in the same place, they contribute nothing to entropy/security.
- andreareina 2y agoBecause a lot of sites these days require special (but not too special) characters.
- wwalexander 2y agoI hear a lot of complaints about Apple’s generated passwords, but I like them a lot and find them quite easy to memorize for the reasons listed in the article. Safari also (sometimes) can recognize when “special” characters aren’t allowed, but doesn’t always work and doesn’t seem to detect password length limits, forcing me to manually adjust the password. Usually this just means deleting the hyphens and/or removing the last cluster to bring the length down to 16 or 12 characters. Parsing out the password requirements from webpages seems like a good use for Apple Intelligence…
- bobbylarrybobby 2y agohttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password#validation https://developer.mozilla.org/en-US/docs/Web/HTML/Element/in...
- scarface_74 2y agoObligatory: open source password rules and other info that anyone can use to generate passwords and contribute to the list. It’s used by WebKit. https://github.com/apple/password-manager-resources/tree/main/quirks https://github.com/apple/password-manager-resources/tree/mai...
- Dwedit 2y agoI just use my own password hashing tool to make the passwords. Only time I have problems is when the site restricts which characters I'm allowed to use, or enforces a maximum length, especially a different max length on the login vs the creation of the password. (Looking at you PayPal!)
- deleted 2y ago[deleted]
- polycaster 2y agoI’d really love to find this dictionary of filthy terms that exists on Apple device for the sake of cleaning passwords. Is it compiled in the code or encrypted? I can’t imagine it’s just laying around in clear text. In a way, both cases are kind of funny when you think about it.
- deleted 2y ago[deleted]