3.2 ( 0 ⅳ mn アクセス解析 HTTP (HyperText Transfer protocol) Web サーバへのアクセス記録 ( アクセスログ ) を解析することをアクセス解析といい ます。たとえば、曜日や時刻別のアクセス数を見てユーザの傾向をつかんだり、人気の あるべージを調べたりといったことをします。このほか、アクセスに使われている Web クライアントの種類と比率を確認することで、 \Neb ページをデザインするときのメイン ターゲットとなる Web ブラウザを決めることもできるでしよう。 アクセス解析は、 Web サーパソフトが保存するログを利用するのが基本です。 web スペースを借りているような場合は、ログを見ることができないので、 JavaSc 「 ipt や CGI プログラムなどを利用してログを残すようにします。 HTTP レスポンス body) が返されます。 ・レスポンスの例 HTTP/ 1 . 1 2 0 0 OK Date : Thu ′ 5 Ju1 2 0 01 18 : 5 8 Server: Apache/I . 3 . 19 (Unix) Connection: close Content—Type: text/html く h しⅢ 1 > ・ステータスコード HTTP リクエストに対する応答です。レスポンスへッダとデータ本体 (O bj ect- ←リクエストの結果 ( 状態へッダ ) : 18 GMT ←応答時刻 ←サーバ名 ←現在の状態 ←データの内容 ← HTML52—タ ( デ ータ本体 ) 指定されたデータがない場合や、アクセスが許可されていない場合は、エラー番号 した場合は 500 (lnternal Server Error) となります。このような番号をステータス 失敗した場合は 401 (Unauthorized) などです。このほか、サーパ内でエラーが発生 が返されます。たとえば、ファイルが見つからない場合は 404 (NotFound) 、認証に あります。 【ステータスコード】エラー内容を示すメッセージを含んだ HTM L データを返すようになっている web サーバも じ、適切なステータスコードを返すようにする必要があります。 コード * といいます。サーバサイドの Web アプリケーションを作るときは、必要に応
第 8 章セキュリティ ・非武装地帯 (DeMiIitarized Zone : DMZ) ファイアウォールを導入しているサイトのうち、外部からアクセス可能なハードウ ェアやサービスのことを非武装地帯 (DeMiIitarized Zone : DMZ) といいます。 公開用の web サーバなど、外部からアクセスされるサーバを非武装地帯に配置し ておくことで、公開サーバもファイアウォール内で管理することが可能になります。 また、非武装地帯と内部用のネットワークとで異なるセキュリティ管理を行ない、内 インターネット 部用ネットワークのセキュリティを強化できます。 図 8-31 ・ DMZ のイメージ 内部い N 匿名プロキシ ファイアウォール Web サーバ 外部からアクセス可 代 p サーバ DMZ ( 非武装地帯 ) " 代理人 " であるプロキシサーバ経由でインターネットにアクセスする場合も、接続元 の旧アドレスは接続先に通知されます。接続元の IP アドレスを隠すようになっている プロキシサーバは匿名プロキシと呼ばれます。サーバの設定にもよりますが、匿名プロ キシ経由でアクセスすれば、接続元の情報が漏れることはほとんどありません。このた め、匿名プロキシは、プライバシーを守るという目的のほかに、いたすらや犯罪行為を 行なうときの隠れ蓑として使用されるケースがあります。 サイト管理者側の姿勢としては、匿名プロキシ経由のアクセスを拒否する、または掲 示板などへの投稿だけを拒否するなどといったボリシーが考えられます。ただし、複数 のプロキシサーバを経由する多段プロキシを使用するケースもあるため、どこまで追求 するかも併せて考慮する必要があるでしよう。 なお、ダイヤルアップ接続の場合、旧アドレスは接続のたびに変化するので ( 動的 IP アドレス : P. 89 ) 、接続元がわかるといってもすぐに個人が特定できるわけではあ りません。せいぜい使用しているプロバイダやアクセスポイントがわかる程度でしよう。 犯罪絡みなどで、どうしても特定が必要な場合は、プロバイダのアクセス記録 ( 通常は 非公開 ) などと照らし合わせて調査することになります。 210
第 8 章セキュリティ ・アクセスサーバと認証サーバ ューザごとに細かい管理が必要な場合、外部からの接続を管理するアクセスサーバ と組み合わせて、認証サーバを使うことがあります。 アクセスサーバは、ユーザからの接続を受け付け、認証サーバに問い合わせます。 一方、認証サーバは、ユーザの認証および各ユーザの権限などを一元管理します。 認証システムとして、 RA US および TACACS + などが使われます。 図 8-9 ・アクセスサーバ / 認証サーバのはたらき ログインしたい ・ RADIUS この人 入れていい ? アクセスサーバ RADIUS クライアント 内部ネットワーク いいよ RADIUS 認証サーバ RADIUS (Remote Authentication Dial ln User service) は、ダイヤルアップ 接続で使用されるユーザ認証システムで、 CHAP などで暗号化されたパスワードを、 RADIUS サーバに送り認証を行ないます。 RADIUS サーバは、認証だけではなく利 用時間制限などのさまざまな情報が一元管理できます。 ・ TACACS + TACACS + (TerminaI Access Contr011er Access system plus) は、 NAS (Network Access server) と認証サーバ間の認証およびアクセス許可に関する情報 の転送を処理し、パスワードを暗号化してネッワークに転送します。 Cisco Systems 社によって開発されました。 TACACS + の元となった TACACS は、 DDN (Defense DataNetwork : 国防データネットワーク ) が開発したシステムで、 PAP * による簡 単な認証でアクセスを制御します。なお、 TACACS + と TACACS には互換性はあり ません。 【 PAP (Password Authentication protocol) 】 ppp 接続 ( p. 186 脚注 ) で使われる認証プロトコル。ユーザの ログイン時にユーザ名とパスワードがサーバに送信され、サーバにあるユーザ名とパスワードのテーブルを使っ て認証が行なわれます。ユーザ名やバスワードは暗号化されません。
8.1 セキュリティの概要 ・リモートアクセスとユーサ認証 社内のネットワークに外出先からアクセスしたいというケースがあります。電話回 線などを利用して、遠隔地からコンピュータネットワークを使用することをリモート アクセスといいます。ここでもユーザ認証が必要となります。 WindowsNT/ 2000 の場合、 RAS (Remote Access Service) サーバを使って、 外出先から自社のネットワークにログインするのが一般的です。なお、 UNIX 系環境 は、もともと TCP/IP によるネットワークを前提に発展しているため、 ppp 接続 ( P. 186 脚注 ) でも簡単にリモートアクセスが可能です * 。 ・コールバック 電話回線を使ってリモートアクセスを行なう場合、接続先からコールバックさせる ことができます。コールバックには、通話料を接続先持ちにできるほかに、接続用の 端末を限定するという効果があります。すなわち、 " 携帯電話の持ち主 " や特定の場 所にいる人 " という形でユーザを限定することができます。 図 8-8 ・コールバックのしくみ コールバックを受けて はじめて通信開始 日 AS サーバ CaII Back 了解。 かけなおしましよう こちら 070- xxxx -3812 。 接続したいです コールバックして もらえないので ログインできない 381 5 ? あんた誰 ? 日 AS サーバ こちら 070- xxxx -38 ] 5 。 接続したいです 端末を限定することで ユーザを管理できます 【 UN Ⅸ系環境でのリモートアクセス】 rlogin 、「 sh などのいわゆる " r 系サービス " で実現しますが、安全のため、 OTP ( P. 187 ) と暗号化通信を行なう SSH (SecureSHell) を使うことをお勧めします。
第 8 章セキュリティ このほか、先述の共通鍵や公開鍵を使ってパスワードを暗号化する方法がありま す。共通鍵を使う代表的な方式が Kerberos 認証 * で、 Windows2000 では Kerberos v5 が使用されています。 Kerberos 認証では、認証サーバ ()S : Authentication Server) と、公開鍵を管理するチケット配布サーバ (TGS : Ticket Granting Server) の 2 種類のサーバによって認証を行ないます。 Kerberos 認証では、ネットワーク全体を Kerberos KDC (Key Distribution Center : 鍵配布所 ) で管理します。 Kerberos KDC では、 AS と TGS が動いていま す。 たとえば、 KDC で管理されているネットワーク * にあるサーバ A にアクセスする ときの流れは次のようになっています。 クライアントは、まず AS に接続してクレデンシャル (credential : 信任状 ) を受 け取ります。クレデンシャルには、 TGS と通信するためのセッション鍵と TGT (Ticket Granting Ticket : チケット保証チケット ) が含まれています。続いて、 TGS に接続し、サーバ A へのアクセス用チケットを受け取ります。アクセス用チケ ットには、クライアント名とサーバ名、時刻、有効期限、セッション鍵 (ASK : Application Session Key) が含まれています。クライアントはこのアクセス用チケ ットを使ってサーバ A の認証を受けます。 クレデンシャルは KDC の秘密鍵で暗号化されているため、クライアントからは変 更できません。したがって、このクレデンシャルを持っている限り、 KDC 管理下で はパスワードの入力が不要となります。 図 8-7 ・ Kerberos 認証の流れ ユーザが ID と バスワードを ①クレデンシャル ( 信任状 ) を入れるのは 要求する ここだけ ② KDC の秘密鍵で暗号化された クレデンシャルを渡す KDC ・ Windows2000 では、この段階を AS : 認証サーバ 「ネットワークログオン」と呼ぶ TGS : チケット クレデンシャル 配布サーバ セッション鍵、 TGT サーバ A 3 TGT を渡してサーバ A へのアクセ ス用チケットを要求する 0 アクセス用チケットを渡す 0 クセス用チケットを送る 0 クセス用チケットに従って接続 を許可する アクセス用チケット クライアント名、サーバ名、 時刻、有効期限、セッション鍵 サーバ C サーバ B ・・・ KDC 配下のサーバならば 同じ要領でアクセス可能。 ユーサはバスワードなど を再入力する必要がない 【 Ke 市 e 「 os 】ギリシャ神話に登場する、黄泉の国を守る 3 つの頭を持つ番大ケルべロス (Cerberus) に由来。 【 KDC に管理されているネットワーク】 KDC 配下のネットワークにあるサーバやプリンタなどのリソース群はレ ルム (realm : 国土 ) と呼ばれます。 Ke 「 be 「 os 認証は、遊園地のように、入場券 ( レルム用チケット = クレデン シャル ) と乗り物用の券 ( 個々のリソースへのアクセスチケット ) を使ってユーザを管理します。
第 8 章セキュリティ 図 8-23 ・ SSL による暗号化通信 Web サーバ SSL に備えて 証明書を持ってるせ ! 公開鍵交換終了 自分の秘密鍵で 受け取ったクライアントの 公開鍵を復合 mn SSL とホート番号 SSL 接続を要求 証明書を送信 公開鍵 自分の公開鍵を 証明書の公開鍵で 暗号化して送信 暗号化通信開始 サーバの公開鍵で暗号化 「私の住所は xx です」 ユーザの公開鍵で暗号化 「あなたの住所は xx ですね」 Web クライアント ( Web ブラウザ ) 証明書を見て Web サーバの 持ち主 = 業者を確認 認証局に問い合わせる こともできる このあたりの処理は みんな Web プラウザが やってくれるんだ 第 4 章 ( P. 103 ) にあるように、 TCP 刀 P ではボート番号によって HTTP や FTP など のサービスを区別します。同様に、 HTTP と SSL 経由の HTTP (HTTPS) は、ポー ト番号が異なります。 ところで、ファイアウォールでは、ボート番号によってデータを通すか通さないかを 制御します。このとき、 HTTP 用のボート番号はファイアウォールを通過できるように なっているのが一般的ですが、 SSL (HTTPS) 用のポートは通過できるようになってい ないことがあります。この場合、 HTTP によるアクセス (http: 〃 ~) はできても、 SSL 経由のアクセス (https://æ) はできません。 SSL 経由のアクセスができるかどうかは、ユーザの環境次第です。特に、企業内の ネットワークからアクセスしているユーザの場合、諸々の事情により SSL が使用でき ないようになっているというケースが、時として見受けられるようです。 202
8.4 ファイアウォールとサイトの保全 図 8-29 ・特定のデータだけ通過できる 検問所 誰ですか ? あなたは ・プロキシ はい。あなたおつけーです バケットを見て、プロトコルの種類や ポート番号 ( サービスの種類 ) 、 IP アドレスで、通すか通さないかを 決めます プロキシとは " 代理人 " (proxy) という意味で、クライアントの代理人としてネッ トワークにアクセスするプログラムです。バケットフィルタの検問所に対して検閲 + 仲介人のような役割を果たし、すべての通信をプロキシ経由で行なうことで内部と外 部を直接通信させないようにします。 なお、プロキシというと、多くの場合 Web プロキシを指します。 Web プロキシに は、一度アクセスした Web サイトの内容をキャッシュ ( 一時的に保存 ) しておく機能 があります。同じリクエストに対してはキャッシュから応答することでレスポンスを 速くします。クライアント数が多い場合、外部とのトラフィックを軽減させる効果も あります。また、特定のドメインや、特定のキーワードを含むべージへはアクセスさ せないようにするなどの細かい管理が可能なソフトもあります。 図 8-30 ・代理人を通じて通信する はいはい。 通っちゃだめだよ 検閲所 私が伝えて おきますから プロキシ 外部・←・ ・←・内部 ( 代理人 ) すべて " 代理人 " 経由で通信します 209
6.1 オブジェクト指向とは たとえば、・・タンク " データを持っオプジェクトに、タンクをもう 1 つ追加したケー スを考えてみましよう。これを " 予備タンク " と名付けたとします。 燃料の量を知るために、 " タンク " データへ直接アクセスしている場合、予備タン クの存在が無視されてしまいます。また、 2 つのタンクに対し " タンク 1 " 、 " タンク 2 " と名付けた場合、 " タンク " という名前のデータがなくなるため、処理できなくなりま す。 データをカプセル化し " 燃料タンクプロバティ " を用意しておくことで、この問題 が解決できます。内部が " タンク " だろうが " タンク + 予備タンク " だろうが、外部か らはとにかく燃料タンクの値として扱うことができるためです。データが隠蔽されて いることで、プログラマは、・燃料タンクプロバティ " を扱うことに専念できます。 また、データへのアクセスは常にプロバティを経由することになるため、データの 安全を守るという効果もあります。 図 6-4 ・データの隠蔽の効果 タンク予備タンク 2 つに分けたよ 燃料タンクを ・・・カプセル化されているデータ 予備タンクの分が考慮されない あと 3 リットル分走れるんだ。 タンクの中身は 3 リットル。 タンク 1 タンク 2 149 正しいアクセスが可能 関係なく す内部構造の変化に あるのね とにかく 1 0 リットル 変数名が変更された アクセスするのに必要な " タンク " がないよ ? あれ ?
c から 6b3 層システムまで ゎ図 b アプリケーションを 支える全技術を か解 図解でわかる 豊富なイラストで るで やさしく解説 ! ◎ Web アプリケーションとは何か ? ◎各種企 b サーバのしくみとは , それそれの違いと強みとは ? ◎ダイナミックな企 b ページは どのように作られている ? ◎ユーサ認証 , セッション管理 , 暗号化通信のしくみとは ? ◎分散オプジェクトはなせ注目される ? ◎ト b アプリケーションとデータベース 連携システム開発の注意点とは ? ◎企 b で使われる Ja Ⅷ技術とは ? ◎サーバで実行するプログラムとは ? ◎サイトの保全を実現する セキュリティ技術はどうなっている ? ◎携帯電話用サイト開発の注意点とは ? b ビジネスの現在と未来が 見えてくる I S B N 4 ー 5 5 4 ー 0 5 5 00 ー 1 C 0 00 4 \ 2 5 0 0 E 定価本体 2500 円 ( 税別 ) 日本実業出版社 97845540 ろ 3000 1 9 2 0 00 40 2 5 0 09 W ・ アプリケーション のすべて GI から 3 層シズテムまで 図解でわかる Web アプリケーション のすべて 西村めぐみ クレアンシャルに状 ) を 要求する KDC の秘窰で号化されに クレテンシャルを要す W d 。 W520 では . この取物を 「ネットワークログオン」と呼ぶ ◎ C / S ト b3 層システム , アプリケーションサーバ ◎ト b サーバ , HTTP.WebDAV ◎ CGI, クッキー , セッション管理 ◎暗号化技術 , SSL,VPN, ファイアウォール ◎分散オプジェクト , COM十, CORBA,SQL,JDBC ◎ DHTML,XML, バーサ ;DOM ◎サーバサイドスクリプト , PHP,ASP ◎ Java'Servlet,JSP,EJB,J2EE ◎ i モード , cIITML, HDML ◎ EC , ト b D CALS 3 TGT をしてサーバ A への アクセス用チケットを要求する 4 アクセス用チケットを悪す 5 アクセス用ナケットを送る 6 アクセス用チケットに につ ( 接続を許可する データ入力・表示 / 業務 - 気 、、サーバ C サーバ日 KDC 妃下のサーバならば 同し要領でアクセス可能。 ューサはバスワードなと を再入力する必要がない サーバ A 西村めぐみ一著 いつも同じソフトが 利用できるよ 業務形態がかわったら ここだけ差し替えるんだ 日本実業出版社 3300 * F 2500
c から 6b3 層システムまで ゎ図 b アプリケーションを 支える全技術を か解 図解でわかる 豊富なイラストで るで やさしく解説 ! ◎ Web アプリケーションとは何か ? ◎各種企 b サーバのしくみとは , それそれの違いと強みとは ? ◎ダイナミックな企 b ページは どのように作られている ? ◎ユーサ認証 , セッション管理 , 暗号化通信のしくみとは ? ◎分散オプジェクトはなせ注目される ? ◎ト b アプリケーションとデータベース 連携システム開発の注意点とは ? ◎企 b で使われる Ja Ⅷ技術とは ? ◎サーバで実行するプログラムとは ? ◎サイトの保全を実現する セキュリティ技術はどうなっている ? ◎携帯電話用サイト開発の注意点とは ? b ビジネスの現在と未来が 見えてくる I S B N 4 ー 5 5 4 ー 0 5 5 00 ー 1 C 0 00 4 \ 2 5 0 0 E 定価本体 2500 円 ( 税別 ) 日本実業出版社 97845540 ろ 3000 1 9 2 0 00 40 2 5 0 09 W ・ アプリケーション のすべて GI から 3 層シズテムまで 図解でわかる Web アプリケーション のすべて 西村めぐみ クレアンシャルに状 ) を 要求する KDC の秘窰で号化されに クレテンシャルを要す W d 。 W520 では . この取物を 「ネットワークログオン」と呼ぶ ◎ C / S ト b3 層システム , アプリケーションサーバ ◎ト b サーバ , HTTP.WebDAV ◎ CGI, クッキー , セッション管理 ◎暗号化技術 , SSL,VPN, ファイアウォール ◎分散オプジェクト , COM十, CORBA,SQL,JDBC ◎ DHTML,XML, バーサ ;DOM ◎サーバサイドスクリプト , PHP,ASP ◎ Java'Servlet,JSP,EJB,J2EE ◎ i モード , cIITML, HDML ◎ EC , ト b D CALS 3 TGT をしてサーバ A への アクセス用チケットを要求する 4 アクセス用チケットを悪す 5 アクセス用ナケットを送る 6 アクセス用チケットに につ ( 接続を許可する データ入力・表示 / 業務 - 気 、、サーバ C サーバ日 KDC 妃下のサーバならば 同し要領でアクセス可能。 ューサはバスワードなと を再入力する必要がない サーバ A 西村めぐみ一著 いつも同じソフトが 利用できるよ 業務形態がかわったら ここだけ差し替えるんだ 日本実業出版社 3300 * F 2500