noscript (HTML) NOte Oak 言語 OAS object (HTML) OPIE Opera OpenSSL OODBMS 00 OMG IDL OMG OLE OLAP (HTML) ODN ODMG ODBC OCX OCN Oracle option (HTML) optgroup (HTML) Mosaic Mozilla Moz Ⅲ a プロジェクト MP3 MS-Networks MSXML MTS MySQL NCSA HTTPd NCSA Mosaic NetBEUl NetBlOS ( イベント属性 ) noframes (HTML) NNTP NN NIS N ℃ NetWare Netscape NetBlOS over TCP/IP 72 269 287 160 139 75 1 1 0 1 1 0 1 1 0 108 103 239 263 283 337 341 PC PDA PDF Peer tO Peer Perl スクリプト PGP PHP PHP ( プログラム例 ) PHS ( 通信速度 ) PingofDeath アタック pre (HTML) PR PPTP PPP POTS スプリッタ POTS POST メソッド PostgreSQL POP PNG PKI property (CSS) 253 345 270 84 , 301 317 186 324 35 92 295 212 185 349 103 139 320 93 93 186 206 283 232 246 s (HTML) SA samp (HTML) SAX script (HTML) SCRIPT NAME SDL SDSL SECE SecurlD select (HTML) se lectO r SEQUEL SERVER NAME INDEX 238 206 238 288 238 , 261 Server Side Java Script SERVER SOFTWARE Servlet SET SGML SGML アプリケー Shockwave S-HTTP shttp SilverStream Simula S/Key SLD small (HTML) SMIL S/MIME SMTP SNTP SOAP SPAM span (HTML) SPI SPX SQL SQL2 SQL99 SQL Server SSH SSI SSL strike (HTML) strong (HTML) style (HTML) style 属性 sub (HTML) sup (HTML) SVG SVGA Sybase ンヨン Proposed Recommendation 230 , 237 , 238 328 330 94 215 187 235 246 131 328 305 328 339 215 226 226 270 67 67 103 103 186 279 238 105 187 155 173 93 134 334 93 233 141 159 158 162 262 146 130 197 187 237 237 140 PtoP PWS PX q (HTML) QUERY STRING QuickTime RADIUS RARP RAS RC RC2—6 RDBMS RDF RealPIayer Recommendation RELAX REMOTE ADDR REMOTE HOST Request-URl R FC RGB 混合比 日旧 RMI RMI/IIOP ROLAP RonaId Rivest ROPE RPC R SA Ruby 283 253 301 76 253 238 328 268 190 1 08 189 283 183 128 279 268 283 282 328 328 64 68 254 108 163 163 141 183 330 159 183 317 162 , 289 , 302 0 「 ac lnternet AppIication Server ORB ORDBMS OSF 0 引参照モデル OT P p (HTML) P2P → PtoP padding- (CSS) PAP param (HTML) 173 , 341 160 , 161 130 159 96 187 232 258 190 230 SYN flooding アタック TA table (HTML) 213 238 206 128 , 131 133 133 140 205 325 197 238 238 230 249 238 238 279 347 139 , 140 212 93 234
SSL (Secure Socket Layer) は、インターネットでの情報交換を安全に行なうた めのプロトコルで、 HTTP や FTP などのデータを暗号化して送受信します。 Web サ ーバと Web プラウザ間のセキュリティ機能として Netscape Communications 社が 開発し、 IETF によって標準化されました * 。 SSL を利用するには SSL 通信を行なうには、次の 2 点が必要です。 ・ Web サーバ側の SSL サポート ・暗号化に使用する鍵 ( 公開鍵 : P. 182 ) の作成 IIS ( P. 75 ) では、標準で SSL がサポートされています。 Apache ( p. 75 ) の場合、 SSL 用のモジュールを組み込むことで対応します。この場合、 OpenSSL と mod_ssl または Apache - SSL を使うのが一般的です * 。また、 Tomcat のような Web アプリケ ーションサーバを使う場合、アプリケーションサーバ側で SSL 通信に対応させること も可能です。 鍵は、 SSL 対応ソフトで自由に作成できます。クレジットカード * の番号を受け取 るなど、社会的な信用も必要な場合は、 VeriSign 社などの認証局 ()A : P. 185 ) から サーバの証明書を取得します。認証局に証明してもらう場合は、別途費用が必要で す。なお、公的な証明機関による証明書は、社会的な信頼度を高くするためのもので、 暗号の強度そのものは変わりません。 資料 OpenSSL (OpenSSL Project) : http://www.openssl.0「g/ インフォサイエンス株式会社による日本語サイト : http://www.infoscience.co.jp/technical/openssl/ mod-ssl (mod ssl Project) : http://www.modssl.0「g/ Apache-SSL (Apache'X—スの SSL 対応 Web サーバ ) : http://www.apache-ssl.org/ インフォサイエンス株式会社による日本語サイト : http://japache.infoscience.co.jp/Apache-SSL/ (IETF による標準化】 SSL 3.0 に改良を加えた TLS (Transport Layer Security) が日 FC2246 として公開されて います。 【 Apache-SS L 】すべてソースが公開されており自由に使用できます。なお、 Li n u x 用のバイナリバッケージなど の場合、 SS L が組み込み済みとなっていることが多いようです。 【クレジットカード】クレジット決済用のプロトコル (SET : P. 215 ) もあります。 SSL(Secure Socket Layer
8.2 ・ SSL でアクセスするには 【ボート番号】サービスを区別するための番号 ( P. 103 ) 。 HTTPS は 443 または 8443 を、 HTTP は 80 または 8080 ージのデータを格納しているディレクトリごとに設定することができます。 ることができます。また、 HTTPS によるアクセスを必要とするかどうかは、 Web ペ なお、 HTTP と HTTPS はポート番号 * が異なるため、同じサーバで同時に使用す SSL に対応した HTTP であることを意味します。 ~ 」のように指定します。 HTTPS (HyperText Transfer protocol Security) は、 SSL で Web サーノヾヘアクセスするには、 URI を「 http://—」の代わりに「 https:// SSL (Secure socket Layer) 図 8-20 ・ http と https の切り分け s e c し 1 s e c セ 2 ここは http ・ https どちらでも OK ! ここは https のみ ! s e c に 1-1 s ec し 1 ー 2 SSL 非対応環境への配慮 SSL を利用するには、サーバとクライアント ( Web ブラウザなど ) の両方が SSL に 対応している必要があります。 lnte 「 net Explo 「 e 「 ( 4. O 以降 ) や Netscape ( 3. O 以降 ) など、比較的新しい Web ブ ラウサは SSL に対応していますが、一部のブラウザは SSL に対応していません。また、 ブラウザが対応していても、イントラネット内からプロキシ経由 ( P. 209 ) でアクセス しているような場合、 SSL が使用できないことがあります。 通信販売サイトでユーザから住所を送ってもらうような、。ユーザが安心して利用でき るためのセキュリティ " であれば、 SSL 非対応環境でも使用できるように準備しておき、 あとはユーザの判断に任せるのも 1 つの方法です。また、「ここから先は SSL 通信を使 用します」といった案内を事前にしておくことで、ユーザの安心感を高めることができ を使うのが一般的です。 るでしよう。
第 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
第 4 章インターネットと TCP/IP ADSL を利用するには、 ADSL 対応のプロバイダ (ISP : p. 83 ) を使って接続する 方法と、固定 IP で接続する方法とがあります。プロバイダを兼ねている ADSL サー ビス業者もあります。 ADSL + 可変 IP アドレスによる接続は、安価な常時接続環境 として個人ユーザの注目を集めています。 表 4-2 ・ xDSL 技術 ADSL 名称 (Rate Ada tive DSL) RADSL (Symmetric DSL) SDSL (very High speed DSL) VDSL (High data rate DSL) HDSL (Asymmetric DSL) 1 対の銅線 ( アナログ回線用の線 ) を使う。 上りと下りで速度が違う ( 非対称 : asymmetric) 2 対かそれ以上の銅線の組を使い、高速化・ 対称化する技術。 POTS スプリッタを使わず、 データ転送のみを行なう 接続距離を限定する代わり、最大転送速度を上 げる技術 基本的に HDSL と同じだが、 POTS スプリッタ を使って従来のアナログ電話回線サービスと 共用できるようにする ADSL に対し、回線状況に応じて転送速度を自 動で調整する機能を付加した技術 速度 * 上り 下り 52Mbps 2.3Mbps 384Kbps —2Mbps 最大 7Mbps 最大 1 .5Mb s 12Mbps 2Mbps 1 ev2Mbps 【 xDSL の転送速度】距離や開発状況によって異なります。年々高速化が進められています。
8.2 SSL (Secure Socket Layer) SSL のしくみ SSL は、 TCP 層と、 HTTP などのアプリケーション層 ( P. 96 ) の間に位置するプロ トコルです。公開鍵方式を使って、 ( 1 ) サーバ認証 ( 2 ) クライアント認証 ( 3 ) 通信内容 ( セッション ) の暗号化 を行ないます。 もあり、主に「 ( 1 ) サーバ認証」と「 ( 3 ) 通信内容の暗号化」が使用されています。 もともと Web サーバと Web プラウザ間のセキュリティ機能として開発されたこと 図 8-22 ・ SSL と TCP / 旧の階層 HTTP, FTP, LDAP ・・・ SSL TC P ・暗号化のしくみ ①サーバ認証 ②クライアント認証 ③セッションの暗号化 SSL での暗号化は、「相手の公開鍵で暗号化したデータを渡す」という形で行なわ れます。公開鍵で暗号化されたデータは、ペアとなる秘密鍵でのみ復号できるので、 安全な通信が可能となります。 クライアント側の秘密鍵と公開鍵は、 Web プラウザにあらかじめ用意されていま す * 。 Web プラウザを使う側のユーザは、 SSL 対応のプラウザを使うだけで、その他 の準備を自分で行なう必要はありません。 暗号化通信が始まるまでの流れは次のようになっています。 ます、クライアントがサーバに対し SSL による接続を要求します。すると、 web サーパが証明書をクライアントに渡します。証明書にはサーバの公開鍵が含まれてい ます。クライアントは、証明書を見てサーバの " 身元 " を確認し、自分の公開鍵をサ ーバの公開鍵で暗号化して渡します。この後は、サーバからのデータはクライアント の公開鍵で、クライアントからのデータはサーバの公開鍵でそれぞれ暗号化して通信 を行ないます ( 次ページ図参照 ) 。 【クライアントの鍵】クライアントの認証が必要な場合は、クライアントもサーバ同様、認証局 ( CA ) から証明書 を取得します。自サイト用の証明書を独自に発行する方法もあります。 201
第 8 章 セキュリティ セキュリティの概要 . 暗号化技術 . ユーサ認証 . サイトの保全 . Web アプリケーション開発上のポイント . SSL (Secure Socket Layer) . SSL を利用するには .. SSL のしくみ . VPN (Virtual Private Network) . VPN で使われる技術 .. VPN を利用するには . ファイアウォールとサイトの保全 . Extra Column その他のセキュリティ対策 . ファイアウォールのしくみ . .. 1 82 .. 1 82 .. 1 86 .. 1 9 1 .. 1 94 .. 1 97 .. 1 97 .. 201 … 203 … 21 2 .. 208 … 208 .. 205 .. 204 インターネットショッピングの決済方法 .. 215
セキュリティの概要 . 暗号化技術 . ・共通鍵と公開鍵 / 1 82 ・デジタル署名 / 184 ・電子透かし / 184 ・認証局 (CA) とデジタル ID / 185 ・ PKI / 185 ユーサ認証 . ・パスワードを守る / 186 ・リモートアクセスとユーザ認証 / 189 ・コールバック / 189 ・アクセスサーバと認証サーバ / ・ RADlUS/190 ・ TACACS + / 190 サイトの保全 .. ・ファイアウォールの設置 / 191 ・セキュリテイボリシーを考える / 1 92 ・コンピュータウイルス対策 / 192 Web アプリケーション開発上のポイント .. ・セキュリティを考慮した開発 / 194 ・ユーザの使い勝手を考える / 195 ・サーパソフトのアップデート / 196 SSL (Secure Socket Layer) . SSL を利用するには .. ・証明書を取得するには / 1 98 S S L のしくみ . ・暗号化のしくみ / 201 VPN (Virtual Private Network) . VPN を利用するには .. ・ VPN の概要と VPN 装置の役割 / 204 VPN で使われる技術 .. ・ PPTP/206 ・ L2TP/206 ・ IPSec/206 ファイアウォールとサイトの保全 .. ファイアウォールのしくみ .. ・ファイアウォールとデータの制限 / 208 ・バケットフィルタ / 208 ・プロキシ / 209 ・非武装地帯 / 210 ・ファイアウォールのセキュリティポリシー / 211 第 8 章セキュリティ .. 1 8 2 .. 1 82 .. 1 86 1 90 .. 1 91 .. 194 .. 1 9 7 .. 1 97 ・ SSL でアクセスするには / 199 … 201 … 203 … 204 … 205 … 208 … 208
Web プラウザには、 Web サーバにデータを要求する web クライアントとしての役 Web ~ プラウサ 図 3-9 ・ Web ブラウサの役割 割と、受け取ったデータを表示するブラウサの役割があります。 Web ブラウサ 0 Web ブラウザによる違い ( ブラウザ ) HTML データの表示 Web サーバ データの要求と受け取り ( Web クライアント ) Web アプリケーションを開発するときには、ユーザがどのような形でアクセスす るか・どんなプラウザを使っているかを常に考慮する必要があります。 第 4 章インターネットと TCP/I p ( インターネットへの接続 ) : p. 88 Web プラウザを意識する上で重要なのは、表示の違いと、対応スクリプトの違いで す。また、 SSL* などのプロトコルに対応しているかどうかも、プラウザによって異 なります。 図 3-10 ・ブラウサによってできることが違う とんな表示を するっ どんなスクリプトを 実行できる ? どんプ 0 ルが 使える ? 0 【 SSL (secure Sockets Layer) 】インターネット上で情報を暗号化して送受信するプロトコル。 web や FTP な どのデータを暗号化する ( p. 197 ) 。
ー Column ー ーメールの暗号化 / 1 86 ーバッフアオーバーフロー / 196 ー SSL とボート番号 / 202 ーパスワードを盗まれないために / 214 その他のセキュリティ対策 . ・ DoS ・ DDos 対策 / 21 2 ・メールの不正中継 / 212 ーインターネットショッピングの決済方法 .. ・ボディ部の要素 ( 1 ) . プロック系要素 / 231 … 21 2 ・内部からの攻撃 / 214 … 21 5 被害にあったら・・・ / 193 SSL 非対応環境への配慮 / 1 99 匿名プロキシ / 210 PART3 Web アプリケーション構築のための技術 第 9 章 HTML / DHTML とクライアントサイドスクリプト から DHTML へ .. ダイナミックな Web ページ .. ・ DHTML/221 スタイルシート . ・ DHTML の現在 / 221 ・ D 〇 M / 222 ・構造と見栄えの分離 / 223 ・デザインの再利用 / 223 ・ CSS / 224 ・クライアントサイドスクリプト / 225 スクリプト処理 . HTML の基礎知識 HTML (HyperText Markup Language) . … 220 … 220 … 222 … 225 … 226 226 ・要素 ( エレメント ) とタグ / 226 ・要素の親子関係 / 227 ・プロック系要素とインライン系要素 / 227 ・属性 ( アトリビュート ) / 228 ・ DTD / 229 HTML の構成要素 .. ・ヘッダ部の要素 / 230 ・ボディ部の要素 ( 3 ) : テーブル / 234 ・ボディ部の要素 ( 2 ) : リスト / 232 ・ HTML のバージョン / 229 ... 230