JP2005222321A - データ通信装置、サーバ及びデータ検証システム - Google Patents
データ通信装置、サーバ及びデータ検証システム Download PDFInfo
- Publication number
- JP2005222321A JP2005222321A JP2004029623A JP2004029623A JP2005222321A JP 2005222321 A JP2005222321 A JP 2005222321A JP 2004029623 A JP2004029623 A JP 2004029623A JP 2004029623 A JP2004029623 A JP 2004029623A JP 2005222321 A JP2005222321 A JP 2005222321A
- Authority
- JP
- Japan
- Prior art keywords
- data
- verification
- unit
- verification data
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】情報を継承するためのデータについての第三者による不正行為を防止することができ、かつ、第三者の不正行為と正当利用者の再リクエストとを識別することができる、データ通信装置、サーバ及びデータ検証システムを提供する。
【解決手段】本発明は、データ通信装置が、サーバに対する今回の要求と他の要求との識別可能な検証データを、要求データ及びサーバが認識している当該データ通信装置に関するセッション情報を識別するためのセッション識別データと共にサーバに送信し、サーバが、検証データを検証し、その検証結果が正当である場合に、応答情報を送信することを特徴とする。
【選択図】 図1
【解決手段】本発明は、データ通信装置が、サーバに対する今回の要求と他の要求との識別可能な検証データを、要求データ及びサーバが認識している当該データ通信装置に関するセッション情報を識別するためのセッション識別データと共にサーバに送信し、サーバが、検証データを検証し、その検証結果が正当である場合に、応答情報を送信することを特徴とする。
【選択図】 図1
Description
本発明は、データ通信装置、サーバ及びデータ検証システムに関し、例えば、セッションを識別するためのデータ(特にWWW(World Wide Web)サービスで用いられるCookie等)の正当性を判定するためのデータ検証システム、及び、そのデータ検証システムを構成するデータ通信装置及びサーバに適用し得る。
HTTP(Hypertext Transfer Protocol)プロトコルを代表とするリクエストとレスポンスとで1つのセッションが終了するような通信手順で、WWWサービスを提供するWWWサーバが、セッションの継続(今回のリクエストと前回のリクエストが同じ利用者端末(WWWブラウザ)からなされていることが判断でき、今回のリクエストが前回のセッションの継続とみなすことができる)を可能とするためには、セッションを識別するためのデータをCookieに持たせ、これを用いることが一般的となっている(下記特許文献2、3及び4参照)。
Cookieは、利用者のWWWブラウザがWWWサーバにアクセスした(リクエストを出した)際に、WWWサーバからWWWブラウザヘのレスポンスと共に送信されてWWWブラウザに記録され、その後、再度、利用者のWWWブラウザがWWWサーバにアクセスした(リクエストを出した)ときに、そのリクエストと共にWWWサーバに送信されるものである。
そして、WWWサーバは、WWWブラウザから受信したCookieを参照することにより、どのセッションの継続であるかを判断することができる。
下記特許文献1には、不正者による、Cookieの書き換えや不正な入手あるいはコピー、又はCookieの偽造による利用を防止する技術が記載されている。
具体的には、下記特許文献1には、WWWサーバがCookieに一連番号を付与し、過去に利用されたCookieを記憶しておくことにより、受信したCookieの一連番号を確認することでCookieの正当性を判断し、不正入手やコピー又は偽造によるCookieを重複して利用するような不正利用を検出したり、Cookieにディジタル署名を付加することにより、Cookieの書き換えを検出したりする技術が記載されている。
特開平11−98134号公報
米国特許第5774670号明細書
米国特許第6134592号明細書
米国特許第5826242号明細書
しかしながら、例えば、WWWサーバからのレスポンスが非常に遅かったり、WWWサーバからの通信が何らかの原因で遮断されていたりする場合には、利用者が待ちきれずに再リクエストを出す(リロードする)状態が発生する場合がある。
このような場合、WWWサーバが重複した一連番号をもつ複数のCookieを受信することとなるので、上記特許文献1に記載の技術では、正当な利用者からの(2度目の)リクエストであるか、又は不正者が盗聴などの不正手段によりCookieを取得して送信されたリクエストであるかを判別することができないおそれがある。
そのため、Cookie等のセッション識別データの正当性を検証し第三者による不正アクセスを防止することができ、かつ、正当利用者による再リクエストと第三者の不正アクセスとを識別することができるデータ検証システム、データ通信装置及びサーバが求められている。
かかる課題を解決するために、第1の本発明のデータ通信装置は、サーバから提供を受けた情報を継承するためのデータを送信するデータ通信装置において、(1)サーバに対する要求データの内容を生成する要求データ生成手段と、(2)サーバから取得した、サーバが認識している当該データ通信装置に関するセッション情報を識別するためのセッション識別情報を保持するセッション識別情報保持手段と、(3)今回のサーバに対する要求と他の要求との識別性を有する検証データを生成する検証データ生成手段と、(4)要求データ、セッション識別情報及び検証データを多重化して上記サーバに与える通信手段とを備えることを特徴とする。
また、第2の本発明のサーバは、受信した受信データに含まれる、提供情報を継承するためのデータに応じて情報を提供するサーバにおいて、(1)受信データの要求データの内容を解析する要求データ解析手段と、(2)受信データに含まれているセッション識別情報に基づいて要求してきたデータ通信装置のセッション情報を識別するセッション識別手段と、(3)受信データに含まれている、今回の要求と他の要求との識別性を有する検証データを検証する検証データ検証手段と、(4)検証データ検証手段の検証結果が正当である場合に、セッション識別手段の識別結果に基づく要求データに応じた情報を送信する通信手段とを備えることを特徴とする。
さらに、第3の本発明のデータ検証システムは、サーバから情報の提供を受けたデータ通信装置が送信する情報を継承するデータの正当性を検証するデータ検証システムにおいて、(1)データ通信装置が、第1の本発明のデータ通信装置であり、(2)サーバが、データ通信装置から与えられる検証データの態様に応じた第2の本発明のサーバであることを特徴とする。
本発明のデータ通信装置、サーバ及びデータ検証システムは、サーバに送信される、情報を継承するためのデータが、第三者の不正アクセスによるものであるかを否かの判定をすることができ、第三者の不正アクセスに応じた情報提供を防止することができる。
また、本発明のデータ通信装置、サーバ及びデータ検証システムは、データ通信装置からの要求が、何らかの事情により再リクエストした場合であっても、その再リクエストと第三者による不正アクセスとの別を判定することができるので、正当利用者の要求に対して正確なサービスを提供することができる。
本発明に係るデータ通信装置、サーバ及びデータ検証システムを実施するためにの最良の形態について説明する。
(A)第1の実施形態
以下、本発明のデータ通信装置、サーバ及びデータ検証システムの第1の実施形態について図面を参照して説明する。
以下、本発明のデータ通信装置、サーバ及びデータ検証システムの第1の実施形態について図面を参照して説明する。
本実施形態は、利用者端末(WWWブラウザ)及びWWWサーバ間のデータ通信システムであり、利用者端末は、リクエストと共に、時間情報を検証データとしてWWWサーバ側に送り、WWWサーバ側が、その検証データである時間情報を検証することにより、当該リクエストが不正利用されたものであるか否かを判断する場合について説明する。
また、この検証データは、利用者端末とWWWサーバ側との間でのみ利用できる暗号化方法で時間情報を暗号化したデータである。
(A−1)第1の実施形態の構成
図1は、第1の実施形態に係る利用者端末がもつ主要な機能を示すブロック図である。また、以下で説明する利用者端末1の主要処理は、制御手段(例えばCPU等)により実行可能なプログラムで構成されており、このプログラムは、制御手段により読み取り可能な記録媒体に格納され得る。
図1は、第1の実施形態に係る利用者端末がもつ主要な機能を示すブロック図である。また、以下で説明する利用者端末1の主要処理は、制御手段(例えばCPU等)により実行可能なプログラムで構成されており、このプログラムは、制御手段により読み取り可能な記録媒体に格納され得る。
利用者端末1は、例えば、HTTP等の所定の通信手順によりWWWを閲覧することができる閲覧機能(例えばWWWブラウザ)を有する通信端末である。
図1に示すように、本実施形態に係る利用者端末1は、リクエストデータ生成部101、セッションID保持部102、検証データ生成部103、多重化部104、レスポンスデータ処理部105、分離部106などを少なくとも備える。
リクエストデータ生成部101は、WWWサーバ2に対し、WWWサービスをリクエストするデータを生成するものであり、例えば、WWW文書の取得をリクエストするHTTPリクエストデータを生成する。また、リクエストデータ生成部101は、生成したリクエストデータを多重化部104に与えるものである。
セッションID保持部102は、WWWサーバ2よりWWWブラウザに対し送信されるセッションを識別するためのデータ(以後、セッションを識別するために用いるデータをセッションIDと呼ぶことにする)を保持するものであり、入力端子111から入力したWWWサーバ2からのレスポンスデータのうち、分離部106により分離されたセッションIDを保持するものである。セッションID保持部102は、セッション毎のセッションIDを保持し、例えば、WWWサービスを複数利用するためには、WWWサービス毎のセッションIDを保持する。
また、セッションID保持部102は、リクエストデータ生成部101からリクエストデータが出力されると(リクエストデータ生成部101からの出力タイミング(図1では点線矢印で示す)を受け取ると)、保持内容を多重化部104に与えるものである。ただし、セッションID保持部102は、該当するセッションIDを保持していない場合には何も出力しない。
検証データ生成部103は、WWWサーバ2側で検証させるための検証データを生成するものである。ここで、検証データとは、WWWサーバ2側でセッションIDの正当性を検証させるためのデータであり、WWWサーバ2による検証が正当である場合に、検証データと同時に送信されたリクエストデータが正当であると判断させる。
検証データ生成部103は、リクエストデータ生成部101からリクエストデータが出力されると(リクエストデータ生成部101からの出力タイミング(図1では点線矢印で示す)を受け取ると)、検証データを生成し、生成したデータを多重化部104に与えるものである。ただし、検証データ生成部103は、該当するセッションIDがセッションID保持部102に保持されていない場合には何も出力しない。
また、検証データ生成部103は、図1に示すように、時間情報生成部1031と暗号化部1032を有する。
時間情報生成部1031は、時間に関する情報(以後、時間情報と呼ぶことにする)を生成し、その時間情報を暗号化部1032に与えるものである。
この時間情報は、利用者端末1からリクエストデータが出力された時間を示す情報であり、WWWサーバ2において、リクエストデータが利用者端末1からいつ出力されたかを判断できるような情報であれば、どんな形でもよい。例えば、利用者端末1が内蔵する時計機能の日時情報などを用いてもよいし、又は、ネットワークを通じて接続可能な外部標準時刻装置から得た時間情報を用いてもよい。
暗号化部1032は、時間情報生成部1031から時間情報を受け取り、その受け取った時間情報(データ)に対して所定の暗号化方法により暗号化を行ない、この暗号化により得た暗号化データを多重化部104に与えるものである。この暗号化部1032からの出力が、検証データ生成部103の出力となる。
暗号化部1032により暗号化されたデータは、受け取るWWWサーバ2側において、セッションIDの正当性を検証(例えば、重複して使用されていないか等の検証)するための検証データとして用いられる。なお、以下では、セッションIDと検証データとを組み合わせたものをセッション識別データという。
また、暗号化部1032における暗号化方法は、WWWサーバ2とWWWブラウザ間であらかじめ決められた方法を採用することができ、例えば、利用者端末1のみ、又はWWWサーバ2と利用者端末1との間でのみ利用できる暗号化方法を採用できる。
多重化部104は、リクエストデータ生成部101により生成されたリクエストデータと、セッションID保持部102により保持されているセッションIDと、検証データ生成部103により生成された検証データとを受け取り、これら3つのデータの多重化を行ない、多重化したデータを出力端子110から出力するものである。
多重化の方法は、例えば、HTTPプロトコルのCookieとして、セッションIDと検証データをリクエストデータのヘッダに付加する方法を用いることができる。WWWサーバ2側で、リクエストデータ、セッションIDおよび検証データの分離が可能であれば、どのような方法を採ってもよい。
分離部106は、入力端子111を介してWWWサーバ2からのレスポンスを受け取り、その入力されたレスポンスデータからセッションIDを分離し、セッションIDを除いたレスポンスデータをレスポンスデータ処理部105に与え、またレスポンスデータから分離したセッションIDをセッションID保持部102に与えるものである。なお、分離部106は、受信したレスポンスデータにセッションIDが多重化されてない場合、セッションIDを分離することができないので、セッションIDをセッションID保持部102に与えず、レスポンスデータ処理部105にレスポンスデータを与える。
レスポンスデータ処理部105は、分離部106によりセッションIDが除かれたレスポンスデータを受け取り、その受け取ったレスポンスデータの処理を行うものである。このレスポンスデータの処理は、例えば、レスポンスデータの内容をWWWブラウザに表示を行うことである。
次に、本実施形態に係るWWWサーバ2について説明する。図2は、WWWサーバ2の主要な機能を示すブロック図である。以下で説明するWWWサーバ2の主要な処理は、制御手段により実行され得るプログラムであり、このプログラムは、制御手段により読み取り可能な記憶媒体に格納され得る。
WWWサーバ2は、利用者端末1(WWWブラウザ)から受信したリクエストデータに応じたWWWサービスを提供するものである。また、WWWサーバ2は、リクエストデータに含まれている検証データを検証し、検証データが正当である場合に、リクエストデータ及びセッションIDに応じたレスポンスデータを利用者端末1(WWWブラウザ)に返信するものである。
図2に示すように、WWWサーバ2は、分離部201、リクエストデータ解析部202、セッション識別部203、検証部204、レスポンスデータ生成部205、セッションID生成部206、多重化部207を備える。
分離部201は、入力端子210を介して入力したリクエストデータから、セッションID及び検証データを分離し、分離したセッションIDをセッション識別部203に与え、また分離した検証データを検証部204に与え、さらにセッションID及び検証データを分離した残りのリクエストデータをリクエストデータ解析部202に与えるものである。なお、分離部201は、入力したリクエストデータに、セッションID及び検証データが多重化されていない場合には、セッションIDや検証データを分離することができないので、これらセッションID及び検証データを、セッション識別部203及び検証部204に与えず、リクエストデータ解析部202にリクエストデータを与える。
リクエストデータ解析部202は、分離部201からリクエストデータを受け取り、その受け取ったリクエストデータを解析し、レスポンスデータ生成部205へその解析結果を出力するものである。この解析結果は、レスポンスデータ生成部205において、レスポンスデータの生成に必要なデータであり、例えば、リクエストデータに書かれている複数ある変数を分離して記述しているデータである場合もあるし、リクエストデータに書かれているファイル名に相当するファイル本体である場合もあるし、その両方の場合もある。
セッション識別部203は、分離部201からセッションIDを受け取り、このリクエストがどのセッションを表しているかを判定し、その判定結果をレスポンスデータ生成部205に与えるものである。また、セッション識別部203は、判定結果(どのセッションであるかという情報)を、暗号復号部2041及び時間情報検証部2042にも与えて、それぞれに判定結果を知らせるものである。
検証部204は、分離部201から検証データを受け取り、受け取った検証データが正当なものであるかを検証し、レスポンスデータ生成部205へその検証結果を与える。
また、検証部204は、図2に示すように、暗号復号部2041、時間情報検証部2042および時間情報保持部2043を有する。
暗号復号部2041は、分離部201により分離された検証データを受け取り、その受け取った検証データの暗号復号を行い、その結果(時間情報)を時間情報検証部2042に与えるものである。また、暗号復号部2041は、セッション識別部203から判定結果(どのセッションであるかという情報)を受け取り(信号線は点線矢印で示している)、その判定結果に基づいてどの暗号復号鍵であるか、またどの暗号復号方法を用いて暗号復号すればよいのかが判り、これにより暗号復号を行なうことができる。
時間情報検証部2042は、暗号復号部2041により暗号復号された時間情報を受け取り、その時間情報が、時間情報保持部2043が保持する情報を参照して正当なものであるかを検証し、その検証結果をレスポンスデータ生成部205に出力するものである。また、時間情報検証部2042は、セッション識別部203から判定結果(どのセッションであるかという情報)を受け取り、その判定結果を用いて、時間情報保持部2043が保持する情報のうち、どのセッションの保持データを参照すればよいのかがわかる。この時間情報検証部2042からの出力が検証部204の出力となる。
時間情報保持部2043は、同じセッションのもので、過去に受け取ったリクエストデータと多重化されていた時間情報を保持しておく部分である。複数のセッションを取り扱っている場合には、それらのセッション毎に時間情報を保持している。
時間情報検証部2042では、暗号復号部2041からの時間情報(つまり、リクエストデータの送信時間)が、時間情報保持部2043に保持されている時間情報と一致した場合(すなわち、検証データが重複して用いられている)、時間情報保持部2043に保持されている最新の時間情報が表す時間よりも過去の時間を表すデータ場合、または、検証データが時間情報を表すデータでなかった場合、不正にセッション識別データを取得、コピー又は偽造をして用いられているものと判断し、検証結果として、サービスを提供する資格がない旨を出力する。
時間情報保持部2043は、時間情報検証部2042で時間情報を検証した結果が、正当なものであると判断されるならば、その正当な時間情報を追加して保持しておく。時間情報保持部2043の保持できる1個のセッションあたりの時間情報の個数が1個だけであったならば、すでに保持されているデータの上へ上書きする形になる。
レスポンスデータ生成部205は、リクエストデータ解析部202、セッション識別部203及び検証部204からの出力を受け取り、それらの受け取ったデータに基づき、WWWブラウザに送信するレスポンスデータを生成するものである。レスポンスデータ生成部205で生成されたレスポンスデータは多重化部207に与えられる。
セッションID生成部206は、必要であればセッションIDを生成し、多重化部207に与えるものである。セッションID生成部206からセッションIDを出力するタイミングは、レスポンスデータ生成部205からレスポンスデータが出力されるタイミングであり、図中では、点線矢印でそのタイミングを知らせる信号線を描いている。
多重化部207は、レスポンスデータ生成部205からレスポンスデータを、セッションID生成部206からセッションIDを受け取り(セッションIDの出力がなければなにも受け取らない)、それら2つのデータを多重化する。多重化の方法は、例えば、HTTPプロトコルのCookieとして、セッションIDをレスポンスデータのヘッダに付加する方法があるが、受け取るWWWブラウザで、レスポンスデータおよびセッションIDの分離が可能であれば、どのような方法を採ってもよい。多重化部207で多重化されたデータは、出力端子211より出力される。
(A−2)第1の実施形態の動作
図3は、第1の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
図3は、第1の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
以下では、利用者端末1がWWWサーバ2に、WWWサービスを利用するためのリクエストを行い、WWWサーバ2は利用者認証を行うことによりサービスを受ける資格のある利用者からのリクエストかどうかを判定し、判定結果が正当であれば、後のセッションを継続させるという場合を考える。
まず、利用者端末1(WWWブラウザ)よりリクエストを行い、WWWサーバ2はそのリクエストが利用資格のある利用者のものかどうかの利用者認証を行なう(30)。
この利用者認証方法は、特に限定されず広く適用することができ、例えば、リクエストに利用者のディジタル署名の入った証明書を付加して、WWWサーバ2側でその証明書を検証することにより利用資格があるかどうかの判定を行うようにしてもよい。
また例えば、図4で表しているように、利用者端末1からの要求(41)に応じて、WWWサーバ2がIDとパスワードを入力させるぺ一ジを利用者端末1に送り返し(42)、利用者の操作により入力されたIDとパスワードとを入力したページをWWWサーバ2に返送(43)し、そのID及びパスワードにより利用者認証を行うようにしてもよい。また例えば、利用者端末1とWWWサーバ2との間で共通鍵を共有している場合、図4では、42で乱数を伝送し、43では共通鍵暗号の秘密鍵で暗号化して伝送するような、共通鍵暗号ベースの利用者認証を行うようにしてもよい。
WWWサーバ2において利用者認証が正当であると判定されると、WWWサーバ2はリクエストに応じたレスポンスデータをレスポンスとして利用者端末1に送信する。そして、利用者端末1は、そのレスポンスデータに含まれているセッションIDを保持する(31)。
このとき、WWWサーバ2は、セッションIDであるデータCも同時に送信(図2において、レスポンスデータ生成部205より出力されるレスポンスデータとセッションID生成部206より出力されるセッションIDとを多重化部207で多重化して送信)し、WWWブラウザ1にCを保存するようにする(図1において、分離部106で分離されたセッションIDをセッションID保持部102で保持する)。
このようにセッションを識別するために用いられるデータは、一般的にはCookieであるが、WWWサーバ2から送信されWWWブラウザ1にCを保存できるものであれば、Cookieに限定しない。
利用者端末1が、次にWWWサーバ2にリクエストを行なう場合、利用者端末1は、リクエストデータ生成部101が生成したリクエストデータ、セッションID保持部102が保持するセッションID(C)、及び、検証データ生成部103が生成した検証データ(E)を多重化したリクエストデータを、WWWサーバ2に送信する(32)。
ここで、検証データ生成部103では、リクエストを送信する時間に関する情報T(図1の時間情報生成部1031から出力される時間情報)を暗号化鍵Keで暗号化(図1の暗号化部1032での暗号化)を行なうことで、検証データ(E)を生成する。
暗号化鍵Keは、30において用いられる利用者認証に依存するものでもよく、例えば、利用者認証にディジタル署名の入った証明書を用いる場合では、ディジタル署名を行う秘密鍵を暗号化鍵Keとして、11(図1の暗号化部1032)の暗号化方法を公開鍵暗号(例えば、RSA暗号)とすることもできる(後述する暗号復号鍵Kdは、この場合、ディジタル署名の秘密鍵と対になる公開鍵となる)。また、IDとパスワード入力による利用者認証の場合では、パスワードを暗号化鍵Keとして、11(図1の暗号化部1032)における暗号化方法を共通鍵暗号(例えば、DES暗号)とすることもできる。また、共通鍵暗号ベースの認証の場合には、用いる秘密鍵を暗号化鍵Keとして11(図1の暗号化部1032)に共通鍵暗号を用いることもできる。
また、暗号化鍵Keは利用者認証時に用いる値以外のものであってもよいが、(1)利用者のみ、もしくは、利用者とサーバとのみ、で知り得る値であること。(2)サーバ側において、その値で暗号化されたメッセージの暗号復号のための鍵が利用できるようになっていること。という条件を満たしていなければならない。
利用者端末1からリクエストがWWWサーバ2に与えられると、WWWサーバ2の分離部201により、リクエストに含まれているセッションID(C)及び検証データ(E)とが分離され、セッションID(C)はセッション識別部203に与えられ、検証データ(E)は検証部204に与えられ、C及びEを除くリクエストデータはリクエストデータ解析部202に与えられる(32)。また、セッションID(C)及び検証データ(E)の送信(32)は、Cookieとして送信することもできるが、WWWブラウザ1からWWWサーバ2ヘ送信できるものであれば、Cookieに限定されない。
リクエストデータ解析部202では、リクエストデータの解析が行なわれ、その解析結果がレスポンスデータ生成部205に与えられる。
また、セッション識別部203では、セッションID(C)に基づいて、以前リクエストをして認証された利用者であることを識別し、どのセッションであるかを示す識別結果が、検証部204及びレスポンスデータ生成部205に与えられる。
また、検証部204では、検証データが暗号復号部2041に与えられ、暗号復号部2041により、セッション識別部203からの識別結果に基づく暗号復号鍵Kdを用いて検証データ(E)が暗号復号され、時間情報Tが得られ、その時間情報Tが時間情報検証部2042に与えられる(21)。
暗号復号鍵Kdは、前述した暗号化鍵Keとは対になるもの、あるいは、同じものであり、暗号化鍵Keと同様30において用いられる利用者認証に依存するものでもよい。
例えば、利用者認証にディジタル署名の入った証明書を用いる場合では、ディジタル署名を行う秘密鍵を暗号化鍵Keとして、11(図1の暗号化部1032)および21(図2の暗号復号部2041)で用いる暗号化方法を公開鍵暗号とし、さらに暗号復号鍵Kdは、ディジタル署名の秘密鍵と対になる公開鍵とする。また、IDとパスワード入力による利用者認証の場合では、パスワードを暗号化鍵Keおよび暗号復号鍵Kdとして、11(図1の暗号化部1032)および21(図2の暗号復号部2041)で用いる暗号化方法を共通鍵暗号とすることもできる。さらに、共通鍵暗号べースの利用者認証の場合には、用いる秘密鍵を暗号化鍵Keおよび暗号復号鍵Kdとして11(図1の暗号化部1032)および21(図2の暗号復号部2041)に共通鍵暗号を用いることもできる。
暗号復号部2041から時間情報Tが時間情報検証部2042に与えられると、時間情報検証部2042により、セッション識別部203からの識別結果を用いて、時間情報Tが、前回(31)のリクエストの際に認証された利用者からのリクエストであるかどうかの判定がなされる(22)。
つまり、32で受け取ったリクエストが、時間情報Tから極めて限定された時間内であるならば正当な時間情報Tであることが判る。
また、時間情報検証部2042において時間情報Tの検証後、受け取った時間情報Tは、時間情報保持部2043に利用者毎に保持される。これにより、過去に受け取った時間情報を保持することができ、この時間情報Tが重複して利用されたものか又は重複利用されたものでないかを判別することができる。
セッションID(C)と時間情報(T)の正当性が判別される(図2の時間情報検証部2042において正当なリクエストであることが検証され、その検証結果が出力される)と、リクエストに応じたレスポンスデータが生成され、多重化部207により多重化され、レスポンスとしてWWWサーバ2からWWWブラウザ1に送信される(33)。
(A−3)第1の実施形態の効果
以上のように、第1の実施形態によれば、WWWブラウザ1からWWWサーバ2ヘリクエストを送信する際に、リクエストデータと共に、セッションID及び検証データ(暗号化された時間情報)をも送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第1の実施形態によれば、WWWブラウザ1からWWWサーバ2ヘリクエストを送信する際に、リクエストデータと共に、セッションID及び検証データ(暗号化された時間情報)をも送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、リクエストを送信するときに、時間に関する情報をも送信されるので、過去に用いられたセッション識別データであるかどうかを判定することができる。
第1の実施形態では、リクエストを送信する時間に関する情報を用いていることで、利用者端末1がリロード(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる時間に関する情報が付加されているので、その再リクエストを不正アクセスと間違えられることはない。
また、利用者端末1のみ、あるいは、利用者端末1とWWWサーバ2のみが知る暗号化鍵で暗号化を行っているので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。
(B)第2の実施形態
次に、第2の実施形態について図面を参照して説明する。
次に、第2の実施形態について図面を参照して説明する。
第2の実施形態は、利用者端末1が、WWWサーバ2に対するリクエスト回数を記憶しておき、そのリクエスト回数を検証データとする場合について説明する。
(B−1)第2の実施形態の構成
図5は、第2の実施形態に係る利用者端末1の機能を説明する機能ブロック図である。
図5は、第2の実施形態に係る利用者端末1の機能を説明する機能ブロック図である。
図5に示すように、第2の実施形態の利用者端末1が、図1に示す第1の実施形態の利用者端末1と異なる点は、検証データ生成部103の機能である。
従って、図5では、図1と対応する構成については対応する符号を付す。また、以下では、検証データ生成部103の機能について詳細に説明し、図1で既に説明した構成の機能については省略する。
検証データ生成部103は、図5に示すように、リクエスト回数保持部1033と、暗号化部1032とを有する。
リクエスト回数保持部1033は、WWWブラウザ1が目的とするWWWサーバ(サービス)に対して送信したリクエスト回数に関する情報(以後、リクエスト回数と呼ぶことにする)を保持しており、そのリクエスト回数を暗号化部1032に与えるものである。リクエスト回数保持部1033は、セッション開始時、すなわち利用者が認証される前のリクエスト時に、保持内容を初期値に設定する。例えば、この初期値は通常0でもよいが、あらかじめ利用者端末1(WWWブラウザ)と目的とするWWWサーバ2で合意した値であるならば、必ずしも0でなくともよい。
また、リクエスト回数保持部1033は、保持しているリクエスト回数を暗号化部1032に与え、そのリクエスト回数が暗号化部1032により暗号化される毎に、保持するリクエスト回数を増加させて保持内容を更新する。例えば、このリクエスト回数を増加させる方法は、一般的に1ずつ増加するようにしてもよいが、1ずつ増加させることに限らず、所定数ずつ増加させてもよい。
さらに、リクエスト回数保持部1033は、セッション毎のリクエスト回数を保持する。これにより、例えば、WWWブラウザ1が複数のWWWサービスを利用する場合、WWWサービス毎のリクエスト回数を保持することができる。
暗号化部1032は、リクエスト回数保持部1033からリクエスト回数を受け取り、受け取ったリクエスト回数(データ)を暗号化するものである。暗号化部1032の暗号化方法は、第1の実施形態で説明したものと同様である。
また、暗号化部1032からの出力が、検証データ生成部103の出力となり、多重化部104へ出力される。
次に、図6を参照して、第2の実施形態のWWWサーバ2について説明する。
第2の実施形態のWWWサーバ2が第1の実施形態と異なる点は、検証部204の機能である。従って、図6において、図2での対応する構成については対応する符号を付す。以下では、検証部204の機能について詳細に説明する。
検証部204は、図6に示すように、暗号復号部2041、リクエスト回数検証部2044及びリクエスト回数保持部2045を有する。
暗号復号部2041は、分離部201により分離された検証データを受け取り、受け取った検証データの暗号復号を行い、その結果をリクエスト回数検証部2044に与えるものである。
暗号復号部2041は、セッション識別部203からセッションの識別結果を受け取り、これにより、どの暗号復号鍵、又はどの暗号復号方法を用いて暗号復号すればよいのかが判る。
リクエスト回数検証部2044は、暗号復号部2041により暗号復号されたリクエスト回数を受け取り、そのリクエスト回数について、リクエスト回数保持部2045に保持されている保持データを参照し、正当なものであるか否かを検証し、その検証結果を出力するものである。リクエスト回数検証部2044からの出力が検証部204の出力となり、レスポンスデータ生成部205に出力する。
リクエスト回数検証部2044は、セッション識別部203からセッションの識別結果を受け取り、その識別結果を用いてリクエスト回数保持部2045が保持するどのセッションの保持データを参照すればよいのかが判る。
リクエスト回数検証部2044は、暗号復号部2041により暗号復号されたリクエスト回数が、リクエスト回数保持部2045に保持されているリクエスト回数と一致する場合や(すなわち、検証データが重複して用いられている場合)、リクエスト回数保持部2045に保持されている最新のリクエスト回数よりも同じか少ない回数、又は、かけ離れて多いリクエスト回数を表している場合には、不正にセッション識別データを取得、コピーまたは偽造をして用いられているものと判断し、検証結果として、サービスを提供する資格がない旨を出力する。
リクエスト回数保持部2045は、セッション毎に、過去に受け取ったリクエストデータと多重化されていたデータリクエスト回数を保持しておく部分である。セッション開始時、すなわち利用者が認証される前のリクエスト時(図4における41)に、リクエスト回数保持部2045の内容は初期値に設定される。初期値は通常0でもよいが、あらかじめ利用者(WWWブラウザ)と目的とするWWWサーバで合意した値であるならば、必ずしも0でなくともよい。
また、リクエスト回数保持部2045は、複数のセッションを取り扱っている場合には、セッション毎にリクエスト回数を保持している。
また、リクエスト回数保持部2045は、リクエスト回数検証部2044でリクエスト回数を検証した結果が、正当なものであると判断されるならば、その正当なリクエスト回数を追加して保持しておく。リクエスト回数保持部2045の保持できる1つのセッションあたりのリクエスト回数の個数が1個だけであったならば、保持されているデータの上へ上書きする形になる。
(B−2)第2の実施形態の動作
図7は、第2の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
図7は、第2の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
利用者端末1(WWWブラウザ)からリクエストがあると(30)、第1の実施形態と同様に、WWWサーバ2において利用者認証が行なわれ、WWWサーバ2から利用者端末1(WWWブラウザ)レスポンスが与えられる(31)。
ここで、利用者端末1からWWWサーバ2への初めて行われるリクエストを初期値(例えば「0」)とするリクエスト回数が、リクエスト回数保持部1033に保持され、その後のWWWサーバ2とのセッション成立に従って、リクエスト回数は、所定規則に従って更新されてリクエスト回数保持部1033に保持される。
利用者端末1が、次にWWWサーバ2にリクエストする際、利用者端末1において、リクエスト回数保持部1033に保持されているリクエスト回数Nが、暗号化部1032に与えられて、暗号化部1032により暗号化され検証データとして多重化部104に与えられる(11)。
多重化部104により、リクエストデータ、セッションID(C)及び検証データ(E)が多重化されたリクエストは、利用者端末1からWWWサーバ2に送信される(32)。
WWWサーバ2にリクエストが与えられると、分離部201により、セッションID(C)及び検証データ(E)とが分離され、第1の実施形態と同様に、リクエストデータ解析部202、セッション識別部203及び検証部204に与えられる(32)。
検証部204では、分離部201から検証データ(E)を受け取り、暗号復号部2041により、セッション識別部203から識別結果に基づいて検証データ(E)を暗号復号し、リクエスト回数Nを取り出す(21)。
そして、リクエスト回数検証部2044により、セッション識別部203からの識別結果に基づいてリクエスト回数保持部2045が参照され、以前にリクエストをして認証された利用者からのリクエストであることが判定され、当該リクエスト回数Nと、前回のリクエスト回数とが比較されることにより、今回のリクエスト回数Nが正当であるかどうかを判定される(23)。
例えば、リクエスト回数Nが、WWWサーバ2側でカウントされ保持されているリクエスト回数と一致あるいは少ない場合には、不正に取得またはコピーしたリクエスト回数Nを用いてリクエストを行っていると判断でき、または、WWWサーバ2側が保持しているリクエスト回数からかけ離れて多い場合には、偽造したリクエスト回数Nを用いてリクエストを行っていると判断できる。
また、検証部204において、検証されたリクエスト回数Nは、利用者毎にリクエスト回数保持部2045に保持される。これにより、リクエスト回数Nが重複して利用されたものかそうでないかを判別することができる。
セッションID(C)及びリクエスト回数(N)の正当性が判別されると、第1の実施形態と同様に、リクエストに応じたデータが、レスポンスとしてWWWサーバ2から利用者端末1(WWWブラウザ)に送信される(33)。
(B−3)第2の実施形態の効果
以上のように、第2の実施形態によれば、WWWブラウザ1からWWWサーバ2ヘリクエストを送信する際に、リクエストデータと共に、セッションID及びリクエスト回数を暗号化した検証データも送信することにより、WWWサーバ2が、正当な利用者端末1からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第2の実施形態によれば、WWWブラウザ1からWWWサーバ2ヘリクエストを送信する際に、リクエストデータと共に、セッションID及びリクエスト回数を暗号化した検証データも送信することにより、WWWサーバ2が、正当な利用者端末1からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、利用者端末1からリクエストを送信するときに、利用者のリクエスト回数に関する情報も送信されるので、過去に用いられたセッション識別データであるかどうかを判定することができる。
また、本実施形態では、WWWサーバ2側のレスポンスの回数ではなく、利用者のリクエスト回数に関する情報を用いているので、利用者端末1がリロード(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる(前回よりも増加した)リクエスト回数が付加されているので、その再リクエストを不正アクセスと間違えられることはない。
また、利用者端末1のみ、又は、利用者端末1とWWWサーバ2のみが知る暗号鍵で暗号化を行っているので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。
(C)第3の実施形態
次に、第3の実施形態について図面を参照して説明する。
次に、第3の実施形態について図面を参照して説明する。
(C−1)第3の実施形態の構成
図8は、第3の実施形態に係る利用者端末1の機能を示す機能ブロックである。
図8は、第3の実施形態に係る利用者端末1の機能を示す機能ブロックである。
第3の実施形態が、第1の実施形態と異なる点は、検証データ生成部103の機能である。
図8では、図1の機能構成と対応するものについては対応する符号を付す。また、以下では、検証データ生成部103の機能について詳細に説明する。
検証データ生成部103は、図8に示すように、検証データ保持部1034、暗号化部1032を有する。
検証データ保持部1034は、WWWブラウザ1が目的とするWWWサーバ2に対して、同じセッションについて、前回のリクエストの際に送信した検証データ(以後、保持検証データと呼ぶことにする)を保持するものであり、この保持検証データを暗号化部1032に出力する。セッション開始時にWWWサーバ2からWWWブラウザ1ヘセッションIDが送信されてきたとき(後述する図10における31)に、検証データ保持部1034は、そのセッションIDの値を初期値として設定する。なお、このセッションIDは、入力端子111から入力されたレスポンスを分離部106にて分離されたものである。
また、検証データ保持部1034は、初期値設定以降、WWWサーバ2とのセッションにより、WWWサーバ2から受け取った新たなセッションIDが送信されてきたとき(セッションIDの変更があったとき)に、そのセッションIDを更新する。なお、この更新すべきセッションIDは、入力端子111から入力されたレスポンスを分離部106にて分離されたものである。
また、検証データ保持部1034は、セッション毎の検証データが保持されている。これにより、検証データ保持部1034は、例えば、WWWサービスを複数利用する場合に、WWWサービス毎に保持検証データを保持することができる。
暗号化部1032は、検証データ保持部1034から保持検証データを受け取り、受け取った保持検証データを暗号化するものである。暗号化部1032の動作は、第1及び第2の実施形態と同様である。暗号化部1032からの出力が、検証データ生成部103の出力となり、多重化部104へ出力される。
また、暗号化部1032からの出力は、検証データ保持部1034にも渡されて、次のリクエストのときのために保持される。
次に、図9を参照して、WWWサーバ2の機能について説明する。図9において、図2の機能構成と対応するものは対応する符号を付す。
図9において、図2と異なる構成は、検証部204であるので、以下では、検証部204の機能について詳細に説明する。
検証部204は、図9に示すように、暗号復号部2041、検証データ検証部2046及び検証データ保持部2047を有する。
暗号復号部2041は、分離部201において分離された検証データを受け取り、受け取ったデータの暗号復号を行い、その結果を検証データ検証部2046に与えるものである。
暗号復号部2041は、第1及び第2の実施形態と同様に、セッション識別部203からの出力である識別結果を用いて、どの暗号復号鍵、どの暗号復号方法を用いて暗号復号すればよいのかが判る。
検証データ検証部2046は、暗号復号部2041により暗号復号された検証データを受け取り、セッション識別部203からの識別結果に基づいて検証データ保持部2047の内容を参照し、暗号復号部2041からの検証データが正当なものであるかを検証し、その検証結果を出力するものである。
検証データ検証部2046は、セッション識別部203からの出力である判定結果を用い、検証データ保持部2047における、どのセッションの保持データを参照すればよいのかがわかる。また、検証データ検証部2046からの出力が検証部204の出力となり、レスポンスデータ生成部205へ出力される。
また、検証データ検証部2046は、暗号復号部2041からの検証データが、検証データ保持部2047に保持されている最新のものと一致すれば、正当なリクエストとともに送信された検証データとして、検証成功の旨を出力する。また、検証成功の場合には、その検証データ(暗号復号していない受信したデータ)を保持しておくよう、検証データ保持部2047に与える。
また、検証データ検証部2046は、暗号復号部2041からの検証データが検証データ保持部2047に保持されている最新ではないものと一致(すなわち、検証データが重複して用いられている)しているならば、不正にセッション識別データを取得またはコピーをして用いられているものと判断し、検証結果として、サービスを提供する資格がない旨を出力する。
また、検証データ検証部2046は、暗号復号部2041からの検証データが、検証データ保持部2047に保持されている最新のものと一致しないと判断した場合には、再度、その検証データを暗号復号部2041に与えて再度の暗号復号を行なわせ、その再度の暗号復号された検証データについて再度検証する。
この検証データ検証部2046から暗号復号部2041への再度の暗号復号は、所定回数M回だけ繰り返しが可能であり、その都度得た検証データを検証することができる。
そして、検証データ検証部2046が、M回暗号復号を繰り返した検証データの検証が成功しなかった場合には、偽の検証データが送信されてきていると判断し、検証結果として、サービスを提供する資格がない旨を出力する。
検証データ保持部2047は、同じセッションのもので、過去に受け取ったリクエストデータと多重化されていたデータ検証データを保持しておく部分である。セッション開始時にWWWサーバ2からWWWブラウザ1ヘセッションIDを送信するとき(後述する図10における31)には、検証データ保持部2047は、そのセッションIDの値を初期値として保持しておくものである。このセッションIDは、セッションID生成部206から出力される。以降、WWWサーバ2からWWWブラウザ1に新たなセッションIDが送信するとき(セッションIDの変更を行ったとき)には、検証データ保持部2047は、そのセッションIDを最新の保持検証データとして保持する。このセッションIDも、セッションID生成部206から出力される。複数のセッションを取り扱っている場合には、それらのセッション毎に検証データを保持する。
また、検証データ保持部2047は、この検証データ(暗号復号していない受信したデータ)を最新のものとして保持する。検証データ保持部2047の保持できる1つのセッションあたりの検証データの個数が1個だけであったならぱ、保持されているデータの上へ上書きする形になる。
(C−2)第3の実施形態の動作
図10は、第3の実施形態に係る利用者端末とWWWサーバとの間で通信されるデータ検証システムの動作を示す説明図である。
図10は、第3の実施形態に係る利用者端末とWWWサーバとの間で通信されるデータ検証システムの動作を示す説明図である。
利用者端末1(WWWブラウザ)からリクエストがあると(30)、第1及び第2の実施形態と同様に、WWWサーバ2において利用者認証が行なわれ、WWWサーバ2から利用者端末1(WWWブラウザ)レスポンスが与えられる(31)。
このとき、WWWサーバ2では、セッションIDであるC0が多重化されており、レスポンスと同時に利用者端末1(WWWブラウザ)に送信されると共に、そのセッションIDであるC0が検証データ保持部2047に保持される。
また、利用者端末1(WWWブラウザ)では、WWWサーバ2からのレスポンスを分離して得たセッションID(C0)がセッションID保持部102及び検証データ保持部1034に保持される。
このようにセッションIDの送信には一般的にはCookieが用いられるが、WWWサーバ2から送信されWWWブラウザ1にC0のようなデータを保存できるものであれば、Cookieに限定しない。
利用者端末1が、次にWWWサーバ2にリクエストを送信する場合(32−1)、検証データ保持部1034に保持されている検証データC0が暗号化部1032に与えられ、暗号化部1032により、検証データC0は、暗号化鍵Keを暗号鍵として暗号化されて検証データC1が生成されて(11−1)、暗号化されたデータC1が多重化部104に与えられる。なお、暗号化鍵Keは、第1及び第2のの実施形態で用いられるものと同様なものである。
また、リクエストデータ生成部101により生成されたリクエストデータ、及び、セッションID保持部102に保持されているセッションID(C0)も、第1及び第2の実施形態と同様に、多重化部104に与えられる。
そして、多重化部104により、リクエストデータ、セッションID(C0)及び暗号化された検証データ(C1)が多重化されてWWWサーバ2に送信される(32−1)。また、暗号化部1032の出力であるデータC1を検証データ保持部1034に保持する。
また、C0やC1はCookieとして送信(32−1)することもできるが、WWWブラウザからWWWサーバヘ送信できるものであれば、Cookieに限定されない。
利用者端末1(WWWブラウザ)からのリクエストがWWWサーバ2に与えられると、第1及び第2の実施形態と同様に、分離部201によりセッションID(C0)及び検証データ(C1)は分離され、リクエストデータ解析部202、セッション識別部203及び検証部204に与えられる。
検証部204では、分離部201から検証データC1を受け取り、暗号復号部2041により、セッション識別部203からの識別情報に基づいて検証データC1に対する暗号復号が行なわれる(24−1)。なお、暗号復号鍵Kdは、第1及び第2の実施形態と同様である。
また、検証データ検証部2046により、セッション識別部203からの識別情報に基づいて検証データ保持部2047が参照され、暗号復号部2041により暗号復号されたデータC1の検証が行なわれる(24−1)。
検証データ検証部2046による検証が正当である(検証データ保持部2047の内容と一致する)場合、正当である旨の検証結果がレスポンスデータ生成部205に与えられる。レスポンスデータ生成部205では、リクエストデータ解析部202、セッション識別部203及び検証部204からの結果を受け取り、リクエストに応じたレスポンスデータを生成して、多重化部207により多重化されたレスポンスを利用者端末1(WWWブラウザ)に送信する(33−1)。
このとき、データC1が、検証データ保持部2047に更新されて保持される。また、利用者端末1では、WWWサーバ2からのレスポンスを受け取る。
一方、検証データ検証部2046による検証が正当でない(検証データ保持部2047の内容と一致しない)場合、サービスを提供する資格がない旨の検証結果がレスポンスデータ生成部205に与えられ、その旨のレスポンスが利用者端末1(WWWブラウザ)に送信される(33−1)。
その後、さらに利用者端末1(WWWブラウザ)からWWWサーバ2にリクエストが行なわれると、上記と同様に、前回のWWWサーバ2へのリクエストで暗号化され利用者端末1(WWWブラウザ)の検証データ保持部1034で保持されているデータC1が、暗号化部1032に与えられ、暗号化部1032により、データC1が暗号化鍵Keで暗号化されて、データC2が生成される(11−2)。
そして、多重化部104により、リクエストデータと共に、セッションID(C0)とデータC2とが多重化されたリクエストが、WWWサーバ2に送信される(32−2)。
このとき、WWWブラウザ1では、セッションID保持部102セッションID(C0)を保持すると共に、検証データ保持部1034で検証データC2を保持しておくようにする。
利用者端末1(WWWブラウザ)からWWWサーバ2にリクエストが送信されると、上記と同様に、WWWサーバ2の分離部201により、セッションID(C0)と検証データ(C2)とが分離されて、リクエストデータ解析部202、セッション識別部203及び検証部204に与えられる。
リクエストデータ解析部202及びセッション識別部203での動作は上記と同様なので詳細な説明は省略する。
検証部204では、分離部201から検証データ(C2)が与えられ、暗号復号部2041により、セッション識別部203からの識別情報に基づいて、暗号復号鍵Kdを用いて検証データ(C2)の暗号復号が行われる。
また、検証データ検証部2046により、検証データ保持部2047を参照して、暗号復号された検証データが検証される(24−2)。
検証データ検証部2046による検証データの検証結果が正当である場合、すなわち、暗号復号された検証データがC1である場合、今回のリクエストが正当な利用者からのリクエストであると判断することができる。
検証データ検証部2046により、正当なリクエストであることが検証されると、その検証結果がレスポンスデータ生成部205に与えられ、リクエストに応じたレスポンスがWWWサーバ2から利用者端末1(WWWブラウザ)に送信される(33−2)。レスポンスの送信の際、WWWサーバ2では、検証データ保持部2047にデータC2が保持される。
さらに以降続くWWWブラウザ1からWWWサーバ2へのリクエストは、前回の送信した検証データC2(検証データ保持部1034で保持されているデータ)が、さらに暗号化部1032により暗号化されて、セッションID保持部102に保持されているC0及びリクエストデータと共に送信される(11−3及び32−3)。
それと同時にWWWブラウザ1は、その暗号化した検証データC3を検証データ保持部1034に保持する(11−3)。
さらに、WWWブラウザからのリクエストをWWWサーバ2が受信すると、上記と同様にして、検証データC3の検証が行われ(24−3)、リクエストに応じたレスポンスがWWWブラウザ1に送信される(33−3)。
ここで、WWWサーバ2の検証データ検証部2046では、検証データの検証について、複数回の暗号復号を多重に行うようにし、その複数回の暗号復号により得た検証データを用いて検証データの検証を行うようにしてもよい。
これにより、利用者端末1(WWWブラウザ)とWWWサーバ2との間でのデータ通信において、例えば、保存している検証データの同期が採れなくなり、利用者端末1側とWWWサーバ2側との間で保存している検証データが異なる値になった場合などにも検証データの検証を実現させることができる。
例えば、WWWブラウザ1からのリクエストが、何らかの理由でWWWサーバ2へ届かなく、かつ、WWWブラウザ1で保存する検証データを届かなかったリクエストと共に送った検証データに書き換えてしまった場合、WWWブラウザ1とWWWサーバ2との間で保存した検証データの同期がとれなくなってしまう。このような場合に、WWWサーバ2が受信した検証データについて多重に暗号復号を行うことで、その検証データの暗号化に係る変換履歴を知ることができ、その検証データの変換履歴を用いて検証データの検証を行う。
具体的には、例えば、図10の32−3の動作において、WWWブラウザ1からのリクエスト(C0及びC3を含むもの)がWWWサーバ2に届かなかったとすると、WWWブラウザ1が保存している検証データはC3であり、リクエストが届かなかった側のWWWサーバ2が保存している検証データはC2となる。
この後、再度、WWWブラウザ1がリクエストを送信する場合、WWWブラウザ1はC0及びC4(C3を暗号化したもの)を含むリクエストを送信することになるが、WWWサーバ2が保存している検証データはC2であるため、検証データC4を暗号復号してもC2を得ることはできず、検証が失敗してしまう。
この場合に、WWWサーバ2の検証データ検証部2046が検証したデータ(この場合C4を一度暗号復号したC3)を再度暗号復号部2041に与え、そのデータ(C3)について再度暗号復号させることで得たデータ(C2)について、検証データ検証部2046が再度検証をすることで、WWWサーバ2が保存しているデータ(C2)との一致した値を得ることができ検証に成功することができる。
このように、WWWサーバ2の検証データ検証部2046における検証データについて、M(Mは1以上の整数)回の暗号復号(M重の暗号復号)までの検証を許容することができる。なお、このMの値は、固定でもよく、また、サーバの能力や利用者/セッション数、時間等に応じて可変となるようなものでもよい。
(C−3)第3の実施形態の効果
以上のように、第3の実施形態によれば、WWWブラウザ1がリクエストをする際に、リクエストデータと共に、セッションID及び前回のリクエストで得た暗号化された検証データを送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第3の実施形態によれば、WWWブラウザ1がリクエストをする際に、リクエストデータと共に、セッションID及び前回のリクエストで得た暗号化された検証データを送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、WWWブラウザ1がリクエストを送信するときに、利用者の前回のセッションにおける検証データを暗号化したデータも送信されるので、過去に用いられたセッション識別データであるかどうかを判定することができる。利用者からのリクエストの毎に保持検証データを暗号化し、さらに、それをWWWブラウザに保持するので、利用者がリロード(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる(前回のものを暗号化している)検証データとともに送信されるので、その再リクエストを不正アクセスと間違えられることはない。また、利用者のみ、または利用者とWWWサーバのみが知る暗号鍵で暗号化を行っているので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。
(D)第4の実施形態
次に、第4の実施形態について図面を参照して説明する。
次に、第4の実施形態について図面を参照して説明する。
第4の実施形態は、正当な利用者からの(再)リクエストと不正者のリクエストを判別するために、利用者端末は、リクエストデータと共に、利用者しか生成することができない検証データを一方向性関数を適用することにより作成して送り、サーバ側はその検証データを検証することにより不正利用かどうかを判別する場合について説明する。
(D−1)第4の実施形態の構成
図11は、第4の実施形態に係る利用者端末1の機能を示す機能ブロックである。
図11は、第4の実施形態に係る利用者端末1の機能を示す機能ブロックである。
第4の実施形態が、第1の実施形態と異なる点は、検証データ生成部103の機能である。
図11では、図1の機能構成と対応するものについては対応する符号を付す。また、以下では、検証データ生成部103の機能について詳細に説明する。
検証データ生成部103は、図11に示すように、乱数生成部1035、一方向性関数適用部1036およびn検証データ保持部1037を有する。
乱数生成部1035は、利用者の認証の際又は保持内容を新たに更新する際(例えば、WWWブラウザ1で保持している検証データを使いきってしまった場合など)、乱数を生成し、その乱数を一方向性関数適用部1036及びn検証データ保持部1037に与えるものである。なお、乱数生成部1035は、いわゆる厳密な乱数を発生させるものでなくともよく、例えば、利用者の操作により入力された値を乱数として出力するようにしてもよい。
一方向性関数適用部1036は、乱数生成部1035から乱数が入力されたとき、その乱数に対して一方向性関数を施すものである。また、一方向性関数適用部1036は、一方向性関数により得た値に対して、さらに一方向性関数を施していき、n個の検証データを生成するものである。そして、一方向性関数適用部1036は、生成したn個の値を検証データとして順次n検証データ保持部1037に与えて保持させるものである。
ここで、一方向性関数とは、関数に入力値を入力して出力値を得ることはできるが、逆に出力値から入力値を得ようとするためには、入力値をしらみつぶしに関数に入力して出力させてみる方法以外には有効な方法が存在しないような関数のことを指す。一方向性関数は、例えば、ハッシュ関数などを適用することができる。
n検証データ保持部1037は、乱数生成部1035により生成された乱数及び一方向性関数適用部1036により生成されたn個の検証データを受け取り、これらを保持するものである。
ここで、n検証データ保持部1037は、乱数生成部1035からの乱数を最初の保持データとして保持し、一方向性関数適用部1036からのn個検証データを、先入れ後出し(FILO:first−in 1ast−out)の方法で保持する。すなわち、生成される検証データを順番に保存していき、一番最後に入力され保持されたものから順番に出力する。また、n検証データ保持部1037は、出力した検証データを保持内容から削除する。
さらに、n検証データ保持部1037は、乱数生成部1035で乱数を生成したとき、すなわち、前述の利用者の認証の際又は保持内容を新たに更新する際には、最後にn検証データ保持部1037が保持している検証データを登録検証データとして多重部104に出力し、多重部104から送信させる。それ以外の場合(すなわち、乱数生成部1035が乱数を生成しない場合)は、リクエストデータ生成部101よりリクエストデータが出力されると(そのタイミングを知らせる信号線は点線矢印で示している)、n検証データ保持部1037より検証データを出力する。n検証データ保持部1037からの出力が、検証データ生成部103の出力となり、多重化部104で多重化されて送信される。
次に、本実施形態に係るWWWサーバ2の機能について図12を参照して説明する。
図12に示すように、本実施形態のWWWサーバ2が、第1の実施形態のWWWサーバ2と異なる点は、検証部204の機能である。よって、以下では、検証部204の機能について詳細に説明する。なお、図12では、図2と対応する構成については対応する符号を付す。
検証部204は、図12に示すように、一方向性関数適用部1036、n検証データ検証部2048および登録検証データ保持部2049を有する。
一方向性関数適用部1036は、WWWブラウザ1での一方向性関数適用部1036に対応するものであり、分離部201により分離された検証データを受け取り、その検証データに一方向性関数を施し、その結果をn検証データ検証部2048に与えるものである。
n検証データ検証部2048は、セッション識別部203からの識別結果に基づいて登録検証データ保持部2049における、どのセッションの保持データ(登録検証データ)を参照すればよいのかがわかり、その登録検証データを参照して、一方向性関数適用部1036により一方向性関数が施されて得た検証データを検証し、その検証結果をレスポンスデータ生成部205に与えるものである。
つまり、n検証データ検証部2048は、一方向性関数が施されて得た検証データが、登録検証データ保持部2049の最新の登録検証データと一致する場合、正当なリクエストと共に送信された検証データの検証が成功の旨の検証結果をレスポンスデータ生成部205に与え、また、最新の登録検証データでないものと一致する場合(検証データが重複して用いられている場合)、不正にセッション識別データを取得またはコピーをして用いられているものと判断し、サービスを提供する資格がない旨の検証結果をレスポンスデータ生成部205に与える。
また、n検証データ検証部2048は、検証が成功した場合に、その検証データを登録検証データとして登録検証データ保持部2049に与えて保持させる。登録検証データ保持部2049への登録は、例えば、登録検証データ保持部2049が保持できる1つのセッションあたりの検証データの個数が1個だけであったならば、その保持している検証データに上書きすることで最新の検証データを登録させることができる。
また、n検証データ検証部2048は、検証データが、登録検証データ保持部2049の保持データと異なる場合、その検証データを一方向性関数適用部1036に与えて、再度一方向性関数を施させて、それにより得た検証データの検証を行うようにしてもよい。そして、この一方向性関数の繰り返しをM(1以上の整数)回まで繰り返して、それでも成功しなかった場合に、偽の検証データが送信されてきたと判断し。検証結果としてサービスを提供する資格がない旨を出力する。
登録検証データ保持部2049は、同じセッションのもので、過去に受け取ったリクエストデータと多重化されていた検証データを保持しておくものである。登録検証データ保持部2049は、前述の利用者の認証の際又はWWWブラウザ1側での保持内容の更新がなされた場合に、WWWブラウザ1から送信される登録検証データを初期値として保持する。
また、登録検証データ保持部2049は、n検証データ検証部2048による検証が成功した場合に、n検証データ検証部2048から検証データを受け取り、その検証データを最新の登録検証データとして保持するものである。
また、登録検証データ保持部2049は、複数のセッションを取り扱っている場合、それらのセッション毎に登録検証データを保持している。
(D−2)第4の実施形態の動作
図13は、第4の実施形態に係る利用者端末とWWWサーバとの間で通信されるデータ検証システムの動作を示す説明図である。
図13は、第4の実施形態に係る利用者端末とWWWサーバとの間で通信されるデータ検証システムの動作を示す説明図である。
まず、WWWブラウザ1からWWWサーバ2にリクエストを送信し、そのリクエストが利用資格のある利用者のものかどうかを判定する。ここでは、第1の実施形態と同様、リクエストに利用者のディジタル署名の入った証明書を付加して、WWWサーバ側でその証明書を検証することにより利用資格があるかどうかの判定を行うこともできる。また、図4で表しているように、IDとパスワードを入力させるページを送り返し(42)、IDとパスワードを返送する(43)ことにより行うこともできる。また、利用者とサーバ間で共通鍵を共有している場合、図4では、42で乱数を伝送し、43では共通鍵暗号の秘密鍵で暗号化して伝送するような、共通鍵暗号ベースの認証を行うこともできる。
第4の実施形態においては、WWWブラウザ1からWWWサーバ2への認証情報提示時(すなわち、上記利用者のディジタル署名の入った証明書、パスワード、乱数を秘密鍵で共通鍵暗号化したもの等の送信時)に、利用者端末1において、以降のリクエストとともに送信する検証データをWWWサーバ2側で検証するのに用いる検証データが生成され、その検証データを含むリクエストがWWWサーバ2に送信されて、WWWサーバ2に登録検証データとして保存される(30)。
ここで、30における検証データの生成及びWWWサーバ2への登録の動作について詳細に説明する。
(1)登録検証データを生成する際、利用者端末1において、乱数生成部1035により乱数(K1)が生成され、その乱数(K1)が一方向性関数適用部1036及びn検証データ保持部1037に与えられる。
(2)一方向性関数適用部1036において、乱数(K1)に対して一方向性関数が施され検証データ(K2)が得られ、検証データ(K2)がn検証データ保持部1037に与えられて保持される。
(3)このとき、一方向性関数適用部1036からの出力(K2)は、再度一方向性関数が施されて、検証データ(K3)が得られ、検証データ(K3)がn検証データ保持部1037に与えられて保持される。
(4)上記(3)と同様に、一方向性関数適用部1036により得られた検証データ(Ki)は、一方向性関数が施されて、検証データ(Ki+1)が得られる。
(5)そして、iがnになるまで、検証データは繰り返し一方向性関数が施される。
これにより、n検証データ保持部1037では、乱数生成部1035からの乱数(K1)を最初に保存し、その後に、一方向性関数適用部1036からの検証データ(K2〜Kn+1)が保存される。
そして、n検証データ保持部1037に保持されている検証データ(K1〜Kn+1)は、先入れ後出しにより、最後に入力された検証データ(Kn+1)が最初に多重化部104に与えられ、リクエストデータ、及び検証データKn+1が多重化されてWWWサーバ2に送信される。このとき、今回送信した検証データKn+1は、n検証データ保持部1037から削除される。
WWWサーバ2には、利用者端末1と合意がとれている一方向性関数適用部1036を有している。利用者端末から送られてきたデータ(Kn+1)が登録検証データとして登録検証データ保持部2049に登録される。
WWWサーバ2はリクエストに応じたデータをレスポンスとして送信する(31)。このレスポンスは、レスポンスデータ及びセッションを識別するデータ(C)を多重化されたものである。このセッションを識別するために用いられるのは一般的にはCookieであるが、WWWサーバ2から送信されWWWブラウザにCを保存できるものであれば、Cookieに限定しない。
次に、利用者端末1からWWWサーバ2にリクエストを送信する場合、n検証データ保持部1037に保存されている検証データ(Kn)が、多重化部104に与えられ、リクエストデータ、セッションID(C)及び検証データ(Kn)が多重化されて送信される(32−1)。ここで、今回送信された検証データKnはn検証データ保持部1037から削除される。
C及びKnのWWWサーバ2への送信は、Cookieとして送信することもできるが、WWWブラウザ1からWWWサーバ2に送信できるものであれば、Cookieに限定されない。
WWWブラウザ1からのリクエストがWWWサーバ2に与えられると、第1の実施形態と同様に、そのリクエストが分離部201により分離されて、それぞれのデータが、リクエストデータ解析部202、セッション識別部203及び検証部204に与えられる。
リクエストデータ解析部202及びセッション識別部203の動作は第1の実施形態と同様であるので動作説明を省略する。
検証部204では、分離部201から検証データ(Kn)が与えられ、その検証データ(Kn)に対して一方向性関数が施され、Kn+1が得られる。そして、その検証データ(Kn+1)がn検証データ検証部2048に与えられ、登録検証データ保持部2049が保持している登録検証データ(Kn+1)と一致するかどうかの検証が行われる(25−1)。
n検証データ検証部2048により検証データの検証が正当である場合には、その旨がレスポンスデータ生成部205に与えられ、リクエストデータに応じたレスポンスデータが生成されてレスポンスが送信される(33−1)。
また、n検証データ検証部2048により検証データの検証が正当である場合には、今回受信した検証データ(Kn)が登録検証データとして登録検証データ保持部2049に保持される。
その後に続くWWWブラウザ1からWWWサーバ2へのリクエストは、上記と同様に、前回のリクエストで送信した検証データの1つ前に保持されたデータ(Kn−1)がリクエストと共にWWWサーバ2に送信され(32−2)、WWWサーバ2での検証データの検証は、上記と同様に行われる(25−2)。
このように、WWWブラウザ1では、以前に用いた検証データを使い捨て、他の検証データを利用する。リクエストを送信する順番に、Kn、Kn−1、Kn−2、…、K1を検証データとして用いる。
WWWサーバ2における検証の過程では、n検証データ検証部2048が受け取った検証データを一方向性関数適用部1036に与えて、複数回に渡って一方向性関数を施した検証データと、登録検証データ保持部2049に保持されている過去の検証データとを照合することにより、セッション識別データの重複使用を検出する。
これにより、第3の実施形態と同様に、WWWブラウザ1とWWWサーバ2で、保存している検証データの同期がとれなくなって、その検証データがそれぞれ異なる値になった場合を考慮して検証データの検証を行うことができる。
例えば、WWWブラウザ1からのリクエストが、何らかの理由でWWWサーバ2へ届かなった場合、WWWブラウザ1では、そのリクエストとともに送信した検証データは使い捨ててしまうので、WWWブラウザ1とWWWサーバ2での保存した検証データの同期がとれなくなってしまう。
具体的に、図13において、検証データ(Kn−2)を含むリクエストがWWWサーバ2に届かず、その後の検証データ(Kn−3)を含むリクエストが利用者端末1から送信された場合、WWWサーバ2の登録検証データ保持部2049が保持している登録検証データがKn−1であるため、検証データ(Kn−2)と登録検証データ(Kn−1)と一致せず、正当な検証が得られない。
しかし、この検証データ(Kn−2)を再度一方向関数適用部1036に与えて、再度一方向性関数を施すと検証データ(Kn−1)を得ることができるので、WWWサーバ2で保存されている登録検証データ(Kn−1)と一致し、正当な検証結果を得ることができる。
勿論、1回の一方向性関数の適用だけの検証ではなく、M回の一方向性関数の適用までの検証を許容するものとする。Mの値は、固定でもよく、また、サーバの能力や利用者/セッション数、時間等に応じて可変となるようなものでもよい。
また、WWWブラウザ1で保持している検証データを使いきってしまった場合には、その最後の検証データ(K1)を含むリクエストの送信時に、最初に利用者を認証するときと同様に、新たな値L1(K1に相当するもの)を生成して、n個の検証データL1〜Ln(K1〜Knに相当するもの)および登録検証データLn+1(Kn+1に相当するもの)を生成し、登録検証データLn+1をWWWサーバ2へ送信することで、同様の動作をすることができる。
(D−3)第4の実施形態の効果
以上のように、第4の実施形態によれば、WWWブラウザ側1であらかじめ検証データをn個生成しておき、WWWサーバヘは検証時に利用する登録検証データを送信しておき、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID及び生成した検証データをも送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第4の実施形態によれば、WWWブラウザ側1であらかじめ検証データをn個生成しておき、WWWサーバヘは検証時に利用する登録検証データを送信しておき、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID及び生成した検証データをも送信することにより、WWWサーバ2が、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、リクエストを送信するときに、一度使用された検証データは使い捨て、正当なリクエストには使用しないようにしているので、過去に用いられたセッション識別データであるかどうかを判定することができる。利用者からのリクエストの毎に検証データを使い捨て、さらに、それをWWWブラウザに保持するので、利用者がリロ一ド(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる検証データとともに送信されるので、その再リクエストを不正アクセスと間違えられることはない。また、一方向性関数を施すことにより検証データを生成しており検証データを第三者が生成することはほとんど不可能であるので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。
(E)第5の実施形態
次に、本発明の第5の実施形態について図面を参照して説明する。
次に、本発明の第5の実施形態について図面を参照して説明する。
本実施形態は、正当な利用者からの(再)リクエストと不正者のリクエストを判別するために、利用者端末は、リクエストとともに、時間に関する情報に対して正当な利用者しか施すことのできないディジタル署名を施したデータを送り、サーバ側は検証データである時間に関する情報およびディジタル署名を検証することにより不正利用かどうかを判別する場合について説明する。
(E−1)第5の実施形態の構成
図14及び図15は、本実施形態に係る利用者端末1の機能を示すブロック図である。図14及び図15に示す本実施形態の利用者端末1は、検証データ生成部103がディジタル署名を施した検証データを送出する点で共通し、検証データ生成部103のディジタル署名を付与する情報が異なる。
図14及び図15は、本実施形態に係る利用者端末1の機能を示すブロック図である。図14及び図15に示す本実施形態の利用者端末1は、検証データ生成部103がディジタル署名を施した検証データを送出する点で共通し、検証データ生成部103のディジタル署名を付与する情報が異なる。
以下では、図14及び図15を参照して、本実施形態の利用者端末1の機能について説明する。なお、図14及び図15において、図1に示す第1の実施形態の利用者端末1の構成と対応する構成については対応する符号を付す。
以下では、まず、図14に示す利用者端末1の検証データ生成部103の機能について説明する。
図14において、検証データ生成部103は、時間情報生成部1031、署名生成部1038を有する。
時間情報生成部1031は、第1の実施形態で説明したものに対応するものであるため、ここでの詳細な機能説明は省略する。また、時間情報生成部1031は、生成した時間情報(T)を署名生成部1038に与えるものである。
署名生成部1038は、時間情報生成部1031により生成された時間情報(T)を受け取り、その受け取った時間情報に対してディジタル署名を作成し、そのディジタル署名(以後、署名データ(S)と呼ぶ。)を、時間情報(T)と共に多重化部104に与えるものである。署名生成部1038から出力される検証データ(時間情報及び署名データ)が検証データ生成部103の出力となる。
また、署名生成部1038におけるディジタル署名作成方法は、WWWサーバ2とWWWブラウザ1との間であらかじめ決められた方法を採用する。
例えば、図3で説明したような例を挙げると、利用者の認証において、ディジタル署名の入った証明書を用いる場合では、ディジタル署名を行う秘密鍵を用いた公開鍵暗号に基づくディジタル署名作成方式(例えば、RSA署名)を採用することができ、また、IDとパスワード入力による認証の場合では、パスワードを暗号化鍵とする共通鍵暗号に基づくディジタル署名作成方式(例えば、keyed−hashを用いるMAC(message authentication code)メッセージ認証子)を採用することができる。さらに、共通鍵暗号ベースの認証の場合に用いる秘密鍵を共通鍵暗号に基づくディジタル署名作成方式を採用することができる。
なお、WWWサーバ2とWWWブラウザ1との間で合意が取れているようなディジタル署名作成方式であればどんな方法であってもよい。また、以下では、ディジタル署名に用いる鍵を署名鍵Keと呼ぶことにする。
次に、図15に示す利用者端末1の検証データ生成部103の機能について説明する。
図15において、本実施形態の検証データ生成部103は、時間情報生成部1031、データ結合部1039、署名生成部1038を有する。
データ結合部1039は、時間情報生成部1031から時間情報を受け取り、またセッションID保持部102からセッションIDを受け取り、これら2つの入力情報を結合するものであり、その結合したデータを署名生成部1038に与えるものである。
データ結合部1039による結合方法は、WWWサーバ2において検証できる署名が作成できるよう、WWWブラウザ1とWWWサーバ2との間で合意のとれている結合方法であればどのような方法でもよいが、例えば、単にセッションIDの後ろに時間情報を連接させる方法や、又例えば、セッションIDを2つに分割して間に時間情報を挿入して結合する等の方法を採用できる。
次に、本実施形態に係るWWWサーバ2の機能について図16及び図17を参照して説明する。なお、図16及び図17において、図2に示すWWWサーバ2の構成と対応する構成については対応する符号を付す。
図16及び図17のWWWサーバ2は、検証部204が署名データ(S)の検証を行う点で共通し、検証部204が検証する検証データの内容が異なる点で異なる。
まず、図16のWWWサーバ2の検証部204の機能について説明する。
図16において、本実施形態の検証部204は、署名検証部20401、時間情報検証部2042、時間情報保持部2043を有する。
時間情報検証部2042及び時間情報保持部2043は、第1の実施形態のWWWサーバ2の時間情報検証部2042及び時間情報保持部2043に対応するものであるため、既に説明した機能説明については省略する。
署名検証部20401は、分離部201より分離された検証データ(時間情報及び署名データ)を受け取り、署名データSに対してディジタル署名を検証するための鍵(以後、署名検証鍵という)Kdを用いて、ディジタル署名検証を行うものである。また、署名検証部20401は、署名データの検証結果と時間情報とを時間情報検証部2042に与えるものである。
署名データの検証方法は、例えば、受け取った検証データからWWWブラウザ1側と同様の検証方法でディジタル署名を作成し、受け取った署名データと一致するかどうかで検証を行う。
署名検証部20401は、セッション識別部203からの出力である判定結果を用い(信号線は点線矢印で示している)、どの暗号復号鍵、どのディジタル署名検証方法を用いて暗号復号すればよいのかが判る。
時間情報検証部2042は、署名検証部20401から署名データの検証結果と時間情報とを受け取り、時間情報の検証については、第1の実施形態と同様にして検証を行うものである。
時間情報検証部2042は、署名検証部20401による署名データの検証結果が正当であり、かつ、時間情報の検証結果が正当であると判断した場合に、検証が成功した旨をレスポンスデータ生成部205に与えるものである。
また、時間情報検証部2042は、署名データ及び又は時間情報の検証結果が不当である場合に、不正にセッション識別データを取得若しくはコピー、又は偽造をして用いられているものと判断し、サービスを提供する資格がない旨をレスポンスデータ生成部205に与えるものである。
次に、図17に示すWWWサーバ2の検証部204の機能について説明する。
図17に示すように、検証部204は、データ結合部1039、署名検証部20401、時間情報検証部2042、時間情報保持部2043を有する。
データ結合部1039は、分離部201から、検証データの時間情報とセッションIDとを受け取り、これら時間情報とセッションIDを結合するものである。また、データ結合部1039は、結合したデータを署名検証部20401に与えるものである。
データ結合部1039によるデータの結合方法は、図15の利用者端末1のデータ結合部1039と同様に、WWWサーバ2において、検証できる署名が作成できるよう、WWWブラウザ1とWWWサーバ2との間で合意のとれている結合方法であれば、どのような方法でもよく、例えば、単にセッションIDの後ろに時間情報を連接させる方法や、また例えば、セッションIDを2つに分割して間に時間情報を挿入して結合する方法を採ることができる。
(E−2)第5の実施形態の動作
図18は、第5の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
図18は、第5の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
第5の実施形態では、第1の実施形態と同様に、時間に関する情報を用いて検証データを作成する。また、「正当な人が検証データを作成した」という証明について、第1の実施形態では、利用者端末のみが使用できる暗号化鍵を用いて時間情報を暗号化することにより行う場合について説明したが、第5の実施形態では、利用者のみが使用できる暗号化鍵を用いたディジタル署名を用いることにする。
まず、図14に示す利用者端末1から図16に示すWWWサーバ2に対してリクエストを行う場合について説明する。
利用者端末1からWWWサーバ2にリクエストが送信されると、WWWサーバ2はそのリクエストが利用資格のある利用者のものかどうかを判定する(30)。30においては、第1の実施形態の場合と同様である。
次に、WWWサーバ2はリクエストに応じたデータをレスポンスとして送信する(31)。
このとき、セッションを識別するためのセッションID(C)もレスポンスと同時に利用者端末1に送信される。また、WWWサーバ2から送信されたレスポンスは利用者端末1に受信され、セッションID(C)がセッションID保持部102に保存される。
利用者端末1が、次にWWWサーバ2にリクエストを送信する場合、時間情報生成部1031により、リクエストを送出に係る時間情報Tが生成されて、署名生成部1038に与えられ、署名生成部1038により、時間情報Tに対する暗号化鍵Keでディジタル署名が作成される(12)。
ディジタル署名された後のデータSは、多重化部104に与えられ、多重化部104により、リクエストデータ、セッションID(C)、時間情報T、署名データSが多重化され、リクエストとしてWWWサーバ2に送信される(32)。
ここで、署名鍵Keは、30において用いられる利用者認証に依存するものでよく、例えば、利用者認証にディジタル署名の入った証明書を用いる場合では、利用者認証で用いるディジタル署名の秘密鍵を、時間情報のディジタル署名で用いるKeとして使用することもできるし、IDとパスワード入力による認証の場合では、パスワードを署名鍵Keとして、12におけるディジタル署名作成方法を共通鍵暗号に基づくものとすることもできる。また、共通鍵暗号ベースの認証の場合には、用いる秘密鍵を署名鍵Keとして12に共通鍵暗号に基づくものを用いることもできる。
また、署名鍵Keは、利用者認証の際に用いる値以外のものであってもよいが、
(1)利用者のみ、もしくは利用者とサーバのみ、で知り得る値。
(1)利用者のみ、もしくは利用者とサーバのみ、で知り得る値。
(2)サーバ側において、その値でディジタル署名検証のための鍵が利用できるようになっている。
という条件を満たす必要がある。
なお、セッションID(C)、時間情報T及び署名データSのWWWサーバ2への送信(32)は、Cookieとして送信することもできるが、WWWブラウザ1からWWWサーバ2に送信できるものであれば、Cookieに限定されない。
上記で説明した動作は、図14の利用者端末1と図16のWWWサーバ2との間のデータ通信について説明したが、図15の利用者端末1と図17のWWWサーバ2との間のデータ通信についても、上記と同様である。署名生成部1038は、データ結合部1039により結合された結合データ(時間情報とセクションIDとの結合)に対してディジタル署名を作成して出力する。
利用者端末1からのリクエストがWWWサーバ2に与えられると、第1の実施形態と同様に、リクエストは分離部201により分離される(32)。そして、検証データ(時間情報T及び署名データS)は、署名検証部20401に与えられる。
署名検証部20401において、署名データSは、署名検証鍵Kdを用いてディジタル署名検証が行なわれ、その検証結果及び時間情報Tが、時間情報検証部2042に与えられる(26)。
署名検証鍵Kdは、前述した暗号化鍵Keとは対になるものであり、あるいは、同じものであり、署名鍵Keと同様に、30において用いられる認証に依存するものでもよい。署名検証鍵Kdは、例えば、利用者認証にディジタル署名の入った証明書を用いる場合では、ディジタル署名を行う秘密鍵を署名鍵Keとして、12(図14の署名生成部1038)及び26(図16の署名検証部20401)で用いるディジタル署名作成方法及びディジタル署名検証方法を公開鍵暗号に基づくものとし、さらに署名検証鍵Kdは、ディジタル署名の秘密鍵と対になる公開鍵とする。また、IDとパスワード入力による利用者認証の場合では、パスワードを署名鍵Keおよび署名検証鍵Kdとして、12(図14の署名生成部1038)及び26(図16の署名検証部20401)で用いるディジタル署名作成方法及びディジタル署名検証方法を共通鍵暗号に基づくものとすることもできる。さらに、共通鍵暗号ベースの利用者認証の場合には、利用者認証に用いる秘密鍵を署名鍵Ke及び署名検証鍵Kdとして12(図14の署名生成部1038)及び26(図16の署名検証部20401)に共通鍵暗号に基づくものを用いることもできる。
署名検証部20401による検証結果と時間情報Tが時間情報検証部2042に与えられると、時間情報検証部2042により、第1の実施形態と同様に、時間情報Tの検証が行われる(26)。
時間情報検証部2042において、署名データSの検証結果が正当であり、かつ、時間情報Tの検証結果が正当である場合には、検証が成功した旨の検証結果がレスポンスデータ生成部205に与えられ、リクエストに応じたレスポンスデータが生成され、レスポンスが利用者端末1に送信される(33)。
また、時間情報検証部2042が検証した時間情報Tは、時間情報保持部2043に与えられ、利用者毎に時間情報保持部2043に保持される。これにより、利用者毎の過去の時間情報を保持することができるので、時間情報Tが重複して利用されたものかそうでないかを判別することができる。
(E−3)第5の実施形態の効果
以上のように、第5の実施形態によれば、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID、時間に関する情報、時間に関する情報に対して作成したディジタル署名を送信することにより、WWWサーバが、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第5の実施形態によれば、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID、時間に関する情報、時間に関する情報に対して作成したディジタル署名を送信することにより、WWWサーバが、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、リクエストを送信するときに、時間に関する情報をも送信されるので、過去に用いられたセッション識別データであるかどうかを判定することができる。時間に関する情報を用いていることで、利用者がリロード(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる時間に関する情報が付加されているので、その再リクエストを不正アクセスと間違えられることはない。さらに、時間情報(または、時間情報とセッションIDを結合させたもの)に対してディジタル署名を作成しているので、その時間情報が偽造であるかどうかが判り、このディジタル署名は、利用者のみ、または利用者とWWWサーバのみが知る署名鍵で作成しているので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。第1の実施形態では、時間情報を暗号化しているが、第5の実施形態では、時間情報に対してディジタル署名を作成している。もし、時間情報が比較的大きなサイズのデータであった場合には、暗号化するよりもディジタル署名を作成するほうが効率がよい。
(F)第6の実施形態
次に、本発明の第6の実施形態について説明する。
次に、本発明の第6の実施形態について説明する。
第6の実施形態は、正当な利用者からの(再)リクエストと不正者のリクエストを判別するために、利用者端末は、リクエストとともに、利用者が出力したリクエスト回数に関する情報に対して正当な利用者しか施すことのできないディジタル署名を施したデータを送り、サーバ側は検証データであるリクエスト回数に関する情報およびディジタル署名を検証することにより不正利用かどうかを判別する場合について説明する。
(F−1)第6の実施形態の構成
図19及び図20は、第6の実施形態に係る利用者端末1の機能を示すブロック図である。
図19及び図20は、第6の実施形態に係る利用者端末1の機能を示すブロック図である。
図19及び図20に示す本実施形態の利用者端末1は、検証データ生成部103がディジタル署名を施した検証データを送出する点で共通し、ディジタル署名の作成が、リクエスト回数のみ対するものであるか、リクエスト回数とセッションIDとを結合したものに対するものであるかが異なる。
以下では、図19及び図20を参照して、本実施形態の利用者端末1の機能について説明する。なお、図19及び図20において、図1に示す第1及び図5に示す第2の実施形態の利用者端末1の構成と対応する構成については対応する符号を付す。
以下では、まず、図19に示す利用者端末1の検証データ生成部103の機能について説明する。
図19において、検証データ生成部103は、リクエスト回数保持部1033、署名生成部1038を有する。
リクエスト回数保持部1033は、第2の実施形態で説明したリクエスト回数保持部1033に対応するものである。また、リクエスト回数保持部1033は、リクエスト回数を署名生成部1038に与えるものである。
署名生成部1038は、第5の実施形態の署名生成部に対応するものであり、リクエスト回数保持部1033からリクエスト回数を受け取り、そのリクエスト回数に対して署名鍵Keを用いてディジタル署名を作成するものである。また、署名生成部1038は、ディジタル署名により作成した署名データSとリクエスト回数を多重化部104に与えるものである。
次に、図20の利用者端末1の検証データ生成部103の機能について説明する。
図20において、検証データ生成部103は、リクエスト回数保持部1033、データ結合部1039、署名生成部1038を有する。
データ結合部1039は、第5の実施形態で説明したデータ結合部に対応するものであり、リクエスト回数保持部1033からのリクエスト回数とセッションID保持部102からのセッションID(C)とを結合し、その結合したデータを署名生成部1038に与えるものである。
次に、第6の実施形態に係るWWWサーバ2の機能について説明する。
図21及び図22は、第6の実施形態のWWWサーバ2の機能を示すブロック図である。図21及び図22に示すWWWサーバ2は、検証部204がディジタル署名検証を行う点で共通し、ディジタル署名の作成が、リクエスト回数だけに対するものであるか、セッションIDとリクエスト回数とを結合したものに対するものであるかの違いがある。
まず、図21のWWWサーバ2の検証部204の機能について説明する。
図21において、検証部204は、署名検証部20401、リクエスト回数検証部2044、リクエスト回数保持部2045を有する。
署名検証部20401は、第5の実施形態の署名検証部に対応するものであり、分離部201より分離された検証データ(リクエスト回数及び署名データ)を受け取り、署名データに対して署名検証鍵Kdを用いて署名データの検証を行うものである。署名検証部20401は、署名データのディジタル署名検証結果とリクエスト回数とをリクエスト回数検証部2044に与えるものである。
署名検証部20401では、セッション識別部203からの出力である判定結果を用い(信号線は点線矢印で示している)、どの暗号復号鍵、どのディジタル署名検証方法を用いて暗号復号すればよいのかが判る。
リクエスト回数検証部2044およびリクエスト回数保持部2045は、第2の実施形態のリクエスト回数検証部及びリクエスト回数保持部に対応するものである。
リクエスト回数検証部2044は、署名検証部20401によるディジタル署名検証結果が正当であり、かつ、リクエスト回数検証部2044が行ったリクエスト回数に基づく検証結果が正当である場合に、検証データの検証が成功の旨をレスポンスデータ生成部205に与えるものである。また、リクエスト回数検証部2044は、ディジタル署名検証結果及び又はリクエスト回数に基づく検証結果が不当である場合に、不正にセッション識別データを取得若しくはコピー、又は偽造をして用いられているものと判断し、サービスを提供する資格がない旨をレスポンスデータ生成部205に与えるものである。
なお、リクエスト回数検証部2044からの出力が検証部204の出力となり、レスポンスデータ生成部205へ出力される。
次に、図22のWWWサーバ2の検証部204の機能について説明する。
図22において、検証部204は、データ結合部1039、署名検証部20401、リクエスト回数検証部2044、リクエスト回数保持部2045を有する。
データ結合部1039は、第5の実施形態のWWWサーバ2のデータ結合部1039に対応するものであり、分離部201により分離されたリクエスト回数とセッションIDとを受け取り、それらリクエスト回数とセッションIDとを結合して、その結合したデータを署名検証部20401に与えるものである。
(F−2)第6の実施形態の動作
図23は、第6の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
図23は、第6の実施形態に係る利用者端末1とWWWサーバ2との間で通信されるデータ検証システムの動作を示す説明図である。
第6の実施形態では、第2の実施形態と同様に、リクエスト回数に関する情報を用いて検証データを作成する。また、「正当な人が検証データを作成した」という証明について、第2の実施形態では、利用者端末のみが使用できる暗号化鍵を用いてリクエスト回数を暗号化することにより行う場合について説明したが、第6の実施形態では、利用者のみが使用できる暗号化鍵を用いたディジタル署名を用いることにする。
なお、以下では、図19の利用者端末1と図21のWWWサーバ2との間でのデータ通信の動作について説明する。
まず、WWWブラウザ1よりリクエストを行い、WWWサーバ2はそのリクエストが利用資格のある利用者のものかどうかを判定する(30)。30においては、第2の実施例の説明と同様である。
WWWサーバ2はリクエストに応じたデータをレスポンスとして送信する(31)。ここでの動作は、第2及び第5の実施形態の動作と同様であり、利用者端末1では、WWWサーバ2からのセッションID(C)がセッションID保持部102に保持される。
次に、利用者端末1からWWWサーバ2にリクエストを送信する場合、リクエスト回数保持部1033に保持されているリクエスト回数N(今回のリクエストまでにWWWサーバ2に対する送信したリクエスト回数)が署名生成部1038に与えられ、署名生成部1038により、リクエスト回数Nに対して署名鍵Keでディジタル署名が作成され、その署名データSが多重化部104に与えられる。そして、多重化部104により、リクエストデータ、セッションID(C)、検証データ(リクエスト回数N及び署名データS)が多重化されてWWWサーバ2に送信される(32)。なお、ディジタル署名の作成方法は、第5の実施形態と同様である。
上記で説明した動作は、図19の利用者端末1と図21のWWWサーバ2との間のデータ通信について説明したが、図20の利用者端末1と図22のWWWサーバ2との間のデータ通信についても、上記と同様である。署名生成部1038は、データ結合部1039により結合された結合データ(時間情報とセクションIDとの結合)に対してディジタル署名を作成して出力する。
利用者端末1からのリクエストがWWWサーバ2に与えられると、第2及び第5の実施形態と同様に、分離部201により分離される。
検証部204では、分離部201からの署名データSに対して署名検証鍵Kdを用いてディジタル署名検証を行い、そのディジタル署名検証結果とリクエスト回数が、リクエスト回数検証部2044に与えられる(26)。
また、リクエスト回数検証部2044では、リクエスト回数に基づく検証が行われ、ディジタル署名検証結果が正当であり、かつ、リクエスト回数に基づく検証結果が正当である場合に、検証データの検証が成功した旨がレスポンスデータ生成部205に与えられ、リクエストに応じたレスポンスが利用者端末1に送信される(33)。
また、ディジタル署名検証結果及び又はリクエスト回数に基づく検証結果が不当である場合には、不正に取得またはコピーしたNを用いてリクエストを行っていると判断し、不正である旨がレスポンスデータ生成部205に与えられる。
また、リクエスト回数検証部2044において、リクエスト回数が、各利用者毎にリクエスト回数保持部2045に与えられ、リクエスト回数保持部2045に利用者毎で保持される。
(F−3)第6の実施形態の効果
以上のように、第6の実施形態によれば、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID、WWWブラウザが出力したリクエスト回数に関する情報、リクエスト回数に対して作成したディジタル署名を送信することにより、WWWサーバが、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
以上のように、第6の実施形態によれば、WWWブラウザからWWWサーバヘリクエストを送信する際に、セッションID、WWWブラウザが出力したリクエスト回数に関する情報、リクエスト回数に対して作成したディジタル署名を送信することにより、WWWサーバが、正当な利用者からのリクエスト、すなわち正当な利用者からのセッション識別データであるか、不正に取得、コピーまたは偽造されたセッション識別データであるかを判定することができる。
具体的には、リクエストを送信するときに、利用者のリクエスト回数に関する情報をも送信されるので、過去に用いられたセッション識別データであるかどうかを判定することができる。サーバ側のレスポンスの回数ではなく、利用者のリクエスト回数に関する情報を用いているので、利用者がリロード(再リクエスト)を行ったとしても、その再リクエストには、前回(再リクエスト前の1回目のリクエスト)とは異なる(前回よりも増加した)リクエスト回数が付加されているので、その再リクエストを不正アクセスと間違えられることはない。さらに、リクエスト回数(または、リクエスト回数とセッションIDを結合させたもの)に対してディジタル署名を作成しているので、そのリクエスト回数が偽造であるかどうかが判り、このディジタル署名は、利用者のみ、または利用者とWWWサーバのみが知る暗号化鍵で作成しているので、利用者以外の悪意のある第三者が不正にセッション識別データ(検証データ)を生成しようとしてもそれができず、第三者によるWWWサービスの不正使用を防ぐことができる。第2の実施形態では、リクエスト回数を暗号化しているが、第6の実施形態では、リクエスト回数に対してディジタル署名を作成している。もし、リクエスト回数が比較的大きなサイズのデータであった場合には、暗号化するよりもディジタル署名を作成するほうが効率がよい。
(G)他の実施形態
(G−1)第3の実施形態では、WWWサーバ側で、受け取った検証データの暗号復号により、検証データの正当性の検証を行っていたが(暗号復号をして、それが前回の検証データまたはセッションIDになるかを確かめる)、前回の検証データの暗号化を行い(すなわち、WWWブラウザ側で検証データを作成するときと同じ変形を行う)、それが今受け取った検証データと一致するかどうかで検証することもできる。一致すれば正当なものとみなせる。その構成を図24に示す。検証データ保持部2047から最新の検証データを暗号化部1032で暗号化を行い、その暗号化データと入力された検証データとを、検証データ検証部2046で比較し、一致したならば、検証成功の旨を出力する。また、一致しなかった場合は、暗号化データの暗号化を再度行い、入力された検証データとの比較をして検証する。M回暗号化を試してみて一致しなかった場合には、検証失敗とする。暗号化部1032は、図8におけるものと同じである。
(G−1)第3の実施形態では、WWWサーバ側で、受け取った検証データの暗号復号により、検証データの正当性の検証を行っていたが(暗号復号をして、それが前回の検証データまたはセッションIDになるかを確かめる)、前回の検証データの暗号化を行い(すなわち、WWWブラウザ側で検証データを作成するときと同じ変形を行う)、それが今受け取った検証データと一致するかどうかで検証することもできる。一致すれば正当なものとみなせる。その構成を図24に示す。検証データ保持部2047から最新の検証データを暗号化部1032で暗号化を行い、その暗号化データと入力された検証データとを、検証データ検証部2046で比較し、一致したならば、検証成功の旨を出力する。また、一致しなかった場合は、暗号化データの暗号化を再度行い、入力された検証データとの比較をして検証する。M回暗号化を試してみて一致しなかった場合には、検証失敗とする。暗号化部1032は、図8におけるものと同じである。
(G−2)第4の実施形態において、WWWブラウザ側であらかじめ検証データを作成し、すべて記憶させていたが、記憶容量が少なくても済むように、WWWサーバ側に送信する登録検証データ(図13におけるKn+1)を計算した後は、WWWブラウザ側で、K1と、何番目の検証データまで使用しているか(Kの添え字の数字)を記憶させているならば、K1以外のKiすべてを記憶させておく必要がなくなり、削除しておくことができる。したがって、リクエストをする度に、記憶させている何番目の検証データまで使用したかということ(iとする)をもとにK1をi−2回一方向性関数を施し、検証データを得るようにしてもよい。
1…利用者端末、101…リクエストデータ生成部、
102…セッションID保持部、103…検証データ生成部、
104…多重化部、2…WWWサーバ、201…分離部、
202…リクエストデータ解析部、203…セッション識別部、
204…検証部、205…レスポンスデータ生成部。
102…セッションID保持部、103…検証データ生成部、
104…多重化部、2…WWWサーバ、201…分離部、
202…リクエストデータ解析部、203…セッション識別部、
204…検証部、205…レスポンスデータ生成部。
Claims (17)
- サーバから提供を受けた情報を継承するためのデータを送信するデータ通信装置において、
上記サーバに対する要求データの内容を生成する要求データ生成手段と、
上記サーバから取得した、上記サーバが認識している当該データ通信装置に関するセッション情報を識別するためのセッション識別情報を保持するセッション識別情報保持手段と、
今回の上記サーバに対する要求と他の要求との識別性を有する検証データを生成する検証データ生成手段と、
上記要求データ、上記セッション識別情報及び上記検証データを多重化して上記サーバに与える通信手段と
を備えることを特徴とするデータ通信装置。 - 上記検証データ生成手段が、上記要求データの送信時間情報を暗号化して検証データを生成することを特徴とする請求項1に記載のデータ通信装置。
- 上記検証データ生成手段が、上記サーバに対する要求回数を暗号化して検証データを生成することを特徴とする請求項1に記載のデータ通信装置。
- 上記検証データ生成手段が、第1回目の要求の際に、上記サーバから取得した上記セッション識別情報を暗号化して検証データを生成し、第m(mは2以上の整数)回目以降の要求の際に、第(m−1)回目の要求の際に生成した検証データを更に暗号化して検証データを生成することを特徴とする請求項1に記載のデータ通信装置。
- 上記検証データ生成手段が、
乱数を生成する乱数生成部と、
上記乱数生成部が生成した乱数に所定の一方向性関数を施した値を生成すると共に、更に生成した値に所定の一方向性関数を施していき、n(nは1以上の整数)個の値を生成する一方向性関数適用部と、
上記乱数生成部により生成された乱数と、上記一方向性関数により生成されたn個の値とを順次保持していき、先入れ後出しの順序で保持している値を検証データとして出力する検証データ出力部と
を有することを特徴とする請求項1に記載のデータ通信装置。 - 上記検証データ生成手段が、
乱数を生成する乱数生成部と、
前回送信した検証データの一方向性関数適用回数から1を引いた値を保持する回数保持部と、
上記乱数生成部が生成した乱数に、上記回数保持部に保持されている回数分だけ所定の一方向性乱数を施した値を生成する一方向性関数適用部と、
上記一方向性関数適用部で生成した値を検証データとして出力する検証データ出力部と
を有することを特徴とする請求項1に記載のデータ通信装置。 - 上記検証データ生成手段が、少なくとも上記要求データの送信時間情報に対してディジタル署名を作成した署名データを検証データとして生成することを特徴とする請求項1に記載のデータ通信装置。
- 上記検証データ生成手段が、少なくとも上記サーバへの要求回数に対してディジタル署名を作成した署名データを検証データとして生成することを特徴とする請求項1に記載のデータ通信装置。
- 受信した受信データに含まれる、提供情報を継承するためのデータに応じて情報を提供するサーバにおいて、
上記受信データの要求データの内容を解析する要求データ解析手段と、
上記受信データに含まれているセッション識別情報に基づいて要求してきたデータ通信装置のセッション情報を識別するセッション識別手段と、
上記受信データに含まれている、今回の要求と他の要求との識別性を有する検証データを検証する検証データ検証手段と、
上記検証データ検証手段の検証結果が正当である場合に、上記セッション識別手段の識別結果に基づく上記要求データに応じた情報を送信する通信手段と
を備えることを特徴とするサーバ。 - 上記検証データが上記要求データの送信時間情報を暗号化したデータである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、要求データの送信時間情報を保持する時間情報保持部と、
上記検証データを暗号復号する暗号復号部と、
上記暗号復号部により暗号復号された送信時間情報と、上記セッション識別手段の識別結果に応じた上記時間情報保持部の最新の送信時間情報とを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - 上記検証データがデータ通信装置からの要求回数を暗号化したデータである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、要求回数を保持する要求回数保持部と、
上記検証データを暗号復号する暗号復号部と、
上記暗号復号部により暗号復号された要求回数と、上記セッション識別手段の識別結果に応じた上記要求回数保持部の要求回数とを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - 上記検証データが前回の検証データを暗号化したデータである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、前回の検証データを保持する検証データ保持部と、
上記検証データを暗号復号する暗号復号部と、
上記暗号復号部の暗号復号により得た検証データと、上記セッション識別手段の識別結果に応じた上記検証データ保持部の前回の検証データとを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - 上記検証データが前回の検証データを暗号化したデータである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、前回の検証データを保持する検証データ保持部と、
上記検証データ保持部の内容を暗号化する暗号化部と、
上記暗号化部の暗号化により得たデータと、今回受け取った検証データとを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ - 上記検証データが乱数に一方向性関数を施すことにより得られた値である場合に、
上記検証データ検証手段が、
上記検証データとして最初に取得した値を登録検証データとして保持し、上記検証データの正当性が判断された場合に、上記正当性が得られた検証データを更新して登録する登録検証データ保持部と、
上記検証データに一方向性関数を施す一方向性適用部と、
上記一方向性適用部により得られたデータと、上記登録検証データの最新の検証データとを比較して、検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - 上記検証データが、少なくとも上記要求データの送信時間情報に対してディジタル署名を作成した署名データである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、要求データの送信時間情報を保持する時間情報保持部と、
上記検証データのディジタル署名を検証する署名検証部と、
上記検証データの送信時間情報と、上記セッション識別手段の識別結果に応じた上記時間情報保持部の最新の送信時間情報とを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - 上記検証データが、少なくともデータ通信装置からの要求回数に対してディジタル署名を作成した署名データである場合に、
上記検証データ検証手段が、
過去にアクセスしてきた各データ通信装置に係るセッション毎に、要求回数を保持する要求回数保持部と、
上記検証データのディジタル署名を検証する署名検証部と、
上記検証データに含まれている要求回数と、上記セッション識別手段の識別結果に応じた上記要求回数保持部の要求回数とを比較して、上記検証データの正当性を判定する検証データ判定部と
を有することを特徴とする請求項9に記載のサーバ。 - サーバから情報の提供を受けたデータ通信装置が送信する情報を継承するデータの正当性を検証するデータ検証システムにおいて、
上記データ通信装置が、請求項1〜請求項8のいずれかに記載のデータ通信装置であり、
上記サーバが、上記データ通信装置から与えられる検証データの態様に応じた請求項9〜請求項16のいずれかに記載のサーバである
ことを特徴とするデータ検証システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004029623A JP2005222321A (ja) | 2004-02-05 | 2004-02-05 | データ通信装置、サーバ及びデータ検証システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004029623A JP2005222321A (ja) | 2004-02-05 | 2004-02-05 | データ通信装置、サーバ及びデータ検証システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005222321A true JP2005222321A (ja) | 2005-08-18 |
Family
ID=34997897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004029623A Pending JP2005222321A (ja) | 2004-02-05 | 2004-02-05 | データ通信装置、サーバ及びデータ検証システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005222321A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007074238A (ja) * | 2005-09-06 | 2007-03-22 | Kddi Corp | ネットワーク認証システム、認証装置、無線端末及びコンピュータプログラム |
JP2014503094A (ja) * | 2011-01-05 | 2014-02-06 | ジェムアルト エスアー | サーバとクライアントとの間の通信方法、並びに対応するクライアント、サーバ、及びシステム |
JP2017034369A (ja) * | 2015-07-30 | 2017-02-09 | 株式会社日立産機システム | 位置情報の真正性確認システム、位置情報の真正性確認方法、および通信装置 |
CN111083164A (zh) * | 2019-12-30 | 2020-04-28 | 宁波和利时信息安全研究院有限公司 | 工业控制系统的安全防护方法和相关设备 |
-
2004
- 2004-02-05 JP JP2004029623A patent/JP2005222321A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007074238A (ja) * | 2005-09-06 | 2007-03-22 | Kddi Corp | ネットワーク認証システム、認証装置、無線端末及びコンピュータプログラム |
JP4699145B2 (ja) * | 2005-09-06 | 2011-06-08 | Kddi株式会社 | ネットワーク認証システム、認証装置、無線端末及びコンピュータプログラム |
JP2014503094A (ja) * | 2011-01-05 | 2014-02-06 | ジェムアルト エスアー | サーバとクライアントとの間の通信方法、並びに対応するクライアント、サーバ、及びシステム |
US9742745B2 (en) | 2011-01-05 | 2017-08-22 | Gemalto Sa | Method for communicating between a server and a client and corresponding client, server and system wherein the server controls an open communication session with the client |
JP2017034369A (ja) * | 2015-07-30 | 2017-02-09 | 株式会社日立産機システム | 位置情報の真正性確認システム、位置情報の真正性確認方法、および通信装置 |
CN111083164A (zh) * | 2019-12-30 | 2020-04-28 | 宁波和利时信息安全研究院有限公司 | 工业控制系统的安全防护方法和相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Limbasiya et al. | Advanced formal authentication protocol using smart cards for network applicants | |
RU2718689C2 (ru) | Управление конфиденциальной связью | |
US7028180B1 (en) | System and method for usage of a role certificate in encryption and as a seal, digital stamp, and signature | |
US8775794B2 (en) | System and method for end to end encryption | |
US8756416B2 (en) | Checking revocation status of a biometric reference template | |
KR100568233B1 (ko) | 인증서를 이용한 기기 인증 방법 및 상기 방법을 이용하여기기 인증을 수행하는 디지털 컨텐츠 처리 기기 | |
US20110126022A1 (en) | Method for generating an advanced electronic signature for an electronic document | |
KR101874721B1 (ko) | 신분 인증 시스템, 장치, 방법 및 신분 인증 요청 장치 | |
US20060195402A1 (en) | Secure data transmission using undiscoverable or black data | |
EP3496328A1 (en) | Communication system, communication client, communication server, communication method, and program | |
CN109981255B (zh) | 密钥池的更新方法和系统 | |
US8806206B2 (en) | Cooperation method and system of hardware secure units, and application device | |
JP2000124887A (ja) | グループ単位の暗号化・復号方法および署名方法ならびに装置 | |
JPH1115373A (ja) | 公開鍵暗号方式 | |
SE517116C2 (sv) | Metod och anordning för säkra kommunikationstjänster | |
CN106941404A (zh) | 密钥保护方法及装置 | |
CN114692218A (zh) | 一种面向个人用户的电子签章方法、设备和系统 | |
JP2018133739A (ja) | 秘密鍵複製システム、端末および秘密鍵複製方法 | |
CN117436043A (zh) | 待执行文件的来源验证方法、设备以及可读存储介质 | |
JP5380368B2 (ja) | Icチップ発行システム、icチップ発行方法およびicチップ発行プログラム | |
JP4657706B2 (ja) | 権限管理システム、認証サーバ、権限管理方法および権限管理プログラム | |
CN111314059B (zh) | 账户权限代理的处理方法、装置、设备及可读存储介质 | |
JP2003198541A (ja) | データ検証システムとその装置 | |
JP3791169B2 (ja) | 認証装置および方法 | |
JP2005222321A (ja) | データ通信装置、サーバ及びデータ検証システム |