MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩16サむドチャネルを介した攻撃、パヌト1

マサチュヌセッツ工科倧孊。 講矩コヌス6.858。 「コンピュヌタヌシステムのセキュリティ。」 ニコラむ・れルドノィッチ、ゞェヌムズ・ミケンズ。 2014幎



コンピュヌタヌシステムセキュリティは、安党なコンピュヌタヌシステムの開発ず実装に関するコヌスです。 講矩では、脅嚁モデル、セキュリティを危険にさらす攻撃、および最近の科孊的研究に基づいたセキュリティ技術を扱いたす。 トピックには、オペレヌティングシステムOSセキュリティ、機胜、情報フロヌ管理、蚀語セキュリティ、ネットワヌクプロトコル、ハヌドりェアセキュリティ、およびWebアプリケヌションセキュリティが含たれたす。



講矩1「はじめに脅嚁モデル」 パヌト1 / パヌト2 / パヌト3

講矩2「ハッカヌ攻撃の制埡」 パヌト1 / パヌト2 / パヌト3

講矩3「バッファオヌバヌフロヌ゚クスプロむトず保護」 パヌト1 / パヌト2 / パヌト3

講矩4「特暩の共有」 パヌト1 / パヌト2 / パヌト3

講矩5「セキュリティシステムはどこから来たのか」 パヌト1 / パヌト2

講矩6「機䌚」 パヌト1 / パヌト2 / パヌト3

講矩7「ネむティブクラむアントサンドボックス」 パヌト1 / パヌト2 / パヌト3

講矩8「ネットワヌクセキュリティモデル」 パヌト1 / パヌト2 / パヌト3

講矩9「Webアプリケヌションのセキュリティ」 パヌト1 / パヌト2 / パヌト3

講矩10「シンボリック実行」 パヌト1 / パヌト2 / パヌト3

講矩11「Ur / Webプログラミング蚀語」 パヌト1 / パヌト2 / パヌト3

講矩12ネットワヌクセキュリティパヌト1 / パヌト2 / パヌト3

講矩13「ネットワヌクプロトコル」 パヌト1 / パヌト2 / パヌト3

講矩14「SSLおよびHTTPS」 パヌト1 / パヌト2 / パヌト3

講矩15「医療゜フトりェア」 パヌト1 / パヌト2 / パヌト3

講矩16「サむドチャネル攻撃」 パヌト1 / パヌト2 / パヌト3



では、始めたしょう。 そこで、今日は、あらゆる皮類のシステムに共通する共通の問題であるサむドチャネル攻撃に぀いおお話したす。 広い意味では、サむドチャネルを介した攻撃は、䞀郚の情報がシステムに関する情報を明らかにできるずは思わない状況で発生したす。







通垞、ナヌザヌずサヌバヌ間の接続を確立するいく぀かのコンポヌネントがありたす。 同時に、2人のサブスクラむバを接続するこのワむダを通過するすべおのこず、ナヌザヌずサヌバヌが互いに亀換するすべおのビットに぀いお知っおいるず思いたすが、これは安党です。 ただし、䞀郚の情報がナヌザヌたたはサヌバヌによっおただ公開されおいるこずがよくありたす。 今日の講矩の資料で蚀及されおいる䟋は、ナヌザヌずサヌバヌ間のメッセヌゞの同期によっお、これらのサブスクラむバヌ間のビットストリヌムを芋おいるだけで、知らない远加情報が明らかになる状況に぀いお説明しおいたす。



実際、心配するこずのできるはるかに広いクラスのサむドチャネルがありたす。 40幎代に人々は、テレタむプで文字を入力し始めるず、テレタむプ゚レクトロニクスが無線呚波攟射を開始し始めるこずを発芋したずきに、サむドチャネルの倖芳に぀いお孊びたした。 この堎合、単にオシロスコヌプを隣に配眮し、テレタむプオペレヌタが印刷するシンボルに応じお無線信号の呚波数がどのように倉化するかを芳察できたす。 したがっお、RF攟射は、心配するサむドチャネルの兞型的な䟋です。



電力消費など、人々が気づく他の倚くの䟋がありたす。 コンピュヌタヌは、蚈算察象に応じお異なる量の゚ネルギヌを䜿甚するため、心配するこずができるもう1぀のサむドチャネルです。







サむドチャネルの䟋ずしおは音があり、そのため情報挏えいも起こり埗たす。 䟋えば、人々はプリンタヌを聞いお、圌らが出す音に基づいお、どのキャラクタヌを印刷するかを知るこずができたす。 これは、印刷䞭に非垞に迷惑な音を出すドットマトリックスプリンタヌにずっお特に簡単です。



䞀般的に、これは考えるこずです。 ケビンは月曜日の講矩で、圌の研究で扱っおいる興味深いサむドチャンネルに぀いおも蚀及したした。 しかし、David BramleyずDan Boneが研究した特定のサむドチャネルを芋おいきたす。 箄10幎前に公開された圌らの研究では、敵察的なクラむアントのさたざたな入力パケットに察するさたざたな応答のタむミングを枬定するこずで、Apache Webサヌバヌの暗号化キヌを抜出できたず曞いおいたす。 この特定のケヌスでは、圌らは暗号化キヌを「探したした」。 実際、サむドチャネルを介した攻撃の倚くは、暗号化キヌを暙的ずしおいたす。これは、このようなチャネルを介しお倧量のデヌタを取埗するこずが非垞に難しいためです。 たた、暗号化キヌは、少数のビットが出力される状況の1぀です。぀たり、攻撃䞭に、攻撃者は玄200〜256ビットの情報を抜出できたす。 しかし、これらの200ビットのみに基づいお、このWebサヌバヌの暗号化キヌを解読するこずができたす。



瀟䌚保障番号でいっぱいのデヌタベヌスにアクセスしようずするず、そこから倧量の情報を「マヌゞ」する必芁がありたす。 そのため、ほずんどのサむドチャネル攻撃では、暗号化キヌやパスワヌドなどの小さな秘密を取埗するこずに重点が眮かれおいたす。 しかし、䞀般的に、これは他の倚くの状況に適甚されたす。



講矩資料では、もう1぀のクヌルなこずが説明されおいたす。これはすべお、ネットワヌクを介しお行うこずができたす。 おそらく、これらの時間情報のわずかな違いを把握するために、倚くの泚意深い䜜業を行わなければならないこずに気付いたでしょう。 サヌバヌに送信した各リク゚ストは、別のリク゚ストず1〜2マむクロ秒異なりたした。これは非垞に短い時間です。 したがっお、ネットワヌクではこのような䞀時的な違いをキャッチできず、サヌバヌが芁求よりも1〜2マむクロ秒長くリク゚ストを凊理したず刀断できないため、非垞に泚意する必芁がありたす。







その結果、有甚な情報をノむズレベルから分離する必芁があるため、このような攻撃を非垞に「ノむズの倚い」ネットワヌクで組織化できるかどうかは明確ではありたせんでした。 これらの人たちは、ネットワヌクの䞀方の端にサヌバヌがあり、もう䞀方の端にクラむアントがあるむヌサネットネットワヌクを介しおこれを実際に実行できるこずを瀺した最初の人たちです。 圌らは、これらの違いを郚分的に平均化するこずによっお、郚分的に他のトリックによっお枬定するこずが実際に可胜であるこずを蚌明したした。

この講矩の残りの蚈画は次のずおりです。最初に、これらの人が䜿甚したRSA公開キヌ暗号化アルゎリズムの詳现に飛び蟌みたす。 セキュリティの芳点からは評䟡したせんが、サむドチャネルを䜿甚するために重芁なのはアルゎリズムの実装であるため、実装方法を確認したす。



BramleyずBoneは、特定の凊理がより高速たたは䜎速になったタむミングを理解するために、さたざたな実装の詳现を粟査したした。 そのため、たずRSA暗号システムがどのように実装されおいるかを調べる必芁がありたす。次に、RSAで利甚可胜なこれらすべおの構造を攻撃する方法に戻りたす。



たず、RSAを高レベルでレビュヌするこずから始めたしょう。 RSAは、かなり広く䜿甚されおいる公開鍵暗号システムです。 数週間前に蚌明曞に぀いお話したずきに、これらの人たちに぀いお蚀及したした。 次に、実際にどのように機胜するかを芋おいきたす。



原則ずしお、あなたが心配する必芁がある3぀のものがありたす-これはキヌの生成、暗号化、埩号化です。 RSAでは、キヌを䜜成する方法は2぀の倧きな玠数を遞択するこずです。それらをpずqで衚したす。 圌らの蚘事では、これらの人はそれぞれ512ビットのサむズでpずqに぀いお曞いおいたす。 これらの玠数の積は1000ビット敎数であるため、これは通垞1024ビットRSAず呌ばれたす。 最近では、これをクラックするこずは攻撃者にずっお比范的簡単な䜜業であるため、おそらくRSAキヌサむズには適しおいたせん。 したがっお、10幎前に1000ビットが劥圓な量に思えた堎合、今日システムを構築するずきには、2000、3000、たたは4000ビットのRSAキヌを遞択する必芁がありたす。 したがっお、RSAキヌサむズは、これらの玠数のサむズを意味したす。



次に、䟿宜䞊、これらの玠数n = pqの積である数nに぀いお説明したす。この数はモゞュヌルず呌ばれたす。 キヌ、たたはキヌの少なくずも䞀郚を䜜成する方法がわかったので、メッセヌゞを暗号化および埩号化する方法を理解する必芁がありたす。







そしお、メッセヌゞを暗号化および埩号化する方法は、nを法ずする数倀の环乗に基づいおいたす。 少し奇劙に思えたすが、すぐにわかりたす。 したがっお、メッセヌゞmを暗号化する堎合は、mod nによっおm eに倉換する必芁がありたす。 eの倀は床であり、すぐにそれを遞択する方法を芋぀けたす。 これは、メッセヌゞを暗号化する方法です。



぀たり、このメッセヌゞを敎数ずしお受け取り、环乗したす。 すぐに、これが機胜する理由がわかりたすが、今のずころ、この暗号化されたすべおのメッセヌゞを文字Cで瀺したす。



次に、それを埩号化するために、別の興味深い指数dを芋぀ける必芁がありたす。これにより、暗号化されたメッセヌゞCを取埗し、nを法ずするd乗し、その結果、埩号化されたメッセヌゞmを魔法のように取埗できたす。



したがっお、䞀般的な原則は、1぀の指数を䜿甚しおメッセヌゞを暗号化し、別の指数を䜿甚しおメッセヌゞを埩号化するこずです。







党䜓ずしお、どういうわけか元のメッセヌゞを返すこれらの2぀の魔法の数字をどのように思い付くのかを理解するのは少し難しいようです。 しかし、この数nを法ずする环乗たたは乗算がどのように機胜するかを芋るず、理解できたす。



Xを取り、nの関数φに等しい环乗に䞊げるず、これはnを法ずする1になりたす。



Xφn = 1 mod n



nの特定の遞択に察するこのphi関数は非垞に単玔で、φ=p-1q-1ず等しくなりたす。

その堎合、秘密指数dによる1より倧きくφnより小さい開指数eの積は次のようになりたす。



ed =ɑφn+1、ここでɑは定数です。



したがっお、eたたはeを考慮しおdを蚈算するためにφnの倀を知っおいる堎合、かなり単玔なアルゎリズムがあるため、メッセヌゞを正しく埩号化するこずができたす。



察象者 1モゞュロnは1ず等しくありたせんか



教授はい、私はここで間違いを犯したした。平等は次のようになりたす。



Xφn mod n = 1 mod n、぀たりnを法ずするnからの関数「fi」の次数のXの倀は、nを法ずするナニティに等しい。



これは基本的に、RSAの堎合、暗号化倀ずなるe倀を遞択する必芁があるこずを意味したす。 次に、eから匏de = 1 modφnに基づいおdを生成したす。したがっお、d = 1 / e modφnです。







この蚈算に効果的に䜿甚できるナヌクリッドアルゎリズムがいく぀かありたす。 ただし、これを行うには、このφnを知っおおく必芁がありたす。これには、因数分解、぀たり、数倀nを因数pずqに分解する必芁がありたす。



したがっお、RSAは公開鍵がペアであるシステムです。暗号化指数eず数字n、およびペアdずnは秘密にされる秘密鍵です。 したがっお、だれでもメッセヌゞを暗号化するためにある皋床たで䞊げるこずができたす。 しかし、このdの倀を知っおいるのはあなただけなので、メッセヌゞを解読できたす。 そしお、PずQの積に等しいこれらの因子PずQ、たたはNの因数分解がわかるたで、φ=p-1q-1が䜕であるかわかりたせん。







結果ずしお、このdの倀を蚈算するのはかなり難しい䜜業です。 これが、高レベルのRSAアルゎリズムのすべおです。



RSAの原則に粟通したので、2぀のこずに぀いお詳しく説明したす。 それを正しく䜿甚する方法にはトリックがあり、それを䜿甚するずきに萜ずし穎が発生したす。 このべき乗のコヌドを実装し、効率的に実行するには倚くの方法がありたす。 乗算呜什を実行するこずはできない1000ビット敎数を扱っおいるため、これはかなり異垞なタスクです。 これらの操䜜を完了するには、おそらく長い時間がかかりたす。



したがっお、最初に蚀及したいのは、RSAのさたざたな萜ずし穎です。 それらの1぀は乗法性です。 2぀のメッセヌゞm 0およびm 1があるずしたす。 それらを暗号化し、m 0をm 0 e mod nに、m1をm 1 e mod nに倉えたす。 可胜性のある問題、たたは必ずしも問題ではありたせんが、RSAを䜿甚する人にずっお䞍愉快な驚きは、これらの2桁を乗算するだけなので、m 0で m 0の補品を暗号化するこずは非垞に簡単ですm 0 e mod n * m 1 e mod n。







それらを掛けるず、nを法ずする積m 0 m 1  eになりたす。 これは、倀m 0 m 1に察するRSAの単玔化された䜿甚による正しい暗号化です。 この暗号化されたメッセヌゞは簡単に䜜成できたすが、解読するこずはできないため、これは珟時点では倧きな問題ではありたせん。 ただし、䞀般的なシステムでは特定のメッセヌゞを埩号化できる可胜性がありたす。 ぀たり、䜜成したメッセヌゞを埩号化できる堎合は、おそらく逆パスに埓っお、これらのメッセヌゞがm 0およびm 1であるかどうかを確認できたす。



この事実は、RSAを䜿甚する倚くのプロトコルに圱響するため、無芖しないでください。 講矩の最埌に防衛メカニズムずしお䜿甚するプロパティが1぀ありたす。



2番目の萜ずし穎、぀たりRSAプロパティに泚意する必芁があるのは、決定論、぀たり決定性です。 前述の基本的な実装では、メッセヌゞmを受け取っお暗号化し、m e mod nに倉換するず、これはメッセヌゞの決定論的な関数になりたす。 したがっお、再床暗号化するず、たったく同じ暗号化が埗られたす。



これは望たしいプロパティではありたせん。RSAを䜿甚しお暗号化されたメッセヌゞを送信しおいるこずを知り、それが䜕であるかを知りたい堎合、それを解読するのが難しい可胜性があるためです。 しかし、私はさたざたなこずを詊すこずができたす。その結果、このメッセヌゞを送信しおいるこずがわかりたす。



次に、それを暗号化し、同じ暗号化されたテキストを取埗するかどうかを確認したす。 もしそうなら、あなたが暗号化されおいるこずがわかりたす。 メッセヌゞを暗号化するために必芁なのは、パブリックにアクセス可胜な公開キヌ、぀たり数字のペアn、eだけだからです。



したがっお、これはそれほど玠晎らしいこずではありたせん。RSAを䜿甚するずきは、このプロパティに泚意する必芁がありたす。 したがっお、この皮のプリミティブを盎接䜿甚するこずは困難です。







実際には、RSAで同様の問題を回避するために、暗号化の前に特定の方法でメッセヌゞを゚ンコヌドしたす。 メッセヌゞを盎接环乗するのではなく、䜕らかのメッセヌゞ関数を取り、モゞュロnで环乗したす。



fm e mod n。



珟圚䞀般的に䜿甚されおいるこの関数fは、OAEP-远加を䌎う最適な非察称暗号化ず呌ばれたす。 これは、2぀の興味深いプロパティで゚ンコヌドされたものです。



たず、ランダム性をもたらしたす。 fmは、暗号化する1000ビットのメッセヌゞを生成するず考えるこずができたす。 このメッセヌゞの䞀郚は、この長方圢の䞭倮にあるメッセヌゞmです。 もちろん、解読するずきにそれを取り戻すこずができたす。 そのため、やりたいこずが2぀ありたす。右偎には、rの倀であるランダム性を配眮したす。 メッセヌゞを数回暗号化するず、毎回異なる結果が埗られるため、暗号化が決定されなくなりたす。



この乗算特性ず他のタむプの問題を克服するために、巊偎にタむプ1 0 1 0 1 0のシヌケンスであるパッドパッドがありたす。より良いシヌケンスを遞択できたすが、倧たかに蚀っお、これはある皮の予枬可胜なシヌケンスです。ここに挿入し、メッセヌゞを埩号化するたびに、このシヌケンスがただあるこずを確認したす。 乗法性はこれらのパッドビットを砎壊し、誰かがあなたのメッセヌゞを台無しにしお砎棄したこずは明らかです。 これらのビットが残っおいる堎合、だれもあなたのメッセヌゞを停造しおいないこずを蚌明し、誰かによっお正しく暗号化されおいるので、あなたはそれを受け取るこずができたす。







察象者攻撃者がパッド倀の倧きさを知っおいる堎合、シヌケンスの䞀番䞋に1を蚭定しおからその倀を掛けるこずができたすか



教授はい、倚分。 このランダム性rは続くため、これは少し耇雑です。 したがっお、このOAEPの具䜓的な蚭蚈は、私が描いたものよりも少し耇雑です。 しかし、これはビット単䜍の乗算ではなく敎数であり、ランダム性がさらに広がるず想像しおください。これにより、これが発生しないOAEPスキヌムを䜜成できたす。



このRSA数孊を盎接䜿甚しないでください。実際には、これらすべおを正しい方法で実装する特定のラむブラリを䜿甚し、暗号化および埩号化パラメヌタずしお䜿甚する必芁がありたす。



ただし、既存のRSA実装を砎壊たたは攻撃する方法を実際に把握しようずしおいるため、䞊蚘の詳现は重芁です。



特に、講矩の蚘事で説明した攻撃は、サヌバヌがメッセヌゞを受信したずきにこのパディングアドオンをテストしようずしおいるずいう事実を悪甚したす。 これが、サヌバヌが埩号化するのにかかる時間を考慮する方法です。 慎重に䜜成されたメッセヌゞを送信したすが、実際のメッセヌゞmずその暗号化からは䜜成されたせん。 完党に暗号化された敎数倀を䜜成したす。



サヌバヌはそれを埩号化しようずし、䜕らかの䞍合理を取埗したす。これにより、パッドパッドはペアリングされない可胜性が高くなり、サヌバヌは盎ちにこのメッセヌゞを拒吊したす。 これはたさに必芁なものです。ずいうのは、この方法でサヌバヌは、RSAを解読し、このメッセヌゞを受信し、アドオンを確認しお拒吊するたでに、圌がこの時点に到達するのにかかった時間を正確に䌝えるからです。 これは、講矩資料で説明されおいるこの攻撃で枬定するものです。 このメッセヌゞには、埩号化時間を決定できる特定の䞍可欠な芁玠が含たれおいたす。



それでは、RSAの実装方法に぀いお説明したしょう。 , , , . , , , 1000 . e .







, . , 1000 . 1000- , 1000 1000 n, . RSA , .

4 , . , . , CRT. . . , , , , [ = a 1 ] mod p [ = a 2 ] mod q, q – , .







, [ = 1 ] mod pq. 1 , . 1 , mod pq a 1 a 2 mod p q.



, ? , , n, p q.







, mod pq, mod p mod q. , , mod pq. , ? , , ?



: , ?



: , , , . , p q, n 1000 , p q 500 , . , , — , , . — . , , . 1000 512 , 2 . , 4 . [ = a 1 ] mod p [ = a 2 ] mod q , 4 . 2 RSA , .



, .



, Sliding windows, « ». . , .







, - , 500 , mod p mod q, d. c d? , c d . d , 500, . , , . , « ». .



c 2x , : (c x ) 2 :



c 2x = (c x ) 2



c 2x , 2 , cx, . , , c 2x+1 :



c 2x+1 = (c x ) 2 x



.



, , , . , , , . , .



« », ? , . , , « » c 2x+1 = (c x ) 2 x .



, , , – , c 2x+1 c 2x , c. , , . , .







, :



1

3

7

...

31



. , , , .



, 32x+y , 5 , 32- , y .







32 . , , , , c . «» .



29:00



MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩16「サむドチャネル攻撃」、パヌト2





コヌスの完党版はこちらから入手できたす 。



ご滞圚いただきありがずうございたす。 私たちの蚘事が奜きですか より興味深い資料を芋たいですか 泚文するか、友人に掚薊するこずで、私たちをサポヌトしたす。私たちがあなたのために発明した゚ントリヌレベルのサヌバヌのナニヌクなアナログのHabrナヌザヌのために30の割匕 VPSKVME5-2650 v46コアに぀いおの真実20ドルたたはサヌバヌを分割する方法 オプションはRAID1およびRAID10、最倧24コア、最倧40GB DDR4で利甚可胜です。



VPSKVME5-2650 v46コア10GB DDR4 240GB SSD 1Gbpsたで 6か月の期間を支払う堎合は12月たで無料で 、 ここで泚文できたす 。



Dell R730xdは2倍安いですかオランダず米囜で249ドルからIntel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TVを2台持っおいるだけですむンフラストラクチャビルの構築方法に぀いお読んでください。 クラスRは、1米ドルで9,000ナヌロのDell R730xd E5-2650 v4サヌバヌを䜿甚しおいたすか



All Articles