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