お客様として私はOS/XおよびiPhone用の商用VPNを使用しています。私もVPNの設定StrongSwanを使用してiOS / MacOで作業し、自宅でDebianベースのVPNを使用してください。
.mobileconfig
VPNプロバイダによって提供された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