副䜜甚暗号化

リチャヌド・スノヌデンのおかげで、 NSAが䜕であり、䜕をするのかを知る人が増えおいたす。 開瀺された内郚プレれンテヌションに基づいお、NSAがトラフィックの収集ずむンタヌネットプロバむダヌず゜フトりェアゞャむアントのネットワヌクでの「正しい」プログラムの導入だけでなく、暗号アルゎリズムの分析にも倚倧な努力を費やしおいるこずは明らかです。 2013幎の囜家安党保障予算を含む178ペヌゞの文曞が公開されたした。 その結果、統合暗号化プログラムプロゞェクトに110億ドルが費やされたした。 そのようなお金のために䜕ができるでしょうか 確かに利益を生む。 たずえば、ナタ州の巚倧なコンピュヌティングセンタヌの建蚭は、20億ドルで、モルモン教埒の䜏居にありたす。 センタヌには2300 m2のサヌバヌスペヌスがあり、65メガワットの発電所ず、すべおを冷华する6䞇トンの冷凍蚭備がありたす。 2012幎、NSAが最近、暗号解読ず耇雑なシステムのハッキングで画期的な成功を収めたこずが公匏の口から隠されたした。 これが圌らが新しいデヌタセンタヌを必芁ずした理由ですか 暗号孊の第䞀人者であるブルヌス・シュナむアヌは、これらの声明に぀いおコメントし、近い将来、NSAがAESなどの最新の匷力な暗号を解読する可胜性は䜎いこずを瀺唆したした。 そしお圌は、NSAがその努力をアルゎリズムの「正盎な」ハッキングではなく、これらのアルゎリズムの実装の脆匱性を芋぀けるこずに集䞭するず仮定したした。 ブルヌスは、成功を達成できるいく぀かの分野を特定したした。



副䜜甚ぞの攻撃ずは䜕かを考えおみたしょう。



非垞に倚くの研究ず研究が、さたざたな暗号システムのセキュリティの分析に費やされおいたす。 同時に、「暗号システム」はここでは非垞に広く考えられおいたす。特定の暗号化プロトコル、ハヌドりェアデバむス、たたはサヌバヌ、サブスクラむバヌなどを含む゜フトりェアずハ​​ヌドりェアシステム党䜓です。たず、特定の皮類の攻撃に耐えるシステムの胜力を分析したすクラッカヌ暗号に関する文献では、通垞、むブたたはマロリヌずいう名前が付けられおいたす。特定の知識ずツヌルにアクセスできたす。 圌はそれらを䜿甚しおシステムにハッキングしたす。キヌを蚈算し、暗号化されたメッセヌゞを読み取り、デヌタたたはデゞタル眲名を眮き換えたす。 朜圚的な攻撃者が劥圓な時間、劥圓なコンピュヌタの電力を䜿甚しおこのシステムの秘密情報にアクセスできない堎合、システムは耐性があるず芋なされたす。 暗号化の優れた圢態は、独自のアルゎリズムの発明ではなく、培底的に研究され、その匷床が通垞数孊によっおサポヌトされおいるため、氞続的でタむムテストされた方法の䜿甚です。 疑問が生じたす私のデバむスで、たずえば、いく぀かの実蚌枈みの定理に基づいたアルゎリズムを䜿甚するず、萜ち着くこずができたす少なくずも量子コンピュヌタヌの発明たで。 刀明したした、いいえ。



セキュリティ分析の埓来のモデルは、「実隓」オブゞェクトを、暗号化などの特定の操䜜を実行する䞀皮のブラックボックスず芋なしたす。プレヌンテキストは入力に送信され、暗号化は出力に衚瀺されたす。 たた、このボックス内にキヌを保存したすオプションずしお、倖郚から蚭定するこずも、䞀定にするこずも、セッションごずに生成するこずもできたす-重芁ではありたせん。 䞻なこずは、キヌが倖郚の䞖界にアクセスできないこずであり、Evaはハッカヌの暙準的な歊噚に満足しおいたす入出力でデヌタをむンタヌセプトする、任意のデヌタを倧量に提䟛する機胜、アルゎリズム自䜓ずそのパラメヌタヌの正確な知識などです。



攟射線、電力消費、およびその他の蚘録された症状、電子デバむス、たたはこれらのデバむス䞊のコンピュヌタヌプログラムを通じお倖の䞖界ず察話するこずにより、攻撃者に倚くの有甚な情報を䞎えるこずができたす。 これらの症状は、副䜜甚、時には副䜜甚ず呌ばれ、英語で呌ばれたす。 文献には確立された甚語-サむドチャネルがありたす。 ハッカヌにずっお、この情報は、培底的な怜玢ずいう䞍愉快な芋通しから圌を救うこずができるので、「金でその重みに倀する」こずができたす。 ドアロックを開くこずずの類掚で、ドアが取り付けられおいるボルトを倖すのに十分な堎合、泥棒の家の所有者がマスタヌキヌを遞ぶのに長い時間がかかるのはなぜですか



起源



副䜜甚の「利点」に぀いおの最初の重倧な蚀及は、英囜のMi-5゚ヌゞェントであるピヌタヌ・ラむトの自䌝にありたす。60幎代にロンドンの゚ゞプト倧䜿通に駐車されたロヌタリヌ暗号マシンの暗号を解読する詊みに぀いお説明しおいたす。 圓時は明らかにコンピュヌティング胜力が䞍足しおいたため、著者はマむクを蚭眮し、マシンから発せられるクリックを蚘録するこずを提案したしたが、毎朝、技術者によっお敎理されたした。 したがっお、3぀のホむヌルのうちの2぀のホむヌルの䜍眮を蚈算できたため、最終的にはコヌドを開くのに圹立ちたした。



包括的な副䜜甚は、1995幎にPaul Kocherによる研究の公開埌、秘密鍵の倀ず暗号化デバむスがべき乗挔算を蚈算するのにかかる時間ずの統蚈的関係の存圚を蚌明した埌、怜蚎され始めたした。 それ以来、特定のハヌドりェアデバむスでの暗号化の実装は、もはや「鉄筋コンクリヌト」に芋えないこずが明らかになりたした。 さたざたなシステムのセキュリティを確保するための重芁な堎所は、暗号プロセッサによっお占められおいたす。 それらは暗号化操䜜甚に最適化されおおり、敵察的な環境ず盞互䜜甚しない独自の分離コヌドを実行し、秘密キヌを独自のメモリに保存したす。倚くの堎合、保護されおいたす-䞍正な読み取りが怜出された堎合、キヌマテリアルは砎棄されたす 副䜜甚分析の開発により、少なくずも2぀の理由により、暗号プロセッサはそれほど安定しおいないように芋えたす。





攻撃の分類



文献における副䜜甚ぞの攻撃は、通垞、いく぀かの独立した基準に埓っお分類されたす。

1.介入の事実に぀いお




2.介入の皋床により




3.デヌタ分析の方法による








実践-RSA暗号化に察するタむムアタック



RSA暗号化のタむムアタックに぀いおは、文献でよく知られ、よく研究されおいたす。 攻撃の基本は、暗号化操䜜の実行にかかった時間を正確に枬定するこずです。 ここでは、ハッカヌはデバむス自䜓、入力にデヌタを提䟛し、タむムスタンプを枬定するために必芁な機噚を持ち、デバむスで䜿甚されおいるのはRSAであるこずも確実に知っおいるず仮定したす。



タむムアタックは、原則ずしお、攻撃されたデバむスが入力デヌタ暗号か平文かに関係なく、たたはキヌに応じお暗号化操䜜に異なる時間を費やすずいう事実により可胜です。 この違いは最適化によっお増幅されたす。プロセッサヌは最倧限に最適化するように「シヌク」し、その結果、䞀郚の操䜜は理論的に予想されるよりもはるかに高速に実行できたす。



ご存知のように、RSAアルゎリズムの基瀎はそしおDiffie-Hellmanも同じです、环乗法で环乗する操䜜です。 次の衚蚘を䜿甚するこずをお勧めしたす。



m-プレヌンテキスト メッセヌゞから

c-暗号暗号から

{e、n}-公開キヌ 暗号化から-暗号化から取埗

{d、n}-秘密鍵 埩号化から-埩号化䞭に取埗

w-キヌの幅  widthから

d [i]-キヌのi番目のビット



次に、埩号化プロセスは次のようになりたす。

m = c^d mod n





ここで、nは公開キヌの䞀郚であるため、公開されおおり、cはデヌタチャネルをリッスンするこずで取埗できたす。 私たちの目暙はdを芋぀けるこずです。



この数匏を蚈算するためのさたざたなアルゎリズムがありたす。「額」を蚈算するのは費甚がかかりすぎるからです。 暗号デバむスが、バむナリ露出アルゎリズムず呌ばれるこずの倚い最も単玔な高速环乗アルゎリズムを䜿甚しおいるず仮定したす。たたは、倖郚゜ヌスの堎合のように、二乗ず乗算たたは环乗を䜿甚したす。 圌の擬䌌コヌドは次のずおりです。

 int squareAndMultiply(c, d, n) { R = array(0..w-1) S = array(0..w-1) s(0) = 1 for (k = 0, k < w, k++) { if (d[k] == 1) R(k) = (s(k) * y) mod n else R(k) = s(k) s(k+1) = (R(k) ^ 2) mod n } return R(w–1) }
      
      





明らかに、最初のケヌスではプロセッサが乗算を実行し、2番目のケヌスでは割り圓おのみを実行するため、キヌのれロビットの反埩は単䞀ビットの堎合よりも時間がかかりたせん。 squareAndMultiply関数の実行時間を枬定するこずにより、キヌ党䜓を蚈算する方法を瀺したす。 正確な匏はありたせん;䞀般的な意味を説明したす。

Kosherが提案する方法は、最初にビット0、次にビット1などのキヌビットを繰り返し蚈算するこずで構成され、そのような各反埩には次の特性がありたす。



各反埩で、ハッカヌは倚数の枬定を行いたす。それぞれの目的は、3぀の倀を取埗するこずです。

  1. 合蚈関数実行時間
  2. システムが既知のキヌビットを凊理するのにかかる時間
  3. アルゎリズムの操䜜ごずの時間sk* ymod n


パラメヌタヌ1は枬定するのが最も簡単で、入力に暗号文を入力したす。2ず3はより困難ですが、デバむスの物理的な実装の機胜を知っおいる堎合、たたは少し「分析する」堎合は珟実です。 その堎合、テストビットに続くすべおの䞍明なビットの凊理にかかる時間は次のようになりたす。



調査䞭のこのビットに察しお倚くの枬定を行い、T倀の「ヒヌプ」党䜓を蓄積した埌、条件付き確率匏を䜿甚しお、このビットがそれぞれ1および0である確率を蚈算できたす。



タむムアタックの最も単玔なべき乗アルゎリズムを芋おみたした。 珟代の暗号システムでは、めったに䜿甚されず、代わりに、より最適な方法が䜿甚されたす。 これは通垞、䞭囜の剰䜙定理、Montgomeryアルゎリズム、たたはKaratsubaアルゎリズムに基づくアルゎリズムです。 しかし、これらの「高床な」アルゎリズムでさえ、玔粋な圢で適甚された堎合、䞀時的な攻撃を受けやすくなりたす。これは、OpenSSLサヌバヌに察する攻撃の成功によっお蚌明されたした。



OpenSSLサヌバヌぞの攻撃



圓初、䞀時的な攻撃の運呜はハヌドりェアデバむスのみであるず考えられおいたした。たずえば、ハッカヌはスマヌトカヌドを受け取り、センサヌずデバむスでそれをハングさせ、その埌、秘密キヌを抜出したす。 しかし、スタンフォヌド倧孊のDavid BrumleyずDan Boniが瀺したように、゜フトりェアは䞀時的な攻撃、特にOpenSSLストックラむブラリバヌゞョン0.9.7を䜿甚しおSSL接続を受け入れるWebサヌバヌの圱響を受けたす。 そしお、これは兞型的なサヌバヌが倚くの䞊列プロセスを実行し、サヌバヌぞのアクセスのチャネルも貢献するずいう事実にもかかわらずです。 ただし、次の3぀の成功した攻撃オプションが䜜成されたした。

  1. ロヌカルネットワヌク経由でアクセス可胜なApache Webサヌバヌに察するクラむアント攻撃。 確信を高めるために、クラむアントずサヌバヌ間のチャネルには耇数のルヌタヌずスむッチが含たれおいたした
  2. 䞡方が同じマシン内で実行されおいる間に、あるプロセスから別のプロセスぞの攻撃
  3. 隔離された仮想マシンに秘密キヌが保存されおいる分散キヌストレヌゞシステムに察する攻撃。 ここでは、Webサヌバヌ自䜓はデヌタを埩号化したせんが、キヌマシンに芁求を行いたす


SSL / TLSは、RFC 6101SSL v3.0、2246TLS v1.0、4346TLS v1.1、5246TLS v1.2および6176TLS v2.0で詳现に説明されおいるため、攻撃の暙的ずなる郚分に焊点を圓おたす。 そのため、䞀般的なハンドシェむクには次の手順が含たれたす。

  1. クラむアントは、28バむトの乱数ずサポヌトされおいる暗号のリストを送信するClientHelloメッセヌゞを送信したす
  2. サヌバヌはクラむアントに類䌌したServerHelloメッセヌゞを送信したす
  3. サヌバヌは蚌明曞ずずもに蚌明曞メッセヌゞを送信したす
  4. サヌバヌ蚌明曞を受け取ったクラむアントは、サヌバヌ蚌明曞をサヌバヌ蚌明曞から抜出し、48バむトの乱数で暗号化し、 ClientKeyExchangeメッセヌゞでサヌバヌに枡したす。
  5. サヌバヌは秘密鍵でクラむアントの乱数を解読し、その埌、盞互マスタヌ鍵が蚈算されたす


節4では、ブロックはPKCS1暙準タむプ2に埓っおフォヌマットされおいるこずに泚意しおください。

  [0x00] [0x02] [パディング文字列] [デヌタ] 
、その埌暗号化されたす。



攻撃の繰り返しは、暗号化されたブロックずしおサヌバヌにテストデヌタを送信するこずです。 埩号化埌、サヌバヌはデヌタがPKCS1に埓っおフォヌマットされおいないこずを自然に発芋したす。 この段階でハンドシェむクが䞀時的に䞭断されるず、脆匱性攻撃はBell LaboratoriesのDanel Bleichenbacherによっお瀺されたしたが開かれるため、最新のSSL / TLS実装ぱラヌがないこずを「ふり」しおハンドシェむクを続行したす。 その結果、クラむアントずサヌバヌは、次のメッセヌゞでポップアップする異なるマスタヌキヌを蚈算したす-ずにかく、クラむアントはアラヌトメッセヌゞを受信し、接続が䞭断されたすが、これはあたり興味がありたせん。 䞻なこずは、 ClientKeyExchangeを送信しおからサヌバヌから応答を受信するたでの時間が枬定されるこずです。 ここで、 N = p·q



はRSAモゞュヌルであり、秘密および開指数は関係d·e = 1 mod (p-1)(q-1)



によっお関連付けられおいるこずを思い出しおください。 そのため、䞀連の枬定の埌、ビットごずにqを埩元するこずができるため、秘密鍵を芋぀けるこずができたす。 そのような奇跡はどこから来たのですか 正確な蚌明を埗るには、この蚘事の範囲倖の数匏を倚数提䟛する必芁がありたすが、代わりに、分析の基瀎ずなる䞀般原則を説明したす。 それらの2぀がありたす。



たず、露出モゞュロのOpenSSLは、前述のバむナリアルゎリズムを䜿甚したすが、倚くの最適化が行われおいたす。 たず、 䞭囜の剰䜙定理を適甚するず、問題m = c^d mod N



2぀の副問題m1 = c1^d1 mod p



ずm2 = c2^d2 mod q



に分割され、その埌、2぀の数倀m1



ずm2



から、特別な匏m



次に、アルゎリズムで䜿甚されるモゞュロ乗算は、モンゎメリヌ法によっお最適化されたす。 この方法の本質は、元のモゞュヌルの蚈算から離れお、2次に等しいモゞュヌルを蚈算するこずです。これは、プロセッサにずっおはるかに高速です。 最初に、䞡方の因子が特別なモンゎメリヌ圢匏に倉換され、次に玠早い乗算が行われ、その埌、結果が通垞の圢匏に倉換されたす。 すべおうたくいきたすが、2000幎にドむツのWerner Schindler教授g



、 g



q



倍数に近いほど、アルゎリズム党䜓に時間がかかるこずを発芋したした。 最初の原理は次のずおりです。モンゎメリヌ法の時間を枬定するこずにより、 g



q



、 2q



、 3q



などにどのように近いかを結論付けるこずができたす。



どうぞ 最も簡単な乗算モゞュロを䜿甚しないは、2぀の方法でOpenSSLに実装されたす埓来の方法ずKaratsubaメ゜ッド 。 通垞の方法の耇雑さはO(n·m)



で掚定されたす。ここで、mずnは倍数のサむズです。 ゜ビ゚トの科孊者A. A. A.カラツバは、最初に耇雑床O(n^1,58)



の高速乗算の方法を発明したした。 これは、乗数が同じサむズのずきにOpenSSLが䜿甚するものです。 2番目の原則は、これから埗られたす。gがqの倍数より少し小さい堎合、高速な方法が䜿甚され、少し倧きい堎合、より倚くの時間がかかりたす。



このOpenSSLに察する攻撃の䜜成者は、玄100䞇のリク゚ストで1024ビットキヌを芋぀けるのに十分であり、玄2時間かかったこずを実蚌するこずができたした。 しかし、急いでパニックにならないでください。 バヌゞョン0.9.7b以降、OpenSSLには䞀時的な攻撃に察する保護が含たれおいたす。 防埡は、埩号化操䜜自䜓の前x = r^e · · mod N



の無駄な蚈算にありたす。ここで、rは乱数、eは秘密の指数、cは暗号化されたテキストです。 この操䜜により、ランダムな遅延が発生し、キヌ情報が副䜜甚に「挏掩」するこずはありたせん。 保護のコストは、2〜10のパフォヌマンス損倱です。



パワヌ攻撃



副䜜甚に察する別のクラスの攻撃、゚ネルギヌ消費に察する攻撃に移りたしょう。 これらの攻撃は、実際にはハヌドりェア暗号化モゞュヌルにのみ適甚でき、モゞュヌルが実行する機胜をより隔離し、狭めるほど、攻撃は成功したす。 明らかに、プロセッサによっお実行される異なる呜什は異なる゚ネルギヌ量を消費したすが、これは最終的にスむッチングトランゞスタの数によっお決たりたす。 物理孊の過皋から、MOSトランゞスタはスむッチング時に電流を消費し、静止時の電流は無芖できるこずを知っおいたす。これはTTLトランゞスタに぀いおは蚀えたせん。 したがっお、消費チャヌトで指瀺たたは指瀺のグルヌプを特定できたす。 しかし、同じコヌシャは、スマヌトカヌドの消費グラフを分析するこずで、秘密キヌを抜出できるこずを瀺したした。



これは、1ブロックのDES暗号化の消費グラフです。初期順列、16の暗号化ラりンド、および最終順列が衚瀺されたす。



そしお、これが第2ラりンドず第3ラりンドの詳现なスケゞュヌルです。





消費攻撃は、䞀般に単玔および差分 SPA、単䞀電力解析、DPA、差分電力解析ず略蚘に分類されたす。 䞊蚘のようなチャヌトはSPA攻撃で分析されたす。䞻な目暙は、チャヌトの䞀郚を実行された呜什たたは機胜にマップし、䜕らかの方法でデバむスレゞスタに衚瀺される倀を決定するこずです。 SPA攻撃は、デバむスの内郚実装に関する詳现情報があるこずを前提ずしおいたす。 䞀方、DPA攻撃は、耇数の枬定結果の統蚈分析に基づいおいたす。 たずえば、Kosherによっお蚘述されたDESスマヌトカヌドに察する叀兞的な攻撃は次のようになりたす。

  1. 最埌の数ラりンドの゚ネルギヌ消費は1000 DES暗号化で蚘録され、各ラりンドでは暗号化の結果も蚘録されたす
  2. このような各暗号化のスケゞュヌルは100,000の等しいセグメントに分割され、各セグメントには電力消費が割り圓おられたす
  3. 結果のマトリックス1000 x 100000は統蚈的方法で分析され、枬定期間党䜓を通しお倉化しなかったキヌを芋぀けたす。 正確なアルゎリズムに぀いおは、読者は元の゜ヌスを参照するこずをお勧めしたす。habraの蚘事の圢匏は、耇数階の数匏をレむアりトするのにあたり䟿利ではないためです


察抗


副䜜甚に察する攻撃のいく぀かのオプションを怜蚎したした。 䞖界䞭の人々は、暗号システムを蚭蚈するずき、そのような攻撃は開発段階でも考慮に入れなければならないこずに気付きたした。 ここで、圌らはいく぀かの方向に行動したす



副䜜甚攻撃の蚭蚈は、倚くの科孊論文の䞻題でした。 そしお、叀い暗号アルゎリズムのみがこれらの攻撃の察象であるず考えおはいけたせんRSA、DES、Diffie-Hellman。 AESおよび楕円曲線のアルゎリズムから「リヌク」の蚌拠がすでにありたす。 このすべおを1぀の蚘事で説明するのは非珟実的です。 私の仕事は、読者がこの魅力的なトピックを掘り䞋げるこずだけです。



もっず深くしたい人のために





All Articles