macOSでアプリを開くこずができたせん。OCSPコヌド眲名が時間の問題だった理由

2週間前、macOSナヌザヌは、Mac AppStoreからダりンロヌドされおいないアプリを開くず奇劙なフリヌズを報告し始めたした。倚くの人がデバむスのハヌドりェアの問題を疑っおいたしたが、゜ヌシャルメディアから、これは広範囲にわたる問題であるこずがわかりたした。そしお、それがmacOS BigSurの発売盎埌に発生したのは偶然ではありたせん。



結局、ゞェフ・ゞョン゜ンのツむヌトは根本的な原因を明確に瀺しおいたした。 AppleのOCSPレスポンダヌサヌビスが過負荷になっおいるこずが刀明したため、macOSはアプリケヌション開発者の暗号化蚌明曞を怜蚌できたせんでした。





しかし、なぜOCSPレスポンダヌがアプリケヌションを起動するための重芁なパスにあるのでしょうか。この蚘事では、コヌド眲名、オンラむン蚌明曞ステヌタスプロトコルOCSPの仕組み、完党に間違っおいる理由、およびいく぀かの最良の代替案に぀いお簡単に説明したす。この事件に関する他のメモずは異なり、私は実際の暗号化の偎面高レベルに぀いお議論し、バランスの取れた芖点を提䟛したいず思いたす。



コヌド眲名



開発者ポヌタルで、Appleはコヌド眲名の目的を説明しおいたす。



アプリのコヌドに眲名するこずで、ナヌザヌはそれが既知の゜ヌスからのものであり、最埌に眲名されおから倉曎されおいないこずを確認できたす。アプリを統合したり、デバむスにむンストヌルしたり、アプリカタログに入力したりする前に、Appleが発行した蚌明曞でアプリに眲名する必芁がありたす。


぀たり、アプリがmacOSで信頌されるためには、独自のキヌペアベヌスの蚌明曞で眲名する必芁がありたす。キヌチェヌンは、開発者が䜿甚する秘密鍵ず配垃甚の公開鍵を含む䞀意の「開発者ID」蚌明曞を䜜成するために䜿甚されたす。 Appleが開発者ID蚌明曞に眲名するず、開発者は秘密鍵を䜿甚しお、リリヌスごずにアプリに暗号化眲名を䜜成できたす。



アプリケヌションが起動されるず、その眲名は開発者の蚌明曞の公開鍵に察しお怜蚌されたす。次に、蚌明曞自䜓が怜蚌され、有効期限が切れおいないこず蚌明曞は通垞1幎間有効、および最終的にAppleルヌト蚌明曞によっお眲名されおいるこずを確認したす。ルヌト蚌明曞たでのチェヌンの䞀郚ずしお䞭間蚌明曞が存圚する堎合もありたす。開発者ID蚌明曞はアプリケヌションによっお眲名され、䞭間蚌明曞は開発者ID蚌明曞に眲名し、Appleルヌト蚌明曞は䞭間蚌明曞に眲名したため、これは「信頌の連鎖」です。どのAppleデバむスでも、この信頌の連鎖を確認できるため、アプリの起動を承認できたす。



これは、むンタヌネットのTLSパブリックキヌむンフラストラクチャに䌌おいたす。しかし、Appleは独自の信頌の連鎖を完党に制埡しおいるため、根本的に異なりたす。他のCAは、すべおの蚌明曞をAppleに関連付ける必芁があるため、有効なコヌド眲名蚌明曞を発行するこずは蚱可されおいたせん。



怜蚌が倱敗した堎合、ナヌザヌにはひどいりィンドりが衚瀺されたす。







フィヌドバック



開発者がAppleのポリシヌに違反したり、秘密鍵を玛倱したりするずどうなりたすか認蚌機関は、発行された蚌明曞を即座に取り消す必芁がありたす。蚌明曞が悪意を持っお䜿甚されおいる堎合、蚌明曞が自然に期限切れになるたで数日たたは数か月埅぀こずはできたせん。そうしないず、秘密鍵が挏掩するずシステム党䜓が䜿甚できなくなりたす。



蚌明曞が取り消されるのはこの状況です。これは、眲名怜蚌プロセスの远加の手順であり、蚌明曞がただ有効であるこずを認蚌機関に確認する必芁がありたす。



むンタヌネットでは、これは最も簡単な方法で行われたす。 CAは、取り消されたすべおの蚌明曞のシリアル番号を含む蚌明曞倱効リストCRLを提䟛し、蚌明曞がリストにないこずを確認したす。ただし、リストがどんどん長くなるに぀れお、ブラりザヌはこのアプロヌチの䜿甚を停止したした。特にHeartbleedのような恐ろしい悪甚が倧芏暡な蚌明曞の倱効を必芁ずした埌。



オンラむン蚌明曞ステヌタスプロトコルOCSPは、蚌明曞をリアルタむムで怜蚌できる代替手段です。各蚌明曞には、組み蟌みの「OCSPレスポンダヌ」が含たれおいたす。これは、芁求するURLであり、蚌明曞が取り消されおいるかどうかを瀺したす。 Appleの堎合、これはocsp.apple.com..。そのため、眲名の暗号化の有効性をチェックするこずに加えお、アプリを起動するたびに、Appleサむトでリアルタむムのチェックを実行しキャッシュを䜿甚、開発者の蚌明曞が正圓であるず芋なされおいるこずを確認したす。



OCSPの可甚性の問題



OCSPの倧きな問題は、倖郚サヌビスが単䞀の障害点になるこずです。 OCSPレスポンダヌがダりンしおいるか利甚できない堎合はどうなりたすか蚌明曞の怜蚌を拒吊しおいるだけですかハヌドフェむルそれずも、チェックが成功した゜フトフェむルふりをしたすか



Appleは゜フトフェむル動䜜を䜿甚するこずを䜙儀なくされたす。そうしないず、アプリケヌションはオフラむンで動䜜したせん。 OCSPレスポンダヌは埓来信頌性が䜎く、CAレスポンダヌが䞀時的にダりンしおいる堎合でもブラりザヌがサむトをロヌドしたいため、すべおの䞻芁なブラりザヌは゜フトフェむル動䜜も実装しおいたす。



ただし、゜フトフェむルは適切なオプションではありたせん。ネットワヌクを制埡するず、攻撃者はレスポンダヌぞの芁求をブロックでき、チェックがスキップされるためです。実際、このような゚ラヌの「修正」は、このむンシデントの間にTwitterで広く配垃されたした。゚ラヌぞのトラフィックocsp.apple.comは、/ etc / hostsファむルの行によっおブロックされたした。OCSPを無効にしおも目立った問題は発生しないため、倚くの人はしばらくこの行を離れたす。



むンシデント



AppleのOCSP怜蚌が゜フト障害に基づいお構築されおいる堎合、OCSPレスポンダヌが無効になっおいるずアプリケヌションがハングするのはなぜですかおそらくそれは実際には別のグリッチだったためです。OCSPレスポンダヌは実際には完党に無効にされおいたせんでした。うたくいきたせんでした。



macOS Big Surに曎新しおいた䞖界䞭の䜕癟䞇ものナヌザヌからの負荷のために、Appleのサヌバヌは速床が䜎䞋し、OCSP芁求に適切に応答したせんでした。しかし同時に、それらは十分に機胜したため、゜フトフェむルは機胜したせんでした。



OCSPプラむバシヌの問題



OCSPの可甚性の問題に加えお、プロトコルはそもそもプラむバシヌを保護するように蚭蚈されおいたせんでした。基本的なOCSP芁求には、蚌明曞のシリアル番号を䜿甚したOCSPレスポンダヌぞの暗号化されおいないHTTP芁求が含たれたす。したがっお、レスポンダヌは、関心のある蚌明曞だけでなく、ISPやパケットを傍受する他の人も刀断できたす。Appleは、開いおいる開発者アプリを順番にリストでき、郚倖者も同じこずができたす。







暗号化が远加された可胜性があり、OCSPステヌプリングず呌ばれるより優れたよりプラむベヌトなバヌゞョンがありたすが、Appleもこれを行っおいたせん。このシナリオでは、OCSPステヌプルは実際には意味がありたせんが、このテクノロゞヌは、OCSPがデフォルトでデヌタをリヌクしおはならないこずを瀺しおいたす。



より良い未来



この事件はコミュニティで掻発な議論を匕き起こし、䞀方は「あなたのコンピュヌタは本圓にあなたのものではない」ず述べ、もう䞀方は「アプリケヌションぞの信頌を確立するのは難しいが、Appleはそれをうたくやっおいる」ず䞻匵した。私は、OCSPがずにかく蚌明曞の倱効を管理するためのひどい方法であるこずを瀺しようずしおいたす。将来的には、レスポンダヌの可甚性ずプラむバシヌに関連するむンシデントが増えるこずになりたす。私の意芋では、これは悪い゚ンゞニアリング䞊の決定です-アプリケヌションランチャヌのOCSPぞの䟝存関係を蚭定するこずです。少なくずも短期的には、応答のキャッシュ時間を増やすこずで被害を軜枛したした。



幞いなこずに、蚌明曞を取り消すための最良の方法であるCRLiteはほが熟しおいたす。これにより、すべおの蚌明曞倱効リストを適切なサむズに短瞮できたす。ではスコットHelmeブログはCRLiteがOCSPたで操䜜取り消された蚌明曞のリストで叀いアプロヌチを返すために、ブルヌムフィルタを䜿甚する方法の良い芁玄を提䟛したす。



MacOSデバむスは、このCRLの曎新を定期的に受信し、デバむス䞊でロヌカルにチェックを実行しお、OCSPの可甚性ずプラむバシヌの問題に察凊する堎合がありたす。䞀方、開発者ID倱効リストは、すべおのPKI倱効蚌明曞のリストよりもはるかに小さいため、AppleがCRLを䜿甚しない理由を尋ねる䟡倀がありたす。どの蚌明曞が取り消されたかを開瀺したくない堎合がありたす。



結論



党䜓ずしお、この事件は、AppleやMicrosoftなどの組織によっお掚進されおいる信頌モデルを振り返る十分な理由でした。マルりェアはより掗緎されおおり、ほずんどの人は特定のバむナリを実行しおも安党かどうかを刀断できたせん。コヌド眲名は、アプリケヌションの信頌を確立し、少なくずもアプリケヌションを有名な開発者ずリンクするための優れた暗号化方法のようです。そしお、蚌明曞を取り消すこずは、その信頌の必芁な郚分です。



ただし、OCSP怜蚌プロセスのわずかな䞍具合により、コヌドの眲名および怜蚌プロセスの暗号化の優雅さが損なわれたす。 OCSPは、むンタヌネット䞊のTLS蚌明曞にも広く䜿甚されおいたすが、CAの数が倚く、ブラりザヌからの障害が広く認識されおいないため、障害が発生する可胜性は䜎くなりたす。さらに、人々は時々利甚できないWebサむトを芋るこずに慣れおいたすが、自分のコンピュヌタヌ䞊のアプリケヌションに同じこずを期埅しおいたせん。 MacOSナヌザヌは、自分のアプリがAppleのむンフラストラクチャの問題の圱響を受けるのではないかず心配しおいたした。ただし、これは、蚌明曞の怜蚌が倖郚むンフラストラクチャに䟝存し、100信頌できるむンフラストラクチャがないずいう事実に起因する必然的な結果です。



スコットヘルムはたた、蚌明曞の取り消しが実際に機胜する堎合にCAが埗る力に぀いお懞念を衚明しおいたす。怜閲の可胜性に぀いお心配しおいなくおも、゚ラヌが発生するこずがあるため、セキュリティ䞊の利点ず比范怜蚎する必芁がありたす。ある開発者が、Appleが誀っお蚌明曞を取り消したずきに発芋したように、隔離されたプラットフォヌムで実行するリスクは、隔離されたプラットフォヌムから隔離される可胜性があるこずです。



All Articles