暗号通信(演習)
PGP を使った公開鍵暗号の実際
- PGP について
- Enigmail を使う
- HTTPS を知る
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 の基礎技術は
- ネットワーク
- データベース
- 暗号
- 暗号の仕組みが分かると、安全にネットワークを使えるようになる