公開鍵暗号の実際

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 の基礎技術は
  • ネットワーク
  • データベース
  • 暗号
  • 暗号の仕組みが分かると、安全にネットワークを使えるようになる