4

では、この図を見てください。

特定のプロファイルに署名する方法を示す 2 つの小さなボックスがあります。

フェーズ 2 のステップ 1 では、「Apple が発行した証明書」と表示されていますが、どのApple が証明書を発行したかは表示されていません(複数の証明書を発行しています)。開発者証明書と MDM (APNS) 証明書を試しました。それはそれらの1つではありませんでした。どういうわけか必要な 3 番目の魔法の証明書はありますか (また、どのように取得すればよいですか)?

フェーズ 3 のステップ 2 では、「本人確認証明書」と記載されていますが、これも詳細が少し大ざっぱです。私が知っている唯一のアイデンティティ証明書は、デバイスの秘密鍵を使用してデバイスにインストールされています。サーバーはそれを使用してプロファイルに署名する方法を教えてください。

これを機能させる唯一の方法は、独自の自己署名証明書を作成し、それをデバイスに事前にインストールすることです。明らかに、これは物事を行うためのエレガントな方法でも、特に安全な方法でもありません。

フォローアップの質問

私のサーバー証明書は「DigiCert High Assurance EV Root CA」によって発行され、リストに載っています: http://support.apple.com/kb/ht5012ですが、iOS 6 デバイスはプロファイルに署名するときに「信頼できない」と見なしますが、問題ありません。奇妙なSSLの場合。ただし、iOS 5 デバイスは問題ありません。理由はありますか?

暗号化ビットもよくわかりません。MDM ドキュメントから: 「各デバイスには一意のクライアント ID 証明書が必要です。これらの証明書は PKCS#12 コンテナーとして、または SCEP 経由で配信できます。SCEP を使用することをお勧めします。これは、プロトコルによって ID の秘密鍵がサーバー上にのみ存在することが保証されるためです。デバイス。"

デバイス自体だけが秘密鍵を知っている方が最終的にはより安全であることに同意しますが、2048 ビットの公開鍵は約 100 バイトのデータの暗号化にしか使用できないため、可能な限り小さなデータでも十分ではないため、やや問題があります。ペイロード。

4

1 に答える 1

7

最初にフェーズ 2 とフェーズ 3 について説明します

フェーズ 2 のステップ 1 では、iOS デバイスは、デバイス証明書/キーによって署名されたサーバー応答を送信します (各デバイスには、デバイスごとに異なる証明書/キーがプリインストールされています)。これらのデバイス証明書/キーは、Apple によって発行されます。

サーバー側では、Apple ルート証明書を使用して検証する必要があります。

フェーズ 2 のステップ 1 ~ 3 では、プロファイル サービスが SCEP 要求を送信します。この SCEP 要求には、どの SCEP サーバーと通信する必要があるかをデバイスに知らせるための情報が含まれています。この SCEP サーバーがあなたのサーバーです。そのため、デバイスはこの SCEP サーバーと通信し、そこから新しい ID 証明書を要求します。

フェーズ 3 では、ステップ 2 のデバイス応答は、この ID 証明書の証明書/キーで署名されます。次に、認証局のルート証明書でそれを確認する必要があります。(フェーズ 2 のもう 1 つの注意事項 SCEP サーバーは、認証局への一種のプロキシです)

そして、「MDM プロファイルの署名、どの証明書を使用しますか?」という質問に答えます。

MDM プロファイルは、暗号化および/または署名できます。

暗号化する場合は、このデバイスに関連付けられた ID 証明書を使用して暗号化します。したがって、この ID のキーを持っているデバイスで、暗号化を解除できます。

署名する場合は、サーバー キーで署名します。署名を検証できるように、デバイスにはサーバー証明書がインストールされている必要があります。

ところで。この教科では。この図には示されていませんが、通常必要なことが 1 つあります。最初のステップ (この登録全体の前) は、通常、サーバー証明書のインストールです (将来のプロファイル署名検証用)。サーバー証明書がよく知られている CA (Verisign など) によって発行されている場合は、この手順を省略できる可能性があります。

ご不明な点がございましたら、お気軽にお問い合わせください。この OTA/MDM 登録全体を理解するのにしばらく時間がかかりました。

更新 1

iOS 6 があなたの証明書を署名に対して信頼できないものとして扱う理由がわかりません。よく知られている CA によって署名された証明書は使用しませんでした。

1つだけ推測があります。iOS 5 と iOS 6 の間で、キー チェーンに関する何かが変更された可能性があります。一般的に言えば、各アプリには独自のキー チェーンがあります。よく知られているすべての証明書は、Mobile Safari キーチェーンに保存する必要があると思います。MDM/Preferences がこのキーチェーンを iOS 6 の MobileSafari と共有していた可能性がありますが、現在は共有していません。このような場合、プロファイルを介してこの「DigiCert High Assurance EV Root CA」をインストールする必要があります (正しいキーチェーンに配置するため)。しかし、それは勝手な推測です。

暗号化について。まず第一に、その通りです。各デバイスが独自の秘密鍵を持っていれば、より安全です。このような場合、誰かがプロファイルを盗んだとしても、それを解読することはできません (デバイスだけが秘密鍵を持っているため)。これは、機密性の高いプロファイル (たとえば、ユーザー名とパスワードの両方を持つ電子メール アカウントなど) を送信する場合に特に重要です。

暗号化の非常に高レベルな紹介:

任意の長さのキーで、任意の長さのデータを暗号化できます。すべての暗号化アルゴリズムは、同じキーを使用して任意の量のデータを暗号化できるように設計されています。

非対称アルゴリズム (RSA など) は、データを直接暗号化するためにめったに使用されません。ほとんどの場合、このアルゴリズムは対称アルゴリズム (AES など) のキーを暗号化するために使用され、その後のすべての暗号化/復号化は AES を使用して行われます。これには 2 つの理由があります。パフォーマンス (AES は RSA よりも高速) とリソース (AES は RSA よりもリソースの消費が少ない) です。

その結果、プロファイルを暗号化する必要がある場合は、内部で RSA、AES (またはその他のアルゴリズム)を使用するPKCS7を使用します。通常、これを行うためのライブラリがあります (OpenSSL または BouncyCastle)。したがって、これらすべての複雑さを理解する必要はありません。

ところで。SO にふさわしくない質問がある場合は、直接私に連絡してください (連絡先はプロフィールに記載されています)。

于 2013-02-22T15:33:24.287 に答える