通过 IRC 的 /nicksrv 设置的密码有多安全?

信息安全 密码
2021-08-21 01:03:20

我刚刚在 IRC 上注册了一个昵称,并且必须使用密码才能注册它。鉴于我只使用过 IRC,但从未了解它的 P2P 机制,我想知道:

  • 我在 Nickserv 注册的密码是否经过哈希处理,并复制到 IRC 网络中的所有其他节点?

  • 该密码有盐吗?(它是什么?)

  • 任何人都可以成为 IRC 中的对等点并查看我的密码的散列版本吗?

  • 如果以上都不适用,并且 Nickserv 是集中运行的,那么谁来运行它?

  • 我应该注意哪些其他风险?

2个回答

我只能代表我多年前帮助运行的 UnrealIRCd,但我会试一试:

  • NickServ 是在单个节点上运行的服务机器人。它连接到所有节点,因此您可以与它进行通信,而无需复制明文密码。因此,您的密码实际上只在一台服务器上。
  • 默认情况下,NickServ 密码使用 MD5 进行哈希处理,没有加盐。我们有一个使用你的电子邮件地址作为盐的模组,但不要对大多数 IRC 服务器抱有太多期望。
  • IRC 网络的对等服务器是私有网络的,需要密码和通用配置才能将它们链接在一起。您不能在没有网络管理员配置的情况下启动自己的服务器并成为网络的一部分。

就风险而言:

  • 一些服务器使用替代昵称注册(例如禁用 NickServ 并制作一个具有相同名称的机器人),因此完全可以自定义方案。这可能是好事,也可能是坏事。这取决于实现,这可能是一个黑匣子。
  • IRC 流量默认不加密或验证。不过,您可以在 IRCd 和客户端上配置 SSL。我强烈建议这样做。网络应该使用 SSL 进行服务器到服务器的复制。
  • 在较旧的网络上,您有时会看到X用于昵称身份验证的机器人。一些用户会/nick NickServ捕获身份验证尝试。在尝试进行身份验证之前,请确保您阅读了 MOTD 和其他文档。

作为一个半流的 IRCop,我不会太指望密码的安全性。IRC 是 Internet 早期的一种协议,当时安全性并不是很重要的考虑因素。如果您没有使用 SSL 连接到服务器,那么它将以明文形式发送。一个体面的服务配置应该限制有多少服务器可以访问信息,并且流氓节点不能简单地连接,但是对于 Internet 上的大多数遗留系统来说,安全通常是事后考虑的,IRC 也不例外。