暗号の基礎から実用まで (2009年度SPP)
公開鍵暗号の実際
by 菊地時夫 — last modified 2009-09-05 10:29
PGP を使った公開鍵暗号の実際
PGP について
Enigmail を使う
HTTPS を知る
このページを見る
ユーザ名 (sppNNN) とパスワードを使って、ログインする
Firefox (地球に巻き付いたキツネのアイコン) を起動
高知大学理学部情報科学教室のホームページが表示される
教員組織 -> 菊地の「教員のホームページ」
左の navigation (ナビゲーション) で 「授業」-> 「暗号の基礎から応用まで」-> 「公開鍵暗号の実際」
PGP について
Pretty Good Privacy (なかなかいけてるプライバシー)
公開鍵暗号は実際に使うのが難しい
鍵の生成、暗号化(復号)の計算に時間がかかる
公開鍵暗号を使って、共通鍵を暗号化して送る
その共通鍵を使って暗号通信する
OpenPGP / GNU Privacy Guard (GPG)
Enigmail
Mozilla Thunderbird (Netscape 社製のメールツール: オープンソース)
Netscape 社: Marc Andreessen (World-Wide Web に画像を入れた NCSA Mosaic 作者)
Thunderbird のアドオン (追加インストール)
暗号の復習(共通鍵)
AとBが同じ「鍵」を持つ
A:「箱」に入れて「鍵」をかける ... 暗号(化)
「箱」を運ぶ
B:「鍵」で「箱」を開ける ... 復号(化)
共通鍵暗号
公開鍵暗号の復習
2つ「鍵」を持つ。
片方の「鍵」で閉じた「箱」はもう一方の「鍵」で開く
A:Bの「公開鍵」で暗号化
B:自分の「秘密鍵」で復号
公開鍵暗号
公開鍵暗号による署名
B: 自分が書いた文書に、「秘密鍵」を使った暗号を付ける。
A: Bの公開鍵で復号し、文書と比べる
合えば、OK
違えば、Bの書いた文書では無い
公開鍵暗号による署名
Thunderbird の利用法 (1)
青い鳥が封筒を抱いているアイコンが Thunderbird の起動です。
Thunderbird の利用法 (2)
起動できたら、自分宛のメールを出してみよう。
「作成」ボタンで作成ウィンドウを出す。宛先にメールアドレスを入れる。
自分のメールアドレスはログイン時のユーザ名 に
@is.kochi-u.ac.jp
を付けたものです。
Thunderbird の利用法 (3)
「件名」は適当に入れて、「送信」ボタンをクリック。
メール送信の時にパスワードが必要かもしれません。
「受信」ボタンでメールが来ていることを確認。
少し時間がかかります
またパスワードが必要かもしれません
Enigmail/Thunderbird の設定 (1)
Thunderbird の OpenPGP メニューから
「設定」を選ぶ
Enigmail/Thunderbird の設定 (2)
ディレクトリとファイルで、/sw/bin/gpg となっていることを確認
パスフレーズの設定で、「何もしない間パスフレーズを 5 分間憶えておく」の
5 を 0 に変更
「OK」をクリックして設定完了
今日は、パスフレーズを記憶しないようにすることで、「秘密鍵」がどこで必要かを確認してもらいます。
Enigmail/Thunderbird で鍵対の生成 (1)
Thunderbird の OpenPGP メニューから
「鍵の管理」を選ぶ。
「生成」⇒「新しい鍵」
Enigmail/Thunderbird で鍵対の生成 (2)
パスフレーズ(パスワードに相当)を入れて、「キー生成」をクリック(次の質問に「はい」で答える)
パスフレーズは秘密鍵を使用する権限があることを確認するためのものです。これが秘密鍵というわけではありません。
失効証明書の生成は行わない
自分宛のメールでテスト(暗号化)
自分宛にメールを作成
送信前に、OpenPGP ボタンをクリックして、「メッセージの暗号化」を選択
送信する
自分宛のメールでテスト(復号)
受信したメールを表示すると、パスフレーズの入力を求めてくるので、鍵生成の際に入れたパスフレーズを入力する。
メッセージが表示され、「メッセージを復号」と表示される
表示 -> メッセージのソース を見ると、暗号化されている様子がわかる
自分宛のメールでテスト(署名)
再度、自分宛にメールを作成
送信前に、OpenPGP ボタンをクリックして、「メッセージに署名」を選択
送信ボタンをクリックすると、パスフレーズの入力を求めてくるので、鍵生成の際に入れたパスフレーズを入力する。
受信したメールを表示すると、「署名が一致しました」と表示される。
表示 -> メッセージのソース を見ると、どのような署名が付いているかわかる
公開鍵を友人(近くの人)に渡す
友人の 「ユーザ名」を確認してください。
@is.kochi-u.ac.jp
を付けると、その人のメールアドレスになります。
公開鍵をメールで送信するには、
Thunderbird の OpenPGP メニューから 「鍵の管理」を選択
鍵のリストから、生成した鍵を選択し、「ファイル」メニューから「公開鍵をメールで送る」を選ぶ
メール作成ウィンドウに公開鍵が添付された状態で出てくるので、宛先・本文等を記入して送信
公開鍵を友人(近くの人)に渡す (2)
公開鍵をファイルに書き出して友人に渡したり、自分のウェブページから誰でも取れるようにしておくことができる。(公開鍵サーバに登録することもできる)
友人の公開鍵を Enigmail に登録
受け取ったメールに添付された公開鍵にマウスのカーソルを合わせ、
Control キーを押しながらクリック (Windwos では右クリック)
メニューから「OpenPGP鍵を読み込む」を選ぶ
ウェブページからダウンロードした公開鍵はファイルメニューから「鍵をファイルから読み込む」で読み込むことができる
友人へ暗号メール
友人宛にメールを書く。
OpenPGP メニューで「メッセージの暗号化」を選択
送信。(自動的に宛先メールアドレスの公開鍵が使われる)
受け取った暗号メールを表示すると「メッセージを復号」となることを確認 (パスフレーズが必要)
友人へ署名メール
友人宛にメールを書く。
OpenPGP メニューで「メッセージに署名」を選択
送信。(パスフレーズが必要)
受け取った署名付きメールを表示すると「署名が一致しました」となることを確認
署名+暗号メールにすることもできる (自分の秘密鍵と宛先の公開鍵を使う)
公開鍵暗号は結構使われている
HTTPS ... ウェブページに鍵がかかる
通信の暗号化と、サイトの正統性確認(署名)
何も無いけど例
図解 HTTPS
おわりに
IT の基礎技術は
ネットワーク
データベース
暗号
暗号の仕組みが分かると、安全にネットワークを使えるようになる