使用 web 请求的 javascript 加密

标签 javascript encryption

我们有一个有趣的问题。我们有客户想要使用我们基于 Web 的应用程序(后端/数据库与我们同在)。但是他们想要加密患者信息,所以我们公司的任何人都看不到。会有某种 javascript 解决方案吗?或者在发送给我们之前以某种方式使用他们的加密?

最佳答案

可以(尽管在安全社区中,这不被视为可行的解决方案 1 , 2 )向他们发送 javascript 加密库, 但它不会解决问题。

注意:我将在此回答中假定您的连接使用 SSL/TLS,因为没有它,您将无法与客户端进行安全通信。

问题是客户需要信任你。他们将从您的服务器下载 javascript 代码。因此,服务器的所有者将始终能够更改 javascript 的行为方式。这是因为,即使您向客户端发送了一个完全有效且经过良好审核的 javascript 加密库,客户端也无法验证这一点。他们唯一的保证是他们从主机那里得到了一些东西,他们他们的浏览器根据 SSL/TLS 证书选择信任该主机。

通常,人们会在此时开始提出恶意的中间人方案。不过,这种担忧是情绪化的:要么您的连接受到 SSL/TLS 的适当保护,要么没有。如果中间人的情况是可能的,那么客户端从服务器下载的 javascript 加密库也值得怀疑。换句话说,如果 SSL/TLS 层以某种方式受到损害,则客户端加密也应被视为受到损害。

如果他们足够信任主机,相信他们不会篡改 javascripts 并且确实在客户端执行所有加密,那么他们也可能相信您不会在服务器端滥用他们的数据。这省去了很多(不需要的)复杂性。复杂性越低,设置越简洁,更易于审核。


免责声明:如果您处理医疗数据,可能需要遵守相当多的法律(取决于您所在的国家/州)。如果您对这个级别的问题感到不自在,您可能应该聘请一些专家,或者接受这个请求比您可以轻松构建的更复杂,并善意地告知您的客户,他们最好找一家有更多经验的公司在处理敏感数据时。

关于使用 web 请求的 javascript 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39956898/

相关文章:

javascript - setCustomValidity Bootstrap 保持错误弹出

javascript - 获取表单数据作为对象

java - AES-128位字节数组到java中的数据库

javascript - 离线网络应用程序中的安全用户身份验证

javascript - 在一个页面上有两个 Javascript,另一个阻止另一个工作

javascript - 在 Jasmine 中 mock Angular $元素

ansi - 解密 DUKPT 加密轨道数据

java - 使用 AES 加密和解密图像的正确方法

php - 添加加密方法?

javascript - JSON.parse 将空数组附加到字符串参数的末尾