VPN設定:共有秘密PSKフォーマット

VPN設定:共有秘密PSKフォーマット

お客様として私はOS/XおよびiPhone用の商用VPNを使用しています。私もVPNの設定StrongSwanを使用してiOS / MacOで作業し、自宅でDebianベースのVPNを使用してください。

.mobileconfigVPNプロバイダによって提供されたSierra MacOS実行ファイルから生成された設定ファイルをキャプチャしました。 Linuxソフトウェアをインストールして手動で構成しないように、ここから構成の詳細をインポートしたいのですが、SharedSecret XMLデータフィールドは暗号化されています。

職場では、Appleデバイス用のmobileconfigプロファイルを生成するために共有キーを暗号化するフレームワークを使用してきましたが、Apple Configurator 2まだこのフィールドの形式が何であるかわかりません。

ipsec.secretsこの「暗号化された」パスワードは、プレーンテキストパスワードの代わりに配置できることを確認しました。たとえば、次のようになります。

@vpngroup : PSK 0scGFzc3dvcmQK

繰り返しますが、これは顧客/エンドユーザーに渡されるApple mobileconfig設定ファイルにあります。

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

それでは、この形式は正確に何ですか?そしてそれを暗号化して暗号化する方法は?私はこれがプレーンテキストの実際の共有秘密ではないと確信しています。

答え1

共有秘密/グループパスワードのエンコード形式は実際にはBase64

~から強い白鳥ドキュメントサイト:

あるいは、事前共有パスワードを16進数またはBase64でエンコードされたバイナリ値として表示することもできます。 0xで始まる一連の文字は、一連の16進数として解釈されます。同様に、ゼロで始まる文字シーケンスは、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

関連情報