共通科目情報処理(講義)、体育専門学群対象、2001年06月14日
                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
	http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/taiiku-kougi-2001/2001-06-14
あるいは、次のページから手繰っていくこともできます。
	http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
	http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
	http://www.ipe.tsukuba.ac.jp/~yshinjo/
試験の予定
- 日時:
-  2001年6月28日木曜日、4時限(13:45-15:00)
- 場所:
- 55C01、他(教室の追加の可能性がある)
試験と同じ日に、ミニレポートを提出すること。
-  用紙
-  A4サイズの紙1枚(両面使ってよい)
-  言語
-  日本語、または、英語
このミニレポートだけは、試験時間中に参照しながら回答してもよい(公式カ
ンニングペーパー)。ただし、採点の対象にするので、採点者が理解できるよ
うに書くこと。すなわち、言語は、日本語、または、英語を用い、暗号化せず、
極度に圧縮しすぎないようにすること。
-  キャッシュの意味。
-  空間と時間を変換する技術(圧縮の逆)。
-  キャッシュは、元データが更新されると、古くなる。
-  大学で教えている知識は、キャッシュと思うこと。
 
セキュリティ
-  インターネットを流れるデータは、簡単に盗聴可能な形で流れている。
-  通信する時には、通信相手は IP アドレスを知ることができる。
-  サーバ上のファイルのモードに気を付ける。電子メールを保存している
ファイルが600になっているか ls -l で調べる。
暗号
-  キーワード
    
-  分類
    
-  鍵を長くすると、解読しにくくなる。
-  パスワードは、しばしば暗号化の鍵として働く。
-  暗号化の方法(暗号化のアルゴリズム)が公開されていない暗号は、強
いのか弱いのかわからない。
-  公開鍵暗号は、鍵の管理が楽である。
-  公開鍵暗号は、暗号通信の他にディジタル署名や利用者認証にも使える。
セキュリティとは、安全や機密を保持すること。
(国連の安全保証理事会は、Security Council。)
-  サーバ上のファイルのモード
-  インターネットのセキュリティ
-  ウイルス対策
ファイルには、内容と属性がある。
ファイルの属性
-  ファイルの種類(普通のファイルかディレクトリ(フォルダ)か)
-  所有者
-  ファイルの大きさ
-  時刻(最後に書き込んだり読み込んだりした日付と時刻)
-  「許可(permission)(モード)」
2学期の実習での宿題:サーバ上で ls -l コマンドを実行して、モードを調
べ、自分の電子メールが他の人から読まれないようになっているかを調べる。
なっていなければ、chmod コマンドで変更する。
インターネットの危険性
-  盗聴
-  不正アクセス(利用権限がないコンピュータを利用する)、crack
-  破壊、改ざん
-  窃盗
インターネットでの通信は、暗号化されていない。
(1つひとつのデータグラムは、はがきと同じ。)
流れるデータを見れば簡単に内容を知ることができる。
サーバにファイルとして保存されている電子メールは、一般には自分でしか読
むことができない(モードが600)。ただし、サーバの管理者ならば、見ようと
思えば見える状態になっている。バックアップ(器機の故障に備えてコピーを
作る)のため。
インターネットで通信する時には、通信相手に IP アドレスが渡されている。
(電子メールを送る時、WWWでページを見る時など)
電話でいうと、発信者番号(caller ID)が相手に伝わっている状態である。
IP アドレスから、コンピュータの名前(ドメイン名)を調べることができる
(逆引)。
普通は、利用者の名前までは、わからない。しかし、ユーザ名とパスワードを
打った時にはログと付き合わせると、利用者が特定可能である場合が多い。
コンピュータの内部では、様々な操作のログ(log、航海日誌)が取られている。
-  WWW てアクセスした URL、接続元のIPアドレス
-  電子メールの送り手、受け手
-  ログインの時刻、接続元
-  実行したプログラムの名前
cookieは、コンピュータ・サイエンスの専門用語。
協調して動作しているプログラムの間で、ある一連の作業を識別するための数
を意味する。
WWW(World Wide Web)では、1回のデータ転送ごとに通信路が切断される
ので、通常はWWWのブラウザ(クライアント)とWWWサーバの間では、途
中経過を保持することができない。
途中経過を保存したい時:
-  パスワードを打って利用者を確認した後
-  買い物かごの中身
-  IPアドレスが毎回違うような場合、前回アクセスしてきた人を確認する
WWWで途中経過を保存するためには、cookie が使われる。
-  WWWサーバが、最初にアクセスした時に利用者ごとにクッキーを生成
し、ブラウザに返す。
-  ブラウザは、返されたクッキーをファイルに保存しておく。
-  ブラウザは、次に同じサーバに要求を送る時に、ファイルに保存してあ
るクッキーを読み出して要求とともにサーバに送る。
-  要求を受け取ったサーバは、要求に含まれているクッキーから、そのブ
ラウザを使っていた人が前回どのページを訪れたかを知ることができる。
サーバは、その情報を利用して、適切なページ(たとえば前回最後に訪れたペー
ジ)を表示させるようにすることができる。
現在の cookie の実現では、利用者のプライバシーを犯す危険性が高いという
問題が指摘されている。
普通のWWWサーバでは、要求を送ってきたコンピュータのIPアドレスを記
録しているので、コンピュータ単位でのアクセス状況を記録することはできる
が、個人を特定することはできない。
クッキーを利用することにより、コンピュータではなくどの個人がアクセスし
てきたかを記録することができる。
クッキーから電子メールのアドレスや氏名まで調べることはできない。
しかし、インターネットをサーフしている間にどこかでそれを打ち込んだが最
後、クッキーと電子メール・アドレスや氏名との対応が記録されてしまう危険
性がある。
参考
Netscape社によるWWWにおけるクッキー実現の案
http://www.netscape.com/newsref/std/cookie_spec.html
-  大事なデータを、インターネットに接続されたコンピュータには置かない。
-  大事なデータを、電子メールで送らない。
-  サーバ上のファイルのアクセス権に気を付ける。
-  よいパスワードを使う
-  暗号を使う
個人で対応するには、まずパスワードが大事になる。
防火壁とは、外部のネットワークと内部のネットワークの間に設置し、内部の
ネットワークのセキュリティを高めるための仕組み。
インターネットの仕組みの基本:どのコンピュータとコンピュータも通信できる。
防火壁では、そのような本来の仕組みに制限を設け、特定のコンピュータとし
か通信できないようにしたり、特定のサービスしかつかえないようにする。
攻撃の対象となるコンピュータの数を減らし、集中的に侵入対策を施すことで、
セキュリティを高める。
防火壁構築は、様々な技術の集合:
-  パケット・フィルタリング
-  TCP/IP の特定のサービスを特定の方向について遮断する。
 例:ファイアウォールの内側から外側への電子メールの送信は許すが、逆方向
は許さない。
-  プライベート・アドレスの利用
-  壁の内側で、プライベート・アドレスと呼ばれる、インターネット上で
は決して利用されないことが保証されているIPアドレスを用いる。プライベー
ト・アドレスを使うと、インターネットの外から直接攻撃されることはない。
壁の外側をアクセスする時に、「壁の上」で、外でも通じるIPアドレスに付け
変える。
壁の上:壁の内側のコンピュータも壁の外側ののコンピュータも、両方にアクセ
スできる場所。
2000年5月1日に、筑波大学の入り口でパケット・フィルタを行うようになった。
 
壁を越える時には、壁の上で
WWW Proxy を動かすことがある。
 
 コンピュータ・ウイルスは、プログラムの一種。
-  他のプログラムに寄生する
-  悪さをする
-  自分自身のコピーを広げようとする
 トロイの木馬(Trojan Horse))は、他のプログラムに寄生しない。
利用者を騙して実行されるのを待つ。
ワーム(worm)は、他のプログラムに寄生しない。
 
ウイルスといっているものの中には、ワームやトロイの木馬も含まれる。
 
 ウイルスの潜んでいる場所
-  ワープロや表計算の文書の一部(電子メールの添付ファイル)。
ウイルスは、スクリプト言語(マクロ言語)で記述されている。
-  実行プログラム
-  (フロッピ・ディスクの)オペレーティング・システムの領域。
ファイルとしては見えない。
 注意すべきこと:予防が大事。
-  プログラムや文書の出どころを確認する。
-  怪しいフロッピは、パソコンに入れない。
-  ウイルス・チェックのソフトウェアを使う。最新のデータに更新する。
-  スクリプト言語の機能(マクロ機能)を停止する。
VB Script(Visual Basic Script) や WSH (Windows Scrypting Host) を
止める。
-  ウイルス情報の偽物を広めない。それ自体が人間を媒介するウイルス
(meme ←→ gene)。
 
暗号が使われてきたグループ4つ
 暗号技術を甘く見たグループ
暗号とは、情報の意味が当事者以外にはわからないように情報を変
換することである。
 
 図? 暗号の考え方 
 
-  平文
-  元の情報
-  暗号文
-  変換された情報
 平文、暗号文といっても、文字だけでなく、画像や音声などコンピュータが扱
えるあらゆるデータが想定されている。
 
-  暗号化
-  平文を暗号文に変換すること。暗号化鍵が必要。
-  復号化
-  暗号文を平文にもどすこと。復号化鍵が必要。
- 
-  鍵
-  暗号化や複合化に必要な(短い)データ。
-  解読
当事者以外の第三者が、暗号文を元にもどすこと、あるいは、復号化鍵を得る
こと。
 暗号化や複合化の方法(アルゴリズム)は、何種類もある。
 なぜ鍵を使うのか。
-  同じ暗号化の方法を使っていたとしても、鍵を変えるだけで暗号文も変
わるので、暗号化のプログラムを1つ作っただけで、様々なデータを暗号化す
ることができる。
-  暗号化のプログラムを作る手間を軽減できる。
(人間がやっていた時は、暗号化をする方法を訓練する手間が省ける)
-  暗号化の手法を公開することができる。どのくらいその暗号が強いのか
がわかる。
(人間がやっていた時は、暗号化をする兵隊が敵に捕まったとしても、
鍵をしらないと解読されることはない。)
 
 
暗号化の方法が秘密になっていると、一見、より強そうにみえる。しかし、そ
の暗号が、強いのか弱いのか調べる方法がない
 
暗号の安全性は、鍵の安全性によっている。
鍵の管理が非常に重要となる。
 
暗号化のプログラムを作成した人でも、鍵を知らなければ平文を得ることがで
きない。
 
 
 暗号の安全は、解読にかかるコストを大きくすることで、解読され
た平文から得られる利益を相対的に小さくすることに依存している。
 
鍵を長くするだけで、安全性が指数関数的に高くなる。
鍵を1ビット長くすると、解読時間が2倍になる。
(「鍵の長さを2倍にすると解読時間が2倍になる」は、誤り)。
 
 図? 指数関数  
 図? 指数関数 
 
パスワードは、コンピュータの中では、暗号化の鍵として使われる。
長いパスワードは、破られにくい。1文字(大文字小文字数字記号)増やすと、
総当たりで解読に要する時間が、50倍から100倍近くかかるようになる。
 
暗号の安全にとって、最近のコンピュータの高速化と低下価格下は、
1つの脅威となっている。
 
-  ムーアの法則。半導体の性能と集積は、18ヶ月〜24ヶ月ごとに2倍になる。
指数関数。
-  安いコンピュータをたくさん並べて計算させる(並列処理)。
 
SETI (the Search for Extraterrestrial Intelligence)。
 
暗号の方法は、大きく2つに分類される
 
-  共通鍵暗号系(対称暗号系)
- 
暗号化鍵と復号化鍵が同じ(または片方から片方が簡単に計算できる)。
-  公開鍵暗号系(非対称暗号系)
暗号化鍵から復号化鍵を容易に類推できない。
 Caesar暗号は、置換暗号(substitution cipher)の1つ。置換暗号では、各
文字あるいは文字群が、それぞれ別の文字あるいは文字群に置換される。
Caesar暗号は、知れている最後の暗号である。
平文アルファベットをN文字ずらした暗号文アルファベットに変える。
 
N=2 の時の対応表
 
abcdefghijklmnopqrstuvwxyz
CDEFGHIJKLMNOPQRSTUVWXYZAB
 暗号の説明では、平文を小文字で、暗号文を大文字で書く習慣がある。
カルタゴ人以来騙された人はいない。
N=13 で、大文字小文字を保存する方法を、rot13 暗号という。rot13 は、電
子メールやネットワーク・ニュースで「ネタばらし」の部分を書く時に使われ
る。
 
 
数の集合から、無作為抽出で抜き出された数。
 
真性乱数。ビット列にすると、0と1の発生確率がそれぞれ1/2で、各ビッ
トは他の部分と独立(iid(independent and identically distributed))
である。
 
物理乱数。量子力学の効果を増幅してディジタル化したもの。
平滑化して0,1のバランスをとれば、真性乱数になる。
 
疑似乱数(pseudo random number)。種(seed)と呼ばれる入力ビットパタンを基
に計算された、種よりも長いランダムに見えるビット・パタン。種が決まれば
出力乱数は一意に決まる。
 
 Caesar暗号では、定数だけずらしていた。定数ではなく、文字の長さの乱数の
列を使い、文字ごとに乱数の数だけだけずらす。
例:
 
乱数表: 0 18 19 22 22  7  9  4 14  3
 
 平文: h  e  l  l  o  w  o  r  l  d
        8  5 12 12 15 23 15 18 12  4
暗号文: H  W  E  H  K  D  X  V  Z  G
   : 8 23  5  8 11  4 24 22 26  7
乱数表そのものや、大きな乱数表の中でどこから使い始めるかを鍵にすること
ができる。
真性乱数を使うと、解読する方法は数学的に存在しないことが証明されている。
 
しかし、真性乱数を使うことはコストが大きい。
送信側と受信側で同じ真性乱数を作るのが大変である。
 
乱数表を記憶する変わりに、疑似乱数を使う方法がある。使う疑似乱数の性質
が悪いと簡単に解読される。
 
実際には、文字をずらすのではなく、足し算、引き算や、排他的論理和と呼ば
れる計算が使われることが多い。
 
公開鍵暗号系(非対称暗号系)では2つの異なる鍵を用いる。
便宜上、この2つを公開鍵と秘密鍵と呼ぶ。
 
これらの鍵は、互いに相手の逆関数になっている。
 
-  公開鍵で暗号化したものは秘密鍵で複合化できる。
-  秘密鍵で暗号化したものは公開鍵で複合化できる。
 
 公開鍵暗号を使った暗号通信の手順 
 図? 公開鍵暗号を使った暗号通信の手順 
-  受手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも読めるようにする。
-  送手は、受手の公開鍵を暗号化鍵として用いて暗号文を作り、送る。
-  送手は、受け取った暗号文を、自分の秘密鍵を復号化鍵として用いて復号化し、
元の平文を得る。
 
ここで、公開鍵から秘密鍵を計算することは難しい。ある平文を公開鍵で暗号
化してみたところで、秘密鍵を得ることは難しい。
 
公開鍵暗号の利点は、鍵を管理する手間が掛らないこと。
 
-  共通鍵暗号
-  情報を交換する間で鍵を安全に共有しなければならない。しかも、通信
相手ごとに鍵を変える必要がある。
-  公開鍵暗号
-  
受手ごとに、1つの暗号化鍵を公開するだけでよい。今までに通信をしたこと
がない人からでも、暗号化されたメッセージを受け取ることが可能である。
 公開鍵暗号系は、暗号通信だけでなくディジタル署名や利用者認証、電子現金
にも応用される。
 
認証とは、情報の正当性や完全性を確保する技術である。
 
-  利用者認証
-  アクセスしてきた人が正当か否かを判定する。
しばしばパスワードや暗唱番号が用いられる。
-  ディジタル署名(メッセージ認証、電子署名)
-  通常の署名とおなじく、送られてきたメッセージが送信者本人のもので
あることを識別、確認すること。
 
-  顔パス
-  学生証のバーコード(大学図書館)
-  キャッシュカードと暗証番号
-  クレジット・カード番号と有効期限
 
ディジタル署名では、通常の署名と同様に、次のような性質が必要である。
 
-  受信側は、送信者が誰であるのかを照会することができる。
-  送信者は、後でそのメッセージを送ったことを否定できない。
 ディジタル・データでは完全なコピーが簡単に作れるので、紙上の署名や捺印
よりも難しい。
公開鍵暗号系を使ってディジタル署名を行うことができる。
 
 図? 公開鍵暗号を使ったディジタル署名の手順 
 
-  (受手ではなく)送手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも
読めるようにする。
-  送手は、自分の秘密鍵を暗号化鍵として用いて暗号文を作り、送る。
-  送手は、受け取った暗号文を、送手の秘密鍵を復号化鍵として用いて復
号化し、元の平文を得る。この時、きちんと平文が得られた場合、その平文は、
その公開鍵の持ち主から送られてきたことがわかる。
 
メッセージ全体を暗号化する代わりに、メッセージを平文で送り、それにメッ
セージを一方向関数(ハッシュ関数)と呼ばれる方法で計算した結果だけを、
秘密鍵で暗号化したものを送る方法もある。一方向関数では、計算結果から元
の値(メッセージ)を計算することが難しい。
 
ディジタル署名や利用者認証は、公開鍵暗号系ではなく、共通鍵暗号系を用い
ても可能である。ただし、この場合、鍵を管理する信用できる管理センターが
必要となる。
 
 利用者認証のために、公開鍵暗号系を用いることができる。銀行の口座を例に、
これを説明する。
 
-  口座を開く時に、顧客は、公開鍵と秘密鍵を生成し、公開鍵を銀行に届
け、秘密鍵を自分で保持する。
-  顧客が通信回線を通じて銀行にアクセスしてきた時、銀行は乱数を1つ
生成し、顧客の公開鍵でそれを暗号化し、顧客に送り返す。
-  顧客は、送られてきた暗号化された乱数を、保持している秘密鍵で復号
化し、銀行に送り返す。
-  銀行は、顧客から返された乱数が正しければ、正当な顧客であると判定
する。
 次回の呼び出しでは、別の乱数を用いることで、通信を記録している傍受者に
も対応することができる。
単なる暗証番号の場合、通信を傍受されたら終り。
 
 電子現金(electronic cash、電子マネー)とは、現金が持っている有用な性
質をディジタル情報を使って実現しようとするもの。
Netscape 社によって開発された。主に、WWW (World Widw Web) での暗号通信
に使われている(他にも使える)。
 
-  URL が http: ではなく https: で始まる。
-  ブラウザの画面に通信路が暗号化されていることを示す印がつく
 SSL を使っていない時には、そのまま盗聴可能な形でインターネット流れる。
少し前まで、輸出用 WWW ブラウザは、鍵の長さが40ビットに制限されてい
た。今は、128ビットまで使える。
 暗号化された通信路で、次のような機能を提供する。
-  遠隔ログイン
-  ファイル転送
-  トンネリング(ポートフォワーディング)
 暗号化された通信路の中に一般のアプリケーションの通信を通す。
よくつかわれるもの。
 
 ↑[もどる]
←[6月7日]
・[6月14日]
→[6月21日]
 Last updated: 2001/06/14 00:54:39
 Yasushi Shinjo / <yas@is.tsukuba.ac.jp>