基于浏览器的加密/解密,带有来自浏览器密钥库的私钥

Tho*_*mas 10 javascript encryption client-side

我的情况:

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

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

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

所以我的问题是:

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

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

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

Eri*_*bbs 5

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

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

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


Kev*_*son 5

看一下个人健康信息的Web浏览器加密,其"摘要"部分似乎描述了同样的问题.但是,必须共享生成加密密钥的"密码",这样才能区分中间人员.

我们描述了一种用于远程数据输入的系统,该系统允许在输入数据的人的Web浏览器中加密识别患者的数据.这些数据不能由数据中心的工作人员在服务器上解密,但可以由输入数据的人员或其代表解密.我们开发了这个系统来解决临床研究中出现的问题,但是它适用于在数据库中存储和更新敏感信息的一系列情况,并且有必要确保它不能被任何人看到.那些有意进入的人.