生产系统中多用户访问的加密策略

信息安全 验证 加密
2021-08-26 21:21:41

我对生产环境中的加密策略一无所知。所以我关心的是找到一种解决方案,如何对数据进行强加密,同时让多个用户使用不同的密钥。

更具体地说,它是一种患者 - 医疗场景,其中患者数据以加密方式存储在服务器上,并且只能通过患者密钥或他/她的医生密钥或任何其他授权实体访问并解密。

有哪些概念可用?以及哪些在生产系统中使用,即为数据库(如 mysql )或文件存储等实现。哪些库可用(java,c/c++),或已知哪些类似概念。

我希望我的问题不是不明确的,如果是,请询问。

2个回答

多用户访问加密数据的一种常见工作方式是这样,这是对全盘加密场景的简化描述(真实系统可能具有比此处描述的更多级别)。

  • 数据本身使用内容密钥K c加密。
  • K c在计算机上存储n次,每个用户一次。每个实例由不同的用户密钥K u1 ...K u n加密。
  • i个用户密钥 K u i中的每一个都是从用户i的凭证中导出的

这让您可以轻松更改一个用户的凭据或撤销该用户的访问权限,而不会影响其他所有人。

另一种可用于 MySQL 数据库之类的方法(并且接近于 iOS 中文件保护的工作方式)是:

  • 由内容密钥加密的数据。
  • 受访问密钥保护的内容密钥,源自用户凭据。
  • mysqld获得访问密钥,并提供对用户数据的所有访问控制。

在这种情况下,您必须确保您的访问控制不能被绕过。

如果您正在开发或购买用于在美国处理患者数据的系统,那么您需要处理的不仅仅是静态数据加密。如果您是受保护的实体,那么您需要进行大量研究,并且会数据库中的合规性失败而受到巨额处罚