情報セキュリティ技術           

                                      1997.6

 1997年の3月下旬に,インターネットのセキュリティについての大きな事件がありました。この事件は,マスコミ等でも取り上げられましたが,インターネットのサービスのひとつであるネットニュースシステム(inn)のセキュリティホールを利用したクラッキングです。ネットニュースに特別なコントロールメッセージを流すことにより,inn-1.5.1より前のニュースシステムを利用しているニュースサーバのパスワードファイルをはじめ,重要な情報やシステムファイルをメールで入手するものでした。これが実際に行われたので,多くのネットニュース利用組織では,余儀なくパスワードの変更やニュースシステムのバージョンアップなどの対策を取らざるを得ませんでした。(このクラッキングによるこれ以上の被害は,6月時点では不明です)

(注)コンピュータシステムに不正侵入するなどの破壊行為を行う者を俗に「ハッカー」という場合が多いですが,システムの仕組みや動作について研究し,コンピュータ技術の進展や普及に寄与している人を指すのが本来の意味です。
 一方,不正侵入などの破壊行為を行う者は,正しくは「クラッカー(攻撃者)」や「イントルーダ(侵入者)」と呼びます。

 1. 2つの情報セキュリティ

 インターネットをはじめとするコンピュータネットワークの普及によりセキュリティ対策は不可欠のものとなっています。

 情報セキュリティについては,表1に示すように物理的セキュリティとコンピュータセキュリティに分類できます。物理的セキュリティとは,コンピュータでなくとも被ることのある盗難や災害,過失,事故あるいは破壊といったものです。しかし被害を受けるものがコンピュータであるため,各方面に重大な被害を及ぼすだけでなく,プログラムやデータの紛失など復旧にかなりの時間と労力を要します。また,完全に普及することが困難である場合もあります。対策としては,コンピュータの設置してある部屋の施錠や入室制限,そしてパソコンを盗難から守るための施錠・防犯キット,耐震用ブロックやベルトの取り付けなどがあります。さらに,無停電電源装置や万一の障害に備えるためにデータバックアップは極めて重要です。予算とセキュリティのトレードオフですが,ハードディスクをはじめとするシステムやネットワークの二重化と設置場所の分散化も考慮する必要があります。

表1 2つの情報セイキュリティ
 具 体 例対 策 例
物理的セキュリティ盗難,破壊,過失など

地震,落雷,火災,水害,台風

停電,通信回線障害,システム障害
設置施設の施錠などの侵入・盗難対策

設置施設の耐震・耐火構造,ハロン系消化器

無停電電源装置,システムや回線の二重化
データ等のバックアップ
コンピュータセキュリティ不正侵入

盗聴,改ざん,なりすまし

ウィルス
ファイアウォール,パスワード,ワンタイムパス
ワード
暗号化,電子署名,公開鍵証明

ウィルスワクチン,バックアップ

 最近のインターネットの普及によりクローズアップされているのは,この物理的なセキュリティではなく,不正アクセスやコンピュータウィルス等のコンピュータセキュリティです。一般的に情報セキュリティというと,後者のインターネットやイントラネットにおけるセキュリティを指す場合が多くなっています。

 インターネットが学術研究的な目的で発展してきたという歴史的な背景と,最近のような急速な普及もあってセキュリティ対策が結果的に後手に廻ってしまったことは否めませんが,最近,セキュリティを確保するための各種の方法が開発されています。また,企業においてはセキュリティ対策そのものが売上げに寄与しないこともあり,対投資効果という面からもセキュリティ対策は重要な課題とされていませんでした。しかし,インターネットを利用した情報伝達や業務報告が日常的に利用されるようになり,電子マネーの試験運用が始まり,SET(Secure Electronic Transaction)などのクレジットカード決済のための仕様が規格化されるなど,電子商取引(EC:Electronic Commerce)を取り巻く環境においてもセキュリティ対策が極めて重要になってきています。さらに,ネットワークを経由したコンピュータウィルスの被害が明るみに出るようになって,情報セキュリティは一層重要なものとして認識されるようになってきています。

 情報セキュリティについては,従来から一般的に

 安全性×利便性=一定

という式で表されてきました。要するに,安全性を高めれば利便性が低くなり,逆に,利便性を高めれば安全性が低くなります。例えば,非常に難しいパスワードを短い周期で変更すれば,安全性を高めることはできますが,非常に使いづらいものになってしまうということです。最近の技術開発の進展もあり,コストをかければあるいは技術力を高めれば,安全性も利便性もある程度,高めることができるようになってきています。しかし,最も重要なことはセキュリティポリシーの確立と,セキュリティに対する認識の向上,セキュリティ対策の実行であることは間違いありません。

 2. 情報セキュリティ対策の基礎知識

 情報セキュリティ対策には,外部からの侵入を防ぐ不正侵入対策と,暗号化技術を利用した積極的な対策があります。
 2−1. 不正侵入対策

 不正侵入対策としては,ファイアウォール,パスワード,ワンタイムパスワード,PET(Privacy Enhanced Telnet),SSH(Secure SHell)などがあります。PETは標準のログインプロトコル TELNETに,認証や暗号化などの拡張を加えたもので,通信路の暗号化には秘密鍵暗号方式のDES(Data Encryption Standard)を,暗号化鍵の交換には公開鍵暗号方式のRSA(Rivest-Shamir-Adleman)を用いています。また,SSHはrsh/rlogin などのリモートコマンドにユーザ認証機能を強化したもので,IPスプーフィングやDNS情報,ルーティング情報を偽るような攻撃に対処するために開発されました。ここでは,ファイアウォール,パスワード及びワンタイムパスワードについて簡単に説明します。

 2−1−2. ファイアウォール

 ファイアウォールは,組織内LAN(内部ネットワーク)とインターネット(外部ネットワーク)を接続する部分に情報の壁(防火壁)を設置して,インターネットからの不正アクセスを制限するもので,イントラネット構築には不可欠のセキュリティ対策です。セキュリティポリシーに基づき,内部ネットワークからインターネットへは不自由なくアクセスでき,逆にインターネットから組織内部のコンピュータへはアクセスが制限され,不正侵入を阻止することができます。

 ファイアウォールとしては,ルータによるパケットフィルタリング(スクリーニング)と,ネットワークインターフェースを2つ持つアプリケーションゲートウェイ(デュアルホームゲートウェイ)の2つの方法があります。

 パケットフィルタリング方式は,図1のようにルータを通過しようとするパケットの送信先/発信元アドレスやポート番号を調べて通過させるかどうかを決めます。パケットフィルタリングでは,ルータだけでは本格的なファイアウォールにはなりませんが,アクセス制御を高速かつ簡易に行うことができます。パケットフィルタリングはIP層で行われますが,ルールに従ってパケットのアドレスやTCP,UDPのポート番号を調べる必要があります。このため上位プロトコルのヘッダ内容を調べるというオーバヘッドも生じます。なお,IPアドレス等を偽装するIPスプーフィングに対しては,このパケットフィルタリングは無力です。UNIXマシンでパケットフィルタリングするには,フリーソフトとしてscreend>やdrawbridgeなどがあります。

 アプリケーションゲートウェイ方式は,図2のように2つのネットワークインターフェースを持ち,一方を内部ネットワークに,他方をインターネットに接続されているバリアセグメントに接続します。そして,このゲートウェイを通過するパケットのフォワード機能を無効にして,内部ネットワークとインターネットの間でパケットが直接通過しないようにします。アプリケーションゲートウェイで中継されるのは,パケットデータそのものではなく,アプリケーションのメッセージであり,メッセージを転送するためのパケットの送信先と発信元は入れ替わります。

 こうすることによって,インターネット側からはバリアセグメントまでは見えますが,内部ネットワークは全く見えないようになります。しかし,このままではバリアセグメント上のサーバのアプリケーションは問題ありませんが,内部のネットワーク上のホストとインターネット上のホスト間の直接的なIP接続が必要なtelnetやWWWなどのアプリケーションは実行できなくなります。このようなエンドツーエンドの接続が必要なアプリケーションを中継するために,プロキシサーバ(Proxy)を設置します。UNIXマシンでプロキシサーバを構成するには,フリーソフトとしてfwtk>やSOCKS,DeleGateなどがあります。

 また,httpプロトコルの場合はsquidやApache,CERN HTTPなどを利用することができます。特に,大量のデータ転送が必要なWWWでは,プロキシサーバをキャシュサーバとしても利用することにより,データ転送の高速化と回線への負荷を抑えることができます。

 このほかに,telnetやrloginなどのサービスに対して,これらのポートを監視するスーパーデーモンinetdをアクセス制御やアクセス記録の可能なものに置き換えることによって,相手のIPアドレス等の認証を行うことができます。この高機能なスーパーデーモンとしては,xinetdがよく利用されています。また,スーパーデーモンとtelnetdなどのサービスの間に,ラッパーと呼ばれるプログラムを介在させることによって,IPアドレス等によるアクセス制御や記録が可能になります。この様子を図3に示します。ラッパーには,TCPWrappersがよく利用されています。 さらに,万一クラッカーが侵入した場合,システムファイル等を書き換えて,侵入した痕跡を消し去ることがありますが,この痕跡を検出するソフトにTripwireなどがあります。

 

 2−1−2. パスワード

 UNIXでのパスワードは,8文字までのパスワードを一方向関数を用いて暗号化し,パスワードファイルに書き込んでいます。一方向関数を使っているため,パスワードファイルからパスワードを解読することは極めて困難です。しかし,"辞書攻撃"という方法で,辞書に載っている単語等を一方向関数で変換して,片っ端から調べていき,やがてパスワードファイルが保存しているのと同じデータが得られれば,そのときの単語がパスワードです。このため,このパスワードファイルを盗まれないようにすることが非常に重要です。また,パスワードは次の基準に従って決めることが大切です。

・辞書にない文字列を選ぶ。(辞書にある文字列の単語を合成したり,順番を入れ替えたり,1文字足したりするのもダメ。日本語についても全く同様です。

・人名や地名,電話番号,生年月日などを使わない。

・大文字や小文字,数字,記号を混ぜ,8文字を全部使うようにする。

 このような基準だと,全く意味のない文字列になってしまい,非常に使いにくく感じます。しかし,例えば次のような文字列にすれば,さほど無意味な文字列だという意識が無くなります。

 Wcup'98F 

(意味 World cup 1998 France)

 そして,パスワードは定期的に変更するようにします。

 パスワード解読の容易性をパスワード設定時にチェックするフリーソフトとして,passwd+やAntiCrackなどがあります。また,パスワードファイルのパスワードをチェックするCrackなども有効です。

 2−1−3. ワンタイムパスワード

 前述したパスワードの設定は,閉じたネットワーク内では有効ですが,インターネットのようなオープンなネットワークでは必ずしも完璧ではありません。例えば,出先からインターネットを経由して社内のコンピュータにtelnetでログインしようとした場合など,パスワードはネットワーク上を平文(plain text)で流れます。パケットアナライザを利用してこのパケットを調べれば,容易にパスワードを盗むことができます。有名なNetwork Monitoring Attackでは,これが組織的に行われたために,被害が広範囲に及びました。

 これを防ぐ手段として,ワンタイムパスワードが開発されています。ワンタイムパスワードを用いたシステムでは,システムで使用している本来のパスワードが,ネットワーク上を流れることがないような工夫がなされています。通常UNIXでは,クライアントがサーバに対して,ユーザ名とパスワードをペアにして伝えることにより,パスワード認証を行っています。これに対してワンタイムパスワード方式では,次のような手順になります。(図4)

(1)クライアントはサーバに対してユーザ名を伝えます。

(2)サーバは乱数を発生し,これをあらかじめ登録してあるユーザのパスフレーズで暗号化して,Challengeをクライアントに返します。Challengeはコマンド名,シーケンス番号,シード(種)の3つの部分から構成された文字列です。

(3)クライアントでは受け取ったChallengeをそのままコマンドとして実行させ,復号化します。このときパスフレーズを要求されるので,ユーザがあらかじめ登録した秘密のパスフレーズを入力すると,4文字以下の6つの単語として毎回異なる使い捨てのパスワードが計算されますので,これををサーバに伝えます。これをResponseと呼びます。

(4)サーバは(2)で発生した乱数と,クライアントから受け取った文字列を比較して,パスワード認証を行います。

 このようにして,1回切りの使い捨てパスワードを使うことにより,ネットワーク上に本来のパスワードやパスフレーズが流れることはなくなります。

 なお,出張などでChallengeコマンドが実行できないときは,あらかじめ複数のワンタイムパスワードを出力し,紙に印刷して持ち歩くことができます。

 ワンタイムパスワードは,リモートアクセスやSOHOなどの普及もあり,最近さまざまな製品が出ていますが,フリーソフトとしては,米国NRL研究所が開発したOPIEなどがあります。

 

 2−2. 盗聴,改ざん,なりすまり対策

 ワンタイムパスワードのところでも触れましたが,例えば,送信したメールはネットワーク上を平文のまま流れ,メールスプールなどでも平文のままです。これは,封筒に入っていない郵便ハガキに例えることができます。要するに,悪意を持ったクラッカーはメールの内容を容易に盗聴することができ,ファイル転送などでもファイルの内容を横取りすることができます。また,途中経路でメールやファイル内容を書き換えたり(改ざん),メールアドレスを書き換えたり(なりすまし)することもできます。さらにメールサーバには平文のままスプールされますので,クラッカーや悪意のある管理者がメールを読んだり,書き換えたりすることも可能です。

 これらを解決するためには,メールやファイルなどの暗号化や電子署名が有効です。暗号化には,秘密鍵暗号(対称暗号)と公開鍵暗号(非対称暗号)があります。

 ただ,暗号・認証技術は国家安全保障上の重要な技術なので,米国で開発された暗号・認証技術を実装した製品等の輸出に関しては厳しい規制や制限を設けています。

 2−3. 秘密鍵暗号対策技術

 秘密鍵暗号では暗号化と複号化に同じ鍵を用います。これは,昔から使われてきた通常の鍵と同じ原理ですので,慣用暗号とも呼ばれます。秘密鍵暗号では,非常に多くの鍵が必要になりますが,公開鍵暗号に比べて処理速度が速いのが特長です。短所として,安全な手段で鍵を受信人に届ける必要があり,異なる相手ごとに鍵を準備する必要があります。(図5)

 秘密鍵暗号はメッセージを1バイトごとに暗号化するストリーム暗号と,メッセージを複数ビットでブロック化して暗号化するブロック暗号に分類することができます。このブロック暗号の主なものに,米国商務省標準局(NIST)の募集に応じて米国IBM社が開発したDES(Data Encription Standard)や,スイス工科大学で開発されたIDEA(International Data Encryption Algirithm),NTTが開発したFEAL(Fast data Encipherment ALgorithm)などがあります。

 

 2−2−2. 公開鍵暗号対策方式

 一方,公開鍵暗号では暗号化と複号化に異なる鍵を用います。これは,メールの発信者と受信者とで同じ鍵を分け合う必要が無くなることを意味しています。つまり,自分の公開鍵で暗号化されたメールは,自分の秘密鍵でしか複号できないので,自分は複号用の秘密鍵さえ保持していればよいわけです。(図6)

 秘密鍵暗号のように,鍵を秘密裏に交換する必要がありません。暗号化に使う鍵は公開するので公開鍵(Public key),複号化に使う鍵は秘密鍵(Secret key)と呼びます。ちなみに,解読とは鍵を持っていない第三者が暗号文を解読することを指し,複号化と区別します。公開鍵暗号には米国マサチューセッツ工科大学のRivest,Shamir,Adlemanの3氏が開発したRSAなどがあります。

 2−2−3. 電子署名

 次に,メールやファイルの改ざん対策としての電子署名について説明します。電子署名はディジタル署名とも呼ばれ,紙ベースの社会における印鑑や署名に相当します。情報ネットワーク上で本人であることを認証するための方法です。印鑑は全く同じ印影を持った印鑑を偽造することが困難であるという性質を利用しています。また,署名は他人と同じ筆跡で署名することが困難であるという性質を利用しています。しかし電子署名の場合は,印影でも筆跡でも容易に複製できます。このため,電子署名では承認を与えるべき元データの内容などに応じて,毎回異なる署名データが生成されます。例えばメールの場合,送信者が自分の秘密鍵でメール本文に電子署名を付けて受信者に送信します。受信者は,送信者の公開鍵を使ってメールを複合化すると同時に,電子署名を確認することができます。または,メール本文は暗号化せず平文のままで,電子署名のみを複号化して本人確認をすることも可能です。万一,メールの配送経路で第三者がデータの書き換えを行った場合は,チェックサムの検査などで電子署名の確認が不可能となり,データが改ざんされていることがわかります。(図7)

 ここで,もうひとつ悩みがあります。それは公開鍵の信頼性です。送信者の公開鍵を使って,電子署名を確認し,メッセージを信頼しているわけですが,間違いなく正しい送信者からのメッセージかどうかは,実際にはわからないということです。もしかして受信者が持っている公開鍵は,第三者が送信者になりすまして,受信者に送ってきた鍵かもしれないという点です。最も確実な方法は,直接会って公開鍵を手渡して貰うことですが,このネットワーク社会においては非常に不便です。これを解決する方法のひとつとして,信頼できる認証局(Certificate Authority:公開鍵証明書発行局)を使う方法があります。認証局で公開鍵を登録し証明書を発行することにより,なりすましを防ぐことができます。役所などで,印鑑を認証してもらうために印鑑証明を発行してもらうのと同じ方法です。

 暗号化メールのフリーソフトとしては,PGP(Pretty Good Privacy)やPEM(Privacy Enhanced Mail),S-MIME(Secure Multipurpose Internet Mail Extension)などが使われています。また,PGPを容易に使えるようにしたメーラとしてMew(Message interface to Emacs Window)があります。

 

 2−3. WWWのセキュリティ対策

 WWWは,今日のインターネット普及の大きな原動力となり,間違いなくインターネットの大きなアプリケーションのひとつとなっています。そこで,このWWWを利用したオンラインショッピングシステムが開発され,現在利用されています。WWWを利用してショッピングを行う場合,クレジットカードの情報等を入力する必要があり,この情報が平文のままネットワーク上を流れたとしたらセキュリティ上,大きな問題となります。そこで,クレジットカードの番号等を入力する必要がある場合は,WWWに暗号化技術を取り込んでいます。この例として,SSL(Secure Socket Layer)やPCT(Private Communication Technology),S-HTTP(Secure HTTP),SET(Secure Electronic Transaction protocol)などがあります。

 SSLは米国Netscape社が開発したレイヤ化されたプロトコル技術で,TCP層のすぐ上のセッション層に位置し,ソケット間で鍵配送,暗号化,メッセージ認証,署名検証などを行います。このSSL層の上に,HTTP,SMTP,NNTPなどのアプリケーションが存在することになります。したがって,SSLはWWWのためだけのセキュリティプロトコルではなく,電子メールやネットニュースなどの他のアプリケーションについてもセキュリティ機能を強化することができます。このSSLの機能は,Netscape社のNetscape Commerce ServerやApacheなどのWWWサーバと,Netscape NavigatorなどのWWWブラウザで利用することができます。

PCTは米国マイクロソフト社が開発したプロトコル技術で,SSLに若干の変更を行ったものです。暗号化と認証にバリエーションを加えたり,ネゴシエーション時のオーバヘッドを減らす等の工夫がなされています。

S-HTTPはHTTPにセキュリティ機能を付加したもので,米国RSA Lab社のPKCS-7と呼ばれる暗号化規格をベースに,WWWコンソーシアムが提案しています。現在のWWWブラウザでは,SMTPやPOP,NNTP,FTPなども扱えるようになっていますので,SSLのようにセキュリティ層を設けて対策するほうがすっきりします。(図8)

 またWWWについては,1996年9月に米国中央情報局(CIA)のホームページが,クラッカーに改ざんされるという事件も実際に発生しました。この事件の場合は,HTTPサーバのソフトウェアのセキュリティホールを利用して,パスワードファイルを入手して,辞書攻撃でユーザのパスワードを解読するという方法でした。そして,実際に解読に成功し,ホームページの写真を取り替えたりしました。

WWWサーバは,通常バリアセグメント上に置かれ,CGIスクリプトなども実行することから,クラッカーにとっては恰好の侵入口となっています。

 

 2−4. ウィルス対策

 コンピュータウィルスを取り巻く状況は,LANやインターネットの普及により,ここ数年でかなり変わってきています。OSにウィルス対策ソフトをバンドルしたものも多くなっています。また,ウィルスは8,000種類以上になったと言われています。

 1997年4月,厚生省のWWWサーバに置いてあるEXCELのデータがウィルスに感染していたという事件がありました。このように,最近のウィルスは電子メールやデータファイルによって感染する新型のウィルスです。最近のウィルス被害の半数以上は,このネットワークを経由した新型ウィルスのようです。このウィルスの特徴は,(1)コンピュータに突然,侵入してくる,(2)国境を越えて感染する,(3)爆発的な感染力を持つ,(4)退治してもまた出現する,などです。従来のウィルスは,実行型のファイルを実行することによって,ウィルスに感染していました。一方この新型のウィルスはワープロや表計算の文書ファイルなどにマクロプログラムとして含まれていますので,この文書ファイルを読む(開く)ことによって感染します。そして文書の内容を書き換え,破壊するだけでなく,他のデータやコンピュータのシステムファイルまで被害を及ぼします。これをマクロウィルスと呼んでいます。従来型のウィルスはマシン語として実行ファイルに含まれていて,この実行ファイルから類似のウィルスを派生させることは誰でも容易にできることではありませんでした。ところがこのマクロウィルスは,マクロプログラムなのである程度の知識があれば派生した類似のウィルスを容易に作ることができます。このため,半年で10倍くらいの派生ウィルスが出現していて,ウィルス対策ソフトが追いつかない状況なのです。

 このマクロウィルスによる被害を未然に防ぐには,次のような対策が必要です。

(1)身元不明のファイルの使用は避ける。

(2)各サーバとクライアントのウィルス対策ソフトは最新のものを使い,1日に数回,自動または手動で実行する。

(3)メールを送信するときはウィルスチェックを行う。

(4)フロッピーの受け渡し時にはウィルスチェックを行う。

 万一,ウィルスに感染したら被害を最小限に留める工夫が必要になります。

(1)まず管理者をはじめ全ユーザに対してウィルス感染を周知する。

(2)ネットワークは最適な感染媒体となることから,すべてのコンピュータのネットワーク接続を断ち,スタンドアロンの状態にする。

(3)ウィルスの情報と感染経路及び被害について,正確な情報を取得し,専門家を交えて対策を具体的に検討する。

(4)感染していないだろうと思われるコンピュータも含め,間違いなくすべてのコンピュータとディスクに対して,ウィルスチェックと復旧を行う。復旧には,バックアップが必要になります。

(5)一斉にネットワークに接続することを避け,1台ずつ確認しながら接続する。

(6)反省と今後の対策を十分に検討する。

 一方,被害を受けた組織の管理体制・運用体制の不備やモラルの低さを露呈することになるため,ウィルスによる被害は統計上,実際よりもかなり少なくなっていることも事実です。

 なおウィルスに関連する情報は,情報処理振興事業協会(IPA)等で入手することができます。

 3. セキュリティ対策の基本的な考え方

 セキュリティを確保するために考えるべき事項として,次のようなものがあります。

 3−1. アカウント管理

(1)使用していないアカウントは削 除する

(2)すべてのアカウントにパスワードを付ける

(3)パスワードの付いていないアカウントは削除する

(4)パスワードは簡単に見破られないものにし,定期的に変更する

(5)管理者は定期的にパスワードをチェックするソフトを実行する

(6)特権ユーザのパスワードは厳重に注意する。また,ログインと作業についてログを取り,管理する。

 3−2. ファイル管理

(1)ファイルのアクセス制御(パーミッションやトラスティ)を適切に設定する

(2)重要なファイルについては暗号化する

(3)シャドウパスワードファイルを利用する

(4)バックアップを定期的に取る

 3−3. ネットワーク管理

(1)不要なネットワークサービスは 停止させる

(2)外部との接続に当たってはファイアウォールを設ける

(3)外部からのアクセスが必要な場合は,必ずワンタイムパスワードを利用する

(4)重要なファイルをメール等で転送する場合は,暗号化技術を利用する

(5)公衆回線を使った通信路(裏口)を設けない。設ける場合は,接続時の認証やアクセス制御を徹底する

(6)認証なしのアクセス(rloginやrshなど)は,可能な限り排除する

 3−4. その他

(1)システムのアクセス記録やログ 管理を厳重に行う

(2)システムやネットワークのセキュリティを検査するツールを定期的に使用する

(3)セキュリティホールを完全に塞ぐためにパッチを当てる。なお,新しいソフトが常にセキュリティホールが少なくなっているとは言えないが,できるだけ新しいソフトに入れ替える

(4)ウィルス対策ソフトを実行する

(5)一般ユーザのセキュリティ教育を徹底する

(6)セキュリティポリシーを明確にする

 4. セキュリティに関連する話題

 セキュリティに関するその他の話題としては,VPNやIPv6,電子印鑑,そして電子マネーや電子決済などの電子商取引などがあります。

 VPN(Virtual Private Network)はインターネットを,あたかも専用回線による企業情報ネットワークのインフラとして利用するものです。このため,不正侵入やデータの盗聴,改ざんそして,なりすましなどのセキュリティ対策が重要になっています。VPNがもたらす最も直接的なメリットは,専用回線などのコスト削減です。VPNを実現するために,ファイアウォールとトンネリング技術が用いられています。このトンネリングは認証と暗号化によって実現されています。認証は,お互いのコンピュータあるいはネットワークが信頼できるものであるかを確認する(なりすましを防ぐ)ために,トンネリングセッションの開始時に行われます。またIPパケットの暗号化によるトンネリングのために,ネットワーク層でのセキュリティ機能を実現するIPsecと呼ばれるプロトコルがIETFで公開され,次世代のインターネットプロトコルIPv6でも採用されることになっています。

 このほか,ダイアルアップ接続の標準となっているPPPプロトコルを拡張してVPNを実現するための規格PPTP(Point-to-Point Tunneling Protocol)を,マイクロソフト社やアセンドコミュニケーション社,3COM社などが共同で提唱しています。

 現在は,IPv4と呼ばれるインターネットプロトコルを利用していますが,32ビットのIPアドレス空間では不足することが予想されています。また,経路情報が急速に増大していることもあり,バックボーンのルータに大きな負担がかかってきています。このような従来のプロトコルの問題点を解決し,新たな機能を追加するだけでなく,柔軟で多彩なサービスを提供することを目標に,IPv6の開発と実装が進められています。IPv6ではIPアドレス空間を128ビットとして,IPアドレス空間を拡張しています。またセキュリティを確保するために,認証用のヘッダとカプセル化セキュリティペイロードの2つの拡張ヘッダを用意し,ネットワーク層レベルでのセキュリティ機能をサポートすることになっています。

 パスワードや電子署名などに代わる個人認証の新しい流れとしては,動的署名照合システムとして,自分のサインをタブレット等から入力して,筆跡の特徴を抽出して認証を行うサイバーサインがあります。また,指紋や声紋,DNAなどバイオメトリクス(生体情報)を用いた認証も実用化されています。

 また,不正アクセスやウィルスなどの対策について技術的側面から支援し,コンピュータセキュリティに関連する技術情報の提供などを行うJPCERT/CC(コンピュータ緊急対応センター)という非営利組織が昨年8月に設立されました。

           表2 セキュリティ関連情報の主な入手先

WWWサーバコンピュータ緊急対応センター(JPCERT/CC)
認証実用化実験協議会(ICAT)
情報処理振興事業協会(IPA)
CERT
CIAC
NIST CSRC
FIRST
Purdue
大学
Telstra
http://www.jpcert.or.jp/
http://www.icat.or.jp/
http://www.ipa.go.jp/
http://www.cert.org/
http://www.ciac.lln1.gov/
http://csrc.ncsl.nist.gov/
http://www.first.org/
http://www.cs.purdue.edu/coast/coast.html
http://www.telstra.co.au/info/security.html
ネットニュース fj.comp.security
jp.inet.security
tnn.internet.firewall
comp.security.*
メーリングリスト firetalk-request@is.aist-nara.ac.jp
scrtyl1@takamatsu-nct.ac.jp

 
 5. セキュリティ情報の入手先

 セキュリティに関する情報は常に更新されており,緊急性も高いため最新の情報を入手するように心掛けることが大切です。情報源としては表2のようなものがあります。

 また,本文でも取り上げたセキュリティ関連のツールは表3から入手することができます。

表3 セキュリティ関連の主なUNIXツール
パスワード関連 ANLpasswd
anticrack
crack
cracklib
npasswd
passwd+
shadow
ftp://info.mcs.anl.gov/pub/systems/anlpasswd-2.3.tar.gz
ftp://ftp.cs.titech.ac.jp/pub/security/anticrack/anticrack-1.1a.tar.gz
ftp://ftp.jpcert.or.jp/pub/cert/tools/crack5.0.tar.gz
ftp://ftp.jpcert.or.jp/pub/cert/tools/cracklib/cracklib25_small.tar.Z
ftp://ftp.cc.utexas.edu/people/clyde/npasswd/2.0beta/npasswd_2b3.tar.Z
ftp://ftp.iij.ad.jp/pub/security/dartmouth/passwd+.tar.Z
ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/shadow-current.tar.gz
ワンタイムパスワ
ード関連
donkey
opie
logdaemon
ftp://ftp.aist-nara.ac.jp/pub/Security/tool/donkey/donkey-0.5.tar.gz
ftp://ftp.nrl.navy.mil/pub/security/opie/opie-2.3.1.tar.gz
ftp://ftp.win.tue.nl/pub/security/logdaemon-5.6.tar.gz
システムファイル
関連
COPS
iss
rscan
SATAN
swatch
tiger
Tripwire
ftp://ftp.cs.purdue.edu/tools/unix/cops/cops_104.tar.gz
ftp://ftp.iss.net/pub/iss/iss-{Linux|Solaris|SunOS}.tar
ftp://ftp.vis.colostate.edu/usr/rscan/rscan.150-B3.tar.gz
ftp://coast.cs.purdue.edu/pub/tools/unix/satan/satan-1.1.1.tar.Z
ftp://ftp.stanford.edu/general/security-tools/swatch/swatch-2.2.tar.gz
ftp://net.tamu.edu/pub/security/TAMU/tiger-2.2.3.tar.gz
ftp://coast.cs.purdue.edu/pub/COAST/Tripwire/tripwire-1.2.tar.Z
ファイアウォール
関連
ip_fil
TCP Wrappers
xinitd
drawbridge
screend
DeleGate
SOCKS
TISfwtk
ftp://coombs.anu.edu.au/pub/net/firewall/ip-filter/ip_fil3.2a2.tgz
ftp://coast.cs.purdue.edu/pub/tools/unix/tcp_wrappers/tcp_wrappers_7.5.tar.gz
ftp://coast.cs.purdue.edu/pub/tools/unix/xinitd/xinitd.2.1.7.tar.gz
ftp://net.tamu.edu/pub/security/TAMU/drawbridge-2.0.1.tar.gz
ftp://ftp.vix.com/screend/screend-960126.tar.gz
ftp://ftp.etl.go.jp/ccipr/DeleGate/delegate4.0.6.tar.gz
ftp://ftp.nec.com/pub/security/socks.cstc/socks5-beta-0.17.1.tar.gz
ftp://ftp/tis.com/pub/firewalls/toolskit/
暗号化メール関連 PGP
FJPEM
Mew
ftp://ftp.ifi.uio.no/pub/pgp/src/pgp263is.tar.gz
ftp://ftp.fujitsu.co.jp/pub/security/fjpem/fjpem1.2.tar.gz
ftp://ftp.aist-nara.ac.jp/pub/elisp/Mew/mew-1.69.tar.gz
ネットワークモニ
タ関連
netlog
tcptop
IsOn
nocol
tcplist
tcplocate
ftp://net.tamu.edu/pub/security/TAMU/netlog-1.2.tar.gz
ftp://ftp.hyperion.com/pub/tcptop-1.0.shar.gz
ftp://ftp.aqix.net/pub/utils/ison-5.0.0.tar.gz
ftp://ftp.navya.com/pub/vikas/nocol-4.2beta4.tar.gz
ftp://ftp.cdf.toronto.edu/pub/tcplist/tcplist-2.1.shar.gz
ftp://ftp.lysator.liu.se/pub/ident/tools/tcplocate-1.0.tar.gz
その他 PET
ssh
sudo
ftp://ftp.fujitsu.co.jp/pub/security/pet/pet-3.56.tar.gz
ftp://ftp.cs.hut.fi/pub/ssh/ssh-1.2.18.tar.gz
ftp://coast.cs.purdue.edu/pub/tools/unix/sudo/cu-sudo.v1.3.1p14.tar.Z

 

 6. セキュリティ対策の具体例

 セキュリティ対策の具体例として,不正侵入対策のためにTCP Wrappersを利用した例,パスワードをチェックするためにCrackを利用した例,ワンタイムパスワードopieの利用例,及び暗号メールPGPの利用例について簡単に説明します。

 6−1. TCP Wrappers

 TCP Wrappersはスーパデーモンから起動される各デーモンプロセスをアクセス制御・記録が可能なものに変更します。具体的には,図9に示すようにスーパデーモンの設定ファイルinetd.confのサービスプログラム名に,TCP Wrappersをコンパイルして作成されるtcpdへの絶対パスを記述します。この例では,/usr/sbin/in.telnetdの代わりに/usr/local/sbin/tcpdが起動します。

 さらに,アクセスに関するルールを記述するための2つのファイル/etc/hosts.allowと/etc/hosts.denyを作成します。この例では,192.168.0/24にマッチするアドレスのコンピュータからのアクセスを許可します。また,許可されたコンピュータ以外からのアクセスがあった場合は,そのコンピュータにsafe_fingerを実行して,ユーザ名やIPアドレス等をpostmasterにメールで送信するように設定しています。(図10)

 TCP Wrappersを利用すれば,IPアドレスやコンピュータ名等によるアクセス制御ができ,アクセス記録や不正アクセスの通知が可能になります。しかしTCP接続の制御に関与するだけなので,ユーザ認証は行えません。


 (1)inetd.confの設定例(in.telnetdの例)

 #telnet stream tcp   nowait root  /usr/sbin/in.telnetd  in.telnetd
 telnet stream tcp   nowait root  /usr/local/sbin/tcpd  in.telnetd
                     ※サービスプログラムをTCP Wrappersのtcpdに変更する

 (2)hosts.allowの設定例

 ALL: 192.168.0.0/255.255.255.0 .foo.bar.jp

 (3)hosts.denyの設定例

 ALL EXCEPT in.fingered: ALL: banners /usr/local/etc/tcp_wrapper : spawn (/usr/local/sbin/
 safe_finger -l @%h | /usr/ucb/mail -s %s-%u@%h postmaster@foo.bar.jp ) &
 ALL: ALL: banners /usr/local/etc/tcp_wrapper : spawn (/usr/ucb/mail -s %s-%u@%h postmaster@foo.bar
 .jp) &
 

















 

図9 TCP Wrappersの各設定例


 From: admin@foo.bar.jp
 To: postmaster@foo.bar.jp
 Subject: in.telnetd-unknown@xxx.xxx.xxx.xxx

 [xxx.xxx.xxx.xxx]
 Login name: hogehoge
 Dirctory: /home/hogehoge        Shell: /bin/csh
 On since Apr 1 08:09:10 on console
 1 minute 2 seconds Idle Time
 No unread mail
 No plan

 不正アクセスを試みた場合,postmaster宛に相手ホストにsafe_fingerした結果がメールで届くので,どこからのアクセスかを知る手がかりになる(xxx.xxx.xxx.xxxには相手のIPアドレスが入ります)
 















 

図10 不正アクセスをブービトラップし,postmasterにメールした例

 6−2. Crack

 Crackはパスワードファイルの情報と辞書をもとに,パスワードを推測する辞書攻撃を行います。これによって,見破られやすい(弱い)パスワードを発見することができます。

 まず,CrackはpasswdファイルのGECOSフィールドから文字列情報を得ます。この文字列を,そのまま,逆にしたり,2回繰り返したり,綴りを並べ替えたりしてパスワードを推測します。

 次に,辞書をもとにパスワードを推測します。これには非常に多くの処理時間を要します。なお,辞書は日本語の辞書を追加して利用することもできます。

 図11に示した例では,ユーザ名hogehogeのパスワードが,gehogehoであることを見破っています。ちなみに,パスワードをWcup'98Fに設定したときは見破られませんでした。


 (1)/etc/passwdのhogehogeの部分

 hogehoge:iFw38EgLE5Zy.:9999:9999:HogeHoge:/home/hogehoge:/bin/csh

 (2)Crack実行後,Reporterの出力例

 ---- passwords cracked as of Thu Apr 10 10:37:41 JST 1997 ----

 860483339:Guessed hogehoge [gehogeho] HogeHoge [passwd /bin/csh] ※パスワードを gehogeho と推定

 ---- errors and warnings ----

 ---- done ----

 (3)crackを実行したときのログ(一部)

 D:iF:iFw38EgLE5Zy.:hogehoge:HogeHoge [passwd /bin/csh]:hogehoge HogeHoge
 S:860475840:pid=13508 ciphers=1 saltgroups=1 rejects=0 errors=0 srule=1
 I:860475840:OpenDictStream: trying: kickdict 1
 I:860475840:OpenDictStream: status: /stream/ stat=3 look=1 find=1 genset='|(awk -F: '{print $NF}'
 run/F-merged | sort | uniq) 2>/dev/null' rule='<stream>' dgrp='' prog='(awk -F: '{print $NF}'
 run/F-merged | sort | uniq) 2>/dev/null'
 (中略)
 O:860483213:945
 I:860483282:LoadDictionary: loaded 247107 words into memory
 G:860483339:iFw38EgLE5Zy.:gehogeho                 ※パスワードを gehogeho と推定
 I:860483339:OpenDictStream: trying: kickdict 946
 I:860483339:OpenDictStream: status: /ok/ stat=1 look=946 find=946 genset='conf/rules.perm1'
 rule='/asa2l' dgrp='2' prog='smartcat run/dict/2.*'
 (後略)
 































 

図11 crackの実行例

 6−3. OPIE

 OPIEはワンタイムパスワードの実装パッケージです。OPIEをサーバにインストールすると認証コマンドであるloginやsuが,OPIEのものに置き換えられます。

 まず,ユーザはサーバマシンのopiepasswdコマンドで秘密のパスフレーズを決めます。この例を図12に示します。シーケンス番号が499で,シードがki3174であることがわかります。

 このシーケンス番号とシードを元にotp-md5(opiekey)を実行します。このとき秘密のパスフレーズを入力します。こうして得られたパスワードがLIFE HIM COMB KNOW OWN FATEです。

(図13)

 

 次に,このOPIEを使ってログインした例を図14に示します。login:のところにユーザ名を入力すると,otp-md5 498 ki3174がchallengeとして表示され,Responceを要求します。ここで,ユーザは(パスフレーズがネットワーク上に流れないように)別の計算機で,otp-md5 498 ki3174を実行してパスワードを計算し,得られたパスワードをResponceに入力します。これによって,正常にログインすることができます。

 なお,常にchallengeコマンドを実行できる環境とは限らないので,あらかじめ複数のワンタイムパスワードを出力しておくことができます。


 hogehoge@host% opiepasswd
 Adding hogehoge:
 You need the response from a otp generator.
 New secret pass phrase:
     otp-md5 499 ki3174                このコマンドを別画面で実行(図13参照)
     response: LIFE HIM COMB KNOW OWN FATE       計算したワンタイムパスワードを入力
 







 

図12 秘密のパスフレーズの生成例


 hogehoge@host% otp-md5 499 ki3174
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase:                    ここに秘密のパスフレーズを入力
 LIFE HIM COMB KNOW OWN FATE                   ワンタイムパスワードが出力される
 






 

図13 ワンタイムパスワードの計算例


 hogehoge@host% telnet host
 Trying 192.168.0.1...
 Connected to host.foo.bar.jp
 Escape character is '^]'.

 UNIX(r) System V Release 4.0 (host)

 login: hogehoge                       ユーザ名 hogehoge でログイン
 otp-md5 498 ki3174                     Challengeを出力
 Response: LOAM HIT HOE CODY GAM TRAY            別途計算したワンタイムパスワードを入力
 Last login: Tue Apr 1 08:50:49 from host.foo.bar.jp    Responseが正しければログインを許可

 













 

図14 ワンタイムパスワードによるログイン例

 6−4. PGP

 PGPは現在,主流の公開鍵暗号を利用したメールの実装パッケージです。

 まず自分の鍵を作成します。pgp -kgコマンドで,secring.pgpとpubring.pgpの2つのファイルに秘密鍵と公開鍵が作成されます。(図15)

 次に,公開鍵を相手に渡す必要がありますので,pgp -kxaコマンドでアスキー形式の鍵を取り出します。また相手からもらった鍵は,pgp -kaコマンドで自分のキーリングに登録します。これで準備は整いましたので,pgp -kvコマンドで確認します。(図16〜18)

 次に相手にメールで送る場合は,送信するファイルだけを暗号化する方法,暗号化したファイルに電子署名も添付する方法,及び暗号化しないファイルに電子署名(クリア電子署名)を添付する方法の3つが考えられます。クリア電子署名は,本文は秘密ではないけど本人が確実に書いたことを証明する場合に用います。

 暗号化されたメールを受信した場合は,自分の秘密鍵で複号化し,本来のファイルを取り出します。

(図19〜図22)


 hogehoge@host% pgp -kg
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 あなたのRSAキーのサイズはどれにしますか:
  1) 512 ビット - 一般利用向け, 処理は速いが安全度は低い
  2) 768 ビット - 極秘書類向け, ほどほどの処理速度で安全度も十分
  3) 1024 ビット - 最高機密向け, 処理速度は非常に遅いが安全度は極めて高い
 1, 2, 3から選ぶか,もしくはビット数を指定してください: 3

 1024ビットのRSAキーを生成します...
 あなたの公開キーのためのユーザIDが必要です.
 望ましい形式はユーザIDにあなたの名前,もし電子メールのアドレスを持って
 いるのなら< >で括ったあなたの電子メールアドレスです.
 例: Hironobu SUZUKI <hironobu@h2np.sugigami.tokyo.jp>
 公開キーのためのユーザIDを入力して下さい:
 HogeHoge <hogehoge@foo.bar.jp>

 あなたのRSA秘密キーを守るために暗証フレーズが必要です.
 暗証フレーズには,複数の単語,空白,記号もしくは表示できる文字から
 構成されるフレーズや文章が使えます.
 暗証フレーズを入力してください:                     暗唱フレーズを入力します
 再度同じ暗証フレーズを入力してください:                 再度,入力します

  507 バイトの乱数ビット列生成が必要です.これはキーを押す時間間隔を
 計測して使用します.ビープ音が成るまでランダムにキーボードに文字を打ち
 込んでください:

  507 .
 (中略)
   3 .
   0 * *
 -これで十分です.御協力ありがとうございました.
 キーの生成には時間がかかります............................**** .........................****
  正しい暗証フレーズです.少々おまちください....
 署名の保証が加えられました.
 キーの生成が終了しました.

 hogehoge@host% ls -l ~/.pgp
 -rw------- 1 hogehoge   1205 Apr 7 14:53 pubring.pgp      公開鍵ファイル
 -rw------- 1 hogehoge   1062 Apr 7 14:53 secring.pgp      秘密鍵ファイル

 












































図15 鍵を生成する例


 hogehogei@host% pgp -kxa
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 展開するためのキーを選択するためにユーザIDが必要です.
 キーのユーザID入力: hogehoge

 キーリング '/home/hogehoge/.pgp/pubring.pgp' から取り出します., ユーザID "hogehoge".

 ユーザID "HogeHoge <hogehoge@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID F365D8B9 , 作成日時 1997/04/07

 取り出したキーをどのファイルに入れますか? hogehoge.pgp

 移動用装甲ファイル: hogehoge.pgp
 取り出したキーをファイル 'hogehoge.pgp' に入れました.
 


















 

図16 公開鍵を取り出す例


 hogehoge@host% pgp -ka pgpdemo.pgp
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 新しいキーを検索中...
 pub 1024/DA1A1F25 1997/04/07 PGP Demo <pgpdemo@foo.bar.jp>
 署名を検査しています...
 pub 1024/DA1A1F25 1997/04/07 PGP Demo <pgpdemo@foo.bar.jp>
 sig!   DA1A1F25 1997/04/07 PGP Demo <pgpdemo@foo.bar.jp>

 キーファイルの内容:
   1 個の新しいキー

 新しいキーのいくつかは完全に保証はされていません.
 これらのキーをあなた自身で保証を行いますか (y/N)? y

 ユーザID "PGP Demo <pgpdemo@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID DA1A1F25 , 作成日時 1997/04/07
 キーの指紋 = 6D A0 D4 3A E1 0E B9 B9 46 61 3F DB B7 FD E7 2A
 このキーとユーザIDの組合せでは保証できません.
  不審な認証:
  PGP Demo <pgpdemo@foo.bar.jp>

 あなた自身でこのキーの保証をかけますか (y/N)? y

 ユーザ 'PGP Demo <pgpdemo@foo.bar.jp>' のキーを探しています.:

 ユーザID "PGP Demo <pgpdemo@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID DA1A1F25 , 作成日時 1997/04/07
          キーの指紋 = 6D A0 D4 3A E1 0E B9 B9 46 61 3F DB B7 FD E7 2A

 !!注意!!:上記の公開キーは本当にこのユーザIDのですね?
 絶対に確信がもてますね ? 本当ですね (y/N)? y

 RSAの秘密キーを解くために暗証フレーズが必要です.
 ユーザID "HogeHoge <hogehoge@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID B7101A6D , 作成日時 1997/01/13

 暗証フレーズを入力してください: 正しい暗証フレーズです.少々おまちください....
 署名の保証が加えられました.

 入手できる証拠を用いて,このキーが本当にあなたの思い浮かべている
 人のものかどうかをあなた自身で判断してください.
 もしそうするならば,キー管理に関して,相手の誠実さや能力に対する
 あなたの評価をもとにして,次の質問に答えてください:

 "PGP Demo <pgpdemo@foo.bar.jp>" を
 他者が持つ公開キーの紹介者や認証者として信頼しますか?
 (1=わからない 2=信頼しない. 3=通常は信頼する. 4=常に信頼する.) ? 1
 



















































 

図17 相手の公開鍵を自分のキーリングに登録する例


 hogehoge@host% pgp -kvc
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 キーリング: '/home/hogehoge/.pgp/pubring.pgp'
 Type Bits/KeyID  Date    User ID
 pub 1024/DA1A1F25 1997/04/07 PGP Demo <pgpdemo@foo.bar.jp>
          キーの指紋 = 6D A0 D4 3A E1 0E B9 B9 46 61 3F DB B7 FD E7 2A
 pub 1024/7ED8FDA5 1997/04/07 HogeHoge <hogehoge@foo.bar.jp>
          キーの指紋 = D0 DE 4D AB CA D2 A4 35 0A DB 6D D7 1D 17 55 A5
 2つの対応したキーを見つけました.
 













 

図18 キーリングに登録した鍵を確認する例

 


 hogehoge@host% cat file.txt
 これはPGPのテストです。

 hogehoge@host% pgp -ea file.txt pgpdemo@foo.bar.jp
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 受取人の公開キーが暗号化に使用されます.
 ユーザID "PGP Demo <pgpdemo@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID DA1A1F25 , 作成日時 1997/04/07

 移動用装甲ファイル: file.asc

 hogehoge@host% cat file.asc
 -----BEGIN PGP MESSAGE-----
 Version: 2.6.3ia

 hIwDm0FrgdoaHyUBBACCgEj/DQHSCXwB5hT6K+6JfD97z/5Ctvn0XbK39X0YMBp/
 G2DqQOnalTqE9xozbsbrBNezOnKWp8V/jmaKoOsNxFj7VmLaXPz19izYI3TbPerg
 mQn+8u3cVoX7dJesF5H8Bjl3pqwdCJsbZfyV3ZT8/HmT3DrB/n1CxdQ9p4M30aYA
 AABB0DiyVt1FmsQONGFZzR7nybA1RD+SuwRm0r5Nzsb2irCzA8mMDHU610c7cxDS
 H4QhsVOXIM0zhEiIWpTbxdpOpgw=
 =11NE
 -----END PGP MESSAGE-----
 


























 

図19 文書を受取人の公開鍵で暗号化した例


 pgpdemo@host% pgp file.asc
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 ファイルは暗号化されています.読むには秘密キーが必要です.
 ユーザID "PGP Demo <pgpdemo@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID DA1A1F25 , 作成日時 1997/04/07

 RSAの秘密キーを解くために暗証フレーズが必要です.
 暗証フレーズを入力してください: 正しい暗証フレーズです.少々おまちください......
 平文ファイル名: file.txt
 













 

図20 受取人が復号化した例

 


 hogehoge@host% pgp -tsa file.txt pgpdemo@foo.bar.jp
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 署名を作るために秘密キーが必要です.
 秘密キーを選ぶためのユーザIDが指定されませんでした.
 よって,デフォルトのユーザIDおよびキーは,秘密キーリングに最も新しく
 加えられたキーとなります.

 RSAの秘密キーを解くために暗証フレーズが必要です.
 ユーザID "HogeHoge <hogehoge@foo.bar.jp>" のキーです.
 1024-bit キー, キー ID B7101A6D , 作成日時 1997/01/13

 暗証フレーズを入力してください: 正しい暗証フレーズです.少々おまちください....

 署名付きテキストファイル: file.asc

 hogehoge@host% cat file.asc
 -----BEGIN PGP SIGNED MESSAGE-----

 これはPGPのテストです。

 -----BEGIN PGP SIGNATURE-----
 Version: 2.6.3ia
 Charset: noconv

 iQCVAwUBM0iSWsQn69+3EBptAQFZ9QQAveBOfCxZhSvJMA1460W0U3eCH1rQFpqE
 ouCL3ifTmKKHw3s257VxOu0/9P3w8j64yvFMRg+UCGz6aci3T4yD0l6l6xZiMwns
 pIBOo7rY9u8Bc5PrA8riLnhdbL8YukYyb9qDEqWY02B3Pogpg9+KQa3Tmh5X64nU
 qDBaSRy8DgA=
 =yBBZ
 -----END PGP SIGNATURE-----
 


































 

図21 クリア電子署名の実行例


 pgpdemo@host% pgp file.asc
 Pretty Good Privacy(tm) 2.6.3ia - みんなの公開キー暗号.
 (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
 国際化版 - 非アメリカ合衆国向け. RSAREFは使用していません.

 ファイルに署名があります. 署名検査に公開キーが必要です.
 .
 ユーザ "HogeHoge <hogehoge@foo.bar.jp>" からの正しい署名です.
 署名は 1997/04/10 06:21 GMT に 1024-bit キー, キーID B7101A6D を用いて作られました.

 平文ファイル名: file.txt
 












 

図22 クリア電子署名の確認例

 6−5. netman

 netmanはフリーソフトとしては数少ないネットワークモニタです。netmanにはイーサネット接続をリアルタイムで表示するethermanと,IP接続を表示するinterman,パケットを解析するpacketmanなどが含まれています。

 図23はethermanの実行例です。イーサネットで接続されているコンピュータ間のパケット転送の状況が,リアルタイムでプロトコルごとに色分けして表示されます。またトラフィック量に応じて,接続している線の太さが変化します。さらに,パケットフィルタ機能によりモニタするプロトコルを選択することができ,ログ等も取ることができます。

 図24はintermanの実行例です。IP接続の状況をサービスプロトコルごとに色分けして表示するなど各種の機能があります。

 packetmanはtcpdumpやtcpviewと同じような機能を持った,パケット解析ツールです。

 これらのツールを利用することによって,ネットワークのトラフィック状況を確認することができます。

 

 


■コラム■

1.UNIXシステムに侵入する方法

 UNIXシステムに侵入する方法としては,従来から次の(1)〜(3)のような方法がよく知られています。

(1)fingerを利用してユーザ情報を取得する

 fingerコマンドはUNIXシステムのユーザ情報を調べるコマンドですが,%finger @host.foo.bar などのようにユーザ名を指定しないで実行すれば,host.foo.barというシステムにログインしているユーザ名を知ることができます。次に,%finger username@host.foo.bar とユーザ名を指定して実行すれば,ホームディレクトリをはじめそのユーザに関するさまざまな情報を知ることができます。

(2)リモートマウントする

 マウントは,システムの特定のディレクトリをリモートマシンからアクセスできるようにします。クラッカーは,%showmount -e host.foo.bar というコマンドによって,エクスポートしたファイルシステムを調べることができます。この結果,あるディレクトリが(everyone)というようにどこからでもマウントできるようになっていた場合,クラッカーはそのディレクトリをリモートマウントします。その結果,マウントしたディレクトリはクラッカーから自由にアクセスできるようになり,さまざまな情報を得ることができます。

(3).rhostsファイルに自分のマシン名を追加する

 無防備のシステムにリモートマウントができるようになると,あるユーザのホームディレクトリの.rhostsファイルに自分のマシン名を追加します。これによって,クラッカーはそのシステムにログイン(rlogin)できるようになり,パスワードファイルなどの重要なファイルを容易に入手できます。クラッカーは,パスワードファイルを盗むと"辞書攻撃"などのパスワード破りのプログラムを用いて,rootユーザをはじめとするユーザのパスワードを解読しようとします。

 その他,メールシステムやネットニュースシステムの中枢をなすsendmailやinnなどのセキュリティホールを持つプログラムを使って,パスワードファイルやシステム情報などをメールで取得することも実際に行われています。

 

2.Windows95のセキュリティ

 Windows95は誰でも起動でき,ログインしなくともスタンドアロンのパソコンとして利用できます。またシステムポリシーエディタを使えば,ログインしないとWindows95起動後の操作をできなくすることが可能です。しかしMS-DOSモードで起動すれば,ファイルはすべて読むことができます。現在,主なワープロソフトにはファイルにパスワードを付けて,パスワードの認証なしにはアクセスできないようになっていますが,Windows95自身はセキュリティの面ではあまり考慮されていません。

 一方,WindowsNTではセキュリティがかなり強化されています。まず,WindowsNTはログインなしでは起動しません。また,NTFSというファイルシステムを導入することにより,MS-DOSからファイルをアクセスすることはできなくなります。さらに,ファイルやディレクトリごとにアクセス権を設定することにより,セキュリティを確保することができます。アカウントの不正使用を防ぐためにも,アカウントの原則の設定では,パスワードの有効期限を設け,定期的にパスワードを変更する必要があります。また,セキュリティの監査を設定し,定期的にドメインユーザマネージャで監視を行うようにします。こうすることによって,イベントビューアにセキュリティ情報が記録されます。