1

我有一个将多播传输到某些终端站的服务器(将被标记为“A”)。我只希望那些有幸看到这些信息的人,真正看到它。

有一个第三方服务器(“B”)管理与“A”和终端站的单播通信以及与它们两者的 SSL。

我的目标是实现安全的多播:两个必要的条件:

  1. 它必须是多播的。
  2. 我想要应用程序级别的安全性(而不是网络或传输)

问题:

  1. 有这样的实现吗?我试过搜索“安全多播”等,但只遇到了 IP 多播安全性。我想要一个应用程序的实现。如果是这样,你能推荐一些以及如何使用它们吗?

  2. 我考虑过生成一个特殊的对称密钥 - 在“A”和“B”通信期间以及“B”和终端站的对话期间 = 将其(通过 SSL)传递给终端站。

    一个。这是一个好主意吗?

    湾。我看到的一个问题是,由于站点的数量,揭示密钥变得更加容易。我想过每小时更换一次钥匙。我将通过发送多播消息来通知站点密钥已更改: (sequence_number, encrypted_message) - 这样每次密钥更改时,sequence_number++。

您如何看待实施?有更好的想法吗?

4

2 回答 2

1

我编写了一个名为 UFTP ( http://uftp-multicast.sourceforge.net ) 的应用程序,它正是这样做的。

在密钥管理方面,每个组播会话在发送方和每个接收方之间执行类似 TLS 的密钥交换,然后使用每个接收方协商的密钥发出用于加密数据的组密钥。通过为每个会话进行密钥协商,这消除了与在会话中重新键入密钥相关的复杂性。

身份验证通过密钥指纹识别完成,指纹在带外进行通信。这比基于证书的系统更简单,并且可以最大限度地减少开销。每个发送者和接收者都有一个 RSA 或 ECDHA 密钥来识别它们。

于 2014-07-03T13:35:09.283 回答
0

您描述的是 PKI 的一个简单应用:

  • 每个站创建一个 RSA 密钥对并将其公钥发送到服务器。
  • 服务器生成随机对称密钥并使用该对称密钥加密多播消息。应该为每条消息生成新的对称密钥,但通常这没什么大不了的。
  • 对称密钥使用每个站的公共 RSA 密钥进行加密。所有这些加密的产品(即加密的会话密钥)与加密的数据合并并组成多播数据包。

不幸的是,这种方案会在多播消息上造成大量的额外数据负载,但这是由密钥长度引起的,并且在不牺牲安全性的情况下无法减少长度。

于 2012-07-11T04:17:34.683 回答