Why not pick Keychain instead of 1Password or LastPass?
Keychain has a number of excellent features, but it's not as easy to invoke nor as diverse as 1Password, LastPass, and other third-party password ecosystems.
I recommend regularly that people use some sort of password-management system that lets them set hard-to-crack passwords (whether short and complicated or long and easy to remember) uniquely for every site and service, and also lets them fill in those passwords everywhere they need to.
Lowell Nelson emailed me a few weeks ago wondering why I’m so hot on third-party options, like 1Password, Dashlane, and LastPass, when Apple has a robust, multiplatform solution of its own that includes synchronization: Keychain. (Keychain more specifically describes the OS X part, while iCloud Keychain allows synchronization across devices and use with iOS.)
It’s a terrific question, and I prefer not telling people to buy into a paid service (whether a one-time fee or a subscription) unless the utility of that utility is so high that it outweighs the cost.
Let’s look through the details. Since I have tested and studied 1Password and LastPass extensively, I use them as the basis of comparison. You should be able to find answers to each of the points below in the FAQs or feature descriptions for any sufficiently robust alternative.
While Apple’s Keychain, 1Password, and LastPass can all store other sorts of data securely, passwords are the most reliable element that can used across a whole ecosystem and across platforms.
How secure is your data?
A password “safe” needs to keep the passwords, well, safe, in three major areas:
Data at rest on a device. Passwords should be secure on a device against anyone but the owner gaining access.
Data stored on servers. It should be difficult or impossible for an attacker to access and decrypt cloud-stored passwords.
Data in transit while being synchronized or to and from Web-based access. Strong encryption should prevent a snooper from unscrambling new entries, retrievals, and updates, as well as interactive sessions.
Keychain and iCloud Keychain are pretty dang robust in these regards. OS X and iOS have to be unlocked to fill Keychain entries, and OS X’s Keychain Access app requires an administrative or user password to unlock and view passwords. With Touch ID or a passcode in iOS and FileVault 2 in OS X, passwords are highly secure as well when you’re shut down (OS X) or locked (iOS). iCloud Keychain uses device-based encryption which prevents Apple from being able to (or being compelled to) decrypt your passwords.
1Password and LastPass use an “expensive” passphrase encryption method for your locally stored databases, so that even if someone gets ahold of them, a cracker can only brute-force password attempts at a very, very slow rate. LastPass tested this unintentionally after a hack: no reports emerged of any password vaults being unlocked.
LastPass syncs everything through its servers, but encrypts with keys known only to users. 1Password syncs via Dropbox and other cloud-based services (relying on their security and encryption-at-rest methods) as well as through its add-on subscriptions for sharing with family or team members, but it locks everything with user-owned keys.
LastPass and the team or family options for 1Password also give you access via a Web browser, and use browser-based decryption instead of native client software; the companies don’t possess your keys. However, there is a weakness in relying on the browser. Malware and other browser-based exploits make browsers much more vulnerable relative to the level of security available through native apps and cloud sync. Safari flaws in iOS and OS X are discovered regularly (though very few are seen in the wild), and you might be tempted to access your passwords from an unfamiliar machine running another OS.
How easy is the system to use?
A password system has to be easily invokable. If it’s not, you won’t use it consistently, because that’s human nature. Worse, if you’re installing it for someone else to improve their security, they may be unlikely to use it at all if it’s not a constant reminder and superbly straightforward.
Keychain is used largely by Apple as a way to remember passwords for specific fields on webpages, and to store passwords for an automatic retrieval and bypass in its software (like AirPort Admin in OS) or with third-party software that uses Apple’s Keychain hooks. In mobile and desktop Safari, Keychain works very well, from suggesting a strong password, to storing it, to making it possible to pull it back up or use other stored alternatives.
But while it’s broadly useful in OS X, as more developers have adopted it and there’s Keychain Access for direct lookups and retrieval, in iOS you have to drill down to Settings > Safari > Passwords to view, edit, or (swipe all the way to the bottom) add passwords. Further, you can’t invoke Keychain in Apple’s non-Web login dialogs, making it useless for common purposes. And while you can make up a password when you need one, it’s awkward to get to and can only be retrieved easily on a corresponding Web page.
Apple’s addition of extensions starting in iOS 8 allows 1Password, LastPass, and other tools to be invoked in Safari and other apps. Many iOS apps I use are tied directly into 1Password’s API that allows direct invocation. In the worst case, I can switch to LastPass or 1Password to find the password, copy it, and then switch back to the app and paste it in.
You can also use the app to create strong passwords that are retained on creation, synced automatically, and copied to the clipboard to use in other apps.
The cross-platform situation is much worse. Apple doesn’t make iCloud Keychain available outside its own operating systems. 1Password and LastPass (and other apps) are available across a broad variety of major platforms, plus they have browser-based access (by default with LastPass and as a subscription option with 1Password).
iCloud Keychain has no mechanism of sharing with other people—part of the ongoing narrative I’ve been discussing for years about how Apple doesn’t designs its systems from the ground up to recognize that people work in groups and as families. (Let’s not get started on the issues with Family Sharing.)
Most password systems have some mechanism to share secrets with others who have accounts. 1Password allows direct transmission without a subscription or, more recently, selectively shared access among members of business and family groups. LastPass, because items are centrally stored, has offered this for years.
Choosing between them
If you’re almost entirely using passwords only on websites, only using iOS and OS X, and don’t mind memorizing and typing in passwords demanded by Apple for its services, Keychain with iCloud Keychain fits the bill. If not all those conditions match, a password-management system is worth the investment.
Update: An earlier version of this story said iOS didn’t provide access to stored passwords or a way to create new ones. It does; it's just buried in Settings.