アプリケ−ション層


  1. 目的
    ここでは、アプリケーション層について紹介します。アプリケ−ション層では、主にTCPを利用したwebや電子メールなどのアプリケーションレベルのプロトコルを規定します。したがって、各アプリケーションで異なるプロトコルを持ちます。
    1. アプリケーション層

  2. 仮想端末
    1. telnet
      1. 目的
        telnetは相手マシンの仮想端末(NVT)となり、クライアントが接続相手のサーバのキーボードとディスプレイの機能を果たします。通常ポート番号23を利用しますが、この、ポート番号を変更することにより、文字の入出力を行う他のアプリケーションのプロトコルを実行することもできます。
        1. 注意
          接続するときのユーザ名、パスワードがネットワークにそのまま流れるので危険です。
      2. 実行
        Windowsコマンドプロンプトから利用するtelnetもありますが、独自のウインドウを持つGUIベースのtelnetもあります。最初接続先のサーバーをIPまたは名前で指定します。
        接続したら、ログイン処理(利用者名とパスワードを通知)を行い、コマンドモードでの処理を開始します。接続したサーバーがunixOSなら、多くのサービスを実行出来ます。



    2. SSH(SecureShell)
      1. 目的
        telnetが平文でメッセージ交換を行うのに対し、SSHはパスワードを含めて暗号化して送ります。パスワードにRSA暗号を利用することもできます。SSHはtelnetだけでなく、すべてのパケットを暗号化します。
      2. サーバー・クライアント
        1. サーバーデーモン
          sshd がサーバーです。
        2. Linux
          ssh,sloginがクライアントになります。
        3. Windows
          TeraTermにアドインツールTTSSHを組み込むと利用可能です。
          TeraTerm:http://hp.vector.co.jp/authors/va002416
          TTSSH:http://www.zip.com.au/~roca/ttssh.html
  3. 電子メール
    1. 電子メールの流れ
      電子メールはSMTPプロトコルを用いて、受取人の所属するメールサーバーに送られます。受取人はPOPプロトコルでメールサーバーから電子メールを受け取ります。POPは接続時に認証処理を行います。



    2. メールアドレス
      メールアドレスは
       xxx@ドメイン名
      の形式です。ドメイン名に対応するメールサーバーの名前はDNSシステムから提供されます。
    3. メールの形式
      電子メールは、ヘッダと本文から構成されます。ヘッダには以下の内容が含まれます。
       To: 相手のアドレス(カンマで切って複数のアドレスが書ける)
       Cc: 同時に送る相手のアドレス(カンマで切って複数のアドレスが書ける)
       Subject: 本文の要点や要約
       From: 発信人のアドレス
       Date: 発信された日付
      本文は文字でJISコードで記述します。
    4. SMTP
      1. 目的
        メールサーバーにメッセージを送ります。また、メールサーバー間でのメールの転送にはSMTPとよばれるプロトコル(通信手順)が利用されます。一般に、送信の場合パスワードによる認証は行いません。
      2. 方式
        こちらは以下のような流れになります。telnetでポート番号を25としてSMTPのふりをして接続しています。>はサーバーへの送信、< はサーバーからの応答です。#は説明で、実際には表示されません
        %telnet xxx 25
        <220
        #メール送信開始
        >HELLO <domainName>
        <250 ...
        #送り主と宛先
        >MAIL FROM:<mail address>
        <250 ..
        >RCPT TO::<mail address>
        <250 ..
        #本文
        <DATA..
        <354
        ><message>
        >.
        <250 ..
        #終了
        >QUIT
      3. 接続制限
        メール爆弾の踏み台として利用されることを防ぐため、多くの場合、SMTPのサーバーは自ドメインのみ接続許可しています。
    5. POP
      1. 目的
        パソコンがメールサーバーに受信メールを受け取るアプリケーションの一つです。サーバーに接続するにはパスワードによる認証が必要です。受信はPOP3プロトコルに基づきます。
      2. 接続のようす
        まずPOPサーバー***の110番ポートへ接続します。
        >Telnet *** 110
        +OK Qpopper (version 4.0.3) at sccsgw starting.
        #利用者名
        >USER mito
        +OK Password required for mito.
        #パスワード
        >PASS ****
        +OK mito has 3 visible messages (0 hidden) in 10058 octets.
        #メールのリスト
        >LIST
        +OK 3 visible messages (10058 octets)
        1 3254
        2 3178
        3 3626
        .
        #最初の読みだし
        >RETR 1
        +OK 3254 octets
        //ヘッダ部分
        Received: from sv2.media.sccs.chukyo-u.ac.jp (sv2.media.sccs.chukyo-u.ac.jp [1
        .42.32.2])
        by sccsgw.sccs.chukyo-u.ac.jp (8.9.3/3.7W) with ESMTP id RAA02164;
        Wed, 12 Sep 2001 17:39:45 +0900 (JST)
        Received: from sccsgw.sccs.chukyo-u.ac.jp (sccsgw.sccs.chukyo-u.ac.jp [150.42.
        48])by sv2.media.sccs.chukyo-u.ac.jp (8.10.2/3.7W-sv2) with ESMTP id f8C8d
        04889
        Date: Wed, 12 Sep 2001 17:38:32 +0900
        From: Makoto Itoh <mito@sccs.chukyo-u.ac.jp>
        To: =?ISO-2022-JP?B?GyRCJWElRyUjJSIzWDJKNjUwdxsoQg==?= <mediawg@sccs.chukyo-u.
        .jp>.jp>
        Subject: =?ISO-2022-JP?B?GyRCJSshPCVJJS0hPDtPS3Y9cTx1TX0bKEI=?=
        Message-Id: <20010912172612.FF12.MITO@sccs.chukyo-u.ac.jp>
        MIME-Version: 1.0
        Content-Transfer-Encoding: 7bit
        X-Mailer: Becky! ver. 2.00.03
        Content-Type: text/plain; charset="ISO-2022-JP"
        X-UIDL: %>b"!Wlf!!QJa!!)Se!!
        Status: RO

        B#8#3#0#0#0#6#1!!6aF#!!BsGO!!%+!<;OK //本文(JIS漢字コード)
        -- -----------------------------
        BCf5~Bg3XB B>pJs2J3XItB B0KF#B B@?B
        BEEOCB 0565-45-0971(6175)
        B7HBSB 090-8321-9522
        B!!!!!!Bmkt-it@easyweb.ne.jp

        .
        #終了
        >QUIT
        +OK Pop server at sccsgw signing off.
        #ホストとの接続が切断されます。
      3. 注意
        pop3でもパスワードが平文で流れますから、注意が必要です。他の重要な(セキュリティで保護された)パスワードとは区別して利用しましょう。
      4. APOP
        POP3のオプションで、パスワードを暗号化します。暗号方式はMD5で共通キー方式です。サーバーがランダムに送るメッセージをキーとし暗号化します。したがって過去のキーは無効です。
    6. IMAP4
      1. 特徴
        snmpでは、メ-ルは一つの受信用ファイルの末尾に追加されます。したがって、メールを削除しないと、ファイルサイズが増加します。また、POP3でファイルを読むには、いったんファイル全体を読み込む必要があります。IMAP方式ではヘッダ(目次)のみを読み込み、選択されたメールのみを受信する機能があります。また、IMAPではグループ共有のフォルダでグループのメールを共有できます。
      2. セキュリティ
        IMAPもPOPと同じく、パスワードを平文で渡してしまいます。また、肥大するメール領域の管理は難しい問題です。
    7. メーリングリスト
      メールの宛先には、複数のアドレスを指定できます。また、特定のアドレスに複数のメールアドレスを対応付けする名簿(メーリングリスト)を管理するシステムもあります。システムによいり特定の形式のメールを送ることにより、メーリングリストに加入したり、退会出来ます。
    8. MIME
      電子メール本体では、USASCIIコードしか利用できないため、画像やワープロなどのバイナリファイルを送ることは出来ません。そこで、MIME(Multipurpose Internet Mail Extensions)を利用し、必要なファイルを本文に添付して送ります。MIMEには内容の形式や文字への変換方式が規定されており、MIMEに対応したメールソフトの間でファイルを転送することができます。例えば、base-64では、連続する4バイトを4個の6bit値としてコード化し、本文に添付します。
      1. MIMEとウイルス
        文字以外何でも送れるので、一般のソフトも送ることができます。このソフトに不正な処理をする機能が入っている場合があります。このソフトに自分をコピーする機能が入っている場合、ウイルスソフトと呼ばれます。文書ファイルに含み込まれたウイルスはその文書を開くことで実行されるため、注意する必要があります。
  4. webサーバー
    1. サーバー
      webサーバーはブラウザ(webクライアント)からの求めに応じて、指定されたファイル(htmlや画像)を送ります。また、CGI処理ではクライアントからの要求で必要な処理を実行し、結果を(図を含む)HTMLとして送り返します。アプレットはプログラムをサーバーから受け取り、クライアント側で実行するJavaプログラムです。
    2. HTTPプロトコル
      クライアントは次の形式の要求を出します。
       <method> <URI> <使用するプロトコル>
      これに対し、サーバーは
       <ステータス>
       <HTTPヘッダ>
       <ファイルの内容>
      を送り返します。
       リクエストを出す前に、TCPの接続をする必要がありますが、HTTP1.0では各GET(データ要求)の度に接続をしていましたが、HTTP1.0以後では、連続してGETができるよう、修正されました。これで、サーバーから個々の応答がくる前に、連続したリクエストが出せるようになりました。
      1. tcpDump例
        #coffee2kから、www.google.com へ80番ポートで接続
        13:43:15.223688 coffee2k.1225 > www.google.com.80 : S 2107813226:2107813226(0) wi
        n 16384<mss 1460,nop,nop,sackOK>(DF)
        #webサーバーからのデータの送付と受信応答
        13:43:15.516777 www.google.com.80 > coffee2k.1225: S 549783497:549783497(0) ack
        2107813227 win 32120 <mss 1460,nop,nop,sackOK>(DF)
        13:43:15.516856 coffee2k.1225 > www.google.com.80 : . ack 1 win 17520 (DF)
        13:43:15.517226 coffee2k.1225 > www.google.com.80 : P 1:255(254) ack 1 win 17520
        (DF)
        #webサーバーからのデータの送付と受信応答
        13:43:15.817032 www.google.com.80 > coffee2k.1225: . ack 255 win 31866 (DF)
        13:43:15.817196 www.google.com.80 > coffee2k.1225: P 1:146(145) ack 255 win 3212
        0 (DF)
        13:43:15.822372 www.google.com.80 > coffee2k.1225: P 146:1606(1460) ack 255 win
        32120 (DF)
    3. HTML
      1. 誕生
        Hyper Text Markup Language で、HyoerTextは文書や画像を関連付けた文書、MarkUpは制御記号を文書中に直接挿入することを意味します。HTMLは1990年にCERNに公開され、SGML(Standard Generakized MarkUp Language 1986年ISO規格)を基本にしています。
      2. W3C
        CERNで誕生したWeb技術はW3C(world Wide Web Consortium)に移り、1996年に表機能などを追加したHTML2.0がRFCに登録されました。その後、NS社とMS社がフレーム分割、Javaなどで独自機能を追加し混乱したが、1997年にW3CはHTML3.2を勧告した。さらに、多言語やスタイルシートを追加したHTML4.0勧告が出されています。さらに、2001年SGMLを組み込んだXHTML1.0が提案されています。
      3. DHTML(JavaScript)
        HTMLの標準化とは別に、対話性や新機能を追加するためDHTMLと呼ばれる機能が追加された。この機能は標準化されていないため、混乱の要因にもなっています。
      4. 文字コード
        漢字表記には、メールで標準に利用されているJISコード、Windowsで標準に利用されているシフトJIS,Unixサーバーで標準に利用されているEUCコードがあります。HTMLではコードを統一されていないため、ブラウザが勝手に判断して表示します。この判断が狂うと、文字化けが起こります。詳細は http://www.hosibune.net/~mak/technical/kanji.shtml  等を参照してください。
    4. サーバー・クライアント
      Windowsの標準クライアントはインターネットエクスプローラ(IE)です。他に、ネットスケープやオペラなどのクライアントソフトがあります。
      サーバーにはマイクロソフト社の製品もありますが、Unix系のサーバーではApacheがよく利用されます。
    5. SSI,CGI
      1. SSI
        Server Side Include で、httpのコメントに組み込む形式で、echo、exec、fsize、などを実行できる機能です。多くの場合、ファイルの拡張子を.sthmlとします。

        1. <!--flastmod file="file_name"-->
          file_nameの最終更新時刻を表示する。
      2. CGI
        Common Gateway Interface で、クライアントからのhttpのform機能で作成される要求を受けたサーバーが指定されたプログラムを実行し、結果をHTMLとして返します。プログラムにはPerlがよく利用されます。
    6. Javaアプレット
      1. Java
        Javaは特定の機械語(プロセッサ:CPU)に依存しない実行プログラムです。多くのPCではjavaVMを利用してJavaを実行します。JavaをHTMLに組み込みブラウザで実行可能とした形式がアプレットです。
        1. アプレット
          JavaVMも拡張されているため、悪意のあるアプレットではシステムに不正な実行をさせてします抜け穴(セキュリティホール)があります。
    7. Cookie(クッキー)
      1. 機能
        Webサーバーとクライアントで交換するデータで、ブラウザが保管します。インターネットエクスプローラ(IE)では、
          \Documents and Settings\Itoh Makoto\Cookies
        などのフォルダに保存します。過去のアクセス履歴やIDの保存に利用されます。
      2. 手法
        webで利用され、クライアント側に保存される小さなメモ用のファイルです。重要な記録は暗号化されて記録されます。接続時にCookieが含まれていないと、サーバーはCookie情報を付加したhtmlを送り返します。クライアントはアクセスするサーバーに対応するCookieがあると、これを付加してサーバーに接続します。Cookieの数が一定数以上になると、古いCookieから削除されます。
    8. XML
      1. htmlの欠点
        htmlは表示形式のみ指定しているので、どのデータがどこにあるかは明確でありません。また、定められた様式のデータしか扱えません、したがって、html文書をソースとする業務用のプログラムの作成が困難です。
      2. XML(eXtensible Markup Language)
        作成者がタグとその表示形式を自由に定義できます。この記述を
         
        として、htmlに組み込むことができます。
        1. XML例
          <発注商品>
          <発注日>05/16</発注日>
           <商品番号>20021</商品番号>
            ...
          </発注商品>
        2. XSL(eXtensible Stylesheets Language)
          表示のスタイルを指定します
          <table>
           <tr><td>発注日</td><td>商品番号</td>..</tr>
          </table>
  5. FTP
    1. 目的
      ファイルの送受信に利用されます。 
    2. 方式
      まず、ポート21を利用したコントロール用コネクションで、クライアントがサーバーに接続しファイル転送の準備をします。次に、クライアントはポートとアドレスを用意し、ポート20を利用してサーバーからのデータを待ち受けます。接続にはパスワードによる認証が必要です。Telnetで接続試験をすることはできますが、(接続ポートが異なるため)データを送受信することはできません。
    3. 処理の流れ
      以下はコマンドを利用した、FTPの利用です。フリーウエアなどで各種のFTPプログラムが利用できます。
      1. 接続
        %FTP <serverName>
        connected to....
      2. 認証
        Name:<user name>
        Password:<password>
      3. 開始、終了
        ftp>ls
         < file list>
        ftp>get <fileName>
        200 port command successful
        ...
        ... bytes recieved
        ftp>bye
    4. 転送モード
      FTPは文字とバイナリの二つの転送モードがあり、多くの場合、ファイルの拡張子で転送モードを自動的に切り替えます。
    5. anonymousFTP
      特殊ユーザー名(anonymous:匿名)でアクセスするユーザに限定した環境を用意し、アクセスを許可する方式です。限定した環境では、独自のbinやetcのディレクトリを持ち、その環境から外へのアクセスは禁止されます。この場合、パスワードはメールアドレスなどで代替します。
    6. FTPクライアント
      gui方式のクライアントがフリーウエアを含めて複数公開されています。web用に更新したファイルを自動転送するクライアントもあります。主な機能を組み込んだライブラリを用いて、カスタマイズしたFTPを作成することも容易です。
      1. 注意:パスワードの保存
        FTPのクライアントによっては、FTP接続時のパスワードを保存できる場合があります。保存を行うと、他の人があなたのパスワードでFTPを実行できることになります。自分専用でない場合、パスワードの保存はしてはいけません。
      2. PASVモード
        FTPをルータやファイヤーウオール経由で利用するとき、接続はできるが、データの送受信が出来ない場合があります。このような場合、FTPをPASVモードに設定して下さい。この設定は、オプションの「設定」機能で用意されています。
      3. FFFTPの実行画面

  6. まとめ
    1. プロトコル
      アプリケーションは定められた手順で、サーバーとデータをやりとりします。この手順をプロトコルと呼びます。
    2. Telnet
      サーバーに接続し、文字ベースでコマンドを送り実行をします。Windowsでも多くの機能がコマンドで実行できます。
    3. 電子メール
      相手の利用するサーバーの文字を送ります。宛先の人は、サーバーに接続して文字を受け取ることができます。添付機能で、画像などを文字変換して送ることも可能です。
    4. web
      サーバーに登録した、htmlファイルと画像を、webクライアントはホームページとして見る(閲覧)することができます。特別なツールなしで、文字だけのページを作成することもできます。
    5. FTP
      サーバーに登録されたファイルを受け取ったり、サーバーにファイルを送信する機能です。
    6. セキュリティ
      多くのプロトコルは悪意のある利用者の不法行為に対する「脆弱性」を持っており、不正に送りつけられたプログラム(ウイルス)を実行することにより、大量のウイルス付きのメールを送信したり、内部のファイルを破壊します。

トップに戻る