26

この質問は、Web API と証明書の有効期限に対するクライアント アプリでの SSL ピンニングの使用に関連しています。

シナリオ:

私はexample.comを所有しており、 APIがホストされているサブドメインを持っています: api.example.com

SSL経由で API を使用したいので、サブドメイン用に SSL 証明書が作成されます。

証明書を取得した後、私は次のことを行いました。

  • 公的証明書
  • 中間証明書
  • 秘密鍵

これらの証明書を Web サーバーにインストールすることを理解しています。

次に、クライアント アプリが API に接続することを望みます。man-in-the-middle スタイルの攻撃を軽減するために、SSL ピニングを使用して、クライアントが自分の API とのみ通信し、なりすましを行わないようにしたいと考えています。

クライアント アプリにピン留めするには、パブリック証明書または中間証明書に対してピン留めする 2 つの選択肢があります。

これを実装するとしましょう。

api.example.comの証明書の有効期限が切れるとどうなりますか?

クライアント アプリが機能しなくなることは理解しています。

パブリック/中間/プライベート アイテムの完全なセットを再生成する必要がありますか? 次に、新しい公開証明書または中間証明書をアプリに入れますか?

質問:

api.example.com の証明書が更新されるまで、クライアント アプリを引き続き動作させたいと考えています。もちろん、新しい証明書をクライアント アプリに入れることはできますが、ロールアウトなどには時間がかかります。

どうすればこれを処理できますか?

Google が証明書を毎月更新しているのを読んだことがありますが、どうにかして公開鍵を同じに保つことができます: iOS で証明書の公開鍵をピン留めする方法

それが可能であれば、解決策は単純にサーバーから公開鍵を抽出し、それをローカルに保存されている公開鍵と照合することです...しかし、Googleはどのようにそれを行うのでしょうか?

ありがとう

クリス

4

3 に答える 3