ネットワークセキュリティー

情報の暗号化
-必要性とその原理-
江崎浩、中山雅哉
東京大学 情報基盤センター
[email protected]
1
はじめに
• セキュリティについて
– システムセキュリティ対策
– ネットワークセキュリティ対策
• セキュリティ対策としての情報の暗号化
– いくつかの動作原理
– アプリケーションでの対応策の実際
2
What is “Security” ?
• 研究社 新英和大辞典より
–
–
–
–
–
–
–
安全、大丈夫、無事 (safety)
安心 (ease)、心丈夫 (confidence)
油断 (overconfidence)
防衛、防護 (defence)、保護 (protection)
[法] 保証 (guarantee)
有価証券 (stocks and bonds)
(公務員の信頼性や所属官庁などに対する) 秘密監
視団
3
What is “Security” ?
• 研究社 新英和大辞典より
–
–
–
–
–
–
–
安全、大丈夫、無事 (safety)
安心 (ease)、心丈夫 (confidence)
油断 (overconfidence)
防衛、防護 (defence)、保護 (protection)
[法] 保証 (guarantee)
有価証券 (stocks and bonds)
(公務員の信頼性や所属官庁などに対する) 秘密監
視団
4
セキュリティとは何か?
• 「守るべきものを守ること」
↓
• 「守るべきもの」について
– 「計算機と計算機ネットワーク」に限定
• 「守ること」について
– 何から保護するのか?
– セキュリティ対策のためにどれだけの時間、
労力、予算を充てるか?
5
「守るべきもの」 (類別)
• 計算機
– システムセキュリティ
• 計算機ネットワーク
– ネットワークセキュリティ
6
セキュリティ対策の必要性
• システムに対する脅威
– ユーザのデータが改竄される危険性がある
• Webページの改竄, データの消去など
– 計算機資源が不正利用される危険性がある
• SPAM relay, DDoS 攻撃の一翼など
• ネットワークに対する脅威
– 1つでもセキュリティ・レベルの低い計算機が
あると、他の計算機も危険に晒される
• 踏み台アタック, sniffer など
7
システムセキュリティ対策(1)
• 不要な計算機の停止
• 不必要なサービスの停止
– OSインストール時から動くサービスの見直し
• UNIX: Sendmail, rpc関連サービス, NIS等
• Windows: NetBEUI等
• Macintosh: AppleShare等
– システム起動時に動くサービスの見直し
• /etc/rc等で起動されるサービス
• /etc/inetd.conf 等で指定されるサービス
– 計算機やサービスへのアクセス制限の実施
• Tcpwrapperなどの活用
8
システムセキュリティ対策(2)
• OS等へのセキュリティ対策
– 日頃からセキュリティ対策情報を入手
• ベンダーからのセキュリティ関連情報
• CERT/CC, JPCERT 等のアドバイザリ
– 稼動サービスに関するログ監視
• 不正アクセスなどに関する状況把握
– 定期的なバックアップ
• 問題発生時の早急な復旧のために
9
システムセキュリティ対策(3)
• 共用ホストでのアカウント管理
– 複数人で共有するアカウントを作らない
– ユーザが管理できないアカウントの整理
• 利用者の行うアカウント管理
– 簡単に類推できるパスワードにしない
– 定期的なパスワード変更
– パスワードを他人に知られない様に管理する
10
悪いパスワードとは
• 6文字以下の短い文字列
• 自分、配偶者、両親、子ども、ペットの名前やあ
だ名
• 友人、上司の名前やあだ名
• 自宅や会社の電話番号
• 誰かの誕生日
• 英語、日本語、外国語の辞書にある単語
• 地名、固有名詞
• 単純な文字列 (aaaaaaaa, 12345678 など)
11
良いパスワードとは
•
•
•
•
長い
憶えやすく、書き留める必要がない
素早く入力できる
大文字、小文字、数字、記号などを織り交
ぜている
12
システムセキュリティ対策(4)
• クライアントホストにおける管理
–
–
–
–
OS等へのセキュリティー対策情報の入手
ファイル共有時のアクセス権限をチェック
ウィルスチェックプログラムによる予防措置
定期的なバックアップ
• 利用者が行う注意事項
– 不用意なソフトウェア導入を避ける
– 電子メイルの添付ファイルにも注意を払う
13
システムセキュリティ対策のまとめ
• どういう対策が必要かを調べる方法は?
– セキュリティ診断サービス
• 対策が済んだか確認する方法は?
– 電子メイルの不正中継テスト
• コンピュータウィルスへの予防方法は?
– コンピュータウィルス対策ソフトウェアの配布
• セキュリティ関連情報を調べる方法は?
– セキュリティ・リンク
http://www.nc.u-tokyo.ac.jp/security/
14
システムセキュリティ対策で万
全?
• NO!!
• ネットワークを流れる情報の危険性
– telnet, ftp, pop などの実例
15
簡単な通信モデル
A
盗聴可
X
R
B
16
ネットワーク構成(1)
Router
HUB
A
HUB
B
X
17
ネットワーク構成(2)
Router
HUB
S/W Hub
A
X
S/W HUB
B
研究室
18
システムセキュリティ対策で万
全?
• NO!!
• ネットワークを流れる情報の危険性
– telnet, ftp, pop などの実例
• 何が必要?
• ネットワーク上の情報を守る方法
– パスワードの暗号化 → OTP、apop
– 通信自身の暗号化 → ssh、SSL, (Ipsec)
– 情報の正当性保証 → PGP等
19
ネットワークセキュリティ
実世界の“価値ある”情報がネットワーク上に存在し
交換されている。
→ 情報の保護、利用者の認証、不正アクセスの防止
保護対象;
(1) データ
(a) 機密性(他人に知られたくない情報)
(b) 保全性(他人に変更されたくない情報)
(c) 可用性(管理を必要とする情報)
(2) 資源 (CPU、メモリなど)
(3) 評判
20
ネットワークセキュリティ
1. セキュリティーポリシーを決める
2. ユーザーの認証(パスワード管理)
3. ファイルの保護
4. Secureなホストへの アクセスの方法
5. アクセス制御(xinetd, TCP wrappers)
6. 暗号化 (IPsec)
7. Firewall (e.g., socks)
8. 電子メイルシステム
21
ネットワークセキュリティ
1. セキュリティーポリシーを決める
2. ユーザーの認証(パスワード管理)
3. ファイルの保護
4. Secureなホストへの アクセスの方法
5. アクセス制御(xinetd, TCP wrappers)
6. 暗号化 (IPsec)
7. Firewall (e.g., socks)
8. 電子メイルシステム
22
ユーザの認証(アカウント管理)
23
ユーザの認証(アカウント管理)
1. 想像しにくいパスワードの使用
-すべて小文字、すべて大文字とか、、、、
2. パスワードファイル(/etc/passwd)の保護
- Shadow Password File ; /etc/master.passwd
3. 使い捨てパスワード(OTP; One Time Password)
- Challenge & Response 型 with 共有鍵
4. ssh ; Secure Shell
- 暗号化された Remote Login with 公開鍵+秘密鍵
5. RADIUS (Remote Authentication Dial In User Services)
- ダイアルアップユーザに対する認証処理
24
使い捨てパスワード ; OTP
・毎回異なるパスワードを利用する。
・Challenge & Response 型の認証
・同一の鍵をサーバーとクライアント間で共有する。
・例えば、
ftp://ftp.nrl.navy.mil/pub/security/opie/opie-2.3.tar.gz
・Windows95 上でのクライアントソフトもある。
19462
19462
28472
f(19462,28472)
= JOB ARTS WERE FEAT TITLE
JOB ARTS WERE FEAT TITLE
OK
25
使い捨てパスワード ; OTP
1. 共有鍵の生成 : 必ずコンソールから行うこと !
$ opiepasswd -c
Using MD5 to compute response:
Enter old secret pass phrase: 3J5Wd6PaWP
Enter new secret pass phrase: 9WA11WSfW95/NT
Again new secret pass phrase: 9WA11WSfW95/NT
ID tyler OPIE key is 498 wi01309
CITE JAN GORY BELA GET ABED
2. OPIE Keyの生成
$ opiekey -n 5 495 wi01309
Enter secret pass phase: 9WA11WSfW95/NT
491: HOST VET FOWL SEEK IOWA YAP
492: JOB ARTS WERE FEAT TILE IBIS
26
使い捨てパスワード ; OTP
3. Login
$ telnet sh.wide.ad.jp
login: tyler
otp-md5 492 wi01309
response or password: JOB ARTS WERE FEAT TILE IBIS
OTPでできること:
パスワード盗聴の防止
OTPでできないこと:
login許可の後のデータは盗聴可能
27
電子メイルシステムでの
セキュリティ技術
• 電子メイルシステムの概要
• メイル関連のセキュリティ的な問題・対策
–
–
–
–
–
ファイルアクセス権
パスワード保護; APOP
不正使用; SMTPサーバ アクセス制御
メイル改竄; 暗号メイル、ヘッダチェック
SPAMメイル
28
パスワード保護
- APOP -
• POP3の問題点
– パスワード情報が定期的に平文で交換される
– telnet(1キャラクタ/パケット)よりも危険
• 使い捨てパスワード(OTP)の利用
– パスワード=
MD5(PROCESS_ID、TIME_STAMP、
HOSTNAME、APOP_PASSWORD)
29
パスワード保護
- APOP ; qpopper2.2-
・ APOPサーバ
(1) ディレクトリー作成
# mkdir /usr/local/bin/etc/popper
# chown pop.bin /usr/local/bin/etc/popper
# chmod 700 /usr/local/etc/popper
(2) APOPユーザDB作成
# /usr/local/bin/popauth -init
→ /usr/local/etc/popper/pop.auth.db
30
パスワード保護
- APOP ; qpopper2.2-
・ APOPサーバ
(3) APOPユーザの登録
# /usr/local/bin/popauth -usr hiroshi
Changing POP password for hiroshi
New password: *******
Retype new password: ********
(4) APOPユーザの削除
# /usr/local/bin/popauth -delete hiroshi
・ APOPクライアント
POP→APOP、 APOPパスワード設定
31
APOP; Authenticated POP
IP address of esaki.nc.u-tokyo.ac.jp is 130.69.251.25
Socket 140 connection with port number 110 established
S: +OK QPOP (version 2.2-krb-IV) at esaki.nc.u-tokyo.ac.jp
starting. <[email protected]>
C:
APOP hiroshi dda5d5b82f4f6ac1d25adea125e170fa
S:
+OK hiroshi has 2 message(s) (4553 octets).
C:
LIST
S:
+OK 2 messages (4553 octets)
S:
1 4553
S:
.
C:
RETR 1
S:
+OK 4553 octets
Receiving #1...
C:
DELE 1
S:
+OK Message 1 has been deleted.
C:
QUIT
Remote host closed socket
S:
+OK Pop server at esaki.nc.u-tokyo.ac.jp signing off.
Socket closed successfully
32
暗号化・認証アルゴリズム
33
暗号化・認証アルゴリズム
[1] 平文の認証 (一般には、 N bits(入力) → m bits(出力), N>m)
(1) メッセージダイジェスト(圧縮暗号化)
- MD5 (Message Digest 5); RFC1321, RCC1828
→ POP3などでの認証に利用されている。
(2) HMAC (Keyed-Hashing for Authentication); RFC2104
- RFC1826(AH)などでのメッセージ認証
[2] 平文の暗号化
(3) 暗号化
① DES(Data Encryption Standard) ; 秘密鍵方式
② RSA(Rivest, Shamir, Adleman) ; 公開鍵方式
34
秘密鍵暗号方式
・ DES (56bit鍵)
・ トリプルDES (112bits鍵)
・ RC2, RC4 (1024bits以下鍵)
・ IDEA (128bits鍵) ; PGPで使用されている
出典: http://www.psn.or.jp/TROUBLE/security.html
35
公開鍵暗号方式
例; ssh (Secured Shelll)
出典: http://www.psn.or.jp/TROUBLE/security.html
36
安全なRemote Shell
- ssh ; secure shell ・公開鍵暗号方式; 公開鍵+秘密鍵
・フィンランド ヘルシンキ大学で開発
・RSA、 IDEA、 DES 方式による暗号化
・例えば; http://www.cs.hut.fi/ssh
・Windows95版クライアントもあります(Teraterm)
・sshd (secure shell daemon)
・ssh (rlogin)、scp (rcp)、ssh-keygen
・鍵情報ファイル
.ssh/identity
.ssh/identity.pub (client) => .ssh/authorized_keys (server)
.ssh/ssh_known_hosts, /etc/ssh_known_hosts
37
安全なRemote Shell
- ssh ; secure shell 1. 公開鍵(Public key)の交換とチェック
/etc/ssh_known_hosts、 ..ssh/known_hosts
2. クライアントは秘密鍵を使って Session Keyを送る
(*) Session keyは毎回変わる。
3. サーバは公開鍵を使って Session Key を平文化する
4. Session Keyを用いて暗号化・平文化
公開鍵A
セッション鍵
with 公開鍵A
サーバー
秘密鍵B 公開鍵A
公開鍵A
f (セッション鍵,秘密鍵B)
セッション鍵での暗号通信
クライアント38
安全なRemote Shell
- ssh ; secure shell 1. 鍵ファイルの生成; ssh-keygen
> ssh-keygen
Initializing random number generator....
Generating p: ...............++(distance 616)
Generating q: ........++(distance 244)
Computing keys...
Testing keys....
Key generation complete.
Enter file in which to save the key ($home/.ssh/identity)
Enter passphrase: Pdky&tiaj
Enter the same passphrase again: Pdky&tiaj
Your identification has been saved in $home/.ssh/identity.
Your public key is:
1024 35 1589082636485498264829464945374846384739274
home@pecan
Your public key has been saved in $home/.ssh/identity.pub
39
安全なRemote Shell
- ssh ; secure shell [注意]
・ リモートからの root でのログインは禁止するべき。
ファイル /etc/sshd_config に
PermitRootLogin no
を付け加える。
40
電子メイルシステムでの
セキュリティ技術
• 電子メイルシステムの概要
• メイル関連のセキュリティ的な問題・対策
–
–
–
–
–
ファイルアクセス権
パスワード保護; APOP
不正使用; SMTPサーバ アクセス制御
メイル改竄; 暗号メイル、ヘッダチェック
SPAMメイル
41
メイルの改竄への対策
• 暗号・署名メイル
– PGP、S/MIME、PEM、MOSS、KPS
– トランスポート(End-to-End)モード 、トンネル
(GW)モード
• メイルヘッダのチェック
– Received: 行
– Message-Id: 行
42
電子署名方式
・ MD5 (128 bits)
・ SHA (160 bits)
出典: http://www.psn.or.jp/TROUBLE/security.html
43
PGP署名メイル
[ 署名したいメイル ]
7月30日午前10時に天満橋で会いましょう。
[ 署名されたメイル]
-----BEGIN PGP SIGNED MESSAGE-----
7月30日午前10時に天満橋で会いましょう。
-----BEGIN PGP SIGNATURE----Version: 2.6.3ia
Charset: noconv
iQCVAwUBMey8R6UtC+xzFETZAQEnUAP+N30di02slY+rRYa2gBJ2u2ImWofjeyks
1AkvsN9errDk4N/VcFmc3d6F4heDkiy87u3XAVoulz2orb9xZ3qFveoEZp3QLLa6
Pkzs6/N1nmJZFZFlf1M8yUR5WZTbyaVHQmC1AuSZhJsM8+8S/+IbpXVPJJ68M4JE
cDYBT86eekM=
=UE6f
-----END PGP SIGNATURE----出典: http://www.psn.or.jp/TROUBLE/security.html
44
PGP暗号化メイル
公開鍵暗号化方式(暗号化方式; RSA+IDEA)
出典: http://www.psn.or.jp/TROUBLE/security.html
45
PGP暗号化メイル
[ 暗号化したいメイル ]
7月30日午前10時に天満橋で会いましょう。
[ 暗号化されたメイル ]
-----BEGIN PGP MESSAGE----Version: 2.6.3ia
hIwDpS0L7HMURNkBA/4qk4BDXaiLag9tOS8srdd09IP4Pbocw8ERnYZKc8BJZHRq
bmePoSNRpv8QwRPttwB3pkUhPH9ET5BbGiyuw36hLvIet5z5ot3RS+XnfSz1Tyxw
xkXT+nNDCE6Gntb6JqBUym2/FRowwMNOc1bnKD6eIqZfekDUWBuHKSRduH6BfqYA
AAA3YBJcBDcrQtcIuA5R+bvivZ8gc8Fx3JCcUtW4yH+embVTTSUw+xTt0JSUoo93
u5+LHGrrzBESSg==
=00WV
-----END PGP MESSAGE-----
出典: http://www.psn.or.jp/TROUBLE/security.html
46
鍵の証明と配布
・証明した人のリストをつける
例; PGP暗号化メール
出典: http://www.psn.or.jp/TROUBLE/security.html
47
鍵の証明と配布
・証明を発行する機関・組織を利用
例; Netscape Webサーバ 暗号化情報交換
出典: http://www.psn.or.jp/TROUBLE/security.html
48
参考文献
[参照文献]
・ W. Stevens, “TCP/IP Illustrated”, Addison-Wesley,
ISBN 0-201-63346-9, 1994.
・ 亀田 久和, “sendmail manual & reference”,
秀和システム, ISBN4-87966-796-X、1998年.
・ C.Hunt, “TCP/IP Network Administration”,
O’Reilly, ISBN 1-56592-322-7, 1998年
・ “インターネットRFC事典”, 笠野英松監修、
アスキー出版、ISBN4-7561-1888-7、 1998年
・ http://www.psn.or.jp/TROUBLE/security.html
49
参考文献(続き)
• UNIXセキュリティ
– Sinmpson Garfinkel, Gene Spafford 著
– 山口英監訳、アスキー、1993年
• カッコウはコンピュータに卵を産む
– Clifford Stoll 著
– 池央耿訳、草思社、1991年
• ころばぬ先のセキュリティ
– 山本和彦、UNIX magazine、アスキー
– 1994/5-1995/3
50
参考文献 (続き)
• UNIXシステムセキュリティと管理
– クリストフ・ブラウン著
– 石橋、草刈、横川、松井訳、アジソンウェスレ
イ、1996年
• Firewalls and Internet Security
– William R. Cheswick, Steven M. Bellovin 著
– Addison-wesley, 1994年
51
参考文献(続き)
• 公開鍵暗号系
– アルト・サロマー著
– 足立暁生訳、東京電機大学出版局、1992年
• インターネット世紀のコンピュータネットワーク暗
号システム
– 菊池豊彦著、NECクリエイティブ、1995年
• 現代暗号
– 岡本龍明、山本博資著
– 産業図書、1997年
52
参考文献(続き)
• PGP 暗号メールと電子署名
– Simson Garfinkel 著
– 山本和彦監訳、オライリージャパン、1996年
53
54
アクセス制御
1. セキュリティーポリシーを決める
2. ユーザーの認証(パスワード管理)
3. ファイルの保護
4. Secureなホストへの アクセスの方法
5. アクセス制御(xinetd,TCP wrappers)
→ 6. 暗号化 (IPsec)
(1) 暗号メール
(2) トランスポート層での暗号化
(3) IPsec
7. Firewall
55
暗号化・IPsec
1.暗号メール
- PEM, MOSS
- S/MIME
- PGP (Pretty Good Privacy)
2. トランスポート層での暗号化
- SOCKS (http://www.socks.nec.com/)
3. IPsec
- 認証ヘッダ(AH: Authentication Header)
- 暗号ペイロード(Encapsulating Security Payload)
- 鍵交換プロトコル(Internet Key Exchange)
56
IPsec
1. 認証ヘッダ(AH: Authentication Header)
- 送信者の認証
- データの改竄の検出
→ 一方向性ハッシュ関数の利用
(HMAC-MD5, HMAC-SHA-1)
IP
AH
Payload
Next Header Payload Len.
Reserved
Security Parameters Index (SPI)
Sequence Number
Authentication Data (ICV)
57
暗号化・IPsec
2. 暗号ペイロード(Encapsulating Security Payload)
IPペイロードの暗号化
- DES-CBC、 (3DES-CBC)、 HMAC-MD5、
HMAC-SHA-1、NULL-Auth、 NULL-Enc
IP
ESP
Security Parameters Index (SPI)
Sequence Number
Payload Data
padding
Pad Length Next Header
Authentication Data (ICV)
58
暗号化・IPsec
・ AH、ESPに関する2つの動作運用形態
(1) トランスポートモード; End-to-End
IP
Payload
IP
ESP
(2) トンネルモード; Gateway-to-Gateway
IP1
IP2
Payload
ESP
59
暗号化・IPsec
- トランスポートモード Internet
IP
Payload
IP
Payload
IP
ESP
IP
ESP
60
暗号化・IPsec
- トンネルポートモード Internet
IPsec-GW
IP1
IPsec-GW
Payload
IP2 IP1
IP1
ESP
IP2 IP1
Payload
ESP
61
暗号化・IPsec
3. 鍵交換プロトコル(Internet Key Exchange)
IKE
- 旧 ISAKMP/Oakley
- 共有鍵の動的交換
- セキュリティーアソシエーションの更新
- Deffie-Hellman 鍵配送方式
62
ネットワークセキュリティ
- IETFでの議論 RFC2196 : Site Security Handbook
RFC2084 : WWW Transaction Security
RFC1948 : TCP Sequence Number攻撃への対処
RFC1457 : Security Labelのフレームワーク
RFC1335 : NISデータベース
RFC1281 : 安全運用のガイドライン
RFC1135 : 1998年11月2日のワーム対策
RFC1108 : IP Security Options
63
ネットワークセキュリティ
- IETFでの議論 (1) Application/プロトコル単位での個別機能
(2) Applicationレベルでの共通機能
(3) IPレベルでの認証機能
- IPsec
- AH(Authentication Header) ; RFC1826
- ESP(Encapsulating Security Payload); RFC1827
(4) IPデータグラムのカブセル化
- PPTP (Point-to-Point Tunneling Protocol)
- L2F (Layer 2 Forwarding)
64