説明

通信装置

【課題】ネットワークを介して外部装置と通信を行う際の動作を安定させ、またセキュリティを向上可能な通信装置を提供する。
【解決手段】認証状態管理モジュール115は、認証プローブ状態や、認証アプリケーション102によって認証処理が行われる場合にその認証状態を検出する。送受信ルーチン114は、認証状態管理モジュール115が検出した認証状態に応じて、上位アプリケーションやプロトコルスタック111から送られたデータの送信を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して外部装置と通信可能な通信装置に関し、特に、外部装置と通信を行う場合に、物理インタフェースがネットワークへ接続する際にデータ転送を行う許可を得るための認証処理を行う通信装置に関する。
【背景技術】
【0002】
以前から、ネットワークを介した通信を行う場合において、暗号化、認証などのセキュリティのニーズはあったが、インターネットの普及によりますますその必要性が高くなっている。これは、インターネットをはじめとしたネットワークはそれなりの知識がある人であれば誰でも盗聴が可能であり、データの改ざんなども比較的に容易におこなうことができるためである。このような背景のもと、従来は専用機や特注レベルでしかありえなかったセキュリティ搭載製品も、パーソナルコンピューター(PC)上のソフトウェア、画像処理装置、通信装置などに大きく広がり、一般のオフィスでも使われるようになってきた。
【0003】
ところで、インターネットなどのネットワークに接続可能な機器において、ネットワークやその関連するプログラムが階層化された構造をとる場合、一般的に、暗号化、認証といった処理がOSI(Open Systems Interconnection)参照モデルにおける各階層によってそれぞれの目的で行われる。
【0004】
例えば、LAN(ローカルエリアネットワーク)上におけるTCP/IP(Transmission Control Protocol / Internet Protocol)通信をOSI参照モデルで説明すると、レイヤ1の物理層からレイヤ2のデータリンク層までがイーサネット(登録商標)(IEEE 802.3)や無線LAN(IEEE 802.11)などのインタフェースカード部分にあたり、それぞれPHY(物理)通信規定、MAC(Media Access Control)プロトコルを規定している。同様にレイヤ3のネットワーク層がIPプロトコル、レイヤ4のトランスポート層がTCPプロトコルを規定しており、それより上位がアプリケーション層となっている。
【0005】
暗号化、認証はそれぞれの階層で行うことが可能であり、最上位のアプリケーション上ではコンテンツデータの暗号化、TCPプロトコル上ではSSL(セキュア・ソケット・レイヤー)、IPプロトコル上ではIPSec(セキュリティー・アーキテクチャー・フォー・インターネット・プロトコル)、そしてMACプロトコルではMAC層を含むデータ通信まるごとを暗号化する技術が存在する。それぞれの暗号化にはその暗号鍵を共有するための相互の認証が必要となるが、これもそれぞれの暗号方式で様々な実装をすることができる。
【0006】
そして、上記のように通信装置がネットワークを介して外部装置と通信をする際に、種々の階層で認証処理を行うようにする場合、その認証処理の進行に応じて、装置の動作を管理することが重要である。そして、このような技術に関連する文献としては、例えば特許文献1〜3が知られている。特許文献1には、高速なIP接続処理を実現するため、ユーザ認証の成功検出後に、起動されたIP処理部又は高速IP接続処理部が直ちにネットワークにルータ広告メッセージを要求し、その応答として受信したルータ広告メッセージにより、以降のIP接続処理を早期に開始させるようにする技術が開示されている。特許文献2には、無線LAN上での認証プロトコル(PPPoE、IEEE 802.1X)などを動作させる時の上位プロトコルのハンドリングに関し、中位プロトコルスタックで接続状態の監視及び上位プロトコルへの切断の通知を調整することにより、不安定な通信媒体である無線LANの頻繁な切断や異常コネクションを回避する技術が開示されている。特許文献3には、無線情報通信端末装置において、データリンク層が使用可能な無線領域を検出したり、通信時の認証や加入等の手順に合格したりした場合にその旨を表示するようにする技術が開示されている。
【0007】
【特許文献1】特開2004−254277号公報
【特許文献2】特許3628315号公報
【特許文献3】特開2002−034066号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、上記の階層のうち、例えば、インタフェースカード部分において、ネットワークに接続するためになんらかの認証プロトコルで認証を外部装置からうける際、その認証処理中は本質的にそれより上位のプロトコルが通信を行うべきではない。その理由は以下の通りである。認証された際に、暗号化のための鍵を接続先、例えば、有線であればハブ、無線LANであればアクセスポイント等と共有して暗号化通信を行う場合においては認証される以前に上位プロトコルが通信を試みても通信がまったく行えないし、また暗号化が行われなくても認証される以前はハブやアクセスポイントより先にデータが出ていけないため、通信プロトコルアドレス取得や通信プロトコルアドレス重複の検出などができない、といった弊害が考えられるからである。例えば、TCP/IPにおいてアドレス解決のためのデータを未認証状態で送信しても、IPアドレスの重複を検出できない恐れがある。その他、未認証状態で、接続先の外部装置に対して認証処理のためのデータ(認証通信データ)以外のデータを送信すると、外部装置の中には異常な未認証データが大量に送信されたと認識してデータ通信をそれ以上行わないよう制御を行うものがあり、認証処理が中止される恐れもある。また、認証処理のためのデータ通信(認証通信)中に認証通信データ以外の上位のアプリケーションから送られるデータが混在すると、認証通信が何度もはじめからやり直しとなり、認証処理が阻害される恐れもある。特にこれは、下位層で通信を一度切断し未認証状態からの認証通信を再度行う時に、上位のアプリケーションが通信をいきなりは止められないことから容易に発生し得る。
【0009】
一方、上記の特許文献1〜3に記載の技術は、以上のような弊害を十分に解消できるものではない。特に、実現可能な機能が予め組み込まれた画像処理装置などの組み込み型の装置では、以上のような弊害を解消することは困難であった。
【0010】
本発明は、上記に鑑みてなされたものであって、ネットワークを介して外部装置と通信を行う際の動作を安定させ、またセキュリティを向上可能な通信装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、ネットワークを介して外部装置と通信可能であり、実現可能な機能が予め組み込まれた通信装置であって、ドライバを有する物理インタフェースが前記ネットワークへ接続してデータ転送を行う許可を得るための認証処理を行う認証手段と、前記認証手段による認証処理の状態を示す認証状態情報を検出する認証状態手段と、前記認証状態手段が検出した前記認証状態情報を取得し、当該認証状態情報によって示される前記認証処理の状態に応じて、データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから送られるデータの前記外部装置への送信を制御する送信制御手段とを備えることを特徴とする。
【0012】
また、請求項2にかかる発明は、請求項1にかかる発明において、前記送信制御手段は、前記認証処理が成功していない状態が前記認証状態情報によって示される場合、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを破棄することを特徴とする。
【0013】
また、請求項3にかかる発明は、請求項1又は2にかかる発明において、前記送信制御手段は、前記認証処理が成功している状態が前記認証状態情報によって示される場合、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記物理インタフェースのドライバに送り、前記ドライバは、前記データを前記外部装置に送信することを特徴とする。
【0014】
また、請求項4にかかる発明は、請求項1乃至3のいずれか一項にかかる発明において、前記認証手段は、前記許可を得るための認証情報を第1外部装置に宛てて送り、前記送信制御手段は、前記外部装置又は前記第1外部装置に宛てて送られたデータが前記認証情報である否かを判断し、判断結果が肯定的である場合、当該認証情報を前記ドライバに送り、前記ドライバは、前記データを前記第1外部装置に送信することを特徴とする。
【0015】
また、請求項5にかかる発明は、請求項1乃至4のいずれか一項にかかる発明において、前記送信制御手段は、所定時間が経過しても前記認証処理が成功している状態を示す前記認証状態情報を取得できない場合、前記認証処理が成功している状態と同様であるとして、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記ドライバに送ることを特徴とする。
【0016】
また、請求項6にかかる発明は、請求項5にかかる発明において、前記所定時間を設定する設定入力を受け付ける入力受付手段を備えることを特徴とする。
【0017】
また、請求項7にかかる発明は、請求項1乃至6のいずれか一項にかかる発明において、前記送信制御手段は、前記許可が必要ない場合、前記認証処理の状態に関わらず、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記ドライバに送ることを特徴とする。
【0018】
また、請求項8にかかる発明は、請求項7にかかる発明において、前記許可の要否を設定する設定入力を受け付ける入力受付手段を備えることを特徴とする。
【0019】
また、請求項9にかかる発明は、請求項1乃至8のいずれか一項にかかる発明において、前記ドライバを含み、当該ドライバの動作を制御する管理制御手段を備え、前記管理制御手段が、前記通信制御手段を含み、当該通信制御手段の動作を制御することを特徴とする。
【発明の効果】
【0020】
本発明によれば、ネットワークを介して外部装置と通信を行う際の動作を安定させ、またセキュリティを向上することができる。
【発明を実施するための最良の形態】
【0021】
以下に添付図面を参照して、この発明にかかる通信装置の最良な実施の形態を詳細に説明する。
【0022】
(1)構成
本実施の形態にかかる通信装置について説明する。図1は、通信装置のハードウェア構成を示すブロック図である。同図に示すように、通信装置10は、CPU11,ROM12,RAM13,表示部14,操作部15,通信I/F(インタフェース)16及びHDD18を備え、それらがシステムバス17により接続されている。
【0023】
CPU11は通信装置10全体を統括制御する制御手段であり、ROM12に記録された種々のプログラムを実行することにより、認証手段や通信制御手段を始めとする通信装置10の種々の機能を実現する。ROM12は不揮発性の記憶手段であり、CPU11が実行する各種プログラムや固定的なパラメータ等のデータを記憶する。RAM13は、一時的に使用するデータを記憶したり、CPU11のワークメモリとして使用したりする記憶手段である。HDD18は、不揮発性の書き換え可能な記憶手段であり、各種データを記憶する。
【0024】
表示部14は、液晶ディスプレイなどの表示器を備え、CPU11の制御に従い、通信装置10の動作状態や設定内容、ユーザからの操作を受け付けるためのGUI(グラフィカル・ユーザ・インタフェース)、あるいはユーザへのメッセージ等を表示する表示手段である。操作部15は、ユーザによる操作を受け付けるためのキーやボタンを備えた操作段である。
【0025】
通信I/F16は、通信装置10を何らかの通信経路を介して他の装置と通信可能にするためのインタフェースであり、例えば、ネットワークに接続してIEEE(Institute of Electrical and Electronic Engineers)802.3方式(イーサネット(登録商標)方式)の有線通信やIEEE802.11方式の無線通信を行うためのネットワークインタフェースとすることができる。より具体的には、ネットワークインタフェースカードを採用することが考えられる。
【0026】
そして、通信装置10が他の装置と通信を行う場合、この通信I/F16とCPU11とが通信手段として機能する。なお、通信I/F16は、通信経路の規格や使用する通信プロトコル等に応じて適切なものを用意する。通信経路は、有線/無線を問わず任意のものを利用可能であるし、複数の規格に対応させて複数の通信I/F16を設けることも当然可能である。
【0027】
例えば、TCP/IPではなく、IPX/SPX(Internetwork Packet eXchange / Sequenced Packet eXchange)を用いるNetwareを利用することもできる。なお、ここでは、通信プロトコルとして、IEEE802.11方式のセキュリティ拡張であるIEEE802.11i方式(WPA(Wi-Fi Protected Access)としても知られる)に、IEEE802.1X方式による認証実装を適用した通信プロトコルを採用し、通信装置10を、外部装置との間でセキュリティを確保した通信が可能となるよう構成している。
【0028】
また、通信装置10に、その用途に応じて、種々の構成要素を設けてよいことは、もちろんである。例えば、通信装置10を、プリント,ファクシミリ通信,スキャン,コピー,文書蓄積等の機能を備えたデジタル複合機(MFP)として構成する場合には、プリントエンジンやスキャナエンジン等を設けることが考えられる。また、通信装置10が、自身で表示を行ったり操作を受け付けたりする必要がない場合には、表示部14や操作部15を設けなくてもよい。
【0029】
通信装置10は、以上のような構成を有し、通信I/F16を介してネットワークに接続可能であり、そのネットワークを介して外部装置と通信可能な装置である。そして、ここでは通信プロトコルとしてIEEE802.11i方式を採用しているため、通信経路は無線であり、ネットワークに接続する際に直接の通信相手となる装置としては、例えば無線LANのアクセスポイントが考えられる。
【0030】
また、IEEE802.1X方式による認証実装を適用しているため、通信装置10は、ネットワークを介した通信を開始するに際し、EAPoL(Extended Authentication Protocol over LAN)を用いた認証処理を行ってアクセスポイントに接続許可を受ける必要がある。この処理は、MAC(メディアアクセスコントロール)プロトコルを用いて直接の通信相手となる装置との間でデータリンク層の通信経路を確立する処理に該当する。
【0031】
図2は、この認証処理の内容について説明するための図である。同図に示す通り、EAPoLは、通信装置10の直接の通信相手となるアクセスポイント20が認証の仲介をして、通信装置10から送信されてくる認証情報を認証サーバ30に送信して認証を行わせ、この認証が成功した場合に、通信装置10からアクセスポイント20への接続が許可され、通信装置10がアクセスポイント20を介してネットワーク上の外部装置40との間のデータ通信を行うことができるようにするものである。
【0032】
そして、この認証に係る通信(認証通信)の際には、チャレンジレスポンス方式のパスワード認証や、公開鍵基盤(PKI)を用いた公開鍵暗号が利用され、通信装置10と認証サーバ30には、認証局50が発行し、公開鍵暗号を用いた認証に使用する電子証明書を設定しておく。また、接続許可後の通信を暗号化する場合には、認証完了時に、認証サーバ30から通信装置10に、暗号化に使用する鍵やその鍵の元となるデータを配布することも可能である。
【0033】
尚、セキュリティ一般において、暗号化には共通鍵暗号方式と公開鍵暗号方式との2つがあるが、公開鍵暗号方式は共通鍵暗号方式に比べて処理が重い。このため、データ通信全体を暗号化するのには向いておらず、認証のためのパスワード等の認証情報や共通鍵暗号のための鍵等、比較的短い情報をやりとりするために公開鍵暗号が用いられることが多い。このため、ここでは公開鍵暗号を用いているが、本実施の形態においてはこれに限らない。
【0034】
また、認証(接続許可)の必要がない場合もあり、この場合、上述の認証処理が行われずに、通信装置10と外部装置40との間でデータ通信を行うことが可能である。認証の要否は、例えば、操作部15における操作入力によりユーザが設定可能である。その設定内容を示す認証要否情報は例えばHDD18に記憶される。通信装置10は、例えば、起動時に、HDD18に記憶された認証要否情報を参照して、認証処理を行うか否かを決定する。
【0035】
図3は、通信装置10のソフトウェア構成を示す図である。同図に示すように、通信装置10は、CPU11に実行させるプログラムとして、上位アプリケーション101,認証アプリケーション102,OS(オペレーティングシステム)カーネル110とを備えている。また、通信I/F16は、ハードウェアであるが、説明を分かり易くするために図3にも示している。
【0036】
上記のうちOSカーネル110は、プロトコルスタック111と、デバイスドライバ112と、ドライバインタフェース113と、送受信ルーチン114と、認証状態管理モジュール115とを含む。そして、プロトコルスタック111は、TCP/IPやUDP(User Datagram Protocol)/IPといった、図4に示すようなOSI参照モデルの第4層(トランスポート層)及び第3層(ネットワーク層)に係る通信機能を実現するためのプログラムモジュールである。
【0037】
デバイスドライバ112は、第1層(物理層)である通信I/F16の動作を制御し、第2層(データリンク層)に関する通信機能を実現するためのプログラムモジュールであり、通信I/F16毎にこれと対応して設けられる。ドライバインタフェース113は、デバイスドライバ112を利用するプロトコルスタック111,認証アプリケーション102等から、デバイスドライバ112の種類あるいはデバイスドライバ112が制御する通信I/F16の種類によらず同一のインタフェースでデータ送受、制御、監視などが可能となるように、デバイスドライバ112のインタフェースを統一するためのプログラムモジュールである。
【0038】
上位アプリケーション101は、OSI参照モデルの第7層(アプリケーション層),第6層(プレゼンテーション層),及び第5層(セッション層)に係る通信機能を実現するためのプログラムモジュール群、あるいはこれらの通信機能を利用して種々の機能を実現するためのプログラムモジュール群である。
【0039】
例えば、ユーザの操作に従ってファイルを外部装置との間で送受信する機能や、外部装置からの要求に応じて何らかの動作を行って応答を返す機能、外部装置のアプリケーションとの間でメッセージを送受信する機能、外部装置に対して通信装置10の状態を通知する機能等を実現するためのプログラムを上位アプリケーション101として設けることが考えられる。また、ユーザの指示に従ってホームページを閲覧するブラウザや電子メール送受信用プログラム等を設けることも考えられる。さらに、上位アプリケーション101を、通信相手(アクセスポイント20のような、ネットワーク上で直結された装置とは限らない)を認証したり、通信内容を暗号化する等のセキュリティプログラムと組み合わせて動作させることも考えられる。その他、各種設定やプロトコルスタック群の設定等を行う機能やプロトコルスタックのアドレスを取得・設定する機能を実現するためのプログラムを上位アプリケーション101として設けることも考えられる。但し、これらの機能をOSカーネル110の機能に組み込んでも良く、様々な構成例が考えられる。
【0040】
また、上位アプリケーション101は、OSカーネル110に含まれるプロトコルスタック111、送受信ルーチン114、ドライバインタフェース113及びデバイスドライバ112を経由して外部装置とデータ通信を行う。
【0041】
認証アプリケーション102は、デバイスドライバ112及び通信I/F16により、ネットワーク上で通信装置10と直結される外部装置と通信する際、その外部装置との間でデータリンク層の通信経路を確立するために必要な認証処理、すなわち物理インタフェースがネットワークへ接続してデータ転送を行う許可を得るための認証処理を行う認証手段の機能を実現するためのプログラムモジュールである。
【0042】
尚、通信装置10と外部装置とがイーサネット(登録商標)の規格により通信を行う場合、通信装置10が送信するデータは、全てイーサネット(登録商標)タイプを含む。認証アプリケーション102は上述の認証通信の際に、当該イーサネット(登録商標)タイプに「X8888」をセットすると共に認証処理に必要なユーザID、パスワード及び電子証明書をセットしてこれらを含むデータを認証情報として送信する。
【0043】
この認証処理の方式は、通信I/F16やデバイスドライバ112が通信に使用する通信プロトコルによって異なるが、適切な方式に対応した認証アプリケーション102を用意しておくものとする。例えば、ここで採用しているIEEE802.1X方式の認証実装の場合、上述のようなEAPoLを用いた認証処理を行うための認証アプリケーション102を用意しておけばよい。なお、異なる方式に対応した認証アプリケーション102を複数用意しておき、使用する通信プロトコルに応じて必要な認証アプリケーション102を起動して認証処理を行わせるようにしてもよい。
【0044】
図5は、認証処理による又はタイムアウトによる認証状態の状態遷移を概念的に示した図である。通信装置10の電源が投入され接続を検出したら、認証状態はリンクアップ状態J2に移行し、切断を検出したら認証状態はリンクダウン状態J1に移行する。この接続又は切断は有線LAN(IEEE 802.3イーサネット(登録商標)など)、無線LAN(IEEE 802.11など)に共通の概念として用いられ、デバイスドライバ112がデバイスの状態から検出することができる。認証状態がリンクアップ状態J2に移行すると、次に、認証が必要かどうか監視する認証プローブ状態J20になる。そして、認証アプリケーション102による認証処理が開始されると認証状態は認証中状態J21に移行し、認証処理の完了とともに既認証状態J22に移行する。認証プローブ状態J20となってからの経過時間が所定時間に達しても認証処理が開始されないときはタイムアウトによって既認証状態J22に移行する。また、認証が必要でないことが上述の認証要否情報において予め設定されている場合は、認証アプリケーション102による認証処理が行われることなく、認証プローブ状態J20から既認証状態J22に移行する。尚、既認証状態J22以外の認証状態J20,21を未認証状態ともいう。
【0045】
認証状態管理モジュール115は、認証プローブ状態や、認証アプリケーション102によって認証処理が行われる場合にその認証状態を検出し、検出した認証状態を示す認証状態情報を送受信ルーチン114に引き渡す。
【0046】
送受信ルーチン114は、送信するデータにプロトコルに応じたヘッダ等を付加したり、デバイスドライバ112が受信したデータからヘッダを取り除いたりする送信制御を行う。また、送受信ルーチン114は、認証アプリケーション102から送られたデータ(送信データ)をドライバインタフェース113を介してデバイスドライバ112に送ったり、認証状態管理モジュール115に認証状態を問い合わせ、応答として認証状態管理モジュール115から送られた認証状態情報によって示される認証状態に応じて、上位アプリケーションやプロトコルスタック111から送られたデータ(送信データ)を送信可能か否かを判断したりする送信制御を行う。尚、送受信ルーチン114はプロトコルスタック111と密接な関係にあり、プロトコルスタック111の一部とするように構成しても良い。
【0047】
また、送受信ルーチン114は、認証状態管理モジュール115に認証状態を問い合わせてからの経過時間を計測し、当該経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができない場合、認証状態が既認証状態であるものとして、送信データの送信制御を行う。
【0048】
尚、この所定時間は、ユーザにより設定され、例えばHDD18に記憶される。図6は、ユーザが所定時間を設定するための表示部14の表示画面を例示する図である。ユーザは操作部15を介して、図6(a)に示される表示画面でユーザID及びパスワードを入力した後、図6(b)に示される表示画面で上述の所定時間として所望の時間を入力することができる。通信装置10のCPU11は、図6(a)〜(b)の示すように表示画面を遷移させ、所定時間の設定値が入力されると、当該設定値を例えばHDD18に記憶させる。
【0049】
通信装置10では、以上のように、OSカーネル110において送受信ルーチン114及び認証状態管理モジュール115を構成することで、認証状態を一元的に管理し、認証状態に応じて、上位アプリケーション101やプロトコルスタック111から送られるデータの送信を制御する。
【0050】
(2)動作
次に、本実施の形態にかかる通信装置10の動作について説明する。図7は、通信装置10の起動時の動作シーケンスを認証アプリケーション102の機能に関連する処理の手順を中心に示すフローチャートである。また、以降の説明及び図面においては、説明を簡単にするため、CPU11が図3に示したソフトウェアを実行することによって行う処理は、そのソフトウェアが行う動作であるとして説明することにする。
【0051】
通信装置10においては、電源が投入されると、まずOSカーネル110が自動的に起動する。そしてまず、OSカーネル110は、通信装置10が備える通信I/F16を検出する(ステップS1)。ここで、OSカーネル110は、通信I/F16と直接の通信相手となる装置(ここではアクセスポイント20)との間で物理的な接続が保たれているか否かを示す接続情報を取得する。この接続情報は、有線通信であれば、ケーブルが接続されているか否かを示し、無線通信であれば、通信相手から所定レベル以上の無線信号を受信できているか否かを示すものである。この接続情報は、通信I/F16が検出できるため、デバイスドライバ112が通信I/F16の制御動作の一環として通信I/F16から取得できる。また、OSカーネル110は、HDD18に記憶された認証要否情報を参照して、認証が必要であると判断した場合、検出した通信I/F16の種類に応じて、その通信I/F16によりアクセスポイント20との間でデータリンク層の通信経路を確立するために必要な認証処理を行うための認証アプリケーション102を起動する。
【0052】
また、OSカーネル110は、プロトコルスタック111の初期化を行う。この初期化は、プロトコルスタック111に、通信の実行に必要なIPアドレス等のアドレスを設定したり、アドレスの設定に必要なアプリケーションを起動し、DHCP(Dynamic Host Configuration Protocol)サーバ等からアドレスを取得させてプロトコルスタック111に設定させたりする処理を含む。また、OSカーネル110は、上位アプリケーション101の起動を行う。起動された上位アプリケーション101は、必要に応じてプロトコルスタック111に通信を要求し、データを送る。
【0053】
一方、起動された認証アプリケーション102は、認証状態が既認証状態ではないとき(ステップS2:NO)、認証状態を認証中状態に移行させ(ステップS3)、デバイスドライバ112にアクセスポイント20との間で認証通信を実行させる(ステップS4)。この認証通信では、認証アプリケーション102は、図2に示したように、アクセスポイント20に対して認証情報を送信する。そして、認証アプリケーション102は、アクセスポイント20から認証の成功を示す認証結果を受け取ると(ステップS5:YES)、認証状態を既認証状態に移行させる(ステップS6)。すると、通信装置10は、直接の通信相手となるアクセスポイント20を介して、ネットワークに接続されている任意の相手と通信可能となる。ステップS5の判断結果が否定的である場合には、ステップ4で認証通信が続行される。
【0054】
一方、認証状態管理モジュール115は、送受信ルーチン114から認証状態の問い合わせがあると、検出した認証状態を示す認証状態情報を送受信ルーチン114に返す。送受信ルーチン114は、認証状態の問い合わせを定期的に行う。
【0055】
次に、送受信ルーチン114によって行われる送信制御について説明する。図8は、CPU11が送受信ルーチン114を実行することにより行う処理の手順を示すフローチャートである。通信装置10の電源が投入されると、所要の初期処理の終了後、送受信ルーチン114を実行することにより、図8のフローチャートに示す処理を開始する。
【0056】
送受信ルーチン114は、認証状態管理モジュール115に対して認証状態情報の問い合わせを定期的に行うと共に、認証状態情報の問い合わせを開始してからの経過時間を計測する。そして、送受信ルーチン114は、上位アプリケーション101や認証アプリケーション102から送られてくる送信データを待機する。そして、送信データがある場合(ステップS10:YES)、送受信ルーチン114は、その送信データが、認証アプリケーション102によって認証処理が行われる際に送信される上述の認証情報であるか否かを判断する(ステップS11)。
【0057】
認証情報であるか否かは、例えば上述したイーサネット(登録商標)タイプにより判断することができる。認証情報に含まれるイーサネット(登録商標)タイプには「X8888」がセットされているが、未認証状態時に上位アプリケーション101やプロトコルスタック111から送られてくるデータのイーサネット(登録商標)タイプには「X8888」がセットされていない。このため、送受信ルーチン114は、イーサネット(登録商標)タイプにセットされた値により、送信データが認証情報であるか否かを判断する。
【0058】
送信データが認証情報である場合(ステップS11:YES)、当該送信データの送信は認証処理に必要であるため、送受信ルーチン114は、ドライバインタフェース113を介してデバイスドライバ112に当該送信データを引き渡す。デバイスドライバ112は、引き渡されたデータを通信I/F16を介して送信する(ステップS14)。ここでの送信相手はアクセスポイント20である。
【0059】
送信データが認証情報でない場合(ステップS11:NO)、当該送信データは上位アプリケーション101やプロトコルスタック111から送られたデータであるため、次いで、送受信ルーチン114は、認証状態管理モジュール115から応答として受け取った認証状態情報によって示される認証状態を判断する(ステップS12)。認証状態が既認証状態である場合(ステップS12:YES)、データリンク層以下の通信経路が確立されているため、送受信ルーチン114は、ドライバインタフェース113を介してデバイスドライバ112に当該送信データを引き渡す。デバイスドライバ112は、引き渡されたデータを通信I/F16を介して送信する(ステップS14)。ここでの送信相手は外部装置40である。
【0060】
一方、認証状態が既認証状態以外(未認証状態)である場合(ステップS12:NO)、次いで、送受信ルーチン114は、認証状態情報の問い合わせを開始してから計測している経過時間が、HDDにその設定値が記憶されている所定時間に達したか否かを判断する(ステップS13)。当該判断結果が肯定的である場合、即ち、認証状態情報の問い合わせを開始してからの経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができなかった場合、タイムアウトしたとして、ステップS14に進む。即ち、この場合、送受信ルーチン114は、認証状態は既認証状態であるとする。なぜなら、認証状態情報の問い合わせを開始してからの経過時間が所定時間に達しても既認証状態を示す認証状態情報を受け取ることができない場合とは、例えば、OSカーネル110が参照した認証要否情報が、認証の必要がないことを示しており、その結果、認証アプリケーション102が起動されず認証処理が行われない場合である。このような場合には、認証処理が行われることなくデータリンク層以下の通信経路が確立されるため、上位アプリケーション101やプロトコルスタック111から送られてくる送信データを送信しても問題はないからである。このため、この場合、ステップS14に進み、送受信ルーチン114は、上位アプリケーション101やプロトコルスタック111から送られてくる送信データを、ドライバインタフェース113を介してデバイスドライバ112に引き渡す。
【0061】
尚、認証状態は既認証状態以外であり且つタイムアウトが発生していない場合、ステップS13の判断結果が否定的となり、送受信ルーチン114は、上位アプリケーション101やプロトコルスタック111から送られてくる送信データを全て破棄する(ステップS15)。
【0062】
以上のような構成により、認証アプリケーション102による認証処理が成功している状態では、通信装置10におけるデータリンク層より上位の階層のプロトコルを用いた通信の実行を許可する。認証アプリケーション102による認証処理が成功していない状態では、通信装置10におけるデータリンク層より上位の階層から送られたデータを破棄することにより、データリンク層より上位の階層のプロトコルを用いた通信の実行を禁止する。
【0063】
従って、認証処理が成功していない状態でプロトコルスタック111がアドレス自動取得処理のために初期化作業を開始し、アドレスが取得できずタイムアウトとなり、再びリトライ処理によりアドレス自動取得処理が繰り返されるというような不具合を回避することができ、通信プロトコルの動作を安定させることができる。
【0064】
また、通信の暗号化を想定していたにも関わらず、暗号化のための鍵が通信装置10とアクセスポイント20との間で共有される前にプロトコルスタック111がデータの送信を開始し、外部に平文が送出されてしまうような事態を防止し、セキュリティを向上させることができる。
【0065】
また、認証の必要がない時や認証後にはこのような送信制御が不要なため、送受信ルーチン114は、認証アプリケーション102によって行われる認証処理の完了と共に所定時間のタイムアウトによって、データ送信禁止を解除する。このようなデータ送信禁止の解除を行うことにより、データ送信を不必要に禁止することなく、データ送信を円滑に行うことができる。また、データ送信禁止の解除を送受信ルーチン114が行うことにより、認証アプリケーション102による認証処理を行うことが必要な場合に故意に又は誤ってデータ送信禁止の解除が行われることを防止することができる。このため、セキュリティを低下することなく、データ送信を円滑に行うことができる。
【0066】
尚、例えば、上位アプリケーション101やプロトコルスタック111が認証状態を管理したり、認証状態に応じて送信制御を行ったりする機能を実装する構成も考えられるが、この場合、これらの任意の実装に任せるのはリスクが高い。その上、新規のアプリケーションを追加する場合にも同じような実装が必要であり、全てのアプリケーションにおいて上記の機能を実現させることは困難であることが想定される。このため、通信I/F16にデータを引き渡すデバイスドライバ112を含むOSカーネル110に送受信ルーチン114及び認証状態管理モジュール115を備え、ここでこの認証状態管理モジュール115が認証状態を一元的に管理し、送受信ルーチン114が認証状態に応じてデータの送信を制御する。即ち、通信I/F16によるデータ通信を行うデバイスドライバ112に共通の管理機構であるOSカーネル110において送受信ルーチン114及び認証状態管理モジュール115を備えることで、通信I/F16の種類に関係なく、認証状態に応じた送信制御を行うことが可能になる。この結果、セキュリティを低下させることなく、安定した通信を行うことが容易に実現可能になる。従って、上位アプリケーションやプロトコルスタックの実装に依存することなく、通信装置10におけるデータリンク層より上位の階層から送られたデータの未認証状態時の送信を確実に抑止することができる。
【0067】
また、以上のような認証状態管理モジュール115及び送受信ルーチン114を、認証アプリケーション102やデバイスドライバ112などと組み合わせることで、通信装置10がネットワークに接続する際、認証通信以外が許されない時に、データリンク層より上位の階層のプロトコルを用いた通信を行うことによる通信経路上の機器動作による不具合やセキュリティ上の問題がその他の機構に依存することなく、フレキシブルに解決可能となる。即ち、実装の柔軟性を高めることができる。
【0068】
また、認証状態管理モジュール115及び送受信ルーチン114を各インタフェースデバイスで使う場合に共通の方法で上記各機能を提供できるように実装することにより、認証方法やデバイスの差を意識することなく、認証通信以外が許されない時に、上位アプリケーション101やプロトコルスタック111から不要なデータを送信してしまうのを防ぐことができる。
【0069】
[変形例]
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
【0070】
<変形例1>
上述の実施の形態においては、CPU11が実行する各種プログラムをROM12に記憶させるように構成した。しかし、当該プログラムを、HDD18に記憶させるようにしても良いし、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記憶して提供するように構成してもよい。また、当該各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【0071】
<変形例2>
上述の実施の形態において、送受信ルーチン114が認証状態管理モジュール115に認証状態情報を問い合わせるのではなく、認証状態管理モジュール115が認証状態の遷移を検出したとき能動的に送受信ルーチン114に通知するようにしても良い。このような構成によれば、送受信ルーチン114における処理負荷を軽減することができる。
【0072】
<変形例3>
上述の実施の形態においては、OSカーネル110が起動時に認証要否情報を参照して認証の要否を判断したが、送受信ルーチン114が認証要否情報を参照して認証の要否を判断し、認証の必要がないと判断した場合には、図8のステップS10の後、ステップS11〜S13を経ずに、ステップS14を行うようにしても良い。
【0073】
<変形例4>
上述の実施の形態においては、認証状態を認証アプリケーション102から認証状態管理モジュール115に通知させるようにしても良いし、デバイスドライバ112が通信I/F16を介して送受信するデータ、特に、認証アプリケーション102が上述の認証通信により送受信するデータを監視してその内容から認証状態を判断し、これを認証状態管理モジュール115が取得するようにしても良い。また、認証状態を変更するのは、認証アプリケーション102ではなく、認証状態管理モジュール115が認証処理の進行状況を監視することにより行うようにしても良い。又は、認証処理の進行状況又はタイムアウトによって認証状態を変更する認証状態変更モジュール(図示せず)をOSカーネル110に別途設けるようにしても良い。
【0074】
<変形例5>
上述の実施の形態の送受信ルーチン114においては、図8のステップS11,S12の順に処理を行うようにしたが、S12,S11の順に処理を行うようにしても良い。
【図面の簡単な説明】
【0075】
【図1】本実施の形態にかかる通信装置のハードウェア構成を示すブロック図である。
【図2】認証処理の内容について説明するための図である。
【図3】通信装置10のソフトウェア構成を示す図である。
【図4】図3に示したソフトウェアとOSI参照モデルとの関係について説明するための図である。
【図5】認証処理による又はタイムアウトによる認証状態の状態遷移を概念的に示した図である。
【図6】ユーザが所定時間を設定するための表示部14の表示画面を例示する図である。
【図7】通信装置10の起動時の動作シーケンスを認証アプリケーション102の機能に関連する処理の手順を中心に示すフローチャートである。
【図8】CPU11が送受信ルーチン114を実行することにより行う処理の手順を示すフローチャートである。
【符号の説明】
【0076】
10 通信装置
11 CPU
12 ROM
13 RAM
14 表示部
15 操作部
16 通信I/F
17 システムバス
18 HDD
20 アクセスポイント
30 認証サーバ
40 外部装置
50 認証局
101 上位アプリケーション
102 認証アプリケーション
110 OSカーネル
111 プロトコルスタック
112 デバイスドライバ
113 ドライバインタフェース
114 送受信ルーチン
115 認証状態管理モジュール

【特許請求の範囲】
【請求項1】
ネットワークを介して外部装置と通信可能であり、実現可能な機能が予め組み込まれた通信装置であって、
ドライバを有する物理インタフェースが前記ネットワークへ接続してデータ転送を行う許可を得るための認証処理を行う認証手段と、
前記認証手段による認証処理の状態を示す認証状態情報を検出する認証状態手段と、
前記認証状態手段が検出した前記認証状態情報を取得し、当該認証状態情報によって示される前記認証処理の状態に応じて、データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから送られるデータの前記外部装置への送信を制御する送信制御手段とを備える
ことを特徴とする通信装置。
【請求項2】
前記送信制御手段は、前記認証処理が成功していない状態が前記認証状態情報によって示される場合、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを破棄する
ことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記送信制御手段は、前記認証処理が成功している状態が前記認証状態情報によって示される場合、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記物理インタフェースのドライバに送り、
前記ドライバは、前記データを前記外部装置に送信する
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記認証手段は、前記許可を得るための認証情報を第1外部装置に宛てて送り、
前記送信制御手段は、前記外部装置又は前記第1外部装置に宛てて送られたデータが前記認証情報である否かを判断し、判断結果が肯定的である場合、当該認証情報を前記ドライバに送り、
前記ドライバは、前記データを前記第1外部装置に送信する
ことを特徴とする請求項1乃至3のいずれか一項に記載の通信装置。
【請求項5】
前記送信制御手段は、所定時間が経過しても前記認証処理が成功している状態を示す前記認証状態情報を取得できない場合、前記認証処理が成功している状態と同様であるとして、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記ドライバに送る
ことを特徴とする請求項1乃至4のいずれか一項に記載の通信装置。
【請求項6】
前記所定時間を設定する設定入力を受け付ける入力受付手段を備える
ことを特徴とする請求項5に記載の通信装置。
【請求項7】
前記送信制御手段は、前記許可が必要ない場合、前記認証処理の状態に関わらず、前記データリンク層より上位の階層のプロトコルを用いた通信を行うためのモジュールから前記外部装置に宛てて送られたデータを前記ドライバに送る
ことを特徴とする請求項1乃至6のいずれか一項に記載の通信装置。
【請求項8】
前記許可の要否を設定する設定入力を受け付ける入力受付手段を備える
ことを特徴とする請求項7に記載の通信装置。
【請求項9】
前記ドライバを含み、当該ドライバの動作を制御する管理制御手段を備え、
前記管理制御手段が、前記通信制御手段を含み、当該通信制御手段の動作を制御する
ことを特徴とする請求項1乃至8のいずれか一項に記載の通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−65623(P2009−65623A)
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願番号】特願2007−234019(P2007−234019)
【出願日】平成19年9月10日(2007.9.10)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】