我已经阅读了很多关于将 Strongswan 验证为 SQL/PAM 的内容,但找不到任何想法/解决方案如何针对已经有大量使用 bcrypt+salt 加密的用户名和密码组合的数据库进行身份验证。我不知道明文密码,所以我不明白如何启动它。
我编写了一个自定义 Radius 服务器(使用 pyrad),但它只支持 PAP,这在当今不是一个好的解决方案。所以基本上,通过这个解决方案,我能够实现我的目标,但它真的不安全。在每个客户端中,我都必须禁用 MSCHAPv2 并仅启用 PAP。
我已经为此搜索了几天,但对我来说,如果没有明文密码,似乎不可能对它们进行身份验证。也许我不了解整个过程,但我还没有为我的案例找到任何解决方案。用我的 SQL 数据尝试了 Freeradius,但密码的存储方式与 Freeradius 期望的不同。
你能推荐如何实现这一目标的技术/想法吗?
我想以某种方式对它们进行身份验证。
谢谢!
常用的基于用户名/密码的 EAP 方法(如 EAP-MSCHAPv2)在没有明文密码的情况下无法工作,因为它们使用质询 - 响应交换(即客户端和服务器在使用随机密码时都需要明文密码才能得出相同的结果挑战)。
虽然有一些 EAP 方法可以传输明文密码(例如 EAP-GTC),然后可以根据哈希值对其进行检查,但许多客户端并不支持它们。对于不需要存储或传输明文密码的 IKEv2 和 EAP,还有基于零知识证明的现代基于密码的身份验证方案,但它们在支持方面存在相同的问题。
有关详细信息,请参阅我以前的答案之一。