0

Cryptico 看起来像是一个超级灵巧的 RSA 加密库。

cryptico.wwwtyro.net

关于 JavaScript 应用程序,假设我想向客户端发送数据,让他们对数据执行某些操作,然后将其传回。如何使用 RSA 确保客户端发回服务器的数据不被篡改?由于 JavaScript 很容易被逆向工程,cryptico 是否有任何实际的客户端应用程序?

4

2 回答 2

0

你 - 以你的例子 - 是否意味着你想向用户隐藏他的客户对数据所做的事情?如果是这样 - 这是不可能的。您永远不应该相信来自客户端的任何数据。如果您将加密数据发送给客户端进行处理 - 您必须假设用户知道(或将知道他是否想要)加密密钥,否则将无法处理。换句话说,没有安全的方法可以向用户隐藏他的客户端处理的内容。混淆——就像你已经注意到的那样,无论你使用什么语言,总是可以破解的。

我认为这个库最常见和最实用的客户端应用程序是加密用户的数据并将它们发送到服务器,反之亦然。在某些情况下您可能无法使用 SSL。此外,您可以在 facebook 上发布 - 例如 - 只有您的朋友才能解密的加密帖子(因为他知道密钥)。

于 2012-01-05T08:38:43.100 回答
0

你所寻求的有一个解决方案(我敢肯定有不止一个)。我的回答需要两种非常规的方法来处理我们所说的“安全连接”以及如何接收“客户端代码”。

  1. 您需要一个物理上的预共享密钥来启动安全连接,并且因为它是预共享的,所以它不必是 RSA,然后为您打开了速度机会和更高级别的加密安全性。

  2. 以类似的方式实际预共享您的客户端代码,即从杂志中的 CD 或市场上出售的预付卡下载代码。这会阻止 MITM 向您发送 ssl 允许的被篡改和利用的客户端。一旦知道客户端是安全的,并且建立了(1)中提到的真正的安全连接,就可以更新客户端代码。

结合使用开发安全连接的预共享密钥和可以通过校验和的客户端代码,您可以实现您的目标。

理想情况下,我们现在应该在市场上有预共享的安全连接密钥,但我们没有。因此,如果您独自完成此操作,则需要专门为您的网站实施类似的操作,直到这个国家的人们将他们的行为与一些真正的安全措施结合在一起。您必须通过电话、邮件等方式向他们提供密钥。由于跨域安全问题,您的客户端代码很可能必须是浏览器扩展程序才能安装它。

于 2013-05-12T08:30:01.293 回答