我想向您介绍一个我认为可能有助于保护普通用户隐私的想法。我将不胜感激对此的任何评论或建议。
很长一段时间以来,我一直在为需要一个简单的工具而苦苦挣扎,我可以与我的联系人共享和使用,这些联系人只是普通用户,根本不熟悉任何加密技术或当前可用的工具。
我计划创建一个解决方案,让人们可以使用单个密码轻松加密文本消息或文件,然后通过电子邮件或聊天或任何渠道将其发送给其他人。该解决方案应该完全独立于平台且可用,无需安装任何额外的软件。
有一些文本加密网站完全从 JavaScript 运行客户端加密。我发现这种方法目前是唯一可能的解决方案。此外,还有一些已经实现加密的 JS 库:
http://crypto.stanford.edu/sjcl/ http://code.google.com/p/crypto-js/
尽管上述方法将消息存储在他们的服务器上,但要求您和您的联系人完全信任它。因为服务器可能会在用户通过加密密码获取消息后访问它时向用户显示不同的 JS 代码,从而泄露秘密。
虽然许多人认为在 JS 中对加密任务做任何事情都不是一个好主意,但我相信需要一个真正独立于平台(可在任何平板电脑或 PC 上使用)并且仍然非常易于使用的工具。这背后的想法是,我相信有总比没有好。在大多数情况下,使用我们当前的技术在电子邮件中以纯文本形式发送信息数十年是错误的。有时我们确实需要通过电子邮件共享敏感信息,而对方可能有任何类型的系统。
出于以下原因,我打算避免使用公钥加密: - 设置非常复杂,包括对彼此的密钥进行签名 - 使用起来很复杂 - 用户可能会丢失他的密钥 - 大多数时候它需要并且也可以使用和安装外部软件 - 一个密码可以很容易地与我的联系人个人共享一次,他或她可以将其写在纸上
我想出的解决方案可能如下:
首先,浏览器及其下的操作系统应该被认为是可信的。
会有一个嵌入了 JavaScript 的静态 index.html 页面。该页面显示消息的文本区域和密码的文本框。当按下回车键时,JS 代码会生成一个 URL,该 URL 本身将包含 base64 编码的加密消息。经过挖掘,我发现 2000 字节可用于 URL,在每种情况下都可以,因此 1600 或 800 个字符对于短消息来说就足够了。这还需要规划。
因此,加密的消息将与 URL 一起传播。为 index.html 提供服务的网站当然会使用带有有效证书的 SSL。虽然这看起来很容易,但当然不是。应该仔细创建 JS 实现以避免对其进行简单的攻击。
(也可以使用 URL 缩短服务)。
另外,问题是:如何确保我的联系人可以确定我的消息来源?
那么,对方必须检查域是否正确。除此之外,实现必须避免其余的攻击。如果在电子邮件传输过程中 URL 发生变化,那么对方将无法使用密码解码消息。这就是我所相信的。可以这样实现。
关于文件共享。该解决方案应该可以浏览文件,然后对其进行加密,然后将其发布给用户下载。这只是为了让他能够在不需要外部工具的情况下创建文件的加密形式。然后他可以将它上传到他选择的任何地方(Google drive、Skydrive 等),并使用 JS 解决方案的 URL 中的链接将其发送给他的联系人。
因此,如果另一个链接与该链接一起传播,那么来自远程主机的文件将被下载、解密并发送以供下载。全部在他的浏览器中。如果它是 base64 格式的加密消息,那么它会在解密后打印在页面上(当然由用户提供他的密码)。
与其他解决方案相比的优点: - 无需实现存储,因为服务器上不会存储任何消息或文件,因此可以使用大玩家的服务 - 因此无需重新实现有关存储问题的轮子 - 无需信任第 3 方,因为服务器很容易成为我们的,因为它非常容易设置和提供服务 - 甚至免费提供者也很容易托管静态 index.html - 因为它的简单性,服务器可以更好地加强- 在实践中易于使用它进行加密 - 如果需要,他也可以通过在桌面上单击来使用 index.html,但这不是最初想法的一部分
我对大家的问题是:
你发现我上面的理论有什么缺陷吗?这真的可以为普通人提供一个有用的工具,在他们确实需要向他人发送敏感信息的时候,这比什么都没有吗?
或者类似的东西还存在吗?有没有更好的方法?也许不同的技术?
谢谢你。