情報ネットワーク論(4)

by 菊地時夫 — last modified 2008-07-28 09:50

7月29日(火・1)

暗号通信

  • 講義と演習(2F計算機実習室使用)

2種類の暗号

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

共通鍵暗号

公開鍵暗号

実際の通信では

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

GnuPG を使ってみる

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

自分宛に暗号作成

  • 適当なテキストファイルを作成
    • 例えば finger 自分のユーザ名 > plain.txt
  • gpg -ea -r 06ss000@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 06ss999@is.kochi-u.ac.jp plain.txt で暗号化
  • できたファイルをメールで送る
  • 受け取ったメールから暗号文をファイル (?.asc) に書き出す(添付ファイルの場合は保存)
  • gpg ?.asc で復号

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

  • hote.txt を作る
  • gpg --clearsign hoge.txt で署名付きのテキストができる
  • 隣の人へ送る。
  • gpg hoge.txt.asc で、署名の確認
  • メッセージ部に手を加えるとどうなるか試してみる

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

試験について

  • 8月5日(火)8:50~実施
  • 計算・通信機能のある機器以外は持ち込み可

gpg の練習については

  • ここ に実行例を入れておきました