cryptico.js的实际用途

时间:2012-01-05 08:01:23

标签: javascript encryption rsa cryptico

Cryptico看起来像一个超级光滑的RSA加密库。

cryptico.wwwtyro.net

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您所寻求的解决方案(我确信不止一个)。我的回答需要两种非常规方法来实现我们所谓的“安全连接”以及您如何接收“客户代码”。

  1. 您需要一个启动安全连接的物理预共享密钥,并且由于它是预先共享的,因此它不必是RSA,这样就可以为您打开速度机会和更高级别的加密安全性。

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

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

    理想情况下,我们现在应该在市场上提供预先共享的安全连接密钥,但我们没有。因此,对于您单独执行此操作,需要为您的网站实施类似的功能,直到此国家/地区的人员将其行为与某些真正的安全性结合起来。您必须通过手机,邮件等方式为他们提供密钥。由于跨域安全问题,您的客户端代码很可能必须是浏览器扩展才能安装它。