認証技術・署名技術

認証技術・署名技術
2000・11・6
佐野 晋
要求

安全にメッセージを相手に送りたい



通信相手を確認したい



改ざん防止
盗聴の防止
発信者がアドレスを偽っていない保証
受信者がアドレスを偽っていない保証
さらに



第3者がメッセージの正しさを確認できる
送った相手がそのメッセージを拒否できない
通信の事実を隠したい
2000/11/6 S.Sano
認証技術・署名技術
2
要求-かっこよくいうと

機密性 (Confidentiality)



完全性 (Integrity)


改ざんの検知,防止
真正性 (Authenticity)


第3者に情報が伝わらない,
盗聴の防止
送信者の正当性
否認拒否 (Non Repudiation)


送信者が送信の事実を拒否できない機能
受信者が受信の事実を拒否できない機構
2000/11/6 S.Sano
認証技術・署名技術
3
どうやってつくるか

機密性(機密保護)


完全性(改ざん検出)



暗号
暗号
デジタル署名
真正性(成りすまし防止)



暗号
デジタル署名
認証
2000/11/6 S.Sano
認証技術・署名技術
4
暗号の基礎知識
ひらぶん
平文
plaintext
暗号化鍵
復号化鍵
encryption key
decryption key
暗号文
暗号化
ciphertext
encryption
復号化
decryption
平文
解読
cryptanalysis
平文
2000/11/6 S.Sano
認証技術・署名技術
5
暗号技術の変遷
①通信を秘密に
②暗号アルゴリズムを秘密に
③暗号アルゴリズムは公開,鍵を秘密に
④復号化鍵*のみを秘密に
*:正しくは公開鍵方式の二つの鍵の
いずれか一方
2000/11/6 S.Sano
認証技術・署名技術
6
暗号認証技術の基礎知識

慣用(対称鍵)暗号系 … DES




暗号化と復号化は同じ鍵
送信者と受信者は鍵を共有する
高速
公開鍵暗号系 … RSA



暗号化と復号化で鍵が違う - ふたつの鍵
片方の鍵は自分以外に知られても良い
公開鍵と秘密鍵
2000/11/6 S.Sano
認証技術・署名技術
7
一方向ハッシュ関数

任意のデータ長を固定のデータに変換


ぶつかりが少ない
出力から入力が予測しにくい
任意長
データ
2000/11/6 S.Sano
ハッシュ関数
認証技術・署名技術
128bit
データ
8
メッセージダイジェスト

一方向性ハッシュ関数で




MD2,MD4,MD5



元データの変更が出力に大きく影響
逆演算が困難
同じメッセージダイジェスト値をもつ別の元データを見
つけるのが困難
L.Rivest
128ビット
SHA-1


NIST,NSA
160ビット
2000/11/6 S.Sano
認証技術・署名技術
9
慣用暗号系を用いた暗号と認証


平文
秘密の鍵をお互いに共有
相互に相手認証が可能
暗号化
暗号文
秘密鍵
復号化
平文
秘密鍵
共有
2000/11/6 S.Sano
認証技術・署名技術
10
公開鍵暗号系を用いた秘密性の確保


送り先の公開鍵でメッセージを暗号化
送り先の秘密限で復号
平文
A
暗号化
暗号文
Bの公開鍵
2000/11/6 S.Sano
復号化
Bの秘密鍵
認証技術・署名技術
平文
B
11
公開鍵暗号系を用いたデジタル署名



発信元の秘密鍵でメッセージを暗号化
発信元の公開限で復号
デジタル署名

第3者も正当性と送信元の確認ができる
平文
A
暗号化
暗号文
Aの秘密鍵
2000/11/6 S.Sano
復号化
Aの公開鍵
認証技術・署名技術
平文
B
12
一方向関数を用いたメッセージ
認証子


メッセージは平文
メッセージ認証子(MIC)を生成して添付
MIC-Message Integrity Check
平文
H
A
2000/11/6 S.Sano
暗号化
MIC
Aの秘密鍵
H
比
復号化
較
Aの公開鍵
認証技術・署名技術
B
13
認証

個人認証…システムがユーザを認証




本人しか知らない事実 (例: パスワード)
持ち物(例: 印鑑、 ICカード)
身体的特徴を利用(例: 指紋、網膜)
プロセス認証…プロセスやホストを認証



低レベルの識別子の利用(例:アドレス、プロセスID)
パスワード
暗号技術に基づいた認証子
2000/11/6 S.Sano
認証技術・署名技術
14
認証

ゴール
要求が本物の要求者の意志に基づくものである
ことを要求受理者が確認する

要求の一般的な処理の流れ
①本人を認証(authentication)
②要求が正当であることを確認(authorization)
③要求の受理、処理
2000/11/6 S.Sano
認証技術・署名技術
15
パスワード

システムと利用者で秘密を共有



システム側では暗号化(ハッシュ)して保存
利用者は記憶し必要に応じて入力
パスワードによる認証の限界

利用者のパスワード管理の問題




名前,単語など類推されやすいパスワード
メモ書き
忘れる
ネットワーク上をそのまま流れ、盗聴の危険
2000/11/6 S.Sano
認証技術・署名技術
16
使い捨てパスワード

一度だけ有効なパスワードの生成



同期式



disposable password
onetime password
カウンタ同期 (ex. SafeWord)
時刻同期 (ex. SecurID)
非同期式

チャレンジ/レスポンス型



2000/11/6 S.Sano
S/KEY, OTP
SafeWord
SNK
認証技術・署名技術
17
チャレンジ・レスポンス型の例
ユーザ
クライアント
秘密鍵
サーバ
challenge = “23456876”
秘密鍵
暗号化
暗号化
response = “03426890”
検証
2000/11/6 S.Sano
認証技術・署名技術
18
S/KEY, OTP
ユーザ
n
n,seed,f (seed+s)
サーバ
クライアント
challenge = n-1,seed
秘密:s
f n-1
n-1
response = f (seed+s)
f
f:メッセージダイジェスト関数
2000/11/6 S.Sano
検証
認証技術・署名技術
19
使い捨てパスワードの問題

ユーザに計算能力が必要





計算ソフトウエア
専用計算機
計算済みのリスト
同じチャレンジ・レスポンスの対が現れる
可能性
秘密の値が類推される可能性
2000/11/6 S.Sano
認証技術・署名技術
20
暗号アルゴリズムによる認証

秘密の鍵を共有


慣用鍵暗号系
秘密鍵による暗号化

公開鍵暗号系
2000/11/6 S.Sano
認証技術・署名技術
21
鍵の量

n人でお互いに認証すると
慣用暗号系の場合 …n × (n - 1) / 2
 公開鍵暗号系の場合 … n対
の鍵が必要


公開鍵を用いるとスケールするが

処理に時間が必要
→ ハッシュ関数,と組み合わせ

相手の公開鍵の信頼性は?
信頼おける第3者による署名 = 証明書
2000/11/6 S.Sano
認証技術・署名技術
22
メッセージの電子署名
発注書
ベーコン100g
注文します
電子署名された発注書
ベーコン
100g
注文し
ます
ハッシュ
関数
暗号化
Aの
秘密鍵
署名
2000/11/6 S.Sano
認証技術・署名技術
23
メッセージの電子署名と確認
発注書の
電子署名
ベーコン100g
注文します
ハッシュ
関数
暗号化
注文主の
秘密鍵
署名
ベーコン100g
電子署名の 注文します
確認
署名
2000/11/6 S.Sano
ハッシュ
関数
比較
暗号化
認証技術・署名技術
注文主の
公開鍵
24
公開鍵の公開がポイント


本当にその公開鍵はそのユーザの公開鍵か?
証明書



鍵を第3者が証明
鍵発行者がユーザの公開鍵をデジタル署名する
鍵発行者の公開鍵は既知
2000/11/6 S.Sano
これは
佐野の
印である.
証明書発行局
認証技術・署名技術
25
証明書

公開鍵とその所有者情報の対応を第3者
が,確認して電子署名したもの
印鑑証明書
この鍵はAの
公開鍵である
ことを証明します
発行局
X.509証明書
バージョン番号
署名アルゴリズム
発行者名
有効期限
ユーザID
公開鍵
ハッシュ
関数
暗号化
CAの
秘密鍵
関連情報
2000/11/6 S.Sano
署名
認証技術・署名技術
26
公開鍵基盤



PKI – Public Key Infrastructure
証明書発行局(CA)を中心にした公開鍵
の流通基盤
X.509
2000/11/6 S.Sano
認証技術・署名技術
27
CAの機能
CA
CA
証明書発行局
(2)本人確認
(1)発行要求
+本人
確認情報
Aの鍵です
発行局
(3)発行
Aの証明書
A
B
ベーコン100g
注文します
A
2000/11/6 S.Sano
Aの鍵です
発行局
認証技術・署名技術
28
CA

Certification Authority
認証局または証明書発行局

証明書を発行する第三者機関




エンティティの認証と署名(Certificate)
証明取消の確認と署名(CRL)
階層化による分散管理が可能
信用度はポリシとそれに従った運用による
2000/11/6 S.Sano
認証技術・署名技術
29
CAの機能

Registration Authority


Issuing Authority


証明書に著名する機能
Publishing Authority


証明書を発行してよいかどうかを判断する機能
証明書を配布する機能
Validation Authority

個々の証明書の有効性を判定する機能
2000/11/6 S.Sano
認証技術・署名技術
30
CAの役割り
他のCAとの連携
(1)公開鍵Aの登録依頼
A
A
新規ユーザ
公開鍵DB
証明書発行局(CA)
B
(2)証明書の発行
ユーザAの公開鍵は
A
である.発行局
証明書発行局の役割
2000/11/6 S.Sano
CA
無効証明書
リスト
CRLの
発行
認証技術・署名技術
他ユーザ
からの
問い合わせ
31
セキュリティ強化メール

メールをやりとりする当事者間でのセキュリティ
強化





メール送信者の認証
メールの改ざん防止
メール内容の秘匿
配送系は従来どおり
二つの方式


PGP - Pretty Good Privacy
S/MIME - Secure/Multipurpose Internet Mail
Extentions
2000/11/6 S.Sano
認証技術・署名技術
32
SSL


Secure Socket Layer
Netscape Communications社が提案


主なブラウザに標準実装
インターネット上でのプライバシを保証




盗聴の防止
偽造の防止
改ざんの検出
利用アルゴリズム



機密保護: DES,IDEA,RC4,RC2
認証: RSA,DSS
改ざんの検出: SHA,MD5
2000/11/6 S.Sano
認証技術・署名技術
33
SSLと階層


トランスポート層とアプリケーション層の間
にあり,アプリケーションとは独立
トランスポートのセッションごとの機密保護
と認証
アプリケーション
SSL
TCP
IP
Link
2000/11/6 S.Sano
認証技術・署名技術
34
SSLの仕様



X509ベースの証明書を交換
セッション鍵を生成し,相手の公開鍵で封
印し,転送
そのセション鍵をもとに暗号化通信
2000/11/6 S.Sano
認証技術・署名技術
35
SSL セッション鍵の共有方法
サーバ
クライアント
接続要求
サーバの公開鍵 Ksrv(証明書)
Ksess を Ksrv で暗号化
{Ksess}Ksrv
セッション鍵(乱数)
Ksess
セッション鍵
Ksess
暗号通信
2000/11/6 S.Sano
認証技術・署名技術
36
IPsec

IPレベルでの認証/データ暗号化




AH …認証
ESP …暗号化
IPv4 および IPv6 がターゲット
鍵管理プロトコルとは独立
Security Association の確立が前提

トラフィック解析には対処しない
2000/11/6 S.Sano
認証技術・署名技術
37
IPsec(AH)




IP Authentication Header
IPデータグラムの保全性と認証を提供
(鍵付き)メッセージダイジェストを利用
配送途中で変化する値はメッセージダイ
ジェストの対象外


TTL(IPv4)
HopLimit (IPv6)
2000/11/6 S.Sano
認証技術・署名技術
38
鍵つきMD5による認証

お互いに秘密鍵をもってメッセージ認証
IPデータグラム
MD5
認証子(MIC)
MD5
鍵
送信側
2000/11/6 S.Sano
鍵
認証技術・署名技術
比
較
受信側
39
IPsec(ESP)




IP Encapsulating Security Payload
機密性を提供
AHとの併用が可能
ペイロード部分のみを暗号化


トンネルモード…IPペイロード全体
トランスポートモード…トランスポート層のみ
2000/11/6 S.Sano
認証技術・署名技術
40
Security Association

通信当事者間で合意した鍵情報
「誰から誰にデータを送る際に」
通信当事者の識別子情報
 「どの種類の」
利用する暗号アルゴリズム、パラメータ
 「どの鍵を使って」
利用する鍵


IPsecでは SPI で SAを識別
2000/11/6 S.Sano
認証技術・署名技術
41
DES

DES - Data Encryption Standard




平文
64bit
米国商務省が規定した暗号基準
商用をベースに広く利用
共通鍵暗号系(慣用暗号系)
64ビットのブロック暗号
DES
鍵
(56+8bit)
2000/11/6 S.Sano
暗号文
64bit
DES-1
平文
64bit
鍵
(56+8bit)
認証技術・署名技術
42
DES CBCモード

CBC - Cipher Block Chaining


同一平文でも異なった暗号文
IV(初期ベクトル)の割り当て

平文
パケットごとにランダムなIVを生成
DES
暗号文
鍵
2000/11/6 S.Sano
DES-1
平文
鍵
認証技術・署名技術
43
トリプルDES

DESを,さらに強力に

平文
112ビット鍵(2×56ビット)
D
D-1
鍵1 鍵2
2000/11/6 S.Sano
D
鍵1
暗号文
D-1 D D-1
鍵1
認証技術・署名技術
平文
鍵2 鍵1
44
HMAC

Hash Message authentication Code
MD5(K XOR opad, MD5(K XOR ipad, text))
ipad = the byte 0x36 repeated 64
times
opad = the byte 0x5C repeated 64
times.
2000/11/6 S.Sano
認証技術・署名技術
45
鍵管理の問題点

秘密鍵の安全管理の問題




安全性とシステムの処理効率
バックアップの必要性と危険性
管理する環境の物理的なセキュリティレベル
鍵変更時の影響の問題


鍵の紛失、盗難
証明書の期限切れ
2000/11/6 S.Sano
認証技術・署名技術
46
どの階層で暗号するのか?

階層





アプリケーション層 …ex.メール
プレゼンテーション層…ex.SSL
ネットワーク層
…ex. IPSec
リンク層
…ex. 回線暗号箱
エンドエンドセキュリティの考え方
2000/11/6 S.Sano
認証技術・署名技術
47