コンピュータネットワーク基礎
2004.7.23

Back to index page


  1. 本日の作業内容

  2. ネットワークセキュリティ

    コンピュータネットワークを利用する上で,情報の機密を保つことはそれなりの 努力を必要とします.個人情報の漏洩の可能性が常につきまとうために,情報の 暗号化や暗号を利用した認証に関する知識は今後有用になって来ることでしょう.

  3. 暗号技術

    • 電子署名

      秘密の文書をやりとりするのに暗号化を用いましたが,相手が正しくその本人で あるかを確認するために,電子署名が利用されます.すなわち,データの作成者 が自分で秘密鍵を作って暗号化した署名を用意し,受け取った相手がその送り手 の公開鍵を利用して解読できれば本人であることの証明になります.公開鍵で復 元できるのは秘密鍵で暗号化されたデータだけだからです.以下で実習してみま しょう.まずは,署名の作成です.適当な内容のテキストファイルをまた作りま す.署名と言うくらいですから,自分の名前でも入れておけば良いでしょう.メー ルの署名を使うことも可能です.そ のファイルをsig-b02**.txtなどとして保存し,

      $ gpg --clearsign sig-b02**.txt

      と,コマンドを入力すると,

      次のユーザーの秘密鍵のロックを解除するには
      パスフレーズがいります: "Hoge Taro <s0240**@matsu.shimane-u.ac.jp>"
      1024ビットDSA鍵, ID A4BAF845作成日付は2003-06-19
      
      パスフレーズを入力: 
      

      となってパスフレーズの入力を求められるので,入力します.無事に終わるとメッ セージも何も無しでコマンドは終了します.拡張子として .asc が付 与されたファイルが作成されているので,中身を見てみましょう.平文と暗号の 両方が入ったデータとなっているのが分かるでしょうか.これをメールなどの末 尾につけておくと,メールの差出人がまさしく本人であるかの確認ができます.

      以前に実習したように,メールの From: 欄で別人の名を語るのは簡単 な操作で可能ですので,必要な場合にはこのような電子署名をつけることがあり ます.

    • 本人確認

      メールで送られて来た電子署名とその人の公開鍵を使って確認を行います.送ら れて来た電子署名を適当な名前で保存します.たとえば, digital-sign.txtなどとしてみましょう.次にコマンド操作 です.

      $ gpg < digital-sign.txt

      公開鍵を登録している相手ならば,確認ができます.ただし,教室の環境では最 初に説明したようにおまけでメッセージが出てきますので,そちらは無視しましょ う.

      gpg: 2003年06月19日 10時36分24秒 JST のDSA鍵ID A4BAF845による署名
      gpg: 正しい署名: "Hoge Taro <s0240**@matsu.shimane-u.ac.jp>"
      

      これ以降のメッセージは気にしないで,このように「正しい署名」が表示されて いれば,とりあえず成功です.

    • セキュアなリモートログイン

      • SSH

        教科書のp.130にあるリモート・ログインは従来からUNIX環境で良く利用されて 来たTELNETについて説明されています.「リモート」とは自分の目の前にある端 末ではなく,どこかネットワーク上にある別のホストへログインすることを意味 します.インターネットを介して自分の作業するホストが外部と接続している現 在では,昔から使われている性善説を前提とした接続ではパスワードや通信内容 の傍受などの危険性があり,あまり勧められません.ここでは,ログインプロセ スから通信内容まで全てが暗号化されているSSH (Secure SHell) を紹介します. 基本的な操作はTELNETと同じですが,やはりいくつか異なる点がありますので, 注意してください.

        • 接続

          接続のコマンドは

          $ ssh hoge.domain

          のように,コマンドの ssh に続けて接続するリモートホストのFQDNも しくはIPアドレスを入力します.ただし,この方法はローカルのホストとリモー トのホストで同じユーザ名を持っていることが前提となりますので,教室内で利 用する場合は大丈夫ですが,matsuへの接続ではユーザ名を指定して接続する必 要があります.

          $ ssh s0240**@matsu.ipc.shimane-u.ac.jp

          のようにユーザ名の次に@を入れて,リモートホストへ接続します.初めて接続 する場合には,

          The authenticity of host 'matsu.ipc.shimane-u.ac.jp (10.10.10.101)' can't be established.
          RSA key fingerprint is ff:b7:eb:72:87:cc:4f:b6:29:63:9a:b7:50:56:aa:72.
          Are you sure you want to continue connecting (yes/no)? 
          

          のように,RSA暗号化のキーを利用するかどうかを聞かれます.ここで,yesを入 力すると,続けてパスワードを聞かれますので,入力します.これで接続は完了 です.このとき入力するパスワード以降が暗号化されていますので,外部からの 盗聴,傍受に対してとりあえず秘匿可能です.

          このプロセスで生成された鍵は次のコマンドで見ることが できます.

          $ less ~/.ssh/known_hosts

        • 接続してできること

          接続後に利用できるものは,基本的にはUNIXのコマンドです.matsuの場合は教 室と同じLinuxですので,ほとんど同じコマンドが利用できます.また,SSHを利 用した場合には,Xプロトコルを同時に利用可能にすることがデフォルトですの で,Xクライアントを起動して作業することもできます.例えば,次のようなXク ライアントを起動してみてください.同時に,ローカルでもう一つターミナルを 開いて同じ様にXクライアントを起動すると,時計ならば時間が違ったりするの でXクライアントが起動しているホストが違うことを実感できるでしょう.

          $ xclock &

          $ xclock -digital &

          $ gedit &

          $ xcalc &

          $ xeyes &

          ここで,コマンドの後についている & はバックグラウンド処理を 行うために必要な記号です.これがないと,ターミナルにコマンドプロンプトが 戻って来ません.

          接続を終了するときには,いろいろとコマンドがありますが,とりあえず

          $ exit

          で良いでしょう.

        • Windows環境からのSSHの利用

          Windowsを使っていても,ときとしてUNIXホストに接続することもあります.こ のときに,OS標準の「コマンドプロンプト」を利用してTELNET接続することは可 能ですが,通信の安全のためにはSSHプロトコルをサポートしたツールの方が良 いでしょう.その中には,

          http://gouketsu.net/simm/ssh/putty.html

          のようなサイトで紹介されているPuTTYが便利です.活用してください.

      • SFTP

        教科書のp.128で紹介されているファイル転送プロトコルのFTPも利用頻度の高い ツールです.自分でWWWサーバにWebページを持っている場合などには特に大事で す.しかし,FTPも通信内容が平文ですのでこの時代では安心できません.ここ では,通信内容を暗号化するSFTPを試してみましょう.

        • 接続

          SSHのときと同様に,ユーザ名@FQDNで接続します.また,mastuで試してみま しょう.

          $ sftp s0240**@matsu.ipc.shimane-u.ac.jp

          パスワードを聞かれますので,入力します.接続が完了すると,コマンドプロン プトが

          sftp> のようになります.

        • できること

          ファイル転送のためのプロトコルですので,基本的にはローカルからリモートへ ファイルを送る put とリモートからローカルへ送る get で すが,それ以外にもいくつかあります.特に,ディレクトリ移動のコマンドが重 要になって来ます.リモートでのディレクトリ移動はターミナルと同じ cd ですが,ローカルで移動する場合には,コマンドの前に ! をつけます.この ! は全てのコマンドの前に使用でき ますが,これをつけるとローカル側の作業になりますので,注意してく ださい.

        • 転送

          適当な画像ファイルを転送してみることにしましょう.

          sftp> cd /usr/share/pixmaps/redhat/

          sftp> mget red*292*

          などとしてみると,ファイルを取得できます.mget というコマンドは ワイルドカードなどで指定したファイル名にマッチするファイルを全て転送する もので,get では完全に一致するファイル名を指定しないと転送でき ないのに対し,ファイル名を全部入力しなくても良いので楽になります.そのか わり,該当するファイルを全て転送するので注意が必要です.

          ただし,通常のFTPにおいては,mget mput で転送する場 合,個別のファイルについて転送するかどうかを一つずつ聞いて来ます.

          接続を解除するには,

          sftp> bye

          としてください.

      • SCP

        UNIXホスト間でファイル転送を行うには,より簡便な方法もあります.通常のコ ピー感覚で作業できるSCPです.これはリモート側のファイルの所在などが分かっ ている場合には,重宝します.次のように試してみましょう.

        scp nawate@matsu.ipc.shimane-u.ac.jp:/usr/share/pixmaps/redhat/red*t.png ~

        やはりパスワードを聞かれますので,パスワードを入力します.すると,ファイ ル転送が開始されます.

        WindowsでもSCPを利用してUNIXホストとの間でファイルのコピーを行うことが可 能です.そのためには,

        http://www.tab2.jp/~winscp/

        のサイトで紹介されているWinSCPを使います.必要に応じて使ってみてください.

    • ウィルスとワーム

      今年はWindowsの脆弱性を狙ったワーム,NetskyとBagleの猛威が吹き荒れた年で した.このような悪意を持ったウィルスやワームの被害について説明するととも に,対策を紹介します.

  4. 小テスト

    授業のどこかで AクラスBクラス 別の小テストを実施します.アナウ ンスに注意してください.また,提出は電子メールにより行いますので,メール の送信準備は忘れないでいて下さい.

  5. 宿題

    授業の終りに宿題( AクラスBクラス )の説明をしますので,アナウンスに注意してください.


目次ページへ戻る