JP5997588B2 - COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM - Google Patents
COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM Download PDFInfo
- Publication number
- JP5997588B2 JP5997588B2 JP2012251172A JP2012251172A JP5997588B2 JP 5997588 B2 JP5997588 B2 JP 5997588B2 JP 2012251172 A JP2012251172 A JP 2012251172A JP 2012251172 A JP2012251172 A JP 2012251172A JP 5997588 B2 JP5997588 B2 JP 5997588B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- time
- communication device
- authentication
- unit
- 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
Links
Images
Description
本発明は、通信システム、通信方法、通信装置、および通信プログラムに関する。 The present invention relates to a communication system, a communication method, a communication apparatus, and a communication program.
携帯電話やタブレットPC(Personal Computer)、その他の端末装置が、ネットワークを介して種々のサービスの提供を受ける際に、ネットワークを介した認証が行われる場合がある。この認証において、端末装置は、認証を行うサーバ(認証サーバ)に暗号化された認証情報を送信し、認証サーバは、受信した認証情報を復号する。そして、認証サーバは、予め登録された情報と復号した情報が一致するか否かを判定し、情報が一致した場合にサービスの提供を許可する。 When a mobile phone, a tablet PC (Personal Computer), and other terminal devices receive provision of various services via a network, authentication via the network may be performed. In this authentication, the terminal device transmits the encrypted authentication information to a server (authentication server) that performs authentication, and the authentication server decrypts the received authentication information. Then, the authentication server determines whether or not the information registered in advance matches the decrypted information, and permits the provision of the service when the information matches.
認証情報を一定期間有効なものとすると、第三者が認証情報を傍受し、試行錯誤によって認証情報を解析してしまう可能性がある。これに対し、使用される度に変化し、1回限り有効な認証情報であるワンタイムパスワードを用いて認証を行う認証方法の発明が開示されている(例えば、特許文献1参照)。この認証方法では、通信を行う機器間で時刻の同期を行っておき、時刻を非可逆性のアルゴリズムで暗号化したワンタイムパスワードが、認証情報として送信される。 If the authentication information is valid for a certain period of time, a third party may intercept the authentication information and analyze the authentication information by trial and error. On the other hand, an invention of an authentication method that changes each time it is used and performs authentication using a one-time password that is authentication information that is valid only once is disclosed (for example, see Patent Document 1). In this authentication method, time synchronization is performed between communicating devices, and a one-time password obtained by encrypting the time with an irreversible algorithm is transmitted as authentication information.
ところで、サービスを利用するためのアプリ(アプリケーションプログラム)が端末装置にインストールされる場合がある。この場合、認証を受けるための暗号処理演算手順や鍵の生成手順が、アプリに記述されるケースが増加している。これに対し、解析者(攻撃者)は、鍵の生成手順を含むアプリを読み出して他のコンピュータ装置等に格納し、リバースエンジニアリングによって鍵の生成手順を解析することが可能である。ここで、鍵の生成手順が解析され、解析者がアプリの改ざんを行って不正にサービスを受けようとした場合であっても、改ざんを検知すると正常に動作しない仕組みがアプリに埋め込まれていれば、アプリが正常に動作しない可能性が高い。しかしながら、正規なアプリのコードを再利用せず、演算手順を一から組み立てる手法(スクラッチと称される)でアプリが作成された場合、サービスが不正に利用されてしまう場合がある。 Incidentally, an application (application program) for using the service may be installed in the terminal device. In this case, there are increasing cases in which cryptographic processing calculation procedures for authentication and key generation procedures are described in an application. On the other hand, an analyst (attacker) can read an application including a key generation procedure, store it in another computer device or the like, and analyze the key generation procedure by reverse engineering. Here, even if the key generation procedure has been analyzed and the analyst has tampered with the app and tried to receive a service illegally, a mechanism that does not operate normally when tampering is detected is embedded in the app. If this is the case, the app is unlikely to work properly. However, if an application is created by a method of assembling a calculation procedure from scratch (referred to as a scratch) without reusing a legitimate application code, the service may be used illegally.
これに対し、共通鍵暗号方式で通信を行う方法の発明が開示されている(例えば、特許文献2参照)。この方法では、通信を行う第1の機器が、固定キーテーブルから任意の固定キーを選択して、所定の演算処理を加えることにより新たな共通鍵を生成する。そして、第1の機器は、生成した共通鍵を暗号化に用いると共に、固定キーのインデックス情報を第2の機器に送信する。第2の機器は、第1の機器と同じ固定キーテーブルを備えており、受信したインデックス情報を用いて固定キーテーブルから固定キーを選択し、所定の演算を加えることにより、第1の機器と同じ共通鍵を生成して復号に用いる。 On the other hand, the invention of the method of communicating by a common key encryption system is disclosed (for example, refer patent document 2). In this method, the first device that performs communication selects an arbitrary fixed key from the fixed key table and generates a new common key by applying a predetermined calculation process. The first device uses the generated common key for encryption and transmits the index information of the fixed key to the second device. The second device includes the same fixed key table as the first device, and selects the fixed key from the fixed key table using the received index information and adds a predetermined calculation to the first device. The same common key is generated and used for decryption.
また、自装置の識別子と、通信相手の識別子に基づいて選択されたアルゴリズムで、暗号鍵を取得する方法の発明が開示されている(例えば、特許文献3参照)。 Further, an invention of a method for obtaining an encryption key using an algorithm selected based on the identifier of the own device and the identifier of the communication partner is disclosed (for example, see Patent Document 3).
特許文献2、3に記載された方法によれば、鍵の生成手順がインデックス情報や識別子によって変更されるため、毎回同じ手順で鍵を生成する場合に比して、解析者がリバースエンジニアリングによって鍵の生成手順を解析することが困難となっている。
According to the methods described in
しかしながら、特許文献1に記載の方法では、認証情報の生成手順を解析されてしまう場合がある。この結果、特許文献1に記載の方法では、十分なセキュリティ性が得られない場合がある。
However, in the method described in
また、特許文献2に記載の方法に、ワンタイムパスワードとしての性質(ワンタイム性)を持たせようとすると、選択する固定キーを通信の度に変更する必要がある。この場合、暗号化通信の度に固定キーのインデックス情報を送信する必要が生じ、通信量が増加してしまう。通信量の増加は、通信料金の増加や消費電力の増加、通信帯域の消費など、通信に関するコスト(通信コスト)の増加を招く。更に、固定キーのインデックス情報を傍受された場合、同じ固定キーテーブルを有する通信主体であれば、本来の通信主体でなくとも不正なアクセスを行うことが可能となる。従って、特許文献2に記載の方法では、十分なセキュリティ性が得られない場合がある。
In addition, if the method described in
また、特許文献3に記載の方法では、例えば同じ通信相手と何度も通信を行う場合、通信主体の識別子は変化しないため、ワンタイム性を持たせるのが困難である。異なる相手と通信を行う場合であっても、特許文献2に記載の方法と同様、暗号化通信の度に識別子を送信し合う必要があり、通信コストが増加したり、十分なセキュリティ性が得られない場合がある。
In the method described in
このように、従来の通信システムや通信方法では、通信コストを抑制しつつ、セキュリティ性を向上させることが困難であった。 As described above, in the conventional communication system and communication method, it is difficult to improve the security while suppressing the communication cost.
本発明は、このような事情を考慮してなされたものであり、通信コストを抑制しつつ、セキュリティ性を向上させることを目的の一つとする。 The present invention has been made in view of such circumstances, and an object of the present invention is to improve security while suppressing communication costs.
本発明の一態様は、第1の通信装置と第2の通信装置とを備える通信システムであって、前記第1の通信装置は、互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する第1の通信装置側鍵生成部と、前記第1の通信装置側鍵生成部により生成された鍵データを用いてデータを暗号化する暗号化部と、前記暗号化されたデータを前記第2の通信装置に送信する送信部と、を備え、前記第2の通信装置は、前記第1の通信装置から前記暗号化されたデータを受信する受信部と、前記共通する時刻の分未満を端数処理した時刻に基づいて、前記複数の演算手順から一以上の演算手順を選択することを含む処理によって鍵データを生成する第2の通信装置側鍵生成部と、前記第2の通信装置側鍵生成部により生成された鍵データを用いて前記暗号化されたデータを復号する復号部と、前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、前記認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記第2の通信装置側鍵生成部は、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、通信システムである。 One embodiment of the present invention is a communication system including a first communication device and a second communication device, wherein the first communication device is configured to perform a plurality of different calculation procedures from the own device and the second communication device. A first communication device-side key generation unit that generates key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a common time with a communication device; An encryption unit that encrypts data using the key data generated by the first communication device-side key generation unit; and a transmission unit that transmits the encrypted data to the second communication device. The second communication device includes a receiving unit that receives the encrypted data from the first communication device, and a plurality of calculation procedures based on a fractional processing time less than the common time. Selecting one or more calculation procedures from A second communication apparatus key generation unit, the second decoder which decodes the encrypted data by using the key data generated by the communication apparatus-side key generating unit for generating key data by processing, An authentication unit that performs authentication by determining whether or not the decrypted data matches the predetermined data, and in the determination by the authentication unit, the decrypted data does not match the predetermined data In this case, the second communication device side key generation unit selects one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount. And generating the key data generated by the process including the step of using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount. Te, determines data decoded by said decoding unit again whether matches a predetermined data is a communication system.
また、本発明の他の態様は、前記互いに異なる複数の演算手順は、論理演算の組み合わせが互いに異なる演算手順、または、繰り返し行われる演算の繰り返し回数が互いに異なる演算手順、または、論理演算の組み合わせが互いに異なり且つ繰り返し行われる演算の繰り返し回数が互いに異なる演算手順である通信システムである。Further, according to another aspect of the present invention, the plurality of different calculation procedures may include a calculation procedure having a different combination of logical operations, a calculation procedure having a different number of repeated operations, or a combination of logical operations. Is a communication system in which the calculation procedures are different from each other and the number of repeated calculations is different from each other.
また、本発明の他の態様は、前記第1の通信装置は、時刻を出力する時計と、前記第2の通信装置から取得した前記第2の通信装置側の時刻と、前記時計が出力した時刻との差分を演算して記憶部に格納する差分演算部と、を備え、前記第1の通信装置側鍵生成部は、前記時計が出力した時刻と前記記憶部に格納された差分を加算した時刻を、前記共通する時刻として用い、前記第2の通信装置は、自装置が備える時計が出力する時刻を、前記共通する時刻として用いる、通信システムである。Further, according to another aspect of the present invention, the first communication device outputs a timepiece that outputs time, the time on the second communication device side obtained from the second communication device, and the timepiece outputs the timepiece. A difference calculation unit that calculates a difference from the time and stores the difference in the storage unit, wherein the first communication device side key generation unit adds the time output from the clock and the difference stored in the storage unit The second communication device is a communication system that uses, as the common time, a time output from a clock included in the device.
また、本発明の他の態様は、第1の通信装置と第2の通信装置とを備える通信システムが行う通信方法であって、前記第1の通信装置が、互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、前記第1の通信装置において生成された鍵データを用いてデータを暗号化し、前記暗号化されたデータを前記第2の通信装置に送信し、前記第2の通信装置が、前記暗号化されたデータを前記第1の通信装置から受信し、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、前記第2の通信装置において生成された鍵データを用いて前記暗号化されたデータを復号し、前記復号されたデータが所定のデータと一致するか否かを判定し、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記第2の通信装置において前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定する、通信方法である。Another aspect of the present invention is a communication method performed by a communication system including a first communication device and a second communication device, wherein the first communication device is based on a plurality of different calculation procedures. Generating key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a common time between the own apparatus and the second communication apparatus; Data is encrypted using key data generated in the communication device, the encrypted data is transmitted to the second communication device, and the second communication device transmits the encrypted data to the second communication device. Receiving from one communication device, generating key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than the common time from the plurality of calculation procedures, In the second communication device The encrypted data is decrypted using the key data generated in step S5, and it is determined whether the decrypted data matches predetermined data. In the determination, the decrypted data is If the data does not match, generated by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount Generated using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount in the second communication device. In this communication method, it is determined again whether the data matches the predetermined data.
また、本発明の他の態様は、互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する鍵生成部と、前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号する復号部と、前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、該認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記鍵生成部は、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、通信装置である。According to another aspect of the present invention, there is provided key generation for generating key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding less than a minute. A decryption unit that decrypts encrypted data that is data received from another device using the generated key data, and whether or not the decrypted data matches predetermined data An authentication unit that performs authentication by determining, and in the determination by the authentication unit, if the decrypted data does not match predetermined data, the key generation unit Generating key data generated by a process including selecting one or more calculation procedures based on a time obtained by shifting a fractional processing time less than a minute of the time by a predetermined amount, and the authentication unit Using the key data generated by the process including selecting one or more calculation procedures based on the determined time, it is determined again whether the data decrypted by the decryption unit matches the predetermined data , A communication device.
また、本発明の他の態様は、通信装置に、互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成させ、前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号させ、前記復号されたデータが所定のデータと一致するか否かを判定させ、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成させ、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定させる、通信プログラムである。According to another aspect of the present invention, key data is transmitted to a communication device by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a time from a plurality of different calculation procedures. Generating the received key data, decrypting the encrypted data that is received from another device, and determining whether the decrypted data matches the predetermined data. In the determination, if the decrypted data does not match the predetermined data, one or more based on a time obtained by shifting the fractional processing time by less than a predetermined amount from the plurality of calculation procedures. Generated key data generated by a process including selecting a calculation procedure, and generated by a process including selecting one or more calculation procedures based on the time shifted by the predetermined amount Data using the decoded data to re-determine whether to match the predetermined data, a communication program.
本発明の一態様によれば、通信コストを抑制しつつ、セキュリティ性を向上させることができる。 According to one embodiment of the present invention, security can be improved while suppressing communication costs.
以下、図面を参照し、本発明の通信システム、通信方法、通信装置、および通信プログラムの実施形態について説明する。 Hereinafter, a communication system, a communication method, a communication apparatus, and a communication program according to embodiments of the present invention will be described with reference to the drawings.
<第1実施形態>
図1は、本発明の第1実施形態に係る通信システムのシステム構成例である。通信システムは、端末装置1と、認証サーバ3と、サービスサーバ5とを備える。これらの構成要素は、ネットワーク9によって接続されている。
<First Embodiment>
FIG. 1 is a system configuration example of a communication system according to the first embodiment of the present invention. The communication system includes a
[端末装置1の構成]
端末装置1は、携帯電話やタブレットPC、ノートPC、デスクトップPC、その他の端末装置である。認証サーバ3は、例えば1台以上のサーバ装置によって実現され、端末装置1がサービスサーバ5からサービスを受ける際に、端末装置1に対する認証を行い、認証結果が正当であればサービスの提供を許可する。サービスサーバ5は、例えば1台以上のサーバ装置によって実現され、端末装置1に、メールの送受信などの各種サービスを提供する。ネットワーク9は、例えば、3G(3rd. Generation)網などの携帯電話網、Wi−Fi網、光通信網などの通信網を含む。図1では、端末装置1を単独のものとして示したが、複数の端末装置1がネットワーク9を介して認証サーバ3やサービスサーバ5に接続されることがある。
[Configuration of Terminal Device 1]
The
図2は、端末装置1の機能構成例である。端末装置1は、例えば、入力部11、出力部12、通信部13、アプリ実行部14、第1の端末側鍵生成部15、第2の端末側鍵生成部16、時計17、暗号処理部18、認証トークン取得部19、差分演算部20、記憶部21を備える。
FIG. 2 is a functional configuration example of the
記憶部21には、アプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dなどが格納される。アプリID21Aは、アプリを特定する識別子である。アプリ認証用パスワード21Bは、アプリによるサービスを受けるためのパスワードである。アプリ認証用パスワードの有効期限21Cは、認証サーバ3によって設定されるアプリ認証用パスワードの有効期限である。時刻差分情報21Dについては後述する。
The
入力部11は、例えば、ボタンやキー、タッチパネル、キーボード、マウスなどであり、ユーザによる入力を受ける。出力部12は、例えば、LCD(Liquid Crystal Display)などの表示装置、スピーカなどを含む。通信部13は、ネットワーク9を介して、他の装置との間でデータを送受信する。アプリ実行部14は、サービスサーバ5から提供されるサービスを利用するアプリケーションを実行する。
The input unit 11 is, for example, a button, a key, a touch panel, a keyboard, a mouse, or the like, and receives input from the user. The
第1の端末側鍵生成部15は、暗号処理部18が暗号化および復号に用いる鍵データK1〜K3を生成する。第2の端末側鍵生成部16は、暗号処理部18が暗号化および復号に用いる鍵データK4を生成する。第2の端末側鍵生成部16は、互いに異なる複数の演算手順から、端末装置1と認証サーバ3との間で共通する時刻に基づいて一以上の演算手順を選択することを含む処理によって、端末装置1と認証サーバ3との間で共通する鍵データK4を生成する。第1実施形態では、「端末装置1と認証サーバ3との間で共通する時刻」とは、時計17が出力する時刻に、時刻差分情報21Dを加算して得られる認証サーバ3の時計34(後述)の推定時刻である。
The first terminal-side
暗号処理部18は、第1の端末側鍵生成部15や第2の端末側鍵生成部16が生成した鍵データを用いて、データの暗号化および復号を行う。鍵データを用いた暗号化アルゴリズムとしては、例えば、AES(Advanced Encryption Standard)を用いることができる。
The
認証トークン取得部19は、所定のタイミングで、認証トークン払い出し要求を認証サーバ3に送信する。そして、認証トークン取得部19は、認証サーバ3から受信し、暗号処理部18によって復号された認証トークンの少なくとも一部を、記憶部21に格納する。
The authentication
認証トークンには、例えば、認証トークンの送信時に認証サーバ3の時計34が出力した時刻情報、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21Cなどが含まれる。アプリ認証用パスワードの有効期限21Cは、例えば3か月と定められる。認証トークン取得部19は、この有効期限が切れると、認証トークンの払い出し要求を認証サーバ3に送信するように通信部13を制御する。
The authentication token includes, for example, time information output from the
差分演算部20は、認証サーバ3から受信したサーバ時刻情報から、認証トークンの受信時に時計17が出力した時刻を差し引き、時刻差分情報21Dを生成して記憶部21に格納する。サーバ時刻情報は、認証サーバ3が認証トークンを生成する際に、時計34が出力した時刻の情報である。時刻差分情報21Dは、時計17と時計34の間の誤差を反映した時間である。
The
[認証サーバ3の構成]
図3は、認証サーバ3の機能構成例である。認証サーバ3は、例えば、通信部31、第1のサーバ側鍵生成部32、第2のサーバ側鍵生成部33、時計34、暗号処理部35、認証トークン生成部36、認証部37、記憶部38などを備える。
[Configuration of Authentication Server 3]
FIG. 3 is a functional configuration example of the
なお、図2、3に示す矢印は、通信システムにおける代表的な情報の流れを例示したものであり、図2、3に示す以外の情報の流れも発生し得る。 The arrows shown in FIGS. 2 and 3 exemplify typical information flows in the communication system, and information flows other than those shown in FIGS.
記憶部38には、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM(Subscriber Identity Module)識別情報38Fなどが格納される。
The
端末識別情報38Eとしては、例えば、IMEI(International Mobile Equipment Identity)を用いることができる。また、SIM識別情報38Fとしては、例えば、MSN(Multiple Subscriber Number)やICCID(Integrated Circuit Card ID)、Wi−Fi(登録商標)パスワードなどを用いることができる。SIM識別情報38Fは、例えば、網認証によって、予め端末装置1と認証サーバ3との間で共有されているものとする。
As the
通信部31は、ネットワーク9を介して、他の装置との間でデータを送受信する。
The
第1のサーバ側鍵生成部32は、暗号処理部35が暗号化および復号に用いる鍵データK1、K2を生成する。第2のサーバ側鍵生成部33は、暗号処理部35が暗号化および復号に用いる鍵データK4を生成する。第2のサーバ側鍵生成部33は、互いに異なる複数の演算手順から、時計34の出力する時刻に基づいて一以上の演算手順を選択することを含む処理によって、端末装置1と認証サーバ3との間で共通する鍵データK4を生成する。
The first server side
暗号処理部35は、第1のサーバ側鍵生成部32や第2のサーバ側鍵生成部33が生成した鍵データを用いて、データの暗号化および復号を行う。鍵データを用いた暗号化アルゴリズムとしては、例えば、AESを用いることができる。
The
認証トークン生成部36は、端末装置1から受信した認証トークン払い出し要求に応じ、認証トークンを生成し、認証トークンを端末装置1に送信する。認証部37は、サービスサーバ5が端末装置1から受信した認証情報の認証を行い、認証結果をサービスサーバ5に送信する。
In response to the authentication token payout request received from the
記憶部38には、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM識別情報38Fなどが格納される。
The
[サービスサーバ5の構成]
図4は、サービスサーバ5の機能構成例である。サービスサーバ5は、例えば、通信部51、認証依頼部52、サービス提供部53などを備える。
[Configuration of Service Server 5]
FIG. 4 is a functional configuration example of the
通信部51は、ネットワーク9を介して他の装置との間でデータを送受信する。認証依頼部52は、端末装置1から受信した認証情報を認証サーバ3に送信し、認証を依頼する。認証依頼部52は、認証の依頼に対応して認証サーバ3から認証失敗を受信した場合、その旨を端末装置1に通知する。サービス提供部53は、認証の依頼に対応して認証サーバ3から認証成功を受信した場合、端末装置1にサービスを提供する。
The
なお、サービスサーバ5が複数台備えられる場合、各サービスサーバ5は、異なるサービスを提供するものであってもよい。例えば、サービスサーバ5は、メールサーバ、POP(Post Office Protocol)サーバ、情報提供サーバなどでありうる。
When a plurality of
[フローチャート(その1)]
ユーザによって端末装置1のアイコンがタップされること等により、アプリの起動が指示されると、端末装置1と認証サーバ3は、以下に例示するように、乱数の交換によるワンタイムパスワードを用いて情報を送受信する。
[Flowchart (Part 1)]
When the application is instructed by the user tapping the icon of the
図5は、端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その1)である。図5のフローチャートにおける各手順は、例えば、ユーザによりアプリの起動が指示されときに開始される。
FIG. 5 is an example (part 1) of a flowchart showing a flow of processing executed by the
まず、端末装置1のアプリ実行部14が、アプリを起動し(ステップS100)、認証トークン取得部19が、乱数R1を生成する(ステップS102)。乱数R1および後述する乱数R2は、例えば、メンセルヌ・ツイスタ、PRNG(Pseudo Random Number Generator)等の疑似乱数生成アルゴリズムによって生成される。
First, the
次に、端末装置1の第1の端末側鍵生成部15が、図示しないモジュールなどから読み出したSIM識別情報に基づき、鍵データK1を生成する(ステップS104)。そして、暗号処理部18が、鍵データK1を用いて乱数R1を暗号化する(ステップS106)。暗号化された乱数R1は、認証サーバ3に送信される(ステップS108)。
Next, the first terminal-side
認証サーバ3の第1のサーバ側鍵生成部32は、暗号化された乱数R1を受信すると、記憶部38に格納された端末1のSIM識別情報38Fに基づき、鍵データK1を生成する(ステップS110)。そして、暗号処理部35が、鍵データK1を用いて、暗号化された乱数R1を復号する(ステップS112)。
When receiving the encrypted random number R1, the first server-side
次に、認証サーバ3の認証トークン生成部36が、乱数R2を生成し(ステップS114)、暗号処理部35が、鍵データK1を用いて、乱数R2を暗号化する(ステップS116)。暗号化された乱数R2は、端末装置1に送信される(ステップS118)。
Next, the authentication
端末装置1の暗号処理部18は、鍵データK1を用いて、暗号化された乱数R2を復号する(ステップS120)。次に、認証トークン取得部19が、認証トークン払い出し要求を生成する(ステップS122)。次に、第1の端末側鍵生成部15が、乱数R1と乱数R2に基づいて鍵データK2を生成する(ステップS124)。そして、暗号処理部18が、鍵データK2を用いて、図示しないモジュールなどから読み出した自装置(端末装置1)の端末識別情報と認証トークン払い出し要求を暗号化する(ステップS126)。通信部13は、暗号化された端末識別情報と認証トークン払い出し要求は、認証サーバ3に送信する(ステップS128)。
The
認証サーバ3の第1のサーバ側鍵生成部32は、乱数R1と乱数R2に基づいて、鍵データK2を生成する(ステップS130)。次に、暗号処理部35が、鍵データK2を用いて端末識別情報と認証トークン払い出し要求を復号する(ステップS132)。次に、認証トークン生成部36が、アプリIDと認証トークンを生成する(ステップS134)。認証トークンには、例えば、アプリ認証用パスワード、アプリ認証用パスワードの有効期限、およびサーバ時刻情報が含まれる。サーバ時刻情報は、ステップS134において認証トークンを生成する際に、時計34から取得した時刻の情報である。
The first server-side
認証トークン生成部36は、上記のように設定等した情報を、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM識別情報38Fとして記憶部38に格納する(ステップS136)。そして、暗号処理部35が、鍵データK2を用いて、アプリIDと認証トークンを暗号化する(ステップS138)。通信部31は、暗号化されたアプリIDと認証トークンは、端末装置1に送信される(ステップS140)。
The authentication
端末装置1の暗号処理部18は、鍵データK2を用いてアプリIDと認証トークンを復号する(ステップS142)。次に、差分演算部20が、サーバ時刻情報から時計17の出力する時刻を差し引き、時刻差分情報を生成する(ステップS144)。
The
次に、端末装置1の第1の端末側鍵生成部15が、SIM識別情報と端末識別情報に基づいて、鍵データK3を生成する(ステップS146)。暗号処理部18は、鍵データK3を用いて、アプリID、アプリ認証用パスワード、アプリ認証用パスワードの有効期限の情報、時刻差分情報を暗号化する(ステップS148)。暗号化されたアプリID、アプリ認証用パスワード、アプリ認証用パスワードの有効期限の情報、時刻差分情報は、アプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dとして記憶部21に格納される。
Next, the first terminal-side
[フローチャート(その2)]
図5に例示したフローチャートの手順によってアプリID21Aなどが記憶部21に格納されると、ユーザがアプリによるサービスを受けることが可能な状態となる。この状態で、例えば、ユーザがメール取得のボタンを押下する等して、サービス利用要求を行うと、端末装置1と認証サーバ3は、時刻に基づいて演算手順が選択される鍵データ生成手順によって鍵データK4を生成し、暗号化通信を行う。
[Flowchart (Part 2)]
When the
図6は、端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その2)である。図6のフローチャートにおける各手順は、例えば、ユーザによりサービスの利用要求がなされたときに開始される。
FIG. 6 is an example (part 2) of a flowchart showing a flow of processing executed by the
まず、端末装置1の第1の端末側鍵生成部15が、自装置(端末装置1)の端末識別情報とSIM識別情報に基づいて、鍵データ3を生成する(ステップS200)。次に、暗号処理部18が、鍵データK3を用いて、記憶部21に格納されたアプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dを復号する(ステップS202)。
First, the first terminal-side
次に、端末装置1のアプリ実行部14が、アプリ認証用パスワードの有効期限が切れているか否かを判定する(ステップS204)。アプリ認証用パスワードの有効期限が切れている場合、例えば図5のフローチャートの手順が実行される(ステップS206)。
Next, the
次に、端末装置1の第2の端末側鍵生成部16が、時計17の出力する時刻と差分時刻情報の示す時間を加算し、認証サーバ3の推定時刻(認証サーバ3と共通する時刻)を算出する(ステップS208)。次に、第2の端末側鍵生成部16が、加算した認証サーバ3の推定時刻の分未満を端数処理して分単位の時刻に丸める(ステップS210)。ステップS210の端数処理は、(a)切り捨て、(b)切り上げ、(c)30秒未満なら切り捨て/30秒以上なら切り上げなど、如何なる処理であっても構わない。
Next, the second terminal-side
そして、端末装置1の第2の端末側鍵生成部16が、丸めた時刻を用いて鍵データK4を生成する(ステップS212)。ステップS212の処理の詳細については、後述する。
And the 2nd terminal side
端末装置1の暗号処理部18は、鍵データK4を用いてアプリ認証用パスワード、端末識別情報、SIM識別情報を暗号化する(ステップS214)。アプリIDと、ステップS214で暗号化されたアプリ認証用パスワード、端末識別情報、SIM識別情報は、サービスサーバ5に送信される(ステップS216)。
The
サービスサーバ5の認証依頼部52は、受信したアプリIDと、暗号化されたアプリ認証用パスワード、端末識別情報、およびSIM識別情報とを、認証サーバ3に転送する(ステップS218)。
The
サービスサーバ5から情報が転送されて来ると、認証サーバ3の第2のサーバ側鍵生成部33は、時計34が出力した時刻の秒以下を端数処理して分単位の時刻に丸める(ステップS220)。端数処理としては、如何なる処理を行ってもよいが、端末装置1と共通する処理が行われることが望ましい。
When the information is transferred from the
次に、認証サーバ3の第2のサーバ側鍵生成部33は、丸めた時刻を用いて鍵データK4を生成する(ステップS224)。ステップS224の処理は、端末装置1によりステップS212として行われる処理と同じである。従って、ステップ224における「丸めた時刻」が、S212における「丸めた時刻」と一致すれば、端末装置1と認証サーバ3の双方で生成される鍵データK4は一致する。
Next, the second server-side
そして、認証サーバ3の暗号処理部35は、生成された鍵データK4を用いてアプリ認証用パスワード、端末識別情報、およびSIM識別情報を復号する(ステップS226)。
Then, the
次に、認証サーバ3の認証部37は、アプリIDをキーとして記憶部38を検索し、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、端末識別情報38E、SIM識別情報38Fを取得する(ステップS228)。次に、認証部37は、アプリ認証用パスワードの有効期限が切れていないかを検証し(ステップS230)、更に、ステップS226で復号された情報と、記憶部38から取得した情報が一致するか否かを判定して認証を行う(ステップS232)。認証部37は、認証結果をサービスサーバ5に通知する(ステップS234)。なお、認証部37は、アプリ認証用パスワードの有効期限が切れている場合には、認証トークンの払い出し処理などを行う。
Next, the
サービスサーバ5のサービス提供部53は、認証サーバ3による認証が成功したか否かを判定する(ステップS236)。サービス提供部53は、認証が成功した場合、端末装置1にサービス提供(例えば、メール内容の送信など)を行う(ステップS238)。端末装置1では、アプリ実行部14がサービス内容を出力部12に出力させる(ステップS240)。
The
ここで、端末装置1において算出される「丸めた時刻」と、認証サーバ3において算出される「丸めた時刻」は、分の切り替わり前後に端末装置1および認証サーバ3で処理が行われた場合や、通信時間が長くなった場合に、ずれを生じる可能性がある。これに対して、認証サーバ3は、自装置が算出した「丸めた時刻」の例えば1分前や1分後、2分前、2分後など、少々ずれた時刻に基づいて端末装置1がK4を生成した可能性を考慮し、以下に説明するように、複数の時刻候補を設定してもよい。
Here, the “rounded time” calculated in the
図7は、時刻候補が複数設定される場合の処理の流れを示すフローチャートの一部である。図7は、図6のフローチャートにおけるステップS220からステップS234までの処理を変更したものであり、変更箇所以外の箇所を省略して示している。また、図6との間で共通する処理については、同一のステップ番号を付している。 FIG. 7 is a part of a flowchart showing a flow of processing when a plurality of time candidates are set. FIG. 7 shows a modification of the processing from step S220 to step S234 in the flowchart of FIG. 6, and omits parts other than the changed part. Moreover, the same step number is attached | subjected about the process which is common between FIG.
図7において、ステップS220の端数処理が行われると、認証サーバ3の第2のサーバ側鍵生成部33は、時刻候補を複数設定し、まず、第1候補の時刻候補を選択する(ステップS222)。例えば、ステップS220における端数処理が「切り捨て」であり、時計34の出力した時刻が12時01分25秒であったとすると、第2のサーバ側鍵生成部33は、端数処理によって丸めた時刻(12時01分)を第1候補とし、これに1分を加算した時刻(12時02分)を第2候補とし、2分を加算した時刻(12時03分)を第3候補とし、というように、所定数の時刻候補を順に設定する。これに限らず、第2のサーバ側鍵生成部33は、端数処理によって丸めた時刻から所定数を減算した時刻候補を設定してもよい。そして、第2のサーバ側鍵生成部33は、選択した時刻候補を用いて鍵データK4を生成する(ステップS224)。
In FIG. 7, when the fraction processing in step S220 is performed, the second server-side
以下、図6と同様に、暗号処理部35が鍵データK4を用いてアプリ認証用パスワードなどを復号し(ステップS226)、認証部37がアプリ認証用パスワード38Bなどを取得し(ステップS228)、アプリ認証用パスワードの有効期限が切れていないかを検証し(ステップS230)、ステップS226で復号された情報と、記憶部38から取得した情報が一致するか否かを判定して認証を行う(ステップS232)。
Thereafter, similarly to FIG. 6, the
図7において、ステップS232で認証が行われると、認証サーバ3の第2のサーバ側鍵生成部33は、認証が成功したか否かを判定する(ステップS250)。認証が失敗した場合、第2のサーバ側鍵生成部33は、所定数(例えば3個など)の時刻候補を既に選択し、これに基づいて所定数の鍵データK4を生成したか否かを判定する(ステップS252)。所定数の時刻候補を未だ選択していない場合、第2のサーバ側鍵生成部33は、次の時刻候補を選択し(ステップS254)、ステップS224に戻る。この結果、新たに選択された時刻候補に基づいて鍵データK4が生成され、アプリ認証用パスワードなどの復号が行われる。所定数の時刻候補が既に選択されている場合、認証サーバ3は、ステップS234に進み、認証失敗をサービスサーバ5に通知する。
In FIG. 7, when authentication is performed in step S232, the second server-side
[時刻に基づいて演算手順が選択される鍵データ生成手順]
以下、図6または図7のフローチャートにおけるステップS212、およびステップS224の処理について、より詳細に説明する。なお、以下に具体例として示す演算手順は、あくまで一例であり、時刻に基づいて演算手順が選択される性質を有する限り、如何なる演算手順が実行されてもよい。
[Key data generation procedure in which calculation procedure is selected based on time]
Hereinafter, the processing of step S212 and step S224 in the flowchart of FIG. 6 or 7 will be described in more detail. Note that the calculation procedure shown below as a specific example is merely an example, and any calculation procedure may be executed as long as the calculation procedure is selected based on time.
第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、例えば以下のように定義された関数を使用する。「hash()」は、括弧内の値のハッシュ値を求める関数である。時刻情報は、第2の端末側鍵生成部16においてはステップS210で生成された「丸めた時刻」である。また、時刻情報は、第2のサーバ側鍵生成部33においてはステップS220で生成された「丸めた時刻」、或いはステップS222またはステップS254で選択された時刻候補(図7のフローチャートを実行する場合)である。
x=hash(時刻情報)
y=hash(アプリ認証用パスワード)
N=アプリ認証用パスワードの最下位バイトの値
α=アプリ認証用パスワードの最上位バイトの値
The second terminal side
x = hash (time information)
y = hash (password for app authentication)
N = Value of the least significant byte of the password for application authentication α = Value of the most significant byte of the password for application authentication
図8および図9は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。図8は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行されるメインのループ処理を示す図であり、図9は、メインのループ処理によって呼び出される関数を示す図である。
FIG. 8 and FIG. 9 are diagrams illustrating processing executed by the second terminal-side
図8に示すように、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、関数func1〜func3のいずれかを選択して実行することを、N回繰り返し実行する(図中、(1)(2)(5)が相当)。そして、いずれの関数を選択するかは、パラメータαを3で除算した剰余によって決定される(図中、(3)〜(4))が相当)。
As shown in FIG. 8, the second terminal-side
図9(A)は、メインのループ処理によって呼び出される関数func1の内容を示し、図9(B)は、関数func2の内容を示し、図9(C)は、関数func3の内容を示す。また、図9において、「OR」は、演算子の左右のオペランド(ビット列)の各ビットの論理和を並べたビット列を求めることを示し、「AND」は演算子の左右のオペランド(ビット列)の各ビットの論理積を並べたビット列を求めることを示し、「XOR」は、演算子の左右のオペランド(ビット列)の各ビットの排他的論理和を並べたビット列を求めることを示す。また、図9において、msは最上位ビットを求める関数であり、lsは最下位ビットを求める関数である。 9A shows the contents of the function func1 called by the main loop process, FIG. 9B shows the contents of the function func2, and FIG. 9C shows the contents of the function func3. In FIG. 9, “OR” indicates that a bit string in which the logical sum of each bit of the left and right operands (bit string) of the operator is arranged is obtained, and “AND” indicates that the left and right operands (bit string) of the operator are “XOR” indicates that a bit string in which exclusive OR of each bit of the left and right operands (bit strings) of the operator is arranged is obtained. In FIG. 9, ms is a function for obtaining the most significant bit, and ls is a function for obtaining the least significant bit.
パラメータαは、図8に示すループ処理の1回目では、アプリ認証用パスワードの最上位バイトの値、すなわち時刻情報とは無関係であるが、図9に示すように、ループ処理の2回目以降では、時刻情報を反映した「x」の内容に基づくものとなっている。このため、ループ処理の2回目以降では、時刻情報に基づいて、互いに異なる複数の関数(演算手順)func1〜func3のうち1つが選択される。 The parameter α is irrelevant to the value of the most significant byte of the application authentication password, that is, the time information, in the first loop process shown in FIG. 8, but as shown in FIG. 9, in the second and subsequent loop processes. , Based on the contents of “x” reflecting the time information. Therefore, in the second and subsequent loop processing, one of a plurality of different functions (calculation procedures) func1 to func3 is selected based on the time information.
そして、N回のループ処理が行われた結果、例えば最後に演算結果として得られたビット列「y」が、鍵データK4に設定される。 Then, as a result of N times of loop processing, for example, the bit string “y” finally obtained as the operation result is set in the key data K4.
なお、上記の例では、ループ回数を決定するNを、アプリ認証用パスワードの最下位バイトの値に設定するものとしたが、ループ回数を決定するNについても、時刻情報に基づく値に設定してよい。 In the above example, N for determining the number of loops is set to the value of the least significant byte of the password for application authentication. However, N for determining the number of loops is also set to a value based on time information. It's okay.
このように、本実施形態の通信システム1は、時刻情報に基づいて演算手順が選択されることを含む処理によって、鍵データK4を生成することにより、セキュリティ性を向上させることができる。
As described above, the
前述したように、端末装置1にインストールされたアプリが暗号処理手順や鍵データの生成手順を記述している場合、解析者は、インストールされた鍵データの生成手順を含むアプリを他のコンピュータ装置等に吸い出し、鍵データの生成手順を解析することが可能である。図10は、アプリがシミュレーション環境下で(上記「他のコンピュータ装置等」で)実行する一連の命令を、アセンブリ形式で表した図である。解析者は、図10で示すような命令の流れを見ることができる可能性がある。従って、鍵データの生成手順がいつも同じであると、どこからどこまでが鍵データの生成手順であるか見当を付け易く、アプリの実行に伴ってメモリに格納される値を併せて考慮することによって、鍵データの生成手順が判明してしまう可能性が高くなってしまう。
As described above, when the application installed in the
これに対し、本実施形態の第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、時刻情報に基づいて演算手順が選択されることを含む処理によって、鍵データK4を生成するため、鍵データの生成手順は毎回異なるものとなる(同じ時間の同じ分に生成された場合を除く)。従って、図10に示す(1)〜(10)の命令が、例えば(8)→(4)→(2)→(1)→(7)の順で実行されたり、(5)→(1)→(9)→(3)の順で実行されたりするため、解析者にとって、どこからどこまでが鍵データの生成手順であるか見当を付けるのが困難となる。この結果、本実施形態の通信システム1は、セキュリティ性を向上させることができる。
On the other hand, the second terminal-side
また、一度、サーバ時刻情報を取得して時刻差分情報を記憶部21に格納してしまえば、端末装置1と認証サーバ3は、それぞれの時計に基づいて、端末装置1と認証サーバ3で共通する時刻情報を取得することができる。このため、共通する時刻情報を暗号化通信の度に送受信するといった処理を行う必要が無いため、鍵データの生成手順を毎回変更することに起因して通信コストは増加しない。サーバ時刻情報の取得自体は、サービス提供を受けるための通常の処理として実行されるものであるため、通信コストの増加を招くものではない。
Further, once the server time information is acquired and the time difference information is stored in the
また、時刻情報を暗号化通信の度に送受信すると、解析者が送受信情報を傍受した場合に、鍵データの生成手順に時刻情報を用いているかも知れないというヒントを解析者に与えてしまう可能性がある。しかしながら、本実施形態の通信システム1は、暗号化通信の度に時刻情報を送受信しないため、セキュリティ性の低下を防止することができる。
Also, sending and receiving time information every time encrypted communication can give the analyst a hint that the time information may be used in the key data generation procedure if the analyst intercepts the sent and received information There is sex. However, since the
これらの結果、本実施形態の通信システムは、通信コストを抑制しつつ、セキュリティ性を向上させることができる。 As a result, the communication system of this embodiment can improve security while suppressing communication costs.
なお、時刻に基づいて演算手順が選択される鍵データ生成手順は、認証を行う場面以外の場面においても行われてよい。例えば、端末装置1がサービスサーバ5とデータを送受信する際に行われてもよいし、その他の場面で行われてもよい。
Note that the key data generation procedure in which the calculation procedure is selected based on the time may be performed in a scene other than the scene where authentication is performed. For example, it may be performed when the
[鍵データ生成手順の応用例]
なお、上記では、時刻情報とアプリ認証用パスワードを入力パラメータとする簡易な鍵データ生成手順を例示したが、入力パラメータを増加させることによって、よりセキュリティ性の高い暗号化を行うことができる。
[Application example of key data generation procedure]
In the above, a simple key data generation procedure using the time information and the application authentication password as input parameters has been exemplified. However, by increasing the input parameters, it is possible to perform encryption with higher security.
例えば、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、時刻情報およびアプリ認証用パスワードに加えて、端末識別情報、SIM識別情報などを入力パラメータとすることができる。入力パラメータを例えばy1,y2,‥,ykのk個とし、そのうちの少なくとも1つの入力パラメータを、時刻情報を反映したものとする。そして、例えばm個の互いに異なる関数func1〜funcmを定義し、図11に例示するループ処理を実行する。図11は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。関数funcmは、例えば以下のように概念的に表される。各定義式において、f1m、f2m、fkm、gmは、引数mが異なれば内容が異なり、括弧内のデータを入力パラメータとする任意の関数(演算手順)である。
For example, the second terminal side
funcm{
y1=f1m(y1,y2,‥,yk,α);
y2=f2m(y1,y2,‥,yk,α);
‥
yk=fkm(y1,y2,‥,yk,α);
α =gm(y1,y2,‥,yk,α);
}
funcm {
y1 = f1m (y1, y2,..., yk, α);
y2 = f2m (y1, y2,..., yk, α);
...
yk = fkm (y1, y2,..., yk, α);
α = gm (y1, y2,..., yk, α);
}
[まとめ]
以上説明した本実施形態の端末装置1および認証サーバ3を含む通信システムによれば、通信コストを抑制しつつ、セキュリティ性を向上させることができる。
[Summary]
According to the communication system including the
<第2実施形態> Second Embodiment
以下、本発明の第2実施形態に係る通信システムについて説明する。第2実施形態における端末装置1および認証サーバ3が有する時計17および34は、例えば電波時計のように、標準時刻を取得可能な時計である。このため、第2実施形態に係る端末装置1では、差分演算部20を省略することが可能であり、時刻差分情報21Dを記憶部21に格納する必要がない。
The communication system according to the second embodiment of the present invention will be described below. The
この場合、端末装置1で暗号化データが生成される際に時計17の出力する時刻と、認証サーバ3が暗号化データを受信して復号をする際に時計34の出力する時刻は、一致する可能性が高い。また、端末装置1と認証サーバ3の双方において分未満の端数処理を行うのであれば、通信環境が良好ならば、通信時間は誤差の範囲内となる可能性が高い。このため、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、それぞれ時計17および34が出力する時刻(或いは端数処理を行って丸めたもの)を、共通する時刻として扱う。
In this case, the time output from the
<ハードウェア構成等>
前述した各実施形態における端末装置1、認証サーバ3、およびサービスサーバ5は、内部にコンピュータシステムを有している。「コンピュータシステム」は、CPU(Central Processing Unit)、RAM(Random Access Memory)等のメモリ装置、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置、記憶媒体を装着可能なドライブ装置、周辺機器等のハードウェアを含むものである。
<Hardware configuration>
The
そして、前述した端末装置1のアプリ実行部14、第1の端末側鍵生成部15、第2の端末側鍵生成部16、暗号処理部18、認証トークン取得部19、差分演算部20、認証サーバ3の第1のサーバ側鍵生成部32、第2のサーバ側鍵生成部33、暗号処理部35、認証トークン生成部36、認証部37等の動作の過程は、例えば、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。なお、上記各機能部の処理が、全てプログラムを実行することによって行われる必要は無く、一部の機能部は、IC(Integrated Circuit)やLSI(Large Scale Integration)などのハードウェアによって実現されてもよい。
And the
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光ディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるHDD等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。 The “computer-readable recording medium” refers to a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, a ROM, and a CD-ROM, and a storage device such as an HDD built in the computer system. Furthermore, the “computer-readable recording medium” dynamically holds a program for a short time like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory in a computer system serving as a server or a client in that case, and a program that holds a program for a certain period of time are also included.
また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、更に、前述した機能を、コンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。 The program may be for realizing a part of the functions described above, and further, the program described above may be realized in combination with a program already recorded in a computer system. good.
なお、上記各実施形態における第2の端末側鍵生成部16が、「第1の通信装置側鍵生成部」の一例であり、第2のサーバ側鍵生成部33が、「第2の通信装置側鍵生成部」の一例である。
The second terminal side
<その他>
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形、置換、他の構成要素の追加などを行うことができる。
<Others>
As mentioned above, although the form for implementing this invention was demonstrated using embodiment, this invention is not limited to such embodiment at all, In the range which does not deviate from the summary of this invention, various deformation | transformation and substitution Other components can be added.
例えば、第1実施形態では、端末装置1で時刻差分情報に基づく演算を行った結果として得られる時刻に基づき鍵データK4を生成し、認証サーバで自装置の時計34の出力した時刻に基づき鍵データK4を生成するものとしたが、この関係は逆であってもよい。すなわち、認証サーバ3が、予め時刻差分情報を保持しておき、端末装置1が、時計17の出力した時刻に基づいて鍵データK4を生成し、認証サーバ3が、暗号化データの受信時に時計34の出力した時刻に時刻差分情報を加算(または減算)した時刻に基づいて鍵データK4を生成してもよい。
For example, in the first embodiment, the key data K4 is generated based on the time obtained as a result of the calculation based on the time difference information in the
1 端末装置
11 入力部
12 出力部
13 通信部
14 アプリ実行部
15 第1の端末側鍵生成部
16 第2の端末側鍵生成部
17 時計
18 暗号処理部
19 認証トークン取得部
20 差分演算部
21 記憶部
21A アプリID
21B アプリ認証用パスワード
21C アプリ認証用パスワードの有効期限
21D 時刻差分情報
3 認証サーバ
31 通信部
32 第1のサーバ側鍵生成部
33 第2のサーバ側鍵生成部
34 時計
35 暗号処理部
36 認証トークン生成部
37 認証部
38 記憶部
38A アプリID
38B アプリ認証用パスワード
38C アプリ認証用パスワードの有効期限
38D サーバ時刻情報
38E 端末識別情報
38F SIM識別情報
5 サービスサーバ
9 ネットワーク
DESCRIPTION OF
21B
38B
Claims (6)
前記第1の通信装置は、
互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する第1の通信装置側鍵生成部と、
前記第1の通信装置側鍵生成部により生成された鍵データを用いてデータを暗号化する暗号化部と、
前記暗号化されたデータを前記第2の通信装置に送信する送信部と、を備え、
前記第2の通信装置は、
前記第1の通信装置から前記暗号化されたデータを受信する受信部と、
前記共通する時刻の分未満を端数処理した時刻に基づいて、前記複数の演算手順から一以上の演算手順を選択することを含む処理によって鍵データを生成する第2の通信装置側鍵生成部と、
前記第2の通信装置側鍵生成部により生成された鍵データを用いて前記暗号化されたデータを復号する復号部と、
前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、
を備え、
前記認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記第2の通信装置側鍵生成部は、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、
通信システム。 A communication system comprising a first communication device and a second communication device,
The first communication device is:
Key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding a fraction less than a common time between the own device and the second communication device. A first communication device side key generation unit for generating
An encryption unit that encrypts data using the key data generated by the first communication device side key generation unit;
A transmission unit for transmitting the encrypted data to the second communication device,
The second communication device is:
A receiving unit for receiving the encrypted data from the first communication device;
A second communication device-side key generation unit that generates key data by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by performing fraction processing on less than the common time; ,
A decryption unit for decrypting the encrypted data using the key data generated by the second communication device side key generation unit;
An authentication unit that performs authentication by determining whether or not the decrypted data matches predetermined data;
With
In the determination by the authentication unit, if the decrypted data does not match the predetermined data,
The second communication device side key generation unit selects one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount. Generate key data generated by the process including,
The authentication unit uses the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, and the data decrypted by the decryption unit matches the predetermined data Determine again whether or not to
Communications system.
前記互いに異なる複数の演算手順は、論理演算の組み合わせが互いに異なる演算手順、または、繰り返し行われる演算の繰り返し回数が互いに異なる演算手順、または、論理演算の組み合わせが互いに異なり且つ繰り返し行われる演算の繰り返し回数が互いに異なる演算手順である、
通信システム。 The communication system according to claim 1,
The plurality of different arithmetic procedures are arithmetic procedures with different combinations of logical operations, arithmetic procedures with different numbers of repeated operations, or repeated operations with different combinations of logical operations and repeated operations. The number of times is a different calculation procedure.
Communications system.
前記第1の通信装置は、
時刻を出力する時計と、
前記第2の通信装置から取得した前記第2の通信装置側の時刻と、前記時計が出力した時刻との差分を演算して記憶部に格納する差分演算部と、を備え、
前記第1の通信装置側鍵生成部は、前記時計が出力した時刻と前記記憶部に格納された差分を加算した時刻を、前記共通する時刻として用い、
前記第2の通信装置は、自装置が備える時計が出力する時刻を、前記共通する時刻として用いる、
通信システム。 The communication system according to claim 1 or 2,
The first communication device is:
A clock that outputs the time,
A difference calculation unit that calculates a difference between the time on the second communication device acquired from the second communication device and the time output by the timepiece and stores the difference in a storage unit;
The first communication device side key generation unit uses, as the common time, a time obtained by adding the time output from the clock and the difference stored in the storage unit,
The second communication device uses a time output by a clock included in the device as the common time.
Communications system.
前記第1の通信装置が、
互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、
前記第1の通信装置において生成された鍵データを用いてデータを暗号化し、
前記暗号化されたデータを前記第2の通信装置に送信し、
前記第2の通信装置が、
前記暗号化されたデータを前記第1の通信装置から受信し、
前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、
前記第2の通信装置において生成された鍵データを用いて前記暗号化されたデータを復
号し、
前記復号されたデータが所定のデータと一致するか否かを判定し、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記第2の通信装置において前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定する、
通信方法。 A communication method performed by a communication system including a first communication device and a second communication device,
The first communication device is
Key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding a fraction less than a common time between the own device and the second communication device. Produces
Encrypting the data using the key data generated in the first communication device;
Sending the encrypted data to the second communication device;
The second communication device is
Receiving the encrypted data from the first communication device;
From the plurality of calculation procedures, generate key data by a process including selecting one or more calculation procedures based on a time obtained by rounding the fraction of the common time.
Decrypting the encrypted data using the key data generated in the second communication device ;
It is determined whether or not the decoded data matches the predetermined data, and in the determination, if the decoded data does not match the predetermined data,
From the plurality of calculation procedures, generate key data generated by a process including selecting one or more calculation procedures based on a time shifted by a predetermined amount from a time when the fractional processing of less than the common time is performed,
Using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount in the second communication device, the decrypted data matches the predetermined data. Determine again whether or not
Communication method.
前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号する復号部と、
前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、
該認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記鍵生成部は、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、
通信装置。 A key generation unit that generates key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a time from a plurality of different calculation procedures;
A decryption unit for decrypting encrypted data that is data received from another device using the generated key data;
An authentication unit that performs authentication by determining whether or not the decrypted data matches predetermined data,
In the determination by the authentication unit, when the decrypted data does not match the predetermined data,
The key generation unit generates key data generated by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a time obtained by rounding a fractional part of the time by a predetermined amount. Produces
The authentication unit uses the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, and the data decrypted by the decryption unit matches the predetermined data Determine again whether or not to
Communication device.
互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成させ、
前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化された
データを復号させ、
前記復号されたデータが所定のデータと一致するか否かを判定させ、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成させ、
前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定させる、
通信プログラム。 In the communication device,
Key data is generated by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction of a time from a plurality of different calculation procedures,
Using the generated key data, the data received from another device, the encrypted data is decrypted,
In the case where the decrypted data does not match the predetermined data in the determination, it is determined whether or not the decrypted data matches the predetermined data.
From the plurality of calculation procedures, generate key data generated by a process including selecting one or more calculation procedures based on a time shifted by a predetermined amount from the time when the fractional processing of the time is less than a minute,
Using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, it is determined again whether or not the decrypted data matches the predetermined data. ,
Communication program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012251172A JP5997588B2 (en) | 2012-11-15 | 2012-11-15 | COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012251172A JP5997588B2 (en) | 2012-11-15 | 2012-11-15 | COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014099793A JP2014099793A (en) | 2014-05-29 |
JP5997588B2 true JP5997588B2 (en) | 2016-09-28 |
Family
ID=50941455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012251172A Active JP5997588B2 (en) | 2012-11-15 | 2012-11-15 | COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5997588B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI694707B (en) * | 2016-10-03 | 2020-05-21 | 日商日本電氣股份有限公司 | Communication device, communication method, communication system and recording medium |
US11528260B2 (en) | 2018-09-20 | 2022-12-13 | Sony Semiconductor Solutions Corporation | Transmitting device and transmitting method, and receiving device and receiving method |
US10826912B2 (en) * | 2018-12-14 | 2020-11-03 | Daniel Chien | Timestamp-based authentication |
US11677754B2 (en) | 2019-12-09 | 2023-06-13 | Daniel Chien | Access control systems and methods |
CN112073188B (en) * | 2020-08-31 | 2023-01-24 | 北京市商汤科技开发有限公司 | Authentication method, device, equipment and computer readable storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61194940A (en) * | 1985-02-22 | 1986-08-29 | Nec Corp | Data communication equipment |
JP2689383B2 (en) * | 1988-02-18 | 1997-12-10 | 株式会社 日立製作所 | Encrypted communication system |
JPH06282504A (en) * | 1993-03-30 | 1994-10-07 | Mitsubishi Electric Corp | Time control system |
JP4815855B2 (en) * | 2005-04-20 | 2011-11-16 | ブラザー工業株式会社 | Encryption key setting device |
-
2012
- 2012-11-15 JP JP2012251172A patent/JP5997588B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014099793A (en) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022206349A1 (en) | Information verification method, related apparatus, device, and storage medium | |
US20230269241A1 (en) | Secure multi-party protocol | |
EP3420677B1 (en) | System and method for service assisted mobile pairing of password-less computer login | |
CN109150499B (en) | Method and device for dynamically encrypting data, computer equipment and storage medium | |
KR101130415B1 (en) | A method and system for recovering password protected private data via a communication network without exposing the private data | |
US10164963B2 (en) | Enforcing server authentication based on a hardware token | |
JP6399382B2 (en) | Authentication system | |
KR20180053701A (en) | Local device authentication | |
US20130019299A1 (en) | Distributed Authentication with Data Cloud | |
JP5997588B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM | |
US20170279798A1 (en) | Multi-factor authentication system and method | |
JP5206992B2 (en) | Authentication system, authentication device, terminal device, authentication method, and program | |
KR20160066728A (en) | Nfc package for storing biometric information and electronic device | |
WO2019120038A1 (en) | Encrypted storage of data | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
JP3833652B2 (en) | Network system, server device, and authentication method | |
JP2007058487A (en) | Log-in information management device and method | |
CN113507482B (en) | Data security transmission method, security transaction method, system, medium and equipment | |
CN107548542B (en) | User authentication method with enhanced integrity and security | |
CN113329004B (en) | Authentication method, system and device | |
JP2007060581A (en) | Information management system and method | |
WO2017029708A1 (en) | Personal authentication system | |
CN112150151B (en) | Secure payment method, apparatus, electronic device and storage medium | |
JP2019057827A (en) | Distributed authentication system and program | |
JP2012128726A (en) | Network authentication system, network authentication method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160408 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160721 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20160803 |
|
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: 20160823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160826 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5997588 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |