倱効した蚌明曞を䜿甚する䞭間者。 パヌト2







前の蚘事では、蚌明曞の状態を確認する蚌明曞が倱効しおいるかどうかを確認する基本的なメカニズムに぀いお説明したした。 この蚘事では、次の質問に答えたす。



1.最新のWebブラりザヌでは、蚌明曞ステヌタス怜蚌メカニズムはどのように実装されおいたすか

2. 誰のせいですか なぜ圌らはそのように実装されおいたすか

3. 䜕をする  芋蟌みは䜕ですか



この蚘事は、実際に䜿甚されおいる蚌明曞の状態を確認するメカニズムを理解するこずに興味がある人に圹立ちたす。



Habréはすでにこのトピックに぀いお曞いおいたすたずえば、 ここずここ が、この蚘事では、最新のブラりザヌで実行されるチェックのより詳现な説明、蚭定に関するより関連情報、最埌に、これを修正する方法の説明を提䟛するこずにしたした将来の状況。



Webブラりザに実装された蚌明曞ステヌタスチェック



最新のWebブラりザに実装されおいる蚌明曞ステヌタス怜蚌メカニズムは、 前述の基本メカニズムCRL、OCSP、OCSPステヌプリングずそれらの倉曎の組み合わせです。 冗長性を確保するために、基本的なメカニズムの組み合わせが実行されたす。蚌明曞のステヌタスに関する情報の゜ヌスの1぀が利甚できなくなった堎合、バックアップが䜿甚されたす。 たずえば、OCSPプロトコルは、蚌明曞のステヌタスを確認するための䞻芁なメカニズムずしお䜿甚できたすが、OCSPサヌバヌが利甚できない堎合や障害が発生した堎合は、クラむアントに察しおより時間がかかるCRLが実行されたす。



最新のブラりザに実装されおいる蚌明曞ステヌタスチェックの䞻な問題を理解するには、「䞭間者」攻撃の次のシナリオを考慮するだけで十分です。







サヌバヌの秘密キヌが䟵害されたした。 サヌバヌ所有者は、䟵害されたキヌの蚌明曞を倱効させ、新しいキヌペアを生成し、新しい蚌明曞を受け取りたした。

攻撃者は倱効した秘密鍵ずサヌバヌ蚌明曞を取埗したした。 このシナリオでは、サヌバヌ自䜓のセキュリティ䟵害の結果ずしお、たたは認蚌センタヌCAのセキュリティ䟵害の結果ずしお、意図的に圌がどのように行ったかを述べおいたせん。 これは、䞡方の状況でブラりザヌがどのように動䜜するかを瀺すためです。



䟵入者である「䞭間者」は、クラむアントからのすべおのトラフィックを制埡したす。 このトラフィックを傍受たたはブロックでき、他のネットワヌクサヌビスに代わっおクラむアントに応答しようずする堎合がありたす。



サヌバヌずのTLS接続を確立しようずするず、クラむアントのWebブラりザヌは「䞭間者」に接続したす。 Man in the Middleは、OCSP応答別名OCSPステヌプリング が添付されおいない倱効した蚌明曞を䜿甚するサヌバヌによっお衚されたす。 攻撃者は、クラむアントからすべおのOCSPサヌバヌおよびCRL配垃ポむント別名CDP ぞの芁求をブロックしたす。 たた、䟵入者は、クラむアントがWebブラりザたたはそのコンポヌネントたずえば、埌述の「CRLSets」たたは「OneCRL」ブラックリストを曎新しようずする詊みをブロックしたす。



すべおのOCSPサヌバヌおよびCRL配垃ポむントぞの芁求の「䞭間者」をブロックするこずは、最初に攻撃者がサヌバヌずCAの䞡方を䟵害する可胜性がある初期条件をサポヌトし、次に蚌明曞ステヌタスチェックを最も完党に実蚌したす。最新のブラりザで実行されたす。



以䞋は、さたざたなWindows Webブラりザによっお実行される蚌明曞ステヌタスチェックの説明です。 他のプラットフォヌムでは、怜査の詳现がわずかに異なる堎合がありたす。



Mozilla Firefox



この攻撃に察するMozilla Firefoxブラりザバヌゞョン54執筆時点で最も関連性の高いの動䜜は、サヌバヌ蚌明曞の皮類DVたたはEVによっお異なりたす。 DV蚌明曞ドメむン怜蚌枈みを発行するこずにより、CAは、蚌明曞で指定されたキヌの所有者が蚌明曞で指定されたドメむンを制埡しおいるこずのみを確認したす。 ほずんどの蚌明曞はDVです。 EV蚌明曞拡匵怜蚌は、ドメむンの所有暩だけでなく、ドメむン所有者の身元も確認したす。 このような蚌明曞は、はるかに高䟡で䞀般的ではないため、CAによる远加の怜蚌が必芁です。



FirefoxによるDV蚌明曞のステヌタスの確認は、次の図で説明されおいたす。











簡単にするために、図は以前に受信したOCSP応答のキャッシュずの盞互䜜甚を瀺しおいたせん。これは、それらが攻撃によるか、サヌバヌに十分に長い時間をかけお初めおア​​クセスされるずいう事実によるか、時代遅れであり、話しおいるためであるず想定しおいるためです蚌明曞が取り消されおいないこず。 2番目の堎合、ブラりザの動䜜は簡単です。接続は蚱可されたす。



そのため、ブラりザヌはサヌバヌ蚌明曞のチェヌン䞭間CAの蚌明曞ずサヌバヌ自䜓の蚌明曞のステヌタスをチェックしたす。 侭間CAの蚌明曞の状態を確認するには、クラむアントにロヌカルに保存されおいるOneCRLブラックリストを䜿甚したす。これには、さたざたなCRL配垃ポむントから収集された倱効した蚌明曞に関する情報が含たれたす。 ブラックリストの状態の関連性は、次のように機胜する別個のリモヌトサヌビスであるCRLアグリゲヌタヌを䜿甚しお維持されたす。



1.アグリゲヌタヌは、特定のCRL配垃ポむントのセットを定期的にポヌリングしたす。

2.受信したCRLから、倱効した蚌明曞に関する最も重芁な情報たずえば、秘密キヌが䟵害されたために倱効した蚌明曞を遞択したす。

3.この情報に基づいお、ブラりザのブラックリストに曎新したす。



CRLアグリゲヌタヌ、およびその結果、OneCRLブラックリストの内容はMozillaによっお制埡されたす。 OneCRLは、倱効したすべおの蚌明曞を察象ずするのではなく、䞀郚の䞭間CAの蚌明曞ず少数のサヌバヌ蚌明曞のみを察象ずしたす。 これは、ブラックリストのサむズを小さくするために行われたす。 「OneCRL」の珟圚のリストはこちらにありたす 。



サヌバヌ蚌明曞のステヌタスを確認するには、OneCRLから取埗した情報、添付されたOCSP応答、たたはOCSP芁求の結果ずしお受信した応答を䜿甚したす。 Firefoxは、䞭間CAの蚌明曞 RFC 6961 の添付OCSP応答をサポヌトしおいないため、サヌバヌ蚌明曞のみの添付OCSP応答の存圚の確認を瀺しおいたす。



蚌明曞のステヌタスに関する情報の゜ヌスが利甚できない堎合、蚌明曞は倱効したず芋なされないこずが重芁です。 ぀たり、チェックは゜フトフェヌルモヌドで実行されたす。 したがっお、「䞭間者」攻撃は成功したす。 誰のキヌが最初に䟵害されたか、サヌバヌ自䜓のキヌたたはCAのキヌは関係ありたせん。



さらに、Firefoxに実装されおいるOCSPプロトコルのクラむアント偎は、1回限りのランダムコヌドnonceをサポヌトしおいないため、OCSP応答はリプレむ攻撃から保護されおいないこずに泚意しおください。



同様の状況は、EV蚌明曞を確認するずきに発生したす。 唯䞀の違いは、ブラりザが䞭間CAの蚌明曞のOCSP芁求を远加的に実行するこずです。







ブラりザヌの蚭定でsecurity.OCSP.requireパラメヌタヌを蚭定するこずにより、ブラりザヌの動䜜を倉曎し、 ハヌドフェヌルモヌドを有効にできたす぀たり、蚌明曞ステヌタス情報が利甚できない堎合にTLS接続の確立を犁止したす「aboutconfig」真実に











サヌバヌがDV蚌明曞を提瀺する堎合、この蚭定は䞭間CAの蚌明曞に察するOCSPプロトコルの䜿甚をアクティブにしないこずに泚意しおください。



゚ンドナヌザヌにずっお、Firefoxのハヌドフェむルは次のようになりたす。











「䞭間者」攻撃は䟝然ずしお可胜です..攻撃者は、OCSP応答を再生するために攻撃を実行し、蚌明曞が取り消される前に生成された「叀い」OCSP応答を送信する必芁があるこずに泚意しおください。 ただし、この攻撃は「叀い」OCSP応答が期限切れになるたでしか実行できたせん。 さらに、OCSP応答の有効期間は非垞に長くなる可胜性がありたす。 倚くの堎合、1週間に盞圓したす。



Microsoft Internet Explorer /゚ッゞ



Microsoft Internet Explorerバヌゞョン11およびMicrosoft Edgeバヌゞョン40ブラりザヌは、DVおよびEV蚌明曞に察しお同じように動䜜したす。











スキヌムでは、以前ず同様に、簡単にするために、以前に取埗したOCSP応答ずCRLのキャッシュずの盞互䜜甚は瀺されおいたせんが、 別の蚘事をこれに圓おるこずができたす。



チェヌン内で怜蚌される蚌明曞ごずに、添付されたOCSP応答がない堎合、OCSP芁求が実行されたす。 同時に、Internet ExplorerおよびEdgeは、䞭間CAの蚌明曞 RFC 6961 に察する添付OCSP応答をサポヌトせず、OCSP応答をリプレむ攻撃から保護したせん。 OCSPサヌバヌが䜿甚できない堎合、CRLのロヌドが詊行されたす。



怜蚌は゜フトフェむルモヌドでも実行されたす。 したがっお、䞭間者攻撃も成功し、サヌバヌのキヌ自䜓たたはCAのキヌが最初に䟵害されたこずが関係ありたせん。



たずえば、レゞ​​ストリキヌ倀「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_WARN_ON_SEC_CERT_REV_FAILED \ iexplore.exe」を1に蚭定するこずにより、Internet Explorerの動䜜を倉曎するこずができたす。アドレスバヌに小さな譊告が衚瀺されたす。











Edgeの堎合、そのような蚭定は芋぀かりたせんでした。



Google Chrome /クロム



Google ChromeおよびChromiumバヌゞョン59ブラりザヌは、DV蚌明曞を怜蚌するずきに次のように動䜜したす。











Chromeによっお実行されるチェックは、Firefoxによっお実行されるチェックず䌌おいたすが、Chromeは䞀般にDV蚌明曞のチェック時にOCSP芁求の実行を拒吊したした。 Chromeの「CRLSets」は、Firefoxの「OneCRL」に䌌おいたす厳密には、「CRLSets」メカニズムはさらに以前に登堎したしたで、゚ンドナヌザヌに察する䞍完党性ず制埡䞍胜ずいう同じ問題がありたす。



EV蚌明曞をチェックする際にOCSPリク゚ストが䜿甚されたすここでの画像は、Firefoxで芳察したものずほが同じになりたす











他のブラりザヌず同様に、ChromeずChromiumは゜フトフェヌルモヌドで動䜜したす。 侭間CA蚌明曞 RFC 6961 の添付OCSP応答およびリプレむ攻撃からのOCSP応答の保護はサポヌトされおいたせん。



グルヌプポリシヌに倉曎を加え 手順はこちら 、次のオプションを含めるこずにより、ChromeずChromiumの動䜜を倉曎できたす。







Linux でも同等の構成が可胜です こちら 。



これらの倉曎を行った埌、ChromeずChromiumはInternet Explorerが行うのず同様のチェックを実行したすOCSP応答が添付されおいない堎合、蚌明曞チェヌン党䜓のCRLダりンロヌドぞのロヌルバックでOCSPリク゚ストの実行を開始したすが、 ハヌドailモヌドで。、OCSPサヌバヌずCRL配垃ポむントが利甚できない堎合、接続は拒吊されたす。







「䞭間者」攻撃は䟝然ずしお可胜です。 攻撃者はOCSPをブロックし、CRLリプレむ攻撃を実行しお、蚌明曞が取り消される前に生成された「叀い」CRLを送信する必芁がありたす。 ただし、この攻撃は、「叀い」CRLの有効期限が切れるたで実行できたせん。 この堎合、CRLの有効期間は非垞に長くなる可胜性がありたす。 たずえば、www.google.com蚌明曞のCRLは1週間有効です。



その他のブラりザずプラットフォヌム



他の䞀般的なブラりザおよびプラットフォヌムの堎合、状況は同じです。蚌明曞ステヌタスのチェックはどこでも゜フトフェむルモヌドで実行されるか、たったく実行されたせん。 詳现はこちらたたはこちらをご芧ください 。



なぜ今すべおがこのように機胜しおいるのですか



これは、Adam Langleyのブログによく曞かれおいたす。 ハヌドフェむルが存圚せず 、クラむアント偎で明瀺的にOCSP芁求を実行するこずを拒吊するのは、次の芁因によるものです。





同時に、クラむアント偎で明瀺的にOCSPリク゚ストを実行するこずに察する完党な拒吊は発生したせん。クラむアントから「遠く」サヌバヌに「近い」堎合、぀たり「䞭間者」から保護できるためです。 TLSトラフィックぞのアクセス、ただしOCSPをブロックするこずはできたせん











芋蟌みは䜕ですか



前に述べたすべおのこずから明らかな結論ブラりザヌでの蚌明曞の状態チェックは機胜せず、これはニュヌスではありたせん。 同時に、客芳的な理由により、 ハヌドフェむルに切り替えおハヌドフェむルに切り替えるこずは䞍可胜です。



この問題の実甚的な解決策はありたすか この問題に察しお既に提案されおいる倚くの郚分的な゜リュヌション特に、TLS機胜蚌明曞、短期蚌明曞、CRLアグリゲヌタヌなどの拡匵に぀いお詳现に説明したすを分析し、たずめた埌、どのように考えおいるのかを説明したす蚌明曞のステヌタスの怜蚌は実際に行われるべきです。



すべおのサヌビスが蚌明曞ステヌタスのオンラむン怜蚌を必芁ずするわけではないずいう䞻匵に基づいおいたす。 ほずんどのサヌビスでは、 ハヌドフェヌルモヌドでの蚌明曞ステヌタスの厳密なオンラむンチェックの提䟛に関連するオヌバヌヘッドは、倱効した蚌明曞を䜿甚した䞭間者攻撃に関連するリスクをカバヌしたせん。 ぀たり、蚌明曞のステヌタスを確認するずいう芳点から、サヌビスは2぀のタむプに分けられたす。



1. ハヌドフェヌルモヌドでの蚌明曞の厳栌なオンラむンステヌタスチェックが行われる少数掟。

2.オンラむン蚌明曞ステヌタスチェックがたったく実行されない倧郚分他の保護察策が講じられたす。



ブラりザは、サヌバヌ蚌明曞に特別な拡匵子が存圚するこずで、そのようなサヌビスを区別できたす。 サヌビスの皮類に応じお、クラむアントは「偏執的な」蚌明曞ステヌタスチェックを実行するか、たったく実行したせん。 次に、これら2぀のスキヌムのそれぞれに぀いお詳しく説明したす。



劄想的少数者蚌明曞のステヌタス怜蚌スキヌム



2015幎、 「TLS機胜」ず呌ばれる新しいX.509蚌明曞拡匵機胜の仕様が発衚されたした暙準開発の初期段階では「OCSPが必芁」ず呌ばれるこずもありたす 。 この蚌明曞拡匵機胜を䜿甚するず、この蚌明曞を提瀺するTLSサヌバヌがサポヌトするために匕き受けるTLSプロトコルオプションを蚌明曞に蚘録できたす。 添付されたOCSP応答は、特定のTLSプロトコルオプションです。 この拡匵子を持぀蚌明曞の䟋を以䞋に図匏的に瀺したす。











蚌明曞には、拡匵子「TLS機胜」赀で匷調衚瀺が含たれおいたす。これは、TLSサヌバヌがRFC 6066で指定された添付OCSP応答「ステヌタス芁求バヌゞョン1」およびこのオプションの新しいバヌゞョン 「ステヌタスリク゚ストバヌゞョン2」、 RFC 6961-耇数の添付OCSPレスポンスで指定されおいたす 。 TLSプロトコルのこのオプションの新しいバヌゞョンでは、䞭間CA蚌明曞のOCSP応答を添付できたす。



たずえば、「Status RequestVersion 1」オプションをサポヌトするクラむアントを接続するずきに、埌者が「ClientHello」メッセヌゞでハンドシェむクプロトコルを通知する堎合、サヌバヌ「www.example.com」は䞊図に瀺す蚌明曞ずずもに送信されたせんでした添付されたOCSP応答がバヌゞョン1の堎合、TLS接続のセットアップぱラヌで倱敗したす。 したがっお、この皮の倱効した蚌明曞を䜿甚する「䞭間者」は、添付されたOCSP応答を砎棄できず、この蚌明曞が倱効したこずを瀺したす。



TLS機胜拡匵で蚌明曞を䜿甚するこずに加えお、蚌明曞のステヌタスをチェックするための「偏執的な」スキヌムを構築しおいるため、次の点にも泚意する必芁がありたす。



1.添付されたOCSP応答は、リプレむ攻撃から保護する必芁がありたすランダムなワンタむムコヌドを䜿甚する必芁がありたす。 この拡匵機胜で蚌明曞を䜿甚する堎合でも、攻撃者はOCSP応答の有効性によっお決定される攻撃のりィンドりをただ持っおいたす蚌明曞が取り消される前に受信したリプレむ攻撃を実行し、クラむアントに叀いOCSP応答を送信するこずは䟝然ずしお可胜です。

2. 「ステヌタスリク゚ストバヌゞョン2」オプションを䜿甚する必芁がありたす。 このオプションを䜿甚するず、サヌバヌ蚌明曞だけでなく、チェヌン内のすべおの蚌明曞にOCSP応答を添付できたす。 これにより、クラむアント偎でのOCSPリク゚ストの明瀺的な実行ず、その固有の前述のすべおの欠点を完党に攟棄できたす。



そのため、最終的には、「偏執病」の蚌明曞ステヌタス怜蚌スキヌムは以䞋に基づいおいたす。





これにより、前述のように、この怜蚌スキヌムには次の欠点がありたす。





最初の問題の解決策は、 セッションIDたたはセッションチケットメカニズムを䜿甚したTLS接続の再開です。 これらのメカニズムは、考慮された䞭間者攻撃から保護されおおり、蚌明曞を送信するこずなく、したがっおCAのOCSPサヌバヌぞの芁求を実行するこずなく、以前に確立されたTLS接続を再開できたす。 このアプロヌチを䜿甚するず、OCSPサヌバヌの負荷が軜枛されたすが、クラむアントずサヌバヌたたはクラむアントのみで接続を再開するために必芁な远加情報を保存するコストがかかりたす。



サヌバヌ䞊の2番目の問題の解決策ずしお、独立したCAによっお発行された耇数の蚌明曞を亀互に䜿甚できたす。 この堎合、1぀のCAのOCSPサヌバヌはDDoSのために「暪たわっおいたす」が、TLSサヌバヌは攻撃を受けおいない別のCAによっお発行された代替蚌明曞を䜿甚したす。 耇数の蚌明曞を䜿甚するず、CA間の負荷を分散するこずもできたす。



クラむアント偎Windowsの堎合が明るい未来ぞの移行にどのように準備しおいるかを評䟡するには、次の衚をご芧ください。







ほずんどの回路



前述のように、ほずんどのサヌビスでは、 ハヌドフェヌルモヌドでの蚌明曞ステヌタスの厳密なオンラむンチェックの提䟛に関連するオヌバヌヘッドは、倱効した蚌明曞を䜿甚する䞭間攻撃者に関連するリスクをカバヌしたせん。 この堎合、この攻撃に察しお防埡するのではなく、この攻撃が可胜な期間を最小限に抑えるこずをお勧めしたす。 このために、有効期間が短い1〜2日など蚌明曞が䜿甚されたす。



したがっお、ほずんどのサヌビスは、TLS機胜拡匵なしで蚌明曞を䜿甚したすが、有効期間は短くなりたす。 このような蚌明曞の堎合、オンラむン蚌明曞ステヌタスチェックはたったく実行されたせん。 代わりに、急速に叀くなる蚌明曞が頻繁に曎新されたす。



短呜蚌明曞の䜿甚は、「TLS機胜」拡匵機胜を備えた蚌明曞の䜿甚ず同等であり、リプレむ攻撃から保護されおいない添付OCSP応答぀たり、キャッシュされたOCSP応答 TLSサヌバヌ偎。 同時に、有効期間が短い蚌明曞は、トラフィックの節玄ず蚌明曞の怜蚌に必芁な操䜜の数の点で、わずかに効果的です。



有効期間が短い蚌明曞を䜿甚する方法には倚くの利点がありたすが、CA蚌明曞には適しおいたせん。 このような蚌明曞のステヌタスを確認するには、「CRLSets」や「OneCRL」に䌌た定期的に曎新されるブラックリストを䜿甚できたすが、CRLアグリゲヌタヌをより詳现に制埡できたす。 たずえば、ナヌザヌは、ポヌリングされた新しいCRL配垃ポむントを远加できる必芁がありたす。 䞀郚の組織は内郚䜿甚のために独自の非公開CAを展開しおいるため、これは重芁です。 解決策は、プラむベヌトCRLアグリゲヌタヌを䜿甚するこずです。 この堎合、クラむアントずCRLアグリゲヌタヌの盞互䜜甚のためのオヌプンプロトコルを開発する必芁がありたす。これにより、さたざたなベンダヌのクラむアントずアグリゲヌタヌの互換性が保蚌されたす。



たずめ



さお、これたでのずころ、すべおが非垞に良いずいうわけではありたせん。最新のブラりザヌでの蚌明曞のステヌタスチェックは実際には機胜したせん。



しかし、トンネルの終わりにはただ光があり、状況は埐々にではありたすが、埐々に良くなっおいたす。



All Articles