组播安全问题
刚学组播,用ACE_SOCK_Dgram_Mcast类实现了一个组播通信的例子。只要加入到组播组就能接收到发往该组的信息,那么其他人只要知道组播组IP和端口岂不是都能加进来接收数据,就是不知道怎么对组播用户进行管理的,比如怎么进行用户认证,合法用户才能加进来?查了一些资料,感觉都是一些很理论的东西,比如密钥管理等等。还有资料都说不是组播组中的应用也可以向组播组发数据,是这样吗?组播中的安全问题是不是必须由自己来作,ACE在安全方面有什么措施或者说函数之类的来使用吗? 只要加入组播中,就可以收发其中的数据,若要安全的话,可以将这些数据加密!在ACE中有个SSL可以用, 那么,能不能对加入组的成员进行验证呢?怎么验证呢?还有怎么知道组播中都有哪些成员?找的资料大都在讲密钥管理,感觉非常底层,现在不想搞太底层的东西,有没有直接使用的?你说的只要加入组播中,就可以收发其中的数据,我感觉也是必须加入到组播才可以向其中发送数据(程序也能说明,必须join才能发送成功),可好多资料都说非组播成员也可以向其发送数据,非常不解。 可以验证的,怎么验证就看你想怎么实现了。据权威资料说明,不用非得加到组播中才可以向其中发送数据,但要想收到数据,确实得先加入到组播中,在ACE中你可以看看这个类 ACE_SOCK_Dgram_Mcast 还是不知道怎么验证,因为只要知道了组播ip和端口,一般调用join就可以加入呀,ACE中关于组播的资料非常少,ACE_SOCK_Dgram_Mcast这个类也没有多少东西可看。 据我所知组播是没有身份验证的吧,组播是定义在IP层的,看TCP/IP的时候没有说到有身份验证,而且要向一个组里发送消息,也根本不用加入这个组的,所以身份验证也无从说起,而且加入有身份验证,那么这个组的所有权是谁的呢?要知道如果你申请了身份验证,那别人不是不可以使用这个组了吗,这个不现实吧。楼上提到的可以用加密的方法来实现验证,我觉得是一个可行的办法。
而且事实上现在IP层的组播是支持不足的,所以实际的应用中比较少用IP层的组播,在应用层组播倒是有的,比如现在很多P2P应用。
页:
[1]