HIPAA兼容应用程序,使用加密核心数据与核心数据属性加密

时间:2014-03-14 16:02:54

标签: ios security core-data ios7 hipaa

我正在编写一个需要符合HIPAA标准的iOS应用。应用程序最好应脱机运行,因此需要将数据存储在手机上。

所以这就是我在想的事情:

  • 在首次启动时,用户输入用户名,密码和密码短语。服务器使用设备的用户名,密码和UDID(广告ID)对用户进行身份验证。与服务器的通信将使用HTTPS完成。

如果验证成功:

  • 用户名存储在Key Chain中。
  • 使用OpenSSL库中提供的“PBKDF2”对Pass-phrase + UDID进行哈希处理。这也存储在Key Chain中。此操作的盐存储在密钥链中。对于后续验证,可从密钥链获得盐。

  • 用户名+密码短语+ UDID +静态密钥用于使用“PBKDF2”生成密钥,并且盐再次存储在密钥链中,并从后续使用中从密钥链中检索。生成的密钥存储在内存中,密钥生成后忘记密码短语。静态密钥出现在代码中。

  • 当应用程序转到后台时,忘记密钥,即变量设置为nil。

  • 在恢复或重新启动应用程序时,会向用户显示一个屏幕以输入密码短语。如果输入的密码短语正确,则应用程序将再次生成密钥。否则,在大约连续五次尝试时,应用程序将擦除数据并将用户带回登录屏幕(如果可能的话,还会向服务器发送有关事件的消息以及必要的信息)。

现在这是我的两个问题:

  • 我想知道project-imax/EncryptedCoreData有多稳定?我知道他们不支持多对多关系。但是,我通过创建一个表示关系的实体来解决这个问题(类似于通过使用第三个表在实际SQL DB中完成的方式)。我想听取任何有加密核心数据经验的人关于他们面临的经历和问题。特别是,如何比较加密各个属性的性能呢?

  • 其次,您是否看到我计划实施的安全措施存在任何问题。您想提及的任何建议或改进。

1 个答案:

答案 0 :(得分:0)

塔哈

回答你的第二个问题:

您是否认为iOS数据安全性已加密您的磁盘文件,并且您可以在您的应用上声明此全局政策?

虽然只有您的律师可以回答这个问题,但您需要准确地询问他们法律需要什么。我怀疑您会发现在钥匙串中使用适当的密码管理并且无法将数据备份到云计算机或桌面计算机上,而Apple的安全性已准备好HIPAA。

Apple最近发表了一篇关于iOS安全性的强烈讨论(2014年2月)。这是非常有启发性的阅读。如果Apple的现有安全性不足,我怀疑加密的Core Data项目是否足够。如果您仍然需要实施自己的安全性,那么阅读和理解Schneier和Ferguson的“实用密码学”就是您的起点。

匿名, 安德鲁

P.S。您已选择为密钥管理添加大量复杂性,以复制Apple钥匙串的功能。我建议你缩减你的代码。如果“转到失败;”教我们什么,它是:每一行代码都是一个安全漏洞。您正在实现许多代码来复制钥匙串的功能。