我是这个行业的新手,找不到以下问题的答案:
为了让 ntpd 客户端使用十六进制密钥值与 chronyd 服务器同步,我发现在将此密钥文件上传到我的 ntpd 客户端之前,我需要从 chronyd 使用的十六进制密钥中删除 HEX: 前缀。这是关于此类互通的已知事实,还是我的客户的特定问题?
当使用十六进制密钥时,ntpd 需要完整的密钥长度,即 SHA-1 必须是 40 十六进制符号,SHA-256 必须是 64 十六进制符号。这是 ntpd 的设计意图,也是 IT 在生成和配置 ntpd 密钥时使用的已知做法吗?
ntpd 实现假设(即使在最新版本 ntp4.2.8p17 中)如果 strlen(key) <= 20,则将其视为 ASCII 字符。如果 strlen(key) > 20 个字符,则将其视为十六进制格式。
- 为什么20是进行这种分离的边界限制?从 RFC 中收集,MD5 摘要是 128 位,SHA-1 摘要是 160 位,SHA256 是 256 等。20 个字符的限制是否基于 ntpd 的早期实现,当时只考虑了 MD5 和 SHA-1?
- 这个 20 个字符的限制是否为业界 IT 人员所了解和期望,并被接受为事实上的标准?
- 如果将此限制更改为基于密钥类型,即如果 SHA-1 则限制为 20,如果 SHA-256 则限制为 32,您会想到什么影响,...这是否会导致向后兼容性问题?