使用主要现代浏览器之一的用户如何确定他正在运行我未经修改的 JavaScript 代码,即使是在不受信任的网络上?
以下是有关我的情况的更多信息:
我有一个处理私人信息的网络应用程序。登录过程是密码验证密钥协议的实现在 JavaScript 中。基本上在登录期间,客户端和服务器之间会建立一个共享密钥。一旦用户登录,所有与服务器的通信都会使用共享密钥进行加密。系统必须能够安全抵御 ACTIVE 中间人攻击。假设我的实现是正确的并且用户足够聪明,不会成为网络钓鱼攻击的受害者,那么系统中只剩下一个大漏洞:攻击者可以在下载我的应用程序时篡改它并注入窃取密码的代码。基本上整个系统依赖于用户可以信任在他的机器上运行的代码这一事实。我想要类似于签名小程序的东西,但如果可能的话,我更喜欢纯 JavaScript 解决方案。