我正在创建一个多人HTML5 P2P游戏;我想使用WebRTC来在没有服务器的情况下进行通信。
我知道没有办法阻止浏览器对JS的修改,但无论如何,我想知道: WebRTC足够安全吗?用户可以在飞行中修改数据包包含的内容吗?还是DTLS+SRTP阻止了这一点?如果我与另一个播放器通信,用户B如何确保数据包编写后没有被修改?
我想说的是,因为TLS涉及到Diffie-Hellman密钥交换;所有通信都应该与SHA签署AES +。所以我猜这是安全的。
我错了吗?
发布于 2014-03-13 13:44:14
用户可以在飞行中修改数据包包含的内容吗?
不是的。
还是DTLS+SRTP阻止了这一点?如果我与另一个播放器通信,用户B如何确保数据包编写后没有被修改?
是。
然而,如果你不相信A,你就不能相信他写的东西。
发布于 2014-03-13 13:49:36
客户身上没有任何东西是防欺诈的。请记住,浏览器只是用户向服务器(或在您的情况下向其他用户)发送消息的一种方式。一个有决心的恶意个人可以在没有浏览器的情况下自己伪造消息。
加密的存在是为了防止第三方读取/更改两个人之间发送的消息。它不能阻止这两个人中的一个发送其他消息,除非您想要正确地对它们进行签名。
您可以做的是在每个客户端上验证从另一个客户端收到的消息是否“有意义”,它们是否适合于接收到的上下文。一个微不足道的例子是一种国际象棋游戏,玩家发出一条信息,将他的棋子传送到一个它不能合法移动的地方。在这种情况下,如果两个玩家都知道游戏的状态(我认为是必要的),那么第二个玩家可以并且应该确定移动是无效的,并以某种方式做出响应(要么终止游戏,要么试图从无效状态中恢复)。
https://stackoverflow.com/questions/22380351
复制相似问题