Ahm*_*med 6 security cookies applet public-key private-key
我目前正在从事一个具有很多安全性的项目,但在选择技术解决方案以满足客户需求时遇到了一些问题。
首先,让我向您解释客户的需求。
对于我客户的网站,在某些时候用户需要生成私钥和公钥客户端(gui:浏览器),然后将公钥发送到服务器并在本地保存私钥(由用户选择的密码加密)。私钥需要保存,因为它在过程的第二部分使用一次(用户需要输入密码才能解密),一旦使用,我们就可以处理私钥。
我必须补充一点,客户要求向后兼容 IE7。
第一个技术选择:Java Applet
我们查找的第一件事是使用 Java Applet,生成密钥就好了,但是我们在 Safari Mac OSX 上遇到了一个问题,appet 被沙盒化,用户需要执行一个复杂的操作来禁用沙盒 mod。我们的客户不想要这个,因为它不是用户友好的。
第二种解决方案:将加密的私钥保存在 cookie 中
我们保留了 java 小程序,但它不会在磁盘上保存任何内容,它仅用于执行加密操作。我们从小程序传递一个加密的私钥到 javascript 以保存在 cookie 中。我们做得很好,我们可以从 cookie 存储中检索加密的私钥并将其传递给小程序进行解密(弹出窗口要求用户输入他的密码)。
问题 我们知道在 cookie 中保存加密的私钥在技术上是可行的,但问题是:它是否安全,我们在浏览器的 cookie 存储中保存该私钥有什么样的风险?
如果你们中的一个能帮助我,那对我会有很大帮助!
干杯
每个请求中都会发送 Cookie。这真的非常糟糕,因为您希望私钥尽可能不通过网络发送。
假设你不能有本地存储(IE7),我知道在客户端存储信息的唯一方法是cookie。我想说:尽可能使用本地存储,当不能时,将私钥存储在服务器端。至少,你会发送一次。这很糟糕,但还不到真正糟糕的程度......
或者,也许您可以将 cookie 存储在您不再使用的专用子域上,但为了读取 cookie,即使在使用 javascript 的客户端上,您也需要位于该子域的页面上,这意味着将密钥发送到每次您想使用网络时,请重新连接网络。
据我所知。