"The processor forwards the data to the Secure Enclave but can’t read it. It’s encrypted and authenticated with a session key that is negotiated using a shared key provisioned for each Touch ID sensor and its corresponding Secure Enclave at the factory."
> "at the factory"
I suppose the secret key is erased at the factory, however, what if it isn't? Or, is the secret key generated on-chip via a random number generator? If it were stored at the factory somewhere then it would be possible to link it to each iPhone. I'm not familiar with cryptography, so I think it's just a misunderstanding on my part, and I'm not sure if this would be a weakness in the Touch ID sensor.
The long-lived secret for TouchID is generated in the SEP, using the UID of the SoC (a secret known only to the SoC) and the serial number of the respective sensor. That key is then keywrapped with a (symmetric) key known to all TouchID sensors and sent to the fingerprint sensor. It unwraps and verifies the key and burns it into fuses.
That key is then used for establishing a session key in the field. The session key uses entropy from both the SEP TRNG and the TouchID TRNG.
Your threat means someone would 1. need to know the TouchID global key 2. slurp off all the keywrapped blobs for later, at all iPhone manufacturing sites. This then gives them to ability to either decrypt fingerprints, or feed 'fake' fingerprints to the SEP. Given that there are far easier ways of stealing fingerprints, that leaves the feeding fake fingerprints to the SEP. If you're in a position to do that you might as well just feed the phone a fake finger.
It is relatively easy to do the negotiation in a way that nothing at the factory ever sees the resulting session secret. DH is obvious and in this case secure approach, but even simply generating random key in one or other end of the secure link and sending it in plaintext for the first time will be essentially sufficient (you still have to trust the environment this happens in to large extent).
> "at the factory"
I suppose the secret key is erased at the factory, however, what if it isn't? Or, is the secret key generated on-chip via a random number generator? If it were stored at the factory somewhere then it would be possible to link it to each iPhone. I'm not familiar with cryptography, so I think it's just a misunderstanding on my part, and I'm not sure if this would be a weakness in the Touch ID sensor.