HealthKit 在哪里存储它的数据?

Where does HealthKit stores its data?

用户的健康相关数据属于隐私事项,需要非常安全,即需要将其存储在安全的地方。例如,当我在观看苹果官方关于指纹解锁的视频时,他们告诉我指纹数据存储在无法破解的地方。因此,出于好奇,我想到了一个问题,即这些数据安全存储在哪里?

我查看了 Apple 文档中的 this link,但找不到相关信息。我发现的一件事是数据已加密并存储在何处?

有没有人有同样的想法?

如您所知,NSUserDefaults 可以简单有效地保存小而简单的数据位,例如 NSNumbers 或 NSStrings,到您设备的文件系统。但这些数据绝不会安全存储,因为黑客可以很容易地从设备上访问它。

您发现敏感数据是加密的。但是你需要在需要存储的地方找到答案。答案是:

Keychain Services:Apple has provided the Keychain Services API to deal with this problem and help developers build apps that safely handle passwords and other sensitive information.

Now the question might rase why?? and the answer is: Keychain is great because data encryption automatically is taken care of before it is stored in the file system so there is no need to waste time building encryption algorithms.

您可以阅读此 link 以获得更好的解释。 https://developer.apple.com/documentation/security/keychain_services

Apple 在此 document 中描述了各种 iOS 功能的安全属性。引用:

This data is stored in Data Protection class Protected Unless Open. Access to the data is relinquished 10 minutes after device locks, and data becomes accessible the next time user enters their passcode or uses Touch ID or Face ID to unlock the device.

阅读文档的 "Encryption and Data Protection" 部分以了解有关数据保护的更多信息。任何应用程序都可以对其持久数据使用 "Protected Unless Open" 数据保护 class。