将密码存储为 wpa_supplicant.conf 中的哈希值?

将密码存储为 wpa_supplicant.conf 中的哈希值?

这个问题非常相关到这个

我想登录一个使用 PEAP 或 MS-CHAPv2 的用户和密码保护的 wifi。我的wpa_supplicant.conf必须包含这样的条目:

network={
    ssid="<somessid>"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="<someidentity>"
    password="<somepassword>"
}

现在,我不想显示密码(而是让知道密码的朋友一次输入密码——我知道,但不会知道),所以我也不希望将其以明文形式存储。

是否可以password="<somepassword>"用密码的哈希值替换该条目,最好在不显示密码的情况下生成?如果是这样,我该怎么办?

如果使用 MS-CHAPv2,我是否必须创建额外的哈希? (在另一个答案中,我读到了一些关于 的内容NtPasswordHash,它没有产生太多的 duckduckgo 结果,并且无法wpa_supplicant.conf按照另一个问题中的建议在手册页中找到。)

或者: 是否可以让好友只输入他的登录数据(即身份和密码)一次让我只使用他的帐户一次来访问互联网?

答案1

不,您不能用哈希值替换密码。协议是什么并不重要。客户端需要知道密码,然后要么将密码发送到服务器,要么发送一些数据来证明客户端知道密码。服务器可以满足于知道真实密码的哈希值,因为当它收到候选密码时,它会计算候选密码的哈希值并将其与真实哈希值进行比较。但客户必须提供真实的密码。

无论您在此文件中存储什么,最终 wpasupplicant 程序都必须能够重建密码。这意味着您可以重建密码。您的好友无法阻止您了解密码,除非他不向您提供密码。

一旦您的好友在您的计算机上输入了密码,您就可以根据需要找回密码。您可以修改您的好友输入密码的程序,将其写入文件中,或者您可以随后检查该程序的内存。如果您的好友在您的计算机上输入了他的密码,那么他必须相信您不会以您承诺不使用的任何方式使用该密码。这就像如果你的朋友把他的车借给你并要求你停车:他无法阻止你开车去兜风,他只能向你保证你不会把车开到比停车场更远的地方。

如果您想共享帐户,则必须共享密码。如果您不想共享帐户,则需要使用自己的密码获取自己的帐户。

答案2

密码的零号规则是这样的:如果你需要有人忘记你的密码,更改您的密码

你的好友可以输入他的密码,让你使用他的 wifi 一段时间,然后当他允许你使用他的 wifi 后,他会更改他的 wifi 密码。现在你不再拥有他的密码,你拥有他的老的密码,现在没用了。

或者,他可以更改密码输入密码,在这种情况下,您实际上永远不会看到他的旧密码,您只会获得他当前的密码,然后他可以更改该密码。

无论使用什么技术,这一原则都适用。

相关内容