首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >符合HIPAA的blob存储体系结构

符合HIPAA的blob存储体系结构
EN

Security用户
提问于 2014-04-10 15:33:09
回答 1查看 530关注 0票数 2

有一项任务是设计一个系统来安全地存储敏感数据(将来应该符合HIPAA )。这只是一个草案--在可预见的将来不会用于生产。我有一个受TrueVault启发的原型,想知道其中是否存在一些语义安全缺失或违反安全概念的问题。

因此,该系统由4个子系统组成:

加密/解密器(Cryptor)负责随机密钥/iv生成、加密和解密二进制数据的AES-256-GCM算法(OpenSSL实现)。此服务器只执行内存中的操作,并将结果存储在其他三个子系统中,并通过IPSEC或SSL与它们连接。其他三个子系统之间没有直接联系。外部客户端只使用加密/解密器公共接口,不直接连接到其他子系统。

公共接口:

  • 转储(Client_binary_data) -> external_uuid
  • 负载(External_uuid) -> client_binary_data

DataStore存储数据_商店_uuid,加密的_数据,数据_标签三重奏。

  • 转储(encrypted_data,auth_tag) -> data_store_uuid
  • 负载(Data_store_uuid) -> 加密_数据,数据_标签

KeyStore存储钥匙_商店_uuid,key,iv三重奏。

  • 转储(key,iv) -> key_store_uuid
  • 负载(Key_store_uuid) -> 钥匙,iv

MapsStore存储DataStore三重态、KeyStore三重态和external_uuid:外部_uuid,数据_商店_uuid,钥匙_商店_uuid之间的映射。

  • 转储(external_uuid,data_store_uuid,key_store_uuid)
  • 负载(External_uuid) -> 数据_商店_uuid,钥匙_商店_uuid

工作流程:

  • Cryptor.dump(二进制)
    1. 生成external_uuid
    2. 生成随机密钥
    3. 产生随机iv
    4. 使用external_uuid作为AAD用于AES-256-GCM
    5. 加密client_binary_data -> encrypted_data
    6. 导出auth_tag
    7. KeyStore.dump(key,iv) -> key_store_uuid
    8. DataStore.dump(encrypted_data,auth_tag) -> data_store_uuid
    9. MapStore.dump(external_uuid、data_store_uuid、key_store_uuid)
    10. 将external_uuid返回给客户端

  • Cryptor.load(external_uuid)
    1. MapStore.load(external_uuid) -> 数据_商店_uuid,钥匙_商店_uuid
    2. KeyStore.load(key_store_uuid) -> 钥匙,iv
    3. DataStore.load(data_store_uuid) -> 加密_数据,数据_标签
    4. 解密数据并将其返回给客户端

我已经有疑问的主要问题:

  1. 是否有更好/更常见/更可信的方法来加密和存储数据。应该越快越好。预计最多可使用50 MB的blobs。
  2. 应该将iv存储在KeyStore子系统或DataStore子系统中。这两种方法有什么区别吗?NIST说这里 (第16页),iv是消息的一部分。我认为“消息”术语最接近于存储在DataStore中的信息,而不是KeyStore。
  3. 在此方案中使用external_uuid作为AAD安全吗?或者我应该为此在MapVault中添加另一个随机uuid
  4. 我应该用客户端公钥或某些主密钥加密KeyStore中的密钥吗?似乎在Oracle TDE计划中使用了这种方法。我认为使用客户端的公钥加密将不可能恢复数据,即使所有三个子系统都被窃取。
EN

回答 1

Security用户

回答已采纳

发布于 2014-05-19 01:03:58

你最好使用现有的产品。你自己的密码存储系统有很大的风险。在安全性或数据完整性方面造成错误的方法太多了,这一点也不好笑。我头顶上的一个商业产品是Safenet公司的StorageSecure。他们专门研究这些东西。还有很多学术和开源项目,你可以借鉴,如果你坚持自制。

织物工程

http://www.cs.cornell.edu/Projects/fabric/

具有安全的编程语言、分布式体系结构、计算保护和数据保护。免费IIRC。

https://tahoe-lafs.org/trac/tahoe-lafs

分布式的、容错的、加密的存储体系结构,允许客户端确保数据的安全性,尽管存储节点受到了损害。免费的。

数据在存储中的安全:当前研究综述

http://arxiv.org/pdf/cs/0409034.pdf

一大堆方案和保护措施的比较。

在网格上加密存储医疗数据

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.163.9593&rep=rep1&type=pdf

就在你的巷子里,嗯?

正如我所知道的,我不使用各种完整的系统、文件系统和文件级加密工具。然而,我要提到的是,穷人对应用级数据加密的解决方案是给每个应用程序和/或分类类别一个加密卷la eCryptfs或Truecrypt。然后使用权限、强制访问控制等将其限制在该分区上。如果您知道如何使用该工具并对文件进行读/写,则已加密存储。你也知道它将可靠地工作,因为每一个都会经过大量的战斗测试。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/55426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档