网络共享的哈希或模糊密码

网络共享的哈希或模糊密码

当我设置 WiFi 时,我发现教程对我的密码进行哈希处理,使其不会以明文形式存储(我们使用用户名/密码进行 wifi 访问)

network={
    ssid="NETWORKNAME"
    priority=1
    proto=RSN
    key_mgmt=WPA-EAP
    pairwise=CCMP
    auth_alg=OPEN
    eap=PEAP
    identity="USERNAME"
    password=hash:HASH
    phase1="peaplabel=0" 
    phase2="auth=MSCHAPV2"
}

其中 HASH 是

echo -n 'YOUR_REAL_PASSWORD' | iconv -t utf16le | openssl md4

有没有办法对 Windows 网络安装执行类似的操作?我目前使用mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares /mnt/share挂载网络共享,但我想让我的密码远离明文(我知道如何保护明文或使其只能由 root 读取,这不是我想要的)。

我能否以与 WiFi 类似的方式对 cifs 网络共享的密码进行哈希处理?

答案1

不,您不能隐藏密码。您的计算机需要能够向服务器提供密码。这意味着无论您使用什么方法来隐藏密码,您的计算机都必须能够采用该隐藏形式并对其进行解码。如果您的计算机可以做到,那么任何人的计算机都可以做到。

EAP 的情况表面上有所不同,因为对于 EAP,客户端需要提供密码的 NTML 哈希值。但这意味着实际上密码是哈希值,而不是人类可读的输入。所以事实上,即使hash:在配置文件中,配置文件也确实包含明文的密码。

您阅读的教程非常具有误导性,它暗示对文件中的 EAP 密码进行哈希处理具有显着的安全优势。事实上,如果您不将该密码用于其他任何用途,它根本没有任何好处,因为正如我们在上面看到的,有效密码是哈希值。如果相同的密码也用于其他用途(服务器需要密码而不是哈希值),那么会有一些好处,但它是有限的,因为 MD4 很容易被暴力破解。

如果您不想每次都输入密码,最好的办法是将密码存储在密码管理器中,并确保只有您可以访问密码管理器。确保它在磁盘上加密,以防有人窃取您的计算机(当然这意味着您必须在 bootig 之后的某个时刻解密密码容器)。但是,如果有人访问您的计算机,他们就会获得密码。没有办法阻止这种情况。

如果您可以影响服务器的配置并希望提高安全性,请考虑启用 Kerberos 身份验证,如果配置彻底,您可以使用登录密码访问网络共享。

相关内容