情報セキュリティとpki -...
TRANSCRIPT
マルチメディアシステム論 資料 2019.7
情報セキュリティとPKI
1
機密性 Confidentiality 認可されていない個人や団体等,又はプロセスに対して,情報を使用不可又は非公開にする特性 例)通信路の暗号化
完全性 Integrity 資産の正確さ及び完全さを保護する特性 例)デジタル署名
可用性 Availability 認可された団体等が要求したときに,アクセス及び使用が可能である特性 例)システムの二重化,データのバックアップ
情報セキュリティの三大要素 C.I.A.
2
2
3
• 「確実に当事者同士が通信している」ことが保証できること(認証と情報開示)
• 第三者に通信中の内容が漏れないこと(秘匿性)
• 通信で得られた内容が適切に管理されていることが明確であること(セキュリティ・ポリシ,プライバシ・ポリシ等)
セキュリティ確保のための基盤技術
3
4
暗号(秘匿性)
平文 plain text
暗号文 cipher text
暗号化 encryption
複号(化) decryption
鍵
4
5
• 対称(共通)鍵暗号:秘密鍵 (secret key) • 暗号化と復号化の鍵が同じ,または,片方の鍵から別の鍵が容易に推測可能
• 暗号化のコスト(計算時間等)が低い • 非対称(公開)鍵暗号:公開鍵 (public key)・私有鍵 (private key) • 片方の鍵を得ても別の鍵が推測困難 • 暗号化のコスト(計算時間等)が高い
暗号の種類
5
6
• 秘密鍵を相手に渡すには別の経路が必要 • 複数人で秘密鍵を持ち合うのは困難 • 未知の人との通信が困難
対称(共通)鍵暗号
暗号文平文
秘密
暗号文 平文
秘密安心できない 通信路
安全な通信路
A B
秘密鍵 秘密鍵
6
7
• 単換字暗号(シーザー暗号) • 一定のルールで別の文字に変換する • IBM → HAL (一文字手前の文字)
• ブロック暗号 • 固定長の文字をまとめて暗号化する • DES (Data Encryption Standard) • AES (Advanced Encryption Standard) • 他に3DES, AES, Blowfish, RC6など
対称(共通)鍵暗号の種類
7
8
• ストリーム暗号 • ビットまたは複数ビットをまとめて、乱数系列を鍵として暗号化し、転送する
• 注意点 • 鍵を安全に共有することが困難
対称(共通)鍵暗号の種類
8
9
• 花子は太郎に宛てた手紙を箱に入れ,自分の鍵をかけて太郎宛に送る。
• 太郎は箱は開けることはできないが,自分の鍵をさらにかけて,花子宛に送り返す。
• 二重に鍵をかけられた箱を受け取った花子は,自分の鍵を外し,太郎の鍵だけがかかった箱を送り返す。
• 太郎は自分の鍵で箱を開け,手紙を読む!
• 「暗号」でこの方法が使えないのはなぜ?
共通鍵を共有せずに安全に送る?
9
10
• 鍵を共有する必要は無い • 公開鍵がわかれば未知の人と通信が可能 • 暗号化したのがA本人である保証は無い
非対称(公開)鍵暗号:秘匿性
暗号文平文
秘密
Bの公開鍵
暗号文 平文
秘密
Bの私有鍵
安心できない 通信路
鍵の共有は 不要
A B
10
11
• W.Diffe, M.E.Hellman が方式を考案(1976) • RSA暗号(素因数分解問題)
• R.Rivest, A.Shamir, L.Adelmanの提案 • EIGamal暗号(離散対数問題) • 楕円曲線暗号(離散対数問題) • 特徴
• 素因数分解,離散対数,楕円曲線など,数論的構成要素を持つ
非対称(公開)鍵暗号の種類
11
12
• 共通鍵暗号用に,秘密鍵を共有するためにも利用できる
公開鍵暗号:鍵確立
暗号化 した 秘密鍵
秘密鍵
秘密
Bの公開鍵
秘密
Bの私有鍵
安心できない 通信路
A B暗号化 した 秘密鍵
秘密鍵
12
13
• 確かにAが送ったことがわかる • 送ったデータが正確に届いたことがわかる(データの完全性)
• 暗号化することも可
公開鍵暗号:デジタル署名
署名付 平文
平文
Aの私有鍵
署名付 平文
平文
Aの公開鍵
安心できない 通信路
鍵の共有は 不要A B秘密
13
14
• 秘密鍵を作って暗号化する • 秘密鍵はAの私有鍵で署名,Bの公開鍵で暗号化する • BはBの私有鍵で秘密鍵を得て平文化
公開鍵暗号を使った通信例
暗号文平文
秘密
秘密鍵
安心できない 通信路
A B
Aの私有鍵
暗号化
署名 した 秘密鍵
署名暗号化 署名 した 秘密鍵
Bの公開鍵
暗号化
14
15
• PKI : 「公開鍵認証基盤」 • 公開鍵暗号を使用することが有効であることはわかった
• ただし,公開鍵が正しく本人のものであることを保証する機能が必要になってくる
• この機能を実現するための仕組みが PKI
PKI (Public Key Infrastructure)
15
16
• 認証 authetification 本人であること,正しいデータ源であることの保証
• 完全性 integrity 通信路で改竄されていないことの保証
• 秘匿性 confidentiality データのプライバシの保証
PKI のサービス(保証)
16
17
• 認証機関 (CA: certification authority) • 公開鍵証明書
• 本人の名義+公開鍵に CA がデジタル署名したもの
• 使用者は CA を信頼することで成立 • 証明書リポジトリ
• 公開鍵証明書を参照できるDBサーバ
PKI を実現するための要素 (1)
17
18
PKI の信頼モデル
CAの 自己署名証明書
BA
Aの署名文書Aの 公開鍵 証明書
CAAとBの信頼ポイント
Aの署名文書 Aの公開鍵 証明書
CAの自己署名 証明書
検証検証
18
19
• 証明書の失効機能 名称変更,鍵の盗難,資格の停止等
• 私有鍵のバックアップ機能 鍵の紛失により復号できなくなる
• 自動更新機能 期限切れに対して自動的に更新する
• 鍵履歴管理機能 古い証明書で暗号化されたデータを検証するために必要
PKI を実現するための要素 (2)
19
20
• 否認防止機能 悪用された証明によって,その他の証明が否定されないようにする
• クライアント・ソフトウェア 検証プロセスを自動的に実行する機能
• CA 間の相互認証 • 安全なタイムスタンプ機能 証明書の記録に必要
PKI を実現するための要素 (3)
20
21
署名を検証する際は, CAの署名だけでなく,有効期間や拡張フィールド等の検証も必要 (過去に有効期間の検証を飛ばしてしまうバグのあるアプリケーションもあった)
証明書例 (X.509 v3)
証明書バージョン番号 証明書シリアル番号 デジタル署名アルゴリズム識別子 発行者名の識別名 有効期間 本人の識別名 本人の公開鍵 アルゴリズム識別子 公開鍵 v3 拡張部 拡張フィールド(タイプ,フラグ,値) ... CA のデジタル署名 アルゴリズム識別子 署名
21
22
SSL (Secure Socket Layer)
mycomputer.59304 -> wm.ipc.fukushima-u.ac.jp.HTTPS:wm.ipc.fukushima-u.ac.jp.HTTPS -> mycomputer.59304:mycomputer.59305 -> repo1.secomtrust.net.HTTP:repo1.secomtrust.net.HTTP -> mycomputer.59305mycomputer.59306 -> repo1.secomtrust.net.HTTP:repo1.secomtrust.net.HTTP -> mycomputer.59306:mycomputer.59304 -> wm.ipc.fukushima-u.ac.jp.HTTPS:
22
23
層 層名 主要プロトコル 説明等 アドレス
7アプリケーション
httpsmtpdns
それぞれのアプリケーションごとの機能・アプリケーション特有の機能・データの表現方法など
「ドメイン名」
アプリケーションに依存するアドレス6
プレゼンテーション
5 セッション SSL アプリケーション間通信の暗号化など
4トランスポート TCP, UDP アプリケーション間の通信 ポート番号
3ネットワー
クIP
arp, icmp ネットワーク間の転送 IPアドレス
2データリン
ク ethernet ネットワーク内通信/MACプロトコル MACアドレス
1 物理 ethernet ケーブル,コネクタ,電気的特性など
23
24
• TCP/IP 通信のソケットレベルで PKI を行う • https で使うサーバ証明書の作成手順 • サーバ用の公開鍵・私有鍵の作成 • 公開鍵をもとに証明書署名要求を作成 • CA に署名してもらう • 自己署名の場合は CA の公開鍵・私有鍵・自己証明書を作ってから署名
• 署名した証明書をサーバに設定
SSL (Secure Socket Layer)
24
25
•「スタート」「名前を指定して実行」でcertmgr.msc
Windows 7,10 での証明書
25
26
•「アプリケーション」「ユーティリティ」「キーチェーンアクセス」
Mac OS X での証明書
26