n方公钥加密
本文关键字:公钥加密 | 更新日期: 2023-09-27 17:49:52
虽然2方公钥加密在。net框架中布局得很好,但n方加密让我很担心。例如保护双方视频会议。沟通很容易:
1)每一方生成会话特定的RSA密钥对,并获得由可信机构(即可信服务器)签名的公钥。2)双方使用ECDiffieHellmanCng
交换密钥,因此连接现在既真实又安全(认为他们使用Vista/W7)。
现在添加第三个参与者到此通信将不起作用,因为密钥交换算法被设计为仅从两个公钥中派生共享密钥(特别是使用。net和BouncyCastle)。所以问题是,你如何实现一个n方公钥加密模式,它仍然是真实的(即抵抗中间人攻击)和安全的(即防止窃听)。
Edit:目前的想法如下,我将继续并实现最流行的一个作为NBusy的一部分。沟通者库:
- 使用双方通信方案,其中一方充当联合服务器。
- 发起两方通信,让一方对第三方进行认证,并共享秘密/对称密钥。
- 使用多方密钥协议方案
Edit2:我要用"n-Party Diffie Hellman"算法,类似于这里描述的,但做了一些修改:http://www.codeproject.com/KB/cs/diffy_helman.aspx
(Just thinking out loud)
你不需要一个(完整的)安全关系网。
PK+证书的目的是分发一个对称密钥。
任何新的参与者只需要与一个现有节点建立身份,然后就可以获得该符号密钥的副本。
我认为它还没有实现的原因是没有必要。大多数安全方案都是在有两方的点对点基础上工作的。如果有超过2个参与方,则通常实现为2个双方通信,其中一方作为Federation。
在我看来,"多方密钥协议方案"也是可能的,但目前使用。net/c#的实际实现似乎不多。Giuseppe Atenies (IEEE)提出了一个非常简洁的学术思想(但很难实现):身份验证多方密钥协议。
我还在CodeProject上看到了一篇关于3层Diffie Hellman的非常简洁的文章,它可以扩展到n-party,就像我的情况一样:http://www.codeproject.com/KB/cs/diffy_helman.aspx