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
© Copyright 2024 ExpyDoc