Comments
Description
Transcript
講義スライド
情報セキュリティ 第8回 2016年6月3日(金) 1/20 本日学ぶこと 本日の授業を通じて 「鍵」の生成・配送・認証・破棄について,その必要性と方法を 理解します. セキュリティを実現するために必要となる,「乱数」の性質と, 具体的な乱数生成アルゴリズムを学びます. 公開鍵暗号とディジタル署名を円滑に運用するための,「公開 鍵基盤(PKI)」について学びます. 2 鍵は重要 鍵は小さい DES:56ビット AES:128, 192, 256ビット RSA:安全に運用するには,2048ビット以上 鍵は平文と同じ価値を持つ. 鍵が知られる(compromised)と,過去の暗号文の中身も 知られる. 3 鍵をどう作る?使う? 鍵の生成 鍵の配送 乱数で生成する. 鍵も暗号化して送る. ハイブリッド暗号 鍵の暗号化:CK = E1(K, r) メッセージの暗号化:CM = E2(r, M) E1は公開鍵暗号,E2は対称暗号,rは乱数を使うことが多い. 鍵の認証 「Aliceの鍵」が確かにAliceの鍵であると認識する方法は? 公開鍵暗号なら,公開鍵基盤(PKI) 4 乱数の要件 無作為性 予測不可能性…暗号論的に安全な乱数の要件 でたらめに見える. 統計的検定により判定できる. 過去の乱数列を見ても,次の乱数が求められない. 再現不可能性…真の乱数の要件 ある乱数列と同じ数列を再現できない. 乱数列に周期がない. 5 乱数生成法 線形合同法 Blum-Blum-Shub 古典的な擬似乱数生成アルゴリズム.randやrandom関数でも 利用 Xn+1 = (A*Xn + B) % M に基づく. 予測可能.周期が小さく,質が悪い Xn+1 = (Xn)2 % pq に基づく乱数生成アルゴリズム 予測不可能,再現可能 /dev/random,/dev/urandom UNIXの特殊ファイル.catやddといったコマンドで取り出す. 環境ノイズをもとに生成し,再現不可能 多ビット乱数を生成するには不向き 6 擬似乱数生成器 内部状態を初期化する際に与える値を「種」という. 内部状態は,一つ乱数を生成すると,変わる. しかし内部状態の取り得る値は有限個なので,周期をなくす (周期を∞にする)ことはできない. 乱数の 初期化 種 内部状態 乱数 生成 乱数列 擬似乱数生成器 図の出典:『暗号技術入門 第3版 秘密の国のアリス』 p.317を改変 7 乱数まとめ 「乱数」を使ってすること 鍵(公開鍵暗号の場合,鍵ペア)の生成 ノンスやソルトの生成 「乱数」の課題 計算機上でセキュリティを実現するための乱数生成法として 何を選べばよいか? rand関数は不適当 無作為性と予測不可能性を満たし,再現不可能性に関して は周期を大きくすることで対処する 種の選び方 種の漏洩は,鍵の漏洩と同じ 「時刻」や,「時刻とプロセス番号の組み合わせ」は, 推測されやすいので,使わない. 8 これまでの授業のおさらい(1) 「対称暗号(秘密鍵暗号)」ができること 秘密通信:鍵を持つ者しか知ることのできないよう,メッセージ をやり取りすること. 機密性の保持:鍵を持たない者が,暗号化されたファイルを 取得しても,もとのメッセージは分からない. 高速な暗号化・復号処理 「対称暗号」の課題 鍵をどのように生成し,あらかじめ共有すればいいか? 9 これまでの授業のおさらい(2) 「公開鍵暗号」ができること 秘密通信:復号鍵を持つ者しか知ることのできないよう, メッセージをやり取りすること. 機密性の保持:復号鍵を持たない者が,暗号化された ファイルを取得しても,もとのメッセージは分からない. 暗号化鍵の公開:誰でも暗号化ができる. 「公開鍵暗号」の課題 鍵ペアをどのように生成すればいいか? 「Aliceの暗号化鍵」と言われて本当にAliceの鍵なのか? …改ざん(中間者攻撃)の可能性 10 これまでの授業のおさらい(3) 「一方向ハッシュ関数」ができること ハッシュ値の生成 ハッシュ値は,メッセージに対して非常に小さい値である. メッセージが1ビットでも変われば,ハッシュ値は大きく 変わるので,メッセージの改ざんを検出できる. 第三者検証:関数が公開されていれば,メッセージとハッシュ値 のペアが適切かどうか誰でも確認できる. 「一方向ハッシュ関数」の課題 メッセージとハッシュ値をともに改ざんしたときは? 11 これまでの授業のおさらい(4) 「メッセージ認証コード」ができること MAC値の生成とその検証:鍵を持つ者は,メッセージとMAC値 のペアが適切かどうかを確認できる. 「メッセージ認証コード」の課題 第三者検証ができない. 否認(生成したが,後になって自分は生成していないと主張す ること)ができてしまう. 12 これまでの授業のおさらい(5) 「ディジタル署名」ができること 署名文の作成:RSAでは,「Aliceの署名文」は,Aliceの復号鍵 を持つ者のみが生成できる. 第三者検証 署名文復元法では,署名文が適切かどうか,暗号化鍵 (公開鍵)を用いて誰でも確認できる. 認証子照合法では,メッセージと署名文のペアが適切か どうか,暗号化鍵(公開鍵)を用いて誰でも確認できる. 13 公開鍵基盤 Public Key Infrastructure, PKI 公開鍵を効果的に運用するために定められた規格・仕様の 総称 構成要素 利用者:PKIを利用する人・コンピュータ 認証局(Certification Authority, CA):証明書を発行する人・コ ンピュータ 登録局(Registration Authority, RA):登録業務を行う機関. 申請者の本人確認をする. リポジトリ:証明書を保管するデータベース 14 証明書とは 公開鍵証明書,ディジタル証明書とも呼ばれる. 利用者の公開鍵と,それに対する認証局のディジタル署名 からなる情報のこと. フォーマットは,X.509 が最も有名. 署名の対象となる情報(公開鍵),署名文のほかに,ディジタル 署名アルゴリズム,発行日時と有効期限,公開鍵の所有者, 証明書の作成者なども記載される. 証明書 Aliceの 公開鍵 CAの 署名 15 認証局とは 公開鍵証明書の発行や管理をする. 信頼される第三者(Trusted Third Party, TTP)である. 業務 鍵ペアを生成する. 公開鍵証明書を作成し発行する. 公開鍵証明書を破棄する.証明書失効リスト(Certificate Revocation List, CRL)に,申請のあった鍵情報を登録する. 破棄 = 失効 = revocation (動詞形はrevoke) ≠ 削除 16 利用者がすること 自分の公開鍵を登録する. 自分の公開鍵を破棄する. 鍵は,自分または認証局が生成する. プライベート鍵は,秘密に保管する. 以後使用しないというときや,復号鍵(プライベート鍵)が他者に 知られてしまった可能性があるときに実施 暗号化したい人の公開鍵を含む証明書を取り寄せる. 暗号化,署名文の検証のいずれかに使用する. 証明書の検証も忘れずに. 適切な署名文である 証明書の有効期限が切れていない 証明書が失効されていない(CRLを参照する) 17 証明書をどのように検証するか? 証明書には,認証局による署名がついているので, その認証局の鍵を含む証明書を取り寄せればよい. 認証局は階層化されている. 「認証局の鍵を含む証明書」の検証は? …… 例:札幌支店の従業員Bob - 札幌支店認証局 - 北海道支社認 証局 - 東京本社認証局 最上位の認証局の証明書は,自分自身の鍵による署名 (セルフ署名)がついている. 証明書 Bobの 公開鍵 証明書 CA1の 公開鍵 CA1の 署名 CA2の 署名 … 証明書 CAXの 公開鍵 CAXの 署名 18 PKIを運用するなら RFC 5280をはじめとする技術仕様や,解説書を読む. CP/CPSを策定し,公表する. CP (Certificate Policy,証明書ポリシー):認証局が電子証明 書を発行する際の運用方針を示した文書のこと. 何を(What)ポリシーとするかを定める. CPS (Certification Practice Statement,認証局運用規定): CAのセキュリティポリシー,約款および外部との信頼関係など に関する詳細を規定した文書のこと. どのように(How)ポリシーを適用するのかの手順を記す. オブジェクト識別子(OID)を取得し,CPに記載する. 日本なら,1.2.392.(6桁) (RSAなどのアルゴリズムのOIDを,1.2.840.113549.1.1.1など として指定することも) 19 情報を「埋め込む」技術 情報ハイディング(information hiding):あるものに本来とは 異なる別の情報を埋め込むこと ステガノグラフィ(steganography):情報を秘密裏に埋め込み, 通信の事実すら秘密にしつつ情報を伝達 電子透かし(digital watermarking):文書・音声・静止画像・動 画像に情報を埋め込むことで,改ざん検知や著作権管理 (Digital Rights Management, DRM)に活用 事例:http://nukalumix.hateblo.jp/entry/ebina_tsutaya_pakuri 20 E