我们正在开发一款 iOS 应用程序,允许用户存储/修改受保护的健康信息 (PHI),并且该应用程序需要允许用户在大部分过程中无需互联网连接即可执行此操作。我们将需要加密数据,但很难想出如何正确执行此操作的解决方案,因为我们不想将密钥存储在代码中,并且仍然需要能够在没有数据的情况下访问数据与服务器的连接。
我们的工作理念是使用用户的密码(不会存储在设备上)加密数据,但我们遇到了一个问题,即其他用户可能需要通过自己的登录名修改/访问该设备上的数据。(如果一台 iPad 坏了)
我们尝试解决但似乎不安全的想法是:
- 在代码中存储静态密钥
- 将服务器提供的动态密钥存储在本地 sql 数据库中
- 将服务器提供的动态密钥存储在 iOS 中钥匙链
我们正在考虑让两个用户在数据检索时登录并使用两个密码对其进行加密,但我们遇到了与用户相关的问题,如果一个用户不在值班或不在附近,数据可能会被锁定。
问题:我们如何正确保护 iOS 上的 PHI,以便允许访问它的人(可能离线)仍然可以访问它,并且不限制数据只能由一个人查看 - 最好不存储登录信息(如我们不希望存储用户凭据)
跟进:如果这不可行,那么满足上述大多数需求的最佳行动方案是什么?
编辑:澄清
身份验证最初是在下拉/提交数据时进行的,我们需要对下拉的数据进行加密,同时保持以前经过身份验证的用户可以访问它而不存储密钥。