4

我将使用 AES_ENCRYPT() 和 AES_DECRYPT 将患者数据存储在 EMR 系统中,我想知道如何存储密钥。我需要能够允许授权用户访问该密钥,以便解密和读取存储在患者记录中的数据。我怎样才能轻松地与许多用户共享密钥,但又要保证该密钥的安全。任何想法或例子表示赞赏。

4

1 回答 1

7

执行此操作的标准方法是为每位患者创建一个“系统”密钥,并使用该密钥加密该患者的数据。 不要与患者或任何用户共享该密钥。

当用户在系统中注册时,使用密码为该用户创建一个“用户”密钥。(例如,取用户密码的 SHA-256 哈希值。) 不要将用户密码存储在系统上。

然后,当用户被授权访问患者的数据时,使用授权用户的密钥对该患者的系统密钥进行加密,并将加密的密钥保存在用户的帐户中。如果用户被授权访问其他患者的记录,请为每个患者的系统密钥重复此过程。

最后,当授权用户想要访问患者的数据时,他/她输入他或她自己的密码,该密码用于解密患者的系统密钥,而系统密钥又用于解密患者的数据。

当用户想要更改他/她的密码时,您必须解密与该帐户关联的每个系统密钥,然后使用新密码重新加密它们。


免责声明:安全是硬的*我不是密码学家。此外,法律可能要求根据某些标准对患者数据进行加密和保护。在实施任何安全系统之前,请咨询专家,并且在任何情况下都不要创建自己的安全方案,尤其是在涉及财务、医疗或其他关键信息的情况下。

* Bruce SchneierBT首席安全技术官

于 2012-04-11T00:50:53.260 回答