SignalR连接ID是否加密安全?

时间:2013-11-22 12:01:40

标签: signalr

看起来SignalR使用GUID作为客户端的连接ID

  

虽然可以修改行为,但默认情况下框架将使用GUID:

[ref, page 30]

我们被告知如果一个人可以猜出另一个客户的连接ID,那么他们就可以冒充他们了。

  

您永远不应该将一个客户端的连接ID传递给其他客户端   恶意用户可以使用它来模仿来自该客户端的请求。

[ref]

这些连接ID GUID是加密安全/随机的吗?如果不是,它看起来像是一个(非常明显的)安全漏洞。

2 个答案:

答案 0 :(得分:0)

我认为客户端必须始终将其标识符发送到服务器。使其更安全的一个好方法可能是使用WSS而不是WS来代替websocket和Https,而不是使用http作为后备。

有意义吗?

答案 1 :(得分:0)

根据signalr documentation,连接ID作为加密的连接令牌的一部分发送。他们使用DPAPI数据保护进行加密。因此,不需要安全地生成连接ID并aren't。 关于安全性的信号器文档(与上面相同)表明它们不应该被共享这一事实也让我感到困惑。

  

由于连接ID是验证过程的一部分,因此您不应向其他用户显示一个用户的连接ID,也不应将该值存储在客户端上,例如cookie中。

不知道该怎么做。根据代码,共享连接ID应该是安全的,因为令牌是加密的。您可以在生成id的同一个类中看到加密/解密/检查(第二个链接)。