无ssl的双向密码加密

新手上路,请多包涵

我正在使用 basic-auth twitter API( 不再可用)将 twitter 与我博客的评论系统集成。这个和许多其他 Web API 的问题在于它们需要用户的用户名和密码才能执行任何有用的操作。我不想处理安装 SSL 证书的麻烦和成本,但我也不希望密码以明文形式通过网络传递。

我想我的一般问题是: 如何通过不安全的通道发送敏感数据?

这是我目前的解决方案,我想知道它是否有任何漏洞:

  1. 在服务器上生成一个随机密钥(我使用的是 php)。
  2. 将密钥保存在会话中,并将密钥输出到 javascript 变量中。
  3. 在提交表单时, 在 javascript 中使用 Triple DES 和密钥来加密密码。
  4. 在服务器上,使用会话中的密钥解密密码,然后销毁会话。

最终结果是只有加密的密码通过网络发送,密钥只使用一次并且永远不会与密码一起发送。问题解决了?

原文由 dsims 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 224
1 个回答
  1. 在服务器上生成一个随机密钥(我使用的是 php)。
  2. 将密钥保存在会话中,并将密钥输出到 javascript 变量中。
  3. 在提交表单时,在 javascript 中使用 Triple DES 和密钥来加密密码。

这避免了通过网络以明文形式发送密码,但它要求您通过网络以明文形式发送密钥,这将允许任何窃听者解码密码。

之前已经说过,我再说一遍:不要试图编写自己的密码协议!已经为这类事情建立了协议,这些协议已经被专业人士创建、同行评审、殴打、攻击、戳戳和督促, 使用它们! 没有人能够想出比整个密码学和安全社区一起工作更好的东西。

原文由 Chris Upchurch 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题