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