VPN 配置:共享密鑰 PSK 格式
作為客戶,我正在使用適用於 OS/X 和 iPhone 的商業 VPN。我還在工作中為 iOS/ MacO 配置 VNP,並在家裡使用 StrongSwan 提供基於 Debian 的 VPN。
我已經擷取了
.mobileconfig
我的 VPN 提供商提供的 Sierra MacOS 執行檔生成的配置文件。我想從那裡獲取配置詳細資訊,以便不安裝他們的 Linux 軟體並手動配置它,但是 SharedSecret XML 數據欄位是加密的。在工作中,我一直在使用
Apple Configurator 2
,只是為了加密我的 Shared Secret 來為 Apple 設備創建 mobileconfig 配置文件的骨架,但是我仍然不知道該欄位的格式是什麼。我注意到這個“加密”密碼可以放在 中
ipsec.secrets
,代替明文密碼,例如:@vpngroup : PSK 0scGFzc3dvcmQK
同樣,再次在傳遞給客戶/最終使用者的 Apple mobileconfig 配置文件中,可以再次找到它:
<key>SharedSecret</key> <data>cGFzc3dvcmQK</data>
那麼這種格式實際上是什麼?以及如何加密和加密它?我確定這不是明文中的實際共享秘密。
Shared Secret/組密碼的編碼格式實際上是Base64。
從strongswan文件站點:
或者,預共享機密可以表示為十六進製或 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