セキュリティ、暗号

共通科目情報処理(講義)、生物資源学類対象、2000年11月07日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/shigen-kougi-2000/2000-11-07
あるいは、次のページから手繰っていくこともできます。
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/

■試験とレポートについて

試験の予定

日時:
2000年11月21日火曜日、2時限(10:10-11:25)
場所:
2B411(教室変更があります)
試験と同じ日に、ミニレポートを提出すること。
用紙
A4サイズの紙1枚(両面使ってよい)
言語
日本語、または、英語
このミニレポートは、試験の時に参照してもよい(公式カンニングペーパー)。 ただし、採点の対象にするので、採点者が理解できるように書くこと。すなわ ち、言語は、日本語、または、英語を用い、暗号化せず、省略しすぎないよう にすること。

■復習

■今日の重要な話

セキュリティ 暗号

■セキュリティ

セキュリティとは、安全や機密を保持すること。 (国連の安全保証理事会は、Security Council。)

■サーバ上のファイルのセキュリティ

ファイルには、内容と属性がある。

ファイルの属性

宿題:サーバ上で ls -l コマンドを実行して、モードを調べ、自分の電子メー ルが他の人から読まれないようになっているかを調べる。なっていなければ、 chmod コマンドで変更する。

◆ls -l と chmod

■インターネットのセキュリティ

インターネットの危険性

インターネットでの通信は、暗号化されていない。 (1つひとつのデータグラムは、はがきと同じ。) 流れるデータを見れば簡単に内容を知ることができる。

サーバにファイルとして保存されている電子メールは、一般には自分でしか読 むことができない(モードが600)。ただし、サーバの管理者ならば、見ようと 思えば見える状態になっている。バックアップ(器機の故障に備えてコピーを 作る)のため。

インターネットで通信する時には、通信相手に IP アドレスが渡されている。 (電子メールを送る時、WWWでページを見る時など)

電話でいうと、発信者番号(caller ID)が相手に伝わっている状態である。

IP アドレスから、コンピュータの名前(ドメイン名)を調べることができる (逆引)。

普通は、利用者の名前までは、わからない。しかし、、、

◆ログ

コンピュータの内部では、様々な操作のログ(log、航海日誌)が取られている。

◆cookie

cookieは、コンピュータ・サイエンスの専門用語。

協調して動作しているプログラムの間で、ある一連の作業を識別するための数 を意味する。

WWW(World Wide Web)では、1回のデータ転送ごとに通信路が切断される ので、通常はWWWのブラウザ(クライアント)とWWWサーバの間では、途 中経過を保持することができない。

途中経過を保存したい時:

WWWで途中経過を保存するためには、cookie が使われる。

サーバは、その情報を利用して、適切なページ(たとえば前回最後に訪れたペー ジ)を表示させるようにすることができる。

◆cookieとプライバシ

現在の Cookie の実現では、利用者のプライバシーを犯す危険性が高いという 問題が指摘されている。

普通のWWWサーバでは、要求を送ってきたコンピュータのIPアドレスを記 録しているので、コンピュータ単位でのアクセス状況を記録することはできる が、個人を特定することはできない。

クッキーを利用することにより、コンピュータではなくどの個人がアクセスし てきたかを記録することができる。

クッキーから電子メールのアドレスや氏名まで調べることはできない。 しかし、インターネットをサーフしている間にどこかでそれを打ち込んだが最 後、クッキーと電子メール・アドレスや氏名との対応が記録されてしまう危険 性がある。

参考 Netscape社によるWWWにおけるクッキー実現の案

◆身を守る方法

個人で対応するには、まずパスワードが大事になる。

◆防火壁(ファイアウォール(firewall))

防火壁とは、外部のネットワークと内部のネットワーク の間に設置し、内部のネットワークのセキュリティを高めるための 仕組み。

インターネットの仕組みの基本:どのコンピュータとコンピュータも通信できる。

防火壁では、そのような本来の仕組みに制限を設け、特定のコンピュータとし か通信できないようにしたり、特定のサービスしかつかえないようにする。

攻撃の対象となるコンピュータの数を減らし、集中的に侵入対策を施すことで、 セキュリティを高める。

防火壁構築は、様々な技術の集合:

パケット・フィルタリング
これは、TCP/IP の特定のサービスを特定の方向について遮断する。
例:ファイアウォールの内側から外側への電子メールの送信は許すが、逆方向 は許さない。
プライベート・アドレスの利用
壁の内側で、プライベート・アドレスと呼ばれる、インターネット上で は決して利用されないことが保証されているIPアドレスを用いる。プライベー ト・アドレスを使うと、インターネットの外から直接攻撃されることはない。 壁の外側をアクセスする時に、「壁の上」で、外でも通じるIPアドレスに付け 変える。 壁の上:壁の内側のコンピュータも壁の外側ののコンピュータも、両方にアクセ スできる場所。

2000年5月1日に、筑波大学の入り口でパケット・フィルタを行うようになった。

壁を越える時には、壁の上で WWW Proxy を動かすことがある。

■コンピュータ・ウイルス

コンピュータ・ウイルスは、プログラムの一種。 トロイの木馬(Trojan Horse))は、他のプログラムに寄生しない。 利用者を騙して実行されるのを待つ。

ワーム(worm)は、他のプログラムに寄生しない。

ウイルスといっているものの中には、ワームやトロイの木馬も含まれる。

ウイルスの潜んでいる場所 注意すべきこと:予防が大事。

■暗号

暗号が使われてきたグループ4つ

暗号技術を甘く見たグループ

◆暗号に関する基本用語と安全性

暗号とは、情報の意味が当事者以外にはわからないように情報を変 換することである。

図? 暗号の考え方

図? 暗号の考え方

平文
元の情報
暗号文
変換された情報
平文、暗号文といっても、文字だけでなく、画像や音声などコンピュータが扱 えるあらゆるデータが想定されている。

暗号化
平文を暗号文に変換すること。暗号化鍵が必要。
復号化
暗号文を平文にもどすこと。復号化鍵が必要。
暗号化や複合化に必要な(短い)データ。
解読 当事者以外の第三者が、暗号文を元にもどすこと、あるいは、復号化鍵を得る こと。
暗号化や複合化の方法(アルゴリズム)は、何種類もある。

◆鍵の重要性

なぜ鍵を使うのか。

暗号化の方法が秘密になっていると、一見、より強そうにみえる。しかし、そ の暗号が、強いのか弱いのか調べる方法がない

暗号の安全性は、鍵の安全性によっている。 鍵の管理が非常に重要となる。

暗号化のプログラムを作成した人でも、鍵を知らなければ平文を得ることがで きない。

◆暗号の経済学

暗号の安全は、解読にかかるコストを大きくすることで、解読され た平文から得られる利益を相対的に小さくすることに依存している。

鍵を長くするだけで、安全性が指数関数的に高くなる。 鍵を1ビット長くすると、解読時間が2倍になる。

図? 指数関数

図? 指数関数

図? 指数関数

図? 指数関数

パスワードは、コンピュータの中では、暗号化の鍵として使われる。 長いパスワードは、破られにくい。1文字(大文字小文字数字記号)増やすと、 総当たりで解読に要する時間が、50倍から100倍近くかかるようになる。

暗号の安全にとって、最近のコンピュータの高速化と低下価格下は、 1つの脅威となっている。

SETI (the Search for Extraterrestrial Intelligence)

◆共通鍵暗号系と公開鍵暗号系

暗号の方法は、大きく2つに分類される

共通鍵暗号系(対称暗号系)
暗号化鍵と復号化鍵が同じ(または片方から片方が簡単に計算できる)。
公開鍵暗号系(非対称暗号系) 暗号化鍵から復号化鍵を容易に類推できない。

◆Caesar暗号

Caesar暗号は、置換暗号(substitution cipher)の1つ。置換暗号では、各 文字あるいは文字群が、それぞれ別の文字あるいは文字群に置換される。

Caesar暗号は、知れている最後の暗号である。 平文アルファベットをN文字ずらした暗号文アルファベットに変える。

N=2 の時の対応表

abcdefghijklmnopqrstuvwxyz
CDEFGHIJKLMNOPQRSTUVWXYZAB
暗号の説明では、平文を小文字で、暗号文を大文字で書く習慣がある。 カルタゴ人以来騙された人はいない。

N=13 で、大文字小文字を保存する方法を、rot13 暗号という。rot13 は、電 子メールやネットワーク・ニュースで「ネタばらし」の部分を書く時に使われ る。

◆乱数(random numbers)

数の集合から、無作為抽出で抜き出された数。

真性乱数。ビット列にすると、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. 受手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも読めるようにする。
  2. 送手は、受手の公開鍵を暗号化鍵として用いて暗号文を作り、送る。
  3. 送手は、受け取った暗号文を、自分の秘密鍵を復号化鍵として用いて復号化し、 元の平文を得る。

ここで、公開鍵から秘密鍵を計算することは難しい。ある平文を公開鍵で暗号 化してみたところで、秘密鍵を得ることは難しい。

公開鍵暗号の利点は、鍵を管理する手間が掛らないこと。

共通鍵暗号
情報を交換する間で鍵を安全に共有しなければならない。しかも、通信 相手ごとに鍵を変える必要がある。
公開鍵暗号
受手ごとに、1つの暗号化鍵を公開するだけでよい。今までに通信をしたこと がない人からでも、暗号化されたメッセージを受け取ることが可能である。
公開鍵暗号系は、暗号通信だけでなくディジタル署名や利用者認証、電子現金 にも応用される。

◆認証

認証とは、情報の正当性や完全性を確保する技術である。

利用者認証
アクセスしてきた人が正当か否かを判定する。 しばしばパスワードや暗唱番号が用いられる。
ディジタル署名(メッセージ認証、電子署名)
通常の署名とおなじく、送られてきたメッセージが送信者本人のもので あることを識別、確認すること。

◆ディジタル署名

ディジタル署名では、次のようなシステムが必要である。

公開鍵暗号系を使ってディジタル署名を行うことができる。

図? 公開鍵暗号を使ったディジタル署名の手順

図? 公開鍵暗号を使ったディジタル署名の手順

  1. (受手ではなく)送手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも 読めるようにする。
  2. 送手は、自分の秘密鍵を暗号化鍵として用いて暗号文を作り、送る。
  3. 送手は、受け取った暗号文を、送手の秘密鍵を復号化鍵として用いて復 号化し、元の平文を得る。この時、きちんと平文が得られた場合、その平文は、 その公開鍵の持ち主から送られてきたことがわかる。

メッセージ全体を暗号化する代わりに、メッセージを平文で送り、それにメッ セージを一方向関数(ハッシュ関数)と呼ばれる方法で計算した結果だけを、 秘密鍵で暗号化したものを送る方法もある。一方向関数では、計算結果から元 の値(メッセージ)を計算することが難しい。

ディジタル署名や利用者認証は、公開鍵暗号系ではなく、共通鍵暗号系を用い ても可能である。ただし、この場合、鍵を管理する信用できる管理センターが 必要となる。

◆公開鍵暗号を使った利用者認証

利用者認証のために、公開鍵暗号系を用いることができる。銀行の口座を例に、 これを説明する。

  1. 口座を開く時に、顧客は、公開鍵と秘密鍵を生成し、公開鍵を銀行に届 け、秘密鍵を自分で保持する。
  2. 顧客が通信回線を通じて銀行にアクセスしてきた時、銀行は乱数を1つ 生成し、顧客の公開鍵でそれを暗号化し、顧客に送り返す。
  3. 顧客は、送られてきた暗号化された乱数を、保持している秘密鍵で復号 化し、銀行に送り返す。
  4. 銀行は、顧客から返された乱数が正しければ、正当な顧客であると判定 する。
次回の呼び出しでは、別の乱数を用いることで、通信を記録している傍受者に も対応することができる。

単なる暗証番号の場合、通信を傍受されたら終り。

■電子現金

電子現金(electronic cash、電子マネー)とは、現金が持っている有用な性 質をディジタル情報を使って実現しようとするもの。
↑[もどる] ←[10月31日] ・[11月7日] →[11月14日]
Last updated: 2000/11/14 03:04:12
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>