(57)【特許請求の範囲】
【請求項１】
ネットワークを介して外部装置と通信可能であり、実現可能な機能が予め組み込まれた通信装置であって、
物理インタフェースが前記ネットワークへ接続してデータ転送を行う接続許可を得るための認証処理を行うデバイスドライバと、
前記デバイスドライバによる認証処理の状態を示す認証状態情報を検出する認証状態手段と、
前記認証状態手段が検出した前記認証状態情報を取得し、当該認証状態情報によって示される前記認証処理の状態に応じて、データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから送られるデータの前記外部装置への送信を制御する送信制御手段と、
を備え、
前記デバイスドライバは、前記接続許可を得るための認証情報を第１外部装置に宛てて送り、
前記送信制御手段は、前記外部装置又は前記第１外部装置に宛てて送られたデータが前記認証情報である否かを判断し、判断結果が肯定的である場合、当該認証情報を前記デバイスドライバに送り、
前記デバイスドライバは、前記データを前記外部装置に送信する
ことを特徴とする通信装置。
【請求項２】
前記送信制御手段は、所定時間が経過しても前記認証処理が成功している状態を示す前記認証状態情報を取得できない場合、前記認証処理が成功している状態と同様であるとして、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記デバイスドライバに送る
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記所定時間を設定する設定入力を受け付ける入力受付手段を備える
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記送信制御手段は、前記接続許可が必要ない場合、前記認証処理の状態に関わらず、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記デバイスドライバに送る
ことを特徴とする請求項１、２または３に記載の通信装置。
【請求項５】
前記接続許可の要否を設定する設定入力を受け付ける入力受付手段を備える
ことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記デバイスドライバを含み、当該デバイスドライバの動作を制御する管理制御手段を備え、
前記管理制御手段が、前記通信制御手段を含み、当該通信制御手段の動作を制御する
ことを特徴とする請求項１乃至５のいずれか一項に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して外部装置と通信可能な通信装置に関し、特に、外部装置と通信を行う場合に、物理インタフェースがネットワークへ接続する際にデータ転送を行う許可を得るための認証処理を行う通信装置に関する。
【背景技術】
【０００２】
以前から、ネットワークを介した通信を行う場合において、暗号化、認証などのセキュリティのニーズはあったが、インターネットの普及によりますますその必要性が高くなっている。これは、インターネットをはじめとしたネットワークはそれなりの知識がある人であれば誰でも盗聴が可能であり、データの改ざんなども比較的に容易におこなうことができるためである。このような背景のもと、従来は専用機や特注レベルでしかありえなかったセキュリティ搭載製品も、パーソナルコンピューター（ＰＣ）上のソフトウェア、画像処理装置、通信装置などに大きく広がり、一般のオフィスでも使われるようになってきた。
【０００３】
ところで、インターネットなどのネットワークに接続可能な機器において、ネットワークやその関連するプログラムが階層化された構造をとる場合、一般的に、暗号化、認証といった処理がＯＳＩ（Open Systems Interconnection）参照モデルにおける各階層によってそれぞれの目的で行われる。
【０００４】
例えば、ＬＡＮ（ローカルエリアネットワーク）上におけるＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）通信をＯＳＩ参照モデルで説明すると、レイヤ１の物理層からレイヤ２のデータリンク層までがイーサネット（登録商標）（ＩＥＥＥ ８０２．３）や無線ＬＡＮ（ＩＥＥＥ ８０２．１１）などのインタフェースカード部分にあたり、それぞれＰＨＹ（物理）通信規定、ＭＡＣ（Media Access Control）プロトコルを規定している。同様にレイヤ３のネットワーク層がＩＰプロトコル、レイヤ４のトランスポート層がＴＣＰプロトコルを規定しており、それより上位がアプリケーション層となっている。
【０００５】
暗号化、認証はそれぞれの階層で行うことが可能であり、最上位のアプリケーション上ではコンテンツデータの暗号化、ＴＣＰプロトコル上ではＳＳＬ（セキュア・ソケット・レイヤー）、ＩＰプロトコル上ではＩＰＳｅｃ（セキュリティー・アーキテクチャー・フォー・インターネット・プロトコル）、そしてＭＡＣプロトコルではＭＡＣ層を含むデータ通信まるごとを暗号化する技術が存在する。それぞれの暗号化にはその暗号鍵を共有するための相互の認証が必要となるが、これもそれぞれの暗号方式で様々な実装をすることができる。
【０００６】
そして、上記のように通信装置がネットワークを介して外部装置と通信をする際に、種々の階層で認証処理を行うようにする場合、その認証処理の進行に応じて、装置の動作を管理することが重要である。そして、このような技術に関連する文献としては、例えば特許文献１〜３が知られている。特許文献１には、高速なＩＰ接続処理を実現するため、ユーザ認証の成功検出後に、起動されたＩＰ処理部又は高速ＩＰ接続処理部が直ちにネットワークにルータ広告メッセージを要求し、その応答として受信したルータ広告メッセージにより、以降のＩＰ接続処理を早期に開始させるようにする技術が開示されている。特許文献２には、無線ＬＡＮ上での認証プロトコル(ＰＰＰｏＥ、ＩＥＥＥ ８０２．１Ｘ)などを動作させる時の上位プロトコルのハンドリングに関し、中位プロトコルスタックで接続状態の監視及び上位プロトコルへの切断の通知を調整することにより、不安定な通信媒体である無線ＬＡＮの頻繁な切断や異常コネクションを回避する技術が開示されている。特許文献３には、無線情報通信端末装置において、データリンク層が使用可能な無線領域を検出したり、通信時の認証や加入等の手順に合格したりした場合にその旨を表示するようにする技術が開示されている。
【０００７】
【特許文献１】特開２００４−２５４２７７号公報
【特許文献２】特許３６２８３１５号公報
【特許文献３】特開２００２−０３４０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記の階層のうち、例えば、インタフェースカード部分において、ネットワークに接続するためになんらかの認証プロトコルで認証を外部装置からうける際、その認証処理中は本質的にそれより上位のプロトコルが通信を行うべきではない。その理由は以下の通りである。認証された際に、暗号化のための鍵を接続先、例えば、有線であればハブ、無線ＬＡＮであればアクセスポイント等と共有して暗号化通信を行う場合においては認証される以前に上位プロトコルが通信を試みても通信がまったく行えないし、また暗号化が行われなくても認証される以前はハブやアクセスポイントより先にデータが出ていけないため、通信プロトコルアドレス取得や通信プロトコルアドレス重複の検出などができない、といった弊害が考えられるからである。例えば、ＴＣＰ／ＩＰにおいてアドレス解決のためのデータを未認証状態で送信しても、ＩＰアドレスの重複を検出できない恐れがある。その他、未認証状態で、接続先の外部装置に対して認証処理のためのデータ（認証通信データ）以外のデータを送信すると、外部装置の中には異常な未認証データが大量に送信されたと認識してデータ通信をそれ以上行わないよう制御を行うものがあり、認証処理が中止される恐れもある。また、認証処理のためのデータ通信（認証通信）中に認証通信データ以外の上位のアプリケーションから送られるデータが混在すると、認証通信が何度もはじめからやり直しとなり、認証処理が阻害される恐れもある。特にこれは、下位層で通信を一度切断し未認証状態からの認証通信を再度行う時に、上位のアプリケーションが通信をいきなりは止められないことから容易に発生し得る。
【０００９】
一方、上記の特許文献１〜３に記載の技術は、以上のような弊害を十分に解消できるものではない。特に、実現可能な機能が予め組み込まれた画像処理装置などの組み込み型の装置では、以上のような弊害を解消することは困難であった。
【００１０】
本発明は、上記に鑑みてなされたものであって、ネットワークを介して外部装置と通信を行う際の動作を安定させ、またセキュリティを向上可能な通信装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ネットワークを介して外部装置と通信可能であり、実現可能な機能が予め組み込まれた通信装置であって、物理インタフェースが前記ネットワークへ接続してデータ転送を行う接続許可を得るための認証処理を行うデバイスドライバと、前記デバイスドライバによる認証処理の状態を示す認証状態情報を検出する認証状態手段と、前記認証状態手段が検出した前記認証状態情報を取得し、当該認証状態情報によって示される前記認証処理の状態に応じて、データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから送られるデータの前記外部装置への送信を制御する送信制御手段と、を備え、前記デバイスドライバは、前記接続許可を得るための認証情報を第１外部装置に宛てて送り、前記送信制御手段は、前記外部装置又は前記第１外部装置に宛てて送られたデータが前記認証情報である否かを判断し、判断結果が肯定的である場合、当該認証情報を前記デバイスドライバに送り、前記デバイスドライバは、前記データを前記外部装置に送信することを特徴とする。
【００１５】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記送信制御手段は、所定時間が経過しても前記認証処理が成功している状態を示す前記認証状態情報を取得できない場合、前記認証処理が成功している状態と同様であるとして、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記デバイスドライバに送ることを特徴とする。
【００１６】
また、請求項３にかかる発明は、請求項２にかかる発明において、前記所定時間を設定する設定入力を受け付ける入力受付手段を備えることを特徴とする。
【００１７】
また、請求項４にかかる発明は、請求項１、２または３にかかる発明において、前記送信制御手段は、前記接続許可が必要ない場合、前記認証処理の状態に関わらず、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記デバイスドライバに送ることを特徴とする。
【００１８】
また、請求項５にかかる発明は、請求項４にかかる発明において、前記接続許可の要否を設定する設定入力を受け付ける入力受付手段を備えることを特徴とする。
【００１９】
また、請求項６にかかる発明は、請求項１乃至５のいずれか一項にかかる発明において、前記デバイスドライバを含み、当該デバイスドライバの動作を制御する管理制御手段を備え、前記管理制御手段が、前記通信制御手段を含み、当該通信制御手段の動作を制御することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ネットワークを介して外部装置と通信を行う際の動作を安定させ、またセキュリティを向上することができる。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明にかかる通信装置の最良な実施の形態を詳細に説明する。
【００２２】
（１）構成
本実施の形態にかかる通信装置について説明する。図１は、通信装置のハードウェア構成を示すブロック図である。同図に示すように、通信装置１０は、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３，表示部１４，操作部１５，通信Ｉ／Ｆ（インタフェース）１６及びＨＤＤ１８を備え、それらがシステムバス１７により接続されている。
【００２３】
ＣＰＵ１１は通信装置１０全体を統括制御する制御手段であり、ＲＯＭ１２に記録された種々のプログラムを実行することにより、認証手段や通信制御手段を始めとする通信装置１０の種々の機能を実現する。ＲＯＭ１２は不揮発性の記憶手段であり、ＣＰＵ１１が実行する各種プログラムや固定的なパラメータ等のデータを記憶する。ＲＡＭ１３は、一時的に使用するデータを記憶したり、ＣＰＵ１１のワークメモリとして使用したりする記憶手段である。ＨＤＤ１８は、不揮発性の書き換え可能な記憶手段であり、各種データを記憶する。
【００２４】
表示部１４は、液晶ディスプレイなどの表示器を備え、ＣＰＵ１１の制御に従い、通信装置１０の動作状態や設定内容、ユーザからの操作を受け付けるためのＧＵＩ（グラフィカル・ユーザ・インタフェース）、あるいはユーザへのメッセージ等を表示する表示手段である。操作部１５は、ユーザによる操作を受け付けるためのキーやボタンを備えた操作段である。
【００２５】
通信Ｉ／Ｆ１６は、通信装置１０を何らかの通信経路を介して他の装置と通信可能にするためのインタフェースであり、例えば、ネットワークに接続してＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．３方式（イーサネット（登録商標）方式）の有線通信やＩＥＥＥ８０２．１１方式の無線通信を行うためのネットワークインタフェースとすることができる。より具体的には、ネットワークインタフェースカードを採用することが考えられる。
【００２６】
そして、通信装置１０が他の装置と通信を行う場合、この通信Ｉ／Ｆ１６とＣＰＵ１１とが通信手段として機能する。なお、通信Ｉ／Ｆ１６は、通信経路の規格や使用する通信プロトコル等に応じて適切なものを用意する。通信経路は、有線／無線を問わず任意のものを利用可能であるし、複数の規格に対応させて複数の通信Ｉ／Ｆ１６を設けることも当然可能である。
【００２７】
例えば、ＴＣＰ／ＩＰではなく、ＩＰＸ／ＳＰＸ（Internetwork Packet eXchange / Sequenced Packet eXchange）を用いるＮｅｔｗａｒｅを利用することもできる。なお、ここでは、通信プロトコルとして、ＩＥＥＥ８０２．１１方式のセキュリティ拡張であるＩＥＥＥ８０２．１１ｉ方式（ＷＰＡ（Wi-Fi Protected Access）としても知られる）に、ＩＥＥＥ８０２．１Ｘ方式による認証実装を適用した通信プロトコルを採用し、通信装置１０を、外部装置との間でセキュリティを確保した通信が可能となるよう構成している。
【００２８】
また、通信装置１０に、その用途に応じて、種々の構成要素を設けてよいことは、もちろんである。例えば、通信装置１０を、プリント，ファクシミリ通信，スキャン，コピー，文書蓄積等の機能を備えたデジタル複合機（ＭＦＰ）として構成する場合には、プリントエンジンやスキャナエンジン等を設けることが考えられる。また、通信装置１０が、自身で表示を行ったり操作を受け付けたりする必要がない場合には、表示部１４や操作部１５を設けなくてもよい。
【００２９】
通信装置１０は、以上のような構成を有し、通信Ｉ／Ｆ１６を介してネットワークに接続可能であり、そのネットワークを介して外部装置と通信可能な装置である。そして、ここでは通信プロトコルとしてＩＥＥＥ８０２．１１ｉ方式を採用しているため、通信経路は無線であり、ネットワークに接続する際に直接の通信相手となる装置としては、例えば無線ＬＡＮのアクセスポイントが考えられる。
【００３０】
また、ＩＥＥＥ８０２．１Ｘ方式による認証実装を適用しているため、通信装置１０は、ネットワークを介した通信を開始するに際し、ＥＡＰｏＬ（Extended Authentication Protocol over LAN）を用いた認証処理を行ってアクセスポイントに接続許可を受ける必要がある。この処理は、ＭＡＣ（メディアアクセスコントロール）プロトコルを用いて直接の通信相手となる装置との間でデータリンク層の通信経路を確立する処理に該当する。
【００３１】
図２は、この認証処理の内容について説明するための図である。同図に示す通り、ＥＡＰｏＬは、通信装置１０の直接の通信相手となるアクセスポイント２０が認証の仲介をして、通信装置１０から送信されてくる認証情報を認証サーバ３０に送信して認証を行わせ、この認証が成功した場合に、通信装置１０からアクセスポイント２０への接続が許可され、通信装置１０がアクセスポイント２０を介してネットワーク上の外部装置４０との間のデータ通信を行うことができるようにするものである。
【００３２】
そして、この認証に係る通信（認証通信）の際には、チャレンジレスポンス方式のパスワード認証や、公開鍵基盤（ＰＫＩ）を用いた公開鍵暗号が利用され、通信装置１０と認証サーバ３０には、認証局５０が発行し、公開鍵暗号を用いた認証に使用する電子証明書を設定しておく。また、接続許可後の通信を暗号化する場合には、認証完了時に、認証サーバ３０から通信装置１０に、暗号化に使用する鍵やその鍵の元となるデータを配布することも可能である。
【００３３】
尚、セキュリティ一般において、暗号化には共通鍵暗号方式と公開鍵暗号方式との２つがあるが、公開鍵暗号方式は共通鍵暗号方式に比べて処理が重い。このため、データ通信全体を暗号化するのには向いておらず、認証のためのパスワード等の認証情報や共通鍵暗号のための鍵等、比較的短い情報をやりとりするために公開鍵暗号が用いられることが多い。このため、ここでは公開鍵暗号を用いているが、本実施の形態においてはこれに限らない。
【００３４】
また、認証（接続許可）の必要がない場合もあり、この場合、上述の認証処理が行われずに、通信装置１０と外部装置４０との間でデータ通信を行うことが可能である。認証の要否は、例えば、操作部１５における操作入力によりユーザが設定可能である。その設定内容を示す認証要否情報は例えばＨＤＤ１８に記憶される。通信装置１０は、例えば、起動時に、ＨＤＤ１８に記憶された認証要否情報を参照して、認証処理を行うか否かを決定する。
【００３５】
図３は、通信装置１０のソフトウェア構成を示す図である。同図に示すように、通信装置１０は、ＣＰＵ１１に実行させるプログラムとして、上位アプリケーション１０１，認証アプリケーション１０２，ＯＳ（オペレーティングシステム）カーネル１１０とを備えている。また、通信Ｉ／Ｆ１６は、ハードウェアであるが、説明を分かり易くするために図３にも示している。
【００３６】
上記のうちＯＳカーネル１１０は、プロトコルスタック１１１と、デバイスドライバ１１２と、ドライバインタフェース１１３と、送受信ルーチン１１４と、認証状態管理モジュール１１５とを含む。そして、プロトコルスタック１１１は、ＴＣＰ／ＩＰやＵＤＰ（User Datagram Protocol）／ＩＰといった、図４に示すようなＯＳＩ参照モデルの第４層（トランスポート層）及び第３層（ネットワーク層）に係る通信機能を実現するためのプログラムモジュールである。
【００３７】
デバイスドライバ１１２は、第１層（物理層）である通信Ｉ／Ｆ１６の動作を制御し、第２層（データリンク層）に関する通信機能を実現するためのプログラムモジュールであり、通信Ｉ／Ｆ１６毎にこれと対応して設けられる。ドライバインタフェース１１３は、デバイスドライバ１１２を利用するプロトコルスタック１１１，認証アプリケーション１０２等から、デバイスドライバ１１２の種類あるいはデバイスドライバ１１２が制御する通信Ｉ／Ｆ１６の種類によらず同一のインタフェースでデータ送受、制御、監視などが可能となるように、デバイスドライバ１１２のインタフェースを統一するためのプログラムモジュールである。
【００３８】
上位アプリケーション１０１は、ＯＳＩ参照モデルの第７層（アプリケーション層），第６層（プレゼンテーション層），及び第５層（セッション層）に係る通信機能を実現するためのプログラムモジュール群、あるいはこれらの通信機能を利用して種々の機能を実現するためのプログラムモジュール群である。
【００３９】
例えば、ユーザの操作に従ってファイルを外部装置との間で送受信する機能や、外部装置からの要求に応じて何らかの動作を行って応答を返す機能、外部装置のアプリケーションとの間でメッセージを送受信する機能、外部装置に対して通信装置１０の状態を通知する機能等を実現するためのプログラムを上位アプリケーション１０１として設けることが考えられる。また、ユーザの指示に従ってホームページを閲覧するブラウザや電子メール送受信用プログラム等を設けることも考えられる。さらに、上位アプリケーション１０１を、通信相手（アクセスポイント２０のような、ネットワーク上で直結された装置とは限らない）を認証したり、通信内容を暗号化する等のセキュリティプログラムと組み合わせて動作させることも考えられる。その他、各種設定やプロトコルスタック群の設定等を行う機能やプロトコルスタックのアドレスを取得・設定する機能を実現するためのプログラムを上位アプリケーション１０１として設けることも考えられる。但し、これらの機能をＯＳカーネル１１０の機能に組み込んでも良く、様々な構成例が考えられる。
【００４０】
また、上位アプリケーション１０１は、ＯＳカーネル１１０に含まれるプロトコルスタック１１１、送受信ルーチン１１４、ドライバインタフェース１１３及びデバイスドライバ１１２を経由して外部装置とデータ通信を行う。
【００４１】
認証アプリケーション１０２は、デバイスドライバ１１２及び通信Ｉ／Ｆ１６により、ネットワーク上で通信装置１０と直結される外部装置と通信する際、その外部装置との間でデータリンク層の通信経路を確立するために必要な認証処理、すなわち物理インタフェースがネットワークへ接続してデータ転送を行う許可を得るための認証処理を行う認証手段の機能を実現するためのプログラムモジュールである。
【００４２】
尚、通信装置１０と外部装置とがイーサネット（登録商標）の規格により通信を行う場合、通信装置１０が送信するデータは、全てイーサネット（登録商標）タイプを含む。認証アプリケーション１０２は上述の認証通信の際に、当該イーサネット（登録商標）タイプに「Ｘ８８８８」をセットすると共に認証処理に必要なユーザＩＤ、パスワード及び電子証明書をセットしてこれらを含むデータを認証情報として送信する。
【００４３】
この認証処理の方式は、通信Ｉ／Ｆ１６やデバイスドライバ１１２が通信に使用する通信プロトコルによって異なるが、適切な方式に対応した認証アプリケーション１０２を用意しておくものとする。例えば、ここで採用しているＩＥＥＥ８０２．１Ｘ方式の認証実装の場合、上述のようなＥＡＰｏＬを用いた認証処理を行うための認証アプリケーション１０２を用意しておけばよい。なお、異なる方式に対応した認証アプリケーション１０２を複数用意しておき、使用する通信プロトコルに応じて必要な認証アプリケーション１０２を起動して認証処理を行わせるようにしてもよい。
【００４４】
図５は、認証処理による又はタイムアウトによる認証状態の状態遷移を概念的に示した図である。通信装置１０の電源が投入され接続を検出したら、認証状態はリンクアップ状態Ｊ２に移行し、切断を検出したら認証状態はリンクダウン状態Ｊ１に移行する。この接続又は切断は有線ＬＡＮ(ＩＥＥＥ ８０２．３イーサネット（登録商標）など)、無線ＬＡＮ(ＩＥＥＥ ８０２．１１など)に共通の概念として用いられ、デバイスドライバ１１２がデバイスの状態から検出することができる。認証状態がリンクアップ状態Ｊ２に移行すると、次に、認証が必要かどうか監視する認証プローブ状態Ｊ２０になる。そして、認証アプリケーション１０２による認証処理が開始されると認証状態は認証中状態Ｊ２１に移行し、認証処理の完了とともに既認証状態Ｊ２２に移行する。認証プローブ状態Ｊ２０となってからの経過時間が所定時間に達しても認証処理が開始されないときはタイムアウトによって既認証状態Ｊ２２に移行する。また、認証が必要でないことが上述の認証要否情報において予め設定されている場合は、認証アプリケーション１０２による認証処理が行われることなく、認証プローブ状態Ｊ２０から既認証状態Ｊ２２に移行する。尚、既認証状態Ｊ２２以外の認証状態Ｊ２０，２１を未認証状態ともいう。
【００４５】
認証状態管理モジュール１１５は、認証プローブ状態や、認証アプリケーション１０２によって認証処理が行われる場合にその認証状態を検出し、検出した認証状態を示す認証状態情報を送受信ルーチン１１４に引き渡す。
【００４６】
送受信ルーチン１１４は、送信するデータにプロトコルに応じたヘッダ等を付加したり、デバイスドライバ１１２が受信したデータからヘッダを取り除いたりする送信制御を行う。また、送受信ルーチン１１４は、認証アプリケーション１０２から送られたデータ（送信データ）をドライバインタフェース１１３を介してデバイスドライバ１１２に送ったり、認証状態管理モジュール１１５に認証状態を問い合わせ、応答として認証状態管理モジュール１１５から送られた認証状態情報によって示される認証状態に応じて、上位アプリケーションやプロトコルスタック１１１から送られたデータ（送信データ）を送信可能か否かを判断したりする送信制御を行う。尚、送受信ルーチン１１４はプロトコルスタック１１１と密接な関係にあり、プロトコルスタック１１１の一部とするように構成しても良い。
【００４７】
また、送受信ルーチン１１４は、認証状態管理モジュール１１５に認証状態を問い合わせてからの経過時間を計測し、当該経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができない場合、認証状態が既認証状態であるものとして、送信データの送信制御を行う。
【００４８】
尚、この所定時間は、ユーザにより設定され、例えばＨＤＤ１８に記憶される。図６は、ユーザが所定時間を設定するための表示部１４の表示画面を例示する図である。ユーザは操作部１５を介して、図６（ａ）に示される表示画面でユーザＩＤ及びパスワードを入力した後、図６（ｂ）に示される表示画面で上述の所定時間として所望の時間を入力することができる。通信装置１０のＣＰＵ１１は、図６（ａ）〜（ｂ）の示すように表示画面を遷移させ、所定時間の設定値が入力されると、当該設定値を例えばＨＤＤ１８に記憶させる。
【００４９】
通信装置１０では、以上のように、ＯＳカーネル１１０において送受信ルーチン１１４及び認証状態管理モジュール１１５を構成することで、認証状態を一元的に管理し、認証状態に応じて、上位アプリケーション１０１やプロトコルスタック１１１から送られるデータの送信を制御する。
【００５０】
（２）動作
次に、本実施の形態にかかる通信装置１０の動作について説明する。図７は、通信装置１０の起動時の動作シーケンスを認証アプリケーション１０２の機能に関連する処理の手順を中心に示すフローチャートである。また、以降の説明及び図面においては、説明を簡単にするため、ＣＰＵ１１が図３に示したソフトウェアを実行することによって行う処理は、そのソフトウェアが行う動作であるとして説明することにする。
【００５１】
通信装置１０においては、電源が投入されると、まずＯＳカーネル１１０が自動的に起動する。そしてまず、ＯＳカーネル１１０は、通信装置１０が備える通信Ｉ／Ｆ１６を検出する（ステップＳ１）。ここで、ＯＳカーネル１１０は、通信Ｉ／Ｆ１６と直接の通信相手となる装置（ここではアクセスポイント２０）との間で物理的な接続が保たれているか否かを示す接続情報を取得する。この接続情報は、有線通信であれば、ケーブルが接続されているか否かを示し、無線通信であれば、通信相手から所定レベル以上の無線信号を受信できているか否かを示すものである。この接続情報は、通信Ｉ／Ｆ１６が検出できるため、デバイスドライバ１１２が通信Ｉ／Ｆ１６の制御動作の一環として通信Ｉ／Ｆ１６から取得できる。また、ＯＳカーネル１１０は、ＨＤＤ１８に記憶された認証要否情報を参照して、認証が必要であると判断した場合、検出した通信Ｉ／Ｆ１６の種類に応じて、その通信Ｉ／Ｆ１６によりアクセスポイント２０との間でデータリンク層の通信経路を確立するために必要な認証処理を行うための認証アプリケーション１０２を起動する。
【００５２】
また、ＯＳカーネル１１０は、プロトコルスタック１１１の初期化を行う。この初期化は、プロトコルスタック１１１に、通信の実行に必要なＩＰアドレス等のアドレスを設定したり、アドレスの設定に必要なアプリケーションを起動し、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバ等からアドレスを取得させてプロトコルスタック１１１に設定させたりする処理を含む。また、ＯＳカーネル１１０は、上位アプリケーション１０１の起動を行う。起動された上位アプリケーション１０１は、必要に応じてプロトコルスタック１１１に通信を要求し、データを送る。
【００５３】
一方、起動された認証アプリケーション１０２は、認証状態が既認証状態ではないとき（ステップＳ２：ＮＯ）、認証状態を認証中状態に移行させ（ステップＳ３）、デバイスドライバ１１２にアクセスポイント２０との間で認証通信を実行させる（ステップＳ４）。この認証通信では、認証アプリケーション１０２は、図２に示したように、アクセスポイント２０に対して認証情報を送信する。そして、認証アプリケーション１０２は、アクセスポイント２０から認証の成功を示す認証結果を受け取ると（ステップＳ５：ＹＥＳ）、認証状態を既認証状態に移行させる（ステップＳ６）。すると、通信装置１０は、直接の通信相手となるアクセスポイント２０を介して、ネットワークに接続されている任意の相手と通信可能となる。ステップＳ５の判断結果が否定的である場合には、ステップ４で認証通信が続行される。
【００５４】
一方、認証状態管理モジュール１１５は、送受信ルーチン１１４から認証状態の問い合わせがあると、検出した認証状態を示す認証状態情報を送受信ルーチン１１４に返す。送受信ルーチン１１４は、認証状態の問い合わせを定期的に行う。
【００５５】
次に、送受信ルーチン１１４によって行われる送信制御について説明する。図８は、ＣＰＵ１１が送受信ルーチン１１４を実行することにより行う処理の手順を示すフローチャートである。通信装置１０の電源が投入されると、所要の初期処理の終了後、送受信ルーチン１１４を実行することにより、図８のフローチャートに示す処理を開始する。
【００５６】
送受信ルーチン１１４は、認証状態管理モジュール１１５に対して認証状態情報の問い合わせを定期的に行うと共に、認証状態情報の問い合わせを開始してからの経過時間を計測する。そして、送受信ルーチン１１４は、上位アプリケーション１０１や認証アプリケーション１０２から送られてくる送信データを待機する。そして、送信データがある場合（ステップＳ１０：ＹＥＳ）、送受信ルーチン１１４は、その送信データが、認証アプリケーション１０２によって認証処理が行われる際に送信される上述の認証情報であるか否かを判断する（ステップＳ１１）。
【００５７】
認証情報であるか否かは、例えば上述したイーサネット（登録商標）タイプにより判断することができる。認証情報に含まれるイーサネット（登録商標）タイプには「Ｘ８８８８」がセットされているが、未認証状態時に上位アプリケーション１０１やプロトコルスタック１１１から送られてくるデータのイーサネット（登録商標）タイプには「Ｘ８８８８」がセットされていない。このため、送受信ルーチン１１４は、イーサネット（登録商標）タイプにセットされた値により、送信データが認証情報であるか否かを判断する。
【００５８】
送信データが認証情報である場合（ステップＳ１１：ＹＥＳ）、当該送信データの送信は認証処理に必要であるため、送受信ルーチン１１４は、ドライバインタフェース１１３を介してデバイスドライバ１１２に当該送信データを引き渡す。デバイスドライバ１１２は、引き渡されたデータを通信Ｉ／Ｆ１６を介して送信する（ステップＳ１４）。ここでの送信相手はアクセスポイント２０である。
【００５９】
送信データが認証情報でない場合（ステップＳ１１：ＮＯ）、当該送信データは上位アプリケーション１０１やプロトコルスタック１１１から送られたデータであるため、次いで、送受信ルーチン１１４は、認証状態管理モジュール１１５から応答として受け取った認証状態情報によって示される認証状態を判断する（ステップＳ１２）。認証状態が既認証状態である場合（ステップＳ１２：ＹＥＳ）、データリンク層以下の通信経路が確立されているため、送受信ルーチン１１４は、ドライバインタフェース１１３を介してデバイスドライバ１１２に当該送信データを引き渡す。デバイスドライバ１１２は、引き渡されたデータを通信Ｉ／Ｆ１６を介して送信する（ステップＳ１４）。ここでの送信相手は外部装置４０である。
【００６０】
一方、認証状態が既認証状態以外(未認証状態)である場合（ステップＳ１２：ＮＯ）、次いで、送受信ルーチン１１４は、認証状態情報の問い合わせを開始してから計測している経過時間が、ＨＤＤにその設定値が記憶されている所定時間に達したか否かを判断する（ステップＳ１３）。当該判断結果が肯定的である場合、即ち、認証状態情報の問い合わせを開始してからの経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができなかった場合、タイムアウトしたとして、ステップＳ１４に進む。即ち、この場合、送受信ルーチン１１４は、認証状態は既認証状態であるとする。なぜなら、認証状態情報の問い合わせを開始してからの経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができない場合とは、例えば、ＯＳカーネル１１０が参照した認証要否情報が、認証の必要がないことを示しており、その結果、認証アプリケーション１０２が起動されず認証処理が行われない場合である。このような場合には、認証処理が行われることなくデータリンク層以下の通信経路が確立されるため、上位アプリケーション１０１やプロトコルスタック１１１から送られてくる送信データを送信しても問題はないからである。このため、この場合、ステップＳ１４に進み、送受信ルーチン１１４は、上位アプリケーション１０１やプロトコルスタック１１１から送られてくる送信データを、ドライバインタフェース１１３を介してデバイスドライバ１１２に引き渡す。
【００６１】
尚、認証状態は既認証状態以外であり且つタイムアウトが発生していない場合、ステップＳ１３の判断結果が否定的となり、送受信ルーチン１１４は、上位アプリケーション１０１やプロトコルスタック１１１から送られてくる送信データを全て破棄する（ステップＳ１５）。
【００６２】
以上のような構成により、認証アプリケーション１０２による認証処理が成功している状態では、通信装置１０におけるデータリンク層より上位の階層のプロトコルを用いた通信の実行を許可する。認証アプリケーション１０２による認証処理が成功していない状態では、通信装置１０におけるデータリンク層より上位の階層から送られたデータを破棄することにより、データリンク層より上位の階層のプロトコルを用いた通信の実行を禁止する。
【００６３】
従って、認証処理が成功していない状態でプロトコルスタック１１１がアドレス自動取得処理のために初期化作業を開始し、アドレスが取得できずタイムアウトとなり、再びリトライ処理によりアドレス自動取得処理が繰り返されるというような不具合を回避することができ、通信プロトコルの動作を安定させることができる。
【００６４】
また、通信の暗号化を想定していたにも関わらず、暗号化のための鍵が通信装置１０とアクセスポイント２０との間で共有される前にプロトコルスタック１１１がデータの送信を開始し、外部に平文が送出されてしまうような事態を防止し、セキュリティを向上させることができる。
【００６５】
また、認証の必要がない時や認証後にはこのような送信制御が不要なため、送受信ルーチン１１４は、認証アプリケーション１０２によって行われる認証処理の完了と共に所定時間のタイムアウトによって、データ送信禁止を解除する。このようなデータ送信禁止の解除を行うことにより、データ送信を不必要に禁止することなく、データ送信を円滑に行うことができる。また、データ送信禁止の解除を送受信ルーチン１１４が行うことにより、認証アプリケーション１０２による認証処理を行うことが必要な場合に故意に又は誤ってデータ送信禁止の解除が行われることを防止することができる。このため、セキュリティを低下することなく、データ送信を円滑に行うことができる。
【００６６】
尚、例えば、上位アプリケーション１０１やプロトコルスタック１１１が認証状態を管理したり、認証状態に応じて送信制御を行ったりする機能を実装する構成も考えられるが、この場合、これらの任意の実装に任せるのはリスクが高い。その上、新規のアプリケーションを追加する場合にも同じような実装が必要であり、全てのアプリケーションにおいて上記の機能を実現させることは困難であることが想定される。このため、通信Ｉ／Ｆ１６にデータを引き渡すデバイスドライバ１１２を含むＯＳカーネル１１０に送受信ルーチン１１４及び認証状態管理モジュール１１５を備え、ここでこの認証状態管理モジュール１１５が認証状態を一元的に管理し、送受信ルーチン１１４が認証状態に応じてデータの送信を制御する。即ち、通信Ｉ／Ｆ１６によるデータ通信を行うデバイスドライバ１１２に共通の管理機構であるＯＳカーネル１１０において送受信ルーチン１１４及び認証状態管理モジュール１１５を備えることで、通信Ｉ／Ｆ１６の種類に関係なく、認証状態に応じた送信制御を行うことが可能になる。この結果、セキュリティを低下させることなく、安定した通信を行うことが容易に実現可能になる。従って、上位アプリケーションやプロトコルスタックの実装に依存することなく、通信装置１０におけるデータリンク層より上位の階層から送られたデータの未認証状態時の送信を確実に抑止することができる。
【００６７】
また、以上のような認証状態管理モジュール１１５及び送受信ルーチン１１４を、認証アプリケーション１０２やデバイスドライバ１１２などと組み合わせることで、通信装置１０がネットワークに接続する際、認証通信以外が許されない時に、データリンク層より上位の階層のプロトコルを用いた通信を行うことによる通信経路上の機器動作による不具合やセキュリティ上の問題がその他の機構に依存することなく、フレキシブルに解決可能となる。即ち、実装の柔軟性を高めることができる。
【００６８】
また、認証状態管理モジュール１１５及び送受信ルーチン１１４を各インタフェースデバイスで使う場合に共通の方法で上記各機能を提供できるように実装することにより、認証方法やデバイスの差を意識することなく、認証通信以外が許されない時に、上位アプリケーション１０１やプロトコルスタック１１１から不要なデータを送信してしまうのを防ぐことができる。
【００６９】
[変形例]
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
【００７０】
＜変形例１＞
上述の実施の形態においては、ＣＰＵ１１が実行する各種プログラムをＲＯＭ１２に記憶させるように構成した。しかし、当該プログラムを、ＨＤＤ１８に記憶させるようにしても良いし、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記憶媒体に記憶して提供するように構成してもよい。また、当該各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００７１】
＜変形例２＞
上述の実施の形態において、送受信ルーチン１１４が認証状態管理モジュール１１５に認証状態情報を問い合わせるのではなく、認証状態管理モジュール１１５が認証状態の遷移を検出したとき能動的に送受信ルーチン１１４に通知するようにしても良い。このような構成によれば、送受信ルーチン１１４における処理負荷を軽減することができる。
【００７２】
＜変形例３＞
上述の実施の形態においては、ＯＳカーネル１１０が起動時に認証要否情報を参照して認証の要否を判断したが、送受信ルーチン１１４が認証要否情報を参照して認証の要否を判断し、認証の必要がないと判断した場合には、図８のステップＳ１０の後、ステップＳ１１〜Ｓ１３を経ずに、ステップＳ１４を行うようにしても良い。
【００７３】
＜変形例４＞
上述の実施の形態においては、認証状態を認証アプリケーション１０２から認証状態管理モジュール１１５に通知させるようにしても良いし、デバイスドライバ１１２が通信Ｉ／Ｆ１６を介して送受信するデータ、特に、認証アプリケーション１０２が上述の認証通信により送受信するデータを監視してその内容から認証状態を判断し、これを認証状態管理モジュール１１５が取得するようにしても良い。また、認証状態を変更するのは、認証アプリケーション１０２ではなく、認証状態管理モジュール１１５が認証処理の進行状況を監視することにより行うようにしても良い。又は、認証処理の進行状況又はタイムアウトによって認証状態を変更する認証状態変更モジュール（図示せず）をＯＳカーネル１１０に別途設けるようにしても良い。
【００７４】
＜変形例５＞
上述の実施の形態の送受信ルーチン１１４においては、図８のステップＳ１１，Ｓ１２の順に処理を行うようにしたが、Ｓ１２，Ｓ１１の順に処理を行うようにしても良い。
【図面の簡単な説明】
【００７５】
【図１】本実施の形態にかかる通信装置のハードウェア構成を示すブロック図である。
【図２】認証処理の内容について説明するための図である。
【図３】通信装置１０のソフトウェア構成を示す図である。
【図４】図３に示したソフトウェアとＯＳＩ参照モデルとの関係について説明するための図である。
【図５】認証処理による又はタイムアウトによる認証状態の状態遷移を概念的に示した図である。
【図６】ユーザが所定時間を設定するための表示部１４の表示画面を例示する図である。
【図７】通信装置１０の起動時の動作シーケンスを認証アプリケーション１０２の機能に関連する処理の手順を中心に示すフローチャートである。
【図８】ＣＰＵ１１が送受信ルーチン１１４を実行することにより行う処理の手順を示すフローチャートである。
【符号の説明】
【００７６】
１０  通信装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  表示部
１５  操作部
１６  通信Ｉ／Ｆ
１７  システムバス
１８  ＨＤＤ
２０  アクセスポイント
３０  認証サーバ
４０  外部装置
５０  認証局
１０１  上位アプリケーション
１０２  認証アプリケーション
１１０  ＯＳカーネル
１１１  プロトコルスタック
１１２  デバイスドライバ
１１３  ドライバインタフェース
１１４  送受信ルーチン
１１５  認証状態管理モジュール
【図１】
0005078514.tif 000002
【図２】
0005078514.tif 000003
【図３】
0005078514.tif 000004
【図４】
0005078514.tif 000005
【図５】
0005078514.tif 000006
【図６】
0005078514.tif 000007
【図７】
0005078514.tif 000008
【図８】
0005078514.tif 000009