iPhoneに署名済みVPNプロファイルを入れる前にペイロードを読む
署名済みプロファイルが証明するのは誰がパッケージしたかであり、何をインストールするかではありません。VPNやルートCAを信頼する前に、封筒、各ペイロード、すべての証明書を確認してください。
プロファイルは設定に名前、署名者、インストールボタン付きで現れ、多くの人が読むのは署名者の行です。その行が答えるのは、署名検証の規則に照らしてこの設定を誰がパッケージしたのかという一つの問いだけです。VPNペイロードが勤務先のゲートウェイを指しているかどうかや、埋め込まれたルート証明書がTLSの信頼ストアに入るべきものかどうかは、そこには書かれていません。以下の手順は、端末が適用する順序でパッケージを開いていきます。
まず封筒から:このプロファイルに署名したのは誰か
iOSではプロファイルは設定、一般、VPNとデバイス管理に現れ、署名者はインストールボタンの上に表示されます。何かに触れる前にその名前を読み、設定を受け取るはずだった組織かどうかを確かめてください。見覚えのない相手の有効な署名も有効な署名であり、それが認可するのは相手の構成であって、あなたのものではありません。同じ画面には、そもそも署名があるかどうかも表示されます。
ファイルがMacにあるなら、スマートフォンに届く前に中身を確認してください。セキュリティツールがCMS封筒を復号して、端末が読むplistを出力します。構成の適用に関するAppleの文書が署名を発行元の検証として説明しているとおり、インストールボタンが間にないだけで中身は同じものであり、ここで扱う範囲もそこにあります。
security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist
署名者が想定と違う場合、または署名がなく、身元を保証できない経路で届いた場合は、ここで止めてください。この手順のどこを進んでも、信頼できない封筒が信頼できるものになることはありません。
各ペイロードを開き、何をインストールするのかを言葉にする
プロファイルは入れ物であり、興味深いのはその中のPayloadContent配列です。各エントリはPayloadTypeを持ち、端末が何をインストールするかを示します。管理されたVPN構成、PKCS#12の証明書、ルート証明書、あるいは管理への登録であり、設定を読む前にまず種類を出力してください。
plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
grep -E 'PayloadType|PayloadDisplayName'
VPNペイロードは、サーバーアドレス、認証方式、場合によってはアプリごとやオンデマンドのルールという形で接続を指定します。IDペイロードは、その接続が提示するクライアント資格情報を提供します。ルート証明書ペイロードは信頼の基点を追加し、管理ペイロードは継続的な制御をサーバーに渡します。これらは四つの異なる約束であり、署名が保証するのはパッケージ全体であって、個々の約束を別々に保証するものではありません。ですからこの順に読み、IDがなければVPNは役に立たず、発行元が分からなければIDの意味も薄いことを覚えておいてください。
ファイルのパスワード保護はまた別の性質です。暗号化されたパッケージは、パスワードを持たない人から中身を隠しますが、中のものを認可すべきかどうかは決めません。パスワードは配布の仕組みとして扱い、確認の代わりにしないでください。
証明書を使う接続までたどる
パッケージ内の証明書を列挙し、それぞれを役割に結びつけてください。クライアント証明書はこの端末をゲートウェイに対して識別し、それを発行したCAはその接続の信頼チェーンに属し、プロキシや内部サービス向けにインストールされたルートが、すべてのHTTPSサイトの基点に自動的になるわけではありません。iOSでは、手動でインストールしたルートは、設定、一般、情報、証明書信頼設定で有効にするまでTLSでは信頼されません。一方、管理で配布されたルートはその手順なしで信頼され、この違いこそがペイロードの目的を重要なものにしています。
openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates
あなたの通信を運ぶ事業者が、その理由で、あなたが訪れるすべてのウェブサイトのTLS終端になるわけではありません。傍受には通信経路と、アプリが受け入れる信頼の基点の両方が必要であり、証明書を一つ載せたプロファイルはどちらも証明しません。プロファイルをインストールすればすべてが復号されると決めつけず、どの接続がその証明書を使い、どのアプリがそれを受け入れるのかを尋ねてください。
インストール後:確認し、削除が何をするかを知る
プロファイルをインストールしたら、ダウンロードしたファイルではなく端末側で確認してください。設定画面にはインストール済みのプロファイル、その署名者、ペイロードが並び、VPN画面には接続が意図どおりに構成されているかが表示されます。ダウンロードしたファイルを削除しても何も消えず、インストールされた構成は別のオブジェクトです。
profiles show -type configuration
scutil --nc list
プロファイルに管理への登録が含まれる場合は、インストールした後ではなく前に、削除の影響を読んでください。その登録を削除すると関連する構成も一緒に消え、端末の登録方法によっては管理対象アプリも削除されることがあります。証明書がおかしいと思ったときに試す修理手順ではありません。何かを削除する前に、どのペイロードが問題を持っているのかを管理者に尋ねてください。
この手順は四つの別々の答えで終わります:誰がパッケージに署名したのか、どのペイロードをインストールするのか、各接続がどのIDと信頼を使うのか、削除すると何が一緒に消えるのか。これらを分けたままにすれば、署名済みプロファイルは緑のチェックマークではなく、検討済みの判断になります。