暗号通信

by 菊地時夫 last modified 2009-07-09 09:43

7月21日(火・1)

2種類の暗号

  • 共通鍵暗号
  • 公開鍵暗号

共通鍵暗号

公開鍵暗号

実際の通信では

  • 公開鍵暗号で、通信相手の確認と共通鍵の交換
  • データ通信は共通鍵暗号

以下の演習は

  • ~/net で、行うこと
    $ cd
    $ cd net
    $
    
  • 第1回目の演習をさぼっていると、 ~/net が無いので、エラーになります。前の資料を参考にディレクトリを作成してください。

GnuPG を使ってみる

  • Pretty Good Privacy -> GNU Privacy Guard
  • gpg --help でコマンドの概要が出る
  • まずは、gpg --gen-key で、自分の鍵対を作成
  • 鍵の種類・長さ・有効期間は return で、y を入力
  • 本名・メールアドレスを入力(メールアドレスの入力で画面が乱れるが、後で確認できる)
  • コメントは無し

自分宛に暗号作成

  • 適当なテキストファイルを作成
    • 例えば finger (自分のユーザ名) > plain.txt
  • gpg -ea -r (自分のユーザ名)@is.kochi-u.ac.jp plain.txt で暗号化
  • plain.txt.asc ができている。
  • mv plain.txt plain.txt.1 で、オリジナルを退避
  • gpg plain.txt.asc で、復号

隣の人と公開鍵交換

  • gpg --export -a -o ファイル名 で公開鍵を書き出す
    • ファイル名は ユーザ名-gpg.asc にしておいてください。
  • 隣の人宛に、メールでこのファイルを送ってください。
  • 受け取ったファイルを確認して、gpg --import ファイル名

隣の人へ暗号を送る

  • gpg -ea -r (隣人のユーザ名)@is.kochi-u.ac.jp plain.txt で暗号化
  • できたファイルをメールで送る
  • 受け取ったメールから暗号文をファイル:例えば (隣人のユーザ名).asc に書き出す(添付ファイルの場合は保存)
  • gpg (隣人のユーザ名).asc で復号 ... cat 等で読めることを確認

署名付きメッセージの作成

  • hoge.txt を作る
  • gpg --clearsign hoge.txt で署名付きのテキストができる
  • 隣の人へ送る。
  • gpg hoge.txt.asc で、署名の確認
  • メッセージ部に手を加えるとどうなるか試してみる
  • gpg の練習については
    • ここ に実行例を入れておきました

次の演習(SSH)は、

  • cd でホームディレクトリに戻ってから実行すること

SSH

  • Secure Shell ターミナルを使って隣のマシンにログインする
  • 隣の人が利用中のマシンに付いているシールを確認
  • PC1-xx と、書いてあったら 192.168.201.1xx が、その IP アドレスです。
  • ターミナルで ssh 192.168.201.1xx と入力
  • connecting(yes/no)? に yes を入力
  • パスワードを要求されるので、入力

SSH で公開鍵を使う

  • exit で自分のマシンに戻ってください
  • ssh-keygen コマンドを実行
  • 保存するファイルは指定どおり(~/.ssh/id_rsa)
  • Passphrase は(ここでは)空白にしておく(リターンのみ)
  • cd .ssh で id_rsa, id_rsa.pub の2つのファイルができていることを確認
  • cp id_rsa.pub authorized_keys で 認証キーファイルを作成

もう一度 ssh で隣へ

  • ssh 192.168.201.1xx
  • 今度はパスワード入力の必要が無い
  • 公開鍵を使った認証を行っているため
    • ここでは NFS によって同じホームディレクトリを相手ホストでも使っているため、cp だけで authorized_keys ができたが、実際には遠隔ホストに公開鍵を送るには scp などの手段が必要である。

scp

  • ファイルの転送には scp コマンドが利用できる。
  • ssh で確立したコネクション上でファイルの転送を行う。
  • 送信 scp localpath host:[path]
  • 受信 scp host:path localpath

Enigmail

  • Enigmail は、GnuPG を Thunderbird から利用するためのアドオンです。
  • 現在、enigmail-0.95.7-tb+sm.xpi が利用可能です。上の学内情報のページに従ってインストールし、使ってみてください。

本日の問題

  • 菊地宛のメール で、本日の演習の感想を送ってください。なお、菊地の OpenPGP 公開鍵は ここ にあるので、これを使って暗号で送ってくれたら、加点します。