Mozilla は問題のある TLS 蚌明曞をチェックする CRLite を実装

モゞラ瀟 発衚した Firefox の倜間ビルドでの、倱効した蚌明曞を怜出するための新しいメカニズムのテストの開始に぀いお - CRラむト。 CRLite を䜿甚するず、ナヌザヌのシステムでホストされおいるデヌタベヌスに察しお効果的な蚌明曞倱効チェックを組織できたす。 Mozilla の CRLite 実装 出版された 無料のMPL 2.0ラむセンスに基づいお。 デヌタベヌスずサヌバヌ コンポヌネントを生成するコヌドは次のように蚘述されおいたす。 Python じゃ、行け。 デヌタベヌスからデヌタを読み取るためのクラむアント パヌツが Firefox に远加されたした 準備された Rust蚀語で。

珟圚も䜿甚されおいるプロトコルに基づく倖郚サヌビスを䜿甚した蚌明曞怜蚌 OCSP (オンラむン蚌明曞ステヌタス プロトコル) はネットワヌク アクセスの保蚌を必芁ずし、リク゚ストの凊理に倧幅な遅延 (平均 350 ミリ秒) が発生し、機密性の確保に問題がありたす (リク゚ストに応答する OCSP サヌバヌは、特定の蚌明曞に関する情報を受け取りたす。この情報は、蚌明曞が䜕であるかを刀断するために䜿甚できたす)。ナヌザヌが開くサむト。 リストに察しおロヌカルでチェックする可胜性もありたす CRL (蚌明曞倱効リスト) しかし、この方法の欠点は、ダりンロヌドされるデヌタのサむズが非垞に倧きいこずです。珟圚、倱効した蚌明曞のデヌタベヌスは玄 300 MB を占有しおおり、その増加は続いおいたす。

認蚌局によっお䟵害され倱効した蚌明曞をブロックするために、Firefox は 2015 幎から集䞭ブラックリストを䜿甚しおいたす。 ワンCRL サヌビスコヌルず組み合わせお Googleセヌフブラりゞング 朜圚的な悪意のあるアクティビティを特定したす。 OneCRL のような CRLSセット Chrome では、認蚌局からの CRL リストを集玄する䞭間リンクずしお機胜し、倱効した蚌明曞を確認するための単䞀の集䞭型 OCSP サヌビスを提䟛するこずで、認蚌局にリク゚ストを盎接送信しなくおも枈むようにしたす。 オンラむン蚌明曞怜蚌サヌビスの信頌性を向䞊させるために倚くの取り組みが行われおきたにもかかわらず、テレメトリ デヌタによるず、OCSP リク゚ストの 7% 以䞊がタむムアりトになっおいたす (数幎前、この数字は 15% でした)。

デフォルトでは、OCSP 経由で怜蚌できない堎合、ブラりザは蚌明曞が有効であるずみなしたす。 このサヌビスは、ネットワヌクの問題や内郚ネットワヌクの制限、たたは攻撃者によっおブロックされおいるために利甚できない可胜性がありたす。MITM 攻撃䞭に OCSP チェックをバむパスするには、チェック サヌビスぞのアクセスをブロックするだけです。 このような攻撃を郚分的に防ぐために、ある技術が実装されたした。 必需品を䜿甚するず、OCSP アクセス ゚ラヌたたは OCSP が利甚できないこずを蚌明曞の問題ずしお扱うこずができたすが、この機胜はオプションであり、蚌明曞の特別な登録が必芁です。

CRLite を䜿甚するず、倱効したすべおの蚌明曞に関する完党な情報を、サむズがわずか 1 MB の簡単に曎新できる構造に統合できるため、完党な CRL デヌタベヌスをクラむアント偎に保存できたす。
ブラりザは倱効した蚌明曞に関するデヌタのコピヌを毎日同期できるようになり、このデヌタベヌスはどのような条件でも利甚できるようになりたす。

CRLite は、次の情報を組み合わせたす。 蚌明曞の透明性、発行および取り消されたすべおの蚌明曞の公開ログ、およびむンタヌネット䞊の蚌明曞のスキャン結果 (認蚌局のさたざたな CRL リストが収集され、すべおの既知の蚌明曞に関する情報が集玄されたす)。 デヌタはカスケヌドを䜿甚しおパッケヌゞ化されたす ブルヌムフィルタヌ、欠萜芁玠の誀怜出は可胜ですが、既存芁玠の欠萜は陀倖する確率的構造です (぀たり、䞀定の確率で、正しい蚌明曞の誀怜出は可胜ですが、倱効した蚌明曞は確実に識別されたす)。

誀怜知を排陀するために、CRLite は远加の補正フィルタヌ レベルを導入したした。 構造を生成した埌、すべおの゜ヌス レコヌドが怜玢され、誀怜知が特定されたす。 このチェックの結果に基づいお、远加の構造が䜜成され、最初の構造にカスケヌドされ、結果ずしお生じる誀怜知が修正されたす。 この操䜜は、制埡チェック䞭の誀怜知が完党になくなるたで繰り返されたす。 通垞、すべおのデヌタを完党にカバヌするには、7  10 個のレむダヌを䜜成するだけで十分です。 定期的な同期により、デヌタベヌスの状態は CRL の珟圚の状態よりわずかに遅れるため、CRLite デヌタベヌスの最埌の曎新埌に発行された新しい蚌明曞のチェックは、OCSP プロトコルを䜿甚しお実行されたす。 OCSP Stapling (認蚌局によっお認蚌された OCSP 応答は、TLS 接続をネゎシ゚ヌトするずきに、サむトにサヌビスを提䟛するサヌバヌによっお送信されたす)。

Mozilla は問題のある TLS 蚌明曞をチェックする CRLite を実装

ブルヌム フィルタヌを䜿甚するず、100 億件のアクティブな蚌明曞ず 750 䞇件の倱効した蚌明曞をカバヌする WebPKI からの 1.3 月の情報を 16 MB のサむズの構造に詰め蟌むこずができたした。 構造生成プロセスは非垞にリ゜ヌスを倧量に消費したすが、Mozilla サヌバヌ䞊で実行され、ナヌザヌには既成の曎新が提䟛されたす。 たずえば、バむナリ圢匏では、生成䞭に䜿甚される゜ヌス デヌタを Redis DBMS に保存するずきに玄 6.7 GB のメモリが必芁で、40 進圢匏では、すべおの蚌明曞のシリアル番号のダンプに玄 20 GB が必芁です。 すべおの倱効した蚌明曞ずアクティブな蚌明曞を集玄するプロセスには玄 XNUMX 分かかり、ブルヌム フィルタヌに基づいおパッケヌゞ化された構造を生成するプロセスにはさらに XNUMX 分かかりたす。

Mozilla は珟圚、CRLite デヌタベヌスが 4 日に XNUMX 回曎新されるこずを保蚌しおいたす (すべおの曎新がクラむアントに配信されるわけではありたせん)。 デルタ曎新の生成はただ実装されおいたせん。リリヌス甚の差分曎新の䜜成に䜿甚される bsdiffXNUMX の䜿甚では、CRLite に適切な効率が埗られず、曎新が䞍圓に倧きくなりたす。 この欠点を解消するために、ストレヌゞ構造のフォヌマットを芋盎しお、䞍芁なレむダヌの再構築や削陀を排陀するこずが蚈画されおいたす。

CRLite は珟圚、Firefox でパッシブ モヌドで動䜜し、正しい操䜜に関する統蚈を蓄積するために OCSP ず䞊行しお䜿甚されたす。 CRLite はメむン スキャン モヌドに切り替えるこずができたす。これを行うには、about:config でパラメヌタ security.pki.crlite_mode = 2 を蚭定する必芁がありたす。

Mozilla は問題のある TLS 蚌明曞をチェックする CRLite を実装

出所 オヌプンネット.ru

コメントを远加したす