pfSense 使用哪种 hash/encoding 作为其 IPsec 密钥?

What kind of hash/encoding does pfSense use for its IPsec keys?

为了了解更多关于 strongSwan 和 IPsec 隧道的信息,我在两台机器之间设置了一个基本的(和本地的)站点到站点 IPsec 隧道 运行 pfSense。

在研究 ipsec.secrets 文件 (/var/etc/ipsec/ipsec.secrets) 时,我注意到基本的(而且不安全!)预共享密钥 (PSK) 'vpn ' 已转换为 '0sdnBu'。有谁知道这可能是什么散列?如果我想在 pfSense 和另一种系统之间创建隧道,感觉它可能是相关的 运行 strongSwan。

这只是 PSK 的 Base64 编码。 0s 前缀向 strongSwan 指示这一点,其余值相应地解析为二进制值:

$ echo -n 'vpn' | base64
dnBu
$ echo -n 'dnBu' | base64 -d
vpn

同样,0x 前缀将允许以十六进制编码传递共享秘密(例如 vpn 将是 0x76706e)。

pfSense 可能会在 Base64 中对共享机密进行编码,以避免用户通过 Web 配置时出现特殊字符(或字符集)问题 UI。