JP6831544B2 - Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc. - Google Patents

Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc. Download PDF

Info

Publication number
JP6831544B2
JP6831544B2 JP2018210075A JP2018210075A JP6831544B2 JP 6831544 B2 JP6831544 B2 JP 6831544B2 JP 2018210075 A JP2018210075 A JP 2018210075A JP 2018210075 A JP2018210075 A JP 2018210075A JP 6831544 B2 JP6831544 B2 JP 6831544B2
Authority
JP
Japan
Prior art keywords
information processing
data
processing device
key
user
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.)
Active
Application number
JP2018210075A
Other languages
Japanese (ja)
Other versions
JP2020077978A (en
Inventor
鈴木 伸治
伸治 鈴木
佐々木 浩二
浩二 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AdIn Research Inc
Original Assignee
AdIn Research Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AdIn Research Inc filed Critical AdIn Research Inc
Priority to JP2018210075A priority Critical patent/JP6831544B2/en
Publication of JP2020077978A publication Critical patent/JP2020077978A/en
Application granted granted Critical
Publication of JP6831544B2 publication Critical patent/JP6831544B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ブロックチェーン及びSDN等に適用する情報処理システム、情報処理方法及びプログラムに関する。 The present invention relates to an information processing system, an information processing method and a program applied to a blockchain, SDN and the like.

従来、通信において送受信されるデータを鍵で難読化し、データが不正に取得されてもデータの内容が漏洩しないようにする方法が知られている。 Conventionally, a method has been known in which data transmitted / received in communication is obfuscated with a key so that the contents of the data are not leaked even if the data is illegally acquired.

例えば、ディフィー・ヘルマン鍵共有(Diffie‐Hellman key exchange)方式(以下「DH方式」という。)と呼ばれる技術が知られている(例えば、特許文献1等を参照)。 For example, a technique called the Diffie-Hellman key exchange method (hereinafter referred to as “DH method”) is known (see, for example, Patent Document 1 and the like).

米国特許第4200770号明細書U.S. Pat. No. 4,22970

しかしながら、従来の方法では、いわゆる中間者攻撃等が行われると、鍵等のデータが不正に取得される場合がある。したがって、セキュリティが十分でない場合がある。 However, in the conventional method, when a so-called man-in-the-middle attack or the like is performed, data such as a key may be illegally acquired. Therefore, security may not be sufficient.

本発明は、上記課題に鑑み、通信におけるセキュリティを向上させる情報処理システム、情報処理方法及びプログラムを提供することを目的とする。 In view of the above problems, an object of the present invention is to provide an information processing system, an information processing method and a program for improving security in communication.

上記課題に鑑み、本発明の一実施形態に係る、ユーザが使用する第1情報処理装置と、複数の第2情報処理装置と、サービスを提供する第3情報処理装置とを有する情報処理システムでは、
前記第1情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第3情報処理装置に対してアクセスするリクエストをそれぞれの前記第2情報処理装置に送信する第1送信部
を有し、
前記第2情報処理装置は、
前記リクエストに基づいて、前記ユーザデータを前記第3情報処理装置に送信する第2送信部
をそれぞれ有し、
前記第3情報処理装置は、
入力されるユーザデータを登録する登録部と、
前記第2情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断部と、
前記判断部による判断結果を前記第2情報処理装置に送信する第3送信部と
を有し、
前記第2情報処理装置は、
前記判断結果に基づいて、前記第1情報処理装置及び前記第3情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成部と、
前記鍵又は前記素材データを暗号化して第1暗号化データを生成する第1暗号化部と、
前記鍵又は前記素材データを暗号化して第2暗号化データを生成する第2暗号化部と、
前記第1暗号化データを前記第1情報処理装置に送信する第4送信部と、
前記第2暗号化データを前記第3情報処理装置に送信する第5送信部と
をそれぞれ更に有し、
前記第1情報処理装置及び前記第3情報処理装置は、
前記第1暗号化データ及び前記第2暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行うことを特徴とする。
In view of the above problems, in the information processing system having the first information processing device used by the user, the plurality of second information processing devices, and the third information processing device that provides the service according to the embodiment of the present invention. ,
The first information processing device is
It has a first transmission unit that transmits user data that identifies the user and a request for accessing the third information processing device to the second information processing device.
The second information processing device is
Each has a second transmission unit that transmits the user data to the third information processing device based on the request.
The third information processing device is
A registration unit that registers input user data, and
A determination unit that determines whether or not the user data received from the second information processing device is registered, and a determination unit.
It has a third transmission unit that transmits the determination result by the determination unit to the second information processing apparatus.
The second information processing device is
Based on the determination result, a key used for communication performed between the first information processing device and the third information processing device, or a generation unit for generating material data as a material for generating the key,
A first encryption unit that encrypts the key or the material data to generate the first encrypted data, and
A second encryption unit that encrypts the key or the material data to generate the second encrypted data, and
A fourth transmitter that transmits the first encrypted data to the first information processing device, and
Each further has a fifth transmission unit that transmits the second encrypted data to the third information processing apparatus.
The first information processing device and the third information processing device
It is characterized in that communication is performed based on the key or the material data acquired from the first encrypted data and the second encrypted data.

通信におけるセキュリティを向上させる情報処理システム、情報処理方法及びプログラムを提供することができる。 Information processing systems, information processing methods and programs that improve security in communication can be provided.

情報処理システムの全体構成例を示す概略図である。It is a schematic diagram which shows the whole configuration example of an information processing system. 本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware configuration example of the information processing apparatus which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。It is a sequence diagram which shows the whole processing example by the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムによる全体処理における「事前処理」の処理結果例を示す概略図である。It is a schematic diagram which shows the processing result example of "pre-processing" in the whole processing by the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムによる全体処理における「本処理」の処理結果例を示す概略図である。It is a schematic diagram which shows the processing result example of "this processing" in the whole processing by the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。It is a functional block diagram which shows the functional structure example of the information processing system which concerns on one Embodiment of this invention. 比較例に係る情報処理システムに対する中間者攻撃の例を示す概念図である。It is a conceptual diagram which shows the example of the man-in-the-middle attack on the information processing system which concerns on a comparative example. 比較例に係る情報処理システムによる全体処理例を示すシーケンス図である。It is a sequence diagram which shows the whole processing example by the information processing system which concerns on a comparative example. 比較例に係る情報処理システムに対する「なりすまし」の例を示す概念図である。It is a conceptual diagram which shows the example of "spoofing" for the information processing system which concerns on a comparative example. 本発明の一実施形態に係る情報処理システムにおいて分散データを用いる例を示す概略図である。It is a schematic diagram which shows the example which uses the distributed data in the information processing system which concerns on one Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。It is a sequence diagram which shows the whole processing example by the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る登録データの例を示す図である。It is a figure which shows the example of the registration data which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。It is a functional block diagram which shows the functional structural example of the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムによる全体処理の処理結果例を示す概念図である。It is a conceptual diagram which shows the processing result example of the whole processing by the information processing system which concerns on 2nd Embodiment of this invention. 本発明の実施形態に係る情報処理システムを適用するSDNの例を示す概念図である。It is a conceptual diagram which shows the example of SDN which applies the information processing system which concerns on embodiment of this invention. 本発明の実施形態に係る情報処理システムを適用するブロックチェーンの例を示す概念図である。It is a conceptual diagram which shows the example of the blockchain which applies the information processing system which concerns on embodiment of this invention. 本発明の実施形態に係る情報処理システムを適用するブロックチェーンの処理結果例を示す概念図である。It is a conceptual diagram which shows the processing result example of the blockchain which applies the information processing system which concerns on embodiment of this invention.

以下、図面を参照しながら、具体例等を説明する。 Specific examples and the like will be described below with reference to the drawings.

<第1実施形態>
<全体構成例>
図1は、情報処理システムの全体構成例を示す概略図である。例えば、情報処理システム10は、図示するように、第1情報処理装置の例であるクライアント端末1と、複数の第2情報処理装置の例であるサーバ群2と、第3情報処理装置の例であるサービスサーバ3とを有する構成である。
<First Embodiment>
<Overall configuration example>
FIG. 1 is a schematic view showing an overall configuration example of an information processing system. For example, as shown in the figure, the information processing system 10 includes a client terminal 1 which is an example of a first information processing device, a server group 2 which is an example of a plurality of second information processing devices, and an example of a third information processing device. It is a configuration having a service server 3 which is.

クライアント端末1は、ユーザURが使用する情報処理装置である。以下、クライアント端末1に対してユーザURがサービスサーバ3にアクセスするように操作した場合を例に説明する。 The client terminal 1 is an information processing device used by the user UR. Hereinafter, a case where the user UR operates the client terminal 1 to access the service server 3 will be described as an example.

サービスサーバ3は、ネットワークを利用したサービスを提供する情報処理装置である。この例では、まず、サービスサーバ3は、例えば、いわゆるインターネットバンク又はネットショッピング等のネットワークを利用したサービスを提供する。そして、このようなサービスは、サービスサーバ3によって公開されるホームページにクライアント端末1がアクセスする等によって提供が開始される。 The service server 3 is an information processing device that provides a service using a network. In this example, first, the service server 3 provides a service using a network such as a so-called Internet bank or online shopping. Then, such a service is started to be provided when the client terminal 1 accesses the homepage published by the service server 3.

サーバ群2は、図示するように、N台(Nは、2以上の自然数である。)の情報処理装置の集まりである。例えば、サーバ21、22、・・・、2Nは、いずれも同様の処理を行うとする。以下、サーバ21、22、・・・、2Nは、同様の処理を行うとする。そして、以下の説明では、サーバ21のみを取り上げて説明し、重複する説明を省略する。 As shown in the figure, the server group 2 is a collection of N information processing devices (N is a natural number of 2 or more). For example, it is assumed that the servers 21, 22, ..., 2N all perform the same processing. Hereinafter, it is assumed that the servers 21, 22, ..., 2N perform the same processing. Then, in the following description, only the server 21 will be taken up and described, and duplicate description will be omitted.

<ハードウェア構成例>
図2は、本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。例えば、第1情報処理装置、第2情報処理装置及び第3情報処理装置は、同じハードウェア構成である。以下、クライアント端末1を例に説明し、第2情報処理装置及び第3情報処理装置についての説明は、省略する。
<Hardware configuration example>
FIG. 2 is a block diagram showing a hardware configuration example of the information processing device according to the embodiment of the present invention. For example, the first information processing device, the second information processing device, and the third information processing device have the same hardware configuration. Hereinafter, the client terminal 1 will be described as an example, and the description of the second information processing device and the third information processing device will be omitted.

例えば、クライアント端末1は、CPU(Central Processing Unit)200と、通信装置201と、インタフェース(interface)202と、記憶装置203と、入力装置204と、出力装置205とを含むハードウェア構成である。 For example, the client terminal 1 has a hardware configuration including a CPU (Central Processing Unit) 200, a communication device 201, an interface (interface) 202, a storage device 203, an input device 204, and an output device 205.

CPU200は、演算装置及び制御装置の例である。 The CPU 200 is an example of an arithmetic unit and a control unit.

通信装置201は、有線又は無線で外部装置と通信を行う装置である。例えば、通信装置201は、ネットワークカード等である。 The communication device 201 is a device that communicates with an external device by wire or wirelessly. For example, the communication device 201 is a network card or the like.

インタフェース202は、外部とデータを送受信する装置である。例えば、インタフェース202は、コネクタ等である。 The interface 202 is a device for transmitting and receiving data to and from the outside. For example, the interface 202 is a connector or the like.

記憶装置203は、例えば、主記憶装置等である。なお、記憶装置203は、ハードディスク等の補助記憶装置を有してもよい。 The storage device 203 is, for example, a main storage device or the like. The storage device 203 may have an auxiliary storage device such as a hard disk.

入力装置204は、ユーザによる操作を入力する装置である。例えば、入力装置204は、キーボード、マウス又はこれらの組み合わせ等である。 The input device 204 is a device for inputting an operation by the user. For example, the input device 204 is a keyboard, a mouse, or a combination thereof.

出力装置205は、ユーザに処理結果等を出力する装置である。例えば、出力装置205は、ディスプレイ等である。 The output device 205 is a device that outputs a processing result or the like to the user. For example, the output device 205 is a display or the like.

図示するように、第1情報処理装置、第2情報処理装置及び第3情報処理装置は、例えば、PC(Personal Computer)、サーバ、ノートPC、タブレット、スマートフォン又はこれらの組み合わせ等である。 As shown in the figure, the first information processing device, the second information processing device, and the third information processing device are, for example, a PC (Personal Computer), a server, a notebook PC, a tablet, a smartphone, or a combination thereof.

なお、ハードウェア構成は、図示する構成に限られない。例えば、第1情報処理装置、第2情報処理装置及び第3情報処理装置は、異なるハードウェア構成でもよい。ほかにも、各ハードウェア構成は、情報処理装置の外部又は内部に複数あってもよい。 The hardware configuration is not limited to the configuration shown in the figure. For example, the first information processing device, the second information processing device, and the third information processing device may have different hardware configurations. In addition, there may be a plurality of each hardware configuration outside or inside the information processing device.

<全体処理例>
図3は、本発明の一実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。まず、情報処理システム10におけるクライアント端末1、サーバ21及びサービスサーバ3は、「本処理」を行う前に、「事前処理」を行う。その後、「本処理」によって通信が確立した状態で、クライアント端末1及びサービスサーバ3は、「通信」を行う。
<Overall processing example>
FIG. 3 is a sequence diagram showing an example of overall processing by the information processing system according to the embodiment of the present invention. First, the client terminal 1, the server 21, and the service server 3 in the information processing system 10 perform "pre-processing" before performing "this processing". After that, the client terminal 1 and the service server 3 perform "communication" in a state where communication is established by "this processing".

<第1固有データの記憶例>(ステップS01)
ステップS01では、クライアント端末1は、第1固有データを記憶するのが望ましい。なお、第1固有データは、クライアント端末1を識別できるデータであればよい。つまり、第1固有データは、クライアント端末1を特定できるユニークな値等である。具体的には、第1固有データは、ID(Identification)等である。又は、第1固有データは、例えば、MACアドレス(物理アドレス)又は製造番号等である。
<Example of storing first unique data> (step S01)
In step S01, it is desirable that the client terminal 1 stores the first unique data. The first unique data may be any data that can identify the client terminal 1. That is, the first unique data is a unique value or the like that can identify the client terminal 1. Specifically, the first unique data is an ID (Identification) or the like. Alternatively, the first unique data is, for example, a MAC address (physical address) or a serial number.

また、第1固有データは、デバイス等に設定される値でもよい。又は、第1固有データは、カーネル(Kernel)、プロトコル又はソフトウェア等に埋め込まれる値等でもよい。つまり、第1固有データの形式及び設定方法は問わない。 Further, the first unique data may be a value set in the device or the like. Alternatively, the first unique data may be a value embedded in a kernel, a protocol, software, or the like. That is, the format and setting method of the first unique data do not matter.

<第2固有データの記憶例>(ステップS02)
ステップS02では、サービスサーバ3は、第2固有データを記憶するのが望ましい。なお、第2固有データは、サービスサーバ3を識別できるデータであればよい。つまり、第2固有データは、第1固有データと同様に、サービスサーバ3を特定できるユニークな値等である。また、第1固有データと同様に、第2固有データの形式及び設定方法は問わない。さらに、第2固有データは、第1固有データと同様に、カーネル、プロトコル又はソフトウェア等に埋め込まれる値等でもよい。
<Example of storing second unique data> (step S02)
In step S02, it is desirable that the service server 3 stores the second unique data. The second unique data may be any data that can identify the service server 3. That is, the second unique data is a unique value or the like that can identify the service server 3 like the first unique data. Further, as with the first unique data, the format and setting method of the second unique data do not matter. Further, the second unique data may be a value embedded in a kernel, a protocol, software, or the like, like the first unique data.

<第1固有データ及び第2固有データの記憶例>(ステップS03)
ステップS03では、サーバ21は、第1固有データ及び第2固有データを記憶するのが望ましい。すなわち、サーバ21は、クライアント端末1から、ステップS01で記憶した第1固有データを取得する。同様に、サーバ21は、サービスサーバ3から、ステップS02で記憶した第2固有データを取得する。
<Example of storing the first unique data and the second unique data> (step S03)
In step S03, it is desirable that the server 21 stores the first unique data and the second unique data. That is, the server 21 acquires the first unique data stored in step S01 from the client terminal 1. Similarly, the server 21 acquires the second unique data stored in step S02 from the service server 3.

なお、第1固有データ及び第2固有データの取得方法は、セキュリティが確保できていれば問わない。つまり、クライアント端末1がいわゆる「なりすまし」等でない状態であると確認できる環境下で、サーバ21は、クライアント端末1からネットワーク等を貸して第1固有データを取得してもよい。一方で、例えば、クライアント端末1の第1固有データとなる値が記載された用紙が郵送で送られ、サーバ21の管理者等が、用紙に記載された値等を入力する操作を行って、第1固有データが取得されてもよい。 The method of acquiring the first unique data and the second unique data does not matter as long as security is ensured. That is, in an environment where it can be confirmed that the client terminal 1 is not in a so-called "spoofing" state, the server 21 may lend a network or the like from the client terminal 1 to acquire the first unique data. On the other hand, for example, a form on which the value to be the first unique data of the client terminal 1 is described is sent by mail, and the administrator of the server 21 or the like performs an operation of inputting the value or the like described on the form. The first unique data may be acquired.

<ユーザデータの登録例>(ステップS04)
ステップS04では、サービスサーバ3は、ユーザデータを登録する。
<Example of user data registration> (step S04)
In step S04, the service server 3 registers user data.

ユーザデータは、ユーザURを識別するデータである。具体的には、ユーザデータは、例えば、ユーザ名、ID又はユーザが設定する名称等である。ゆえに、ユーザデータは、ユーザURを特定できれば、データの形式等は問わない。 The user data is data that identifies the user UR. Specifically, the user data is, for example, a user name, an ID, a name set by the user, or the like. Therefore, the user data may be in any format as long as the user UR can be specified.

そして、サービスサーバ3は、入力されるユーザデータをデータベース等にして、「本処理」より前に、あらかじめユーザデータを登録する。したがって、サービスサーバ3は、「本処理」において、ユーザデータが登録されているか否かを照合できる。 Then, the service server 3 uses the input user data as a database or the like, and registers the user data in advance before the "main process". Therefore, the service server 3 can collate whether or not the user data is registered in the "main process".

なお、処理順序は、図示するような順序でなくともよい。例えば、ステップS01及びステップS02は、どちらが先に行われてもよいし、又は、並行して行われてもよい。 The processing order does not have to be the order shown in the figure. For example, either step S01 or step S02 may be performed first, or may be performed in parallel.

情報処理システム10は、以上のような「事前処理」をあらかじめ行う。そして、「事前処理」が行われると、情報処理システム10において、データは、例えば、以下のようになる。 The information processing system 10 performs the above-mentioned "pre-processing" in advance. Then, when the "pre-processing" is performed, the data in the information processing system 10 becomes, for example, as follows.

図4は、本発明の一実施形態に係る情報処理システムによる全体処理における「事前処理」の処理結果例を示す概略図である。 FIG. 4 is a schematic view showing an example of processing results of “pre-processing” in the overall processing by the information processing system according to the embodiment of the present invention.

ステップS01が行われると、図示するように、クライアント端末1は、第1固有データDAを記憶する。 When step S01 is performed, the client terminal 1 stores the first unique data DA as shown in the figure.

ステップS02が行われると、図示するように、サービスサーバ3は、第2固有データDBを記憶する。 When step S02 is performed, the service server 3 stores the second unique data DB as shown in the figure.

ステップS03が行われると、図示するように、サーバ21は、第1固有データDA及び第2固有データDBを記憶する。 When step S03 is performed, the server 21 stores the first unique data DA and the second unique data DB as shown in the figure.

ステップS04が行われると、図示するように、サービスサーバ3には、ユーザデータDCが登録される。 When step S04 is performed, user data DC is registered in the service server 3 as shown in the figure.

したがって、「事前処理」が行われると、図示するように、サーバ21は、第1固有データDA及び第2固有データDBを把握できる。そして、サーバ21のように、第2固有データDBを記憶しているサーバ、すなわち、サービスサーバ3をあらかじめ把握しているサーバがあると、クライアント端末1は、サーバ21を検索することで、サーバ21を介してサービスサーバ3にリクエストが可能になる。 Therefore, when the "pre-processing" is performed, the server 21 can grasp the first unique data DA and the second unique data DB as shown in the figure. Then, if there is a server that stores the second unique data DB, that is, a server that knows the service server 3 in advance, such as the server 21, the client terminal 1 searches for the server 21 to obtain a server. A request can be made to the service server 3 via 21.

そして、「事前処理」の後、例えば、以下のような「本処理」が実行される。 Then, after the "pre-processing", for example, the following "main processing" is executed.

<ユーザデータ及び第3情報処理装置に対してアクセスするリクエストの送信例>(ステップS05)
ステップS05では、クライアント端末1は、サービスサーバに対してアクセスするリクエスト(以下単に「リクエスト」という。)をサーバ21に送信する。
<Example of Transmission of Request for Accessing User Data and Third Information Processing Device> (Step S05)
In step S05, the client terminal 1 transmits a request for accessing the service server (hereinafter, simply referred to as “request”) to the server 21.

リクエストは、アクセスを希望するサイト等を示すデータである。具体的には、この例では、サービスサーバ3を特定できるURL(Uniform Resource Locator)又はアドレス等である。ゆえに、リクエストは、サービスサーバ3等が特定できれば、データの形式等は問わない。 The request is data indicating a site or the like desired to be accessed. Specifically, in this example, it is a URL (Uniform Resource Locator) or an address that can identify the service server 3. Therefore, the request can be made in any data format as long as the service server 3 or the like can be identified.

ユーザデータは、ユーザURを識別するデータである。具体的には、ユーザデータは、例えば、ユーザ名、ID又はユーザが設定する名称等である。ゆえに、ユーザデータは、ユーザURを特定できれば、データの形式等は問わない。 The user data is data that identifies the user UR. Specifically, the user data is, for example, a user name, an ID, a name set by the user, or the like. Therefore, the user data may be in any format as long as the user UR can be specified.

ユーザデータは、例えば、リクエストに含まれて送信されてもよい。以下、図等では、ユーザデータは、リクエストに含まれる形式の例で説明する。ただし、リクエストと、ユーザデータとが対応できれば、送信するタイミング及び送信する形式等は問わない。 The user data may be included in the request and transmitted, for example. Hereinafter, in the figures and the like, the user data will be described with an example of the format included in the request. However, as long as the request and the user data can be handled, the timing of transmission and the format of transmission do not matter.

<ユーザデータの送信例>(ステップS06)
ステップS06では、サーバ21は、ユーザデータをサービスサーバに送信する。すなわち、サーバ21は、リクエストがあると、リクエストが示すアドレス等に、リクエストがあった旨及びユーザデータを送信する。
<Example of transmitting user data> (step S06)
In step S06, the server 21 transmits the user data to the service server. That is, when there is a request, the server 21 transmits the request and user data to the address or the like indicated by the request.

<ユーザデータが登録されているか否かの判断例>(ステップS07)
ステップS07では、サービスサーバ3は、ユーザデータが登録されているか否かを判断する。すなわち、サービスサーバ3は、サーバ21を介してリクエストをしてきたユーザURがあらかじめステップS04で登録されている者か否かを判断する。具体的には、サービスサーバ3が有するデータベース等にステップS06で送信されたユーザデータがあると、サービスサーバ3は、ユーザデータが登録されているという判断結果を出力する。一方で、サービスサーバ3が有するデータベース等にステップS06で送信されたユーザデータがないと、サービスサーバ3は、ユーザデータが登録されていないという判断結果を出力する。
<Example of determining whether or not user data is registered> (step S07)
In step S07, the service server 3 determines whether or not the user data is registered. That is, the service server 3 determines whether or not the user UR who has made a request via the server 21 is a person registered in advance in step S04. Specifically, if the database or the like of the service server 3 contains the user data transmitted in step S06, the service server 3 outputs a determination result that the user data is registered. On the other hand, if there is no user data transmitted in step S06 in the database or the like of the service server 3, the service server 3 outputs a determination result that the user data is not registered.

<判断結果の送信例>(ステップS08)
ステップS08では、サービスサーバ3は、判断結果をサーバ21に送信する。すなわち、サービスサーバ3は、ステップS07による判断結果をサーバ21に送信する。
<Example of transmission of judgment result> (step S08)
In step S08, the service server 3 transmits the determination result to the server 21. That is, the service server 3 transmits the determination result in step S07 to the server 21.

<判断結果に基づくユーザデータが登録されているか否かの判断例>(ステップS09)
ステップS09では、サーバ21は、判断結果に基づいて、ユーザデータが登録されているか否かを判断する。すなわち、ステップS07によって判断された結果に基づいて、サーバ21は、ユーザデータがサービスサーバ3に登録されているか否かを判断する。
<Example of determining whether or not user data is registered based on the determination result> (Step S09)
In step S09, the server 21 determines whether or not the user data is registered based on the determination result. That is, based on the result determined in step S07, the server 21 determines whether or not the user data is registered in the service server 3.

次に、ユーザデータがサービスサーバ3に登録されていると判断すると、情報処理システム10は、ステップS11に進む。一方で、ユーザデータがサービスサーバ3に登録されていないと判断すると(ステップS09でユーザデータが登録されていないと判断された場合)、情報処理システム10は、ステップS10に進む。 Next, if it is determined that the user data is registered in the service server 3, the information processing system 10 proceeds to step S11. On the other hand, if it is determined that the user data is not registered in the service server 3 (when it is determined in step S09 that the user data is not registered), the information processing system 10 proceeds to step S10.

<終了処理例>(ステップS10)
ステップS10では、サーバ21は、終了処理を行う。つまり、情報処理システム10は、クライアント端末1と、サービスサーバ3との間で通信をさせない。
<Example of end processing> (step S10)
In step S10, the server 21 performs the termination process. That is, the information processing system 10 does not allow communication between the client terminal 1 and the service server 3.

<第1情報処理装置及び第3情報処理装置の間で行われる通信に用いられる鍵の生成例>(ステップS11)
ステップS11では、サーバ21は、クライアント端末1及びサービスサーバ3の間で行われる通信(図示する例における「通信」の処理に相当する。)に用いられる鍵を生成する。例えば、鍵の生成手順は、ステップS111以降のような処理が望ましい。
<Example of generating a key used for communication performed between the first information processing device and the third information processing device> (step S11)
In step S11, the server 21 generates a key used for communication (corresponding to the processing of "communication" in the illustrated example) performed between the client terminal 1 and the service server 3. For example, it is desirable that the key generation procedure is the same as in step S111 or later.

<第1所定値の生成及び送信例>(ステップS111)
ステップS111では、サーバ21は、所定の値(以下「第1所定値」という。)を生成し、クライアント端末1に送信する。
<Example of generation and transmission of first predetermined value> (step S111)
In step S111, the server 21 generates a predetermined value (hereinafter referred to as "first predetermined value") and transmits it to the client terminal 1.

第1所定値は、例えば、乱数等である。つまり、第1所定値は、乱数を生成する関数を実行する等で生成できる値である。なお、第1所定値は、任意に定まる値であればよい。つまり、第1所定値は、乱数に限られず、タイマ等で定まる値等でもよい。 The first predetermined value is, for example, a random number or the like. That is, the first predetermined value is a value that can be generated by executing a function that generates a random number or the like. The first predetermined value may be any value that is arbitrarily determined. That is, the first predetermined value is not limited to a random number, but may be a value determined by a timer or the like.

次に、サーバ21は、生成した第1所定値をクライアント端末1に送信する。 Next, the server 21 transmits the generated first predetermined value to the client terminal 1.

<第1所定値及び第1固有値に基づく第1計算値の計算例>(ステップS112)
ステップS112では、クライアント端末1は、第1所定値及び第1固有値に基づいて第1計算値を計算する。
<Calculation example of the first calculated value based on the first predetermined value and the first eigenvalue> (step S112)
In step S112, the client terminal 1 calculates the first calculated value based on the first predetermined value and the first eigenvalue.

第1計算値は、第1所定値及び第1固有値を所定の関数の入力とし、関数を実行すると出力される値である。例えば、関数は、ハッシュ関数等である。すなわち、第1計算値は、ハッシュ値等である。 The first calculated value is a value output when the first predetermined value and the first eigenvalue are input to the predetermined function and the function is executed. For example, the function is a hash function or the like. That is, the first calculated value is a hash value or the like.

具体的には、第1計算値は、例えば、下記(1)式のように計算される。

第1計算値 = Hash(第1所定値,第1固有値)・・・(1)

上記(1)式において、「Hash()」は、ハッシュ関数を示す。例えば、ハッシュ関数は、実行されると、第1入力(上記(1)式では、第1所定値である。)を第2入力(上記(1)式では、第1固有値である。なお、第1固有値は、第1固有データで定まる値である。)で除算し、余りを計算する。そして、この例では、計算される余りが第1計算値となる。
Specifically, the first calculated value is calculated as, for example, the following equation (1).

1st calculated value = Hash (1st predetermined value, 1st eigenvalue) ... (1)

In the above equation (1), "Hash ()" indicates a hash function. For example, when the hash function is executed, the first input (in the above equation (1), it is the first predetermined value) is the second input (in the above equation (1), it is the first eigenvalue). The first eigenvalue is a value determined by the first eigendata), and the remainder is calculated. Then, in this example, the calculated remainder is the first calculated value.

なお、ハッシュ関数は、上記のように、除算により、余りを計算する関数に限られない。例えば、ハッシュ関数は、第1入力と、第2入力とを乗算し、乗算結果を設定値で除算する関数等でもよい。この例では、第1計算値は、除算で求まる値を整数にした値等である。 As described above, the hash function is not limited to the function that calculates the remainder by division. For example, the hash function may be a function that multiplies the first input and the second input and divides the multiplication result by a set value. In this example, the first calculated value is a value obtained by dividing the value obtained by division into an integer or the like.

また、第1計算値の計算方法は、ハッシュ関数に限られず、入力に対して出力が定まればよい。つまり、入力が同一であれば、同一の第1計算値が計算される関数であれば、第1計算値の方法は、どのような計算方法であってもよい。 Further, the calculation method of the first calculated value is not limited to the hash function, and the output may be determined for the input. That is, if the inputs are the same, the method of the first calculated value may be any calculation method as long as it is a function for which the same first calculated value is calculated.

<第1計算値の送信例>(ステップS113)
ステップS113では、クライアント端末1は、第1計算値をサーバ21に送信する。すなわち、ステップS112で計算された第1計算値が、サーバ21に送信される。
<Example of transmission of first calculated value> (step S113)
In step S113, the client terminal 1 transmits the first calculated value to the server 21. That is, the first calculated value calculated in step S112 is transmitted to the server 21.

そして、第1計算値等があると、サーバ21は、クライアント端末1の真正性等を確認できる。 Then, when there is the first calculated value or the like, the server 21 can confirm the authenticity or the like of the client terminal 1.

<第2所定値の生成及び送信例>(ステップS114)
ステップS114では、サービスサーバ3は、所定の値(以下「第2所定値」という。)を生成し、サーバ21に送信する。
<Example of generation and transmission of second predetermined value> (step S114)
In step S114, the service server 3 generates a predetermined value (hereinafter referred to as "second predetermined value") and transmits it to the server 21.

第2所定値は、例えば、乱数等である。つまり、第2所定値は、第1所定値と同様に、乱数を生成する関数を実行する等で生成できる値である。なお、第2所定値は、第1所定値と異なる値である。 The second predetermined value is, for example, a random number or the like. That is, the second predetermined value is a value that can be generated by executing a function that generates a random number or the like, like the first predetermined value. The second predetermined value is a value different from the first predetermined value.

次に、サービスサーバ3は、生成した第2所定値をサーバ21に送信する。 Next, the service server 3 transmits the generated second predetermined value to the server 21.

<第2所定値及び第2固有値に基づく第2計算値の計算例>(ステップS115)
ステップS115では、サーバ21は、第2所定値及び第2固有値に基づいて第2計算値を計算する。
<Calculation example of the second calculated value based on the second predetermined value and the second eigenvalue> (step S115)
In step S115, the server 21 calculates the second calculated value based on the second predetermined value and the second eigenvalue.

第2計算値は、第2所定値及び第2固有値を所定の関数の入力とし、関数を実行すると出力される値である。例えば、関数は、ハッシュ関数等である。すなわち、第2計算値は、ハッシュ値等である。 The second calculated value is a value output when the second predetermined value and the second eigenvalue are input to the predetermined function and the function is executed. For example, the function is a hash function or the like. That is, the second calculated value is a hash value or the like.

具体的には、第2計算値は、例えば、下記(2)式のように計算される。

第2計算値 = Hash(第2所定値,第2固有値)・・・(2)

上記(2)式において、「Hash()」は、ハッシュ関数を示す。例えば、ハッシュ関数は、実行されると、第1入力(上記(2)式では、第2所定値である。)を第2入力(上記(2)式では、第2固有値である。なお、第2固有値は、第2固有データで定まる値である。)で除算し、余りを計算する。そして、この例では、計算される余りが第2計算値となる。
Specifically, the second calculated value is calculated as, for example, the following equation (2).

2nd calculated value = Hash (2nd predetermined value, 2nd eigenvalue) ... (2)

In the above equation (2), "Hash ()" indicates a hash function. For example, when the hash function is executed, the first input (in the above equation (2), it is the second predetermined value) is input to the second input (in the above equation (2), it is the second eigenvalue). The second eigenvalue is a value determined by the second eigendata), and the remainder is calculated. Then, in this example, the calculated remainder is the second calculated value.

なお、ハッシュ関数は、上記のように、除算により、余りを計算する関数に限られない。例えば、ハッシュ関数は、第1入力と、第2入力とを乗算し、乗算結果を設定値で除算する関数等でもよい。この例では、第2計算値は、除算で求まる値を整数にした値等である。 As described above, the hash function is not limited to the function that calculates the remainder by division. For example, the hash function may be a function that multiplies the first input and the second input and divides the multiplication result by a set value. In this example, the second calculated value is a value obtained by dividing the value obtained by division into an integer or the like.

また、第2計算値の計算方法は、ハッシュ関数に限られず、入力に対して出力が定まればよい。つまり、入力が同一であれば、同一の第2計算値が計算される関数であれば、第2計算値の方法は、どのような計算方法であってもよい。 Further, the calculation method of the second calculated value is not limited to the hash function, and the output may be determined for the input. That is, if the inputs are the same, the method of the second calculated value may be any calculation method as long as it is a function for which the same second calculated value is calculated.

なお、第1計算値及び第2計算値の計算方法、すなわち、計算に用いられる関数は、同一でもよいし、異なってもよい。 The calculation method of the first calculated value and the second calculated value, that is, the functions used in the calculation may be the same or different.

<第2計算値の送信例>(ステップS116)
ステップS116では、サーバ21は、第2計算値をサービスサーバ3に送信する。
<Example of transmitting the second calculated value> (step S116)
In step S116, the server 21 transmits the second calculated value to the service server 3.

<第2計算値の比較及び比較結果の送信例>(ステップS117)
ステップS117では、サービスサーバ3は、送信された第2計算値と、サービスサーバ3で計算する第2計算値とを比較する。まず、ステップS117では、サービスサーバ3は、ステップS115と同様に計算する。
<Comparison of second calculated value and transmission example of comparison result> (step S117)
In step S117, the service server 3 compares the transmitted second calculated value with the second calculated value calculated by the service server 3. First, in step S117, the service server 3 calculates in the same manner as in step S115.

なお、サービスサーバ3には、あらかじめ上記(2)式で用いられるのと同様の関数が設定されるとする。したがって、ステップS117では、サービスサーバ3は、サーバ21による第2計算値の計算と同様の計算、すなわち、上記(2)式を計算する。そして、サービスサーバ3は、ステップS02であらかじめ第2固有値を示す第2固有データを記憶し、かつ、ステップS114で第2所定値を生成する。これらの値を入力とし、サービスサーバ3は、上記(2)式を計算する。 It is assumed that the same function as that used in the above equation (2) is set in advance in the service server 3. Therefore, in step S117, the service server 3 calculates the same calculation as the calculation of the second calculated value by the server 21, that is, the above equation (2). Then, the service server 3 stores the second eigendata indicating the second eigenvalue in advance in step S02, and generates the second predetermined value in step S114. Using these values as inputs, the service server 3 calculates the above equation (2).

そして、サービスサーバ3は、ステップS116で受信する第2計算値と、ステップS117で計算した値とを比較する。比較では、サービスサーバ3は、2つの値が一致するか否かを判断する。 Then, the service server 3 compares the second calculated value received in step S116 with the value calculated in step S117. In the comparison, the service server 3 determines whether or not the two values match.

次に、ステップS117では、サービスサーバ3は、比較結果をサーバ21に送信する。 Next, in step S117, the service server 3 transmits the comparison result to the server 21.

比較結果に基づいて、第2計算値がステップS117で計算される値と一致すると(ステップS117で送信される比較結果で一致したと判断された場合)、情報処理システム10は、ステップS118に進む。 When the second calculated value matches the value calculated in step S117 based on the comparison result (when it is determined that the comparison result transmitted in step S117 matches), the information processing system 10 proceeds to step S118. ..

<セッションID及び鍵の生成例>(ステップS118)
ステップS118では、サーバ21は、鍵等を生成する。また、ステップS118では、サーバ21は、セッションIDを生成するのが望ましい。以下、セッションIDと、鍵とがいずれも生成される例で説明する。
<Example of generating session ID and key> (step S118)
In step S118, the server 21 generates a key or the like. Further, in step S118, it is desirable that the server 21 generate a session ID. Hereinafter, an example in which both the session ID and the key are generated will be described.

例えば、鍵は、所定のビット数になる乱数等である。なお、鍵の生成方法は、乱数を生成する関数の実行に限られず、他のデータを決定する方法でもよい。 For example, the key is a random number or the like that has a predetermined number of bits. The key generation method is not limited to the execution of a function that generates a random number, and may be a method of determining other data.

セッションIDは、「通信」を行うのに用いるセッションを決定するパラメータである。したがって、「通信」は、セッションIDで定まるセッションで通信が行われるように設定される。したがって、セッションIDを生成すると、通信を行うセッションを変更できる。 The session ID is a parameter that determines the session used to perform "communication". Therefore, "communication" is set so that communication is performed in a session determined by the session ID. Therefore, when the session ID is generated, the session to communicate with can be changed.

なお、サーバ21は、鍵でなく、鍵を生成するための素材となるデータ(以下「素材データ」という。)を生成してもよい。そして、素材データがあれば、第1情報処理装置及び第3情報処理装置は、同一の鍵を生成できる。 The server 21 may generate data (hereinafter, referred to as “material data”) that is a material for generating the key instead of the key. Then, if there is material data, the first information processing device and the third information processing device can generate the same key.

例えば、素材データは、鍵の一部を示すデータ又は鍵を生成するのに素材となるデータ等である。したがって、素材データが送信されると、第1情報処理装置及び第3情報処理装置は、素材データに対して、素材データを入力として所定の関数を実行したり、あらかじめ定められた法則で鍵を完成させたり、又は、あらかじめ定められたデータを素材データに追加したりして、鍵を完成させる。なお、素材データは、関数の入力値等でもよい。この場合には、第1情報処理装置及び第3情報処理装置は、あらかじめ実行する関数が設定される。ゆえに、同一の素材データが入力されると、同一の関数が同一の入力で実行されるため、第1情報処理装置及び第3情報処理装置は、同一の鍵をそれぞれ持つことができる。 For example, the material data is data indicating a part of the key, data used as a material for generating the key, or the like. Therefore, when the material data is transmitted, the first information processing device and the third information processing device execute a predetermined function with the material data as an input, or press a key according to a predetermined rule. The key is completed by completing it or adding predetermined data to the material data. The material data may be an input value of a function or the like. In this case, a function to be executed in advance is set in the first information processing device and the third information processing device. Therefore, when the same material data is input, the same function is executed with the same input, so that the first information processing device and the third information processing device can each have the same key.

なお、鍵を生成する前に行う比較等は、図示する方法及び順序に限られない。 The comparison and the like performed before generating the key is not limited to the method and order shown in the figure.

<鍵等を暗号化して第1暗号化データを生成する例>(ステップS12)
ステップS12では、サーバ21は、鍵等を暗号化して第1暗号化データを生成する。例えば、ステップS12では、サーバ21は、下記(3)式のように、ステップS118で生成される鍵及びセッションID等を暗号化して第1暗号化データを生成する。

第1暗号化データ= (鍵 XOR 第1所定値) XOR 第1固有値・・・(3)

上記(3)式において、「XOR」は、排他的論理和(exclusive or)を示す(「EOR」又は「EX−OR」等と呼ばれる場合もある)。なお、排他的論理和の計算順序は上記式の順序でなくともよい。以下同様に記載する。したがって、上記(3)式に示すように、サーバ21は、鍵と、第1所定値との排他的論理和の計算結果に対して、更に第1固有値との排他的論理和を演算する。このようにすると、元のデータである鍵は、別の値となる。ゆえに、第1暗号化データは、第1暗号化データを取得しても、鍵等を知ることが難しい暗号化された状態である。なお、データが複数ある場合には、データを1つにまとめて暗号化してもよいし、別々に暗号化して複数の暗号化データを生成するでもよい。
<Example of generating the first encrypted data by encrypting a key or the like> (step S12)
In step S12, the server 21 encrypts the key and the like to generate the first encrypted data. For example, in step S12, the server 21 encrypts the key, session ID, and the like generated in step S118 to generate the first encrypted data, as shown in the following equation (3).

1st encrypted data = (key XOR 1st predetermined value) XOR 1st eigenvalue ... (3)

In the above equation (3), "XOR" indicates an exclusive OR (sometimes referred to as "EOR" or "EX-OR" or the like). The calculation order of the exclusive OR does not have to be the order of the above equation. The same applies hereinafter. Therefore, as shown in the above equation (3), the server 21 further calculates the exclusive OR of the first eigenvalue with respect to the calculation result of the exclusive OR of the key and the first predetermined value. In this way, the key, which is the original data, has a different value. Therefore, the first encrypted data is in an encrypted state in which it is difficult to know the key or the like even if the first encrypted data is acquired. When there are a plurality of data, the data may be collectively encrypted, or may be encrypted separately to generate a plurality of encrypted data.

そして、以降に、第1暗号化データに対して、例えば、下記(4)式のように、第1所定値及び第1固有値の排他的論理和を計算すると、第1暗号化データは、暗号化前のデータに復号化され、鍵等が取得できる。

(第1暗号化データ XOR 第1所定値) XOR 第1固有値・・・(4)

また、セッションIDも、例えば、上記(3)式のようにして暗号化される。
Then, after that, when the exclusive OR of the first predetermined value and the first eigenvalue is calculated for the first encrypted data as shown in the following equation (4), the first encrypted data is encrypted. It is decrypted into the data before conversion, and the key etc. can be obtained.

(1st encrypted data XOR 1st predetermined value) XOR 1st eigenvalue ... (4)

The session ID is also encrypted, for example, as in the above equation (3).

<第1暗号化データの送信例>(ステップS13)
ステップS13では、サーバ21は、第1暗号化データをクライアント端末1に送信する。そして、クライアント端末1は、第1所定値及び第1固有値に基づいて、例えば、上記(4)式のように第1暗号化データを復号化すると鍵等を取得できる。
<Example of transmission of first encrypted data> (step S13)
In step S13, the server 21 transmits the first encrypted data to the client terminal 1. Then, the client terminal 1 can acquire the key or the like by decrypting the first encrypted data based on the first predetermined value and the first eigenvalue, for example, as in the above equation (4).

<鍵等を暗号化して第2暗号化データを生成する例>(ステップS14)
ステップS14では、サーバ21は、鍵等を暗号化して第2暗号化データを生成する。例えば、ステップS14では、サーバ21は、下記(5)式のように、ステップS118で生成される鍵及びセッションID等を暗号化して第2暗号化データを生成する。

第2暗号化データ= (鍵 XOR 第2所定値) XOR 第2固有値・・・(5)

上記(5)式に示すように、サーバ21は、鍵と、第2所定値との排他的論理和の計算結果に対して、更に第2固有値との排他的論理和を演算する。このようにすると、元のデータである鍵は、別の値となる。
<Example of generating second encrypted data by encrypting a key or the like> (step S14)
In step S14, the server 21 encrypts the key and the like to generate the second encrypted data. For example, in step S14, the server 21 encrypts the key, the session ID, and the like generated in step S118 to generate the second encrypted data, as shown in the following equation (5).

2nd encrypted data = (key XOR 2nd predetermined value) XOR 2nd eigenvalue ... (5)

As shown in the above equation (5), the server 21 further calculates the exclusive OR of the second eigenvalue with respect to the calculation result of the exclusive OR of the key and the second predetermined value. In this way, the key, which is the original data, has a different value.

そして、第1暗号化データと同様に、第2暗号化データに対して、例えば、下記(6)式のように、第2所定値及び第2固有値の排他的論理和を計算すると、第2暗号化データは、暗号化前のデータに復号化され、鍵等が取得できる。

(第2暗号化データ XOR 第2所定値) XOR 第2固有値・・・(6)

また、セッションIDも、例えば、上記(5)式のようにして暗号化される。
Then, similarly to the first encrypted data, when the exclusive OR of the second predetermined value and the second unique value is calculated for the second encrypted data, for example, as in the following equation (6), the second The encrypted data is decrypted into the data before encryption, and the key and the like can be obtained.

(Second encrypted data XOR second predetermined value) XOR second eigenvalue ... (6)

The session ID is also encrypted, for example, as in the above equation (5).

さらに、第2暗号化データには、ユーザデータが暗号化されて含まれるのが望ましい。 Further, it is desirable that the second encrypted data includes the user data encrypted.

<第2暗号化データの送信例>(ステップS15)
ステップS15では、サーバ21は、第2暗号化データをサービスサーバ3に送信する。そして、サービスサーバ3は、第2所定値及び第2固有値に基づいて、例えば、上記(6)式のように第2暗号化データを復号化させて、鍵等を取得できる。
<Example of transmitting second encrypted data> (step S15)
In step S15, the server 21 transmits the second encrypted data to the service server 3. Then, the service server 3 can obtain the key or the like by decrypting the second encrypted data based on the second predetermined value and the second eigenvalue, for example, as in the above equation (6).

例えば、情報処理システム10は、以上のような「本処理」を行う。このような「本処理」の後に、例えば、以下のような「通信」を行う。 For example, the information processing system 10 performs the above-mentioned "main processing". After such "main processing", for example, the following "communication" is performed.

<通信例>(ステップS16)
ステップS16では、クライアント端末1及びサービスサーバ3は、「本処理」で取得した鍵等に基づいて通信を行う。具体的には、「本処理」におけるステップS13によって、クライアント端末1は、鍵を取得できる。そして、サービスサーバ3も、「本処理」におけるステップS15によって、クライアント端末1が取得したのと同一の鍵を取得できる。したがって、クライアント端末1及びサービスサーバ3は、「本処理」で同一の鍵を取得できる。ゆえに、クライアント端末1及びサービスサーバ3は、例えば、AES(Advanced Encryption Standard)等の共通鍵方式で暗号化及び復号化して、安全に通信を行うことができる。
<Communication example> (step S16)
In step S16, the client terminal 1 and the service server 3 communicate with each other based on the key or the like acquired in the “main process”. Specifically, the client terminal 1 can acquire the key by step S13 in the "main process". Then, the service server 3 can also acquire the same key acquired by the client terminal 1 by step S15 in the “main process”. Therefore, the client terminal 1 and the service server 3 can acquire the same key in the "main process". Therefore, the client terminal 1 and the service server 3 can be encrypted and decrypted by a common key method such as AES (Advanced Encryption Standard) to perform secure communication.

また、セッションIDも、鍵と同様に、クライアント端末1及びサービスサーバ3は、同一のデータを取得できる。 Further, as for the session ID, the client terminal 1 and the service server 3 can acquire the same data as well as the key.

さらに、サービスサーバ3は、ユーザデータも再度取得できる。 Further, the service server 3 can acquire the user data again.

図5は、本発明の一実施形態に係る情報処理システムによる全体処理における「本処理」の処理結果例を示す概略図である。 FIG. 5 is a schematic view showing an example of a processing result of "the present processing" in the whole processing by the information processing system according to the embodiment of the present invention.

ステップS05が行われると、図示するように、「本処理」において、「事前処理」で検索されたサーバ21に対して、クライアント端末1がサービスサーバ3にアクセスしたいというリクエストREQがされる。 When step S05 is performed, as shown in the figure, in the "main process", the client terminal 1 requests the server 21 searched by the "pre-process" to access the service server 3.

ステップS06が行われると、図示するように、サーバ21は、リクエストREQがあった旨及びユーザデータDCをサービスサーバ3に送信する。 When step S06 is performed, as shown in the figure, the server 21 transmits the request EQU and the user data DC to the service server 3.

ステップS07が行われると、図示するように、サーバ21は、リクエストREQをしてきたユーザが「事前処理」であらかじめ登録されているユーザか否かを判断する。 When step S07 is performed, as shown in the figure, the server 21 determines whether or not the user who has made the request EQU is a user registered in advance by "pre-processing".

ステップS08が行われると、図示するように、サーバ21は、ステップS07での判断結果DJをサーバ21に送信する。したがって、判断結果DJによって、サーバ21は、リクエストREQのとおり、クライアント端末1をサービスサーバ3にアクセスさせてよいか否かを判断できる。 When step S08 is performed, as shown in the figure, the server 21 transmits the determination result DJ in step S07 to the server 21. Therefore, the determination result DJ allows the server 21 to determine whether or not the client terminal 1 may be allowed to access the service server 3 according to the request EQU.

次に、判断結果DJに基づいて、登録されていないユーザである場合には(ステップS09でユーザデータが登録されていないと判断された場合)、サーバ21は、終了処理を行う。一方で、判断結果DJに基づいて、登録されているユーザである場合には(ステップS09でユーザデータが登録されていると判断された場合)、サーバ21は、クライアント端末1及びサービスサーバ3の間で行われる通信に用いられる鍵DKの生成を行う。 Next, based on the determination result DJ, if the user is not registered (when it is determined in step S09 that the user data is not registered), the server 21 performs the termination process. On the other hand, if the user is a registered user based on the determination result DJ (when it is determined that the user data is registered in step S09), the server 21 is the client terminal 1 and the service server 3. Generates a key DK used for communication between them.

ステップS10が行われると、情報処理システム10は、通信を中止するように終了する。したがって、ユーザURがあらかじめサービスサーバ3に登録されていないと、リクエストがあっても、情報処理システム10では、クライアント端末1及びサービスサーバ3の間で通信が開始されない。 When step S10 is performed, the information processing system 10 ends so as to stop the communication. Therefore, if the user UR is not registered in the service server 3 in advance, the information processing system 10 does not start communication between the client terminal 1 and the service server 3 even if there is a request.

ステップS11が行われると、図示するように、クライアント端末1及びサービスサーバ3の間で行われる通信をするための鍵DKが生成される。 When step S11 is performed, as shown in the figure, a key DK for performing communication between the client terminal 1 and the service server 3 is generated.

ステップS12及びステップS13が行われると、図示するように、クライアント端末1には、鍵DK等が暗号化された第1暗号化データDCI1が送信される。 When steps S12 and S13 are performed, as shown in the figure, the first encrypted data DCI1 in which the key DK and the like are encrypted is transmitted to the client terminal 1.

ステップS14及びステップS15が行われると、図示するように、サービスサーバ3には、鍵DK等が暗号化された第2暗号化データDCI2が送信される。 When steps S14 and S15 are performed, as shown in the figure, the second encrypted data DCI2 in which the key DK and the like are encrypted is transmitted to the service server 3.

第1暗号化データDCI1は、例えば、上記(3)式のように、第1固有値等で暗号化されたデータである。そのため、第1固有データDAが記憶されているクライアント端末1は、第1暗号化データDCI1を、上記(4)式のように復号化して鍵DK等を取得することができる。 The first encrypted data DCI1 is, for example, data encrypted with a first eigenvalue or the like as in the above equation (3). Therefore, the client terminal 1 in which the first unique data DA is stored can decrypt the first encrypted data DCI1 as in the above equation (4) to acquire the key DK and the like.

第2暗号化データDCI2は、例えば、上記(5)式のように、第2固有値等で暗号化されたデータである。そのため、第2固有データDBが記憶されているサービスサーバ3は、第2暗号化データDCI2を、上記(6)式のように復号化して鍵DK等を取得することができる。 The second encrypted data DCI2 is data encrypted with a second eigenvalue or the like, for example, as in the above equation (5). Therefore, the service server 3 in which the second unique data DB is stored can decrypt the second encrypted data DCI2 as in the above equation (6) to acquire the key DK and the like.

このようにすると、クライアント端末1及びサービスサーバ3は、共通する鍵DKをお互いに持つことができる。したがって、クライアント端末1及びサービスサーバ3は、ステップS16のように、共通鍵方式等でセキュリティを確保して通信を行うことができる。 In this way, the client terminal 1 and the service server 3 can have a common key DK with each other. Therefore, the client terminal 1 and the service server 3 can perform communication while ensuring security by a common key method or the like as in step S16.

<機能構成例>
図6は、本発明の一実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。図示するように、例えば、第1情報処理装置の例であるクライアント端末1は、第1記憶部10F1と、第1送信部10F2と、通信部10F13とを有する。また、複数の第2情報処理装置のうち、1台の例であるサーバ21は、第2送信部10F3と、生成部10F4と、第1暗号化部10F5と、第2暗号化部10F6と、第4送信部10F7と、第5送信部10F8とを有する。さらに、第3情報処理装置の例であるサービスサーバ3は、第2記憶部10F9と、登録部10F10と、判断部10F11と、第3送信部10F12と、通信部10F14とを有する。以下、図示するような構成を例に説明する。
<Function configuration example>
FIG. 6 is a functional block diagram showing a functional configuration example of the information processing system according to the embodiment of the present invention. As shown in the figure, for example, the client terminal 1 which is an example of the first information processing apparatus has a first storage unit 10F1, a first transmission unit 10F2, and a communication unit 10F13. Further, among the plurality of second information processing devices, the server 21, which is one example, includes a second transmission unit 10F3, a generation unit 10F4, a first encryption unit 10F5, and a second encryption unit 10F6. It has a fourth transmission unit 10F7 and a fifth transmission unit 10F8. Further, the service server 3, which is an example of the third information processing apparatus, has a second storage unit 10F9, a registration unit 10F10, a determination unit 10F11, a third transmission unit 10F12, and a communication unit 10F14. Hereinafter, a configuration as shown in the figure will be described as an example.

第1記憶部10F1は、第1情報処理装置を識別する第1固有データDAを記憶する第1記憶手順を行う。例えば、第1記憶部10F1は、記憶装置203等によって実現される。 The first storage unit 10F1 performs a first storage procedure for storing the first unique data DA that identifies the first information processing device. For example, the first storage unit 10F1 is realized by a storage device 203 or the like.

第2記憶部10F9は、第2情報処理装置を識別する第2固有データDBを記憶する第2記憶手順を行う。例えば、第2記憶部10F9は、記憶装置203等によって実現される。 The second storage unit 10F9 performs a second storage procedure for storing the second unique data DB that identifies the second information processing device. For example, the second storage unit 10F9 is realized by a storage device 203 or the like.

第1送信部10F2は、第1情報処理装置を使用するユーザを識別するユーザデータDCを第2情報処理装置に送信する第1送信手順を行う。さらに、第1送信部10F2は、第3情報処理装置に対する第1情報処理装置によるアクセスのリクエストREQを送信する第1送信手順を行う。例えば、第1送信部10F2は、インタフェース202等によって実現される。 The first transmission unit 10F2 performs the first transmission procedure of transmitting the user data DC that identifies the user who uses the first information processing device to the second information processing device. Further, the first transmission unit 10F2 performs a first transmission procedure for transmitting a request EQU for access by the first information processing device to the third information processing device. For example, the first transmission unit 10F2 is realized by an interface 202 or the like.

第2送信部10F3は、第1情報処理装置からリクエストREQが送信されると、ユーザデータDCを第3情報処理装置に送信する第2送信手順を行う。例えば、第2送信部10F3は、インタフェース202等によって実現される。 When the request EQU is transmitted from the first information processing device, the second transmission unit 10F3 performs a second transmission procedure of transmitting the user data DC to the third information processing device. For example, the second transmission unit 10F3 is realized by the interface 202 or the like.

登録部10F10は、ユーザデータDCを登録する登録手順を行う。例えば、登録部10F10は、記憶装置203等によって実現される。 The registration unit 10F10 performs a registration procedure for registering the user data DC. For example, the registration unit 10F10 is realized by a storage device 203 or the like.

判断部10F11は、第2送信部10F3によって送信されるユーザデータDCを受信する判断手順を行う。そして、判断部10F11は、受信したユーザデータDCが登録部10F10によって登録されているか否かを判断する判断手順を行う。例えば、判断部10F11は、CPU200等によって実現される。 The determination unit 10F11 performs a determination procedure for receiving the user data DC transmitted by the second transmission unit 10F3. Then, the determination unit 10F11 performs a determination procedure for determining whether or not the received user data DC is registered by the registration unit 10F10. For example, the determination unit 10F11 is realized by the CPU 200 or the like.

第3送信部10F12は、判断部10F11による判断結果を第2情報処理装置に送信する第3送信手順を行う。例えば、第3送信部10F12は、インタフェース202等によって実現される。 The third transmission unit 10F12 performs a third transmission procedure for transmitting the determination result by the determination unit 10F11 to the second information processing apparatus. For example, the third transmission unit 10F12 is realized by the interface 202 or the like.

生成部10F4は、判断部10F11による判断結果に基づいて、第1情報処理装置及び第3情報処理装置の間で行われる通信に用いられる鍵DKを生成する生成手順を行う。なお、生成部10F4は、素材データを生成してもよい。例えば、生成部10F4は、CPU200等によって実現される。 The generation unit 10F4 performs a generation procedure for generating a key DK used for communication performed between the first information processing device and the third information processing device based on the determination result by the determination unit 10F11. The generation unit 10F4 may generate material data. For example, the generation unit 10F4 is realized by the CPU 200 or the like.

なお、生成部10F4は、第1情報処理装置及び第3情報処理装置の間で行われる通信のセッションを識別するセッションデータDSE等を生成するのが望ましい。 It is desirable that the generation unit 10F4 generate session data DSE or the like that identifies a session of communication performed between the first information processing device and the third information processing device.

第1暗号化部10F5は、鍵DK等を暗号化して第1暗号化データDCI1を生成する第1暗号化手順を行う。例えば、第1暗号化部10F5は、CPU200等によって実現される。 The first encryption unit 10F5 performs the first encryption procedure of encrypting the key DK and the like to generate the first encrypted data DCI1. For example, the first encryption unit 10F5 is realized by the CPU 200 or the like.

第2暗号化部10F6は、鍵DK等を暗号化して第2暗号化データDCI2を生成する第2暗号化手順を行う。例えば、第2暗号化部10F6は、CPU200等によって実現される。 The second encryption unit 10F6 performs a second encryption procedure of encrypting the key DK and the like to generate the second encrypted data DCI2. For example, the second encryption unit 10F6 is realized by the CPU 200 or the like.

第4送信部10F7は、第1暗号化部10F5が生成する第1暗号化データDCI1を第1情報処理装置に送信する第4送信手順を行う。例えば、第4送信部10F7は、インタフェース202等によって実現される。 The fourth transmission unit 10F7 performs a fourth transmission procedure of transmitting the first encrypted data DCI1 generated by the first encryption unit 10F5 to the first information processing apparatus. For example, the fourth transmission unit 10F7 is realized by the interface 202 or the like.

第5送信部10F8は、第2暗号化部10F6が生成する第2暗号化データDCI2を第3情報処理装置に送信する第5送信手順を行う。例えば、第5送信部10F8は、インタフェース202等によって実現される。 The fifth transmission unit 10F8 performs a fifth transmission procedure of transmitting the second encrypted data DCI2 generated by the second encryption unit 10F6 to the third information processing apparatus. For example, the fifth transmission unit 10F8 is realized by the interface 202 or the like.

通信部10F13及び通信部10F14は、第1暗号化データDCI1及び第2暗号化データDCI2を復号化して取得できる鍵DK又は素材データに基づいて生成される鍵を用いて通信を行う通信手順を行う。例えば、通信部10F13及び通信部10F14は、インタフェース202等によって実現される。 The communication unit 10F13 and the communication unit 10F14 perform a communication procedure for performing communication using a key DK that can be obtained by decrypting the first encrypted data DCI1 and the second encrypted data DCI2 or a key generated based on the material data. .. For example, the communication unit 10F13 and the communication unit 10F14 are realized by an interface 202 or the like.

また、第2情報処理装置は、図1に示すように、サーバ21、22、・・・2Nのように複数となる。そして、それぞれの第2情報処理装置が有するそれぞれの生成部10F4によって、異なる鍵DK又は素材データを生成する。このようにすると、N個の異なる鍵DK又は素材データが生成できる。これらの鍵DK又は素材データから生成される鍵は、セッションデータDSEに対応するように、すなわち、セッションごとに生成されるのが望ましい。このように、複数の鍵が生成されると、第1情報処理装置及び第3情報処理装置は、セッションごとに、異なる鍵を用いることができる。そして、各セッションは、セッションデータDSEによって設定できる。 Further, as shown in FIG. 1, there are a plurality of second information processing devices as shown in the servers 21, 22, ... 2N. Then, different key DKs or material data are generated by each generation unit 10F4 of each second information processing device. In this way, N different key DKs or material data can be generated. It is desirable that the key generated from these key DKs or material data is generated so as to correspond to the session data DSE, that is, for each session. In this way, when a plurality of keys are generated, the first information processing device and the third information processing device can use different keys for each session. Then, each session can be set by the session data DSE.

このように、セッションごとに、異なる鍵を用いて通信を行うと、よりセキュリティを高めることができる。 In this way, if communication is performed using a different key for each session, security can be further enhanced.

また、第2情報処理装置の数、すなわち、「N」は、多すぎると、鍵を生成する時間及びユーザデータを用いる判断等のチェック時間が長くなり、通信が遅くなる場合がある。一方で、第2情報処理装置の数、すなわち、「N」は、少ないと、鍵の数も少なくなる、及び、ユーザデータを用いる判断等のチェックを行う回数が少なくなる等によりセキュリティが十分でない場合がある。 Further, if the number of the second information processing apparatus, that is, "N" is too large, the time for generating the key and the check time for determining using the user data become long, and the communication may be delayed. On the other hand, if the number of the second information processing devices, that is, "N" is small, the number of keys is also small, and the number of checks such as judgments using user data is small, so that the security is not sufficient. In some cases.

そこで、第2情報処理装置の数、すなわち、「N」は、2乃至10 台程度であるのが望ましい。より望ましくは、「N」は、3乃至5 台程度であるのが望ましい。このような台数であると、通信が遅くなるのを少なくし、かつ、セキュリティを高めることができる。 Therefore, it is desirable that the number of the second information processing apparatus, that is, "N" is about 2 to 10. More preferably, the number of "N" is about 3 to 5. With such a number, it is possible to reduce communication slowdown and enhance security.

なお、複数の第2情報処理装置を用いると、判断結果が複数発生する。そこで、第2情報処理装置は、複数の判断結果がすべて通信を行ってよいという判断である場合に鍵等を生成するとしてもよい。このように、複数のチェック結果を、いわゆる「AND」で利用すると、よりセキュリティを向上させることができる。なお、複数の判断結果を用いる場合には、すべてでなく、多数決等としてもよい。 When a plurality of second information processing devices are used, a plurality of determination results are generated. Therefore, the second information processing apparatus may generate a key or the like when the plurality of determination results are all determinations that communication may be performed. In this way, if a plurality of check results are used in so-called "AND", security can be further improved. When using a plurality of judgment results, a majority vote may be used instead of all.

また、第1情報処理装置は、第1所定値P1及び第1固有データDAに基づく計算によって第1計算値C1を生成するのが望ましい。第1計算値C1は、ハッシュ値等である。したがって、第1計算値C1は、同一の第1所定値P1及び第1固有データDAを持つ情報処理装置であれば、同一の値を計算できる。ゆえに、第1計算値C1を用いて暗号化した第1暗号化データDCI1は、あらかじめ第1所定値P1及び第1固有データDAを渡した情報処理装置でないと復号化が難しい。そのため、「なりすまし」等を防ぐことができたり、又は、第1暗号化データDCI1が不正に取得されても、鍵DK等が漏洩するのを防ぐことができたりする。 Further, it is desirable that the first information processing apparatus generate the first calculated value C1 by the calculation based on the first predetermined value P1 and the first unique data DA. The first calculated value C1 is a hash value or the like. Therefore, the first calculated value C1 can be calculated to be the same as long as it is an information processing apparatus having the same first predetermined value P1 and the first unique data DA. Therefore, it is difficult to decrypt the first encrypted data DCI1 encrypted using the first calculated value C1 unless the information processing device has passed the first predetermined value P1 and the first unique data DA in advance. Therefore, it is possible to prevent "spoofing" or the like, or even if the first encrypted data DCI1 is illegally acquired, it is possible to prevent the key DK or the like from being leaked.

また、第3情報処理装置は、第2所定値P2及び第2固有データDBに基づく計算によって第2計算値C2を生成するのが望ましい。第2計算値C2は、ハッシュ値等である。したがって、第2計算値C2は、同一の第2所定値P2及び第2固有データDBを持つ情報処理装置であれば、同一の値を計算できる。ゆえに、第2計算値C2を用いて比較することで「なりすまし」等がないかをチェックできる。 Further, it is desirable that the third information processing apparatus generate the second calculated value C2 by the calculation based on the second predetermined value P2 and the second unique data DB. The second calculated value C2 is a hash value or the like. Therefore, the second calculated value C2 can be calculated to be the same as long as it is an information processing apparatus having the same second predetermined value P2 and the second unique data DB. Therefore, it is possible to check whether there is "spoofing" or the like by comparing using the second calculated value C2.

<第1比較例>
図7は、比較例に係る情報処理システムに対する中間者攻撃の例を示す概念図である。この比較例は、図1に示す例におけるクライアント端末1に相当する第4情報処理装置4が、図1に示す例におけるサービスサーバ3に相当する第5情報処理装置にアクセスする例である。
<First comparative example>
FIG. 7 is a conceptual diagram showing an example of a man-in-the-middle attack on an information processing system according to a comparative example. This comparative example is an example in which the fourth information processing device 4 corresponding to the client terminal 1 in the example shown in FIG. 1 accesses the fifth information processing device corresponding to the service server 3 in the example shown in FIG.

図7(A)に示すように、第4情報処理装置4と、第5情報処理装置5との通信経路に対して、不正にデータを取得しようとする第3者(以下「中間者」という。)によって、例えば、図示するように、第6情報処理装置6が接続される。なお、第4情報処理装置4及び第5情報処理装置5は、第6情報処理装置6が接続されたのを分からないとする。 As shown in FIG. 7 (A), a third party (hereinafter referred to as "intermediate person") who attempts to illegally acquire data with respect to the communication path between the fourth information processing device 4 and the fifth information processing device 5. ), For example, the sixth information processing apparatus 6 is connected as shown in the figure. It should be noted that the 4th information processing device 4 and the 5th information processing device 5 do not know that the 6th information processing device 6 is connected.

そして、図7(A)に示すような点に第6情報処理装置6が接続されると、以降の通信経路は、例えば、図7(B)のようになる。具体的には、図示する例では、第4情報処理装置4から第5情報処理装置5に送信するデータは、第6情報処理装置6を経由して第5情報処理装置5に送信される。この場合には、第6情報処理装置6は、データが削除されたり、又は、データが改ざんされたりしないと、データが無事に送受信されたように見える。そのため、第4情報処理装置4及び第5情報処理装置5は、データの内容を第6情報処理装置6に不正に取得されたが分からない場合がある。 Then, when the sixth information processing apparatus 6 is connected to the point shown in FIG. 7A, the subsequent communication path becomes, for example, as shown in FIG. 7B. Specifically, in the illustrated example, the data transmitted from the 4th information processing device 4 to the 5th information processing device 5 is transmitted to the 5th information processing device 5 via the 6th information processing device 6. In this case, the sixth information processing apparatus 6 appears to have successfully transmitted and received the data unless the data is deleted or the data is tampered with. Therefore, the 4th information processing device 4 and the 5th information processing device 5 may not know the contents of the data although they have been illegally acquired by the 6th information processing device 6.

同様に、第4情報処理装置4に第5情報処理装置5から送信するデータも、第6情報処理装置6を経由して第4情報処理装置4に送信される通信経路にすることができる。 Similarly, the data transmitted from the fifth information processing device 5 to the fourth information processing device 4 can also be a communication path transmitted to the fourth information processing device 4 via the sixth information processing device 6.

したがって、中間者攻撃を行うと、第6情報処理装置6は、第4情報処理装置4及び第5情報処理装置5の間を送受信するデータを不正に取得できる場合がある。 Therefore, when a man-in-the-middle attack is performed, the sixth information processing device 6 may be able to illegally acquire data transmitted / received between the fourth information processing device 4 and the fifth information processing device 5.

ゆえに、第6情報処理装置6は、第4情報処理装置4及び第5情報処理装置5の間で送信されるデータを取得し続けると、鍵等のデータを取得できる可能性がある。このように、鍵等のデータを第6情報処理装置6に取得されると、第6情報処理装置6は、鍵を用いて暗号化されたデータを復号化できる場合がある。ゆえに、比較例のような構成であると、セキュリティが十分でない可能性がある。 Therefore, if the sixth information processing device 6 continues to acquire the data transmitted between the fourth information processing device 4 and the fifth information processing device 5, there is a possibility that the data such as the key can be acquired. In this way, when the data such as the key is acquired by the sixth information processing device 6, the sixth information processing device 6 may be able to decrypt the data encrypted by using the key. Therefore, the security may not be sufficient if the configuration is as shown in the comparative example.

一方で、本実施形態のような構成であると、クライアント端末1及びサービスサーバ3を結ぶ通信経路に中間者攻撃をしても、鍵は、サーバ21から送信されるため、クライアント端末1及びサービスサーバ3を結ぶ通信経路からでは、中間者は、取得できない。したがって、本実施形態のような構成であると、中間者攻撃等があっても、鍵等のデータが漏洩するのを防ぐことができる。 On the other hand, in the configuration as in this embodiment, even if a man-in-the-middle attack is made on the communication path connecting the client terminal 1 and the service server 3, the key is transmitted from the server 21, so that the client terminal 1 and the service An intermediate person cannot acquire from the communication path connecting the server 3. Therefore, with the configuration as in this embodiment, it is possible to prevent data such as a key from being leaked even if there is a man-in-the-middle attack or the like.

また、本実施形態のような構成であると、いわゆるワンタイムパスワード等を利用する場合とは異なり、通信を行う情報処理装置の間で、時間を同期させるのを不要にできる。 Further, with the configuration as in this embodiment, unlike the case where a so-called one-time password or the like is used, it is possible to eliminate the need to synchronize the time between the information processing devices that perform communication.

さらに、本実施形態のような構成であると、第2情報処理装置に、第1情報処理装置が第3情報処理装置にアクセスする時間等を示すログを残すことができる。 Further, with the configuration as in the present embodiment, a log indicating the time for the first information processing device to access the third information processing device and the like can be left in the second information processing device.

<第2比較例>
図8は、比較例に係る情報処理システムによる全体処理例を示すシーケンス図である。図3に示す全体処理と比較すると、ステップS03、ステップS04、ステップS06乃至ステップS10に示す処理がない点が異なる。このような全体処理を行う比較例において、例えば、以下のような「なりすまし」が行われたとする。
<Second comparative example>
FIG. 8 is a sequence diagram showing an example of overall processing by the information processing system according to the comparative example. Compared with the whole process shown in FIG. 3, the difference is that the processes shown in steps S03, S04, S06 to S10 are not provided. In a comparative example in which such an overall process is performed, for example, it is assumed that the following "spoofing" is performed.

図9は、比較例に係る情報処理システムに対する「なりすまし」の例を示す概念図である。図示する比較例は、正規の使用者であるユーザURに「なりすまし」をした第3者FURが、図8に示す全体処理を行う比較例情報処理システム20を用いて、サービスサーバ3に不正にアクセスする例である。なお、この比較例では、第3者FURが使用する情報処理装置を第7情報処理装置7とする。 FIG. 9 is a conceptual diagram showing an example of “spoofing” for the information processing system according to the comparative example. In the illustrated comparative example, a third party FUR who "impersonates" a user UR who is a legitimate user illegally attacks the service server 3 by using the comparative example information processing system 20 which performs the entire processing shown in FIG. This is an example of access. In this comparative example, the information processing device used by the third party FUR is referred to as the seventh information processing device 7.

第7情報処理装置7は、クライアント端末1でないため、第1固有データDAを有しない。また、第3者FURは、ユーザURでないため、あらかじめサービスサーバ3に登録されるユーザURのID等を知らない。そのため、第7情報処理装置7は、ユーザURのユーザデータを有さない。 Since the seventh information processing device 7 is not the client terminal 1, it does not have the first unique data DA. Further, since the third party FUR is not a user UR, it does not know the ID of the user UR registered in the service server 3 in advance. Therefore, the seventh information processing apparatus 7 does not have the user data of the user UR.

比較例情報処理システム20では、ステップS04及びステップS06乃至ステップS10が行われない。そのため、比較例情報処理システム20では、ユーザURのユーザデータでなくとも、第3者FURのユーザデータでリクエストをサーバ21に行えば、鍵等を生成する処理、すなわち、ステップS11等が実行される場合がある。 Comparative Example In the information processing system 20, step S04 and steps S06 to S10 are not performed. Therefore, in the comparative example information processing system 20, if a request is made to the server 21 with the user data of the third party FUR even if it is not the user data of the user UR, a process of generating a key or the like, that is, step S11 or the like is executed. May occur.

また、比較例情報処理システム20では、ステップS112等では、クライアント端末1の第1固有データDAに代えて、例えば、第7情報処理装置7の固有データを用いるようにする。このようにすると、クライアント端末1、すなわち、第1固有データDAでなくとも、ハッシュ値が生成される場合がある。そのため、第3者FURであっても、第7情報処理装置7は、鍵DKを取得できる場合がある。ゆえに、第3者FURは、「なりすまし」によって、ユーザURと不正に代わって、サービスサーバ3にステップS16により、アクセスできる場合がある。 Further, in the comparative example information processing system 20, in step S112 and the like, for example, the unique data of the seventh information processing apparatus 7 is used instead of the first unique data DA of the client terminal 1. In this way, a hash value may be generated even if the client terminal 1 is not the first unique data DA. Therefore, even if it is a third party FUR, the seventh information processing apparatus 7 may be able to acquire the key DK. Therefore, the third party FUR may be able to access the service server 3 by step S16 on behalf of the user UR by "impersonation".

もし、いわゆる「フィッシング」等の不正な取得方法によって、ユーザURのID及びパスワード等が、第3者FURに不正に取得されてしまうと、比較例情報処理システム20では、サービスサーバ3は、第3者FURをユーザURと認証してしまうおそれがある。すなわち、第3者FURによる「なりすまし」等よって、ユーザURは、サービスサーバ3におけるアカウントを不正に使用される可能性がある。 If the ID and password of the user UR are illegally acquired by a third party FUR by an illegal acquisition method such as so-called "phishing", in the comparative example information processing system 20, the service server 3 is the third party. There is a risk of authenticating the three-party FUR as the user UR. That is, there is a possibility that the user UR may illegally use the account on the service server 3 due to "spoofing" by a third party FUR or the like.

一方で、本実施形態であると、例えば、リクエストの際等にユーザURのユーザデータを送信し、ステップS06乃至ステップS09のようにチェックする。このような構成であると、第3者FURのユーザデータでは、ユーザURのユーザデータでないため、事前にサービスサーバ3に登録されているユーザデータとは異なるとステップS07で判断される。 On the other hand, in the present embodiment, for example, the user data of the user UR is transmitted at the time of request and the like, and checks are performed as in steps S06 to S09. With such a configuration, since the user data of the third party FUR is not the user data of the user UR, it is determined in step S07 that the user data is different from the user data registered in the service server 3 in advance.

このような判断結果では、ステップS10による終了処理が行われるため、鍵DKを生成する処理等(すなわち、ステップS11以降の処理等である。)が実行されない。ゆえに、本実施形態では、第3者FURは、「なりすまし」によって、ユーザURと不正に代わって鍵DKを取得できない。このようにして、「なりすまし」等を防ぐことで、情報処理システム10は、セキュリティを高めることができる。 In such a determination result, since the termination process in step S10 is performed, the process for generating the key DK and the like (that is, the processes after step S11 and the like) are not executed. Therefore, in the present embodiment, the third party FUR cannot acquire the key DK on behalf of the user UR by "impersonation". By preventing "spoofing" and the like in this way, the information processing system 10 can enhance security.

また、本実施形態では、ステップS12では、サーバ21は、ステップS03であらかじめ記憶する第1固有データDA等で暗号化する。そのため、第7情報処理装置7は、ステップS13で第1暗号化データDCI1を取得できても、第1固有データDAを有さないため、第1暗号化データDCI1を復号化するのが難しい。ゆえに、第7情報処理装置7は、第1暗号化データDCI1から鍵DK等を不正に取得するのが難しい。 Further, in the present embodiment, in step S12, the server 21 is encrypted with the first unique data DA or the like stored in advance in step S03. Therefore, even if the seventh information processing apparatus 7 can acquire the first encrypted data DCI1 in step S13, it is difficult to decrypt the first encrypted data DCI1 because it does not have the first unique data DA. Therefore, it is difficult for the seventh information processing apparatus 7 to illegally acquire the key DK or the like from the first encrypted data DCI1.

また、セッションデータDSEがないため、第7情報処理装置7は、サービスサーバ3と異なるセッションで通信を行おうとする(異なるセッションIDを使用する)。このような状態では、ステップS16のような通信を行うのは難しい。このようにして、鍵DK及びセッションデータDSE等が不正に取得されるのを防ぐことで、情報処理システム10は、セキュリティを高めることができる。 Further, since there is no session data DSE, the seventh information processing apparatus 7 tries to communicate with the service server 3 in a different session (uses a different session ID). In such a state, it is difficult to perform the communication as in step S16. In this way, the security of the information processing system 10 can be enhanced by preventing the key DK, the session data DSE, and the like from being illegally acquired.

<固有データの発行例>
第1固有データ及び第2固有データは、動的に割り当てられるのが望ましい。例えば、第1固有データ、すなわち、第1情報処理装置を識別する固有データは、第2情報処理装置にアクセスすることで割り当てられるのが望ましい。したがって、第1固有データは、例えば、リクエストごとに切り替えられると、よりセキュリティを高めることができる。
<Example of issuing unique data>
It is desirable that the first unique data and the second unique data are dynamically assigned. For example, it is desirable that the first unique data, that is, the unique data that identifies the first information processing device, is assigned by accessing the second information processing device. Therefore, if the first unique data is switched for each request, for example, the security can be further enhanced.

なお、固有データは、第2固有データが切り替えられてもよい。また、切り替えるタイミングは、リクエストごとでなく、一定期間ごと又は1通信ごと等でもよい。 As the unique data, the second unique data may be switched. Further, the timing of switching may be not for each request but for each fixed period or one communication.

このように、動的に固有データを切り替える方式を「動的固有アイデンティティ(Dynamic Specific Identity、DSI)」と呼ぶ。 Such a method of dynamically switching the unique data is called "Dynamic Specific Identity (DSI)".

また、第1情報処理装置等は、例えば、OMA−DM(Open Mobile Alliance−Device Management)、LDAP(Lightweight Directory Access Protocol)又はRadius(Remote Authentication Dial In User Service)等によって認証されるのが望ましい。いわゆるAAA(Authentication(認証)、Authorization(認可)及びAccounting(アカウンティング)の機能を有する情報処理システムをいう。)等によって、第1情報処理装置等は、認証等がされるのが望ましい。 Further, the first information processing apparatus or the like is, for example, an OMA-DM (Open Mobile Alliance-Device Management), an LDAP (Lightweight Directory Access Protocol), or a Radius (Remote Authentication Information) or the like. It is desirable that the first information processing apparatus or the like is authenticated or the like by so-called AAA (an information processing system having an authentication (authorization), authorization (authorization) and accounting (accounting) function) or the like.

さらに、第1固有データ等は、ハードウェア等を特定するデータでもよい。例えば、第1固有データ等は、第1情報処理装置が有するセンサ等に基づく位置情報又は第1情報処理装置が有するデバイスのID等でもよい。 Further, the first unique data or the like may be data that specifies hardware or the like. For example, the first unique data or the like may be position information based on a sensor or the like possessed by the first information processing device or an ID of a device possessed by the first information processing device.

また、第1固有データ等は、分散して記憶されるデータ(以下「分散データ」という。)に基づいて生成されるのが望ましい。 Further, it is desirable that the first unique data and the like are generated based on the distributed data (hereinafter referred to as "distributed data").

図10は、本発明の一実施形態に係る情報処理システムにおいて分散データを用いる例を示す概略図である。まず、N台の第2情報処理装置及び第1情報処理装置には、図示するように、あらかじめ第1分散データDD1、第2分散データDD2、・・・、第N分散データDDN及び第(N+1)分散データDDN1がそれぞれ記憶される。 FIG. 10 is a schematic diagram showing an example in which distributed data is used in the information processing system according to the embodiment of the present invention. First, as shown in the figure, the N second information processing apparatus and the first information processing apparatus are previously charged with the first distributed data DD1, the second distributed data DD2, ..., the Nth distributed data DDN, and the first (N + 1). ) Distributed data DDN1 is stored respectively.

例えば、「事前処理」等において、クライアント端末1がサーバ21等にアクセスすると、サーバ群2におけるサーバ21、22、・・・、2Nは、クライアント端末1にそれぞれの分散データを送信する。 For example, in "pre-processing" or the like, when the client terminal 1 accesses the server 21 or the like, the servers 21, 22, ..., 2N in the server group 2 transmit their respective distributed data to the client terminal 1.

そして、クライアント端末1は、各分散データを受信すると、分散データに基づいて、第1固有データを生成する。例えば、第1分散データDD1、第2分散データDD2、第N分散データDDN及び第(N+1)分散データDDN1が1ビットのデータである場合には、すべての分散データをビットとした第1固有データ等を生成する。なお、第1固有データの生成方法は、各分散データをビットとする方法に限られない。すなわち、第1固有データは、例えば、各分散データを組み合わせ又は加算等してもよい。ほかにも、第1固有データは、所定の関数に対して、分散データを入力して生成されてもよい。 Then, when the client terminal 1 receives each distributed data, the client terminal 1 generates the first unique data based on the distributed data. For example, when the first distributed data DD1, the second distributed data DD2, the Nth distributed data DDN, and the (N + 1) distributed data DDN1 are 1-bit data, the first unique data in which all the distributed data are bits. Etc. are generated. The method of generating the first unique data is not limited to the method of using each distributed data as a bit. That is, the first unique data may be, for example, a combination or addition of each distributed data. In addition, the first unique data may be generated by inputting distributed data to a predetermined function.

このように、第1固有データ等は、第2情報処理装置が記憶する分散データ等に基づいて生成されるのが望ましい。すなわち、複数の分散データのうち、いずれか1つの分散データを取得できただけでは、第1固有データ等を不正に複製するのは難しい。したがって、第1固有データを特定するためのデータを図示するように、複数の情報処理装置で分散して記憶すると、よりセキュリティを高めることができる。 As described above, it is desirable that the first unique data and the like are generated based on the distributed data and the like stored in the second information processing apparatus. That is, it is difficult to illegally duplicate the first unique data or the like only by acquiring any one of the distributed data among the plurality of distributed data. Therefore, as shown in the figure, if the data for specifying the first unique data is distributed and stored by a plurality of information processing devices, the security can be further enhanced.

<第2実施形態>
例えば、第2実施形態は、第1実施形態と同様の全体構成及び同様のハードウェア構成である情報処理装置等によって実現される。一方で、第2実施形態では、第1実施形態と全体処理が異なる。以下、異なる点を中心に説明し、第1実施形態と同様の構成には同一の符号を付して重複する説明を省略する。
<Second Embodiment>
For example, the second embodiment is realized by an information processing device or the like having the same overall configuration and the same hardware configuration as the first embodiment. On the other hand, in the second embodiment, the overall processing is different from that in the first embodiment. Hereinafter, different points will be mainly described, and the same reference numerals will be given to the same configurations as those in the first embodiment, and duplicate description will be omitted.

また、以下の説明は、第2実施形態も第1実施形態と同様に、複数の第2情報処理装置のうち、サーバ21を代表とした例で説明する。 Further, the following description will be described with an example in which the server 21 is represented among the plurality of second information processing devices in the second embodiment as in the first embodiment.

<全体処理例>
図11は、本発明の第2実施形態に係る情報処理システムによる全体処理例を示すシーケンス図である。第1実施形態と同様に、全体処理では、まず、「本処理」の前に「事前処理」が行われる。その後、「本処理」によって通信が確立した状態で、クライアント端末1及びサービスサーバ3は、「通信」を行う。
<Overall processing example>
FIG. 11 is a sequence diagram showing an example of overall processing by the information processing system according to the second embodiment of the present invention. Similar to the first embodiment, in the overall processing, first, the "pre-processing" is performed before the "main processing". After that, the client terminal 1 and the service server 3 perform "communication" in a state where communication is established by "this processing".

<認証データ等の登録例>(ステップS201)
ステップS201では、サーバ21は、認証データ等を登録する。例えば、サーバ21は、あらかじめ認証データ等を対応させて登録し、以下のようなデータベースを構築する。
<Example of registration of authentication data, etc.> (Step S201)
In step S201, the server 21 registers the authentication data and the like. For example, the server 21 registers the authentication data and the like in advance, and constructs the following database.

図12は、本発明の第2実施形態に係る登録データの例を示す図である。例えば、ステップS201によって、図示するような形式でデータ(以下「登録データDR」という。)が記憶され、データベースが構築されるとする。 FIG. 12 is a diagram showing an example of registration data according to the second embodiment of the present invention. For example, it is assumed that in step S201, data (hereinafter referred to as "registered data DR") is stored in a format as shown in the figure, and a database is constructed.

登録データDRでは、図示するように、「ユーザ名」に対応して、認証データの例である「ログインID」及び「パスワード」等があらかじめデータ登録される。さらに、登録データDRには、セッションデータの例である「セッションID」がデータ登録される。また、例えば、図示するように、登録データDRには、各セッションに対応するように、「鍵」等がデータ登録される。 In the registration data DR, as shown in the figure, "login ID", "password" and the like, which are examples of authentication data, are registered in advance corresponding to the "user name". Further, a "session ID" which is an example of session data is registered in the registration data DR. Further, for example, as shown in the figure, data such as a "key" is registered in the registration data DR so as to correspond to each session.

「ログインID」及び「パスワード」は、サーバ21がユーザを認証するのに用いるデータの例である。具体的には、サーバ21は、サービス開始又はアクセス等の際に、ログインID及びパスワードの入力を求める。そして、クライアント端末1等に対して、ユーザがログインID及びパスワード等を入力する操作を行う。 The "login ID" and "password" are examples of data used by the server 21 to authenticate the user. Specifically, the server 21 prompts for input of a login ID and a password when starting a service or accessing the service. Then, the user performs an operation of inputting a login ID, a password, and the like to the client terminal 1 and the like.

具体的には、サーバ21から要求されると、例えば、「ユーザα」は、クライアント端末1に対して、ログインIDとして「AAAA」を入力し、かつ、パスワードとして「A1234Ret」を入力する。このようにして入力されたログインID及びパスワード等がクライアント端末1からサーバ21に送信される。 Specifically, when requested by the server 21, for example, the "user α" inputs "AAAA" as the login ID and "A1234Ret" as the password for the client terminal 1. The login ID, password, and the like entered in this way are transmitted from the client terminal 1 to the server 21.

そして、サーバ21は、登録データDRに登録されているログインID及びパスワードと、クライアント端末1から送信されたログインID及びパスワードとを照合する。この照合の結果、ログインID及びパスワードがどちらも完全に一致すると、サーバ21は、クライアント端末1を使用しているユーザが「ユーザα」であると認証できる。 Then, the server 21 collates the login ID and password registered in the registration data DR with the login ID and password transmitted from the client terminal 1. As a result of this collation, if both the login ID and the password are completely matched, the server 21 can authenticate that the user using the client terminal 1 is "user α".

「セッションID」は、通信におけるセッションを特定できるデータである。なお、「セッションID」の決定方法は、どのような方法でもよい。 The "session ID" is data that can identify a session in communication. The "session ID" may be determined by any method.

「鍵」は、通信において、データを暗号化等に用いるデータである。なお、「鍵」の生成方法は、どのような方法でもよい。 The "key" is data used for encryption or the like in communication. Any method may be used to generate the "key".

また、「セッションID」及び「鍵」は、あらかじめ生成するのでなく、リクエストがあった場合等に生成されてもよい。以下、リクエストがあった場合に、「セッションID」及び「鍵」を生成する例で説明する。 Further, the "session ID" and the "key" are not generated in advance, but may be generated when there is a request or the like. Hereinafter, an example of generating a "session ID" and a "key" when a request is made will be described.

また、以下に説明する例では、「セッションID」及び「鍵」は、「事前処理」の段階では、未入力であるとする。この例では、「セッションID」及び「鍵」は、「本処理」において登録されるとする。 Further, in the example described below, it is assumed that the "session ID" and the "key" have not been input at the stage of "pre-processing". In this example, it is assumed that the "session ID" and the "key" are registered in the "main process".

<第3情報処理装置に対してアクセスするリクエストの送信例>(ステップS202)
ステップS202では、クライアント端末1は、サービスサーバ3に対してアクセスするリクエストをサーバ21に送信する。
<Example of Transmission of Request for Accessing Third Information Processing Device> (Step S202)
In step S202, the client terminal 1 transmits a request to access the service server 3 to the server 21.

<セッションID及び鍵の生成例>(ステップS203)
ステップS203では、サーバ21は、セッションID及び鍵を生成する。
<Example of generating session ID and key> (step S203)
In step S203, the server 21 generates a session ID and a key.

<セッションID及び鍵を暗号化して第1データを生成し、第1データを送信する例>(ステップS204)
ステップS204では、サーバ21は、まず、セッションID及び鍵を暗号化して、クライアント端末1が復号化できる暗号化されたデータ(以下「第1データ」という。)を生成する。したがって、第1データの生成方法は、クライアント端末1が復号化できれば問わない。
<Example of encrypting the session ID and key to generate the first data and transmitting the first data> (step S204)
In step S204, the server 21 first encrypts the session ID and the key to generate encrypted data (hereinafter referred to as "first data") that can be decrypted by the client terminal 1. Therefore, the method of generating the first data does not matter as long as the client terminal 1 can decode it.

次に、ステップS204では、サーバ21は、生成した第1データをクライアント端末1に送信する。 Next, in step S204, the server 21 transmits the generated first data to the client terminal 1.

<セッションID、鍵及びユーザデータを暗号化して第2データを生成し、第2データを送信する例>(ステップS205)
ステップS205では、サーバ21は、まず、セッションID、鍵及びユーザデータを暗号化して、サービスサーバ3が復号化できる暗号化されたデータ(以下「第2データ」という。)を生成する。したがって、第2データの生成方法は、サービスサーバ3が復号化できれば問わない。
<Example of encrypting the session ID, key, and user data to generate the second data, and transmitting the second data> (step S205)
In step S205, the server 21 first encrypts the session ID, the key, and the user data to generate encrypted data (hereinafter referred to as "second data") that can be decrypted by the service server 3. Therefore, the method of generating the second data does not matter as long as the service server 3 can decrypt it.

また、ユーザデータは、登録データDRにおける「ユーザ名」が識別できるデータである。したがって、「ログインID」等がユーザデータとして入力されてもよい。 Further, the user data is data that can identify the "user name" in the registered data DR. Therefore, "login ID" or the like may be input as user data.

次に、ステップS205では、サーバ21は、生成した第2データをサービスサーバ3に送信する。 Next, in step S205, the server 21 transmits the generated second data to the service server 3.

<セッションID及び鍵の登録例>(ステップS206)
ステップS206では、サービスサーバ3は、登録データDRに、ユーザデータに基づいて、セッションID及び鍵を登録する。具体的には、サービスサーバ3は、まず、ステップS205で送信される第2データを復号化してセッションID、鍵及びユーザデータを取得する。そして、サービスサーバ3は、ユーザデータが示す「ユーザ名」を特定する。
<Example of registering session ID and key> (step S206)
In step S206, the service server 3 registers the session ID and the key in the registration data DR based on the user data. Specifically, the service server 3 first decodes the second data transmitted in step S205 to acquire the session ID, the key, and the user data. Then, the service server 3 specifies the "user name" indicated by the user data.

例えば、クライアント端末1を操作するユーザが「ユーザα」である場合には、ユーザデータは、「ユーザα」であることを示す。この場合には、サービスサーバ3は、「ユーザα」に対応する「セッションID」及び「鍵」に、第2データで送信されたセッションID及び鍵を登録する。このような登録がされると、登録データDRは、例えば、図12に示すような状態となる。 For example, when the user who operates the client terminal 1 is "user α", the user data indicates that it is "user α". In this case, the service server 3 registers the session ID and the key transmitted in the second data in the "session ID" and the "key" corresponding to the "user α". When such registration is performed, the registration data DR is in a state as shown in FIG. 12, for example.

<セッションIDの送信例>(ステップS207)
ステップS207では、クライアント端末1は、サービスサーバ3にセッションIDを送信するのが望ましい。すなわち、ステップS207では、クライアント端末1は、まず、ステップS204で送信された第1データを復号化してセッションIDを取得する。そして、ステップS207では、クライアント端末1は、取得したセッションIDをサービスサーバ3に知らせる。
<Session ID transmission example> (step S207)
In step S207, it is desirable that the client terminal 1 transmits the session ID to the service server 3. That is, in step S207, the client terminal 1 first decodes the first data transmitted in step S204 to acquire the session ID. Then, in step S207, the client terminal 1 informs the service server 3 of the acquired session ID.

<セッションIDが登録されているか否かの判断例>(ステップS208)
ステップS208では、サービスサーバ3は、ステップS207で送信されるセッションIDが登録されているか否かを判断する。そして、サービスサーバ3は、判断結果をクライアント端末1に返信する。
<Example of determining whether or not the session ID is registered> (step S208)
In step S208, the service server 3 determines whether or not the session ID transmitted in step S207 is registered. Then, the service server 3 returns the determination result to the client terminal 1.

次に、セッションIDが登録されているという判断結果であると、クライアント端末1は、ステップS209以降の処理を続ける。一方で、セッションIDが登録されていないという判断結果であると、情報処理システム10は、全体処理を終了する。 Next, if it is a determination result that the session ID is registered, the client terminal 1 continues the processing after step S209. On the other hand, if it is a determination result that the session ID is not registered, the information processing system 10 ends the whole process.

このようにセッションIDの登録を確認することで、真正性を確認することができる。 By confirming the registration of the session ID in this way, the authenticity can be confirmed.

<ログインID及びパスワードの受付例>(ステップS209)
ステップS209では、クライアント端末1は、ログインID及びパスワードをユーザURから受け付ける。例えば、クライアント端末1は、ログインID及びパスワードを入力するためのGUI(Graphical User Interface)等によって、ユーザURによる操作を受け付ける。
<Example of accepting login ID and password> (Step S209)
In step S209, the client terminal 1 receives the login ID and password from the user UR. For example, the client terminal 1 accepts operations by the user UR by means of a GUI (Graphical User Interface) or the like for inputting a login ID and a password.

ユーザURは、あらかじめ登録してある認証データと同一の内容、すなわち、登録データDRにあらかじめ登録してある「ログインID」及び「パスワード」を入力する操作を行う。 The user UR performs an operation of inputting the same contents as the authentication data registered in advance, that is, the "login ID" and "password" registered in advance in the registration data DR.

以下、ステップS209で入力されたログインID及びパスワードを示すデータを「入力データ」という。 Hereinafter, the data indicating the login ID and password entered in step S209 will be referred to as "input data".

<鍵及び入力データに基づく第3データの生成例>(ステップS210)
ステップS210では、クライアント端末1は、鍵及び入力データに基づいて、第3データを生成する。
<Example of generating third data based on key and input data> (step S210)
In step S210, the client terminal 1 generates the third data based on the key and the input data.

第3データは、例えば、ハッシュ値等である。したがって、クライアント端末1は、あらかじめ設定されるハッシュ関数を実行する等によって、第3データを生成する。例えば、第3データは、下記(7)式等のように生成される。

第3データ=HMAC(鍵,入力データ)・・・(7)

上記(7)式における「HMAC」は、HMAC(Hash−based Message Authentication Code)アルゴリズムを実行する関数を指す。そして、上記(7)式における「HMAC」では、例えば、HMAC−SHA−256(Keyed Hashing for Message Authentication Code−SHA(Secure Hashing Algorithm)−256、RFC(Request for Comments)4868で定義されるハッシュ関数である。)等の関数が実行される。この例では、「SHA−256」を採用するため、関数が実行されると、256ビットのハッシュ値が算出される。このように、HMAC−SHA−256に準じたハッシュ関数には、第1データによって取得できる鍵と、入力データによって取得できるログインID及びパスワードとが入力される。
The third data is, for example, a hash value or the like. Therefore, the client terminal 1 generates the third data by executing a preset hash function or the like. For example, the third data is generated as shown in the following equation (7).

Third data = HMAC (key, input data) ... (7)

“HMAC” in the above equation (7) refers to a function that executes the HMAC (Hash-based Message Authentication Code) algorithm. Then, in the "HMAC" in the above equation (7), for example, HMAC-SHA-256 (Keyed Hashing for Message Authentication Code-SHA (Secure Hashing Algorithm) -256, RFC (Request for Co-Comments) 68 A function such as) is executed. In this example, since "SHA-256" is adopted, a 256-bit hash value is calculated when the function is executed. As described above, in the hash function according to HMAC-SHA-256, the key that can be acquired by the first data and the login ID and password that can be acquired by the input data are input.

すなわち、上記(7)式のように計算すると、256ビットの第3データが生成できる。このように、第3データが256ビットのデータであると、例えば、以下のように、処理を行うことができる。 That is, 256-bit third data can be generated by calculation as in the above equation (7). As described above, when the third data is 256-bit data, the processing can be performed as follows, for example.

<第3データ及び鍵に基づく第1合成鍵の生成例>(ステップS211)
ステップS211では、クライアント端末1は、第3データ及び鍵に基づいて、第1合成鍵を生成する。例えば、第1合成鍵は、下記(8)式のように生成される。

第1合成鍵=第3データの上位128ビット XOR 第3データの下位128ビット
XOR 鍵・・・(8)

なお、上記(8)式では、「鍵」は、あらかじめ128ビットであるとする。例えば、上記(8)式のとおりに、第3データの上位128ビット、第3データの下位128ビット及び鍵の排他的論理和が計算されると、第1合成鍵は、128ビットのデータとなる。したがって、第3データは、上記(8)式のように計算するため、256ビットであるのが望ましい。
<Example of generating a first synthetic key based on a third data and a key> (step S211)
In step S211 the client terminal 1 generates a first synthetic key based on the third data and the key. For example, the first synthetic key is generated as shown in the following equation (8).

1st synthetic key = upper 128 bits of 3rd data XOR lower 128 bits of 3rd data
XOR key ... (8)

In the above equation (8), the "key" is assumed to be 128 bits in advance. For example, when the exclusive OR of the upper 128 bits of the third data, the lower 128 bits of the third data, and the key is calculated as in the above equation (8), the first synthetic key is the 128-bit data. Become. Therefore, the third data is preferably 256 bits because it is calculated as in the above equation (8).

<第1合成鍵に基づいて入力データを暗号化して第4データを生成する例>(ステップS212)
ステップS212では、クライアント端末1は、ステップS211で生成する第1合成鍵を用いて、入力データを暗号化して第4データを生成する。具体的には、暗号化は、GCM(Galois/Counter Mode)用いられるが望ましい。GCMが用いられると、オーバヘッドを少なくできる。また、GCMを用いると、暗号化によるデータ保護と、認証とを両立させることができる。
<Example of generating the fourth data by encrypting the input data based on the first synthetic key> (step S212)
In step S212, the client terminal 1 encrypts the input data and generates the fourth data by using the first synthetic key generated in step S211. Specifically, it is desirable that GCM (Galois / Counter Mode) is used for encryption. When GCM is used, the overhead can be reduced. Further, when GCM is used, it is possible to achieve both data protection by encryption and authentication.

このように、GCMを用いるには、第1合成鍵等は、128ビットのデータであるのが望ましい。 As described above, in order to use GCM, it is desirable that the first synthetic key or the like is 128-bit data.

<第4データを第3情報処理装置に送信する例>(ステップS213)
ステップS213では、クライアント端末1は、ステップS212で生成する第4データをサービスサーバ3に送信する。
<Example of transmitting the fourth data to the third information processing apparatus> (step S213)
In step S213, the client terminal 1 transmits the fourth data generated in step S212 to the service server 3.

<ログインID及びパスワードの抽出例>(ステップS214)
ステップS214では、サービスサーバ3は、登録データDRから、ログインID及びパスワードを抽出する。具体的には、サービスサーバ3は、ステップS205で送信される第2データを復号化すると、ユーザデータを取得できる。そして、サービスサーバ3は、ユーザデータに基づいて、認証データを登録データDRから抽出する。つまり、この例では、サービスサーバ3は、ユーザデータが示す「ユーザ名」に対応する「ログインID」及び「パスワード」を抽出する。
<Example of extracting login ID and password> (step S214)
In step S214, the service server 3 extracts the login ID and password from the registration data DR. Specifically, the service server 3 can acquire user data by decoding the second data transmitted in step S205. Then, the service server 3 extracts the authentication data from the registered data DR based on the user data. That is, in this example, the service server 3 extracts the "login ID" and the "password" corresponding to the "user name" indicated by the user data.

<鍵及び認証データに基づく第5データの生成例>(ステップS215)
ステップS215では、サービスサーバ3は、鍵及び認証データに基づいて、第5データを生成する。
<Example of generating fifth data based on key and authentication data> (step S215)
In step S215, the service server 3 generates the fifth data based on the key and the authentication data.

第5データは、例えば、ハッシュ値等である。したがって、サービスサーバ3は、あらかじめ設定されるハッシュ関数を実行する等によって、第5データを生成する。例えば、第5データは、下記(9)式等のように生成される。

第5データ=HMAC(鍵,認証データ)・・・(9)

上記(9)式における「HMAC」は、上記(7)式と同様である。また、この例では、上記(7)式と同様に、「SHA−256」を採用すると、256ビットのハッシュ値が算出される。したがって、「鍵」が同一であり、かつ、「認証データ」が示す内容と、「入力データ」が示す内容とが同一であれば、上記(9)式の計算結果、すなわち、第5データと、上記(7)式の計算結果、すなわち、第3データとは、一致する。
The fifth data is, for example, a hash value or the like. Therefore, the service server 3 generates the fifth data by executing a preset hash function or the like. For example, the fifth data is generated as shown in the following equation (9).

Fifth data = HMAC (key, authentication data) ... (9)

The "HMAC" in the above equation (9) is the same as the above equation (7). Further, in this example, if "SHA-256" is adopted as in the above equation (7), a 256-bit hash value is calculated. Therefore, if the "key" is the same and the content indicated by the "authentication data" and the content indicated by the "input data" are the same, the calculation result of the above equation (9), that is, the fifth data , The calculation result of the above equation (7), that is, the third data agrees.

<第5データ及び鍵に基づく第2合成鍵の生成例>(ステップS216)
ステップS216では、サービスサーバ3は、第5データ及び鍵に基づいて、第2合成鍵を生成する。例えば、第2合成鍵は、下記(10)式のように生成される。

第2合成鍵=第5データの上位128ビット XOR 第5データの下位128ビット
XOR 鍵・・・(10)

なお、上記(10)式では、上記(8)式と同様に、「鍵」は、あらかじめ128ビットであるとする。例えば、上記(10)式のとおりに、第5データの上位128ビット、第5データの下位128ビット及び鍵の排他的論理和が計算されると、第2合成鍵は、128ビットのデータとなる。したがって、第5データは、上記(10)式のように計算するため、256ビットであるのが望ましい。また、第5データが第3データと同一であり、かつ、上記(10)式における「鍵」が同一であれば、第2合成鍵は、第1合成鍵と同一のデータとなる。
<Example of generating a second synthetic key based on the fifth data and the key> (step S216)
In step S216, the service server 3 generates a second synthetic key based on the fifth data and the key. For example, the second synthetic key is generated as shown in the following equation (10).

2nd synthetic key = upper 128 bits of the 5th data XOR lower 128 bits of the 5th data
XOR key ... (10)

In the above equation (10), the "key" is assumed to be 128 bits in advance, as in the above equation (8). For example, when the exclusive OR of the upper 128 bits of the fifth data, the lower 128 bits of the fifth data, and the key is calculated as in the above equation (10), the second composite key is the 128-bit data. Become. Therefore, the fifth data is preferably 256 bits because it is calculated as in the above equation (10). Further, if the fifth data is the same as the third data and the "key" in the above equation (10) is the same, the second synthetic key is the same data as the first synthetic key.

<第2合成鍵に基づく第4データの復号化例>(ステップS217)
ステップS217では、サービスサーバ3は、第2合成鍵に基づいて、第4データを復号化する。すなわち、サービスサーバ3は、ステップS213で送信される第4データをステップS216で生成する第2合成鍵で復号化する。
<Example of decoding the fourth data based on the second synthetic key> (step S217)
In step S217, the service server 3 decodes the fourth data based on the second synthetic key. That is, the service server 3 decodes the fourth data transmitted in step S213 with the second synthetic key generated in step S216.

第2合成鍵が第1合成鍵と同一であれば、第4データが第1合成鍵で暗号化されているため、サービスサーバ3は、第4データを第2合成鍵で復号化できる。そして、サービスサーバ3は、第4データから入力データを取得できる。 If the second synthetic key is the same as the first synthetic key, the service server 3 can decrypt the fourth data with the second synthetic key because the fourth data is encrypted with the first synthetic key. Then, the service server 3 can acquire the input data from the fourth data.

<第4データを復号化して取得する入力データと、認証データとの照合例>(ステップS218)
ステップS218では、サービスサーバ3は、第4データを復号化して取得する入力データと、認証データとを照合する。そして、サービスサーバ3は、照合結果をクライアント端末1に送信する。
<Example of collation between the input data obtained by decoding the fourth data and the authentication data> (step S218)
In step S218, the service server 3 collates the input data acquired by decoding the fourth data with the authentication data. Then, the service server 3 transmits the collation result to the client terminal 1.

まず、サービスサーバ3は、ステップS217で復号化する第4データから入力データを取得する。次に、サービスサーバ3は、取得する入力データと、登録データから抽出される認証データとが同一の内容であるかを照合する。すなわち、サービスサーバ3は、クライアント端末1でユーザURが入力したログインID及びパスワードが、あらかじめ登録データDRに登録されたログインID及びパスワードと同一であるか否かをチェックする。 First, the service server 3 acquires the input data from the fourth data to be decrypted in step S217. Next, the service server 3 collates whether the input data to be acquired and the authentication data extracted from the registration data have the same contents. That is, the service server 3 checks whether or not the login ID and password entered by the user UR on the client terminal 1 are the same as the login ID and password registered in advance in the registration data DR.

照合の結果、入力データと、認証データとが同一の内容であると(ステップS218で送信される照合結果で一致したと判断された場合)、サービスサーバ3は、ステップS219に進む。一方で、入力データと、認証データとが同一の内容でないと、サービスサーバ3は、クライアント端末1と通信を開始しない。 As a result of the collation, if the input data and the authentication data have the same contents (when it is determined that the collation results transmitted in step S218 match), the service server 3 proceeds to step S219. On the other hand, if the input data and the authentication data do not have the same contents, the service server 3 does not start communication with the client terminal 1.

<通信例>(ステップS219)
ステップS219では、クライアント端末1及びサービスサーバ3は、照合結果に基づいて通信を行う。つまり、照合結果に基づいて、入力データと、認証データとが同一の内容である場合には、クライアント端末1及びサービスサーバ3は、暗号化及び復号化等を行いながら通信を行う。
<Communication example> (step S219)
In step S219, the client terminal 1 and the service server 3 communicate based on the collation result. That is, based on the collation result, when the input data and the authentication data have the same contents, the client terminal 1 and the service server 3 perform communication while performing encryption, decryption, and the like.

例えば、クライアント端末1及びサービスサーバ3は、第1合成鍵及び第2合成鍵を鍵とするGCM等によって通信を行う。 For example, the client terminal 1 and the service server 3 communicate with each other by a GCM or the like using the first synthetic key and the second synthetic key as keys.

<機能構成例>
図13は、本発明の第2実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。例えば、第1情報処理装置の例であるクライアント端末1は、リクエスト送信部10F202と、受付部10F206と、第3データ生成部10F207と、第1合成鍵生成部10F208と、第4データ生成部10F209と、第4データ送信部10F210と、通信部10F216とを有する。また、第2情報処理装置の例であるサーバ21は、例えば、データ生成部10F203と、第1データ送信部10F204と、第2データ送信部10F205とを有する。さらに、第3情報処理装置の例であるサービスサーバ3は、例えば、データ登録部10F201と、抽出部10F211と、第5データ生成部10F212と、第2合成鍵生成部10F213と、第4データ復号化部10F214と、照合部10F215と、通信部10F217を有する。
<Function configuration example>
FIG. 13 is a functional block diagram showing a functional configuration example of the information processing system according to the second embodiment of the present invention. For example, the client terminal 1 which is an example of the first information processing device includes a request transmission unit 10F202, a reception unit 10F206, a third data generation unit 10F207, a first synthesis key generation unit 10F208, and a fourth data generation unit 10F209. And a fourth data transmission unit 10F210 and a communication unit 10F216. The server 21, which is an example of the second information processing apparatus, has, for example, a data generation unit 10F203, a first data transmission unit 10F204, and a second data transmission unit 10F205. Further, the service server 3, which is an example of the third information processing apparatus, includes, for example, a data registration unit 10F201, an extraction unit 10F211, a fifth data generation unit 10F212, a second synthetic key generation unit 10F213, and a fourth data decoding. It has a conversion unit 10F214, a collation unit 10F215, and a communication unit 10F217.

データ登録部10F201は、ログインID及びパスワードのようなユーザURを認証する認証データDAUを登録データDRに登録する。例えば、データ登録部10F201は、記憶装置203等によって実現される。 The data registration unit 10F201 registers the authentication data DAU that authenticates the user UR, such as the login ID and password, in the registration data DR. For example, the data registration unit 10F201 is realized by a storage device 203 or the like.

リクエスト送信部10F202は、ユーザデータDC及びリクエストREQをサーバ21等に送信するリクエスト送信手順を行う。例えば、リクエスト送信部10F202は、インタフェース202等によって実現される。 The request transmission unit 10F202 performs a request transmission procedure for transmitting the user data DC and the request EQU to the server 21 or the like. For example, the request transmission unit 10F202 is realized by an interface 202 or the like.

データ生成部10F203は、リクエストREQに基づいて、鍵DK及びセッションデータDSEを生成するデータ生成手順を行う。例えば、データ生成部10F203は、CPU200等によって実現される。 The data generation unit 10F203 performs a data generation procedure for generating the key DK and the session data DSE based on the request EQU. For example, the data generation unit 10F203 is realized by the CPU 200 or the like.

第1データ送信部10F204は、まず、データ生成部10F203が生成する鍵DK及びセッションデータDSEを暗号化して第1データD1を生成する第1データ手順を行う。次に、第1データ送信部10F204は、第1データD1をクライアント端末1に送信する第1データ送信手順を行う。例えば、第1データ送信部10F204は、インタフェース202等によって実現される。 The first data transmission unit 10F204 first performs a first data procedure for generating the first data D1 by encrypting the key DK and the session data DSE generated by the data generation unit 10F203. Next, the first data transmission unit 10F204 performs the first data transmission procedure of transmitting the first data D1 to the client terminal 1. For example, the first data transmission unit 10F204 is realized by an interface 202 or the like.

第2データ送信部10F205は、データ生成部10F203が生成する鍵DK及びセッションデータDSEと、リクエスト送信部10F202が送信するユーザデータDCとを暗号化して第2データD2を生成する第2データ送信手順を行う。例えば、第2データ送信部10F205は、インタフェース202等によって実現される。 The second data transmission unit 10F205 encrypts the key DK and session data DSE generated by the data generation unit 10F203 and the user data DC transmitted by the request transmission unit 10F202 to generate the second data D2. I do. For example, the second data transmission unit 10F205 is realized by the interface 202 or the like.

受付部10F206は、ユーザURから操作を受け付ける受付手順を行う。例えば、受付部10F206は、入力装置204等によって実現される。 The reception unit 10F206 performs a reception procedure for receiving an operation from the user UR. For example, the reception unit 10F206 is realized by an input device 204 or the like.

第3データ生成部10F207は、受付部10F206で受け付けた操作で入力される入力データDINに基づいて、第3データD3を生成する第3データ生成手順を行う。例えば、第3データ生成部10F207は、CPU200等によって実現される。 The third data generation unit 10F207 performs a third data generation procedure for generating the third data D3 based on the input data DIN input by the operation received by the reception unit 10F206. For example, the third data generation unit 10F207 is realized by the CPU 200 or the like.

第1合成鍵生成部10F208は、第3データ生成部10F207が生成する第3データD3及び第1データD1を復号化すると取得できる鍵DKに基づいて、第1合成鍵DK1を生成する第1合成鍵生成手順を行う。例えば、第1合成鍵生成部10F208は、CPU200等によって実現される。 The first synthetic key generation unit 10F208 generates the first synthetic key DK1 based on the key DK obtained by decoding the third data D3 and the first data D1 generated by the third data generation unit 10F207. Perform the key generation procedure. For example, the first synthetic key generation unit 10F208 is realized by the CPU 200 or the like.

第4データ生成部10F209は、第1合成鍵生成部10F208が生成する第1合成鍵DK1に基づいて、入力データDINを暗号化して第4データD4を生成する第4データ生成手順を行う。例えば、第4データ生成部10F209は、CPU200等によって実現される。 The fourth data generation unit 10F209 performs a fourth data generation procedure of encrypting the input data DIN and generating the fourth data D4 based on the first synthetic key DK1 generated by the first synthetic key generation unit 10F208. For example, the fourth data generation unit 10F209 is realized by the CPU 200 or the like.

第4データ送信部10F210は、第4データ生成部10F209が生成する第4データD4をサービスサーバ3に送信する第4データ送信手順を行う。例えば、第4データ送信部10F210は、インタフェース202等によって実現される。 The fourth data transmission unit 10F210 performs a fourth data transmission procedure for transmitting the fourth data D4 generated by the fourth data generation unit 10F209 to the service server 3. For example, the fourth data transmission unit 10F210 is realized by an interface 202 or the like.

抽出部10F211は、登録データDRから、ユーザデータDCに基づいて、認証データDAUを抽出する抽出手順を行う。例えば、抽出部10F211は、CPU200等によって実現される。 The extraction unit 10F211 performs an extraction procedure for extracting the authentication data DAU from the registered data DR based on the user data DC. For example, the extraction unit 10F211 is realized by the CPU 200 or the like.

第5データ生成部10F212は、抽出部10F211が抽出する認証データDAUに基づいて、第5データD5を生成する第5データ生成手順を行う。例えば、第5データ生成部10F212は、CPU200等によって実現される。 The fifth data generation unit 10F212 performs a fifth data generation procedure for generating the fifth data D5 based on the authentication data DAU extracted by the extraction unit 10F211. For example, the fifth data generation unit 10F212 is realized by the CPU 200 or the like.

第2合成鍵生成部10F213は、第2データ送信部10F205が送信する第2データD2を復号化して取得する鍵DKと、第5データ生成部10F212が生成する第5データD5とに基づいて、第2合成鍵DK2を生成する第2合成鍵生成手順を行う。例えば、第2合成鍵生成部10F213は、CPU200等によって実現される。 The second synthetic key generation unit 10F213 is based on the key DK obtained by decoding the second data D2 transmitted by the second data transmission unit 10F205 and the fifth data D5 generated by the fifth data generation unit 10F212. The second synthetic key generation procedure for generating the second synthetic key DK2 is performed. For example, the second synthetic key generation unit 10F213 is realized by the CPU 200 or the like.

第4データ復号化部10F214は、第2合成鍵生成部10F213が生成する第2合成鍵DK2に基づいて、第4データ送信部10F210が送信する第4データD4を対象にして復号化する第4データ復号化手順を行う。例えば、第4データ復号化部10F214は、CPU200等によって実現される。 The fourth data decoding unit 10F214 decodes the fourth data D4 transmitted by the fourth data transmission unit 10F210 based on the second synthetic key DK2 generated by the second synthetic key generation unit 10F213. Perform the data decryption procedure. For example, the fourth data decoding unit 10F214 is realized by the CPU 200 or the like.

照合部10F215は、第4データ復号化部10F214による復号化で取得できる入力データDINと、抽出部10F211が抽出する認証データDAUとを照合する照合手順を行う。例えば、照合部10F215は、CPU200等によって実現される。 The collation unit 10F215 performs a collation procedure for collating the input data DIN that can be obtained by decoding by the fourth data decoding unit 10F214 with the authentication data DAU extracted by the extraction unit 10F211. For example, the collation unit 10F215 is realized by a CPU 200 or the like.

通信部10F216及び通信部10F217は、照合部10F215による照合結果に基づいて、第1情報処理装置及び第3情報処理装置の間で通信を行う通信手順を行う。例えば、通信部10F216及び通信部10F217は、インタフェース202等によって実現される。 The communication unit 10F216 and the communication unit 10F217 perform a communication procedure for communicating between the first information processing device and the third information processing device based on the collation result by the collation unit 10F215. For example, the communication unit 10F216 and the communication unit 10F217 are realized by an interface 202 or the like.

以上のような機能構成であると、全体処理を行うことで、例えば、以下のような処理結果となる。 With the above-mentioned functional configuration, for example, the following processing result can be obtained by performing the entire processing.

図14は、本発明の第2実施形態に係る情報処理システムによる全体処理の処理結果例を示す概念図である。 FIG. 14 is a conceptual diagram showing an example of processing results of the entire processing by the information processing system according to the second embodiment of the present invention.

図示するように、例えば、クライアント端末1からサーバ21にリクエストREQがあると、サーバ21は、鍵DK等を生成する。この際に、サーバ21は、セッションデータDSE等の通信を行うのに設定等で必要となるデータも生成するのが望ましい。 As shown in the figure, for example, when there is a request EQU from the client terminal 1 to the server 21, the server 21 generates a key DK or the like. At this time, it is desirable that the server 21 also generate data required for setting or the like to perform communication such as session data DSE.

そして、サーバ21は、鍵DKを第1データD1にしてクライアント端末1に送信する。一方で、サーバ21は、鍵DK及びユーザデータDCを第2データD2にしてサービスサーバ3に送信する。 Then, the server 21 sets the key DK as the first data D1 and transmits it to the client terminal 1. On the other hand, the server 21 converts the key DK and the user data DC into the second data D2 and transmits the second data D2 to the service server 3.

次に、クライアント端末1は、ログインID及びパスワードをユーザURに入力させる。このようにして、ユーザURによる操作で入力された結果が、入力データDINとなる。そして、クライアント端末1は、操作で入力されたログインID及びパスワードを示す入力データDINと、第1データD1で送信される鍵DKとを、例えば、上記(7)式の入力にして関数を実行すると第3データD3を生成できる。 Next, the client terminal 1 causes the user UR to input the login ID and password. In this way, the result input by the operation by the user UR becomes the input data DIN. Then, the client terminal 1 executes a function by inputting the input data DIN indicating the login ID and password input by the operation and the key DK transmitted by the first data D1 as, for example, the input of the above equation (7). Then, the third data D3 can be generated.

続いて、クライアント端末1は、第3データD3と、鍵DKとを用いて、例えば、上記(8)式のように計算すると、第1合成鍵DK1を生成できる。 Subsequently, the client terminal 1 can generate the first synthetic key DK1 by using the third data D3 and the key DK, for example, by calculating as in the above equation (8).

そして、クライアント端末1は、第1合成鍵DK1を用いて入力データDINを暗号化して第4データD4を生成する。次に、クライアント端末1は、このようにして生成した第4データD4をサービスサーバ3に送信する。 Then, the client terminal 1 encrypts the input data DIN using the first synthetic key DK1 to generate the fourth data D4. Next, the client terminal 1 transmits the fourth data D4 generated in this way to the service server 3.

一方で、サービスサーバ3には、ログインID及びパスワード等の認証データDAUが登録データDRにあらかじめ登録される。そして、リクエストREQがあると、サービスサーバ3には、第2データD2によって、鍵DK及びユーザデータDCがサーバ21から送信される。次に、ユーザデータDC、すなわち、リクエストREQを行ったユーザURに対応させて、サービスサーバ3は、登録データDRに鍵DK等を登録する。なお、第2データD2からセッションデータDSE等が取得できる場合には、ユーザデータDCに対応させて、サービスサーバ3は、登録データDRにセッションID等も登録する。 On the other hand, in the service server 3, authentication data DAU such as a login ID and a password is registered in advance in the registration data DR. Then, when there is a request EQU, the key DK and the user data DC are transmitted from the server 21 to the service server 3 by the second data D2. Next, the service server 3 registers the key DK and the like in the registration data DR in correspondence with the user data DC, that is, the user UR that has performed the request EQU. When the session data DSE or the like can be acquired from the second data D2, the service server 3 also registers the session ID or the like in the registration data DR in correspondence with the user data DC.

次に、サービスサーバ3は、登録データDRから、ユーザデータDCに対応する認証データDAU、すなわち、「ユーザα」の場合には、「ユーザα」のログインID及び「ユーザα」のパスワードが抽出される。 Next, the service server 3 extracts the authentication data DAU corresponding to the user data DC, that is, the login ID of the "user α" and the password of the "user α" in the case of the "user α" from the registered data DR. Will be done.

続いて、サービスサーバ3は、抽出された認証データDAUと、第2データD2で送信される鍵DKとを、例えば、上記(9)式の入力にして関数を実行すると第5データD5を生成できる。 Subsequently, the service server 3 generates the fifth data D5 when the extracted authentication data DAU and the key DK transmitted by the second data D2 are input to the above equation (9) and the function is executed. it can.

ユーザURが「なりすまし」等でない正当な操作者であれば、ユーザURは、登録データDRにあらかじめ登録したログインID及びパスワードを知っている。このような正当なユーザであれば、クライアント端末1には、登録データDRにあらかじめ登録されたログインID及びパスワードと同一のデータが入力される。すなわち、入力データDINと、認証データDAUとは、同一の内容となる。 If the user UR is a legitimate operator who is not "spoofing" or the like, the user UR knows the login ID and password registered in advance in the registration data DR. If it is such a legitimate user, the same data as the login ID and password registered in advance in the registration data DR is input to the client terminal 1. That is, the input data DIN and the authentication data DAU have the same contents.

そして、クライアント端末1及びサービスサーバ3には、第1データD1及び第2データD2によって、同一の鍵DKが送信される。ゆえに、上記(7)式及び上記(9)式において、「鍵」は、同一である。そのため、上記(7)式及び上記(9)式において、「認証データ」及び「入力データ」の内容が同一であれば、第3データD3及び第5データD5は、同一の内容となる。 Then, the same key DK is transmitted to the client terminal 1 and the service server 3 by the first data D1 and the second data D2. Therefore, in the above equation (7) and the above equation (9), the "key" is the same. Therefore, in the above equations (7) and (9), if the contents of the "authentication data" and the "input data" are the same, the third data D3 and the fifth data D5 have the same contents.

また、サービスサーバ3は、第5データD5と、鍵DKとを用いて、例えば、上記(10)式のように計算すると、第2合成鍵DK2を生成できる。上記のとおり、第3データD3及び第5データD5は、同一の内容であり、上記(8)式と鍵DKも同一である。そのため、上記(10)式の計算結果、すなわち、第2合成鍵DK2は、上記(8)式の計算結果、すなわち、第1合成鍵DK1と同一となる。 Further, the service server 3 can generate the second synthetic key DK2 by using the fifth data D5 and the key DK, for example, by calculating as in the above equation (10). As described above, the third data D3 and the fifth data D5 have the same contents, and the above equation (8) and the key DK are also the same. Therefore, the calculation result of the above equation (10), that is, the second synthetic key DK2 is the same as the calculation result of the above equation (8), that is, the first synthetic key DK1.

サービスサーバ3に送信される第4データD4は、第1合成鍵DK1で暗号化されたデータである。そのため、サービスサーバ3、第1合成鍵DK1と同一の第2合成鍵DK2を用いると、第4データD4を復号化して入力データDINを取得できる。 The fourth data D4 transmitted to the service server 3 is data encrypted with the first synthetic key DK1. Therefore, if the second synthetic key DK2, which is the same as the service server 3 and the first synthetic key DK1, is used, the fourth data D4 can be decoded and the input data DIN can be obtained.

次に、サービスサーバ3は、第4データD4を復号化すると取得できる入力データDINと、抽出された認証データDAUとを照合する。すなわち、サービスサーバ3は、クライアント端末1で受け付けられたログインID及びパスワードが、あらかじめ登録データDRに登録されたログインID及びパスワードと一致するか否かを照合する。 Next, the service server 3 collates the input data DIN that can be obtained by decoding the fourth data D4 with the extracted authentication data DAU. That is, the service server 3 verifies whether or not the login ID and password received by the client terminal 1 match the login ID and password registered in advance in the registration data DR.

照合結果に基づいて、クライアント端末1で受け付けられたログインID及びパスワードと、登録されたログインID及びパスワードとが一致する場合には、サービスサーバ3は、クライアント端末1との通信を開始する。 If the login ID and password received by the client terminal 1 and the registered login ID and password match based on the collation result, the service server 3 starts communication with the client terminal 1.

例えば、上記のとおり、第1合成鍵DK1及び第2合成鍵DK2は、同一の鍵であるため、クライアント端末1及びサービスサーバ3は、第1合成鍵DK1及び第2合成鍵DK2を用いることで、共通鍵方式等で暗号化及び復号化して通信を行うことができる。そのため、情報処理システム10は、クライアント端末1及びサービスサーバ3の間におけるセキュリティを向上できる。 For example, as described above, since the first synthetic key DK1 and the second synthetic key DK2 are the same key, the client terminal 1 and the service server 3 can use the first synthetic key DK1 and the second synthetic key DK2. , It is possible to perform communication by encrypting and decrypting with a common key method or the like. Therefore, the information processing system 10 can improve the security between the client terminal 1 and the service server 3.

このようにすると、クライアント端末1及びサービスサーバ3は、クライアント端末1及びサービスサーバ3の間で直接鍵を交換しなくとも、暗号化及び復号化によって、通信を行うことができる。したがって、クライアント端末1及びサービスサーバ3の間を中間者攻撃しても、情報処理システム10は、鍵を不正に取得されるのを難しくして、セキュリティを向上させることができる。 In this way, the client terminal 1 and the service server 3 can communicate by encryption and decryption without directly exchanging the key between the client terminal 1 and the service server 3. Therefore, even if a man-in-the-middle attack is made between the client terminal 1 and the service server 3, the information processing system 10 can make it difficult for the key to be obtained illegally and improve the security.

<まとめ>
第1実施形態及び第2実施形態のいずれの実施形態でも、情報処理システムでは、第1情報処理装置、第2情報処理装置及び第3情報処理装置の少なくとも3装置の間で「合意」して通信を開始する。第1実施形態では、比較結果によって合意が図られる。一方で、第2実施形態では、照合結果によって合意が図られる。このような構成であると、通信を行う2装置間で「合意」する場合よりも、情報処理システムは、セキュリティを向上できる。
<Summary>
In both embodiments of the first embodiment and the second embodiment, in the information processing system, at least three devices, the first information processing device, the second information processing device, and the third information processing device, "agree". Start communication. In the first embodiment, an agreement is reached based on the comparison result. On the other hand, in the second embodiment, an agreement is reached based on the collation result. With such a configuration, the information processing system can improve the security as compared with the case of "agreeing" between the two communicating devices.

また、合意がなければ、通信が行われないため、不正にデータが送信される等のようなことも防げる。さらに、本実施形態に係る情報処理システムを用いると、いわゆる真正性(authenticity)が確保できるため、通信を行う情報処理装置が特定できる。したがって、情報処理システムは、不正な通信を行うサーバ等を特定し、不正なデータの取得等を防ぐことができる。 In addition, if there is no agreement, communication will not be performed, so it is possible to prevent unauthorized data transmission. Further, when the information processing system according to the present embodiment is used, so-called authenticity can be ensured, so that the information processing device that performs communication can be specified. Therefore, the information processing system can identify the server or the like that performs illegal communication and prevent the acquisition of illegal data or the like.

<SDN(Software Defined Network)等への適用例>
図15は、本発明の実施形態に係る情報処理システムを適用するSDNの例を示す概念図である。図示するように、第1エンドポイントEP1及び第2エンドポイントEP2の間で通信を行う場合には、例えば、下図に示すようなハードウェアネットワークHNTが構築される。そして、ハードウェアネットワークHNTでは、通信装置及び情報処理装置等の「Hardware Resources」が物理リンクLPで接続される。
<Example of application to SDN (Software Defined Network), etc.>
FIG. 15 is a conceptual diagram showing an example of an SDN to which the information processing system according to the embodiment of the present invention is applied. As shown in the figure, when communication is performed between the first endpoint EP1 and the second endpoint EP2, for example, a hardware network HNT as shown in the figure below is constructed. Then, in the hardware network HNT, "Hardware Resources" such as a communication device and an information processing device are connected by a physical link LP.

SDNでは、例えば、ソフトウェアによって、「Hardware Resources」等を動的に仮想化する。具体的には、SDNでは、ハードウェアネットワークHNTにおける「Hardware Resources」等を仮想化して、例えば、上図のような仮想ネットワークVNTを構築する。すなわち、SDNでは、「Hardware Resources」等が仮想化されて、仮想マシン等になり、仮想マシン同士は、仮想リンクLL等で接続される。 In SDN, for example, "Hardware Resources" and the like are dynamically virtualized by software. Specifically, the SDN virtualizes "Hardware Defines" and the like in the hardware network HNT, and constructs, for example, a virtual network VNT as shown in the above figure. That is, in SDN, "Hardware Resources" and the like are virtualized to become virtual machines and the like, and the virtual machines are connected by a virtual link LL or the like.

このような仮想リンクLL及び仮想マシン等が、SDNでは、動的に変更される。したがって、SDNでは、論理的な通信経路及びネットワークを構成する装置が、ネットワークを利用している間も変更される場合がある通信環境となる。 Such virtual link LL, virtual machine, etc. are dynamically changed in SDN. Therefore, in SDN, the logical communication path and the devices constituting the network become a communication environment that may be changed while using the network.

このようなSDN等において、本実施形態に係る情報処理装置は適用されてもよい。また、ネットワークの仮想化には、OpenFlow等が用いられてもよい。 The information processing apparatus according to this embodiment may be applied to such SDN and the like. Further, OpenFlow or the like may be used for network virtualization.

なお、図における「VNF」は、「Virtual Network Function」である。すなわち、「VNF」は、仮想的な通信装置によって提供される様々なネットワーク機能である。また、図における「PNF」は、「Physical Network Function」である。すなわち、「PNF」は、物理的な通信装置によって提供される様々なネットワーク機能である。さらに、図における「VNF−FG」は、「VNF Forwarding Graph」である。したがって、「VNF−FG」は、仮想リンクLL等の論理的なリンクによって、「VNF」等に接続される。 In addition, "VNF" in the figure is "Virtual Network Function". That is, "VNF" is a variety of network functions provided by virtual communication devices. Further, "PNF" in the figure is "Physical Network Function". That is, "PNF" is a variety of network functions provided by physical communication devices. Further, "VNF-FG" in the figure is "VNF Forwarding Graph". Therefore, the "VNF-FG" is connected to the "VNF" or the like by a logical link such as the virtual link LL.

したがって、図示するように、エンドポイント間のネットワークサービスにおいて、仮想的な要素と、物理的な要素とが混在するネットワークに、本実施形態に係る情報処理システムは、適用されてもよい。 Therefore, as shown in the figure, the information processing system according to the present embodiment may be applied to a network in which virtual elements and physical elements coexist in a network service between endpoints.

以上のようなSDNでは、ネットワークにおける物理的な装置等と、仮想的な装置等とを柔軟に対応付けでき、変更できる。 In the SDN as described above, a physical device or the like in a network and a virtual device or the like can be flexibly associated and changed.

なお、SDP等において、本実施形態に係る情報処理装置は適用されてもよい。 The information processing apparatus according to this embodiment may be applied to SDP and the like.

<ブロックチェーンへの適用例>
図16は、本発明の実施形態に係る情報処理システムを適用するブロックチェーンの例を示す概念図である。例えば、本実施形態に係る情報処理システムは、図示するような処理を行う装置の間で行われる通信に適用されてもよい。
<Example of application to blockchain>
FIG. 16 is a conceptual diagram showing an example of a blockchain to which the information processing system according to the embodiment of the present invention is applied. For example, the information processing system according to the present embodiment may be applied to communication performed between devices that perform processing as shown in the figure.

図示する例では、いわゆるブロックチェーンにおける電子署名等と呼ばれる処理の例である。この例では、元データDORが、送信データDSDに含まれて送信側情報処理装置MSから受信側情報処理装置MRに送信される。 In the illustrated example, it is an example of a process called an electronic signature or the like in a so-called blockchain. In this example, the original data DOR is included in the transmission data DSD and transmitted from the transmission side information processing device MS to the reception side information processing device MR.

このような処理を行う上で、送信側情報処理装置MSは、公開鍵KP及び秘密鍵KSのうち、公開鍵KPを公開し、外部装置の情報処理装置が、公開鍵KPを取得できるようにする。一方で、送信側情報処理装置MSは、秘密鍵KSを秘密に保持する。したがって、受信側情報処理装置MRは、公開鍵KPを取得できる。 In performing such processing, the transmitting information processing device MS discloses the public key KP among the public key KP and the private key KS so that the information processing device of the external device can acquire the public key KP. To do. On the other hand, the transmitting information processing device MS keeps the private key KS secretly. Therefore, the receiving side information processing apparatus MR can acquire the public key KP.

公開鍵KP及び秘密鍵KSは一対となる。図示する例では、公開鍵KP及び秘密鍵KSは、秘密鍵KSを用いて暗号化されたデータは、公開鍵KPを用いると復号化できる関係となる。なお、受信側情報処理装置MRが公開鍵KP及び秘密鍵KSを持つ構成等でもよい。すなわち、まず、受信側情報処理装置MRは、公開鍵KP及び秘密鍵KSのうち、公開鍵KPを公開する。そして、公開鍵KPで暗号化されたデータは、秘密鍵KSで復号化できる。このような鍵の持ち方及び公開の仕方でもよい。 The public key KP and the private key KS are paired. In the illustrated example, the public key KP and the private key KS have a relationship in which the data encrypted by using the private key KS can be decrypted by using the public key KP. The receiving side information processing apparatus MR may have a public key KP and a private key KS. That is, first, the receiving side information processing apparatus MR discloses the public key KP among the public key KP and the private key KS. Then, the data encrypted with the public key KP can be decrypted with the private key KS. Such a way of holding and disclosing the key may be used.

そして、送信側情報処理装置MSは、元データDORに対してハッシュ関数等を実行して第1ハッシュ値DHA1を算出する。次に、送信側情報処理装置MSは、第1ハッシュ値DHA1を秘密鍵KSを用いて暗号化して暗号化ハッシュ値DHACを生成する。この例では、暗号化ハッシュ値DHACが電子署名となる。 Then, the transmitting side information processing apparatus MS executes a hash function or the like on the original data DOR to calculate the first hash value DHA1. Next, the transmitting side information processing apparatus MS encrypts the first hash value DHA1 using the private key KS to generate the encrypted hash value DHAC. In this example, the encrypted hash value DHAC is the digital signature.

次に、送信側情報処理装置MSは、元データDORと、暗号化ハッシュ値DHACとをセットにした送信データDSDを受信側情報処理装置MRに送信する。 Next, the transmitting side information processing device MS transmits the transmission data DSD in which the original data DOR and the encrypted hash value DHAC are set to the receiving side information processing device MR.

そして、送信データDSDを受信すると、受信側情報処理装置MRは、図示するように、送信データDSDに含まれる元データDORに対して、送信側情報処理装置MSが実行するのと同一のハッシュ関数を実行して第2ハッシュ値DHA2を算出する。 Then, when the transmission data DSD is received, the receiving side information processing apparatus MR, as shown in the figure, has the same hash function as the transmitting side information processing apparatus MS executes for the original data DOR included in the transmitting data DSD. Is executed to calculate the second hash value DHA2.

また、送信データDSDを受信すると、受信側情報処理装置MRは、図示するように、送信データDSDに含まれる暗号化ハッシュ値DHACを公開鍵KPで復号化して第3ハッシュ値DHA3を取得する。 When the transmission data DSD is received, the receiving side information processing apparatus MR decrypts the encrypted hash value DHAC included in the transmission data DSD with the public key KP to acquire the third hash value DHA3, as shown in the figure.

続いて、受信側情報処理装置MRは、第2ハッシュ値DHA2と、第3ハッシュ値DHA3とを比較する。この比較の結果、第2ハッシュ値DHA2と、第3ハッシュ値DHA3とが一致すると、受信側情報処理装置MRは、送信データDSDが改ざん等の不正な処理が行われていないと判断できる。 Subsequently, the receiving side information processing apparatus MR compares the second hash value DHA2 with the third hash value DHA3. As a result of this comparison, when the second hash value DHA2 and the third hash value DHA3 match, the receiving side information processing apparatus MR can determine that the transmission data DSD has not been subjected to unauthorized processing such as falsification.

暗号化ハッシュ値DHACは、第1ハッシュ値DHA1を暗号化したデータであるため、暗号化ハッシュ値DHACを復号化して取得される第3ハッシュ値DHA3は、第1ハッシュ値DHA1と同一となる。 Since the encrypted hash value DHAC is data obtained by encrypting the first hash value DHA1, the third hash value DHA3 obtained by decrypting the encrypted hash value DHA1 is the same as the first hash value DHA1.

また、第2ハッシュ値DHA2は、同一のハッシュ関数及び同一の元データDORを使用すれば、第1ハッシュ値DHA1と同一となる。一方で、送信データDSDが不正に改ざんされたりすると、元データDORが送信側と、受信側とで異なるため、同一のハッシュ関数が実行されても、第2ハッシュ値DHA2と、第3ハッシュ値DHA3とは、一致しない。したがって、受信側情報処理装置MRは、第2ハッシュ値DHA2と、第3ハッシュ値DHA3とを比較することで改ざんがないか否かをチェックできる。 Further, the second hash value DHA2 becomes the same as the first hash value DHA1 if the same hash function and the same original data DOR are used. On the other hand, if the transmitted data DSD is tampered with illegally, the original data DOR differs between the transmitting side and the receiving side, so even if the same hash function is executed, the second hash value DHA2 and the third hash value It does not match DHA3. Therefore, the receiving side information processing apparatus MR can check whether or not there is falsification by comparing the second hash value DHA2 and the third hash value DHA3.

図示するようなブロックチェーンでは、公開鍵KP及び秘密鍵KS等の鍵が用いられる。したがって、本実施形態に係る情報処理システムが、送信側情報処理装置MS及び受信側情報処理装置MRの間で行われる通信に適用されてもよい。 In the blockchain as shown in the figure, keys such as the public key KP and the private key KS are used. Therefore, the information processing system according to the present embodiment may be applied to communication performed between the transmitting side information processing device MS and the receiving side information processing device MR.

図17は、本発明の実施形態に係る情報処理システムを適用するブロックチェーンの処理結果例を示す概念図である。例えば、図示するように、第1ブロック、第2ブロック及び第3ブロックのように、各ブロックにおいて、処理が行われる構成でブロックチェーンが構成される。このようにすると、他のブロックにおける処理及び送信についての履歴等が残る。そして、本実施形態に係る情報処理システムは、各ブロックの間における通信に適用されてもよい。 FIG. 17 is a conceptual diagram showing an example of processing results of a blockchain to which the information processing system according to the embodiment of the present invention is applied. For example, as shown in the figure, a blockchain is configured with a configuration in which processing is performed in each block, such as the first block, the second block, and the third block. In this way, the history of processing and transmission in other blocks remains. Then, the information processing system according to the present embodiment may be applied to communication between each block.

また、本実施形態に係る情報処理システムは、ブロックチェーンのうち、いわゆるプライベート型(「プライベートチェーン」等と呼ばれる場合もある。)及びコンソーシアム型(「コンソーシアムチェーン」等と呼ばれる場合もある。)により適する。 Further, the information processing system according to the present embodiment is based on a so-called private type (sometimes called a "private chain" or the like) and a consortium type (sometimes called a "consortium chain" or the like) among blockchains. Suitable.

<VPN(Virtual Private Network)への適用例>
本実施形態に係る情報処理システムは、例えば、VPNにおけるネットワーク内の通信又はVPNの間で行われる通信等に適用されてもよい。VPNの構築には、いわゆるVPNルータ等が用いられる。VPNルータは、IP(Internet Protocol)等の設定が一定である場合が多い。したがって、例えば、VPNルータを本実施形態における第2情報処理装置等にすると、本実施形態に係る情報処理システムをVPNに適用できる。
<Example of application to VPN (Virtual Private Network)>
The information processing system according to the present embodiment may be applied to, for example, communication within a network in a VPN, communication performed between VPNs, and the like. A so-called VPN router or the like is used for constructing a VPN. In many cases, the VPN router has a constant setting such as IP (Internet Protocol). Therefore, for example, if the VPN router is used as the second information processing device in the present embodiment, the information processing system according to the present embodiment can be applied to the VPN.

VPNプロトコルでは、例えば、IPsec(Security Architecture for Internet Protocol)、PPTP(Point−to−Point Tunneling Protocol)、SSL(Secure Sockets Layer)及びTLS(Transport Layer Security)等により、データの暗号化又は認証等が行われる。このような暗号化及び認証において、本実施形態に係る情報処理システムは、適用されてもよい。また、VPN間の接続等といった秘匿性の高い通信等に、本実施形態に係る情報処理システムが適用されてもよい。 In the VPN protocol, for example, IPsec (Security Archive for Internet Protocol), PPTP (Point-to-Point Tunneling Protocol), SSL (Secure Sockets Layer), SSL (Secure Sockets Layer), SSL (Trance), etc. Will be done. In such encryption and authentication, the information processing system according to the present embodiment may be applied. Further, the information processing system according to the present embodiment may be applied to highly confidential communication such as connection between VPNs.

<その他の実施形態>
本実施形態に係る情報処理システムは、例えば、カーネル、SSL及びTLS等のプロトコルにおけるスタック等に適用されてもよい。カーネル等に本実施形態に係る情報処理システムが埋め込まれると、ハッキング等がしにくい構成となり、よりセキュリティを向上させることができる。
<Other Embodiments>
The information processing system according to this embodiment may be applied to, for example, a stack in a protocol such as a kernel, SSL, and TLS. When the information processing system according to the present embodiment is embedded in the kernel or the like, the configuration is such that hacking is difficult to occur, and security can be further improved.

なお、本実施形態に係る情報処理システムでは、学習処理が行われてもよい。例えば、学習処理は、ディープラーニング又は機械学習等で実現されてもよい。つまり、学習処理として、まず、学習用データであらかじめ学習させる処理が行われてもよい。 In the information system according to the present embodiment, learning processing may be performed. For example, the learning process may be realized by deep learning, machine learning, or the like. That is, as the learning process, first, a process of learning in advance with the learning data may be performed.

すなわち、本実施形態に係る情報処理システムは、いわゆるAI(Artificial Intelligence、人工知能)等を利用してもよい。そして、学習処理等が行われると、設定及び処理が高速にできたり、効率よく行われたりする。 That is, the information processing system according to the present embodiment may use so-called AI (Artificial Intelligence, artificial intelligence) or the like. Then, when the learning process or the like is performed, the setting and processing can be performed at high speed or efficiently.

なお、第1情報処理装置、第2情報処理装置及び第3情報処理装置等の各装置は、1台の装置で実現されなくともよい。すなわち、各装置は、複数の装置で構成されてもよい。例えば、各装置は、複数の情報処理装置を有し、各処理を分散、並列又は冗長して行ってもよい。 It should be noted that each device such as the first information processing device, the second information processing device, and the third information processing device does not have to be realized by one device. That is, each device may be composed of a plurality of devices. For example, each device may have a plurality of information processing devices, and each process may be distributed, parallel, or redundant.

なお、本発明に係る各処理の全部又は一部は、アセンブラ等の低水準言語又はオブジェクト指向言語等の高水準言語で記述され、コンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。 Even if all or part of each process according to the present invention is described in a low-level language such as an assembler or a high-level language such as an object-oriented language and is realized by a program for causing a computer to execute an information processing method. Good. That is, the program is a computer program for causing a computer such as an information processing device or an information processing system to execute each process.

したがって、プログラムに基づいて情報処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。 Therefore, when the information processing method is executed based on the program, the arithmetic unit and the control device of the computer perform the arithmetic and control based on the program in order to execute each process. In addition, the storage device of the computer stores the data used for the processing based on the program in order to execute each processing.

また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。 In addition, the program can be recorded and distributed on a computer-readable recording medium. The recording medium is a medium such as a magnetic tape, a flash memory, an optical disk, a magneto-optical disk, or a magnetic disk. In addition, the program can be distributed over telecommunication lines.

以上、本発明の好ましい実施形態について詳述したが、本発明は、上記に説明した実施形態等に限定されるものではない。したがって、特許請求の範囲に記載された本発明の要旨の範囲内において、実施形態は、種々の変形又は変更が可能である。 Although the preferred embodiments of the present invention have been described in detail above, the present invention is not limited to the embodiments described above. Therefore, the embodiments can be modified or modified in various ways within the scope of the gist of the invention described in the claims.

10 情報処理システム
1 クライアント端末
2 サーバ群
21、22、2N サーバ
3 サービスサーバ
UR ユーザ
DA 第1固有データ
DB 第2固有データ
DC ユーザデータ
DK 鍵
DK1 第1合成鍵
DK2 第2合成鍵
REQ リクエスト
DSE セッションデータ
DCI1 第1暗号化データ
DCI2 第2暗号化データ
DJ 判断結果
DR 登録データ
DAU 認証データ
DIN 入力データ
D1 第1データ
D2 第2データ
D3 第3データ
D4 第4データ
D5 第5データ
10 Information processing system 1 Client terminal 2 Server group 21, 22, 2N Server 3 Service server UR User DA 1st unique data DB 2nd unique data DC User data DK key DK1 1st synthetic key DK2 2nd synthetic key EQU request DSE session Data DCI1 1st encrypted data DCI2 2nd encrypted data DJ Judgment result DR Registration data DAU Authentication data DIN Input data D1 1st data D2 2nd data D3 3rd data D4 4th data D5 5th data

Claims (12)

ユーザが使用する第1情報処理装置と、複数の第2情報処理装置と、サービスを提供する第3情報処理装置とを有する情報処理システムであって、
前記第1情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第3情報処理装置に対してアクセスするリクエストをそれぞれの前記第2情報処理装置に送信する第1送信部
を有し、
前記第2情報処理装置は、
前記リクエストに基づいて、前記ユーザデータを前記第3情報処理装置に送信する第2送信部
をそれぞれ有し、
前記第3情報処理装置は、
入力されるユーザデータを登録する登録部と、
前記第2情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断部と、
前記判断部による判断結果を前記第2情報処理装置に送信する第3送信部と
を有し、
前記第2情報処理装置は、
前記判断結果に基づいて、前記第1情報処理装置及び前記第3情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成部と、
前記鍵又は前記素材データを暗号化して第1暗号化データを生成する第1暗号化部と、
前記鍵又は前記素材データを暗号化して第2暗号化データを生成する第2暗号化部と、
前記第1暗号化データを前記第1情報処理装置に送信する第4送信部と、
前記第2暗号化データを前記第3情報処理装置に送信する第5送信部と
をそれぞれ更に有し、
前記第1情報処理装置及び前記第3情報処理装置は、
前記第1暗号化データ及び前記第2暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
情報処理システム。
An information system having a first information processing device used by a user, a plurality of second information processing devices, and a third information processing device that provides a service.
The first information processing device is
It has a first transmission unit that transmits user data that identifies the user and a request for accessing the third information processing device to the second information processing device.
The second information processing device is
Each has a second transmission unit that transmits the user data to the third information processing device based on the request.
The third information processing device is
A registration unit that registers input user data, and
A determination unit that determines whether or not the user data received from the second information processing device is registered, and a determination unit.
It has a third transmission unit that transmits the determination result by the determination unit to the second information processing apparatus.
The second information processing device is
Based on the determination result, a key used for communication performed between the first information processing device and the third information processing device, or a generation unit for generating material data as a material for generating the key,
A first encryption unit that encrypts the key or the material data to generate the first encrypted data, and
A second encryption unit that encrypts the key or the material data to generate the second encrypted data, and
A fourth transmitter that transmits the first encrypted data to the first information processing device, and
Each further has a fifth transmission unit that transmits the second encrypted data to the third information processing apparatus.
The first information processing device and the third information processing device
An information processing system that communicates based on the key or material data acquired from the first encrypted data and the second encrypted data.
前記複数の第2情報処理装置は、
前記通信のセッションを識別するセッションデータを生成し、
前記複数の第2情報処理装置が有するそれぞれの前記生成部は、
異なる前記鍵を生成し、
前記セッションデータと、前記鍵とが対応し、
前記第1情報処理装置及び前記第3情報処理装置は、
セッションごとに、異なる前記鍵を用いて通信を行う
請求項1に記載の情報処理システム。
The plurality of second information processing devices
Generate session data that identifies the communication session,
Each of the generation units included in the plurality of second information processing devices
Generate different keys and
The session data corresponds to the key,
The first information processing device and the third information processing device
The information processing system according to claim 1, wherein communication is performed using the different keys for each session.
前記第1情報処理装置は、
前記第1情報処理装置を識別する第1固有データを記憶する第1記憶部を更に有し、
前記第2情報処理装置は、
前記第1固有データを取得し、
前記判断結果に基づいて、前記ユーザデータが登録されていると判断されると、所定の値を示す第1所定値を前記第1情報処理装置に送信し、
前記第1情報処理装置は、
前記第1所定値及び前記第1固有データに基づく計算によって第1計算値を計算し、
前記第1計算値を前記第2情報処理装置に送信し、
前記第1暗号化部は、
前記第1計算値に基づいて、前記鍵を暗号化して前記第1暗号化データを生成する
請求項1又は2に記載の情報処理システム。
The first information processing device is
It further has a first storage unit that stores first unique data that identifies the first information processing device.
The second information processing device is
Acquire the first unique data and
When it is determined that the user data is registered based on the determination result, a first predetermined value indicating a predetermined value is transmitted to the first information processing apparatus.
The first information processing device is
The first calculated value is calculated by the calculation based on the first predetermined value and the first unique data.
The first calculated value is transmitted to the second information processing apparatus,
The first encryption unit is
The information processing system according to claim 1 or 2, wherein the key is encrypted to generate the first encrypted data based on the first calculated value.
前記第3情報処理装置は、
前記第3情報処理装置を識別する第2固有データを記憶する第2記憶部を更に有し、
所定の値を示す第2所定値を前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第2固有データを取得し、
前記第2所定値及び前記第2固有データに基づく計算によって第2計算値を計算し、
前記第2計算値を前記第3情報処理装置に送信し、
前記第3情報処理装置は、
前記第2情報処理装置から送信される前記第2計算値と、前記第3情報処理装置が計算して生成する第2計算値とを比較して比較結果を前記第2情報処理装置に送信し、
前記生成部は、
前記比較結果に基づいて、前記鍵を生成する
請求項1乃至3のいずれか1項に記載の情報処理システム。
The third information processing device is
It further has a second storage unit that stores the second unique data that identifies the third information processing device.
A second predetermined value indicating a predetermined value is transmitted to the second information processing apparatus, and the second predetermined value is transmitted.
The second information processing device is
Acquire the second unique data and
The second calculated value is calculated by the calculation based on the second predetermined value and the second unique data.
The second calculated value is transmitted to the third information processing apparatus,
The third information processing device is
The second calculated value transmitted from the second information processing apparatus is compared with the second calculated value calculated and generated by the third information processing apparatus, and the comparison result is transmitted to the second information processing apparatus. ,
The generator
The information processing system according to any one of claims 1 to 3, which generates the key based on the comparison result.
前記複数の第2情報処理装置は、
2乃至10 台である
請求項1乃至4のいずれか1項に記載の情報処理システム。
The plurality of second information processing devices
The information processing system according to any one of claims 1 to 4, wherein the number of units is 2 to 10.
前記第1情報処理装置を識別する第1固有データは、
前記第1情報処理装置及び前記第2情報処理装置が分散して記憶する複数の分散データに基づいて生成される
請求項1乃至5のいずれか1項に記載の情報処理システム。
The first unique data that identifies the first information processing device is
The information processing system according to any one of claims 1 to 5, which is generated based on a plurality of distributed data distributed and stored by the first information processing device and the second information processing device.
ユーザが使用する第1情報処理装置と、複数の第2情報処理装置と、サービスを提供する第3情報処理装置とを有する情報処理システムが行う情報処理方法であって、
前記第1情報処理装置が、前記ユーザを識別するユーザデータ及び前記第3情報処理装置に対してアクセスするリクエストをそれぞれの前記第2情報処理装置に送信する第1送信手順と、
前記第2情報処理装置が、前記リクエストに基づいて、前記ユーザデータを前記第3情報処理装置に送信する第2送信手順と、
前記第3情報処理装置が、入力されるユーザデータを登録する登録手順と、
前記第3情報処理装置が、前記第2情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断手順と、
前記第3情報処理装置が、前記判断手順による判断結果を前記第2情報処理装置に送信する第3送信手順と、
前記第2情報処理装置が、前記判断結果に基づいて、前記第1情報処理装置及び前記第3情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成手順と、
前記第2情報処理装置が、前記鍵又は前記素材データを暗号化して第1暗号化データを生成する第1暗号化手順と、
前記第2情報処理装置が、前記鍵又は前記素材データを暗号化して第2暗号化データを生成する第2暗号化手順と、
前記第2情報処理装置が、前記第1暗号化データを前記第1情報処理装置に送信する第4送信手順と、
前記第2情報処理装置が、前記第2暗号化データを前記第3情報処理装置に送信する第5送信手順と、
前記第1情報処理装置及び前記第3情報処理装置は、
前記第1暗号化データ及び前記第2暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
情報処理方法。
It is an information processing method performed by an information processing system having a first information processing device used by a user, a plurality of second information processing devices, and a third information processing device that provides a service.
A first transmission procedure in which the first information processing device transmits user data for identifying the user and a request for accessing the third information processing device to the second information processing device, respectively.
A second transmission procedure in which the second information processing device transmits the user data to the third information processing device based on the request.
The registration procedure in which the third information processing device registers the input user data, and
A determination procedure for determining whether or not the user data received from the second information processing device by the third information processing device is registered, and a determination procedure.
A third transmission procedure in which the third information processing apparatus transmits the determination result of the determination procedure to the second information processing apparatus.
Based on the determination result, the second information processing device obtains a key used for communication performed between the first information processing device and the third information processing device, or material data as a material for generating the key. Generation procedure to generate and
The first encryption procedure in which the second information processing apparatus encrypts the key or the material data to generate the first encrypted data.
A second encryption procedure in which the second information processing device encrypts the key or the material data to generate the second encrypted data.
A fourth transmission procedure in which the second information processing device transmits the first encrypted data to the first information processing device, and
A fifth transmission procedure in which the second information processing device transmits the second encrypted data to the third information processing device, and
The first information processing device and the third information processing device
An information processing method for performing communication based on the key or the material data acquired from the first encrypted data and the second encrypted data.
ユーザが使用する第1情報処理装置と、複数の第2情報処理装置と、サービスを提供する第3情報処理装置とを有するコンピュータに情報処理方法を実行させるためのプログラムであって、
前記第1情報処理装置が、前記ユーザを識別するユーザデータ及び前記第3情報処理装置に対してアクセスするリクエストをそれぞれの前記第2情報処理装置に送信する第1送信手順と、
前記第2情報処理装置が、前記リクエストに基づいて、前記ユーザデータを前記第3情報処理装置に送信する第2送信手順と、
前記第3情報処理装置が、入力されるユーザデータを登録する登録手順と、
前記第3情報処理装置が、前記第2情報処理装置から受信する前記ユーザデータが登録されているか否かを判断する判断手順と、
前記第3情報処理装置が、前記判断手順による判断結果を前記第2情報処理装置に送信する第3送信手順と、
前記第2情報処理装置が、前記判断結果に基づいて、前記第1情報処理装置及び前記第3情報処理装置の間で行われる通信に用いられる鍵又は前記鍵を生成する素材となる素材データを生成する生成手順と、
前記第2情報処理装置が、前記鍵又は前記素材データを暗号化して第1暗号化データを生成する第1暗号化手順と、
前記第2情報処理装置が、前記鍵又は前記素材データを暗号化して第2暗号化データを生成する第2暗号化手順と、
前記第2情報処理装置が、前記第1暗号化データを前記第1情報処理装置に送信する第4送信手順と、
前記第2情報処理装置が、前記第2暗号化データを前記第3情報処理装置に送信する第5送信手順と、
前記第1情報処理装置及び前記第3情報処理装置は、
前記第1暗号化データ及び前記第2暗号化データから取得する前記鍵又は前記素材データに基づいて通信を行う
ように実行させるためのプログラム。
A program for causing a computer having a first information processing device used by a user, a plurality of second information processing devices, and a third information processing device that provides a service to execute an information processing method.
A first transmission procedure in which the first information processing device transmits user data for identifying the user and a request for accessing the third information processing device to the second information processing device, respectively.
A second transmission procedure in which the second information processing device transmits the user data to the third information processing device based on the request.
The registration procedure in which the third information processing device registers the input user data, and
A determination procedure for determining whether or not the user data received from the second information processing device by the third information processing device is registered, and a determination procedure.
A third transmission procedure in which the third information processing apparatus transmits the determination result of the determination procedure to the second information processing apparatus.
Based on the determination result, the second information processing device obtains a key used for communication performed between the first information processing device and the third information processing device, or material data as a material for generating the key. Generation procedure to generate and
The first encryption procedure in which the second information processing apparatus encrypts the key or the material data to generate the first encrypted data.
A second encryption procedure in which the second information processing device encrypts the key or the material data to generate the second encrypted data.
A fourth transmission procedure in which the second information processing device transmits the first encrypted data to the first information processing device, and
A fifth transmission procedure in which the second information processing device transmits the second encrypted data to the third information processing device, and
The first information processing device and the third information processing device
A program for executing communication based on the key or the material data acquired from the first encrypted data and the second encrypted data.
ユーザが使用する第1情報処理装置と、複数の第2情報処理装置と、サービスを提供する第3情報処理装置とを有する情報処理システムであって、
前記第3情報処理装置は、
前記ユーザを認証する認証データを登録データに登録するデータ登録部
を有し、
前記第1情報処理装置は、
前記ユーザを識別するユーザデータ及び前記第3情報処理装置に対してアクセスするリクエストをそれぞれの前記第2情報処理装置に送信するリクエスト送信部
を有し、
前記第2情報処理装置は、
前記リクエストに基づいて、前記第1情報処理装置及び前記第3情報処理装置の間で行われる通信に用いられる鍵、及び、前記通信のセッションを識別するセッションデータを生成するデータ生成部と、
前記鍵及び前記セッションデータを暗号化して第1データを生成し、前記第1データを前記第1情報処理装置に送信する第1データ送信部と、
前記鍵、前記セッションデータ及び前記ユーザデータを暗号化した第2データを前記第3情報処理装置に送信する第2データ送信部と
をそれぞれ有し、
前記第1情報処理装置は、
前記ユーザから操作を受け付ける受付部と、
前記操作で入力される内容を示す入力データに基づいて、第3データを生成する第3データ生成部と、
前記第3データ及び前記鍵に基づいて、第1合成鍵を生成する第1合成鍵生成部と、
前記第1合成鍵に基づいて前記入力データを暗号化させて第4データを生成する第4データ生成部と
前記第4データを前記第3情報処理装置に送信する第4データ送信部と
を更に有し、
前記第3情報処理装置は、
前記登録データから、前記ユーザデータに基づいて前記認証データを抽出する抽出部と、
前記抽出部によって抽出される前記認証データに基づいて、第5データを生成する第5データ生成部と、
前記第2データを復号化して取得される前記鍵及び前記第5データに基づいて、第2合成鍵を生成する第2合成鍵生成部と、
前記第2合成鍵に基づいて前記第4データを復号化する第4データ復号化部と
前記第4データを復号化して取得される前記入力データと、前記認証データとを照合する照合部と
を更に有し、
前記第1情報処理装置及び前記第3情報処理装置は、
前記照合部による照合結果に基づいて通信を行う
情報処理システム。
An information system having a first information processing device used by a user, a plurality of second information processing devices, and a third information processing device that provides a service.
The third information processing device is
It has a data registration unit that registers the authentication data that authenticates the user in the registration data.
The first information processing device is
It has a request transmission unit that transmits user data that identifies the user and a request for accessing the third information processing device to the second information processing device.
The second information processing device is
Based on the request, a key used for communication performed between the first information processing device and the third information processing device, and a data generation unit that generates session data for identifying a session of the communication.
A first data transmission unit that encrypts the key and the session data to generate first data, and transmits the first data to the first information processing apparatus.
Each has a second data transmission unit that transmits the key, the session data, and the second data in which the user data is encrypted to the third information processing apparatus.
The first information processing device is
The reception unit that accepts operations from the user and
A third data generation unit that generates third data based on the input data indicating the contents input by the operation, and
A first synthetic key generator that generates a first synthetic key based on the third data and the key,
A fourth data generation unit that encrypts the input data based on the first synthesis key to generate the fourth data and a fourth data transmission unit that transmits the fourth data to the third information processing apparatus are further added. Have and
The third information processing device is
An extraction unit that extracts the authentication data from the registered data based on the user data,
A fifth data generation unit that generates fifth data based on the authentication data extracted by the extraction unit, and
A second synthetic key generation unit that generates a second synthetic key based on the key obtained by decoding the second data and the fifth data.
A fourth data decoding unit that decodes the fourth data based on the second synthetic key, and a collation unit that collates the input data acquired by decoding the fourth data with the authentication data. Have more
The first information processing device and the third information processing device
An information processing system that communicates based on the collation result of the collation unit.
前記第4データ生成部は、
GCMを用いて、前記入力データを暗号化する
請求項9に記載の情報処理システム。
The fourth data generation unit is
The information processing system according to claim 9, wherein the input data is encrypted using GCM.
前記第1情報処理装置、前記第2情報処理装置及び前記第3情報処理装置は、
少なくとも3装置の間で合意して前記第1情報処理装置及び前記第3情報処理装置の間で通信を行う
請求項1乃至6、9及び10のうち、いずれか1項に記載の情報処理システム。
The first information processing device, the second information processing device, and the third information processing device
The information processing system according to any one of claims 1 to 6, 9 and 10, which is agreed among at least three devices and communicates between the first information processing device and the third information processing device. ..
VPNにおける通信を行う
請求項1乃至6、9、10及び11のうち、いずれか1項に記載の情報処理システム。
The information processing system according to any one of claims 1, 6, 9, 10 and 11, which communicates in a VPN.
JP2018210075A 2018-11-07 2018-11-07 Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc. Active JP6831544B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018210075A JP6831544B2 (en) 2018-11-07 2018-11-07 Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018210075A JP6831544B2 (en) 2018-11-07 2018-11-07 Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc.

Publications (2)

Publication Number Publication Date
JP2020077978A JP2020077978A (en) 2020-05-21
JP6831544B2 true JP6831544B2 (en) 2021-02-17

Family

ID=70725175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018210075A Active JP6831544B2 (en) 2018-11-07 2018-11-07 Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc.

Country Status (1)

Country Link
JP (1) JP6831544B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666341A (en) * 2022-03-15 2022-06-24 数界(深圳)科技有限公司 Decentralized SDP controller implementation method and computer storage medium

Also Published As

Publication number Publication date
JP2020077978A (en) 2020-05-21

Similar Documents

Publication Publication Date Title
RU2756048C2 (en) Addressing trusted execution environment using encryption key
CN109309565B (en) Security authentication method and device
US10423774B1 (en) System and method for establishing secure communication channels between virtual machines
CN100571125C (en) A kind of method and device that is used for secure communication between subscriber equipment and internal network
US6996715B2 (en) Method for identification of a user&#39;s unique identifier without storing the identifier at the identification site
CN107040513B (en) Trusted access authentication processing method, user terminal and server
JP5564453B2 (en) Information processing system and information processing method
EP2544117A1 (en) Method and system for sharing or storing personal data without loss of privacy
CN107018155B (en) Method and system for safely accessing specific data of intranet by extranet terminal
US10701070B2 (en) Personalized security system
US20130061310A1 (en) Security server for cloud computing
JP2020506611A (en) Addressing to a trusted execution environment using a signing key
JP2009529832A (en) Undiscoverable, ie secure data communication using black data
US10348701B2 (en) Protecting clients from open redirect security vulnerabilities in web applications
US20160065366A1 (en) Password-Based Generation and Management of Secret Cryptographic Keys
JP2018026631A (en) SSL communication system, client, server, SSL communication method, computer program
US11539671B1 (en) Authentication scheme in a virtual private network
JP6831544B2 (en) Information processing systems, information processing methods and programs applicable to blockchains and SDNs, etc.
US20050210247A1 (en) Method of virtual challenge response authentication
US11943201B2 (en) Authentication procedure in a virtual private network
JP6720113B2 (en) Authentication system, service providing server, authentication method, and program
CN114745192B (en) Communication method, system, equipment and medium
KR100744603B1 (en) Authentification method for packet level user by use of bio data
CN116887274A (en) Terminal identity authentication system and method
Meinel et al. Digital Security

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200918

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200918

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210114

R150 Certificate of patent or registration of utility model

Ref document number: 6831544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250