IIRC there are options for exportable and un-exportable private keys when you make one in the secure enclave. Going to guess Tahoe made them un-exportable by default.
As far as I know, you have never been able to import or export keys from the Secure Enclave. It’s more likely that previously keys were stored in the keychain and now they are generated in the SE by default.
Yes you can make private keys that are encrypted by the secure enclave, rather than stored inside it. The "sc_auth" tool on macos has a "ssh-exportable" variant
There is no way to export data out of secure enclave. You cannot write arbitrary data to secure enclave, as well as read it out.
What happen though is the ability to encrypt the data with secure enclave, store it on our own. When migrating, we decrypt with secure enclave, get back original data and re-encryp on the new device.
Can you clone or sync hardware keys? Maybe they don't fail as much as computers do but they can be lost or stolen like the keys that we use to open (dumb) doors.
My non hardware key is a keypass file that I update only on my laptop and I sync to my other devices. I have plenty of backups. It does also the TOTP required to login into some customers servers.
I have a few yubikeys and it’s a manual process to sync a new key last time I tried
I keep all my TOTP keys on an encrypted usb drive in a safe. When I lose a key, I manually add all the TOTP accounts onto the new key from my safe
Passkeys are a different story. Every account I need to make sure I have multiple yubikeys registered. When I lose one, I get in via a second key and then add the replacement one.
It’s a pain but it’s a model that makes sense to me. Lose the key? Time to reach for my backup key.
But that’s not backup restore? I’m thinking Time Machine restore on a new Mac when old one is no longer working. Or when the old one had to be wiped and restored.
What information from your login keychain do you expect to need on your new computer?
There's not really a plausible answer to that question, because the login keychain data is almost entirely specific to that host.
To iron-man your argument: Apps that store account credentials to third party services will need to be signed in again.
If you were using http basic auth for a website and saving that, then it was probably in there.
Private keys and certificates you manually imported, or that were created by an application for your host. This is the closest to a plausible answer, imo.
It's unexpected to anyone with intuition about how a computer traditionally is supposed to work. As a general principle, as a user, I expect a file on one computer to be usable on another computer. Or, at the very least, if I need to obtain some other thing from the original computer to "unlock" that file, I should be able to do it. The idea of a file that is only usable on a particular computer feels weird.
I think it's time to update your expectations. Hardware security modules have been around for quite a while. You shouldn't assume that your chosen password is the only input to the key derivation, or even that the raw key itself will always be obtainable.
I never assumed that my chosen password was the only input to the key derivation. Just that my chosen password is at least one of the inputs to the key derivation. LUKS has been around for quite a while.
Yes, that's kind of what you need to be able to successfully back up and restore an encrypted file. Why are you making it sound like that's such a strange thing to want?
The sane way for encryption keys stored in hardware (secure enclave or tpm like) is to onboard user when the key is not derived from user password. Just like they do for FDE to export a recovery key and then you can adjust your expectations when you know (been told) whats going on.
> You can export your passwords to a plain text CSV from the original computer.
Exporting a private key from a keychain is hard to automate (the password of the keychain is asked for all exports, and HAS to be typed manually IIRC).
It's also unexpected when you send your laptop in for a screen replacement, the tech does an unnecessary logic board swap while he's at it, and your local keychain doesn't work anymore. And then Apple Support will say, hey, we told you you needed to backup your data! Which you did, but that's not the issue.
Disturbing if true, as it suggests my "everything" backups aren't really full backups at all.
I wonder, if you have enabled iCloud keychain, does that provide another way to get your passwords back?
Suppose my MacBook is stolen, but I still have my iPhone. Could I use the passwords app on the iPhone to retrieve my passwords. Would that include all of them or only a subset?
I have no idea which keychain is in which, but the last time I migrated from one Apple laptop to another, I couldn't get the automated tool to work at all, so I restored a physical backup, went through the sign-in process, and passwords and passkeys migrated correctly.
Passwords and passkeys are in the iCloud keychain. You can technically save passwords in the login keychain (not sure about passkeys), but if you’re using the Passwords app it will be in the iCloud one.
This is so critical. Not just verifying the hashes, not just restoring, but actually booting into it and opening the top 5-10 things you're going to care about.
If it's your personal stuff, skip it at your own peril. If it's a paid responsibility, that's what hourly billing is for (this incentive was much stronger when I learned netadmin, back before nvmes)
I tested restoring my restic backups to the same PC and it worked. If I was forced to use a mac and Apple's password manager, I'd probably do the same test, conclude it worked, and then later lose all my data. If you care about keeping your data, there's no substitute for understand how things work.
It's unreasonable to ask everyone to own a second computer just to test restoring backups on, and it sounds like doing the test on the same computer wouldn't have caught this problem.
Recently tried to initialize one Mac from another - kids, never ever attempt that! Microsoft stuff doesn't get copied over properly, and refuses to behave even if you delete an account and create a new one - the only solution is re-installing the OS from scratch. And if you want to do so, and you erase the disk - surprise surprise, in recovery mode macOS doesn't work with the WPA2/WPA3 Enterprise network; you need to go and find a WPA2 network somewhere to re-install the OS. Does the recovery menu explain that somewhere? Hell no. Damn, installing a linux distro from a usb stick is a better experience than re-installing macOS these days!
Does the macoOS login keychain get backed up by Time Machine backups in a way that could restore the keychain if the original machine's Secure Enclave is lost or destroyed?
Switching from macOS to Linux was quite painful because the security was so seamless on Mac. But I also realized I had no idea how my passwords are stored and under what guarantees. Learning and getting the hardware tokens to do it properly on Linux was a PITA. But reading this post made me feel a pinch better.
It sounds like they are using envelope encryption and using the Secure Enclave to derive the row keys each time. Not really any easy way around that except they should provide a tool to export it, TBH. I am guessing they weren’t using envelope encryption before or they were deriving the row keys from the password. This is a secure design but more security usually means less usability these days.
It's always a good idea to plan to hang on to your old machine for a few weeks to ensure everything works properly on the new one. Apple makes that much easier to forget.
And yet if you click export it will gladly print out a plaintext csv with your whole life in passwords. Doesn't even attempt to zip it with password or something.
that seems reasonable, as it is the lowest common denominator for interoperability
what would be unfortunate is if it was in some format that couldn't be used by most other systems without extra work, and if the user wasn't able to use their own property to export their own passwords in a different format.
This is pretty much how it's suppose to work...
I'm more interested by the fact that it apparently didn't work this way before Tahoe.
IIRC there are options for exportable and un-exportable private keys when you make one in the secure enclave. Going to guess Tahoe made them un-exportable by default.
As far as I know, you have never been able to import or export keys from the Secure Enclave. It’s more likely that previously keys were stored in the keychain and now they are generated in the SE by default.
Yes you can make private keys that are encrypted by the secure enclave, rather than stored inside it. The "sc_auth" tool on macos has a "ssh-exportable" variant
There is no way to export data out of secure enclave. You cannot write arbitrary data to secure enclave, as well as read it out.
What happen though is the ability to encrypt the data with secure enclave, store it on our own. When migrating, we decrypt with secure enclave, get back original data and re-encryp on the new device.
Maybe but this is unexpected if you need to restore from a backup..
Don't backup keys, rotate them.
I can't rotate my keys if I lose access to accounts because my computer died and my backup is useless.
Yeah, that's why secure enclaves embedded in complex devices are a bad idea.
Hardware keys are the way:
- Less likely to fail in the first place
- Cheap enough to have several of so you can use one to log in and manage the others in the event of loss
- Easy to move between devices
- Less likely to use the auth handshake as a side channel for things you didn't consent to
Can you clone or sync hardware keys? Maybe they don't fail as much as computers do but they can be lost or stolen like the keys that we use to open (dumb) doors.
My non hardware key is a keypass file that I update only on my laptop and I sync to my other devices. I have plenty of backups. It does also the TOTP required to login into some customers servers.
I have a few yubikeys and it’s a manual process to sync a new key last time I tried
I keep all my TOTP keys on an encrypted usb drive in a safe. When I lose a key, I manually add all the TOTP accounts onto the new key from my safe
Passkeys are a different story. Every account I need to make sure I have multiple yubikeys registered. When I lose one, I get in via a second key and then add the replacement one.
It’s a pain but it’s a model that makes sense to me. Lose the key? Time to reach for my backup key.
I've done Tahoe-to-Tahoe migration assistant moves between machines in recent months. No issues with login keychain migration.
But that’s not backup restore? I’m thinking Time Machine restore on a new Mac when old one is no longer working. Or when the old one had to be wiped and restored.
Migration Assistant uses the old Mac, which can unlock its login keychain and allow the keychain items to be copied.
What if the old Mac is dead, stolen, lost? Those are the scenarios in which one recovers on a new machine from a backup.
Then you're in trouble.
What information from your login keychain do you expect to need on your new computer?
There's not really a plausible answer to that question, because the login keychain data is almost entirely specific to that host.
To iron-man your argument: Apps that store account credentials to third party services will need to be signed in again.
If you were using http basic auth for a website and saving that, then it was probably in there.
Private keys and certificates you manually imported, or that were created by an application for your host. This is the closest to a plausible answer, imo.
Migration assistant can also use a TM backup, I’m pretty sure
It's unexpected to anyone with intuition about how a computer traditionally is supposed to work. As a general principle, as a user, I expect a file on one computer to be usable on another computer. Or, at the very least, if I need to obtain some other thing from the original computer to "unlock" that file, I should be able to do it. The idea of a file that is only usable on a particular computer feels weird.
> As a general principle, as a user, I expect a file on one computer to be usable on another computer.
As a general rule, I expect a file on an encrypted disk to be unreadable for anyone who lacks the encryption key(s).
> if I need to obtain some other thing from the original computer to "unlock" that file, I should be able to do it.
You can export your passwords to a plain text CSV from the original computer.
As a general rule, I expect a file on an encrypted disk to be encrypted with a key derived from a password I provide.
I think it's time to update your expectations. Hardware security modules have been around for quite a while. You shouldn't assume that your chosen password is the only input to the key derivation, or even that the raw key itself will always be obtainable.
I never assumed that my chosen password was the only input to the key derivation. Just that my chosen password is at least one of the inputs to the key derivation. LUKS has been around for quite a while.
You're asking for the encryption key to be derivable by an unrelated system that only has the encrypted file and your password.
Yes, that's kind of what you need to be able to successfully back up and restore an encrypted file. Why are you making it sound like that's such a strange thing to want?
The sane way for encryption keys stored in hardware (secure enclave or tpm like) is to onboard user when the key is not derived from user password. Just like they do for FDE to export a recovery key and then you can adjust your expectations when you know (been told) whats going on.
As a general rule, if I'm the user of both disks I expect to have the encryption key(s).
The right way to do that is FDE, where you can't even mount the filesystem to see the files without having the decryption key.
> You can export your passwords to a plain text CSV from the original computer.
Exporting a private key from a keychain is hard to automate (the password of the keychain is asked for all exports, and HAS to be typed manually IIRC).
It's also unexpected when you send your laptop in for a screen replacement, the tech does an unnecessary logic board swap while he's at it, and your local keychain doesn't work anymore. And then Apple Support will say, hey, we told you you needed to backup your data! Which you did, but that's not the issue.
Use iCloud Keychain or don't use Keychain at all.
Or create a separate keychain db and use that. The encryption is only done for the login keychain.
> This is pretty much how it's suppose to work...
No, it's not, and that's not how it ever worked in macOS 26.3 and earlier.
This change was introduced in 26.4 for some reason.
Disturbing if true, as it suggests my "everything" backups aren't really full backups at all.
I wonder, if you have enabled iCloud keychain, does that provide another way to get your passwords back?
Suppose my MacBook is stolen, but I still have my iPhone. Could I use the passwords app on the iPhone to retrieve my passwords. Would that include all of them or only a subset?
The iCloud keychain is separate from the login keychain. The Passwords app doesn't use the login keychain.
Even more confusing. Do we know which data is in which keychain?
Look in the Keychain Access app.
I have no idea which keychain is in which, but the last time I migrated from one Apple laptop to another, I couldn't get the automated tool to work at all, so I restored a physical backup, went through the sign-in process, and passwords and passkeys migrated correctly.
Passwords and passkeys are in the iCloud keychain. You can technically save passwords in the login keychain (not sure about passkeys), but if you’re using the Passwords app it will be in the iCloud one.
You don't have any backups at all if you never tried restoring and testing them
This is so critical. Not just verifying the hashes, not just restoring, but actually booting into it and opening the top 5-10 things you're going to care about.
If it's your personal stuff, skip it at your own peril. If it's a paid responsibility, that's what hourly billing is for (this incentive was much stronger when I learned netadmin, back before nvmes)
I tested restoring my restic backups to the same PC and it worked. If I was forced to use a mac and Apple's password manager, I'd probably do the same test, conclude it worked, and then later lose all my data. If you care about keeping your data, there's no substitute for understand how things work.
It's unreasonable to ask everyone to own a second computer just to test restoring backups on, and it sounds like doing the test on the same computer wouldn't have caught this problem.
> doing the test on the same computer wouldn't have caught this problem.
Doing it on a second computer wouldn't have caught this problem either with macOS 26.3 and earlier, because it was introduced in 26.4.
> Disturbing if true, as it suggests my "everything" backups aren't really full backups at all.
Randomly, Chromium-based browser profiles can't perfectly copy across macOS machines either, because of some HMAC hashing that happens to extensions.
Recently tried to initialize one Mac from another - kids, never ever attempt that! Microsoft stuff doesn't get copied over properly, and refuses to behave even if you delete an account and create a new one - the only solution is re-installing the OS from scratch. And if you want to do so, and you erase the disk - surprise surprise, in recovery mode macOS doesn't work with the WPA2/WPA3 Enterprise network; you need to go and find a WPA2 network somewhere to re-install the OS. Does the recovery menu explain that somewhere? Hell no. Damn, installing a linux distro from a usb stick is a better experience than re-installing macOS these days!
Does the macoOS login keychain get backed up by Time Machine backups in a way that could restore the keychain if the original machine's Secure Enclave is lost or destroyed?
Does the macoOS login keychain get backed up by Time Machine backups
Yes
> in a way that could restore the keychain if the original machine's Secure Enclave is lost or destroyed?
Apparently not
"Apparently"? Is this something that can be tested with VMs?
I've tested with VMs. However, I'm unclear about the relationship if any between VMs and the secure enclave.
Switching from macOS to Linux was quite painful because the security was so seamless on Mac. But I also realized I had no idea how my passwords are stored and under what guarantees. Learning and getting the hardware tokens to do it properly on Linux was a PITA. But reading this post made me feel a pinch better.
Documentation explaining the Keychain security model: https://support.apple.com/en-gb/guide/security/secb0694df1a/...
It sounds like they are using envelope encryption and using the Secure Enclave to derive the row keys each time. Not really any easy way around that except they should provide a tool to export it, TBH. I am guessing they weren’t using envelope encryption before or they were deriving the row keys from the password. This is a secure design but more security usually means less usability these days.
It's always a good idea to plan to hang on to your old machine for a few weeks to ensure everything works properly on the new one. Apple makes that much easier to forget.
This was introduced, unannounced, in macOS 26.4! See my blog post for more information: https://lapcatsoftware.com/articles/2026/9/4.html
And yet if you click export it will gladly print out a plaintext csv with your whole life in passwords. Doesn't even attempt to zip it with password or something.
that seems reasonable, as it is the lowest common denominator for interoperability
what would be unfortunate is if it was in some format that couldn't be used by most other systems without extra work, and if the user wasn't able to use their own property to export their own passwords in a different format.
It's not reasonable to settle on the lowest common denominator as the only denominator
This is good.