信令组安全注意事项



希望你能帮助解决这个问题。我们有一个基于浏览器的支持应用,该应用使用 SignalR 进行客户聊天。该解决方案包括两个 Web 应用程序:admin.[domain].comsupport.[domain].com。两者都是 C# ASP.NET CORE 3.1 MVC 应用程序。

支持工程师使用管理应用程序为聊天提供服务。SignalR 中心托管在管理应用中。管理应用使用 CORE 标识进行身份验证和授权 ASP.NET。

但是,支持应用没有标识机制 - 我们需要一个"低摩擦"解决方案,用户只需连接到 support.domain.com/{GUID},无需密码。GUID 是由支持工程师预先生成的 SignalR 组名称。点击此路线后,支持应用程序会调用AddToGroup(GUID)

SignalR 文档指出,组不是有效的安全机制。但是,如果组名称是 GUID,并且我们从不发送到所有客户端,那么这是一种相当安全的方法吗?

消息仅在组内发送或接收。GUID 使组名称非常安全,我本来以为。

如果组名称是未知的 GUID,是否可以轻易窃听聊天?是否有更好/更安全的替代方法,而无需客户端输入密码?

正如您正确所说,这些组不是一种安全机制。但在您的情况下,您想要做的很好,因为只要用户连接到 Hub,并且组管理由管理员进行,在聊天会话之后,管理员可以删除该组,以便用户以后无法加入它。

您需要明确表示这是一个公共会话,就像您在白板等应用程序中看到的那样,如果用户有邀请链接,他们可以加入。

我还建议实施一些ttl机制,以使组在一段时间后过期,以便用户稍后不加入会话。

最后,只是做一些防御性的溺爱,比如一次只允许每个组中的 1 个管理员和 1 个用户,等等......

最新更新