リモートログインと Secure Shell 2005 年度 EPnetFaN 座学編 第8回 (2005/07/01) 北海道大学 理学研究科 地球流体力学研究室 D1 森川靖大
2005 年度 EPnet FaN
第8回 座学編
リモートログイン
と
Secure SHell
Presented by Yasuhiro Morikawa
With (それなりに) Takahashi Method
1
リモートログイン
昨今ネットワークの発達により
ネットサーフィン
電子 メール
大容量 データダウンロード
などなど 様々な 「サービス」
「ネットワークを利用する」ことの多くは
「サービスしてもらう」 行為
例
WWW Request Messages WWW Server HTML etc. HTML root guest
Mail Smtp Server Pop Server Transfer Store Send Mail Get Mail
FTP Request Messages FTP Server Various files ? root
しかし
サービスする側にとってもネットワークは非常に強力なツール
その 1つが
リモートログイン (しつこい? (゜Д ゜ ;))
まず
普通のログイン hoge login: admin Password:******* hoge:~> __
一方
リモートログイン hoge login: admin Password:******* hoge:~> __
ネットワーク越しに世界中どこからでも
コンピュータを直接操作可能
ソフトウェアのインストールだって、 再起動(非推奨)だって出来ちゃう
世界をまたにかけなくても
身近にリモートログイン Office Cafe? Server Home Airport?
皆さんの場合 Research Space Saloon 2F Server Room This room Mail 1F WWW Normal User Server Room This room Mail 1F WWW
専攻サーバでは一般ユーザもログインでき、いろんな作業が可能
実際にリモートログインするには?
UNIX系 OS (Linux, Mac) の場合 telnet, sshなどのコマンド
Windows の場合 Putty, TeraTermなどのソフトウェア
これらはログインする先のマシンがUNIX系 (Linux, Mac)の場合
Windows にも、「リモートデスクトップ」というGUIなリモートログイン環境もあるらしい
まとめ 其の壱
リモートログインすげー便利 すっげー (;゜A ゜)
But
もしその情報を誰かがかってに覗いてるとしたら…?
というわけで
2
盗聴
【盗聴】 他人の会話を(機器などを用いて)気づかれないように聞くこと。ぬすみぎき。
ネットワーク用語(?)的には
自分宛で無い通信中のデータを不正に取得すること(?)
原理的には結構簡単
なぜなら
(基本的には)データは生で様々なコンピュータを中継するため
データの盗聴 Get Send Mail Smtp Server Cracker If this computer is already hacked…?
リモートログインとて同じこと
パスワードの盗聴 Send Get Username, Username, Password Password If this computer is already hacked…? hoge login: admin Password:******* hoge:~> __
パスワードを盗聴されると?
データの破壊
意図しないシステムの変更
自分が困るだけでなく
自分のコンピュータが踏み台に
ウィルス、ワームをばら撒いたり、盗聴用として使われたり
相手が悪いと訴訟や賠償にも
一見「盗聴」には凄いテクノロジが要りそうだが
実は (悲しいかな) 結構簡単
ちょっと勉強してそこらへんのツールを使えばなんとかなってしまう
まとめ 其の弐
パスワードが盗聴されるとキケン
ではどうするか?
3
SSH (Secure Shell)
盗聴を防ぐための手法の一つが
データの暗号化
暗号化・復号化 ? ? ! Send data Can’t decode Encoded Decoded If this computer is already hacked…? Decoded
通信するデータを第三者は見ることが出来ない
リモートログインの際に暗号化通信を可能にするのが
SSH (Secure Shell) (くどい? (゜∀ ゜ ;))
Unix 系 OS ならば ssh コマンド。 Windows ならPutty や TTSSHを使う
Telnet コマンドや TeraTerm は暗号化通信しないので注意
まとめ 其の参
リモートログインにはsshを使うべし
4
暗号化技術
SSHでは如何にして通信を暗号化しているのか?
「鍵」 の概念
共通鍵暗号方式 Same “Common Key” ! ? Encoded Decoded
公開鍵暗号方式 Pair Keys ? ! ? ! Private key Public key Encoded Decoded
公開鍵と秘密鍵は一対一対応するペアの鍵
秘密鍵で暗号化したデータは公開鍵で復号化 (秘密鍵での復号化は不可)
公開鍵で暗号化したデータは秘密鍵で復号化 (公開鍵での復号化は不可)
暗号化通信には送受信する双方の「鍵」の保有が不可欠
実際には、一方が他方に鍵を「配布」する
共通鍵の配布 Common key If common key is got by the others…?
Data is decoded by the others!!! 共通鍵の難点 ! ? Data is decoded by the others!!! !
共通鍵はその配布の段階での通信暗号化が必須
公開鍵の配布 Private key Public key Even if public key is got by the others…
Data can not be decoded by public key!! 公開鍵による暗号化 ? ! Data can not be decoded by public key!! ? Decoded by private key
データを特定の相手だけが復号化可能のなのは、「公開鍵による暗号化 & 秘密鍵による符号化」
安全な双方向通信 S P Pair Keys ! ? Secure connection ! ? P S Pair Keys
公開鍵方式ならば配布も容易で安全な通信が可能
しかし
公開鍵暗号化システムの重大な欠点
暗号化・復号化の処理速度
共通鍵暗号方式の数百~数千倍 (らしい)
そこで SSH では
共通鍵配布のための安全なコネクションを公開鍵暗号方式で確立し
その後は共通鍵暗号方式での通信を行う
コネクション開始 Connection is started Server Client
(Generated by random seed each time) 公開鍵(2対)の配布 Host keys (Already generated) Send public keys S P Server keys (Generated by random seed each time) P S P P
ホスト公開鍵保存 Host public key is stored S Server public key is temporary P
Common key is generated by random seed 共通鍵生成・配布 Encoded by 2 public keys P S P P ? Common key is generated by random seed P S C
Decoded by 2 private keys 共通鍵の共有 S S C P P ! ? Decoded by 2 private keys C
暗号化双方向高速通信 Common Keys C C ! ? Secure connection ! ?
この後ユーザ認証を経て実際のコネクションを開始
ユーザ認証にはパスワード認証以外にも
公開鍵暗号化システムを利用した「RSA認証」もあります (割愛)
ホスト鍵とサーバ鍵の2つがありましたが、
サーバ鍵は共通鍵と共に通信中に定期的に更新され、通信の安全性を高める
一方、ホスト鍵は「なりすまし」を防御
なりすまし Fake server Send Password True server Password is misread This router is already hacked True server
ホスト公開鍵照合 Already stored true host public key S Sent fake host public key
偽サーバ検知 !!!! The server may be fake!!! S P P ≠ P
ただし
Putty などでは「あぶないよ」というメッセージを英語で表示するだけなので
うっかりスルーしがちなので注意!!!
接続の際にメッセージが出たらちゃんと読みましょう
ちょっと注意
共通鍵・公開鍵暗号化方式はSSHのサブセットではなく
SSHが共通鍵・公開鍵暗号方式を利用している
Web アクセス時の暗号化 (クレジットカードとか) にもこれらの暗号化方式は使われる
最後に
大事なのは
自分が今、どのホストにいて、どんな通信をしているかを気にかけること
もちろん パスワードも大事
まあ何は ともあれ
便利なリモートアクセスをどんどん活用しましょう !!!
ご清聴 ありがとう ございました
参考文献
URL SEのIT系就職/転職/スキルアップサイト – StackAsterisk - OpenSSHで暗号化通信 http://www.stackasterisk.jp/tech/systemConstruction/openssh01_01.jsp @IT > セキュリティ用語事典 > 共通鍵暗号方式 http://www.atmarkit.co.jp/aig/02security/eqkey.html @IT > セキュリティ用語事典 > 公開鍵暗号方式 http://www.atmarkit.co.jp/aig/02security/pubkey.html Rat Portal Site - Linux リテラシ - 第6回 SSH http://rat.cis.k.hosei.ac.jp/article/rat/linuxliteracy/ssh.html おこめ的 技術総合資料館 しししせねっと – SSHの基礎知識 http://www.siisise.net/ssh.html 高橋メソッドについて http://rubycolor.org/takahashi/takahashi/img0.html ASCII24 – デジタル用語辞典 http://yougo.ascii24.com/ IT用語辞典 http://e-words.jp/
文献 Craig Hunt, 村井 純, 1998: TCP/IPネットワーク管理 第2版. オライリー・ジャパン, 612pp. 山口 英, 鈴木 裕信, 2000: bit 別冊 情報セキュリティ. 共立出版, 352pp. 技術評論社第2編集部, 2001: ファイアウォール&ネットワーク セキュリティ実戦テクニック. 技術評論者, 405pp. 技術評論者, 1999: Software Design 1999年 5 月号, 207pp. SOFT BANK, 2000: UNIX USER 2000年 9 月号, 160pp.