2011年06月21日 情報科学類 コンピュータリテラシ 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2011/2011-06-21
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
対策
活動
ワーム(worm)は、他のプログラムに寄生しない。
世の中で「ウイルス(広義)」と呼んでいるものの中には、トロイやワームに分 類されるものが多い。
限界
悪意のあるプログラムの多くは、セキュリティ的な脆弱性を攻撃する。
現在のコンピュータは、機械語命令もデータも同じメモリに保存する。 データを機械語命令だと解釈して実行することができる。
悪意を持つプログラムが送られて来た場合、本来はデータとして扱わなければ ならないのに、脆弱性があるプログラムは機械語命令として解釈して制御を移 して実行してしまう。
分類
攻撃対象としては、サーバ(WWWサーバ、メール・サーバ)の他に、ルー タであることもある。
対策
インターネットの仕組みの基本:どのコンピュータとコンピュータも通信できる。
防火壁では、そのような本来の仕組みに制限を設け、特定のコンピュータとし か通信できないようにしたり、特定のサービスしかつかえないようにする。
[再掲]
アクセス制御(access control)
とは、「主体」が、「オブジェクト」を「操作」する時、どんな操作なら正し
いということを定義して、それがきちんと守られていることをということを保
証することである。
図? アクセス制御における主体、オブジェクト、および、操作
httpd.conf
、および、それから読み込まれるファイル
.htaccess
coins では www.coins.tsukuba.ac.jp の次の場所にある。
/usr/local/apache2/conf/httpd.conf
/usr/local/apache2/conf/sites/*.conf
order deny,allow deny from all allow from 130.158.0.0/16 133.51.0.0/16 192.50.17.0/24
WWW ブラウザが1つのページをアクセスするたびに HTTP のヘッダにユーザ名 とパスワードを含める。
GET /dir1/file1.html HTTP/1.1
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Authorization:
には、ユーザが打ち込んだユーザ名とパスワードが
Base64 (64進数)で符合化されて含まれている。Base64 は、暗号ではないので、
簡単に元にもどせる。以下の例では、openssl コマンドを使って元に戻してい
る。
$ echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | openssl base64 -d
Aladdin:open sesame$
$
Basic 認証では、パスワードがそのままネットワークを流れてしまう。
この問題点を解消するために、SSL で通信路を暗号化することがよく行われる。
<FilesMatch "\.(gif|jpe?g|png)$"> order deny,allow deny from all allow from 130.158.0.0/16 133.51.0.0/16 192.50.17.0/24 </FilesMatch>
協調して動作しているプログラムの間で、ある一連の作業を識別するための数 を意味する。
WWW(World Wide Web)では、1回のデータ転送ごとに通信路が切断される ので、通常はWWWのブラウザ(クライアント)とWWWサーバの間では、途 中経過を保持することができない。
途中経過を保存したい時:
WWWで途中経過を保存するためには、cookie が使われる。
普通のWWWサーバでは、要求を送ってきたコンピュータのIPアドレスを記 録しているので、コンピュータ単位でのアクセス状況を記録することはできる が、個人を特定することはできない。
クッキーを利用することにより、コンピュータではなくどの個人がアクセスし てきたかを記録することができる。
クッキーから電子メールのアドレスや氏名まで調べることはできない。 しかし、インターネットをサーフしている間にどこかでそれを打ち込んだが最 後、クッキーと電子メール・アドレスや氏名との対応が記録されてしまう危険 性がある。
参考
RFC2965 HTTP State Management Mechanism
Blogger と呼ばれるブログ作成ツールの登場すると、商用のニュースサイトに 匹敵するようなデザインのページをブログとして簡単に作ることができるよう になった。それに伴い、充実した内容を含むものも増え、専門家による情報発 信にも利用されるようになった。今日では、ブログはパブリッシングツールと しての地位を得初めている。
ブログが一般的に着目され始めたのは、9月11日の米国同時多発テロ事件以後 である。イラク戦争の前には、「Where is Raed ?」と題するバグダッド在住 の Salam Pax と名乗る人物のブログに1日数十万件のアクセスがあった。こ のような出来事では、現場の人の声やマスメディアでは報道されないような情 報がブログとして発信された。
日本では、土佐日記以来、誰かに読まれることを前提にした日記(形式の文学) の歴史があり、今でも個人的な日記も多い。
RSS の 記述は、全体で大きく2つの部分に分かれる。前半は、Web サイト 全体(RSSではチャネルと呼ぶ)の記述であり、Web サイト全体の タイトル(40バイト程度)、URL、および、リンク、簡単な説明(500 バイト以内)が含まれる。後半では、個々の Web ページのタイトル や URL が置かれる。
RSS は、ニュースサイトが記事の見出しを配信するためによく使わ れている。また、ブログ(blog、Web log)のツールの中には、自動 的に RSS により更新情報を提供するものがある。RSS を自動的に 収集して表示するためのブラウザや RSS を蓄積し検索サービスを 提供する Web サイトも開発されている。
現在、RSS には、1.0 系列と 0.9-2.0 系列の2つの系列がある。 RSS は、1999年、Netscape Communications社により、自社のサー ビスで見出し一覧を配信するために開発された。その後、見出しだ けでなく、要約、日付などの拡張がなされた(RSS 0.9, 0.91)。 Netscape が開発をやめた後、RSS-DEV と呼ばれる開発グループが 作られた。そのグループにより、基本的な要約提供部分をコアとし、 高度な機能をモジュールとして追加できるようにした RSS 1.0 が 策定された。一方、別のグループは、RSS 0.91 を元にして、コン テンツ配信を目指して RSS 2.0 を作成した。
RSS 2.0 は、クリエティブ・コモンズのライセンスで配布されている。
RSS -- サイト情報の要約と公開 by 神崎正英 http://www.kanzaki.com/docs/sw/rss.html
英語圏では、「RSS reader」よりも「aggregator」という呼び方が多い。 複数の RSS や Atom で配信されている情報を1つに集約(aggregate)して 読みことができることによる。
RSS reader/Aggregator を使うと、単純に WWW サイトを訪れる方法と比較し て、楽に更新された情報を見ることができる。メーリング・リスト等と 比較して、spam が混入することは(今の所)ない。
2種類の方法がある。
ネットワーク・ニュースのメッセージを読み書きするには、ニュース・リーダ と呼ばれるプログラムを使う。
ネットワーク・ニュース(network news) あるいは、 ネットニュース(netnews) は、インターネットで「1対多の通信」を実現するための仕掛けの1つ。 Usenet と呼ばれることもある。 ネットワーク・ニュースでは、ある書き手が発したメッセージを、大勢の人が 読む。ネットワーク・ニュースでは、メッセージの事を新聞に たとえて「 記事(article) 」と呼ぶ。 1つひとつの記事は、電子メールと同じく、基本的にはテキストである。
図?は、ネットワーク・ニュースの記事が配送される様子を表わしている。
各LAN上のどれかのコンピュータでは、ネットワーク・ニュースのサーバ (NNTPサーバ) とよばれるコンピュータ が動いている。そのサーバは、LAN内の他のコンピュータで動いているニュー ス・リーダからの要求に従って、自分が保存している記事を提供する。また、 投稿された記事や他のサーバから受け取った記事を、他のサーバへ転送する。 この時、サーバ間、および、サーバとニュース・リーダの間で使われる、 通信の仕組みは、 NNTP (Network News Transfer Protocol) と呼ばれている。
このように、ネットワーク・ニュースの記事はサーバ間で次々にコピーされる 形で伝わっていく。この時、世界中の数百万のサーバの中には、コピーに 失敗することがある。こういう現象を、「記事が落ちる」という。 また、コピーには、どうしても遅れか生じる。電子メールが1分もかからな いで届くような間でも、ネットワーク・ニュースの場合は、数時間はかかると こともある。また、途中のサーバが止まっていると、記事が落ちな いまでも、そこで何日か足止めされることがある。
ニュース・リーダ(news reader) は、ユーザと対話しながら、サーバから記事を取り寄せたりサーバに記事を送っ たりするプログラムである。
ネットワーク・ニュースでは、毎日膨大な量の記事が投稿されている。それ を保存するためのディスク容量には、限りがある。よって、記事は、あ る保存期間が過ぎると自動的に消されるようになっている。 これを、 エクスパイア(expire) するという。保存期間は、サーバによって異なるか、普通は2週間程 度である。 coins では、3ヶ月。
ネットワーク・ニュースの記事は、次のようなテキスト。
Newsgroups: fj.news.reader
From: shiro@is.tsukuba.ac.jp (Shiro Yagi)
Subject: E-Mail facility of news readers
Date: Thu, 24 Apr 2008 00:55:50 GMT
Organization: Institute of Information Sciences and Electronics, Univ of Tsukuba
Message-ID: <SHIRO.10Apr24085550@is.tsukuba.ac.jp>
こんにちは。白やぎです。
ニュース・リーダの電子メールも読み書き機能では、どれが便利一
番便利でしょうか。GNUS でも、メールが読めると聞いたのですけ
れど。
♪♪ 白やぎ
♪♪ http://www.is.tsukuba.ac.jp/~shiro/
ネットワーク・ニュースの記事の構造は、 電子メールと共通である。 電子メールもネットワーク・ニュースの記事も、空行で ヘッダ(header、頭) と 本文(body) にわかれる。
電子メールと共通のフィールド:
記事は、 ニュース・グループ(newsgroup) と呼ばれる仕組みを使って分類されている。世界中で1日に投稿される記事 は、数百万にもなる。それらの記事を全部読むことはできない。 ニュース・グループという仕組みを利用して記事を分類し、各自が興味を持っ ている記事を簡単に見つけられるようにしている。 それぞれの記事のヘッダのNewsgroups: フィールドには、その記事がど のニュース・グループに属しているかが書かれている。
ニュース・グループには、次のように、「.」で区切られたアルファベット や数字などで名前が付けられている。
fj.rec.music
fj.comp.lang.c
ニュース・グループの名前は、英語で、かつ長いものは省略形で 付けられている。
ニュース・グループの名前は、全体として、 木構造 になっている。木構造が使われている理由は、 パス名によるファイルの名前付け やDNS (Domain Name System) と同様に、非常に数多くのニュース・グループを扱えることによる。 節の区切りは、「/」ではなく、「.」。
ニュース・リーダの中でも、mnews や vin は、ユーザがニュー ス・グループの木構造にそってニュース・グループを選んでいくことになる。 ニュース・リーダによっては、ユーザは、木構造をあまり意識せず、自分が 興味があるグループを自分が好きな順序で選んでいくことができるようになっている。
1つの記事は、普通、1つのニュース・グループにだけ現われる。記事を投 稿する時に、複数のニュース・グループに現われるようにすることを、 クロスポスト という。
よいニュース・リーダなら、クロスポストされた記事を見つけると、一度 だけユーザに提示し、別のニュース・グループでは既読として扱い、提示しな いという機能がある。クロスポストの機能を使わずに、同じ内容の記事を 複数のニュース・グループに別々に投稿することを マルチポスト という。マルチポストは、特別な場合を除いて、避けるべきである。い くら大事で有益な情報でも、何度も同じ記事を読むことを望む人はいない。
Distribution:
とは、
普通、記事が配られる範囲を制限する(小さくする)機能である。
配布範囲の例としては、
学内、社内、市内などが考えられる。典型的な使い方は、
たとえば、fj などのもともと世界区のニュース・グループに、学内に限定し
た話題を投稿する時に、配布範囲として「学内」を指定して投稿するというこ
とである。
特別な配布範囲:
local
world
配布範囲の機能は、現在の所、あまりうまく活用されていない。
多くの場合は、空のままでよい。配布範囲が空の場合、
world
という意味になる。
ニュース・グループの中には、自分には興味がないものもある。ニュース・ リーダには、そのようなニュース・グループを、表示しない機能がある。 このことを、ニュース・グループを購読しない状態にするとか、 アンサブスクライブ(unsubscribe) するという。多くのニュース・リーダは、新しいニュース・グループを 購読する状態 ( サブスクライブ(subscribe) された状態 ) にする。ユーザは、興味があればそのままの状態にしておき、興味がなけれ ば、アンサブスクライブする。
1つのニュース・グループでは、各記事には、サーバが受け取った順に付けら れた番号が付けられている。 記事番号 と呼ぶことがある。ニュース・リーダは、標準では、この記事番号の順番 に記事を提示する。Subject: や、 スレッド の順序で並べ変えて関連する話題を連続的に読めるように提示する機能がある ニュース・リーダもある。記事番号、ニュース・サーバごとに異なる。 記事を参照する時には、 Message-ID: を使う。
記事を書くには、記事の形式で説明 したようなテキストを作成し、サーバ・プロセスに渡すことになる。この 作業を、記事を投稿する、 あるいは、 ポストするという。
ネットワーク・ニュースの記事を投稿するのは、電子メールを出すことと非常 によく似ている。異なる点は、 電子メールの受取人の電子メールのアドレス(To:)の代わりに、ニュー ス・グループ名(Newsgroups:)を指定する所、および、 配布範囲 (Distribution:)を指定することである。
投稿された記事は、すぐには読めない。これは、効率のため、ある程度ため 込んでまとめて処理されるからである。うまく投稿されたかどうかを確認するに は、場合によっては10分〜15分ほど待つ必要がある。そして、1度 ニュース・リーダをを終了して、再び実行しなおすか、新着記事をチェックす る操作を行うと、見えるようになる。
ネットワーク・ニュースでは、記事を投稿する時に、他の人が書いた記事を引 用しつつ自分の意見を書き加える形で行なうことがよく行われる。この方法の 投稿ことを、 フォローアップ(followup) という。ネットワーク・ニュースの記事を読むと直ぐに気が付くように、 記事の大部分はフォローアップ記事である。どのニュース・リーダも、フォ ローアップ記事を簡単に投稿できるような機能を持っている。
記事をクロスポスト記事するには、
Newsgroups:
ヘッダに、ニュース・グループを「,」で区切りながら並べる。
また、クロスポストする時には、同時に
Followup-To:
を付け、以後の議論が続けたいニュース・グループを指定することができる。
これが付いた記事にフォローアップしようとすると、ニュース・リーダは、こ
こに指定されたニュース・グループをNewsgroups: に設定する。
ネットワーク・ニュースでは、フォローアップで話を進めていくことが基本だが、 記事を書いた人に電子メールを出して詳しい話を聞いたり、 詳しい情報提供をしたりすることも行われる。 このことを、電子メールと同様に、 リプライ(reply) するという。
電子メールと違って、ネットワーク・ニュースでは、一度投稿した記事を 取り消すことができる。これを、記事を キャンセル(cancel) するという。キャンセルできるのは、自分が投稿した記事だけである。 普通のニュース・リーダなら、キャンセルする機能がある。
記事は、保存期間が終ると消えるので、ネットワーク・ニュースの記事で、有 益なものを見つけた時には、ファイルに保存する必要がある。ニュース・ リーダでは、記事を保存する機能がある。
NNTPSERVER
)
が使われる。ポー
ト番号は、標準では 119 が使われるので、普通は、ホスト名だけを指定する。
ニュース・リーダの中には、119 以外のポート番号に接続できるものや、複数
のサーバに接続できるものもある。
このメニューから「Symantec AntiVirus」を選び実行してみなさい。 あるいは、「アプリケーション」にある次のプログラムを実行しなさい。
$ open "/Applications/Symantec AntiVirus"
「ツール」メニューから「ウイルス情報」を選びなさい。そこに現在利用して いる「ウイルス定義ファイル」に何個の悪意のあるプログラムの定義が含まれ ているかを観察しなさい。その定義ファイルがいつ更新されたものかを調べな さい。
「ヘルプ」メニューから「Symantec AntiVirusヘルプ」を選択して、「機能の 概要」を読みなさい。
MacOSX Firefox
MacOSX Firefox
~/Library/Caches/Firefox/Profiles/*/Cache/
$ mkdir ~/secure_html
$ mkdir ~/secure_html/ディレクトリ名
次のドキュメントを参考にして、作成したディレクトリに .htaccess を作成し
なさい。
次の3つの方法を比較しなさい。
Require valid-user
と書く方法
Require user
と書く方法
Require ldap-group
と書く方法
$ cat ~yas/secure_html/coins/literacy-2011/.htaccess
例:パスワード・ファイル
/home1/prof/yas/etc/passwd-doc1
に登録されているユーザだけが、
.htaccess
があるディレクトリ以下にあるファイルをアクセスできる。
.htaccess:
AuthType Basic AuthName "restricted stuff" AuthUserFile /home1/prof/yas/etc/passwd-doc1 require valid-userこのパスワード・ファイルは、サーバ上でhtpasswd というプログラムで作成する。
$ htpasswd -c /home1/prof/yas/etc/passwd-doc1 user1
Adding password for user1.
New password:user1のパスワードを打ち込む
Re-type new password:user1のパスワードを打ち込む
$ htpasswd /home1/prof/yas/etc/passwd-doc1 user2
Adding user user2
New password:user2のパスワードを打ち込む
Re-type new password:user2のパスワードを打ち込む
$
一番最初は、-c
オプション付で実行する。passwd
コマ
ンドと同様に、打ち込んだパスワードは、画面には表示されず、また、確
認のために2回打つ必要がある。
htpasswd コマンドの結果、次のようなファイルが作られる。
user1:1fjr1tHIgoG7U
user2:qXaeA9Zge7Yqc
ユーザ名と暗号化されたパスワード(正確にはパスワードのハッシュ値)から
構成される。
パスワードによるアクセス制御の例:
設定ファイル .htaccess
AuthType Basic AuthName "restricted stuff" AuthUserFile /home1/prof/yas/etc/passwd-doc1 require valid-user
$ ls ~yas/secure_html/coins/literacy-2011/
$ ls -a ~yas/secure_html/coins/literacy-2011/
ここにある .htaccess にどのような記述がなされているかを調べなさい。
たとえば、fj では次のような方法がある。
(1) RSSリーダ の設定をしなさい。RSSリーダとし ては、Firefox, Thunderbird, Safari, その他 Web サイト上のもの考えられる。 2つ以上のサイトの RSS を登録しなさい。RSS の URL、他の受講生に対する紹 介(数行程度)を書きなさい。
(2) アクセスする時に Cookie の設定を要求する Web サイトを1つ示しなさい。 そのサイトが Cookie の設定を有効にした時と無効にした時で動作が変わるか を調べなさい。
(3) The Unix Super Text の次の部分を読みなさい。
(4) [加点] Webページにおいて、ある特定のディレクトリ以下のファイルやディ レクトリに対して、Basic 認証、または、IP アドレスを用いてアクセス制御を 行うように設定しなさい。レポートにはディレクトリ名、および、作成し た.htaccess の記述、アクセスが許されたときのログ、失敗した時のログを含 めなさい。ログは最小限のものだけを含めなさい。
(5) [加点] ニュースリーダの設定を行いなさい。ネットワーク・ニュースの記 事を読みなさい。その中で、面白い記事、または、将来役立ちそうな記事を保 存しなさい。この時、次のヘッダをきちんと保持しなさい。