初心者のためのホームページ作り:第43号

                   毎週金曜日配信 What's New 2003/3/14
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
       初心者のためのホームページ作り/Web for beginner
           http://www.scollabo.com/banban/
                <第43号>

              banban@scollabo.com


〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

 当講座は、初心者や中級者が正しい文法と作法を身につけて、プロ級の本格的
な Webページ作成に役立つことを目的に配信されております。

 当講座ではHTML4.01及び XHTML1.1 を中心とした文法が主体となっています。
なお、このマガジンは等幅フォントでお読みいただくと快適に読めるようになり
ます。等福フォントに関しては、http://www.mag2.com/faq/mua.htm を参考にし
てください。

 今週の課題 ■ JavaScript講座 第7回
       ■ Webサービス --- セキュリティ規格
       ■ おまけ --- セキュリティに関する考察

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆JavaScript講座 第7回 フォームを使った計算スクリプトの作成

 今回は、JavaScriptによる計算をメインに、3つのスクリプトを作成します。
もともとコンピューターは、計算そのものを得意としていますが、いざプログラ
ムを組むとなると簡単ではありません。

 しかし、JavaScriptでは比較的容易に計算プログラムを作ることができます。
今回の計算スクリプトは、フォームを利用してインタラクティブに反応する計算
を主体に取り組みました。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆足し算の計算機

フォームにイベントハンドラを用いた非常に簡単な計算機です。

 ■ヘッダ部での記述
 <script type="text/javascript">
  <!--
    function calc(frm) {
      frm[2].value = parseInt(frm[0].value) + parseInt(frm[1].value);
    }
   //-->
  </script>

 ■HTML body要素内での記述
  <body>
  <form method="post">
  <p>
  <input name="form1" value="" size="7"> +
  <input name="form2" value="" size="7"> =
  <input name="ans" size="8" value="">
  </p>
  <p>
  <input type="button" value="Calculate" onClick="calc(this.form)">
 <input class="btn" type="reset" value="Reset">
  </p>
  </form>
  </body>

  実行結果(スタイルシートを利用しています)
 http://www.scollabo.com/banban/magazine/sample/mmsample_077.html

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆解説

 ■ function calc(frm)

 関数を設定しています。関数名 calc 内の引数 frm は、HTMLの form要素内の
 イベントハンドラ onclick の属性値 this.form に対応しています。

 ■ frm[2].value = parseInt(frm[0].value) + parseInt(frm[1].value);

 計算を定義しているブロックです。parseInt とは、ビルトイン関数の1つで、
 入力された値を整数として認識させるものです。もし、この関数を使わなかっ
 たら、JavaScript独自のデータの型変換があり、入力された値が文字列の場合
 には、文字列変数となってしまうのを防ぐためです。ちなみに、数値以外の文
 字列を入力すると NaN(Not a Number) が返されます。
  また、例えば小数点を持った値の入力には、整数しか返さないので、小数点
 以下を切り捨てて計算されます。

 ここでの frm[0] とは、フォームの最初の入力コントロールを指定します。
 コンピューターは常に 0から数えますので、注意してください。そうすると
 frm[1] は2番目の入力コントロール、frm[2] は3番目となります。

 <input type="button" value="Calculate" onClick="calc(this.form)">
 ボタンタイプの入力コントロールをクリックすると関数が実行されます。
 「this」とは、そのメソッドを呼び出したオブジェクトを参照するために用意
 されている予約語で、これを使用するとフォームから関数を呼び出すことがで
 きます。

 <input class="btn" type="reset" value="Reset">
 入力された値や結果をリセット、つまり初期状態に戻します。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆足し算と掛け算

同じように、フォームを利用した計算スクリプトですが、今回は掛け算を用意し
ました。といっても、価格に消費税を求めるものです。また、Mathオブジェクト
を使って、数字の表記に3桁で区切る設定も施しました。

 ■ヘッダ部での記述
  <script type="text/javascript">
  <!--
  function myPrice(result) {
     result = eval(document.form1.hards.value)
     + eval(document.form2.softs.value)
     + eval(document.form3.area.value);
       if(result < 1000) {
       document.form4.total_s.value = "\\" + result;
       }
         else {
         result_a = "\\" + result
             if(result < 10000) {
             document.form4.total_s.value = result_a.substring(0,2) +
             "," + result_a.substring(2,6);
             }
         else {
         document.form4.total_s.value = result_a.substring(0,3) +
         "," + result_a.substring(3,7);
         }
    }

  document.form4.tax.value = "\\" + Math.ceil(result*0.05);
     if(result < 1000) {
     document.form4.total.value = "\\" + Math.ceil(result*1.05);
     }
     else {
     result_a = "\\" + Math.ceil(result*1.05)
          if(result < 10000) {
          document.form4.total.value = result_a.substring(0,2) +
          "," + result_a.substring(2,6);
          }
          else {
          document.form4.total.value = result_a.substring(0,3) +
          "," + result_a.substring(3,7);
          }
      }
   }
  // -->
  </script>


 ■HTML body要素内での記述
  <body>
  <form name="form1">
  <select name="hards" onchange="myPrice(this.value)">
  <option value="0">商品をお選びください</option>
  <option value="6000"  >メモリ  \6000</option>
  <option value="1200"  >マウス  \1200</option>
  <option value="12000">HDD 120G \12,000</option>
  </select></form>

  <form name="form2">
  <select name="softs" onchange="myPrice(this.value)">
  <option value="0">商品をお選びください</option>
  <option value="45000">オフィスソフト \45000</option>
  <option value="15000">映像ソフト \15000</option>
  </select></form>

  <form name="form3">
  <select name="area" onchange="myPrice(this.value)">
  <option value="0">配送先をお選びください</option>
  <option value="500">本州内送料  \500</option>
  <option value="700">四国・九州  \700</option>
  <option value="1000">北海道・沖縄 \1000</option>
  </select></form>

  <form name="form4">
  <p>
  小計:<input type="text" name="total_s" size="10"><br>
  消費税:<input type="text" name="tax" size="10"><br>
  合計:<input type="text" name="total" size="10">
  </p>
  </form>
  </body>

  実行結果(スタイルシートを利用しています)
 http://www.scollabo.com/banban/magazine/sample/mmsample_078.html

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆解説

JavaScriptから
 ■ function myPrice(result) {
  商品の価格、運送費用、消費税、合計金額を求める配列 result を含んだ関数
 を宣言しています。

 ■ result = eval(document.form1.hards.value)
    + eval(document.form2.softs.value) + eval(document.form3.area.value);
 ここまで、改行なしで記述してください。結果を求める式です。
 eval関数は、ビルトイン関数の1つで、文字列を引数として渡されることで、
 その文字列を評価して結果を数値に返します。
  これは、option要素内の value属性で記述されている文字列を、数値に変換
 させるための処置です。ハード、ソフト、運送料を合計する式です。

 ■ if(result < 1000) {
     document.form4.total_s.value = "\\" + result; } 
 if構文(条件分岐命令)によって、合計された数値が1000以下ならば、ブロッ
 クにあるスクリプトを実行します。ブロックでは特殊記号である円記号を数値
 に付加するように指定しています。ここでは、文字列型変数に変換されます。
  \\ と \ を2つ並べたのは、特殊記号である \ を表示するために、記号の
 前に \ をおく必要があるためで、結果として \\ となりました。

 ■ else { result_a = "\\" + result if(result < 10000) {
  もし、数値が1000以上ならば、このブロックを実行します。やはり、数値に円
 記号を付加しますが、ただし次の条件分岐命令により、数値が 10000より小さ
 い場合のみ、次のブロックを実行します。(if構文が入れ子になっています)

 ■ document.form4.total_s.value = result_a.substring(0,2) + "," + 
     result_a.substring(2,6); (改行しないで記述します。)
  このブロックは、合計の数値が 1000以上、10000以下の場合に適用されます。
 substring(0,2) は、文字列の1文字目から2文字目までの範囲を抽出します。
 substring(2,6) は、文字列の3文字目から最後までの範囲を抽出します。
 ここでは、求めた文字列を、3桁目で区切ってカンマを入れて表記するよう指
 示しています。
  つまり、1000 → 1,000 のように変換しています。

 ■ else { document.form4.total_s.value = result_a.substring(0,3) + ","
     + result_a.substring(3,7); (改行なしで記述します)
 合計の数値が 10000 以下の場合にのみ実行するブロックです。
 substring(0,3) は、文字列の1文字目から3文字目までの範囲を抽出します。
 substring(3,7) は、文字列の4文字目から最後までの範囲を抽出します。
 ここでは、求めた文字列を、3桁目で区切ってカンマを入れて表記するよう指
 示しています。
  つまり、10000 → 10,000 のように変換しています。

 ■ document.form4.tax.value = "\\" + Math.ceil(result*0.05);
  消費税を求める計算です。合計の数値に 1.05を掛けて、小数点以下を切り捨て
 その数値に円マークを付記して文字列型変数に変換しています。
 ceilとは、Mathオブジェクトのプロパティで、値が小数点以下の場合、もっと
 も大きくて近い整数を返す機能があります。

  以下、同様に3桁で区切ってカンマを挿入するスクリプトです。

HTMLから
 ■ <form name="form1">

 document.form1.hards.value の数値を求めるスクリプトと関連付けるために、
 name属性でフォームの名前を指定します。

 ■ <select name="hards" onchange="myPrice(this.value)">
  メニューの表示で「ハードウェア」を選択し、myPrice関数を実行します。

 ■ 小計:<input type="text" name="total_s" size="10"><br>
     消費税:<input type="text" name="tax" size="10"><br>
     合計:<input type="text" name="total" size="10">
 それぞれ計算した結果を各コントロールに表示します。それぞれのname属性は
 関数が実行された結果を表示するものです。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆Mathオブジェクト

JavaScriptの持つオブジェクトに、Mathという計算を得意とするオブジェクトが
あり、このオブジェクトのメソッドやプロパティを利用することにより高度な数
学などを扱うことができます。
 例えば、中学生が学ぶ三角関数(忘れてしまった方が多いのでは?)などでは
あらかじめ用意されているプロパティを使って、サイン、コサイン、タンジェン
トなどの度(ラジアン)から値を求めることができます。また、円周率や平方根
や対数などを扱うこともできます。

 なお、Mathオブジェクトでは三角関数の引数の単位として degree(度)では
なく、radian(ラジアン:角度)をとることに注意してください。
 degree と radian の関係は以下の通りです。

  2Π(radian) = 180(degree)    注:2Πとは2パイのこと

 以下のスクリプトは、任意に度数を入力し、サイン、コサイン、タンジェント
などの値を求めるものです。Mathオブジェクトのメソッド、プロパティを利用し
ています。なお、accesskey、tabindex属性を使用しました。

 ■ヘッダ部での記述
  <script type="text/javascript">
   <!---
   function deg2rad(deg) {
     rad = deg/180*Math.PI;
     return rad;
     }

    function calcSin(frm,func) {
      frm[1].value = func;
      frm[2].value = Math.sin(deg2rad(frm[0].value));
      }

    function calcCos(frm,func) {
      frm[1].value = func;
      frm[2].value = Math.cos(deg2rad(frm[0].value));
      }

    function calcTan(frm,func) {
      frm[1].value = func;
      frm[2].value = Math.tan(deg2rad(frm[0].value));
      }
  // --->
  </script>

 ■HTML body要素内での記述
 <body>
 <form>
 <p>
 <input name="degree" value="0" size="5" accesskey="d" tabindex="0">度の
 <input name="func" value="" size="5"  disabled>は
 <input name="ans" value="" size="5" disabled>です。
 </p>
 <p>
 <input type="button" name="sin" value="sin" accesskey="s" tabindex="1"
              onclick="calcSin(this.form,'sin')"><!-- 改行せずに -->
 <input type="button" name="cos" value="cos" accesskey="c" tabindex="2"
              onclick="calcCos(this.form,'cos')"><!-- 改行せずに -->
 <input type="button" name="tan" value="tan" accesskey="t" tabindex="3"
              onclick="calcTan(this.form,'tan')"><!-- 改行せずに -->
 </p>
 </form>
 </body>

  実行結果(スタイルシートを利用しています)
 http://www.scollabo.com/banban/magazine/sample/mmsample_079.html

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆解説

  JavaScriptより
 ■ function deg2rad(deg) { rad = deg/180*Math.PI; return rad; }
 基本となるラジアンを求めるために計算をする関数です。

 ■ function calcSin(frm,func) {
 サインが選択された場合、calcSin関数を実行します。

 ■ frm[1].value = func; frm[2].value = Math.sin(deg2rad(frm[0].value));
  frm[1] でサインが選ばれた場合、Mathオブジェクトの sinメソッドが実行
 され、その答えを frm[2] つまり、3番目のコントロール(ans)に表示します。
 Math.sin とは、サインを返すメソッドで、値はラジアンで指定します。入力
 された度数によって計算されます。

  以下、コサイン、タンジェントを求める関数も同様のメソッドを実行して、
 その答えを3番目のコントロール(ans)に表示します。

 HTMLより
 ■ <input name="degree" value="0" size="5" accesskey="d" tabindex="0">
  最初の入力コントロールを設定しています。なお、name属性で指定される名前
 は任意につけたものです。
  accesskey="d" は、キーボードから操作できるように設定したもので、スク
 リプトが実行できる非視覚系ブラウザへ配慮しています。なお、Windows であ
 れば、altキーと一緒にタイプします。Macintoshの場合は controlキーと一緒
 にタイプしてください。(一部ブラウザで対応していないものもあります。)

 ■ <input name="func" value="" size="5" disabled>

 2番目のコントロールにはアクセスできないように設定しました。ここの値は
  下段のボタンから選ばれたものが表示され、スクリプトの関数へ引き渡されま
 す。disabled属性は、ユーザから選択・変更などができないようにするために
 設定します。

 ■ <input name="ans" value="" size="5" disabled>
 同じく3番目のコントロールにもアクセスできません。ここでは関数が実行さ
 れ、その値が表示されます。

 ■ <input type="button" name="sin" value="sin" accesskey="s" 
      tabindex="1" onclick="calcSin(this.form,'sin')">
  sinと名前がつけられたボタンを設定し、クリックすると発生するイベント
 を設けています。イベントは calcSin関数を呼んで実行し、その結果を3番目
 のコントロールに表示します。
  以下、cosボタン、tanボタンも同様です。

 Mathオブジェクトの詳細はこちらに掲載しています。
  http://www.scollabo.com/banban/java/ref_19.html

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆Webサービス 中核技術 --- セキュリティ規格

 何度かお伝えしている Webサービスが実現すると、インターネットにおけるビ
ジネス・モデルは次のように変化します。

 ・「1対1」のビジネス・モデルから「不特定多数対不特定多数」に変化する
 ・ユーザと企業との間のダイレクトな取引だけでなく、第3者を間に介在して
  取引されることがある
 ・静的なサービスから動的なサービスへ

 このような変化に伴って重要視されるのがセキュリティ(安全の確保)です。
否認、なりすまし、盗聴や盗み見などの危険が増すため、安全でスムースなセキ
ュリティを実現しなければならないのですが、現時点で Webサービスではまだ確
立していません。

 セキュリティ関連規格の必要性
 通信中の「盗聴」や「改ざん」を防ぐには「通信の保護」を行い、「なりすま
 し」を防ぐには「本人証明」が必要になります。
   Webサービスでは、単にデータのやり取りだけではなく、受け取ったデータ
 を活用すことが重要なため、データ自体の「改ざん」や「盗聴」を防ぐには、
 「メッセージの暗号化」が必要になります。
  これら3つの関連した Webサービス上の考えられているセキュリティの規格
  は以下の通りです。

 ■通信を保護する
 まず、1番目のセキュリティを確保する場所として、「通信」が挙げられます。
 それはプロトコル(通信手順)自体をセキュアなものにすることによって実現
 できます。
  前回述べました SOAP(Simple Object Access Protocol)は通常、インター
 ネットで標準のプロトコルである HTTPや SMTPを使って送信されます。
  これらのプロトコルにはセキュア・プロトコロルである SSL/TLS(注1)や
 S/MIME(注2)などの規格が存在し、これを用いることによって通信の保護を
 確保できます。

 ■コンテンツを暗号化する
 2002年10月、W3Cから勧告草案となる XML Enctyption Syntax and Processing
  という規格が発表されました。この規格は、暗号化したい XML文書の要素の部
 分を <EncryptedData>タグで置き換えて、その中に暗号化したデータを入れる
 方法を採用しています。
  こうすることで、メッセージ全体の暗号化だけでなく、部分的にも暗号化す
 ることも可能になっています。このような規格によって、コンテンツの「改ざ
 ん」や「盗聴」、「盗み見」などを防ぐことができます。

                                                         Webサーバ
   ┏━━━━┓                  ┏━━━━━━━┓
   ┃ ユーザ ┃ ---(暗号化したSOAP通信)------→ ┃  Webサービス ┃
  ┃ 要求  ┃ ←------------------------------- ┃ 暗号化する ┃
   ┗━━━━┛(暗号を復元する)         ┗━━━━━━━┛
    X                         X
    ↑                         ↑
    │            ┏━━━━┓          │
    └──────── ┃ 第3者 ┃ ─────────┘
                            ┗━━━━┛


 ■本人の証明をする
 「なりすまし」を防ぐために電子署名(注3)を付加しなければなりません。
 電子署名は、XML-Signature Syntax and Processing(注4) の規格で定義さ
 れています。XML独自の認証規格です。

  XMLデータは、空白の有無や属性の順序などにより、内容は同じでも異なる
 表現をする場合が多々あり、本人なのに認証が得られないことが発生します。
 つまり、同じ意味を持つデータでも書き方が違うと電子署名の検証を行う場合
 に不具合が生じます。
  例えば、「&#x62;&#x61;&#x6E;&#x62;&#x61;&#x6E;」と「banban」という物
  理的な違いによって本人なのに、本人と認証しなくては困るわけです。

  このために、XML-Signature Syntax and Processing の規格とあわせて、論
 理的な同一性を確認する方法として Canonical XML(注5)という規格を用意
 して、電子署名の認証を行って、本人を確認します。

                                                         Webサーバ
   ┏━━━━┓                  ┏━━━━━━━┓
   ┃ ユーザ ┃ ---(認証)--------------------→ ┃  Webサービス ┃
  ┃ 要求  ┃ ←---------(認証の受け渡し)---- ┃  認証する  ┃
   ┗━━━━┛ -------- (アクセス権を取得)--→ ┗━━━━━━━┛
                               X
                                   ↑
                      ┏━━━━┓          │
                           ┃ 第3者 ┃ ─────────┘
                            ┗━━━━┛
               なりすまし

 このようにして、「通信の保護」、「コンテンツや送信データの暗号化」そし
て「本人認証」という3つの規格を複合的に使用することによって、セキュリテ
ィを確立した上で Webサービスが誰にでも安全に利用することができます。

 現在、これらの規格化は完全な形で実用化されていません。しかし W3Cをはじ
めとして、各ベンダー間で。統合した1つの仕様が決まれば一気に Webサービス
は花形ビジネス・モデルに変化するでしょう。

  Webサービスを受ける側である私たちにとって、頑丈なセキュリティ確立は必
須条件です。私たちの個人情報が第3者に流れてしまうサービスは、決して生き
残ることはあり得ないことです。

(引用出展先)
   SSL/TSL
    http://wp.netscape.com/eng/ssl3/draft302.txt
    http://www.ietf.org/rfc/rfc2246.txt

  XML Enctyption Syntax and Processing
   http://www.w3.org/TR/xmlenc-core/

   XML-Signature Syntax and Processing
    http://www.w3.org/TR/xmldsig-core/

   Canonical XML
    http://www.w3.org/TR/xml-exc-c14n/


(注釈用語解説)
 注1:SSL/TSL(Secure Socket Layer/Transport Layer Security)
    SSLは、米 Netscape社によって開発したセキュリティ機能付きのHTTPプ
    ロトコルで、https:// で表示されます。SSLを標準化する目的で、IETF
    に提案され、1999年にバージョン1が公開されています。この2つの大
    きな特徴は、通信中アプリケーションから独立した暗号化機能を提供す
    ることができます。

 注2:S/MIME(Secure Multipurpose Internet Mail Extension)
    米国の RSA Security社によって開発され IETFによって標準化されまし
    た。公開鍵を利用して暗号化や鍵の交換を行います。

 注3:電子署名
    データの発信元を証明するために、電子的に記録された署名のことを指
    します。
     たとえば、公開鍵(広く配布することが可能)と秘密鍵(鍵を生成し
    た本人のみが安全に保存)の組み合わせによってデータの暗号化と復号
    化を行う公開鍵暗号方式では、本人だけが持っている秘密鍵によってデ
    ータを暗号化することで、電子署名が行えます。

 注4:XML-Signature Syntax and Processing
    2002年 W3Cによって、XMLベースの電子署名を勧告として公開、Webサー
    ビスに不可欠なセキュリティ機能として承認することを発表しました。
     これは XML文書全体への署名だけでなく、文書内の特定部分に対して
        も署名が行えるという特徴を持っています。
     また、暗号化のXML Encryptionや公開鍵などのやり取りのプロトコル
    を提供するXML Key Managementといった現在策定中の仕様もサポートし
    ています。

 注5:Canonical XML
    XML-Signature Syntax and Processing に付随する正規化したもので、
    電子署名を記述する XMLデータの「ゆらぎ」を論理的に判断する機能。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

今回はここまで、ではでは・・
今週のおさらいは Webページにも掲載しましたので、是非見ておいてください。
Webページでは HTML文の実行結果のサンプルもあり、より分かりやすく説明して
います。あわせて過去の記事のおさらいも掲載しています。

(今週のおさらい)
  http://www.scollabo.com/banban/magazine/review_042.html

次回は、ユーザビリティとテーブルについて徹底的に解説する予定です。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

<お知らせ>
このところ読者から過去の記事を含めた誤りの指摘を数多く受けています。既に
配信してしまったのでいまさら訂正しようがありません。しかし、だからといっ
てこのままでいいというわけにもいきません。

 現在、過去の記事についての訂正作業をしております。完璧なものができまし
たらアーカイブ(圧縮)ファイルにして読者の皆様へダウンロードできるように
いたします。その節には改めてご案内させていただきます。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

質問・ご意見ははこちらまで→ banban@scollabo.com
なお、ご質問の際には、お使いのOS、通常使っているブラウザ、使っているテキ
ストエディタなど、なるべく分かりやすく制作環境を明記していただけると回答
しやすくなると思います。
 ただし、平日の昼間は会社勤めなので、返事が遅れることがあります。ご了承
ください。

発行者 ばんばん
協 力 スズキ・コラボレーション http://www.scollabo.com/
配信エンジン まぐまぐ http://www.mag2.com/  (ID 0000090196)

誤字・脱字・変換ミス・表現欠乏などには平にご容赦願います。なお、マガジン
のすべての記述に誤りや重大なスペルミスがある場合、叱咤と罵声と共に私まで
突きつけていただくと幸いに思います。

バックナンバー こちらで公開しています。
プレーンテキスト  http://www.scollabo.com/banban/magazine/magazine.html
各号のおさらい  http://www.scollabo.com/banban/magazine/
アーカイブ    http://www.scollabo.com/banban/daf/archive.html
講座教材     http://www.scollabo.com/banban/daf/material.html
まぐまぐの過去記事 http://backno.mag2.com/reader/Back?id=0000090196

配信の変更・中止はこちらです。
個別の手続きは受け付けていませんので、ご面倒でも各自でお願いできれば助か
ります。
当サイトにて http://www.scollabo.com/banban/magazine/top.html
まぐまぐにて http://www.mag2.com/m/0000090196.htm


〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆セキュリティに関する考察

 今月はじめの総務省の発表によると、日本のインターネット利用者数が6942万
人を突破し、人口普及率は54.5%に達したと報告されました。この普及率は米国
に次いで世界第2位です。
 また、ブロードバンド(常時接続高速回線)の普及も1132万人を超えたといわ
れており、政府が推進する e-Japan計画が着実になってきました。

 一方でセキュリティに関する不安も増大し、実際にネットからウィルスに感染
した人は10%以上になっています。この数字は脅威です。
 しかし、ネットワーク利用者の33.6%もの人たちがウィルス対策やハッキング
対策に関して何もしていないという事実があり、企業にいたっては4分の3が何
らかの侵入やウィルス感染を発見したというから驚きです。

 無線LAN が登場してまだ間もないのですが、その進歩は著しく、先日も米国イ
ンテル社がモバイルに特化した無線LAN 対応の新型 CPUを発表しました。しかし
この便利な無線 LANもセキュリティの確保が今ひとつの状況で、米国の有数の企
業では使用を禁止しています。

 私の会社では、米国の企業と相互に WAN(注1)接続しています。そのため、
セキュリティに関しては極めて神経質で、双方の LANにはインターネット接続を
禁止しています。(メールだけは、別途メールサーバを立て可能)
 先月、ビル間通信を使った無線 LAN(注2)を構築したいと先方に連絡したと
ころ、何と2人のネットワークエンジニアがふっ飛んできました。

 どんな機材とセキュリティを講じるのかで2日間も延々と論議し、条件付で許
可されました。無論こちらとしてもセキュリティ確保には神経を払って、わざわ
ざメーカーに特注で作ってもらい、3種のセキュリティを施したのですが、米国
側ではそれ以上のものを要求してきました。

 そんな状況を冷静に考えると、米国ではいかにネットワークが危うい状態であ
るということが読み取れます。確固としたセキュリティの確立がいかに困難で先
の長い取り組みであるのかが痛いくらい理解できます。
 あのペンタゴン(米国防総省)がほぼ毎日クラッカーに狙われている現実の前
では「安全」という言葉がむなしくなってきます。

(注釈用語解説)
 WAN(Wide Area Network)
 LAN(構内通信ネットワーク:ローカル・エリア・ネットワーク)同士を公衆回
 線網を使って接続した広域ネットワークのこと。基本的に第3者は入ることが
 できないネットワークです。なお、私の会社の WANでは恐ろしく高額な専用回
 線を利用しています。
  WAN では、1つドキュメントに遠隔地から同時に複数の人がアクセスして、
 書き込みや編集などができるという利点があり、プロジェクトの遂行にはなく
 てはならないネットワーク環境です。

 無線 LAN(Wireless Local Area Network)
 無線で飛ばせるために、有線ケーブルが要らないネットワークで、送受信をす
 る専用のアンテナ付カードなどが必要です。
  ビル間通信では、道路を挟んだ別の建物と LAN環境を実現するために特殊な
 アンテナを立て、ハブからアンテナまでは有線としています。
  無線のためデータはそこらじゅうを飛び回り、機材さえあれば誰でもネット
 ワークには入れてしまうため、ハード側とソフト側の両面からのセキュリティ
 構築は、企業における無線 LANでは必須条件です。そのためにべらぼうなコス
 トがかかってしまうのがネックです。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

<えでぃた〜ず・るーむ>

 何もありません。今週はちょっと疲れました・・

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆著作権について
個人がご自分のPCに保存して利用する以外の記事の転載、引用は基本的に応じ
ておりません。記事中の内容について、無断で使用することを固く禁じます。
 なお、記事中のスタイルシート、HTML、およびスクリプトをご自分のページ作
成に自由に使っていただいても差し支えありません。

            Copyright(C) 2002-2003  www.scollabo.com/banban/
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓



Copyright(C) 2002-3003 banban@scollabo.com