是否可以只使用HTML5和Javascript创建一个安全的聊天web应用程序?
如果服务器不存储消息,只使用websockets中继消息,并且传输是通过SSL完成的,那么会有哪些安全漏洞呢?
促使我问这个问题的原因是,我想知道为什么Cryptocat被实现为浏览器插件。我认为它比纯HTML5解决方案更安全,但为什么呢?
发布于 2013-06-11 19:21:51
实际上,这与将CryptoCat移动到浏览器插件/扩展无关。它甚至与SSL一点关系都没有。考虑到这一点,斯蒂芬的回答有点误导人。我会试着解决这个问题。CryptoCat仍然是JavaScript & HTML。
请给我充分的关注,假设SSL正在完成它的工作,并且您100%肯定您正在连接到真正的CryptoCat服务器。如果Nadim (CryptoCat的幕后黑手)被法律强迫透露你未来的对话,他只会发现你何时连接(从你的IP),并发送给你一些流氓JavaScript,使你的浏览器使用自定义密钥,从而使自己有能力解密你的对话,并将他们交给联邦调查局,国安局,中情局等。
这种形式的安全性称为基于主机的安全性,您可以完全信任服务提供商。是的,您的东西是加密的,但是加密/解密逻辑来自服务提供者,他们可以向您发送他们想要的任何东西。CryptoCat 受到施耐尔的批评和其他安全研究人员对此进行了研究。
通过将代码移动到浏览器插件,现在只需要在第一次下载代码时信任源代码。您和服务器之间的通信仍然在进行,加密和解密仍然发生在浏览器中,代码仍然是JavaScript和HTML5。这里唯一的区别是,下次连接到CryptoCat服务器时,不需要信任它们发送给您的代码。您可以随时检查浏览器中的代码,并在需要时检查它。
Patrick写了关于这个问题的一篇很有趣的文章;他解释了基于主机的安全的概念和其他相关问题。这会帮助你了解这件事的大局。
要直接回答你的问题,是有可能的。CryptoCat就是一个很好的例子。
发布于 2013-06-11 18:04:53
本质上,实现这类功能的唯一方法是将Javascript和HTML发送到浏览器。
但是,固有的问题是整个系统的安全性完全取决于向浏览器提供HTML和Javascript。这可以归结为SSL和证书颁发系统。因此,最好的情况是,任何纯HTML和Javascript应用程序的安全性都不会比我们现有的CA系统的安全性好--如果您可以利用CA系统(已经完成),您可以破坏这样一个聊天应用程序的安全性。
https://security.stackexchange.com/questions/37306
复制相似问题