(57)【要約】【課題】安全性の高いネットワーク認証の方法を提供する。【解決手段】  送信側のクライアント１１ａと受信側のクライアント１１ｃは同一のパスワードを保有する。クライアント１１ａはパスワードに基づいて生成した認証コードに基づくスロット間隔でクライアント１１ｃに複数の認証パケットを送信する。クライアント１１ｃは各認証パケットの到着時刻に対応するスロット間隔を計測し、さらに同一のパスワードに基づいて認証コードを生成する。クライアント１１ｃは計測したスロット間隔と生成した認証コードとを比較する。クライアント１１ｃは両者が一致したときに認証が成功したと判断し、それまで通過を停止していたパケットをインターネット層より上位に渡す。【選択図】図６
2012014278.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された第１のコンピュータから前記ネットワークに接続された第２のコンピュータにアクセスする方法であって、
前記第１のコンピュータが第１の認証コードを生成するステップと、
前記第１のコンピュータが前記第１の認証コードから生成した送信タイミングに相当する複数の送信タイムスロットで前記第２のコンピュータに複数の認証パケットを送信するステップと、
前記第２のコンピュータが各認証パケットの到着時刻に対応する複数の受信タイムスロットのスロット間隔を計測するステップと、
前記第２のコンピュータが前記第１の認証コードと同一の第２の認証コードを生成するステップと、
前記計測したスロット間隔と前記第２の認証コードに基づいて前記第２のコンピュータが前記第１のコンピュータのアクセスを許可するステップと
を有するアクセス方法。
【請求項２】
前記第１の認証コードが、前記第１のコンピュータが保有する第１の時刻情報と第１のパスワードで構成されたビット列から生成され、前記第２の認証コードが前記第２のコンピュータが保有し前記第１の時刻情報に同期した第２の時刻情報と前記第１のパスワードと同一の第２のパスワードで構成されたビット列から生成されている請求項１に記載のアクセス方法。
【請求項３】
各送信タイムスロットが前記認証コードをパルス位置変調して生成したパルス位置変調コードに割り当てたタイムスロットで形成されている請求項１または請求項２に記載のアクセス方法。
【請求項４】
前記送信タイムスロットが前記認証コードのビット列を所定のビット数で区切ったコードに割り当てたタイムスロットで形成されている請求項１または請求項２に記載のアクセス方法。
【請求項５】
前記認証パケットを送信するステップが前記第１のコンピュータのアプリケーション・プログラムが前記第２のコンピュータにアクセスを開始したことに応答して実行され、
前記アプリケーション・プログラムのアクセス要求に基づいて作成されたデータ・パケットを所定の期間前記第１のコンピュータがバッファに蓄積するステップを有する請求項１から請求項４のいずれかに記載のアクセス方法。
【請求項６】
前記認証パケットを送信するステップが前記複数の認証パケットを送信する前にプリアンブル・パケットを送信するステップを含む請求項１から請求項５のいずれかに記載のアクセス方法。
【請求項７】
前記第２のコンピュータが前記プリアンブル・パケットのスロット時間を計測するステップと、
前記第２のコンピュータが前記プリアンブル・パケットのスロット時間に基づいて前記受信タイムスロットのスロット時間を設定するステップと
を有する請求項６に記載のアクセス方法。
【請求項８】
前記第１のコンピュータが新たな認証コードを生成して、前回前記複数の認証パケットを送信したときに使用したタイムスロットのスロット時間よりも長いスロット時間のタイムスロットを使用して前記第２のコンピュータに複数の認証パケットを送信するステップを有する請求項１から請求項７のいずれかに記載のアクセス方法。
【請求項９】
前記第２のコンピュータが前記第１のコンピュータにアクセスを許可したことを通知するステップを有する請求項１から請求項８のいずれかに記載のアクセス方法。
【請求項１０】
前記認証パケットを送信するステップが、前記第１のコンピュータのユーザ識別子から生成した送信タイムスロットで複数の識別子パケットを送信するステップを含む請求項１から請求項９のいずれかに記載のアクセス方法。
【請求項１１】
ネットワークを介して接続されたリモート・コンピュータからアクセスが可能なコンピュータであって、
第１の認証コードを生成する認証コード生成部と、
前記リモート・コンピュータが保有する前記第１の認証コードと同一の第２の認証コードから生成した送信タイムスロットで前記リモート・コンピュータが送信した複数の認証パケットの到着時刻に対応する受信タイムスロットのスロット間隔を計測する受信間隔測定部と、
前記計測したスロット間隔と前記第１の認証コードを検証する認証コード検証部と、
前記認証コード検証部からの認証成功の通知に基づいて前記リモート・コンピュータから受け取ったデータ・パケットを上位層に送る受信パケット制御部と
を有するコンピュータ。
【請求項１２】
前記上位層がインターネット層である請求項１１に記載のコンピュータ。
【請求項１３】
前記受信パケット制御部は、所定の時間の間前記データ・パケットを受け取らないときに前記インターネット層への前記データ・パケットの通過を阻止する請求項１２に記載のコンピュータ。
【請求項１４】
前記受信パケット制御部は、認証が成功した認証パケットに含まれるＩＰアドレスを含むデータ・パケットだけを前記インターネット層に送る１２または請求項１３に記載のコンピュータ。
【請求項１５】
前記認証パケットがＥｃｈｏ要求をするＩＣＭＰメッセージを含み、前記受信パケット制御部が前記認証パケットを前記インターネット層に送ったときにＩＣＭＰモジュールが前記リモート・コンピュータにＥｃｈｏ返答をするＩＣＭＰメッセージを含むＩＰパケットを送る請求項１４に記載のコンピュータ。
【請求項１６】
ネットワークを介して接続されたリモート・コンピュータにアクセスが可能なコンピュータであって、
前記リモート・コンピュータへのアクセス開始に応答して第１の認証コードを生成する認証コード生成部と、
前記第１の認証コードから生成した複数の送信タイムスロットで複数の認証パケットを送信する認証パケット送信部とを有し、
前記リモート・コンピュータは前記コンピュータが送信した複数の認証パケットの到着時刻に対応する受信タイムスロットのスロット間隔を計測し、前記リモート・コンピュータが生成した前記第１の認証コードと同一の第２の認証コードと前記受信タイムスロットのスロット間隔を検証して前記コンピュータを認証することが可能であるコンピュータ。
【請求項１７】
前記認証パケット送信部は、各送信タイムスロットで複数の認証パケットを送信する請求項１６に記載のコンピュータ。
【請求項１８】
アプリケーション・プログラムが送信するデータ・パケットを所定の期間バッファに保存し、前記複数の認証パケットを送信した後の所定のタイミングで前記バッファに蓄積したデータを前記リモート・コンピュータに送信する送信パケット制御部を有する請求項１６または請求項１７に記載のコンピュータ。
【請求項１９】
前記所定のタイミングが前記リモート・コンピュータから認証成功を示す通知を受け取ったタイミングである請求項１８に記載のコンピュータ。
【請求項２０】
前記所定のタイミングが前記複数の認証パケットを送信してから所定の時間が経過したタイミングである請求項１８に記載のコンピュータ。
【請求項２１】
前記送信パケット制御部は、インターネット層の下層に配置されている請求項１８から請求項２０のいずれかに記載のコンピュータ。
【請求項２２】
ネットワークを介して接続されたリモート・コンピュータからアクセスを受けるコンピュータに、
第１の認証コードを生成するステップと、
前記第１の認証コードと同一の第２の認証コードから生成した時間間隔で前記リモート・コンピュータが送信した複数の認証パケットを受信するステップと、
各認証パケットの到着時刻の時間間隔を計測するステップと、
前記計測した時間間隔と前記第１の認証コードとを検証して前記リモート・コンピュータのアクセスを許可するステップと
を有する処理を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたコンピュータのセキュリティを確保する技術に関する。
【背景技術】
【０００２】
ネットワークに接続されたコンピュータは、コンピュータ・ウイルスまたはスパイウエアといった悪意のあるソフトウエア（マルウエア）からの攻撃に晒されている。通常はウイルス・プログラムを実行しなければ被害を受けることはないが、オペレーティング・システム（ＯＳ）やアプリケーションに脆弱性がある場合は、特定のＷｅｂページにアクセスしたり、受け取った文書ファイルを開いたり等をするだけでコンピュータがマルウエアに支配されることがある。
【０００３】
たとえばネットワークを通じてウイルス・コードを含むデータを送り込んでバッファ領域をオーバフローさせ、正規のリターン・アドレスをウイルス・コードのリターン・アドレスに書き換えるバッファ・オーバーフローという攻撃方法が知られている。この場合、コンピュータはネットワークに接続しているだけでウイルスに支配されてしまう。従来から、ＳＳＬ（Secure Sockets Layer）でセキュアな通信経路を形成してパスワードとユーザＩＤを転送して行うネットワーク認証や、パケット・フィルタリングまたはアプリケーション層ゲートウエイなどの方式を採用したファイア・ウオールによりアクセス制限をすることでマルウエアの進入を防止する方法がある。
【０００４】
特許文献１は、妨害行為のために送信元アドレスを書き換えた暗号化データを大量に受け取った場合に、復号しないでも正規のパケットを受け取ったか否かを判定する技術を開示する。同文献の発明では、送信装置では送信対象データを符号化して得られる符号化データの送り出し方向に、受信装置だけに正当性を証明するための正当性証明情報を未符号化状態で付加した後にネットワークを介して送信する。そして、受信装置では当該ネットワークを介して受信した符号化データに付加されている正当性証明情報の正当性が維持されているか否かを判定し、当該維持されている判定結果が得られた場合にのみ符号化データの復号化を行うようにする。
【０００５】
特許文献２は、時刻情報を用いてアクセス要求者の認証を行う技術を開示する。同文献の発明では、アクセス要求端末の時刻情報取得部は、ＮＴＰサーバの送受信部を介して時刻情報取得部がクロックソースから取得した時刻情報に対してデジタル署名し、認証局システムが発行した公開鍵証明書とともにアクセス認証サーバに送信する。アクセス認証サーバは、デジタル署名された時刻情報を公開鍵で復号し、復号した時刻情報とＮＴＰサーバから取得した時刻情報とを比較し、比較結果が所定の認証パラメータで示される基準時間の範囲内であれば、アクセス要求者によるアクセス要求端末からのアクセスを許可し、範囲外であればアクセスを許可しない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１０４４３９号公報
【特許文献２】特開２００４−１３３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ネットワークを経由した外部からの攻撃は、受信側のＯＳやミドルウェアを含む何らかのソフトウエアの脆弱性を予め知った上で、その弱点をついてリモートからアクセスすることで行われる。 コンピュータ同士が通信するためのネットワーク・アーキテクチャは７層からなるＯＳＩ参照モデルを基本とする階層構造になっている。ＯＳＩ参照モデルでは、送信側と受信側の対応する各層のコンポーネント同士がデータをやり取りして交渉しながら通信をする。受信側では物理層で受け取ったパケットが順番に上位層に渡され、最終的にアプリケーション層同士でサービスのやり取りを行うようになっている。
【０００８】
各階層は複数のプロトコルで構成されているため、受信側の各層では受け取ったパケットのペイロードを解析して、上位層のいずれのプロトコルに渡すかを解析することが本質的に必要となる。既存のユーザ認証方法およびファイア・ウオールでもパケットは各層でペイロードの解析が行われ最終的にアプリケーション層でユーザ・データが処理される。ペイロードの解析のためには受信したパケットをメイン・メモリに記憶して各層の解析プログラムが読み取る必要があり、先のバッファ・オーバーフローのようなさまざまな方法での攻撃の機会を与える可能性がでてくる。
【０００９】
通常は、アプリケーション層で動作するプログラムに脆弱性がある場合に最も脅威が増大するが、アプリケーション層より下層においても受け取った悪意のパケットをメイン・メモリに記憶して解析する段階で被害を受ける可能性がある。これまでの認証方法では、悪意のあるユーザから受け取ったパケットはアプリケーション層まで届く間に必ず何層かを通過することになり、潜在的な脅威から解放されることはない。この問題の本質的な解決策は、できるだけ下の階層においてペイロードを解読しないで認証し、認証したユーザから受け取ったパケットだけを上位層に送るようにすることである。
【００１０】
そこで本発明の目的は、安全性の高いネットワーク認証に基づくアクセス方法を提供することにある。さらに本発明の目的は、ネットワークに接続しているだけで受ける攻撃に対抗できるネットワーク・セキュリティを確立するアクセス方法を提供することにある。さらに本発明の目的は、トランスペアレントなネットワーク認証に基づくアクセス方法を提供することにある。さらに本発明の目的は、ＯＳに依存しないでネットワーク・セキュリティを確立するアクセス方法を提供することにある。さらに本発明の目的は、そのようなアクセス方法を実現するコンピュータ・プログラムおよびコンピュータを提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、常時ネットワークに接続されているコンピュータであって、ネットワークから受け取ったプログラムを実行したり、ネットワークに自らアクセスしたりしない状態で受ける攻撃に対して特に有効なネットワーク・セキュリティに基づくアクセス方法を提供する。本発明の基本的な原理は、受け取ったすべてのパケットを送信者の信頼性が確認できるまでＯＳＩ参照モデルの下層で阻止しておき、パケットの内容を解読することなく送信者の信頼性を確認した後に上位層に渡す点にある。
【００１２】
具体的には、送信側のコンピュータと受信側のコンピュータがそれぞれ共有鍵に相当する認証コードを保有しており、送信側のコンピュータが認証コードを複数の認証パケットの送信タイミングに組み込んで送信し、受信側のコンピュータが認証パケットの受信タイミングから認証データを復号する点にある。したがって、受信側のコンピュータは認証パケットの受信タイミングを計測するだけで送信側の信頼性を検証できるため、認証パケットの解読に伴う攻撃の危険から保護される。受信側のコンピュータは、サーバ、ルータまたはサーバとして動作するクライアントとすることができる。
【００１３】
送信側のコンピュータと受信側のコンピュータは同一の認証コードを生成する。送信側のコンピュータは、アプリケーションが認証を必要とする第２のコンピュータにアクセスを開始したタイミングに基づいて認証コードを生成することができる。そしてアプリケーション・プログラムのアクセス要求に基づいて作成されたデータ・パケットを認証が完了するまでの所定の期間送信側のコンピュータのバッファに蓄積しておけば、事前に本発明にかかる認証を行っても、送信側のコンピュータのアプリケーションに影響を与えることなく、受信側のコンピュータに対するアクセスをトランスペアレントに行うことができるようになる。
【００１４】
ここで、送信側のコンピュータは認証パケットの送信タイミングを決定するために送信タイムスロットを生成し、受信側のコンピュータは認証パケットの受信タイミングを決定するために受信タイムスロットを生成する。タイムスロットとは、認証パケットの存否を画定するために時間軸上に連続的に配置した時間間隔（スロット時間）をいう。送信側のコンピュータは、認証コードから生成した送信タイミングを所定の送信タイムスロット上の認証パケットの有無で表現して受信側のコンピュータに複数の認証パケットを送信する。受信側のコンピュータは各認証パケットの内容を解読することなくそれぞれの認証パケットの到着時刻に対応する受信タイムスロットのスロット間隔を計測する。受信タイムスロットのスロット間隔は、認証パケットがそれぞれ所定値以内の転送時間で到着すれば、送信側のコンピュータが生成した送信タイムスロットのスロット間隔に一致する。
【００１５】
受信側のコンピュータは計測したスロット間隔と自らが生成した認証コードを検証して、送信側のコンピュータのアクセスを許可するか否かを決定する。検証方法は、受信タイムスロットのスロット間隔から認証コードを復号して取得した認証コードと自ら生成した認証コードを比較する方法でもよいし、受信側のコンピュータが生成した認証コードから生成したタイムスロットと受信タイムスロットを比較する方法でもよい。送信側のコンピュータと受信側のコンピュータの時刻を所定の誤差の範囲で同期させておき、認証コードを送信側のコンピュータと受信側のコンピュータがそれぞれ保有する時刻情報とパスワードを含むビット列からそれぞれ生成すると、認証コードは時刻情報の変化に基づいて送信の都度変化するため安全性を向上させることができる。
【００１６】
特に、認証が完了するまでの時間は認証パケットの数または認証コードのビット数に依存し、認証コードのビット数はセキュリティの強度に関連するが、認証コードが時々刻々と変化する場合は認証コードのビット数を少なくしても安全を維持することができるので本発明の認証方法に適している。各送信タイムスロットは、認証コードをパルス位置変調して生成したパルス位置変調コードに割り当てたタイムスロットで形成することができる。パルス位置変調コードは、各シンボル時間においていずれかの位置に１ビット存在するので、受信側のコンピュータは受信した認証パケットに途中で脱落があったことを容易に検出することができる。
【００１７】
また各タイムロットは、認証コードのビット列を所定のビット数で区切ったコードに割り当てたタイムスロットで形成することができる。この方法は、ビット転送効率に優れている。認証コードは、受信側のコンピュータが先頭タイムスロットの基準時刻を設定できるように先頭ビットを１として生成することもできる。また、複数の認証パケットの前にプリアンブル・パケットを送信すると、認証コードの先頭ビットが０であっても受信側の先頭タイムスロットの基準時刻を設定することができるようになる。
【００１８】
プリアンブル・パケットを送信する場合は、プリアンブル・パケットを送るタイムスロットのスロット時間と認証パケットを送るタイムスロットのスロット時間を関連付けておくことができる。この場合、受信側のコンピュータはあらかじめ受信タイムスロットを特定するためのスロット時間を固定しておかなくても、プリアンブル・パケットのスロット時間を計測してから認証パケットの受信タイムスロットを認識するためのスロット時間をダイナミックに設定できるようになる。
【００１９】
スロット時間は短い方が認証時間も短くなるので望ましいが、認証パケットの転送時間の揺らぎで認証の失敗が発生する確率が高まる。最適なスロット時間を探索するには、プリアンブル・パケットのスロット時間と認証パケットのスロット時間の関連付けを利用することができる。最初に短いスロット時間で認証パケットを送信し、認証が成功しないと判断したときに、送信側のコンピュータが新たな認証コードに基づいて、前回送信したときに使用したタイムスロットのスロット時間よりも長いスロット時間のタイムスロットで複数の認証パケットを送る。一旦最適なスロット時間を探索した同一のＩＰアドレスのコンピュータ同士では、次回以降そのスロット時間を固定して使用するようにしてもよい。
【００２０】
送信側のコンピュータでデータ・パケットを所定時間の間バッファに蓄積している場合は、認証パケットを送ってから所定の時間が経過した後に認証がされたものと想定してデータ・パケットをネットワークに送信することができる。データ・パケットを送信したときに認証が終了していない場合は、受信側のコンピュータから返答がないことを認識したアプリケーション・プログラムが再度受信側のコンピュータにアクセスを開始し、それに応答して先に認証手続きを再開することになる。
【００２１】
あるいは、受信側のコンピュータが送信側のコンピュータにアクセスを許可したことを通知するようにすれば、送信側のコンピュータはそれに応じてユーザ・パケットをバッファからネットワークに送信することができる。このとき、認証パケットをＥｃｈｏ要求とＥｃｈｏ返答のＩＣＭＰパケットにしておけば、インターネット層のＩＣＭＰモジュールによる処理で受信側のコンピュータが認証成功の通知をすることができるので都合がよい。
【００２２】
受信側のコンピュータがサーバの場合は、複数のユーザにアクセスを許可する必要がある。しかし当該複数のユーザが共通のパスワードを保有することは好ましくない。この場合、受信側のコンピュータでは、送信側のコンピュータのユーザ識別子ごとに認証コードを生成することができる。そして、送信側のコンピュータが認証パケットの送信前にユーザ識別子から生成した送信タイムスロットで複数の識別子パケットを送信することで、受信側のコンピュータはパケットのペイロードを解読しないことで実現した本発明のセキュリティ・レベルを低下させないで、ユーザごとに異なる認証コードを共有しながら複数のユーザを認証することができる。
【００２３】
本発明は、受信側のアプリケーション層で受信タイムスロットのスロット間隔を計測することも可能であり、認証が成功する前にアプリケーション層にはいかなるパケットも送らないようにすることで安全性を高めることができる。この場合、アクセスを制御するゲートの位置は通信機能の階層のできるだけ下層に設けることが望ましい。最適には、ＯＳＩ参照モデルのインターネット層とデータリンク層の間に設けることが望ましい。また、送信側のコンピュータでは、トランスペアレントな認証をするためにバッファの位置をできるだけ下層に設けることが望ましく、最適には同様にＯＳＩ参照モデルのインターネット層とデータリンク層の間に設けることが望ましい。
【発明の効果】
【００２４】
本発明により、安全性の高いネットワーク認証に基づくアクセス方法を提供することができた。さらに本発明により、ネットワークに接続しているだけで受ける攻撃に対抗できるネットワーク・セキュリティを確立するアクセス方法を提供することができた。さらに本発明により、トランスペアレントなネットワーク認証に基づくアクセス方法を提供することができた。さらに本発明により、ＯＳに依存しないでネットワーク・セキュリティを確立するアクセス方法を提供することができた。さらに本発明により、そのようなアクセス方法を実現するコンピュータ・プログラムおよびコンピュータを提供することができた。
【図面の簡単な説明】
【００２５】
【図１】本実施の形態におけるネットワーク環境の一例を示す図である。
【図２】クライアントおよびサーバなどのコンピュータのハードウエアの構成を示す概略のブロック図である。
【図３】コンピュータに搭載される通信機能の階層構造を示す図である。
【図４】イーサネット（登録商標）・フレームのデータ構造を示す図である。
【図５】送信側の認証システムの機能ブロック図である。
【図６】受信側の認証システムの機能ブロック図である。
【図７】Ｅｃｈｏ要求パケットで構成された認証パケットのデータ構造を示す図である。
【図８】送信側の認証コード生成部と受信側の認証コード生成部による認証コードの生成方法を説明する図である。
【図９】認証パケット・シーケンスを利用した認証方法を説明する図である。
【図１０】認証手順を示すフローチャートである。
【図１１】認証パケット・シーケンスの転送方法を説明する図である。
【図１２】４値インターバル符号を用いた認証パケット・シーケンスの新たなデータ構造を示す図である。
【図１３】複数のユーザを認証する方法を説明する図である。
【発明を実施するための形態】
【００２６】
［ネットワーク環境］
図１は、本実施の形態におけるネットワーク環境の一例を示す図である。クライアント１１ａ、１１ｂはルータ１３を通じてインターネット１０に接続されている。クライアント１１ｃ、Ｗｅｂサーバ１５ｂ、プロキシ・サーバ１５ａ、ＮＴＰ（Network Time Protocol）サーバ１５ｄは直接インターネット１０に接続されている。イントラネットに接続されたデータ・ベース・サーバ１５ｃとクライアント１１ｄ、１１ｅはプロキシ・サーバ１５ａを通じてインターネット１０に接続されている。Ｗｅｂサーバ１５ｂは、この例ではあらかじめ承認したユーザのアクセスだけを許可するように構成されている。ＮＴＰサーバ１５ｄは、インターネット１０に接続されたコンピュータに標準時の時刻情報を提供する。
【００２７】
各クライアント１１ａ〜１１ｅはサーバとして動作して、他のクライアントからアクセスを受けてピア・ツー・ピアで通信することがある。また、各クライアント１１ａ〜１１ｅは、Ｗｅｂサーバ１５ｂにアクセスすることがある。各クライアント１１ａ〜１１ｅは通常サーバからサービスを受けるコンピュータとして動作するときは常時すべてのポートを閉じているが、他のクライアントにサービスを提供するコンピュータとして動作するときは所定のポートを常時開いておく必要がある。
【００２８】
ここに、クライアント１１ａ〜１１ｅがサーバとして動作するときにはセキュリティ上の問題が生じる。また、サーバ１５ｂは通常強固なファイア・ウオールや認証システムで保護されているが、一旦はすべてのユーザからのパケットを受け取ってから認証の処理をする必要があり、バッファ・オーバーフローなどの方法で攻撃を受ける可能性がある。本発明にかかる認証システムは、クライアント１１ａ〜１１ｅ、Ｗｅｂサーバ１５ｂ、プロキシ・サーバ１５ａ、ルータ１３またはデータ・ベース・サーバ１５ｃに実装することでネットワーク・セキュリティを確保する。
【００２９】
［コンピュータの構成］
図２は図１に示したクライアント１１ａ〜１１ｅ、Ｗｅｂサーバ１５ｂ、プロキシ・サーバ１５ａ、ルータ１３またはデータ・ベース・サーバ１５ｃなどの周知のコンピュータ１００のハードウエアの構成を示す概略のブロック図である。コンピュータ１００は、ＣＰＵ１０１、メイン・メモリ１０３、ディスク・ドライブ１０５、入力デバイス１０７、ＮＩＣ（Network Interface Card）１０９およびセキュアな記録領域を含む不揮発性メモリ（ＥＥＰＲＯＭ）１１１などで構成されている。ディスク・ドライブ１０５には、本実施形態にかかる認証システムを実現するプログラム、ネットワークの階層モジュールを含むＯＳおよび各種アプリケーション・プログラムなどのＣＰＵ１０１が実行するプログラムが格納されている。
【００３０】
ＮＩＣ１０９は、コンピュータ１００をネットワークに接続するためにＯＳＩ参照モデルのデータリンク層と物理層で動作するハードウエアである。なお、本発明の適用は、ネットワークに有線で接続するコンピュータに限定するものではなく、無線で接続するものであってもよい。ＥＥＰＲＯＭ１１１のセキュアな記録領域は本実施の形態で使用するパスワードやユーザＩＤを格納する。コンピュータ１００の構成は、認証を要求するコンピュータおよび認証するコンピュータのいずれにも適用できる。
【００３１】
［通信機能の階層構造］
図３は、コンピュータ１００に搭載される一般的な通信機能の階層構造を示す図である。図４は、イーサネット・フレームの一般的なデータ構造を示す図である。コンピュータ１００は送信側または受信側のいずれとして動作するときであってもその通信機能を、７層のＯＳＩ参照モデルとそれに対応する４層のＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）階層モデルで表現することができる。
【００３２】
ＴＣＰ／ＩＰプロトコル階層モデルの最上位層に位置するアプリケーション層２５１は、ＯＳＩ参照モデルのアプリケーション層、プレゼンテーション層、およびセッション層を包含する形で存在する。アプリケーション層２５１では、メールまたはファイル転送などのサービスの種類に応じてＨＴＴＰ、ＦＴＰおよびＳＭＴＰなどのプロトコルを規定したり、コード変換、および通信経路の確立または切断などの機能を実現したりする。
【００３３】
トランスポート層２５３はＯＳＩ参照モデルのトランスポート層に対応する。送信側のトランスポート層２５３は、はアプリケーション層２５１から受け取ったユーザ・データを受信側のアプリケーション層２５１のいずれのプロトコルに渡すかを認識してＴＣＰヘッダ１５３ａを作成する。さらにユーザ・データ１５１にＴＣＰヘッダ１５３ａを付加してＴＣＰパケット１５３を作成しインターネット層２５５に送る。ＴＣＰヘッダ１５３ａは、送信元ポート番号および宛先ポート番号を含む。
【００３４】
受信側のトランスポート層２５３は、インターネット層２５５から受け取ったＴＣＰパケット１５３について、ＴＣＰヘッダ１５３ａから宛先ポート番号を読み取った後にＴＣＰヘッダ１５３ａを削除して、アプリケーション層２５３の対応するサービスに渡す。トランスポート層２５３のプロトコルは、コネクション型のＴＣＰだけでなくコネクションレス型のＵＤＰ（User Datagram Protocol）を含んでいる。
【００３５】
インターネット層２５５は、ＯＳＩ参照モデルのネットワーク層に対応する。送信側のインターネット層２５５は、トランスポート層２５３から受け取ったＴＣＰパケット１５３にＩＰヘッダ１５５ａを付加してネットワーク・インターフェース層２５７に送る。ＩＰヘッダ１５５ａは、送信元ＩＰアドレス、宛先ＩＰアドレス、およびプロトコル番号を含む。プロトコル番号は上位層のプロトコルを示す番号で、ＩＣＭＰ（Internet Control Message Protocol）、ＴＣＰ、またはＵＤＰなどを特定する。
【００３６】
受信側のインターネット層２５５は、ネットワーク・インターフェース層２５７から受け取ったＩＰパケット１５５の宛先ＩＰアドレスが自らのアドレスであると判断した場合に、ＩＰヘッダ１５５ａを削除してＴＣＰパケット１５３をトランスポート２５３に送る。トランスポート層２５３とインターネット層２５５は、オペレーティング・システムで構成される。
【００３７】
ネットワーク・インターフェース層２５７は、ＯＳＩ参照モデルのデータリンク層と物理層を包含する形で存在する。送信側のネットワーク・インターフェース層２５７は、インターネット層２５５から受け取ったＩＰパケット１５５にイーサネット・ヘッダ１５７ａを付加して伝送媒体１５９を通じてインターネット１０に出力する。イーサネット・ヘッダ１５７ａは、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、およびタイプを含む。
【００３８】
タイプはＩＰｖ４、ＩＰｖ６、ＡＲＰなどのプロトコルに対応する番号であり、イーサネット・フレーム１５７が含んでいるイーサネット・ペイロードのプロトコルを規定する。受信側のネットワーク・インターフェース層２５７は、伝送媒体１５９から受け取ったイーサネット・フレーム１５７の宛先ＭＡＣアドレスが自らのアドレスであると判断した場合に、イーサネット・ヘッダ１５７ａを削除してＩＰパケット１５５をタイプで指示されたプロトコルのインターネット層２５５に送る。ネットワーク・インターフェース層２５７は、ＮＩＣ１０９とそれを制御するデバイス・ドライバで構成される。
【００３９】
［認証システム］
図５、図６は、コンピュータ１００に搭載される認証システムの構成を示す機能ブロック図である。図５は送信側の認証システム３０１を示し、図６は受信側の認証システム３０３を示す。コンピュータ１００がクライアントおよびサーバとして動作する場合は認証システム３０１、３０３の両方を実装することになるが、クライアントとしてだけ動作する場合は認証システム３０１だけを実装し、サーバとしてだけ動作する場合は認証システム３０３だけを実装することでもよい。認証システム３０１、３０３は図３に示した周知のＴＣＰ／ＩＰプロトコル階層またはＵＤＰ／ＩＰプロトコル階層を実現するＯＳおよびデバイス・ドライバと本実施の形態にかかる新規なプログラム・モジュールの協働により実現されている。
【００４０】
送信側の認証システム３０１は、時刻調整部３１１、パスワード記憶部３１３、認証コード生成部３１５、認証パケット送信部３１７および送信パケット制御部３１９を含んでいる。時刻調整部３１１は、ポート番号１３のサービスを提供するｄａｙｔｉｍｅプロトコルのアプリケーションで、定期的にＮＴＰサーバ１５ｄに時刻を問い合わせてコンピュータ１００の時刻を同期させる。パスワード記憶部３１３は、ＥＥＰＲＯＭ１１１のセキュアな記録領域に設けられており、ユーザが設定する個人認証パスワードおよび管理者が各ユーザに共通して設定する共有認証パスワードを格納する。
【００４１】
認証コード生成部３１５は認証パケット送信部３１７からの要求に基づいて、時刻調整部３１１から取得したコンピュータ１００が保有する補正された時刻情報と、パスワード記憶部３１３から取得した個人認証パスワードおよび共有認証パスワードから所定ビット数の暗号化した認証コードを生成する。認証パケット送信部３１７は、アプリケーション層２５１のアプリケーション２５１ａから、認証を必要とする特定のコンピュータにアクセスする通知を受け取ったときに、認証コード生成部３１５から受け取った認証コードに基づいて所定の送信タイムスロットで送信する複数の認証パケットで構成された認証パケット・シーケンスを生成して当該コンピュータに送信する。
【００４２】
認証パケット送信部３１７は、認証パケット・シーケンスを生成するために形成した複数のタイムスロットの中で先頭タイムスロット１７４Ｓ（図９参照）の送信時刻に対して基準時刻ｔｘを設定する。送信側の認証システム３０１で使用する基準時刻ｔｘは、受信側の認証システム３０３で使用する基準時刻ｔｙに一致する。認証パケット送信部３１７は、認証コード生成部３５５に時刻調整部３１１から基準時刻ｔｘを取得して認証コードを生成するように要求する。
【００４３】
認証パケット・シーケンスを構成する各認証パケットは認証の過程において受信側のコンピュータで内容が解読されることはないので、受信側のコンピュータまで届くものであればいかなる形式のものでも採用できるが、ＩＣＭＰパケットを採用するとアプリケーション層よりも下層で認証成功の通知ができるので都合がよい。認証パケット送信部３１７がインターネット層２５５にｐｉｎｇコマンドを発行すると、インターネット層２５５のＩＣＭＰモジュールがＥｃｈｏ要求をするパケット（Echo Request）を生成してネットワーク・インターフェース層２５７のＮＩＣ１０９からインターネット１０に認証パケットを送信することができる。
【００４４】
図７は、Ｅｃｈｏ要求パケットで構成された認証パケットのデータ構造を示す図である。認証パケット１６３は、ＩＰヘッダ１５５ａとＩＣＭＰメッセージ１６１で構成されている。ＩＣＭＰメッセージ１６１は、Ｅｃｈｏ要求に割り当てられた番号３を保持するＴＹＰＥフィールド１６１ａを含む。送信パケット制御部３１９は、認証を必要とする受信側のコンピュータのＩＰアドレスを保有している。送信パケット制御部３１９は、アプリケーション２５１ａが認証を必要とする受信側のコンピュータに対して送るデータ・パケットを一時的にバッファに保留するゲート機能を備える。保留の期間は認証が完了すると想定した所定の時間であったり、認証成功の通知を受けるまでの時間であったりする。
【００４５】
送信パケット制御部３１９は、受信側のコンピュータからＥｃｈｏ要求に対するＥｃｈｏ返答のＩＣＭＰパケット（Echo Reply）を受け取ることができる。送信パケット制御部３１９は、Ｅｃｈｏ返答のＩＣＭＰパケットを受け取ったときに認証が成功したと判断してバッファに保留していたデータ・パケットをネットワーク・インターフェース層２５７からインターネット１０に送信することができる。認証はトランスペアレントに行われ、アプリケーション２５１ａは受信側のコンピュータで認証が行われていること認識しない。
【００４６】
受信側の認証システム３０３は、時刻調整部３５１、パスワード記憶部３５３、認証コード生成部３５５、受信間隔測定部３５７、認証コード検証部３５９および送信パケット制御部３９１を含んでいる。時刻調整部３５１、パスワード記憶部３５３および認証コード生成部３５５は、送信側の認証システム３０１の時刻調整部３１１、パスワード記憶部３１３および認証コード生成部３１５と同じ機能である。
【００４７】
受信間隔測定部３５７は、認証パケット１６３が到着したときに送信側の認証パケット送信部３１７が使用したタイムスロットのスロット時間と同じスロット時間のタイムスロットに基づいて各認証パケット１６３の受信時刻に対応する受信タイムスロットを特定し、受信タイムスロットのスロット間隔を測定して認証コード検証部２５９に知らせる。このとき受信間隔測定部３５７はスロット間隔を測定した認証パケット１６３を認証コード検証部３５９に送る。受信間隔測定部３５７は、受け取った認証パケット１６３から先頭タイムスロット１７４Ｒ（図９参照）に対して基準時刻ｔｙを設定し、認証コード生成部３５５に時刻調整部３５１から取得した現在時刻で認証コードを生成するように要求する。
【００４８】
認証コード生成部３５５は、受信間隔測定部３５７から要求を受けた現在時刻で認証コードを生成するため、現在時刻は基準時刻ｔｙに一致する。基準時刻ｔｙは後に説明するように、認証パケット１６３に先立って送られるプリアンブルを受け取った時刻に基づいて設定したり、最初の認証パケット１６３を受け取った時刻に基づいて設定したりすることができる。認証コード検証部２５９は、受信間隔測定部３５７から受け取った受信タイムスロットのスロット間隔と認証コード生成部３５５から取得した認証コードを検証して認証が成功したか否かを判断する。認証が成功したと判断したときは、認証コード検証部３５９は受信パケット制御部３９１に認証が成功したことを通知する。このとき認証コード検証部２５９は、認証が成功した認証パケット１６３を受信パケット制御部３９１に送る。
【００４９】
受信パケット制御部３９１は、認証コード検証部３５９から認証成功の通知を受け取るまで、ネットワーク・インターフェース層２５７から受け取ったすべての認証パケット１６３およびデータ・パケットをインターネット層２５５に送ることなく破棄する。受信パケット制御部３９１は、認証コード検証部３５９から認証成功の通知を受け取ったときには、認証コード検証部３５９から受け取った認証パケット１６３をインターネット層２５５に送る。
【００５０】
インターネット層２５５のＩＣＭＰモジュールは、認証コード検証部３５９による認証が成功したことによってＥｃｈｏ要求の認証パケット１６３を受け取ったときには、Ｅｃｈｏ要求に対するＥｃｈｏ返答のパケットを送り返す。認証成功の通知を受け取った受信パケット制御部３９１は、それ以後にネットワーク・インターフェース層２５７から受け取った認証パケット１６３に含まれていたＩＰアドレスを含むデータ・パケットだけをインターネット層２５５に送る。
【００５１】
認証コード生成部３１５、３５５、認証パケット送信部３１７、送信パケット制御部３１９、受信間隔測定部３５７、認証コード検証部３５９、および受信パケット制御部３９１は、本実施の形態で提供する新規なプログラムで構成され、ＯＳと協働してＣＰＵ１０１で実行されることによりコンピュータ１００にそれぞれの機能を実現させる。すなわち、本実施の形態にかかる認証システムは、ＯＳに渡すパケットを制御しているだけでＯＳのパケット処理には何ら変更を加えていないため、ＯＳまたはアプリケーションが別の認証システムを導入していればそれと併存させることができる。
【００５２】
［認証コードの生成方法］
図８は、送信側の認証コード生成部３１５と受信側の認証コード生成部３５５による認証コードの生成方法を説明する図である。パスワード記憶部３１３、３５３には４８ビットの個人認証パスワードと６４ビットの共有認証パスワードが格納されている。個人認証パスワード１６５は、８文字のアルファベットと数字で構成され各ユーザが独自に設定および更新する。共有認証パスワード１６６は、ネットワーク管理者が管轄するユーザ全員に対して設定および更新する。
【００５３】
個人認証パスワード１６５と共有認証パスワード１６６は分割しておく必要はなく、すべて個人認証パスワードとすることもできる。現在時刻１６７は時刻調整部３１１、３５１が保有しており、ＮＴＰサーバ１５ｄで補正された秒を最小単位とするコンピュータ１００が保有する現在の時刻であり、ＮＴＰサーバ１５ｄの時刻に対して±２００ミリ秒程度の精度が確保されている。認証コード生成部３１５、３５５は、個人認証パスワード１６５と共有認証パスワード１６６と現在時刻１６７の各ビットを連結して１４４ビットのビット列を生成し、ＳＨＡ１ハッシュ関数で１６０ビットのハッシュ値を生成する。
【００５４】
認証コード生成部３１５、３５５はさらにハッシュ値の先頭ビットから連続する所定数のビット列からなる認証コード１７１を抽出して認証パケット送信部３１７に送る。認証コード１７１は、現在時刻が変化すると異なる値になるので同じ認証コードが生成されることはなく、認証コード１７１はビット数が少なくても盗聴に対する安全性が高くなっている。
【００５５】
認証コード１７１は送信側のコンピュータと受信側のコンピュータの時刻がＮＴＰサーバ１５ｄを通じて同期しており、認証パケット送信部３１７が、基準時刻ｔｘが１秒繰り上がった直後に認証パケット１６３を送信すると、受信間隔測定部３５７は基準時刻ｔｘから１秒繰り上がる前に認証パケット１６３を受け取って基準時刻ｔｙを設定することで基準時刻ｔｘと基準時刻ｔｙを一致させて同一の認証コード１７１を生成することができる。したがって、認証コード１７１はワンタイム・パスワードに類似する共有鍵に相当することになる。
【００５６】
［認証コードを利用した認証方法］
図９は、認証パケット・シーケンスを利用した認証方法を説明する図である。図９（Ａ）は、［０１１１１０００１００００１１１］という１６ビットの認証コード１７１Ｓ、１７１Ｒを、４値パルス位置変調（ＰＰＭ）方式で変調して生成した送信時間パターンを利用する例を示し、図９（Ｂ）は、［１０００１１００１１０１０００００１１１］という２０ビットの認証コード１７３Ｓ、１７３Ｒを４ビットずつ分割したコードから直接送付方式で生成した送信時間パターンを利用する例を示す。図９では、先頭タイムスロット１７４Ｓ、１７４Ｒから順番に黒塗りのタイムスロットで矢印Ａの方向に認証パケット１６３を送信および受信する様子を示している。
【００５７】
送信側の認証コード生成部３１５が生成した認証コード１７１Ｓと受信側の認証コード生成部３５５が生成した認証コード１７１Ｒは一致している。図９（Ａ）の場合は、認証パケット送信部３１７は認証コード生成部３１５から１６ビットの認証コード１７１Ｓを受け取ると、それぞれスロット時間がｔｓの４個のタイムスロットを含み隣接する８個のシンボル時間Ｓ１〜Ｓ８を形成する。スロット時間ｔｓは、送信側のコンピュータと受信側のコンピュータの現在時刻のずれ、各認証パケット１６３の送信時間の揺れなどに基づいて決定する。
【００５８】
認証パケット送信部３１７は１６ビットの認証コード１７１Ｓの先頭から順番に２ビットずつ抽出して４値ＰＰＭコード１７１ａＳを生成する。認証パケット送信部３１７は生成した４値ＰＰＭコード１７１ａＳを順番に並んだ８個のシンボル時間Ｓ１〜Ｓ８に割り当て、各シンボル時間Ｓ１〜Ｓ８において４値ＰＰＭコード１７１ａＳに対応するタイムスロットの位置を決定する。各シンボル時間において決定されたタイムスロットは認証パケット１６３の送信タイミングに相当する。この送信タイミングに相当する黒塗りで示したタイムスロットを以後送信タイムスロット１７２Ｓということにする。
【００５９】
認証パケット送信部３１７は、スロット時間の整数倍となる送信タイムスロット１７４Ｓ間のスロット間隔ｔ０〜ｔ７を計算して各送信タイムスロット１７２Ｓで認証パケットを順番に送信する。このとき認証パケット１６３はインターネット１０を伝搬する間に消滅する可能性があるので、１つの送信タイムスロット１７２Ｓにおいて短い時間間隔で複数の認証パケット１６３を連続して送るようにしてもよい。最初のスロット間隔ｔ０は、先頭タイムスロット１７４Ｓと最初の送信タイムスロット１７２Ｓとの間のスロット間隔に相当する。
【００６０】
図９（Ａ）に示すように８個の送信タイムスロット１７２Ｓで送信した１群の認証パケット１６３を認証パケット・シーケンス１７１ｂＳということにする。各送信タイムスロット１７２Ｓで１個の認証パケットを送信する場合は、１個の認証パケット・シーケンス１７１ｂＳにおける認証パケット１６３の数は送信タイムスロット１７２Ｓの数に一致するが、複数の認証パケット１６３を送信する場合は認証パケット１６３の数が送信タイムスロット１７２Ｓの数より多くなる。
【００６１】
４値ＰＰＭ方式では、必ず１個のシンボル時間にいずれかのタイムスロットから認証パケット１６３が送信されるので、所定のビット数の認証コード１７１Ｓに対応する送信タイムスロット１７２Ｓの数は一意に決まる。よって、送信の途中で認証パケット・シーケンス１７１ｂＳのいずれかの送信タイムスロット１７２Ｓに対応する認証パケット１６３が脱落しても受信側で容易にそれを確認することができる。４値ＰＰＭ方式を採用した場合は、スロット時間ｔｓを１００ミリ秒としたとき、１６ビットの認証コード１７１Ｓから生成された１個の認証パケット・シーケンス１７１ｂＳを送るためには３．２秒が必要となりビット転送効率は５ビット／秒となる。
【００６２】
受信側の受信間隔測定部３５７は、ネットワーク・インターフェース層２５７から認証パケット・シーケンス１７１ｂＲを受け取ったときに、認証パケット送信部３１７が形成したタイムスロットのスロット時間ｔｓと同じスロット時間ｔｓのタイムスロットおよびシンボル時間Ｓ１〜Ｓ８を形成する。受信間隔測定部３５７は、認証パケット１６３を受け取ったタイムスロット（以後、受信タイムスロット１７２Ｒという。）を特定し、認証パケット・シーケンス１７１ｂＲを構築して受信タイムスロット１７２Ｒのスロット間隔ｔ０〜ｔ７を計算する。認証コード検証部３５９は、スロット間隔ｔ０〜ｔ７とシンボル時間Ｓ１〜Ｓ８に基づいて、各シンボル時間における受信タイムスロット１７２Ｒの位置を特定して４値ＰＰＭコード１７１ａＲを計算し、４値ＰＰＭコード１７１ａＲから認証コード１７１Ｓを復号する。
【００６３】
図９（Ｂ）の場合は、認証コード生成部３１５から２０ビットの認証コード１７３Ｓを受け取った認証パケット送信部３１７はスロット時間ｔｓの４個のタイムスロットで構成されたシンボル時間Ｓ１〜Ｓ５を形成する。認証パケット送信部３１７は、認証コード１７３Ｓの先頭から順番に抽出した各４ビットに各シンボル時間Ｓ１〜Ｓ５の４つのタイムスロットを対応させて送信タイムスロット１７２Ｓを決める。
【００６４】
受信間隔測定部３５７は、各シンボル時間における受信タイムスロット１７２Ｒの位置から認証コード１７３Ｓを復号する。直接送付方式を採用した場合はスロット時間ｔｓを１００ミリ秒とすれば、２０ビットの認証コード１７３Ｓからなる１個の認証パケット・シーケンス１７３ｂＳを送るために２秒が必要となり、ビット転送効率は１０ビット／秒となる。直接送付方式はビット転送効率が高いが、１個のシンボル時間が、０個から４個までの送信タイムスロット１７２Ｓを含むので、転送の途中で認証パケット１６３が消滅したことを直接検証することはできない。
【００６５】
認証コード１７１Ｓは、送信側のコンピュータが設定した基準時刻ｔｘに相当する時刻情報を含んでいる。認証パケット・シーケンス１７１ｂＳ、１７３ｂＳを送信するために形成したタイムスロットの中で先頭タイムスロット１７４Ｓの中央に設定した基準時刻ｔｘは、認証コード１７１Ｓを作成するために認証コード生成部３１５が時刻調整部３１１から時刻情報を取得した現在時刻とほぼ一致させている。受信側のコンピュータでは、受け取った認証パケット１６３に基づいて基準時刻ｔｙを設定する必要がある。
【００６６】
しかし、認証パケット・シーケンス１７１ｂＳ、１７３ｂＳは、いずれも先頭タイムスロット１７４Ｓが送信タイムスロット１７２Ｓであるとは限らない。したがって受信側のコンピュータは、認証パケット１６３が短時間で到着したとしても最初の認証パケット１６３を受け取ったタイミングでは、シンボル時間Ｓ１の先頭タイムスロット１７４Ｒに基準時刻ｔｙを設定し、認証コード生成部３５５が基準時刻ｔｙで認証コード１７１Ｒ、１７３Ｒを生成することができない。
【００６７】
本実施の形態では、先頭タイムスロット１７４Ｒに対する基準時刻ｔｙを設定するための１つの方法として認証パケット・シーケンス１７１ｂＳ、１７３ｂＳの先頭にプリアンブルを付加する。プリアンブルを付加したイーサネット・フレームのデータ構造は図１１を参照して後に説明する。なおＰＰＭ方式および直接送付方式のいずれの場合であっても、１シンボル時間に含まれるタイムスロットの数は、図９に例示したものに限定されない。
【００６８】
［認証手順］
つぎに、送信側の認証システム３０１を実装するクライアント１１ａから受信側の認証システム３０３を実装するクライアント１１ｃに図９（Ａ）の認証パケット・シーケンス１７１ｂＳを利用してアクセスする際の認証手順を説明する。図１０は認証手順を示すフローチャートである。クライアント１１ａとクライアント１１ｃはそれぞれコンピュータ１００で構成されており、クライアント１１ａには送信側の認証システム３０１が実装され、クライアント１１ｃには受信側の認証システム３０３が実装されている。典型的な例として同一のユーザが遠方に存在するクライアント１１ａから自宅のサーバとして動作するクライアント１１ｃにアクセスすることを想定することができる。
【００６９】
クライアント１１ｃは、信頼のおけるクライアント１１ａだけでなくインターネット１０に接続された悪意のあるクライアントからもパケットを受け取る。受信側のクライアント１１ｃのＯＳは、トランスポート層２５３でクライアント１１ａと通信するためのポートを開いているが、受信パケット制御部３９１は、認証コード検証部３５９から認証成功の通知を受け取るまでゲートを閉じて、ネットワーク・インターフェース層２５７から受け取ったすべてのＩＰパケットを破棄する。
【００７０】
本実施の形態にかかる認証方法で認証されない悪意のあるイーサネット・フレームは、すべてネットワーク・インターフェース層２５７のＮＩＣ１０９と受信間隔測定部３５７および認証コード検証部３５９で処理される。ＮＩＣ１０９はハードウエアでイーサネット・フレームを処理するので攻撃耐性は高い。また、受信間隔測定部３５７および認証コード検証部３５９は、以下に説明するように認証が完了するまで、受け取ったＩＰパケットから到着時刻の情報だけを取得した後に認証が成功しないときはそれらを廃棄するので、ＩＰヘッダやＩＰペイロードを解読する必要はなく危険性はない。
【００７１】
また、クライアント１１ｃは悪意のある大量のパケットを受信することもあるが、受信間隔測定部３５７は、受け取ったすべてのパケットについて受信のタイミングを計算するだけであり、トランスポート層２５３で行うようなパケット化されたデータを結合する処理もしないため悪意のある大量のデータをメイン・メモリ１０３に記憶するような事態は生じない。なお、受信側のクライアント１１ｃのＩＰアドレスは固定されているものとする。また、送信側のパスワード記憶部３１３と受信側のパスワード記憶部３５３は、同一の個人認証パスワード１６５と共有認証パスワード１６６を格納している。
【００７２】
ブロック４０１では、送信側のアプリケーション２５１ａはトランスポート層２５３にクライアント１１ｃのＩＰアドレスを含むユーザ・データを渡してクライアント１１ｃとのセッションを確立する作業を開始し、トランスポート層２５３、インターネット層２５５を通じてＩＰパケットを送信パケット制御部３１９に送る。送信パケット制御部３１９は、クライアント１１ｃから認証が成功したことを示すＥｃｈｏ返答のＩＣＭＰパケットを受け取るまでは、クライアント１１ｃを宛先とするＩＰパケットをバッファに保存する。本実施の形態では、アプリケーション２５１ａからクライアント１１ｃに対するアクセスはトランスペアレントに行われる。
【００７３】
ユーザにとって認証システム３０１、３０３の存在は、アプリケーション２５１ａに対するクライアント１１ｃからの応答が、認証されないことによるアクセスの不能か、認証が成功するまでの極短時間の遅延として認識されるだけである。ブロック４０３では、アプリケーション２５１ａが認証パケット送信部３１７にクライアント１１ｃに対するアクセスを開始したことの通知をする。
【００７４】
通知を受け取った認証パケット送信部３１７は、認証コード生成部３１５に認証コード１７１Ｓの生成を要求する。認証コード生成部３１５は、図８に示したように時刻調整部３１１からクライアント１１ａが保有する現在時刻を取得し、パスワード記憶部３１３から個人認証パスワード１６５と共有認証パスワード１６６を取得して連結したあとにハッシュして認証コード１７１Ｓを生成する。
【００７５】
ブロック４０５では、認証パケット送信部３１７はスロット時間ｔｓのタイムスロットを形成し、図９に示した認証コード１７１Ｓに基づいて４値ＰＰＭ方式で生成した認証パケット・シーケンス１７１ｂＳを各送信タイムスロット１７２Ｓのタイミングで送信する。認証パケット・シーケンス１７１ｂＳはそれぞれＩＣＭＰメッセージ１６１を含む複数の認証パケット１６３で構成されている。認証パケット送信部３１７は、図１１に示すように認証パケット・シーケンス１７１ｂＳの中で最初に送るイーサネット・フレーム１８１の前にプリアンブル１８３を送る。
【００７６】
図１１は、認証パケット・シーケンス１７１ｂＳの転送方法を説明する図である。プリアンブル１８３は、スロット時間ｔｐの複数の連続するタイムスロットにおいて、１タイムスロットおきに送る複数のプリアンブル・パケットで構成される。プリアンブル１８３は、クライアント１１ｃがシンボル時間Ｓ１の先頭タイムスロット１７４Ｒに設定したり、認証コード生成部３５５が認証コード１７１Ｒを生成したりするための基準時刻ｔｙを取得することを目的とする。よってプリアンブル・パケットのデータ構造はＩＰヘッダ１５５ａを含んでいれば認証パケット１６３と同じであっても異なっていてもよい。本実施の形態では、認証パケット・シーケンス１７１ｂＳを構成する５個のイーサネット・フレーム１８１もプリアンブル１８３を構成する８個のイーサネット・フレーム１８２も認証パケット１６３含むように構成している。
【００７７】
認証パケット送信部３１７は、時刻調整部３１１から受け取る１秒を最小単位とする時刻情報を観察し、認証パケット・シーケンス１７１ｂＳを送信するために先頭タイムスロット１７４Ｓに基準時刻ｔｘを設定する。このとき、受信側の受信間隔測定部３５７が先頭タイムスロット１７４Ｒに設定する基準時刻ｔｙが１秒を単位とする基準時刻ｔｘに一致するように、認証パケット送信部３１７は基準時刻ｔｘより先にプリアンブル１８３を送信し１秒が繰り上がった直後の基準時刻ｔｘで認証パケット・シーケンス１７１ｂＳを送信できるようにタイミングを調整する。
【００７８】
基準時刻ｔｘと基準時刻ｔｙは最初単位を１秒にしているためパケットの転送時間が１秒よりも十分に短いものとすれば、プリアンブル１８３で特定される受信間隔測定部３５７の先頭タイムスロット１７４Ｒの基準時刻ｔｙは、認証パケット送信部３１７が先頭タイムスロット１７４Ｓに設定した基準時刻ｔｘに一致する。認証パケット１６３は、イーサネット・ヘッダ１５７ａが付加されてイーサネット・フレームとしてＮＩＣ１０９から相手先コンピュータに送信される。
【００７９】
クライアント１１ａは、認証パケット・シーケンス１７１ｂＳを送信する際に先頭にプリアンブル１８３を付加する。イーサネット・フレーム１８１、１８２は、イーサネット・ヘッダ１５７ａと認証パケット１６３で構成されている。認証パケット１６３のＩＰヘッダには、クライアント１１ｃのＩＰアドレスが宛先アドレスとして記録されている。５個のイーサネット・フレーム１８１と８個のイーサネット・フレーム１８２はクライアント１１ａから矢印Ａの方向に所定のスロット間隔ｔ０〜ｔ７で順番に送信される。
【００８０】
認証パケット送信部３１７は、プリアンブル・パケットに適用するスロット時間ｔｐの連続する１０個のタイムスロットとそれに隣接させて認証パケット１６３に適用するスロット時間ｔｓの連続する３２個のタイムスロットを形成する。認証パケット送信部３１７は、最初にプリアンブル１８３のためにスロット間隔２ｔｐで５個のイーサネット・フレーム１８２を送信し、５番目のイーサネット・フレーム１８２を送信してから、スロット時間ｔｑ後に先頭タイムスロット１７４Ｓに対する基準時刻ｔｘを設定し、先頭タイムスロット１７４Ｓからスロット間隔ｔ０に相当する２スロット間隔後に最初のイーサネット・フレーム１８１を送信する。スロット間隔ｔｑは、ｔｐ＋（ｔｐ＋ｔｓ）／２で計算することができる。
【００８１】
このとき、認証パケット送信部３１７は、先にプリアンブル１８３を送信し、先頭タイムスロット１７４Ｓの基準時刻ｔｘで認証コード１７１Ｓが生成されるように、認証コード生成部３１５に認証コード１７１の生成を要求する。そして、認証コード生成部３１５から基準時刻ｔｘで生成された認証コード１７１Ｓを受け取って送信タイムスロット１７２Ｓを生成し、スロット時間ｔｑ後の基準時刻ｔｘに先頭タイムスロット１７４Ｓが設定された認証パケット・シーケンス１７１ｂＳを送信する。認証コード生成部３１５による認証コード１７１Ｓの生成および認証パケット送信部３１７による認証パケット・シーケンス１７１ｂＳの生成は極短時間で行われるため、１秒を単位とする基準時刻ｔｘを認証コード１７１Ｓの生成と、先頭タイムスロット１７４Ｓの生成に対して適用することができる。
【００８２】
認証パケット送信部３１７は、プリアンブル１８３のスロット時間ｔｐと認証パケット・シーケンス１７１ｂＳのスロット時間ｔｓを関連付けておくことができる。認証パケット送信部３１７は一例として、１５ミリ秒、２０ミリ秒、２５ミリ秒のスロット時間ｔｐに対して、８０ミリ秒、１００ミリ秒、１２０ミリ秒というスロット時間ｔｓを関連付けておくことで、受信側のクライアント１１ｃは、受け取ったプリアンブル１８３のスロット時間ｔｐを計算し、認証パケット・シーケンス１７１ｂＳのスロット時間ｔｓを特定するこができる。よって、クライアント１１ａとクライアント１１ｃで使用するスロット時間ｔｓをインターネット１０の転送速度に応じてダイナミックに変更することができる。
【００８３】
認証パケット送信部３１７は、最初にスロット時間ｔｐを最小の１５ミリ秒に設定し、それに対応してスロット時間ｔｓを８０ミリ秒に設定する。５個目のイーサネット・フレーム１８２を送信してから、スロット時間ｔｑが経過したタイミングで先頭タイムスロット１７４Ｓの基準時刻ｔｘを設定してから、ｔ０後に先頭のイーサネット・フレーム１８１を送信する。つづいて、スロット間隔ｔ１〜ｔ７ごとに残り７個のイーサネット・フレーム１８１を送信する。各スロット時間ｔｓで１個のイーサネット・フレーム１８１を送信する場合はスロット時間の中央で送信し、複数のイーサネット・フレーム１８１を送信する場合はスロット時間の中央から前後に分散させて送信する。
【００８４】
ブロック４０７では、イーサネット・フレーム１８１、１８２を受け取った受信側のネットワーク・インターフェース層２５７は、その都度イーサネット・ペイロードである認証パケット１６３を抽出して受信間隔測定部３５７と受信パケット制御部３９１に送る。受信パケット制御部３９１は、認証コード検証部３５９から認証成功の通知を受け取るまで、いかなるＩＰパケットまたは認証パケット１６３もインターネット層２５５に送らない。受信間隔測定部３５７は、最初に受け取った５個の認証パケット１６３はプリアンブル１８３に相当することをあらかじめ認識している。
【００８５】
受信間隔測定部３５７は、最初の５個の認証パケット１６３を受け取ると認証パケット１６３の到着時刻間の平均値を計算して、認証パケット送信部３１７がプリアンブル１８３を送信するときのスロット時間ｔｐを取得する。受信間隔測定部３５７は、スロット時間ｔｐが１５ミリ秒であることを認識したことによりスロット時間ｔｓが８０ミリ秒であることを認識する。
【００８６】
受信間隔測定部３５７は、５個目の認証パケット１６３の到着時刻からスロット時間ｔｐが経過した時刻にシンボル時間Ｓ１の先頭タイムスロット１７４Ｒの基準時刻ｔｙを設定し、それを基準にして３２個のタイムスロットを設定する。受信間隔測定部３５７は、基準時刻ｔｙで時刻調整部３５１から時刻情報を取得して認証コード１７１Ｒを生成するように認証コード生成部３５５に要求する。プリアンブル１８３のイーサネット・フレーム１８２の転送時間は十分に速いので、１秒を単位とする基準時刻ｔｘと基準時刻ｔｙは一致する。
【００８７】
受信間隔測定部３５７は、認証パケット・シーケンス１７１ｂＲに先立ってプリアンブル１８３を受け取ることで、認証パケット送信部３１７が使用したスロット時間ｔｓを認識するだけでなく、認証コード１７１Ｓのパターンによってシンボル時間Ｓ１の最初のタイムスロットが送信タイムスロット１７２Ｓでない場合でも先頭タイムスロット１７４Ｒに基準時刻ｔｙを設定することができる。ブロック４０９では、受信間隔測定部３５７は、つづいて受け取った８個の認証パケット１６３の到着時刻から受信タイムスロット１７２Ｒを特定してスロット間隔を計算し認証コード検証部３５９に送る。また、受信間隔測定部３５７はスロット間隔を計算した認証パケット１６３を認証コード検証部３５９に送る。
【００８８】
受信間隔測定部３５７は、１つの送信タイムスロット１７２Ｓで複数のイーサネット・フレーム１８１が送信され、１つの受信タイムスロット１７２Ｒで複数の認証パケット１６３の到着を検出した場合でも、当該１つの受信タイムスロット１７２Ｒを特定する。４値ＰＰＭ方式で認証パケット・シーケンス１７１ｂＳを構成する場合は、受信間隔測定部３５７は、あらかじめ認証パケット・シーケンス１７１ｂＳから８個の受信タイムスロット１７２Ｒが形成されることを認識することができる。したがって、８個の受信タイムスロット１７２Ｒを特定できない限り認証コード検証部３５９には何も通知しない。
【００８９】
受信間隔測定部３５７はこれまでの処理において、認証パケット１６３のＩＰヘッダ１５５ａおよびＩＣＭＰメッセージ１６１を解読することはない。また、ここまでの処理はネットワーク・インターフェース層２５７のハードウエアであるＮＩＣ１０９で行われるため、クライアント１１ｃがマルウエアに支配されるようなことは起きない。さらに、イーサネット・フレーム１８１、１８２の最大サイズは１５００バイトであり、ＮＩＣ１１１、受信間隔測定部３５７および認証コード検証部３５９ではそれらを結合する処理はしないため、バッファ・オーバーフローが発生するようなこともない。
【００９０】
ブロック４１１では受信間隔測定部３５７から認証コード１７１を生成する要求を受けた認証コード生成部３５５はただちに現在時刻を時刻調整部３５１から取得し、個人認証パスワード１６５と共有認証パスワード１６６をパスワード記憶部３５３から取得して認証コード１７１Ｒを生成し認証コード検証部３５９に送る。認証コード生成部３５５が時刻調整部３５１から認証コード１７１Ｒを生成する時刻は基準時刻ｔｙに等しく、認証コード生成部３１５が生成した認証コード１７１Ｓと認証コード生成部３５５が生成した認証コード１７１Ｒは一致する。
【００９１】
ブロック４１３では、認証コード検証部３５９は受信間隔測定部３５７から受け取ったスロット間隔ｔ０〜ｔ７から各シンボル時間Ｓ１〜Ｓ８に対する４値ＰＰＭコード１７１ａＲを計算し、さらに４値ＰＰＭコード１７１ａＲから認証コード１７１Ｓを復号する。また、認証コード検証部３５９は、受信間隔測定部３５７から受け取った認証パケット１６３をバッファに保存しておく。
【００９２】
認証コード検証部３５９は、認証コード生成部３５５から受け取った認証コード１７１Ｒと復号した認証コード１７１Ｓを比較して一致している場合は認証が成功したと判断する。あるいは、認証コード検証部３５９は、認証コード生成部３５５から受け取った認証コード１７１Ｒから計算したスロット間隔が、受信タイムスロット１７２Ｒのスロット間隔と比較して一致している場合に認証が成功したと判断することができる。認証が成功したと判断した認証コード検証部３５９は、受信パケット制御部３９１に認証成功の通知をして、ブロック４１５に移行する。このとき認証コード検証部３５９はバッファに保存していた認証パケット１６３をすべて受信パケット制御部３９１に送る。
【００９３】
ブロック４１５では、認証成功の通知を受け取った受信パケット制御部３９１は、認証コード検証部３５９から受け取ったすべての認証パケット１６３のＩＰアドレスが一致しているか否かを検証する。一致していれば、以後ネットワーク・インターフェース層２５７から受け取った発信元ＩＰアドレスを含むＩＰパケットに対してだけゲートを開いてインターネット層２５５に送る。
【００９４】
受信パケット制御部３９１は、認証が成功したＩＰアドレスからのＩＰパケットだけを通過させるために、認証パケット１６３の発信元ＩＰアドレスを解読する必要はあるが、すべての認証パケット１６３のＩＰアドレスが一致しているか否かの検証は省くこともできる。ブロック４１７では、受信パケット制御部３９１は認証コード検証部３５９から受け取ったいずれかの認証パケット１６３をインターネット層２５５に送る。
【００９５】
インターネット層２５５のＩＣＭＰモジュールは、クライアント１１ａにＥｃｈｏ要求に対するＥｃｈｏ返答をするためのＩＣＭＰパケットを送る。ＩＣＭＰパケットは、送信パケット制御部３１９と認証パケット送信部３１７に送られる。ここで、始めてＩＰパケットがクライアント１１ｃのインターネット層２５５に届いてＩＰペイロードが解析されることになるが、そのＩＰパケットはすでに認証が成功したＩＰアドレスを有するクライアント１１ａから受け取ったものであり安全である。
【００９６】
ブロック４１９では、ＩＣＭＰパケットを受け取った送信パケット制御部３１９は、バッファに蓄積していたアプリケーション２５１ａからのユーザ・データを含むＩＰパケットをネットワーク・インターフェース層２５７に送る。そしてクライアント１１ａのアプリケーション２５１ａとクライアント１１ｃのアプリケーション層２５１との間でセッションが確立する。アプリケーション２５１ａが生成したユーザ・データは、以後、送信パケット制御部３１９のバッファに蓄積されることなくネットワーク・インターフェース層２５７を通じてクライアント１１ｃに転送される。
【００９７】
ブロック４２１では、クライアント１１ａのアプリケーション２５１ａがセッションを終了する。セッションの終了は、ユーザが強制的に行うこともできるし、アプリケーション２５１ａが所定の時間ユーザのアクセスがない場合に自動的に終了することもできる。その結果、クライアント１１ａからクライアント１１ｃにはイーサネット・フレームが届かなくなる。受信パケット制御部３９１はゲートを開いたあとに通過するＩＰパケットの時間間隔を監視しており、所定の時間いかなるＩＰパケットの通過も検出しないときにブロック４２３で再びゲートを閉じる。
【００９８】
このとき受信パケット制御部３９１は、ゲートの閉鎖を示すＩＣＭＰパケットをクライアント１１ａに通知することができる。ＩＣＭＰパケットを受け取った送信パケット制御部３１９は、ゲートを閉じて、それ以後アプリケーション２５１ａから受け取ったＩＰパケットをバッファに蓄積する。クライアント１１ｃへのセッションが切断されたことを認識したアプリケーション２５１ａは、ブロック４０３に戻って新たなセッションを開始して認証手続きをしながらクライアント１１ｃにアクセスすることができる。
【００９９】
ブロック４１３で所定の時間が経過してもクライアント１１ｃから認証が成功したことを示すＥｃｈｏ返答のＩＣＭＰパケットを受け取らないと判断したクライアント１１ａの認証パケット送信部３１７は、ブロック４２７で、プリアンブル１８３のスロット時間ｔｐを２０ミリ秒に変更しこれに対応させて認証パケット・シーケンス１７１ｂＳのスロット時間ｔｓを１００ミリ秒に変更してブロック４０３に移行する。
【０１００】
ブロック４０３では、認証パケット送信部３１７は認証コード生成部３１５に対して新たな基準時刻ｔｘに基づく認証コード１７１Ｓの生成を要求する。認証コード生成部３１５から新たな認証コード１７１Ｓを受け取ると、認証パケット送信部３１７は新たな認証パケット・シーケンス１７１ｂＳを生成してスロット時間ｔｐを２０ミリ秒に設定し、スロット時間ｔｓを１００ミリ秒に設定して新たなプリアンブル１８３と認証パケット・シーケンス１７１ｂＳを送信する。
【０１０１】
つづくブロック４１３でさらに認証が成功しないと判断したときは、認証パケット送信部３１７はプリアンブル１８３のスロット時間ｔｐを２５ミリ秒に変更し、これに対応させて認証パケット・シーケンス１７１ｂＳのスロット時間ｔｓを１２０ミリ秒に変更して新たなプリアンブル１８３と認証パケット・シーケンス１７１ｂＳを送信する。認証パケット・シーケンス１７１ｂＳが伝送経路を転送されている間は、さまざまな要因で各認証パケット１６３の到着時間に揺れが生ずるので、スロット時間ｔｓが長いほど認証が成功する確率は高くなるが、認証が完了するまでの時間が長くなるので短いスロット時間から開始することで最小の時間で認証ができるようになる。なお、一旦最適なスロット時間が設定された場合は、接続形態が変更されない限りそれを固定してもよい。
【０１０２】
［認証パケット・シーケンスの他の転送方法］
認証パケット・シーケンス１７１ｂＳ、１７３ｂＳを送る際にはプリアンブル１８３を同時に送る必要がある。通信経路の転送時間が安定しており、最適なスロット時間ｔｓを最初から設定できる場合には、プリアンブル１８３を付加しないで認証パケット・シーケンスを送るようにすることもできる。図１２は、４値インターバル符号を用いた認証パケット・シーケンスの新たなデータ構造を示す図である。
【０１０３】
認証コード５０１は、図９（Ａ）と同じ１６ビットの値で［０１１１１０００１００００１１１］とする。認証パケット送信部３１７は認証コード１７１Ｓの先頭から連続的に２ビットずつ抽出して、シンボル時間Ｓ１〜Ｓ８に割り当てる。各シンボル時間Ｓ１〜Ｓ８は、スロット時間ｔｓの５つのタイムスロットで構成されている。認証パケット送信部３１７は４値インターバル・コード５０１ａを各シンボル時間について４値インターバル符号方式で変調して４値インターバル・コード５０１ａを生成する。
【０１０４】
４値インターバル・コード５０１ａでは、各シンボル時間の先頭タイムスロットにスタート・スロット５０３を設定し、抽出した２ビットの重みをスタート・スロット５０３と送信タイムスロット５０５との間のスロット間隔として表現する。ここでは、認証コード５０１の２ビット［００］を４値インターバル・コード５０１ａの［０００１］に変調して１スロット間隔を割り当て、［０１］を［００１０］に変調して２スロット間隔を割り当て、［１０］を［０１００］に変調して３スロット間隔を割り当て、［１１］を［１０００］に変調して４スロット間隔を割り当てて認証パケット・シーケンス５０１ｂを生成する。
【０１０５】
各シンボル時間Ｓ１〜Ｓ８は、必ず１個の送信タイムスロット５０５を含んでいる。認証パケット・シーケンス５０１ｂを受け取った受信間隔測定部３５７は、最初に認証パケット１６３受け取った時刻を基準時刻ｔｙとしてスロット時間Ｓ１の先頭タイムスロット１７４Ｒの中央に設定して、２０個のタイムスロットを形成する。また、受信間隔測定部３５７は基準時刻ｔｙで認証コード生成部３１５に認証コード５０１の生成を要求する。受信間隔測定部３５７は、各シンボル時間Ｓ１〜Ｓ８について、スタート・スロット５０３と次の受信タイムスロットとの間のスロット間隔ｔ１〜ｔ８を測定して認証コード５０１を復号することができる。４値インターバル符号方式を採用するとスロット時間ｔｓを１００ミリ秒とした場合に、ビット転送効率は４ビット／秒になる。
【０１０６】
この他に、４値ＰＰＭ方式または直接送付方式で生成した認証パケット・シーケンス１７１ｂＳ、１７３ｂＳもプリアンブルを付加しないで送信することができる。認証コード生成部３１５は、図８で説明した方法でそのハッシュ部１６８が１６０ビットのハッシュ値を計算する。図８、図９では認証コード生成部３１５、３５５がそれぞれ１６０ビットのハッシュ値の先頭から連続する１６ビットまたは２０ビットを抽出していたため、先頭ビットがゼロの認証コード１７１Ｓが存在する。よって受信間隔測定部３５７は、先頭タイムスロット１７４Ｒの基準時刻ｔｙを設定して同一の認証コード１７１Ｒを生成するためにプリアンブルが必要であった。
【０１０７】
ここで、認証コード生成部３１５、３５５がいずれも１６０ビットのハッシュ値の先頭（ＭＳＢ）から１６ビットまたは２０ビットの認証コードを抽出するときに、先頭タイムスロット１７４Ｓが０で送信タイムスロット１７２Ｓでない場合は、先頭タイムスロット１７４Ｓが送信タイムスロット１７２ＳになるまでＬＳＢ方向に１ビットずつシフトして認証コード１７１、１７３の先頭位置を決定する。その結果、認証コード生成部３１５、３５５はともに、先頭タイムスロット１７４Ｓが１の送信タイムスロット１７２Ｓになる１６ビットまたは２０ビットの同一の認証コードを取得することができる。
【０１０８】
たとえば、１６０ビットのハッシュ値［０１０１１００１１００１００１１０００１・・・］から、４値ＰＰＭ方式で１２ビットの認証コードを取得するには、先頭ビットを３ビットＬＳＢ側にシフトして認証コードを［１１００１１００１００１］とすることができる。また直接送付方式で１０ビットの認証コードを取得する際には、先頭ビットを１ビットＬＳＢ側にシフトして［１０１１００１１００］とすることができる。先頭タイムスロット１７４Ｓが送信タイムスロット１７２Ｓになることが保証されていれば、受信間隔測定部３５７はプリアンブル１８３を受け取らなくても、最初に受け取った受信タイムスロット１７２Ｒに基準時刻ｔｙを設定することができる。
【０１０９】
［サーバへの適用］
つぎに、Ｗｅｂサーバ１５ｂが許可された複数のクライアント１１ａ〜１１ｅのアクセスを許可するための認証方法を、図１３を参照して説明する。クライアント１１ａ〜１１ｅは、送信側の認証システム３０１を実装しそれぞれのユーザＩＤをパスワード記憶部に格納している。ユーザＩＤのビット数は所定の値に固定してある。Ｗｅｂサーバ１５ｂは受信側の認証システム３０３を実装し、図１３（Ａ）に示すようにパスワード記憶部３５３は、共有認証パスワード１６６とクライアントごとのユーザＩＤおよび個人認証パスワード１６５を格納している。
【０１１０】
受信パケット制御部３９１は、ユーザＩＤごとのゲートを有している。いずれかのクライアントの認証パケット送信部３１７は、図１０で説明した手順で認証パケット・シーケンス１７１ｂＳを送信するが、その際、プリアンブル１８３の後にユーザＩＤを送信タイムスロット１７２Ｓのパターンで表したＩＤパケット・シーケンスを付加する。ＩＤパケット・シーケンスのスロット時間は、認証パケット・シーケンス１７１ｂＳのスロット時間ｔｓと異なるものであってもよいが同じにしたほうが処理は容易である。
【０１１１】
認証パケット送信部３１７はＥＥＰＲＯＭ１１からユーザＩＤを取得して４値ＰＰＭ方式、直接送付方式、または４値インターバル符号方式のいずれかの方式で認証パケット・シーケンス１７１ｂＳ、１７３ｂＳ、５０１ｂを生成したのと同じ方法でユーザＩＤを送信時間パターンに変換して、ＩＤパケット・シーケンスを生成する。図１３（Ｂ）は認証パケット・シーケンス１７１ｂＳにＩＤパケット・シーケンス５１１を付加したパケット・シーケンス５１２のデータ構造を示す。パケット・シーケンス５１２を受け取ったＷｅｂサーバ１５ｂの受信間隔測定部３５７は、プリアンブル１８３に続くＩＤパケット・シーケンス５１２の先頭タイムスロットに基準時刻ｔｙを設定して、ユーザＩＤに相当する最初の所定の数の受信タイムスロットを特定する。
【０１１２】
認証コード検証部３５９は、ＩＤパケット・シーケンス５１１から復号したユーザＩＤとパスワード記憶部３５３から取得したユーザＩＤを比較して一致した場合のみ、当該ユーザＩＤに対応する個人認証パスワードと共有認証パスワードと時刻情報から認証コードを生成して認証する。このような構成によりＷｅｂサーバ１５ｂは、すべてのユーザに同一の個人認証パスワードを適用しないでも、個別に認証できるようになる。そしてＷｅｂサーバ１５ｂは常時は受信パケット制御部３９１のゲートをすべて閉じておき、特定のユーザを認証したときにそれに対応するゲートだけを開いて、認証した認証パケット１６３に含まれる宛先ＩＰアドレスのＩＰパケットだけをインターネット層２５５に送るようにすることができる。
【０１１３】
［その他の特徴］
ブロック４１７では、クライアント１１ｃからクライアント１１ａにＥｃｈｏ返答をするためのＩＣＭＰパケットを送って、認証が成功したことの通知を送っている。本実施の形態では、認証が成功したことの通知をしないでも、セッションを確立することができる。この場合、送信パケット制御部３１９は認証が成功したことを認識しないため、認証パケット１６３を送出してから所定の時間が経過した後にバッファに蓄積していたユーザ・データを含むＩＰパケットをネットワーク・インターフェース層２５７に送る。
【０１１４】
このとき、クライアント１１ｃがクライアント１１ａを認証していないときは、アプリケーション２５１ａからのアクセスに対する応答がないので、アプリケーション２５１ａは再度認証パケット送信部３１７に認証作業を要求する。したがって、認証パケット１６３の形式は、ルータを経由して転送される場合は、ルーティングが可能でクライアント１１ｃに到着できるように少なくともＩＰヘッダ１５５ａを含むものであればよい。さらに、同一のルータに属するクライアント同士であれば、ＭＡＣアドレスだけでパケット転送が可能なので、ＩＰアドレスも不要になる。
【０１１５】
図１１では、認証パケット・シーケンス１７１ｂＳおよびプリアンブル１８３を、ＩＰパケットを含むイーサネット・フレームで構成する例を説明したが、本発明では認証段階ではイーサネット・ペイロードの内容を必要としないので、ＩＰパケットに代えてＵＤＰパケットを採用することもできる。またネットワークに接続された状態で受ける攻撃に対して最大の安全性を図るために、受信側パケット制御部３９１をネットワーク・インターフェース層２５７とインターネット層２５５の間に挿入する例を説明したが、一般的にはアプリケーション層２５１が攻撃に対して最も甚大な被害をもたらす。
【０１１６】
たとえば、アドミニストレータ権限で動作するプログラムがウイルスに支配された場合は、コンピュータ全体がウイルスに制御されて致命的な損害を被ることになる。したがって、受信パケット制御部３９１をインターネット層２５５とトランスポート層２５３の間に挿入して、認証がすんでいないＴＣＰパケットをトランスポート層２５３に渡さないようにすることでも有効に保護することができる。
【０１１７】
このとき、ネットワーク層２５５にはすべてのＩＰパケットが到着して認証前に認証パケット１６３のＩＰヘッダを解読するので、複数のユーザを認証するサーバ１５ｂに適用すると、複数のユーザから認証パケット・シーケンスを同時に受け取って到着のタイミングが混在する場合でもＩＰアドレスに基づいてユーザごとに時間軸上で認証パケット１６３を並べて認証することができる。
【０１１８】
本発明にかかる認証システムは、トランスペアレントにコンピュータのネットワーク・セキュリティを確保する上でファイア・ウオールと関連する部分もある。よって、本発明にかかる認証システムは、従来から存在する認証システムと併存させることもできる。しかし、ファイア・ウオールは、通過できるパケットを制限するだけであり、通過を許可したパケット自体の安全性は個々のコンピュータが確保する必要がある。これに対して本発明にかかる認証システムは、ＩＰパケットの信頼性をあらかじめ確認してからネットワーク層への受け入れを許可しているので一般的なファイア・ウオールとは異なる概念のセキュリティ・システムといえる。
【０１１９】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【０１２０】
１００…コンピュータ
１５１…イーサネット・フレーム
１６１…ＩＣＭＰメッセージ
１６３…認証パケット
１７１Ｓ、１７３Ｓ…送信側で生成した認証コード
１７１Ｒ、１７３Ｒ…受信側で生成した認証コード
１７１ａＳ…送信側で生成した４値ＰＰＭコード
１７１ａＲ…受信側で生成した４値ＰＰＭコード
１７１ｂＳ、１７３ｂＳ…送信側で生成した認証パケット・シーケンス
１７１ｂＲ、１７３ｂＲ…受信側で生成した認証パケット・シーケンス
１７２Ｓ…送信タイムスロット
１７２Ｒ…受信タイムスロット
１７４Ｓ…送信側の先頭タイムスロット
１７４Ｒ…受信側の先頭タイムスロット
１５１、１８１、１８２…イーサネット・フレーム
３０１…送信側の認証システム
３０３…受信側の認証システム
ｔｓ…認証パケットのスロット時間
ｔｐ…プリアンブル・パケットのスロット時間
ｔ０〜ｔ７…スロット間隔
Ｓ１〜Ｓ８…シンボル時間
【図１】
2012014278.tif 000003
【図２】
2012014278.tif 000004
【図３】
2012014278.tif 000005
【図４】
2012014278.tif 000006
【図５】
2012014278.tif 000007
【図６】
2012014278.tif 000008
【図７】
2012014278.tif 000009
【図８】
2012014278.tif 000010
【図９】
2012014278.tif 000011
【図１０】
2012014278.tif 000012
【図１１】
2012014278.tif 000013
【図１２】
2012014278.tif 000014
【図１３】
2012014278.tif 000015