我的应用程序有几个组件,需要它们的通信在 Origin Verified 意义上是安全的。这些组件不能共享一个共同的秘密。所以我必须选择非对称密钥加密。假设我有两个组件A
并且B
A 发送一些数据F
到B
并且B
必须验证它确实来自A
A
使用其私钥生成摘要H
,附加到其请求参数,发送并声明来源/发件人,以验证摘要提供的反对F
A
A_pub
H
F
A
B
H
A_pub
F
显然它看起来还可以,但是如果其他一些组件V
与 相同V_pub
并声称自己为A
,B
仍然认为请求来自,A
因为这H
是用V_prv
openssl 验证的。
我想保护免受这种攻击V
我正在使用ecparam
secp112r1
最小化密钥长度。并且键被反复更改。
--编辑--
A
,B
并且V
是由唯一标识的应用程序组件URI
。它目前旨在限制安全页面流。例如,您可以假设A
, B
,V
是 urls 我想要的是只有A
可以处理B
并且只能B
继续C
....并且我不想为此维护一个全局/应用程序范围的会话。因此,如果可以仅根据以无状态/无会话方式传递给它B
的特殊参数来验证此链接的来源。A
而且它越通用,在其他场景中实现的可重用性也越高。
曾经我想A_pub
在受信任的全局存储中维护校验和。但是我担心这不是过度工程吗?
我想到的另一种方法是查询有关公钥的原始 url。但是我想避免这种情况。