Hello! Apologies for some basic-sounding questions, but I am new to iOS and I'm having some trouble finding documentation for some features.
Just to check my assumptions:
-
iOS keychain RSA keys marked kSecAttrAccessibleWhenUnlockedThisDeviceOnly are protected by some Secure Enclave key, right? Can you point me to documentation of this?
-
Such RSA keys ( kSecAttrAccessibleWhenUnlockedThisDeviceOnly ) are present in device backups, right?
-
https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlockedthisdeviceonly
-
The documentation I've found indicates that they are not available on a different device. I am taking that to mean that they are backed up and restorable on the same device.
-
If so, does this function survive a factory reset of a device? Or is a factory reset considered a 'different device?'
-
Is there a way to prevent a backup of a kSecAttrAccessibleWhenUnlockedThisDeviceOnly key?
-
Is there a 'good' way to migrate a kSecAttrAccessibleWhenUnlockedThisDeviceOnly RSA key to a different device? (I understand this is at cross-purposes with making a key kSecAttrAccessibleWhenUnlockedThisDeviceOnly) I can roll my own transport, but I'm wondering if someone has already thought about this.
Thanks!