情報セキュリティ: 2007年6月22日

q
q
情報セキュリティ
第10回:2007年6月22日(金)
q
q
今後の予定

第10回:6月22日
q

第11回:6月29日
q

企業・組織のセキュリティ:ISMS,個人情報保護法
第14回:7月20日
q

理論:計算論,暗号プロトコル
第13回:7月13日
q

サーバセキュリティ
第12回:7月6日
q

暗号化ソフトウェア:SSL,SSH
質問に答えます,おさらい問題
第15回:7月??日(試験期間中)
q
試験
2
本日学ぶこと




Webの通信を暗号化:SSL (Secure Socket Layer)
リモートログインの暗号化:SSH (Secure SHell)
https://はHTTP + (SSL/TLS)
sshはtelnet, rlogin, ftp などを置き換える
3
SSL/TLS


HTTPなどより下位の層に位置し,暗号通信の枠組を提供す
るもの
SSL とTLS (Transfer Layer Security)
q
q
大枠は同じ,TLSはSSLの後継
よく用いられるバージョンは,SSL 3.0とTLS 1.0
4
SSL/TLSでできること

HTTPの暗号化(HTTPS)
q

http:// から https:// へ
アプリケーション層の他のプロトコルの暗号化
q
q
メール(SMTP,POP3)
ファイル転送(FTP)はFTPS(FTP Over SSL/TLS)
(HTTPS)
HTTP
(FTPS)
SMTP
POP3
FTP
…
SSL/TLS
5
暗号スイート



使用する暗号技術の「お勧めセット」
クライアント・サーバ間で暗号スイートが一致していなければ,
通信できない.
例
q
q
q
q
q
q
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_MD5
SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_RSA_WITH_NULL_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
RC4は対称暗号アルゴリズム
の一つ
DES40は鍵長40ビットのDES
NULLは暗号化しない
6
証明書


PKIの公開鍵証明書
だれが発行し,ディジタル署名をつける?
q
q

鍵をもらえば,どのコンピュータにつけてもいいの?
q

ベリサイン社が最も有名
自分で作ることもできるが,信頼度が下がる
鍵は通常,ホスト名(FQDN)単位で発行される
「オレオレ証明書」に注意!
q
q
偽装サイトに誘導されるかもしれない
「通信が暗号化されるので安心です」に騙されないように
7
ハンドシェイクプロトコル

SSL/TLS通信の確立をするため,クライアント-サーバ間で
交わされるプロトコル
q

暗号化はしない
すること
q
q
q
以降の通信で使用する暗号スイートを取り決める
証明書の検証により,ホストの正当性を確認する
 基本的にはサーバ証明書をクライアントが検証する
 クライアント証明書をサーバが検証することも(クライアント
認証)
以降の通信で暗号化に使用する鍵など(マスタシークレット)を
共有する
8
その他のプロトコル

レコードプロトコル
q

暗号仕様変更プロトコル
q

暗号スイートを切り替える.
警告プロトコル
q

これ以外のプロトコルの基盤となる.対称暗号で暗号化される.
エラーを通知する.
アプリケーションデータプロトコル
q
ハンドシェイクプロトコルを終えてから,送りたい情報を(暗号化
して)やりとりする.
9
SSL/TLSが守らないもの

個々の暗号技術は守らない
q

通信前の情報は守らない
q

個々の暗号技術の一つが安全でないと分かったら,
それを使用しない暗号スイートを選べばよい
パスワード・カード番号を入力したら,ショルダーハッキングや
キーロガーによって知られてしまうかも
通信後の情報は守らない
q
q
SMTPやPOP3の経路を暗号化しても,メールサーバ間のやり
取りは平文になる
情報漏えいの原因の多くは,サーバのデータ管理ミス
10
SSH

リモートホストとの通信を安全に行うためのプロトコル
q
q


クライアントは,サーバ(リモートホスト)の認証をする
サーバは,ユーザの認証をする
telnet, rlogin, ftp などのコマンドを置き換える
SSL/TLSやVPN (Virtual Private Network)とは別物
ローカルホスト
(SSHクライアント)
リモートホスト
(SSHサーバ)
11
SSHでできること

リモートログイン…ssh, slogin
q


ポートの転送(ポートフォワーディング)
ファイルのコピー…scp
FTPと似た方法でファイルをコピー…sftp
12
SSHの種類

製品かフリーか
q
q

SSH Tectia…SSH社の製品
OpenSSH…フリー.Linuxでも広く使われている
プロトコルバージョン
q
q
q
SSH1…安全性に問題があり,使われない
SSH2…広く使われている
製品のバージョンとは別!
13
準備

リモートホストでSSHサーバを起動させておく
q

TCPのポート番号22にアクセスできるようにしておく
以下の説明で出るファイル名は,Linux + OpenSSHでsshを
利用するときの標準的なもの
14
SSH2プロトコルの概要
クライアント
(ローカルホスト)
サーバ
(リモートホスト)
接続要求
バージョン番号通知,ID交換
鍵交換,ホスト認証,暗号化情報の交換
セッション暗号化,ユーザ認証
データ通信
図の出典:『情報セキュリティプロフェッショナル総合教科書』p.374(一部改変)
15
SSH2で使用される暗号アルゴリズム

公開鍵認証
q

鍵の共有
q


Diffie-Hellman鍵交換の修正版
認証後のデータ通信
q

RSAまたはDSAによるディジタル署名
RC4 (本日のスライド
p.6参照)互換の暗号
アルゴリズム
AES / 3DES / Blowfish / Arcfour / CAST などから選ぶ
データ通信の暗号化は公開鍵暗号ではなく対称暗号
鍵の共有や公開鍵認証で乱数を使う
16
サーバ公開鍵について



サーバ公開鍵(サーバのホスト公開鍵)は,SSHサーバが
最初に1回だけ生成する.(ユーザは生成しない.)
サーバ公開鍵の送付時にman-in-the-middle攻撃が可能!
最初に送付されるサーバ公開鍵は,ユーザの目で確認して,
yes/noを選ばなければならない.
q
q
q

ホスト認証(利用者から見た
サーバの認証)の注意点
確認方法…fingerprintの照合
自己責任で「yes」を選ぶこともある
サーバ公開鍵を,何らかのメディアで転送してもよい.
サーバ公開鍵は ~/.ssh/known_hosts に保存される.
q
q
それ以降の同じサーバとの接続では,自動的に確認される.
サーバが鍵を作り直したら,クライアント側は古い公開鍵情報を
削除しなければならない.
17
ユーザ認証の方法

パスワード認証
q
q
q

ログインごとにパスワードを入力
従来のリモートログイン(telnet, ftpなど)を安全に行える
字数が少なく安全性にやや不安
公開鍵認証
q
q
q

ユーザ認証(サーバから見た
利用者の認証)の注意点
ログインごとに,ログイン用パスワードとは異なるパスフレーズ
(passphrase)を入力
エージェント(ssh-agentコマンド)の利用により,パスフレーズ入
力の省力化が可能
あらかじめローカルホストで鍵ペアを生成し,
~/.ssh/authorized_keys に公開鍵を登録しておく.
どの認証方法を許可するかは,/etc/sshd/sshd_config に
記載する(編集にはroot権限が必要).
18
ポート転送

学外から「ssh -L 10110:POPサーバ:110 リモートホスト」を実
行すると
q
q
リモートホストにログインし,コマンド実行などができる.
ローカルホストでは,「POPサーバ:110」に代えて
「localhost:10110」でメール受信(POP)が安全にできる.
 リモートホスト-POPサーバ間は暗号化されていない
ローカル
ホスト

リモート
ホスト
POP
サーバ
「ssh -L ポート番号:localhost:ポート番号 リモートホスト」
が有用なことも
19
Windowsで利用可能なSSHクライアント

Cygwinのsshコマンド
q

PuTTY
q
q

UNIX上のコマンドとほぼ同じ動作
リモートログイン
GUIで各種設定
WinSCP
q
GUIでファイル送受信
20
PGPとSSLとSSH

共通点
q
q
q

セッション鍵を作り,対称暗号で暗号化して通信する.
ユーザやホストの正当性はディジタル署名による.
そのために公開鍵を持つ.
公開鍵(証明書)の正当性確認に人間が関わる.
相違点
q
q
q
PGPはファイル(メール)を暗号化する.あるいはファイル(メー
ル)に署名をつける.
SSLはHTTPやSMTP,POPなど,クライアント/サーバモデル
の通信を暗号化する.
SSHはリモートログイン(ログアウトするまで)を暗号化する.
ポート転送などの機能で,ついでに他の通信も暗号化できる.
21