キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
67
閲覧回数
1
いいね!
0
コメント
tkitahar
Cisco Employee
Cisco Employee

 

※ 2025 年 3 月 31 日現在の情報をもとに作成しています

 

1. 概要

 

本記事では、Umbrella の Web プロキシサーバーである SWG (Secure Web Gateway) とセキュリティ技術の一種である Certificate Pinning の関係性について説明します。

 

なお、記載内容は、基本的に以下のサポート文書に基づいています。

 

Public Key Pinning/Certificate pinning

https://support.umbrella.com/hc/en-us/articles/360030956912-Public-Key-Pinning-Certificate-pinning

 

※ SWG を使用するには、SIG または SIG 相当のサブスクリプション契約が必要です

 

2. Certificate Pinning とは

 

Certificate Pinning (証明書のピン留め/証明書ピンニング) は、HTTPS 通信において、Web サーバー側で使用するサーバー証明書 (またはその中の公開鍵) のハッシュ値をあらかじめクライアント側に用意しておき、サーバーから受け取ったサーバー証明書の真正性を確認するセキュリティ技術です。

 

もし、クライアント側にあらかじめ用意されていたハッシュ値と、サーバーから送られてきたサーバー証明書のハッシュ値が一致しない場合、その HTTPS 通信のセッションは確立できず、途中で打ち切られます。

 

このように、クライアント側でサーバー証明書をピン留め (固定化) することから、この名前で呼ばれています。

 

この技術は、偽のサーバー証明書を使って、他者の通信に介入する中間者 (Man-in-the-middle) 攻撃に対して有効であると言われています。

 

tkitahar_0-1743399755819.png

 

3. ピン留めの方法

 

前項で説明したような証明書のピン留めの技術は、大雑把に 2 種類あると言われています。

 

まず、RFC 7469 で規定されている Public Key Pinning です。サーバー証明書に含まれる公開鍵 (Public Key) をピン留めするという意味合いのネーミングで、主に Web ブラウザ上で使われます。

 

Web サーバーが Public Key Pinning に対応している場合、Web ブラウザからの HTTPS リクエストに対して、HTTP Public Key Pinning ヘッダーが付与された HTTPS レスポンスを返します。

 

HTTP Public Key Pinning ヘッダーには、サーバー証明書のハッシュ値やその有効期間などが含まれており、Web ブラウザは有効期間だけピン留めを行います。

 

この機能には、偽の証明書が使われることを防ぐというセキュリティ上のメリットがありますが、ピン留めによるデメリットも大きいため、現在では、主要な Web ブラウザでは非推奨となっています。

 

具体的には、サーバー証明書が危殆化や失効されるなどして、新しいものに取り替えられた後でも、ピン留めの有効期間が終わるまで、新しいサーバー証明書を正しいものとして判断できません。

 

そして、その間はサイトに対する HTTPS 通信を正常に行うことができなくなります。

 

2 つ目のピン留めの技術は、Static Certificate Pinning (静的な証明書のピン留め) です。

 

これは、主に PC やモバイルデバイスのアプリケーションが行う HTTPS 通信に対して、サーバー証明書のピン留めを行うように実装するというものです。

 

具体的には、サーバー証明書 (またはそのハッシュ値) をあらかじめアプリケーションの中に埋め込んでおき、通信ごとにサーバー証明書の真正性の確認するプログラムをアプリケーションの中に実装します。

 

この方法だと、サーバー証明書の更新が必要となった際には、アプリケーションもそれに併せて更新すればいいので、HTTPS 通信ができなくなることを避けられます。

 

現在における Certificate Pinning は、主にこちらのことを指して使われます。

 

4. SWG との関係性について

 

SWG は、ユーザーからの HTTPS 通信を復号し、通信の中身を検査 (HTTPS 検査) するため、独自のサーバー証明書を都度作成し、それを使ってクライアント側と通信します。

 

※ この独自のサーバー証明書をクライアント側が信頼するために、クライアント側に Umbrella の CA 証明書をインストールする必要があります

 

この動作は高いセキュリティ レベルを維持する上で非常に重要ですが、純粋な技術的な観点から見ると、中間者攻撃と区別がつきません。

 

tkitahar_1-1743399755821.png

 

そのため、Certificate Pinning を行っているアプリケーションに対して、Web ポリシーの HTTPS 検査を有効にすると、HTTPS 通信そのものが正しくできなくなってしまう可能性があります。

 

もし、HTTPS 検査を有効にしている環境で、特定のアプリケーションの使用時に通信エラーが発生する場合、そのアプリケーションを HTTPS の復号対象から除外することで、エラーが解消される可能性があります。

 

ただし、HTTPS 通信の復号の除外設定をすることは、セキュリティ レベルを下げるトレードオフの関係にあるため、ビジネス上の必要性から判断することを推奨します。

 

例えば、アプリケーションで行っていた操作が Web ブラウザ上からも可能な場合、アプリケーションではなく Web ブラウザのみを使用する運用も考えられます (Web ブラウザだとピン留めの影響がない場合)。

 

なお、基となったサポート記事の Table 1 と Table 2 は、ピン留めを使用している可能性のあるアプリケーションごとの Umbrella の対応状況となっています。併せて参照してください。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします