暗号技術に基づくサイバーセキュリティ - meti•...
TRANSCRIPT
-
五十部 孝典兵庫県立大学大学院応用情報科学研究科
暗号技術に基づくサイバーセキュリティ
サイバーセキュリティ・リレー講座 (初級)2018年12月5日
-
本講義の目的
• 暗号技術の全体像の理解• 暗号起因のインシデントや脆弱性に対応するための,暗号の種類,機能,安全性の理解
• 暗号を用いる場合に気を付ける点• どうやって選べばいいのか?確認項目は?• 参照する規格や標準アルゴリズム
-
本講義の内容
1. 暗号起因のサイバー攻撃の例2. 暗号技術基礎3. 暗号の適切な利用について
-
1.暗号起因のサイバー攻撃の例
-
Keeloqへの攻撃
• キーレスエントリーシステム• 80年代にMicrochip Technology Inc.により設計.
• 主要メーカで使われていた exp. Toyota, Honda, GM など.• 64-bit keyのブロック暗号を使用.
• 暗号解読 [S+08]• 64 bit security → 44 bit securityへ
• 50 dual core computerで 2日で秘密鍵が導出可能.
[S+08]S.Indesteege et al “A Practical Attack on Keeloq”, EUROCRYPT 2008
問題点 : 弱い暗号 + 短い鍵長
-
MYFARE Classicへの攻撃
• NXP製の非接触ICカード• ロンドンの公共交通で利用されるなど,2億以上のカードが流通.
• 非公開の独自暗号を利用.• CRYPTO-1 (ストリーム暗号)
• 暗号解読[N+08]• リバースエンジニアリングにより秘密の暗号アルゴリズムが露呈
• 48 bit keyの暗号だと分かり,総当りで求めることができる.• 更に暗号解読がされて,秒のorderで鍵導出可.
[N+08]Nohl et al “Reverse Engineering a Cryptgraphic RFID Tag”, 17-th USENIX 2008
問題点 : 弱い暗号 + 短い鍵長 + アルゴリズム秘匿 (第三者評価ができない)
-
Apple iMessageへの攻撃
• AppleのiMessageに対する攻撃 [G+16]• AppleのiMessageの End-to-End Encryptionに対する攻撃• 平文回復攻撃
• 選択暗号文攻撃で,2^18のクエリで,平文に含めれる添付ファイルの256ビット鍵の232ビットを特定可能(時間は35時間)
• 修正にはAppleの30人の技術者で4ヶ月問題点 : 独自暗号プロトコル + 非標準的な暗号利用
[G+16]Christina Garman et al, “Dancing on the lip of the volcano: Chosen ciphertext attacks on apple imessage”. USENIX 2016
-
LINEの暗号化 Letter Sealingへの攻撃
• LINEの暗号化モードLetter Sealingに対する攻撃[IM18]• 独自の暗号方式を使っており,その使い方に問題があり,なりすましやメッセージ改ざん攻撃が可能
問題点 : 独自暗号プロトコル + 非標準的な暗号利用[IM18]T. Isobe and K. Minematsu, “Breaking the Message Integrity of E2E encryption of LINE”, ESORICS 2018
-
LINEの暗号化 Letter Sealingへの攻撃
• 2017年11月にLINE Bug Bounty Programを通じて報告済• 2017年12月に”Encryption Break”の脆弱性と正式認定
• 公開,発表の許可も取得済み• 2018年1月国内最大のセキュリティ会議SCISで発表
• SCIS イノベーション論文賞• 2018年9月国際会議 ESORICS 2018にて発表
-
その他の攻撃事例
• APOP• メールサーバ, クライアント間のPassword認証方式• ハッシュ関数MD5 の脆弱性 (衝突攻撃)により,
Passwordが導出可• 問題 : 弱い暗号の利用
• WEP• 無線LANの暗号化方式• ストリーム暗号RC4の脆弱性により,鍵がP導出可.• 問題 : 弱い暗号の利用 + 誤った使い方
• Xbox• ブート時のプログラムの改ざんチェック• ブロック暗号TEAをハッシュ関数として利用• 問題 :弱い暗号の利用 +誤った使い方
暗号を正しく使うことが重要
-
その他の攻撃事例
• APOP• メールサーバ, クライアント間のPassword認証方式• ハッシュ関数MD5 の脆弱性 (衝突攻撃)により,
Passwordが導出可• 問題 : 弱い暗号の利用
• WEP• 無線LANの暗号化方式• ストリーム暗号RC4の脆弱性により,鍵がP導出可.• 問題 : 弱い暗号の利用 + 誤った使い方
• Xbox• ブート時のプログラムの改ざんチェック• ブロック暗号TEAをハッシュ関数として利用• 問題 :弱い暗号の利用 +誤った使い方
暗号を正しく使うことが重要
脆弱性が見つかった場合,修正には多くの金銭的,人的リソースが必要
-
2. 暗号技術基礎
-
セキュリティの三要素 CIA• 情報セキュリティ = 資産を守る技術
• 守るべき情報の特性は CIA に分類される• CIA をバランスよく守ることが重要
• Confidentiality (機密性)• 情報へのアクセスを許可された人(モノ)だけがその情報にアクセス可能• 資産 = 秘密情報 (e.g. 個人情報)
• Integrity (完全性)• 情報が破壊,改竄,または消去されていないこと• 資産 = 情報の確かさ (e.g. 預金残高/契約書)
• Availability (可用性)• 情報へのアクセスを許可された人(モノ)が,情報を利用したいときに利用できること• 資産 = 情報のアクセス権 (e.g. Facebok/Googleアカウント)
CI A
-
暗号技術によって実現できるもの
• 暗号技術が提供する二大機能: 守秘,認証• これらを組み合わせて CIA を守る
• 暗号技術の役割:• セキュリティを支えるキーテクノロジー• ただし,セキュリティにおいて暗号が全てではない
(他技術との組み合わせが重要)
-
本章で紹介する暗号技術
• 共通鍵暗号• メッセージ認証コード
(MAC: Message Authentication Code)• 公開鍵暗号• デジタル署名(公開鍵証明書)• (暗号学的)ハッシュ関数• 擬似乱数生成器
-
現代暗号の特徴
• 古典暗号• 暗復号アルゴリズム非公開
• アルゴリズムを隠すことで秘匿性を確保• 秘匿の機能が中心
• 現代暗号• 暗復号アルゴリズム公開
• 鍵さえ秘密にすればよい• 計算量的安全性
• 計算量の限られた攻撃者に対して安全• 鍵長に強度が依存 = 鍵を探すコスト
• 128 bit key = 2128の探索コスト(スパコン京で宇宙が誕生してから計算しても終わらない)
• 秘匿だけでなく,署名や認証といった様々な機能が実現可能
-
共通鍵暗号
• 概要: 暗号化と復号に共通の鍵を用いる方式• 特徴: 一般的に高速だが,事前鍵共有が必要• 用途: データ暗号化,改竄検知(MAC),認証など• 代表的アルゴリズム: DES, AES, CLEFIA, RC4
暗号アルゴリズム 復号アルゴリズム暗号文
平文 平文
秘密鍵 K 秘密鍵 K
暗号化 復号
=
-
共通鍵ブロック暗号の利用モード
18
• 暗号化利用モードによって様々な機能を実現• モードによって特性が異なるので注意深い選定が必要
EK K E K E
message 0m 1m
0c 1c nc
nm
ciphertext
EK K
last M
MAC
EK
LE K E
if |mn| = block長thenelse
pre-compute message0m0...00 1m
任意長データの暗号化 (代表例: CBC モード)
MAC 生成 (代表例: CMAC モード)
E: 暗号化関数
-
電子政府推奨暗号リスト
共通鍵暗号方式
共通鍵暗号利用モード
-
公開鍵暗号• 概要: 暗号化と復号に異なる鍵を用いる方式• 特徴: 事前鍵共有不要(片方の鍵公開可能).一般的に低速• 用途: 共通鍵の鍵共有,デジタル署名,認証など• 代表的アルゴリズム: RSA, ECC
暗号アルゴリズム 復号アルゴリズム暗号文
平文 平文
A の公開鍵 A の秘密鍵
暗号化 復号
公開可能(誰に知られても問題ない) A だけが知っている
≠
数学的に困難な問題
-
電子政府推奨暗号リスト
-
重要暗号技術: “暗号学的”ハッシュ関数
• “暗号学的”ハッシュ関数• 任意長のデータを固定長データに圧縮• データの “指紋” を取る技術と呼ばれることもある• 用途: デジタル署名,パスワード保護など• 一般的に共通鍵暗号技術を応用しているため高速• 代表的アルゴリズム: MD5, SHA-1, SHA-256, SHA-3(Keccak)
暗号学的ハッシュ関数 H
任意長データ : m
0xA993E36F47..固定長データ : H(m)
(160bit, 256bit,…)
-
“暗号学的”ハッシュ関数の特徴
• 暗号学的ハッシュ関数は以下の特性を備える• ※データベースに使用するハッシュ等とは異なる
• 衝突困難性(Collision resistance)• 同じハッシュ値になる 異なる 2 つのメッセージを見つけることが困難
• 原像復元困難性(Preimage resistance)• ハッシュ値のみから元々のメッセージを計算(復元)することが困難
• 第2原像復元困難性(Second preimage resistance)• あるメッセージに対し,そのハッシュ値と同じ値になる異なるメッセージを見つけるこ
とが困難
-
電子政府推奨暗号リスト
-
重要暗号技術: 乱数生成器
• 乱数• 用途: 鍵生成, 認証チャレンジ生成, デジタル署名など
• 真性乱数生成器• 物理的なランダム事象を利用• 実装・評価ともに困難
• 擬似乱数生成器• 出力は初期状態によって決まる• NIST SP800-90 DRBG など• 暗号学的擬似乱数生成器は予測不可能性が重要
• ※ rand() は線形合同法,暗号学的擬似乱数生成器ではない
-
3.暗号の適切な利用について
-
「アルゴリズム」と「鍵長」の選択
• “暗号の危殆化” を考慮して,適切な「暗号アルゴリズム」とその「鍵長(ハッシュ関数ならばハッシュ長)」を選択する必要がある
• 暗号の危殆化とは?• 適切な「暗号アルゴリズム」とは?• 適切な「鍵長」とは?
-
暗号の危殆化
• ある暗号アルゴリズムについて,コンピュータの性能向上や解読技術の向上などに伴い,当初想定した安全性(セキュリティ上の性質)を保てない状況が発生すること
• 解読技術による危殆化の例• SHA-1 は差分攻撃法により,期待より少ない計算量で
コリジョン(衝突)を発見可能 (2005年)• SHA-1 の後継を決めるため,次世代ハッシュ関数選定プロジェクトとして,
SHA-3 コンペティションを実施,世界中からアルゴリズムを公募した• ストリーム暗号RC4は,出力の偏りより,現実的な計算量で暗号文から平文を回復可能(2013年)
• CRYPTRECはRC4を監視対象暗号へ,Google, Microsoftは使用を取りやめた.• 計算機の発展を受けて
• NIST は2-key Triple DES を 2010 年に米国標準から取り下げた•
-
適切なアルゴリズムを選択する
• 十分な安全性評価を受け,安全性上の懸念のないアルゴリズムを選択する
• 問題例• A5/1(GSM), CSS(DVD), Crypto-1(MIFARE Classic), KeeLoq(Microchip Tech.)
• 現在の標準的暗号アルゴリズム例• 共通鍵ブロック暗号
• AES(NIST FIPS 197 など), CLEFIA(ISO/IEC 29192-2)• 公開鍵暗号
• ECC(IEEE P1363), RSA(PKCS #1), DSA• 擬似乱数生成器
• NIST SP800-90A DRBGs• 暗号学的ハッシュ関数
• SHA-224/256/384/512 (NIST FIPS 180-4), (SHA3 (FIPS 202))
-
電子政府推奨暗号リスト
-
適切な鍵長を選択する
• 計算量的安全性と鍵長• 暗号アルゴリズムの安全性は「計算量的安全性」に基づく
• 計算量的安全性• 実現可能な計算能力で解読可能か否かを評価する• 例えば,世界中のスパコンを集めても解読に1億年かかる...
• 鍵長が計算量的安全性を決める• 解読にかかる計算量は暗号の鍵長に依存する
• 暗号強度• 暗号アルゴリズムに対し,最も効率的な解法(総当たりなど)を適用した際に,解読に必要な計算量を示したもの
-
適切な鍵長を選択する
•鍵長の決定要因• 必要な強度レベルを考える (64-bit, 80-bit, 128-bit, 256-bit,
etc.)• 暗号アルゴリズム等価強度
• 共通鍵暗号• 暗号強度 = 鍵長
• 鍵長 128/192/256-bit AESはそれぞれ 128/192/256-bit の暗号強度• ハッシュ関数
• コリジョン(衝突)回避の観点では,ハッシュ出力長の半分のビット長• SHA-256 の出力は 256-bit なので,衝突回避の観点での暗号強度は 128-bit
• 公開鍵暗号• 安全性の根拠となる難問を解くための最速のアルゴリズムによって評価
• 鍵長 1024-bit の RSA は 80-bit の強度レベル,2048-bit RSA は 112-bit の強度レベル
-
NIST(米国立標準技術研究所)の推奨鍵長
• 推奨鍵長に関する NIST 勧告(NIST SP 800-57)に従って選定
年 共通鍵 公開鍵 ECC ハッシュ(A)
ハッシュ(B)
~2013 80 1024 160 160 1602014~2030 112 2048 224 224 160
2031~ 128 3072 256 256 160(単位はビット)
・「共通鍵」: 共通鍵暗号技術の鍵長,および HMAC で利用する鍵長・「公開鍵」: 公開鍵暗号技術の RSA や DH 系スキームの法のサイズ・「ECC」: 楕円曲線暗号技術における利用される体のサイズ・「ハッシュ」: ハッシュ関数の出力サイズ
(A): デジタル署名,ハッシュ関数単体での使用(B): HMAC, 鍵導出関数,擬似乱数生成
-
CRYPTREC推奨暗号リスト
安全性が80 bit
-
まとめ
本講義では以下のことを説明1. 製品に対する暗号起因のサイバー攻撃2. 暗号技術基礎
• 共通鍵暗号,公開鍵暗号,ハッシュ関数,乱数生成• ハイブリッド: 公開鍵暗号で鍵共有し,高速な共通鍵暗号で暗号化
3. 暗号の適切な利用について• 暗号アルゴリズムと鍵長を適切に選択
• 暗号の危殆化や計算機の進歩を考慮.
• 何か不明な点等ありましたら,お気軽にご連絡ください.• [email protected]
スライド番号 1本講義の目的本講義の内容暗号起因のサイバー攻撃の例Keeloqへの攻撃MYFARE Classicへの攻撃Apple iMessageへの攻撃LINEの暗号化 Letter Sealingへの攻撃LINEの暗号化 Letter Sealingへの攻撃その他の攻撃事例その他の攻撃事例2. 暗号技術基礎セキュリティの三要素 CIA暗号技術によって実現できるもの本章で紹介する暗号技術現代暗号の特徴共通鍵暗号共通鍵ブロック暗号の利用モード電子政府推奨暗号リスト公開鍵暗号電子政府推奨暗号リスト重要暗号技術: “暗号学的”ハッシュ関数“暗号学的”ハッシュ関数の特徴電子政府推奨暗号リスト重要暗号技術: 乱数生成器3.暗号の適切な利用について「アルゴリズム」と「鍵長」の選択暗号の危殆化適切なアルゴリズムを選択する電子政府推奨暗号リスト適切な鍵長を選択する適切な鍵長を選択するNIST(米国立標準技術研究所 )の推奨鍵長CRYPTREC推奨暗号リストまとめ