12

我的情况:

  1. 医务人员希望将患者的敏感数据输入网络浏览器(!),以便将其存储到某个数据库中,然后再次检索。

  2. 除了医务人员本身,其他任何人都不能看到这些数据。这意味着在传输到服务器之前必须使用一些秘密令牌对其进行加密。这也意味着 IT 人员(有权访问服务器/数据库)和其他任何人都不能在没有秘密令牌的情况下对其进行解密。(如果令牌丢失,数据将永远无法访问。)

  3. 不应在客户端机器上安装额外的软件,除了一些可以导出一次并将其导入应授予数据访问权限的所有浏览器的令牌(例如,私钥)。

所以我的问题是:

有没有办法在客户端加密/解密数据(例如,使用 JavaScript),使用一些可以在浏览器之间轻松交换的秘密浏览器令牌(即,类似于 X.509 证书的导出/导入)?

如果没有,哪些替代解决方案是可能的?由于条件 1 和 2 是强制性的,如果需要,可以只修改条件 3。但是,客户端仍然需要尽可能少的安装工作。

编辑: SSL 显然只是这个问题答案的一部分!

4

4 回答 4

6

看看个人健康信息的网络浏览器加密,它的“摘要”部分似乎描述了你同样的问题。但是,他们生成加密密钥的“密码”必须共享,这不会让您区分医疗人员。

我们描述了一种用于远程数据输入的系统,该系统允许在输入数据的人的网络浏览器中加密识别患者的数据。这些数据不能由数据中心的工作人员在服务器上解密,但可以由输入数据的人或其代理人解密。我们开发此系统是为了解决临床研究背景下出现的问题,但它适用于敏感信息在数据库中存储和更新的一系列情况,并且有必要确保除此之外的任何人都无法查看它那些故意给予访问权限的人。

于 2013-04-20T23:24:05.667 回答
4

有一个 AES 加密的 javascript 实现,它加密浏览器中的明文。如果您围绕这些工具构建一些东西,服务器端将只存储加密文本并且没有密码。

http://www.fourmilab.ch/javascrypt/

不需要在客户端进行任何额外的安装,但可能需要一些开发工作才能获得正确的用户体验。

于 2012-11-04T21:24:25.090 回答
3

由于 ProtonMail 的努力,现在在浏览器中有一个开源的 PrivateKey 实现:https ://openpgpjs.org/

这已经过多次安全审核,并且是 protonmail.com 的基础,因此它有相当好的记录和维护人员。他们还对重要的安全浏览器模型进行了很好的总结。

于 2018-03-15T11:26:17.213 回答
0

Web Crypto API在所有现代浏览器中都有很好的支持。它支持许多算法,包括对称和公钥。很好地提醒用户保持他们的密钥安全并且可能在其他地方备份,这应该是要走的路。

于 2020-05-25T20:18:37.760 回答