VPN配置:共享秘密PSK格式

VPN配置:共享秘密PSK格式

作为客户,我正在使用适用于 OS/X 和 iPhone 的商业 VPN。我也是配置 VNP在 iOS/MacO 上工作,并在家里使用 StrongSwan 拥有基于 Debian 的 VPN。

我已经捕获了.mobileconfig我的 VPN 提供商提供的 Sierra MacOS 可执行文件生成的配置文件。我想从那里获取配置详细信息,以便不安装他们的 Linux 软件并手动配置它,但是 SharedSecret XML 数据字段是加密的。

在工作中,我一直在使用Apple Configurator 2,只是为了加密我的共享密钥,以便为 Apple 设备创建 mobileconfig 配置文件的框架,但是我仍然不知道该字段的格式是什么。

我注意到这个“加密”密码可以放在 中ipsec.secrets,代替明文密码,例如:

@vpngroup : PSK 0scGFzc3dvcmQK

同样,在交付给客户/最终用户的 Apple mobileconfig 配置文件中,可以再次找到它:

<key>SharedSecret</key>
<data>cGFzc3dvcmQK</data>

那么这种格式到底是什么?以及如何加密和加密呢?我确信这不是明文形式的实际共享秘密。

答案1

Shared Secret/组密码的编码格式实际上是Base64

来自强天鹅文档站点:

或者,预共享秘密可以表示为十六进制或 Base64 编码的二进制值。以 0x 开头的字符序列被解释为十六进制数字序列。同样,以 0 开头的字符序列被解释为 Base64 编码的二进制数据。

组密码的 Base64 格式除了用于 Linux/FreeBSD IPsec 配置和 Apple 配置文件外,还用于 Cisco VPN 客户端文件。

使用 Base64 的理由是保护密码免遭窥探和最终用户的攻击。为什么要使用这样一个基本的编码算法......

归根结底,要在 Linux 中对其进行解码,必须从 Apple SharedSecret 数据字段中逐字获取,或者从 中获取时ipsec.secrets,必须忽略字符串中的前导“0”:

$echo cGFzc3dvcmQK | base64 -d
password

要在 FreeBSD/OS/X 中解码它:

$echo cGFzc3dvcmQK | base64 -D
password

同样,将其编码回来:

$echo password | base64
cGFzc3dvcmQK

相关内容