5

虽然 2 方公钥加密在 .net 框架中得到了很好的布局,但我非常关心 n 方。例如保护两方视频会议。沟通很容易:

1) 每一方生成会话特定的 RSA 密钥对,并获得由受信任的权威机构(即受信任的服务器)签名的公钥。2)每一方交换密钥,ECDiffieHellmanCng因此连接现在既真实又安全(认为他们使用Vista/W7)。

现在向此通信添加第三个参与者将不起作用,因为密钥交换算法旨在仅从 2 个公钥派生共享密钥(尤其是使用 .NET 和 BouncyCastle)。所以问题是,您将如何实施仍然是真实的(即抵抗中间人攻击)和安全(即防止窃听)的 n 方公钥加密模式。

编辑:目前的想法如下,我将继续实现最受欢迎的一个作为NBusy.Communicator库的一部分:

  • 使用两方通信方案,其中一方充当联合服务器。
  • 发起两方通信,让一方对第三方进行身份验证并共享秘密/对称密钥。
  • 使用多方密钥协议方案。

Edit2:我将使用“n-Party Diffie Hellman”算法,类似于此处描述的算法,但有一些修改: http: //www.codeproject.com/KB/cs/diffy_helman.aspx

4

3 回答 3

4

(只是大声思考)

您不需要(完整的)安全关系网格。

PK+Certificate 的重点是分发对称密钥。

任何新参与者只需要与 1 个现有节点建立身份,然后就可以获得该 symm 密钥的副本。

于 2011-04-13T12:23:51.867 回答
3

我相信它尚未实施的原因是因为没有必要。大多数安全方案在有两方的情况下以点对点的方式工作。如果有超过 2 方,则通常实现为 2 方通信,其中一方作为联邦工作。

于 2011-04-13T12:17:32.547 回答
1

在我看来,“多方密钥协议方案”也是可能的,但目前使用 .net/c# 的实际实现似乎并不多。来自 Giuseppe Atenies (IEEE) 的非常简洁的学术(但很难实施)想法:Authenticated Multi-Party Key Agreement

我还在 CodeProject 上看到了一篇非常简洁的文章,关于 3 层 Diffie Hellman,它可能扩展到 n 方,如我的情况: http: //www.codeproject.com/KB/cs/diffy_helman.aspx

于 2011-04-13T18:58:56.317 回答