(57)【要約】【課題】ネットワーク通信において成りすましによる被害を減らす。【解決手段】データを送信するサーバ（１０）と、当該サーバにより送信されたデータをネットワーク（５０）経由で受信するクライアント端末（２０）と、を含むデータ通信システムのデータ通信方法において、当該サーバとの前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを暗号化するとともに、当該暗号化された暗号データを当該サーバに送信する送信ステップと、当該サーバが、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップとを行うことにより、成りすましを防止する。【選択図】図１
2014197839.tif 000002
【特許請求の範囲】
【請求項１】
データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムにおいて、
当該クライアント端末は、
当該サーバに直前の通信で送信した前回識別符号を通信毎に記憶する記憶手段と、
当該記憶手段から取り出された当該前回識別符号を暗号鍵として、当該前回識別符号と異なる現在識別符号と当該前回識別符号とを少なくとも含めて暗号化する暗号化手段と、
当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備え、
当該サーバは、
当該クライアント端末から送信された暗号データを受信する受信手段と、
当該クライアント端末から送信された当該現在識別符号を、通信毎に所定のタイミングで前回識別符号として記憶する記憶手段と、
当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回識別符号を復号鍵として復号化する復号化手段と、を備えている
ことを特徴とするデータ通信システム。
【請求項２】
前記現在識別符号は、前記クライアント端末と前記サーバとの間の現在の通信時刻を示す現在通信時刻であり、
前記前回識別符号は、前記クライアント端末と前記サーバとの間の当該現在通信時刻の直前に通信した通信時刻を示す前回通信時刻である
ことを特徴とする請求項１記載のデータ通信システム。
【請求項３】
データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムにおいて、
当該クライアント端末は、
当該サーバとの前回通信時刻を通信毎に記憶する記憶手段と、
当該記憶手段から取り出された当該前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化する暗号化手段と、
当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備え、
当該サーバは、
当該クライアント端末から送信された暗号データを受信する受信手段と、
当該クライアント端末から送信された当該現在通信時刻を、通信毎に所定のタイミングで前回通信時刻として記憶する記憶手段と、
当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る更新前の前回通信時刻を復号鍵として復号化する復号化手段と、を備えている
ことを特徴とするデータ通信システム。
【請求項４】
前記サーバは、さらに、
前記復号化手段により復号化した、前記現在通信時刻および前回通信時刻と、現在通信時刻及び前記記憶手段から取り出された当該クライアント端末に係る前回通信時刻と、を比較して認証可否を判定する判定手段を備え、
当該判定手段は、両現在通信時刻が所定範囲内にあること、かつ、両前回通信時刻が完全一致することを充足した場合にのみ認証可と判定するように構成されている
ことを特徴とする請求項３記載のデータ通信システム。
【請求項５】
サーバとの前回通信時刻を通信毎に更新して記憶する記憶手段と、
当該記憶手段から取り出された当該前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化する暗号化手段と、
当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備えている
ことを特徴とするデータ通信システム用のクライアント端末。
【請求項６】
クライアント端末から送信された暗号データを受信する受信手段と、
当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶する記憶手段と、
当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号化手段と、を備えている
ことを特徴とするデータ通信システム用のサーバ。
【請求項７】
データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムのデータ通信方法において、
当該クライアント端末が、記憶手段から取り出された当該サーバとの前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化するとともに、当該暗号化された暗号データを当該サーバに送信する送信ステップと、
当該サーバが、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップと、
当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を行う
ことを特徴とするデータ通信方法。
【請求項８】
前記サーバが、さらに、
前記復号化した前記現在通信時刻および前回通信時刻と、現在通信時刻及び前記記憶手段から取り出された当該クライアント端末に係る前回通信時刻と、を比較するとともに、当該両現在通信時刻が所定範囲内にあること、当該両前回通信時刻が完全一致することを前提に、比較結果を一致と判定する判定ステップを行う
ことを特徴とする請求項７記載のデータ通信方法。
【請求項９】
コンピュータを、ネットワーク経由でクライアント端末が受信するデータを送信するサーバとして機能させるためのデータ通信プログラムであって、コンピュータを、
当該クライアント端末から送信された暗号データを受信する受信手段と、
当該クライアント端末から送信された当該現在識別符号を、通信毎に所定のタイミングで前回識別符号として記憶する記憶手段と、
当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回識別符号を復号鍵として復号化する復号化手段と、して機能させ,
当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップと、
当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を実行させる
ことを特徴とするデータ通信プログラム。
【請求項１０】
コンピュータを、サーバにより送信されたデータをネットワーク経由で受信するクライアント端末として機能させるためのデータ通信プログラムであって、コンピュータを、
当該サーバに直前の通信で送信した前回識別符号を通信毎に記憶する記憶手段と、
当該記憶手段から取り出された当該前回識別符号を暗号鍵として、当該前回識別符号と異なる現在識別符号と当該前回識別符号とを少なくとも含めて暗号化する暗号化手段と、
当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、して機能させ、
当該記憶手段から取り出された当該サーバとの前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化するとともに、当該暗号化された暗号データを当該サーバに送信する送信ステップと、
当該サーバが、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップと、
当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を実行させる
ことを特徴とするデータ通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク経由で接続されたサーバとクライアント端末からなる通信システム及びこれらによって実行される通信方法における情報漏えいならびにいわゆる「成りすまし」を防止する技術に関する。
【背景技術】
【０００２】
インターネットなどの不特定多数が参加するネットワーク環境下において、サービスを受ける権利を持ったユーザのみにサービスを提供する機能を持ったサーバは、接続してきたユーザがサービスを受ける権利を有しているか否かの判断をまず行う。この際にユーザがクライアント端末２０を介して送信してきた文字、記号および数字で構成されたユーザＩＤやパスワードが正当であるか否かで本人認定をおこなう。ここで問題となるのが、いわゆる「成りすまし」である。「成りすまし」とは、他人のユーザＩＤやパスワード等を盗用し、その他人のふりをしてネットワーク上で活動することをいう。悪意のある第三者によって通信盗聴やソーシャル・エンジニアリングなどの手段でユーザＩＤやパスワードを盗まれると、成りすまされてサーバシステムに接続される。その結果、サーバは悪意のある第三者に不正にサービスを提供させられてしまい、それによって利用者（クライアント）は不利益を被る。また同様にサービス提供業者も、正当な代価を支払わない前記悪意ある第三者にサービスを提供するという逸失が発生する。例えばサーバシステムが金融機関のオンラインバンキングであれば利用者（クライアント）の口座から現金を不正に引き出されるという被害を受ける。また、会員制オンラインゲームであれば利用者（クライアント）が所有するレアアイテムやゲーム内通貨を横取りされるという被害を受ける。ネットワークを利用する「常識」としてパスワードを定期的かつ短期間に変更することに加えて、その内容が容易に類推のできない種類のものに設定することが推奨されているが、いずれも利用者にとっては煩わしく、現実に実行するのは簡単でないのが実情である。
【０００３】
特許文献１には、個人情報を入手した者がその個人情報主であるユーザにメールを送る場合に、そのメールに含まれることとなる識別情報（たとえば、サイト毎に使い分けるユーザの匿名）を生成し、この識別情報の一致不一致を判定することにより成りすましを防止しようとする技術が開示されている。また、特許文献２および３には、現在通信時刻を暗号化して認証子を生成し、そして、その認証子が添付されたアクセス要求をｗｗｗサーバに送信する、続けてそのｗｗｗサーバは、そのアクセスが許可されるか否か判断するために、その認証子を複号化して時刻を取り出し、その時刻が許容範囲内のものであるかを検証し、これによって、成りすましを防止する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−６７５２４号公報
【特許文献２】特開２００２−１３２７３０号公報
【特許文献３】ＷＯ２０１１／０５２６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１が開示する技術はメールの送受信が前提となっており、メール以外の通信に利用することができないので、限られた範囲でしか有効でない。さらに、識別情報自体が第三者に盗用されたなら、その第三者はユーザに対して簡単に成りすましを行うことができてしまうという問題がある。また、特許文献２および３が提案する技術では、成りすまされた本人がその事実を知ることが不可能もしくは知るために時間が掛かってしまうという問題がある。そこで、本発明は上記した問題を利用者が簡単に盗用できない方法により、成りすましによる被害を減らすことを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明は、次の構成を備えている。なお、いずれかの請求項記載の発明を説明するに当たり行う用語の定義等は、発明のカテゴリーや記載順等に関わらず、可能な範囲において他の請求項記載の発明にも適用があるものとする。
【０００７】
（請求項１記載の発明の特徴）
請求項１記載の発明に係るデータ通信システム（以下、適宜「請求項１のシステム」という）は、データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムである。ここで、当該クライアント端末は、当該サーバに直前の通信で送信した前回識別符号を通信毎に記憶する記憶手段と、当該記憶手段から取り出された当該前回識別符号を暗号鍵として、当該前回識別符号と異なる現在識別符号と当該前回識別符号とを少なくとも含めて暗号化する暗号化手段と、当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備えている。一方、当該サーバは、当該クライアント端末から送信された暗号データを受信する受信手段と、当該クライアント端末から送信された当該現在識別符号を、通信毎に所定のタイミングで前回識別符号として記憶する記憶手段と、当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回識別符号を復号鍵として復号化する復号化手段と、を備えている。
【０００８】
請求項１のシステムによれば、まず、クライアント端末は、前回識別符号を暗号鍵として、この前回識別符号とクライアントが取得や生成等した現在識別符号とを含む暗号データをサーバに送信する。サーバは、受信したこの暗号データを、当該クライアントとの間の現在の通信よりも以前（直前としてもよいし、予め定めた２回目以上前としてもよい）に送信された前回識別符号を復号鍵として復号する。復号された現在識別符号は、前回識別符号として、その後（次回もしくは予め定めた２回目以降の）の通信によって当該クライアントから送信された暗号データを復号するための復号鍵として記憶手段に記憶される。このように、共通暗号鍵となる前回識別符号を、現在以前（直前または予め定めた２回目以上前）の通信時にクライアント端末−サーバ間で取り決めておくことによって、暗号化されたデータとそれに使用された暗号鍵のクライアント端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【０００９】
（請求項２記載の発明の特徴）
請求項２記載の発明に係るデータ通信システム（以下、適宜「請求項２のシステム」という）は、請求項１のシステムであって、前記現在識別符号は、前記クライアント端末と前記サーバとの間の現在の通信時刻を示す現在通信時刻であり、前記前回識別符号は、前記クライアント端末と前記サーバとの間の当該現在通信時刻の直前に通信した通信時刻を示す前回通信時刻であることを特徴とする。
【００１０】
請求項２のシステムによれば、請求項１のシステムの作用効果が通信時刻によって実現される。すなわち、クライアント端末とサーバとの間における以前の通信時刻を暗号鍵として、この暗号鍵と現在通信時刻とを暗号データとして送信し、これを受信したサーバは、以前の通信時刻を復号鍵として復号したクライアント端末から送信された現在通信時刻をその後の通信の復号鍵とする。したがって、ここでいう前回通信時刻は、前記クライアント端末と前記サーバとの間で、すでになされた通信が正常・成功裡に終了し、そのことが前記クライアント端末と前記サーバとの間で相互承認されている場合の時刻を指す。
【００１１】
（請求項３記載の発明の特徴）
請求項３記載の発明に係るデータ通信システム（以下、適宜「請求項３のシステム」という）は、データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムである。ここで、当該クライアント端末は、当該サーバとの前回通信時刻を通信毎に記憶する記憶手段と、当該記憶手段から取り出された当該前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化する暗号化手段と、当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備えている。一方、当該サーバは、当該クライアント端末から送信された暗号データを受信する受信手段と、当該クライアント端末から送信された当該現在通信時刻を、通信毎に所定のタイミングで前回通信時刻として記憶する記憶手段と、当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号化手段と、を備えている。
【００１２】
請求項３の通信システムによれば、まず、前回通信時刻を暗号鍵として、この前回通信時刻と現在通信時刻とを含む暗号データが、クライアント端末からサーバに送信される。サーバは、受信したこの暗号データを、当該クライアント端末との前回通信時刻を復号鍵として復号する。復号された現在通信時刻は、認証が正常に終了した後に、前回通信時刻として、次回の通信によって当該クライアントから送信された暗号データを復号するための復号鍵として記憶手段に記憶される。このように、共通暗号鍵となる前回通信時刻を、現在以前（直前または予め定めた２回目以上前）の通信時にクライアント端末−サーバ間で取り決めておくことによって、暗号化されたデータとそれに使用された暗号鍵のクライアント端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【００１３】
（請求項４記載の発明の特徴）
請求項４記載の発明に係るデータ通信システム（以下、適宜「請求項４のシステム」という）は、請求項２のシステムであって、前記サーバは、さらに、前記復号化手段により復号化した、前記現在通信時刻および前回通信時刻と、（サーバ側でクライアントからのデータを受信した）現在通信時刻及び前記記憶手段から取り出された当該クライアント端末に係る前回通信時刻と、を比較して認証可否を判定する判定手段を備え、当該判定手段は、両現在通信時刻が所定範囲内（一致を含む）にあること、かつ、両前回通信時刻が完全一致することを充足した場合にのみ認証可と判定するように構成されている。
【００１４】
請求項４のシステムによれば、請求項３のシステムの作用効果に加え、判定手段は、少なくとも次の２要件を充足した場合にのみ認証可と判定し、これによって、第三者による成りすましの有効防止を図る。すなわち、第１の要件は、クライアント端末の現在通信時刻とサーバの現在通信時刻との比較を行い、両者間が所定範囲内にあるか否かである。所定範囲内としたのは、理論的には、通信をともなうコンピュータ処理に要する時間の介在による時差を、また現実的・技術的には、トラフィック等の通信状況やコンピュータ機器の性能差によって生じる時刻測定の誤差を、それぞれ考慮した結果である。一般には、この範囲を狭小にすれば、クライアント端末のアクセス開始とサーバでのその受容の間が時間的に緊密であることの証左となるが、通信回線の混雑等クライアント端末およびサーバの責に帰せしめえない外的な事由によって認証が拒絶され、円滑な運営に支障をきたす可能性が増大する。この所定範囲を定量的にどう定めるかは、具体的な運用状況に応じて決定しなくてはならない。一方、この誤差が上記の合理的範囲を逸脱する場合、すなわち認証を要請してきたクライアント端末側の現在通信時刻とその要請を受信したサーバ側の現在通信時刻が、所定の範囲をこえて隔たっている場合、ネットワーク上でクライアント端末からサーバへ送信されるデータが第三者によって騙取・改変された等を疑う合理的理由があるものと推認し、対策を講じる契機とすることもよい。第２の要件は、前回通信時刻の完全一致である。ここに、誤差の概念が存在しないのは、サーバの持つ前回通信時刻は、クライアント端末との前回の成功裡に終了した通信において現在通信時刻として送信されたもの、すなわちこの成功裡に終了した認証過程で次回認証において使用する前回通信時刻としてサーバとクライアントの両者同意の上で同期をとられたものでありサーバが独自に入手したものではないから誤差を生じ得ないため、完全一致となっている。
【００１５】
（請求項５記載の発明の特徴）
請求項５記載の発明に係るデータ通信システム用のクライアント端末（以下、適宜「請求項５の端末」という）は、サーバとの前回通信時刻を通信毎に記憶する記憶手段と、当該記憶手段から取り出された当該前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化する暗号化手段と、当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、を備えている。
【００１６】
請求項５の端末によれば、まず、前回通信時刻を暗号鍵として、この前回通信時刻とクライアントが現在通信時刻とを含む暗号データをサーバに送信する。サーバは、送信されたこの暗号データを、当該クライアントとの前回通信時刻を復号鍵として復号する。このように、共通暗号鍵となる前回通信時刻を、現在以前（直前または予め定めた２回目以上前）の通信時にクライアント端末−サーバ間で取り決めておくことによって、暗号化されたデータとそれに使用された暗号鍵のクライアント端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【００１７】
（請求項６記載の発明の特徴）
請求項６記載の発明に係るデータ通信システム用のサーバ（以下、適宜「請求項６のサーバ」という）は、クライアント端末から送信された暗号データを受信する受信手段と、当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶する記憶手段と、当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る更新前の前回通信時刻を復号鍵として復号化する復号化手段と、を備えている。
【００１８】
請求項６のサーバによれば、前回通信時刻を暗号鍵として暗号化された暗号データを受信したサーバは、この暗号データを、当該クライアントとの前回通信時刻を復号鍵として復号する。復号された現在通信時刻は、前回通信時刻として、次回の通信によって当該クライアントから送信された暗号データを復号するための復号鍵として記憶手段に記憶される。このように、共通暗号鍵となる前回通信時刻を、現在以前（直前または予め定めた２回目以上前）の通信時にクライアント端末−サーバ間で取り決めておくことによって、暗号化されたデータとそれに使用された暗号鍵のクライアン端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【００１９】
（請求項７記載の発明の特徴）
請求項７記載の発明に係るデータ通信方法（以下、適宜「請求項７の方法」という）は、データを送信するサーバと、当該サーバにより送信されたデータをネットワーク経由で受信するクライアント端末と、を含むデータ通信システムのデータ通信方法である。ここで、当該クライアント端末が、記憶手段から取り出された当該サーバとの前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化するとともに、当該暗号化された暗号データを当該サーバに送信する送信ステップと、当該サーバが、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号化ステップと、当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を行う。
【００２０】
請求項７の通信方法によれば、まず、前回通信時刻を暗号鍵として、この前回通信時刻とクライアントが現在通信時刻とを含む暗号データをサーバに送信する。サーバは、受信したこの暗号データを、当該クライアントとの前回通信時刻を復号鍵として復号する。復号された現在通信時刻は、前回通信時刻として、次回の通信によって当該クライアントから送信された暗号データを復号するための復号鍵として記憶手段に記憶される。このように、共通暗号鍵となる前回通信時刻を、現在以前（直前または予め定めた２回目以上前）の通信時にクライアント端末−サーバ間で取り決めておくことによって、暗号化されたデータとそれに使用された暗号鍵のクライアント端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【００２１】
（請求項８記載の発明の特徴）
請求項８記載の発明に係るデータ通信方法（以下、適宜「請求項８の方法」という）は、請求項７の通信方法であって、前記サーバが、さらに、前記復号化した前記現在通信時刻および前回通信時刻と、現在通信時刻及び前記記憶手段から取り出された当該クライアント端末に係る前回通信時刻と、を比較するとともに、当該両現在通信時刻が所定範囲内にあること、当該両前回通信時刻が完全一致することを前提に、比較結果を一致と判定する判定ステップを行う。
【００２２】
請求項８のシステムによれば、請求項３のシステムの作用効果に加え、請求項４のシステムによれば、請求項３のシステムの作用効果に加え、サーバは、少なくとも次の２要件を充足した場合にのみ認証可と判定し、これによって、第三者による成りすましの有効防止を図る。すなわち、第１の要件は、クライアント端末の現在通信時刻とサーバの現在通信時刻との比較を行い、両者間が所定範囲内にあるか否かである。所定範囲内としたのは、理論的には、通信をともなうコンピュータ処理に要する時間の介在による時差を、また現実的・技術的には、トラフィック等の通信状況やコンピュータ機器の性能差によって生じる時刻測定の誤差を、それぞれ考慮した結果である。一般には、この範囲を狭小にすれば、クライアント端末のアクセス開始とサーバでのその受容の間が時間的に緊密であることの証左となるが、通信回線の混雑等クライアント端末およびサーバの責に帰せしめえない外的な事由によって認証が拒絶され、円滑な運営に支障をきたす可能性が増大する。この所定範囲を定量的にどう定めるかは、具体的な運用状況に応じて決定しなくてはならない。一方、この誤差が上記の合理的範囲を逸脱する場合、すなわち認証を要請してきたクライアント端末側の現在通信時刻とその要請を受信したサーバ側の現在通信時刻が、所定の範囲をこえて隔たっている場合、ネットワーク上でクライアント端末からサーバへ送信されるデータが第三者によって騙取・改変された等を疑う合理的理由があるものと推認し、対策を講じる契機とすることもよい。第２の要件は、前回通信時刻の完全一致である。ここに、誤差の概念が存在しないのは、サーバの持つ前回通信時刻は、クライアント端末との前回の成功裡に終了した通信において現在通信時刻として送信されたもの、すなわちこの成功裡に終了した認証過程で次回認証において使用する前回通信時刻としてサーバとクライアントの両者同意の上で同期をとられたものでありサーバが独自に入手したものではないから誤差を生じ得ないため、完全一致となっている。
【００２３】
（請求項９記載の発明の特徴）
請求項９記載の発明に係るデータ通信プログラム（以下、適宜「請求項９のプログラム」という）は、コンピュータを、ネットワーク経由でクライアント端末が受信するデータを送信するサーバとして機能させるためのデータ通信プログラムである。具体的には、コンピュータを、当該クライアント端末から送信された暗号データを受信する受信手段と、当該クライアント端末から送信された当該現在識別符号を、通信毎に所定のタイミングで前回識別符号として記憶する記憶手段と、当該当該受信手段により受信された暗号データを、当該記憶手段から取り出された当該クライアント端末に係る前回識別符号を復号鍵として復号化する復号化手段と、して機能させ、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップと、当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を実行させる。
【００２４】
請求項９のプログラムによれば、コンピュータを、前記手段として機能させ前記ステップを実行するサーバとして機能させることができる。
【００２５】
（請求項１０記載の発明の特徴）
請求項１０記載の発明に係るデータ通信プログラム（以下、適宜「請求項１０のプログラム」という）は、コンピュータを、サーバにより送信されたデータをネットワーク経由で受信するクライアント端末として機能させるためのデータ通信プログラムであって、コンピュータを、当該サーバに直前の通信で送信した前回識別符号を通信毎に記憶する記憶手段と、当該記憶手段から取り出された当該前回識別符号を暗号鍵として、当該前回識別符号と異なる現在識別符号と当該前回識別符号とを少なくとも含めて暗号化する暗号化手段と、当該暗号化手段により暗号化された暗号データを当該サーバに送信する送信手段と、して機能させ、当該記憶手段から取り出された当該サーバとの前回通信時刻を暗号鍵として、現在通信時刻と当該前回通信時刻とを少なくとも暗号化するとともに、当該暗号化された暗号データを当該サーバに送信する送信ステップと、当該サーバが、当該クライアント端末から送信された暗号データを受信するとともに、記憶手段から取り出された当該クライアント端末に係る前回通信時刻を復号鍵として復号化する復号ステップと、当該クライアント端末から送信された当該現在通信時刻を、通信度に所定のタイミングで前回通信時刻として記憶手段に記憶する記憶ステップと、を実行させる。
【００２６】
請求項１０のプログラムによれば、コンピュータを、前記手段として機能させ前記ステップを実行するクライアント端末として機能させることができる。
【発明の効果】
【００２７】
本発明によれば、暗号化されたデータとそれに使用された暗号鍵のクライアント端末−サーバ間での送受信タイミングをずらすことが可能となり、かつまた暗号鍵の内容が通信毎に変更・更新され、いわばワンタイムパスワード的な機能が発揮されることにより、送受信データのネットワーク上での傍受による暗号解読が著しく困難化し、その結果第三者による成りすましを有効に防止する効果をもたらす。
【図面の簡単な説明】
【００２８】
【図１】通信システムの概略図である。
【図２】サーバの構成を示すブロック図である。
【図３】クライアント端末の構成を示すブロック図である。
【図４】認証手順を示すフローチャートである。
【図５】前回通信時刻の取得手順を示すフローチャートである。
【図６】判定手順を示すフローチャートである。
【図７】パスワードを用いた認証手順を示すフローチャートである。
【図８】複数のクライアント端末を使用する状態を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について説明する。図１は本発明の一実施形態の全体構成を示すブロック図である。
【００３０】
（通信システムの概要）
通信システム１は、通信回線（ネットワーク）であるインターネット５０を介して互いに接続されたサーバ１０と、少なくとも１個のクライアント端末２０と、を含めて構成してある。
【００３１】
サーバ１０はインターネット５０を介して予め定められたクライアント端末２０にサービスを提供し、かつ、それ以外のコンピュータには本実施形態に係るサービスを提供しない機能をもつコンピュータに、以下に述べる各機能を実現するためのプログラム（データ通信プログラム）を実行させることにより実現することができる。サービスとはオンラインバンキングや、会員制ネットゲームなどであり、例えば２４時間３６５日ノンストップで動いている。このプログラムは、図１に示すような持ち運びできる記録媒体１５からコンピュータにインストールすることとしてもよいし、ネットワーク上のサーバからダウンロードすることとしてもよい。
【００３２】
クライアント端末２０は、サーバ１０から予めサービスを受ける権利をもったコンピュータに、以下に述べる各機能を実現するためのプログラム（データ通信プログラム）を実行させることにより実現することができるこのプログラムは、図１に示すような持ち運びできる記録媒体２５からコンピュータにインストールすることとしてもよいし、ネットワーク上のサーバからダウンロードすることとしてもよい。クライアント端末２０は、サービスを受けたいときにだけ利用者によって電源を投入されて動作を行う。図１に示すクライアント端末２０は、いわゆるパーソナルコンピュータに限定されず、通信機能付きＰＤＡ（Personal Digital Assistant）や通信機能付きゲーム機、携帯電話機、タブレット端末、スマートフォン、モバイル端末などのネットワークを介して、サーバよりサービスの提供を受ける機能を持つ端末という概念とする。
【００３３】
ＮＴＰサーバ３０は、原子時計などの高精度な日時情報をNetwork Time Protocolによってインターネット５０上の機器に配信するコンピュータである。サーバ１０と、クライアント端末２０と、ＮＴＰサーバ３０とは、それぞれが通信回線であるインターネット５０と接続されている。図１ではクライアント端末２０およびＮＴＰサーバ３０は１つしか描かれていないが複数存在してもかまわない。
【００３４】
（サーバの構成）
図２は、サーバ１０の構成を示すブロック図である。ＣＰＵ（Central Processing Unit）１００は、中央演算装置でありプログラム（データ通信プログラム）を実行して、計算や判断や他のブロックへの指示命令を行う。ＣＰＵ１００は、暗号化／復号装置（暗号化／復号手段）１０１、判定装置（判定手段）１０３、サービス許諾装置（サービス許諾手段）１０５として機能する。通信装置１５０は、送受信手段として機能する。ＲＡＭ１１０（Random Access Memory）は、ＣＰＵ１００がプログラムを実行する際にワークエリアとして利用する。ＲＡＭ１１０は、一時記憶用のメモリである。
【００３５】
記憶装置１２０は、プログラムや各種のデータを記憶し、かつ、電源を切ってもデータが消えない機能をもつ非揮発性の記憶手段である。記憶装置１２０にはハードディスクのような磁気記憶装置、ＣＤやＤＶＤのような光記憶装置、フラッシュメモリのような半導体記憶装置、およびこれらの組み合わせが用いられる。本実施形態の記憶装置１２０には基本ソフト（ＯＳ）や、アプリケーションプログラムや、各種のデータが記憶されている。これらに加え、記憶装置１２０にはクライアントＤＢ１２１が置かれている。クライアントＤＢ１２１の中には、クライアント・アカウントテーブル１２１ａ及び認証履歴テーブル１２１ｂ（図５）が置かれている。
【００３６】
操作装置１３０は、運営者がサーバ１０を操作するとき、データを入力するときに利用するマンマシン入力装置である。キーボードやマウスおよびタッチパネルなどが用いられる。表示装置１４０は、運営者がサーバ１０から情報を受け取るときに利用するマンマシン出力装置であり、例えばＣＲＴディスプレイや液晶ディスプレイ（表示手段）およびプリンタなどが用いられる。
【００３７】
通信装置１５０は、サーバ１０が他の装置と通信を行うときに用いる。本実施形態の通信装置１５０は、例えばインターネット５０を介して通信を行うためにＩＰ（Internet Protocol）通信を行う事が出来る有線ＬＡＮ装置や、無線ＬＡＮ装置である。
【００３８】
リアルタイムクロック１６０（後述するリアルタイムクロック２６０も同じ）は、日時情報を保持するカレンダー付き時計である。このリアルタイムクロック１６０は、バッテリーバックアップされておりサーバ１０の電源を切ってもバッテリーが切れない限り日時情報を保持する。リアルタイムクロック１６０は、何らかの手段で日時合わせを行わないと１日あたり数秒間から数十秒間の誤差が発生し得るので、これを矯正可能に構成しておくことが好ましい。本実施形態のサーバ１０は２４時間３６５日ノンストップで動いており、ＣＰＵ１００は、プログラムによって定期的にインターネット５０を介してＮＴＰサーバ３０に日時情報の問い合わせを行い、リアルタイムクロック１６０の日時合わせを行っている。したがって、上記日時情報は「矯正済み」の日時情報である。バス１９０は接続された各ブロック間のデータ伝送を行う。
【００３９】
（クライアント端末の構成）
図３は、クライアント端末２０の構成を示すブロック図である。クライアント端末２０の構成は、上述したサーバ１０のそれと基本的に同じであるから、同じ部材名で番号のみが異なる場合は、クライアント端末２０の部材とサーバ１０の部材は同じ構成であるものであるとしそれらの説明を省略する。以下の説明では、異なる点について説明する。
【００４０】
クライアント端末２０は、ＣＰＵ２００、ＲＡＭ２１０、記憶装置２２０、操作装置２３０、表示装置２４０、通信装置２５０、リアルタイムクロック２６０（クロック２６０）及びバス２９０を備えている。ＣＰＵ２００は、各種基本機能を実行するとともに、サーバ１０に対する矯正済みの通信時刻に係るデータを、暗号化する暗号化手段としても機能する。通信装置２５０は、自己のクライアント識別ＩＤを当該サーバに送信する送信手段と、被認証データを当該サーバへ送信する送信手段としての機能を有する。バス２９０は接続された各ブロック間のデータ伝送を行う。
【００４１】
（通信システムによる通信方法）
以下、図面を参照しながら、通信システム１による通信方法について説明する。通信システム１におけるサーバ１０がサービス享受者たるクライアント（クライアント端末２０）を識別するのに用いる要素は、現在通信時刻と前回通信時刻ｙｙｙを少なくとも必要とする。本実施形態では、これら通信時刻２項目の他に、クライアント識別ＩＤ（以下、「識別ＩＤ」と略称する）とパスワードを加えた４項目（以下、適宜「識別４項目」という）の認証データを要素としている。４項目のうち、識別ＩＤとパスワードは、サービス提供者（サーバ運営者）とサービス享受者（ユーザーまたはクライアント）間でサービス提供の契約を締結する時（もしくはその後）に、なんらかの方法で取り決められるものとする。このとき、サービス提供者はサービス教授享受者に識別ＩＤａａａを配布し、サービス享受者は、提供された識別ＩＤａａａに対応するパスワードｂｂｂを、サービス提供者に申告する。この申告に代え、サービス提供者が識別ＩＤごとにあらかじめ決定したパスワードをサービス享受者に配布する方式を採ってもよい。いずれにしても識別ＩＤａａａとパスワードｂｂｂは、サービス提供・享受の前提として事前に決定されていることとする。
【００４２】
（クライアント端末認証の開始）
図４を参照する。クライアントは、ネットワーク（インターネット５０）に接続したクライアント端末２０より、自己が有償もしくは無償のサービス（ここでは、有償の会員制ネットゲームを前提とする）を利用しようとして所定のサイトにアクセスを行う。その際、クライアントは、識別ＩＤａａａおよびパスワードｂｂｂを、操作装置２３０から入力する（Ｓ２０１０）。これでクライアント認証が開始される（Ｓ２０２０）。認証開始が指示されたクライアント端末２０内部では、そのための準備を次のとおり行う。
【００４３】
（クライアント端末での認証準備）
指示を受けたクライアント端末２０内では、クライアント端末２０のＣＰＵ２００が、記憶装置２２０から前回通信時刻ｙｙｙと現在通信時刻（年月日を含む、前回通信時刻ｙｙｙも同じ）ｚｚｚを取得する（Ｓ２０３０，Ｓ２０４０）。本実施形態での前回通信時刻ｙｙｙは、サーバ１０との直前（１回前）の通信時刻をいい、同じく現在通信時刻ｚｚｚは現在の通信時刻をいう。これらの通信時刻は、詳細は後述するが、いずれも認証を試みることを開始した時刻をいい、クロック２６０から取得するのが一般的である。図４のフローでは、前回通信時刻ｙｙｙの取得を先行させているが、現在通信時刻ｚｚｚの取得を先行させてもよいし、両者同時であってもよい。なお、「前回通信時刻」について、その設定がどのようにしてなされるかの詳細は後述するが、差し当たりここでは、前回通信時刻ｙｙｙがクライアント端末２０の記憶装置２２０にすでに記憶されていること、ならびに前回通信時のサービス提供が"正常に"行われていることを前提に、サーバ１０の記憶装置１２０にも同一の「前回通信時刻ｙｙｙ」が記憶されていることの２点が最低要件となる。
【００４４】
なおここで現在時刻は、図４においてＮＴＰサーバにアクセスすることによって取得することになっているが、サーバの構成の説明の中で既述した前提があれば、クライアント端末内部のリアルタイムクロックを参照して、それに替えることも可能である。
【００４５】
通常、クライアント端末２０とサーバ１０へとの間の、識別４項目からなる認証データの送受信は、通信プロトコルのレベルでＳＳＬ等により暗号化されているが、本実施形態では、さらに、データの秘匿性を高めるために、通信プロトコルレベルで提供されている既存暗号とは独立に、自前でも暗号化するようになっている。これによって、仮にＳＳＬ等の既存暗号が破られたとしても、暗号解読者に暴露されるのは、識別４項目の中のクライアント識別ＩＤａａａのみである。パスワードｂｂｂ、前回通信時刻ｙｙｙ及び現在通信時刻ｚｚｚの３項目についてはフェール・セーフな認証を可能にする。
【００４６】
一般に、公開鍵暗号方式はユーザが暗号化を意識する必要がなく、その点でユーザに負荷をかけないという利点を有するが、半面共通鍵方式に比較して暗号強度で劣り、また処理時間の負担が大きいという欠点が指摘されている。他方、共通鍵暗号方式は、（公開鍵暗号方式との比較で）以上のような優位点を有するにもかかわらず、鍵の受け渡しをどうするかということが、データの受け渡しと同等ないしはそれ以上の課題として立ちはだかっていることは周知のとおりである。
【００４７】
（鍵の受け渡しを伴わない共通鍵暗号方式の採用）
逆に言えば、鍵の受け渡しをともなわない共通鍵暗号方式は、相対的には非常に優れた暗号方式だということになる。そこで、本実施形態では、クライアント端末２０がサーバ１０にアクセスして認証を行うに必要な識別４項目のうち、パスワードｂｂｂ、前回通信時刻ｙｙｙ及び現在通信時刻ｚｚｚの３項目に係るデータを、前回通信時刻ｙｙｙを用いて共通鍵暗号方式で暗号化し、パスワードｂｂｂ、前回通信時刻ｙｙｙ及び現在通信時刻ｚｚｚの３項目に係る暗号データを生成する（Ｓ２０５０）。前掲したクライアント端末での認証準備の欄で述べたとおり、同一の（同期がとられた）前回通信時刻ｙｙｙがクライアント端末２０の側とサーバ１０の側で共有されていれば、これが可能となる。この共有が成立していることは、以下の記述を読み進むことによって確認されるはずである。
【００４８】
前回通信時刻ｙｙｙを暗号鍵として（単独）使用することに対してのありうる批判として、たとえばそれが周知であることによって全件検索等の手法によって解読されうる余地があるのではないか（つまり時刻というフォーマットがわかっていれば、たとえばこの１ヶ月間に前回通信がおこなわれたであろうという蓋然性にもとづいて前回時刻を特定しようとすれば60秒×60分×24時間×30日＝2,592,000、高々300万とおりのケースを総当りでためせば暗号は解読されてしまう）ということがあげられるかもしれない。しかしここで前回通信時刻ｙｙｙを暗号鍵として使用することの核心は、暗号データの受け渡しと同じタイミングで鍵を受け渡す必要がないという点であり、鍵の複雑さについては別の問題としてあつかいうる。すなわち、鍵が前回通信時刻を"含んでいれば"と言い直すことによって、受け渡しの問題と鍵の複雑さの問題は解決する。たとえばパスワードと前回通信時刻を組み合わせることによって、鍵の複雑さとしては、パスワードより強力でありかつ前回に受け渡された時刻が判明しないかぎり鍵は解読できない（すなわち認証の度に暗号鍵は、その内部に前回時刻を有することによって変化する）という意味で両方の問題を解決できる。以下の説明においても、前回通信時刻を暗号鍵に使用するという記述を続けるが、その趣旨としては以上のような意味が込められていることに留意しなければならない。
【００４９】
（クライアント端末による暗号データの送信）
クライアント端末２０は、サーバ１０の認証サイトに、識別ＩＤａａａのデータと、暗号データ（パスワードｂｂｂと、現在通信時刻ｚｚｚ及び前回通信時刻ｙｙｙに係るデータ）を送信する（Ｓ２０６０）。
【００５０】
（サーバによる暗号データ受信）
クライアント端末１０により送信された識別ＩＤａａａ及び暗号データは、サーバ２０により受信される（Ｓ２０７０）。
【００５１】
（現在通信時刻の取得）
サーバ１０は、これに限定する必要はないが、たとえば、クライアント端末２０から認証のためのアクセスを感知したタイミングで、サーバ１０側の現在通信時刻ｚｚｚを取得する（Ｓ２０８０）。現在通信時刻◎の取得方法は、後述する。この現在通信時刻ｚｚｚは、クライアント端末２０から送信された認証データをサーバ１０が受信した時刻を意味する。
【００５２】
なおここで現在時刻は、図４においてＮＴＰサーバにアクセスすることによって取得することになっているが、既述した前提がサーバにも適応できるのであれば、サーバ内部のリアルタイムクロックを参照して、それに替えることも可能である。
【００５３】
（暗号データの復号）
サーバ１０のＣＰＵ１００は、受信したクライアント端末２０の識別ＩＤａａａをキーにして、クライアントＤＢ１２１（図５参照）を検索し、対応するパスワードｂｂｂ、前回通信時刻ｙｙｙを取り出す（Ｓ２０９０）。保存してあるサーバ１０から取り出した前回通信時刻ｙｙｙを（復号）鍵として、受信した暗号データ（パスワードｂｂｂ、現在通信時刻ｚｚｚ、前回通信時刻ｙｙｙ）を所定の共通鍵暗号方式で復号し、復号によって得たパスワードｂｂｂ、現在通信時刻ｚｚｚ及び前回通信時刻ｙｙｙは、ＲＡＭ１１０の中に記憶させておく（Ｓ２１００）。
【００５４】
（サーバ側ＤＢからのクライアント情報の検索・取得）
一旦、図４から離れ、図５を参照しながら、図４に示したＳ２０９０の動作をより具体的に説明する。ここでは、受信した識別ＩＤが「ＢＣＤ３４５」であったとする（Ｓ３０３０）。ＣＰＵ１００は、識別ＩＤ「ＢＣＤ３４５」をキーとして検索し、対応するパスワード「ＧＲＯＴＨＥＮＤＩＥＣＫ」をクライアントＤＢ１２１のクライアント・アカウントテーブル１２１ａから、また、対応する前回通信時刻「２０１２／１２／２  ２：４４：１８」を認証履歴テーブル１２１ｂから、それぞれ得る（Ｓ３０４０、Ｓ３０５０）。検索によって得たこのパスワードを検索パスワード、同じくこの前回通信時刻を検索前回通信時刻と定義する。
【００５５】
（データの比較：パスワード）
ここで、図４に戻り、説明を続ける。Ｓ２１００で復号・記憶を終えたＣＰＵ１００は、復号した識別ＩＤとパスワードのそれぞれを照合することによって、クライアント端末２０の認証可否を判定する（Ｓ２１１０）。この認証手順を、図６を参照しながら説明する。ＣＰＵ１００は、まず、パスワード同士の比較を行い、検索パスワードがパスワードｂｂｂと一致すれば認証「可」と判定しＳ４０２０へ進み、不一致なら認証「否」としてＳ４０５０へ進む（Ｓ４０１０）。Ｓ４０５０では、認証不可のメッセージをクライアント端末２０に送信し、これを表示装置２４０（図３）に表示させ、操作者に認証手続のやり直しを促す。
【００５６】
（データの比較：現在通信時刻）
次いで、Ｓ４０２０に進んだＣＰＵ１００は、正当性が確認できたクライアント端末２０の現在通信時刻とサーバ１０の現在通信時刻との比較を行い、現在通信時刻ｚｚｚと現在通信時刻ｚｚｚが、所定の許容範囲に含まれていれば「合」としてＳ４０３０へ進み、含まれていなければ「否」としてＳ４０５０へ進む。すなわち、クライアント端末２０が認証を開始した時刻Ｔと、サーバ１０がクライアント端末２０からの認証データを受信した時刻Ｔ´との差異が、サービス提供者（サーバ運営者）の適宜指定した時間がΔｔ（＞０）という所定範囲内である要件（Ｔ−Ｔ´＜Δｔ）を満たせば「可」、そうでなければ「否」とみなす。なお、現在通信時刻の比較を行うのは、クライアント認証データがインターネット５０上で悪意ある第三者によって騙取・改変されてサーバ１０に送信された場合を想定している。この第三者の介在は、ＴとＴ´（正常の場合Ｔ≦Ｔ´）との時間差、通常のデータ送受信に要する平均的時間からの逸脱となって現れることを想定している。なお、ここで、Ｔ＝Ｔ´を排除していないのは、時刻の最小単位が例えば秒である場合、サーバ１０やクライアント端末２０等のコンピュータを含めた通信環境が理想的な状態で認証処理が行われたならば、ＴとＴ´との誤差が１秒以内に収まり、その結果デジタル表示としてはＴ＝Ｔ´となる可能性があるからである。
【００５７】
よって、Δｔは、一般的にはネットワーク回線のトラフィック情況やクライアント端末群の分布情況（たとえば、国内のみかワールドワイドか）また提供するサービスの種類等を総合的に勘案して、サービス提供業者が任意に設定できる。場合によれば各特性を考慮してクライアント端末毎に個別にΔｔを定めるように設定してもよい。余りΔｔを厳格にすると（すなわち、Δｔが小さすぎると）、正規クライアントであるにもかかわらず、ネットワークのトラフィック情況によって頻繁に認証が失敗する結果となり、クライアント利便性を損なう結果をまねくことに留意しなければならない。一旦設定したΔｔは硬直的である必要はなく、状況変化等に応じて、定期・不定期に変更することを妨げない。言うまでもなく、現在通信時刻比較の趣旨に合致するかぎり、上記不等式Ｔ−Ｔ´＜Δｔは適宜Ｔ−Ｔ´≦ や絶対値｜Ｔ−Ｔ´｜＜Δｔ等で置き換えることができる。なお、上記＜を、≦に置き換える場合には、Δｔの満たすべき要件として０≦Δtとなる。
【００５８】
図６に戻り、説明を続ける。現在通信時刻が「可」であった場合のＣＰＵ１００は、さらにクライアント端末２０の前回通信時刻とサーバ２０の前回通信時刻との比較を行い、検索前回通信時刻が前回通信時刻ｙｙｙと一致すれば「可」と判定し、クライアント端末２０に所定のサービスを提供する（Ｓ４０４０）。一方、不一致なら「否」としてＳ４０６０へ進む。Ｓ４０６０におけるＣＰＵ１００は、認証不可のメッセージをクライアント端末２０へ送信するとともに、サービス提供業者への報告を催告する。催告するのは、成りすましが行われた可能性があること、及び、成りすましが行われていたとしてその対策を迅速に打つべきであること、をクライアント端末２０の使用者に伝えるためである。
【００５９】
（正当性チェックの評価・ユーザ適格性の判断）
これまで説明した認証可否の判定は図４に示すように、Ｓ２１１０→Ｓ２１２０→Ｓ２１３０の順で行われる。一方、図４での図示は省略してあるが、上記いずれかのステップで「否」が発生した場合には、後続のステップは行う必要はなく、認証失敗のメッセージをクライアント端末２０に送信し、サーバ１０側の認証処理は終了する。Ｓ２１１０、Ｓ２１２０及びＳ２１３０すべてのチェックをクリアした場合は、次の（前回通信時刻の更新処理）に進む。ここで「否」が発生した場合には、サーバ１０側ではその評価（ユーザの適格性）とそれに対応した処理をほどこす必要がある。これについて、次項以下で、図６に即して、一般的に考慮すべき点を述べる。
【００６０】
すなわち、Ｓ２１１０で「否」と判定した場合（図４）、パスワードの入力ミスは正規ユーザでもありうるがゆえに、クライアント端末２０側には該当エラーメッセージを送信し、認証のリトライをうながす（Ｓ４０５０）。ただし、同一エラーを頻繁に反復している場合は、予め定めた限度回数をこえての認証リトライを許可しない（たとえば、３回を限度回数とし、４回目以後のアクセスを拒否する）等、要注意ユーザとして別途対応をほどこすことを考えてもよい。そのためには、図５に示したサーバ１０内の認証履歴テーブル１２１ｂの中に、認証可のみならず認証不可の場合の履歴も記録できるようにすることが好ましい。
【００６１】
Ｓ２１２０で「否」と判定した場合、これは、一般的には回線トラフィックの予期しない増大等のアクシデントによる遅延に起因して正規ユーザにも生起しうる事象だが、第一義的には、先に示したΔｔの設定と関連してサービス提供業者（サーバ１０運営者）のポリシー・運営方針にかかわる。常識的には、先に述べたＡ．のケースと同様、ある限度内においてはエラーメッセージと認証のリトライをうながすメッセージを送信し、限度をこえた場合は、要注意ユーザとして扱うといった対応が考えられる。
【００６２】
Ｓ２１３０で「否」の場合は、明らかに「成りすまし」等の不正もしくはシステム不具合が発生しているとみなすことが好ましい。すなわち、前回通信時刻がサーバ１０のそれとクライアント端末２０のそれとが不一致の場合には、当該クライアント端末２０の認証（したがってまたサービス利用）が今後一切不可能になること、ならびにこの事態を解消するためにはサービス提供業者による調査・対応（クライアント端末２０側の前回通信時刻のリセット等）が必要である旨を通知する（Ｓ４０６０）。なお、サーバ１０側では、認証の可否にかかわらず通信経路情報等できるかぎり詳細・広範な認証履歴情報を収集・蓄積することが、「成りすまし」等の事案発生時の事後的な分析・トレースのためにも有効な手立てとなることに留意して、認証履歴テーブル１２１ｂを設計することが好ましい。
【００６３】
（前回通信時刻の更新処理）
図４に戻り、説明を続ける。認証が成功した場合、サーバ１０はクライアント端末２０に認証可のメッセージを送信する（Ｓ２１４０）。このメッセージを受信したクライアント端末２０では、今回の認証で使用した現在通信時刻を前回通信時刻に置き換える（Ｓ２１６０，Ｓ２１７０）。これが次回認証で前回通信時刻として使用される。置き換えた前回通信時刻を記憶したクライアント端末２０は、その旨のメッセージをサーバ１０に送信する（Ｓ２１８０，Ｓ２１９０）。このメッセージを受信したサーバ１０側は、クライアント端末１０の前回通信時刻ｙｙｙを、今回の認証でクライアント端末２０から送信された現在通信時刻ｚｚｚで保存（更新）する（Ｓ２２２０，Ｓ２２３０）。ただし、ここで「更新」というのは、認証履歴テーブル１２１ｂ（図５）の形で情報をサーバ１０に保存することを仮定するならば、今回履歴として新規レコードを作成（挿入）する（旧レコードに上書きしない）ことを意味する。その際の前回通信時刻フィールドに、クライアント端末１０から送信された現在通信時刻ｚｚｚがセットされることになる。ここまでの処理が正常に行われた場合、クライアント端末２０側の前回通信時刻ｙｙｙとサーバ１０側の前回通信時刻ｙｙｙは、同一になる。この後、サーバ１０は、認証作業を終了し、クライアント端末から要求されたサービスの提供を許可する（Ｓ２２４０）。ここで、クライアント端末２０からサービスの提供要求があった場合に（Ｓ２２５０）、サーバ１０は、要求してきたクライアント端末２０へサービスを提供する（Ｓ２２６０）。
【００６４】
（前回通信時刻の更新・同期に失敗した場合）
サーバ１０側での認証（Ｓ２１１０，Ｓ２１２０，Ｓ２１３０）が成功して以降、サービスの提供が許可（Ｓ２２４０）されるまでの過程で、通信の中断・不通が原因でサーバ１０とクライアント端末２０との間で前回通信時刻の同期（共有）に失敗するケースとして次の２点が想定される。一つは、サーバ１０側での認証が成功したが、なんらかの理由で成功メッセージがクライアント端末１０側に到達しなかったケースであり（Ｓ２１４０の失敗）、他の一つはクライアント端末２０から前回通信時刻保存のメッセージがサーバ１０に到達しなかった（Ｓ２１９０の失敗）ケースである。これらのそれぞれに対して、サーバ１０ならびにクライアント端末２０でおこなわなければならないリカバリー処理は次のとおりとなる。
【００６５】
一つ目のケース.の場合、サーバ１０から認証可能のメッセージが送信されてこないことから（Ｓ２１４０）、クライアント端末２０は、Ｓ２１８０の前回通信時刻の保存（更新）ならびにＳ２１９０のメッセージ送信は行えないと判断する。一方、サーバ１０は、メッセージを送信（Ｓ２１４０）したとしても、クライアント端末２０からの応答（Ｓ２１９０）が得られないことになるので、前回通信時刻の記憶（更新）（Ｓ２２３０）を行うことができない。その結果、クライアント端末２０とサーバ１０において、共に認証データ（特に前回通信時刻）の更新（同期）は行われていない。このため、サーバ１０は、今回の認証をキャンセルして、たとえば、クライアント端末２０による再度認証作業の開始を待って認証作業を継続するように設定することができる。
【００６６】
二つ目のケースの場合、クライアント端末２０は前回通信時刻の更新（Ｓ２１８０）を行い、メッセージをサーバ１０に送信（Ｓ２１９０）するだけで（もっとも、サーバ１０はこれを受信しない）、認証作業についてはなにも行わない。サーバ１０側では、Ｓ２１９０のメッセージを受信されないとき、その原因として考えられるのは、次の２点である。つまり、何らかの理由により通信が遮断され、これによって、第１は、サーバ１０自身が送信したＳ２１４０のメッセージがクライアント端末２０に到達しなかったこと、第２は、クライアント端末２０から送信されるＳ２１９０のメッセージが到達しないことが推測される。
【００６７】
第１の場合は、前記二つのケースのうちの前者と同様に、クライアント端末２０側の前回通信時刻の更新（Ｓ２１７０）を未遂とみなし、サーバ１０自身も前回通信時刻の更新（Ｓ２２３０）を控えるべきである。しかし、第２の場合では、クライアント端末２０による前回通信時刻の更新（Ｓ２１７０）は終了しているが、これにサーバ１０が同期するためには、サーバ１０がＳ２２３０の作業を行う必要がある。しかし、この場合におけるサーバ１０は、クライアント端末２０の更新状態を知らないので前回通信時刻の更新（Ｓ２２３０）を行うことができない。ゆえに第２の場合、正常系の処理では解決ができず、たとえば、クライアント端末２０における前回通信時刻の更新の有無を何らかの方法で知る等の異常系の処理・対応が必要となる。
【００６８】
（初回認証における前回通信時刻）
図４に示す各ステップを正常に実行されることにより、サーバ１０によるクライアント端末２０の認証は終了し、クライアント端末２０にはサーバ１０から所定のサービスが提供される（Ｓ２２６０）。サービスセッション終了後、クライアント端末２０が再度サービスの提供を欲する場合には、上記に述べたステップ反復すればよい。ただし、以上の記述では、認証時の前回通信時刻はサーバ１０とクライアント端末２０側で共有されて存在することが認証の前提となっていた。したがって、両者間で初めての通信する場合において、つまり、前回通信時刻が不存在な状態で認証（初回認証）する場合において、この不存在の前回通信時刻をどう設定するかの問題が残されている。これについて以下に述べる。
【００６９】
（初回認証の対処法１）
一番簡単な方法としては、識別ＩＤやパスワードと同様な扱いをすることである。すなわち、先に述べたとおり、認証処理以前に識別ＩＤとパスワードはサービス提供業者とユーザ（クライアント）間で取り決められている。これに準じて、サービス提供業者がクライアントに識別ＩＤを配布する際に、初回の前回通信時刻を併せて配布し、クライアント端末２０に設定させるか、またはクライアントがパスワードをサービス提供業者に申告する際に、同時に初期前回通信時刻をも申告する方法が例として挙げられる。このような方法を採用することによって、初回認証時のみに使用される前回通信時刻をサーバ１０とクライアント端末２０とで共有する（同期をとる）ことができるので、初回認証であっても２回目の認証と同じステップで認証作業を実行することが可能になる。
【００７０】
（初回認証の対処法２）
一方、上記した対処法１とは、真逆の対処法もある。この場合は、前回通信時刻の受け渡しを行わない。この場合は、サーバ１０もクライアント端末２０も、前回通信時刻が存在しないことをもって初回認証であることは認識するように設定し、これを利用して、初回認証では特別な初回処理を設定する。
【００７１】
図７にその要領を記す。要点は、初回認証処理で欠ける前回通信時刻の役割をパスワードに肩代わりさせることにある。両者の違いは、次の２点である。第１は、図４には存在する前回通信時刻に係るステップＳ２０３０及びＳ２１３０（何れも破線で囲ったステップ）が図７にはない点、第２は、図４で共通鍵として使用される前回通信時刻の代わりに、図７ではパスワードが使用されている点である。上記２点以外は、両図間ですべて同じである。なお、図７は図４をテンプレートとして作成した。両図で共通する部分については図２の記載と同じ記載を図７に付し、異なる部分について異なる記載を記した。以下、図７の処理（２回目以降の認証処理）とのちがいに重点をおいて初回認証処理の説明を行う。
【００７２】
図７において、前回通信時刻の取り出し（Ｓ５０３０）は、前回通信時刻が存在しないので行わない（行えない）。次いで、クライアント端末２０は、パスワードを共通鍵としてパスワードと現在通信時刻を暗号化して暗号化データを生成する（Ｓ５０５０）。前回通信時刻は存在しない。そして、この暗号データをサーバ１０に送信する（Ｓ５０６０）が、この中には当然前回通信時刻は存在しない。これを受け取ったサーバ１０は、識別ＩＤに係る前回通信時刻データが存在しないことを、たとえば認証履歴テーブル１２１ｂ（図５）を検索してヒットするレコードがないことによって認識する。この場合におけるサーバ１０は、復号鍵を前回通信時刻ではなくパスワードに切り替えて復号をおこなう（Ｓ５１００）。認証チェックにおいて前回通信時刻の比較（Ｓ５１３０）は行わない（行えない）。後は図４に示すステップと同様のステップを実行すればよい。この初回認証によってサーバ１０とクライアント端末２０で同期がとれた現在通信時刻が、２回目の認証処理の前回通信時刻となる。
【００７３】
以上が、初回認証も含めて本発明の提案する実施内容の基本形である。次は、この基本形を、ICT環境の動向に対応させた応用形について述べる。
【００７４】
（端末に依存しないサービス提供にも適用）
ユビキタス社会を志向する通信インフラ整備に連動したモバイル端末の急速に普及した中で、あるクライアントが使用するクライアント端末は決して１台に限られるものではない。同じクライアントが上記とは別のクライアント端末（たとえば、タブレット端末やスマートフォン）を使って"いつでもどこででも"ネットワークに接続し同じ識別ＩＤや同じパスワードを用いてサービスを受けられることが求められている。このような状況に鑑みると、先に提案した通信システムによれば、クライアント端末２０における前回通信時刻は（初回認証を除けば）自身内部の記憶領域に記憶された前回通信時刻であり、そのことをクライアントは直接意識する必要はなかったし、またできなかった。すなわち、先に提案した通信システムは、クライアントの識別はそのままクライアント端末２０そのものの識別であって必ずしもクライアント個人を識別するものではない。しかし、あるクライアントが、たとえば職場で使用するクライアント端末（たとえば、パソコン）に割り当てられた識別ＩＤやパスワードと同じものを使って、外出先に携帯したクライアント端（たとえば、スマートフォン）からサービスを受けられること、またその逆に職場に帰ったならばクライアント端末（たとえば、パソコン）での使用が可能であることが好ましい。これも、本発明の射程範囲内である。この点を、次項以下で詳しく述べる。
【００７５】
（複数のクライアント端末に対するサービス提供）
これを実現するために本実施形態では、クライアント端末２０に次の２つの機能を設けてある。その機能とは、（１）前回通信時刻を外部へ取り出す時刻取出機能と、（２）前回通信時刻を外部から入力する時刻入力機能である。これらの機能を設けることにより、前項で述べた例を再掲すれば、ユーザ識別ＩＤとパスワードに加え、そのクライアントが職場のパソコンから取り出した前回通信時刻を、外出先で使用するスマートフォンに入力することにより、職場で受けるサービスと同じサービス（たとえば、メール配信サービス）を、パソコンの認証と同じ認証を経て受けることができる。いわば、前回通信時刻のポータブル化を図ることができる。時刻取出機能とは、たとえば、所定の操作を行うことにより、対象となるサービスを提供するサーバとの前回通信時刻を、たとえば、クライアント端末の表示画面上に表示等することによって、クライアントが認識可能にする機能のことをいう。メール送信による前回通信時刻の取り出しも（通信時刻入力も含め）不可能ではないが、成りすましに遭遇する危険性をなるべく少なくするためには、クライアント端末内部の秘匿情報を平文の形でネットワーク上に露出させることは、極力さけるべきである。時刻入力機能とは、クライアントが認識した前回通信時刻を、たとえば、キーボードやマウス等を使って、サービスを受けるためのクライアント端末に入力し、その記憶装置に記憶させるための機能のことをいう。
【００７６】
図８に即してより詳細に説明する。ここでは、メインマシンとして常に使用されるクライアント端末（パソコン２００Ａ）と、これとは別の場所に設置してあり時々使用されるクライアント端末（パソコン２００Ｂ）とを想定する。パソコン２００Ａを使用する際のクライアントＸは、あるサービスを利用しようとするとき、識別ＩＤとパスワードだけを入力するだけで認証を行っている。なお。パソコン２００Ｂは、前回通信時刻を記憶していないことを除き、パソコン２００Ａと同じハード的・ソフト的機能を備えている。
【００７７】
ここで、パソコン２００Ｂからサービスを利用することが必要になったクライアントＸは、その時刻取出機能を使ってパソコン２００Ａから前回通信時刻を取り出し（表示画面に表示させ）、これを視覚的に把握する（図８（１）（２））。クライアントＸは、この取り出した前回通信時刻を、たとえば、紙にメモしておき、パソコン２００Ｂの操作を行う。
【００７８】
具体的にいうと、クライアントは、クライアント端末２００Ｂから取りだした前回通信時刻を、その時刻入力機能（ここでは、キーボードから）を用いてパソコン２００Ｂに入力して記憶させる（図８（３））。これによりクライアントＸは、パソコン２００Ａで使用する識別ＩＤとパスワードを使って（従来の基本形の認証が利用できる）パソコン２００Ｂ上でサービスを利用することができる。なお、パソコン２００Ｂで一回でも認証が成功したなら、その認証に係る前回通信時刻はパソコン２００Ｂの中で自動更新されるため、その後におけるパソコン２００Ａ内の前回通信時刻はもはや正当な認証の対象とはなり得ない。したがって、このままではパソコン２００Ａから得ようとしても、サービス提供は許可されないことになる。ここで、クライアントＸが再びパソコン２００Ａでサービスを利用したい場合には、上記したパソコン２００Ａからパソコン２００Ｂへの"のりうつり"操作と同じ操作を、パソコン２００Ｂからパソコン２００Ａに対し施せばよい。以上により、クライアントＸは、本願発明に係るハード的・ソフト的機能を備えた任意のクライアント端末から認証を行い、またサービスを受けることが可能となる。なお、上述した時刻取出機能と時刻入力機能は、クライアント認証の基礎をなすものであるから、本機能を使用できるものは正規ユーザに限られる必要がある。そのために、本機能を利用できるのは正しく（識別ＩＤと）パスワードを入力できるものに限られる等の制限をもうけなくてはならない。
【００７９】
（既存認証システムへのアドオン効果）
現在、認証において識別ＩＤとパスワード（のみ）を使用する方式が一般的かつ広範に採用されている。しかしこの方式について指摘される問題点として次の2点がある。まずサービス提供者のシステム設計の問題として、少なくとも、第１に、回線上を通過するデータの暗号化の種類が限定されていて（公開鍵暗号等）その強度に不安があることと、第２、前掲の背景技術の欄でも述べたとおり、情報セキュリティを強化するためには、パスワードは頻繁に変更しかつその内容が容易に他者に類推されないもの、一般的には長い・複雑なものを設定せよと推奨されるが、これにクライアントがついて行けないということがある。
【００８０】
他者に類推不可能なものは多かれ少なかれクライアント自身にとっても把握しにくく、しかも複数のパスワードを管理しなければならないというようなクライアントの立場を考慮すれば、後者についてはもっともな点もあり、単に掛け声だけでは解決しない事情が明らかに内在している。これらの問題に関して、本発明の提案する認証方式における現在通信時刻ならびに前回通信時刻を、既存の認証システムで使用される認証要素に付加・アドオンすることによってかなりな程度効果を上げ得る。しかも、クライアント端末が１台に固定している場合には、この既存認証システムの改修はクライアントに操作・使い勝手の上での変更に対応する負荷をあたえることなく、従来通りの使用の裏側で、システム内部で自動的にセキュリティが強化されるという長所をもつ。
【００８１】
（本実施形態特有の効果）
強力な暗号方式を認証システム設計者の思いのままに採用することが可能となり、認証情報の漏えいに対して強力な防止策を講じることができる。特に共通鍵暗号方式の重要な課題であるところの鍵の受け渡しの問題が、認証のたびに変化し前回の認証において共有されている前回通信時刻を共通鍵として使用することによってクリアされる。すなわち鍵の受け渡しは、その鍵によって暗号化されたデータの受け渡しの１回前にすでにおこなわれている。またこのことは、暗号鍵が例えばパスワードのような固定的なものにくらべて、認証のたびに変化するものを使用する点においても、情報秘匿の強度を保証するものとなっている。
【００８２】
万が一「なりすまし」が発生しても、その事実が正規ユーザの使用不能という形で発覚する。これは、悪意の第三者による「なりすまし」以外に、クライアント自身が識別ＩＤとパスワードを第三者に意図的に"貸与"する場合でも、サービス提供業者の貴重なリソースを１ユーザ１サービスの原則によって保護するが可能となる。
【００８３】
現在一般的に使用されている識別ＩＤとパスワードによる認証システムに対して、本発明の提案する現在通信時刻と前回通信時刻を認証条件を加えてより強固なものにすることができる。しかも、必要とあればクライアントはそれを全然意識することなく（クライアントの使い勝手は一切変更することなく）、この通信システム（通信方法）の補強が可能となる。モバイル端末の使用が主流化しつつある現状から、サービス提供も１端末に固定したものではなく、端末横断的にサービスを享受したいという要求は必然的なものとなる（なりつつある）。またこの趨勢のおもむくところ、端末に重要なデータを保存することはますます忌避され、データはサーバ等に一元中央管理され、端末はただそれにアクセスする機器と位置づけられるようになることが予想される。それゆえにこそユーザ認証のになう役割は、ますます重要になるとおもわれる。これらに対しても本発明の応用例として示した、識別ＩＤとパスワードに前回通信時刻を、クライアント・ポータブル（クライアントとともに移動可能）な認証要素に追加する方式によって対応が可能である。
【符号の説明】
【００８４】
１                通信システム
１０                サーバ
１５                記録媒体
２０                クライアント端末
２５                記録媒体
３０                ＮＴＰサーバ
５０                インターネット（通信回線、ネットワーク）
１００，２００      ＣＰＵ
１０１              暗号化装置
１０３              判定装置
１０５              サービス許諾装置
１１０，２１０      ＲＡＭ
１２０，２２０      記憶装置
１２１ａ            クライアント・アカウントテーブル
１２１ｂ            認証履歴テーブル
１３０，２３０      操作装置
１４０，２４０      表示装置
１５０，２５０      通信装置
１６０、２６０      リアルタイムクロック
【図１】
2014197839.tif 000003
【図２】
2014197839.tif 000004
【図３】
2014197839.tif 000005
【図４】
2014197839.tif 000006
【図５】
2014197839.tif 000007
【図６】
2014197839.tif 000008
【図７】
2014197839.tif 000009
【図８】
2014197839.tif 000010