【问题标题】:openssl phishing : V claims to be Aopenssl 网络钓鱼:V 声称是 A
【发布时间】:2012-04-14 23:59:34
【问题描述】:

我的应用程序有几个组件,需要它们的通信在 Origin Verified 意义上是安全的。这些组件不能共享一个共同的秘密。所以我必须选择非对称密钥加密。假设我有两个组件 AB A 发送一些数据 FBB 必须验证它确实来自 A

A 使用其私钥生成F 的摘要H
AA_pubH 附加到其请求参数,发送F 并将来源/发送者声明为@987654334 @
B 使用 A_pub 提供的 F 验证摘要 H

显然它看起来不错但是如果其他一些组件 VV_pub 执行相同的操作并声称自己为 AB 仍然认为请求来自 A,因为这个 H 是用V_prvopenssl 验证成功。

我想针对V的这种攻击提供保护

我正在使用 ecparam secp112r1 来最小化密钥长度。并且键被反复更换。

-- 编辑--

ABV 是由唯一的 URI 标识的应用程序组件。它目前旨在限制安全页面流。例如你可以假设ABV是网址我想要的是只有A可以处理到B并且只有B可以继续到C ....我不想要为此维护一个全局/应用程序范围的会话。所以如果B 可以根据A 以无状态/无会话方式传递给它的特殊参数来验证此链接的来源。而且它越通用,在其他场景中实现的可重用性也越高。

曾经我想在受信任的全局存储中维护A_pub 的校验和。但是我担心这不是过度工程吗?

我想到的另一种方法是查询有关公钥的原始 url。但是我想避免这种情况。

【问题讨论】:

  • 有两种可能:1)AV 只是任意标识符(如“第一方”和“第二方”),只要是哪个都没有关系B 让他们保持直截了当。 2) AV 不是任意的,表示特定的东西。在这种情况下,如果您不告诉我们那是什么,您将不会得到有用的答案。

标签: openssl public-key-encryption private-key encryption-asymmetric digest


【解决方案1】:

这种技术不能验证发送者的身份,只能验证密钥是一对匹配的。

通常,B 已经拥有一些可用于验证A 身份的可信信息。该信息通常是之前已验证的A_pub 的副本,或已由受信任的第三方签名的副本,在这种情况下,B 必须有权访问该第三方的公钥。

没有这些附加信息,B 无法验证A 的身份。

【讨论】:

  • 你能详细说明一下有哪些选项吗?
  • 公钥基础设施的基础是每个设备都维护一个可信证书的存储。它使用这些证书来验证其他设备的身份。但是,从该设备获得的信息无法验证设备的身份;必须有一条“信任链”以已知的真实信息结束。
  • 如何使用 openssl 命令行在A_pub 上生成证书?
  • 有关信息,请参阅 openssl.org/docs/apps/x509.html#。 OpenVPN 项目曾经包含一个生成证书的脚本;也许也可以在那里检查。
猜你喜欢
  • 2014-12-27
  • 2021-09-07
  • 2020-01-16
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多