JP2024093467A - Authentication device, authentication method, and authentication program - Google Patents

Authentication device, authentication method, and authentication program

Info

Publication number
JP2024093467A
JP2024093467A JP2022209859A JP2022209859A JP2024093467A JP 2024093467 A JP2024093467 A JP 2024093467A JP 2022209859 A JP2022209859 A JP 2022209859A JP 2022209859 A JP2022209859 A JP 2022209859A JP 2024093467 A JP2024093467 A JP 2024093467A
Authority
JP
Japan
Prior art keywords
data
encryption algorithm
algorithm
seed value
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022209859A
Other languages
Japanese (ja)
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.)
KDDI Corp
Original Assignee
KDDI Corp
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Publication of JP2024093467A publication Critical patent/JP2024093467A/en
Pending legal-status Critical Current

Links

Abstract

【課題】ポーティング層を経由した通信を不正から保護できる認証システムを提供すること。
【解決手段】サーバ10は、ユーザの端末20に対して、データ送信処理を含む所定のプログラムを提供する際に、当該データ送信処理に組み込むための暗号化アルゴリズムを、ランダムなシード値に基づいて生成するアルゴリズム生成部111と、生成された暗号化アルゴリズムを含むプログラムを端末20へ送信するプログラム送信部112と、端末20から暗号化アルゴリズムにより暗号化されたデータを受信すると、シード値を用いて生成された暗号化アルゴリズムに対応する復号アルゴリズムにより、暗号化されたデータを復号するデータ復号部113と、を備え、データ復号部113により復号できたことによって暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する。
【選択図】図1

An authentication system capable of protecting communications via a porting layer from fraud is provided.
[Solution] When providing a specific program including a data transmission process to a user's terminal 20, the server 10 is equipped with an algorithm generation unit 111 that generates an encryption algorithm to be incorporated into the data transmission process based on a random seed value, a program transmission unit 112 that transmits a program including the generated encryption algorithm to the terminal 20, and a data decryption unit 113 that, when receiving data encrypted by an encryption algorithm from the terminal 20, decrypts the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated using the seed value, and after authenticating the authenticity of the encrypted data by being able to decrypt it by the data decryption unit 113, obtains the decrypted data.
[Selected Figure] Figure 1

Description

本発明は、端末で実行されるプログラムにより生成された通信データを保護し、その正当性を認証するシステムに関する。 The present invention relates to a system that protects communication data generated by a program executed on a terminal and authenticates its validity.

従来、インターネットを介したサービスを提供するにあたり、オンラインの不正行為への対策が不可欠となっている。例えば、非特許文献1において、不正利用の可能性があるアカウントに対して電話又は電子メールによる検証等の追加チェックを行う認証システムが紹介されている。 Conventionally, measures against online fraudulent activities have become essential when providing services via the Internet. For example, Non-Patent Document 1 introduces an authentication system that performs additional checks such as verification by telephone or email for accounts that may be subject to fraudulent use.

Amazon Fraud Detector、インターネット<https://aws.amazon.com/jp/fraud-detector/>Amazon Fraud Detector, Internet <https://aws.amazon.com/jp/fraud-detector/>

サーバからクライアント端末へプログラムを配布する際に、このプログラムを保護する方策は、知的財産保護や不正攻撃対策として重要になっている。この際に、例えば、WASMのように比較的リバースエンジニアリングに対して強いコンパイル型のプログラムを、比較的脆弱なJavaScript(登録商標)のようなスクリプト層にポーティングする場合におけるプログラムの保護が課題となっている。
この場合、コンパイル型のプログラム部が独立した形で存在し、露出したポーティング層(OS、ブラウザ、ランタイム等)において外部との入出力を制御(フック)可能であることにより、コンパイル型のプログラム部をブラックボックス的に用いる攻撃を考慮した設計が必要となっている。しかしながら、このような設計は困難であり、こうした脆弱なポーティング層を守る手法が求められている。
When a program is distributed from a server to a client terminal, measures to protect the program are important as a measure to protect intellectual property and to prevent unauthorized attacks. In this case, for example, protection of the program is an issue when porting a compiled program such as WASM, which is relatively resistant to reverse engineering, to a script layer such as JavaScript (registered trademark), which is relatively vulnerable.
In this case, the compiled program part exists independently, and the exposed porting layer (OS, browser, runtime, etc.) can control (hook) input and output with the outside, so it is necessary to design it in consideration of attacks that use the compiled program part as a black box. However, such a design is difficult, and a method for protecting such a vulnerable porting layer is required.

本発明は、ポーティング層を経由した通信を不正から保護できる認証システムを提供することを目的とする。 The present invention aims to provide an authentication system that can protect communications via the porting layer from fraud.

本発明に係る認証装置は、ユーザの端末に対して、データ送信処理を含む所定のプログラムを提供する際に、当該データ送信処理に組み込むための暗号化アルゴリズムを、ランダムなシード値に基づいて生成するアルゴリズム生成部と、生成された前記暗号化アルゴリズムを含む前記プログラムを、前記端末へ送信するプログラム送信部と、
前記端末から前記暗号化アルゴリズムにより暗号化されたデータを受信すると、前記シード値を用いて生成された前記暗号化アルゴリズムに対応する復号アルゴリズムにより、前記暗号化されたデータを復号するデータ復号部と、を備え、
前記データ復号部により復号できたことによって前記暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する。
The authentication device according to the present invention includes an algorithm generating unit that generates an encryption algorithm to be incorporated into a data transmission process based on a random seed value when providing a predetermined program including a data transmission process to a user terminal, and a program transmitting unit that transmits the program including the generated encryption algorithm to the terminal;
a data decryption unit that, when receiving data encrypted by the encryption algorithm from the terminal, decrypts the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated by using the seed value,
The authenticity of the encrypted data is verified by the data decryption unit being able to decrypt the data, and the decrypted data is then acquired.

前記プログラムは、前記シード値を含み、前記データ復号部は、前記暗号化されたデータと共に、前記シード値を前記端末から受信してもよい。 The program may include the seed value, and the data decryption unit may receive the seed value from the terminal along with the encrypted data.

前記アルゴリズム生成部は、前記シード値と対応付けて、前記暗号化アルゴリズムの生成時刻を保存し、前記データ復号部は、受信した前記シード値に対応して保存されている前記生成時刻に対して、所定の有効期限内のデータのみを受け付けてもよい。 The algorithm generation unit may store a generation time of the encryption algorithm in association with the seed value, and the data decryption unit may only accept data that is within a predetermined expiration date for the generation time stored in association with the received seed value.

前記アルゴリズム生成部は、前記シード値と対応付けて、前記ユーザのアカウントを保存し、前記データ復号部は、受信した前記シード値に対応して保存されているアカウントに紐づくデータのみを受け付けてもよい。 The algorithm generation unit may store the user's account in association with the seed value, and the data decryption unit may accept only data associated with the account stored in association with the received seed value.

前記アルゴリズム生成部は、前記暗号化アルゴリズムの中で、数値変換のための変換テーブルの要素を、前記シード値に基づいてランダムに入れ替えてもよい。 The algorithm generation unit may randomly replace elements of a conversion table for numeric conversion in the encryption algorithm based on the seed value.

前記アルゴリズム生成部は、前記暗号化アルゴリズムに対応する前記復号アルゴリズムを前記プログラムに含め、前記認証装置は、前記端末へ送信するデータを前記暗号化アルゴリズムにより暗号化することにより、前記プログラムを有する前記端末でのみ復号可能としてもよい。 The algorithm generation unit may include the decryption algorithm corresponding to the encryption algorithm in the program, and the authentication device may encrypt data to be sent to the terminal using the encryption algorithm, so that the data can be decrypted only by the terminal having the program.

本発明に係る認証方法は、ユーザの端末に対して、データ送信処理を含む所定のプログラムを提供する際に、当該データ送信処理に組み込むための暗号化アルゴリズムを、ランダムなシード値に基づいて生成するアルゴリズム生成ステップと、生成された前記暗号化アルゴリズムを含む前記プログラムを、前記端末へ送信するプログラム送信ステップと、前記端末から前記暗号化アルゴリズムにより暗号化されたデータを受信すると、前記シード値を用いて生成された前記暗号化アルゴリズムに対応する復号アルゴリズムにより、前記暗号化されたデータを復号するデータ復号ステップと、をコンピュータが実行し、前記データ復号ステップにおいて復号できたことによって、前記コンピュータが前記暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する。 The authentication method according to the present invention includes an algorithm generation step of generating an encryption algorithm to be incorporated into a data transmission process based on a random seed value when providing a predetermined program including a data transmission process to a user terminal, a program transmission step of transmitting the program including the generated encryption algorithm to the terminal, and a data decryption step of decrypting the encrypted data using a decryption algorithm corresponding to the encryption algorithm generated using the seed value when data encrypted by the encryption algorithm is received from the terminal. When the data is decrypted in the data decryption step, the computer authenticates the authenticity of the encrypted data and obtains the decrypted data.

本発明に係る認証プログラムは、前記認証装置としてコンピュータを機能させるためのものである。 The authentication program according to the present invention is for causing a computer to function as the authentication device.

本発明によれば、端末からサーバへのポーティング層を経由した通信を不正から保護できる。 According to the present invention, communication from a terminal to a server via a porting layer can be protected from fraud.

実施形態における認証システムの機能構成を示す図である。FIG. 1 is a diagram illustrating a functional configuration of an authentication system according to an embodiment. 実施形態における認証システムにおける通信の手順を示すシーケンス図である。4 is a sequence diagram showing a communication procedure in the authentication system according to the embodiment. FIG. 実施形態におけるワンタイム暗号化アルゴリズムの基になるAESの暗号化アルゴリズムの概要を示す図である。FIG. 2 is a diagram showing an overview of the AES encryption algorithm on which the one-time encryption algorithm in the embodiment is based.

以下、本発明の実施形態の一例について説明する。
本実施形態の認証システムは、認証装置から端末に提供されたプログラムにより生成された正常な通信データであることを、ワンタイム暗号アルゴリズムをプログラムに組み込むことにより認証装置が認証する。
An example of an embodiment of the present invention will now be described.
In the authentication system of this embodiment, the authentication device authenticates that communication data generated by a program provided from the authentication device to the terminal is normal by incorporating a one-time encryption algorithm into the program.

図1は、本実施形態における認証システム1の機能構成を示す図である。
認証システム1は、プログラムを提供するサーバ10(認証装置)と、提供されたプログラムを実行してサーバ10と通信する端末20とを備える。
FIG. 1 is a diagram showing the functional configuration of an authentication system 1 according to the present embodiment.
The authentication system 1 includes a server 10 (authentication device) that provides a program, and a terminal 20 that executes the provided program and communicates with the server 10 .

端末20は、ユーザが操作し所定のプログラムを実行するパーソナルコンピュータ、タブレット、スマートフォン等の情報処理装置である。
この端末20には、サーバ10から提供されたプログラムを実行することによりサーバ10と通信する際に、外部との通信を仲介するポーティング層が設けられている。このため、プログラムの実行によりサーバ10へ送信するデータは、プログラムに組み込まれたワンタイム暗号化アルゴリズムにより暗号化される。
The terminal 20 is an information processing device such as a personal computer, a tablet, or a smartphone that is operated by a user and executes a predetermined program.
This terminal 20 is provided with a porting layer that mediates communication with the outside when communicating with the server 10 by executing a program provided by the server 10. Therefore, data transmitted to the server 10 by executing the program is encrypted by a one-time encryption algorithm incorporated in the program.

サーバ10は、制御部11及び記憶部12の他、各種の入出力インタフェース等を備えた情報処理装置であり、端末20に提供したプログラムが実行されることにより、端末20から受信されるデータの正当性を認証しつつ、暗号化通信を行う。 The server 10 is an information processing device equipped with a control unit 11, a memory unit 12, various input/output interfaces, etc., and performs encrypted communication while authenticating the validity of data received from the terminal 20 by executing a program provided to the terminal 20.

制御部11は、サーバ10の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部11は、CPUであってよい。 The control unit 11 is a part that controls the entire server 10, and realizes each function in this embodiment by appropriately reading and executing various programs stored in the storage unit 12. The control unit 11 may be a CPU.

記憶部12は、ハードウェア群をサーバ10として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。 The memory unit 12 is a storage area for various programs and various data for causing the hardware group to function as the server 10, and may be a ROM, RAM, flash memory, hard disk drive (HDD), etc.

制御部11は、アルゴリズム生成部111と、プログラム送信部112と、データ復号部113とを備える。 The control unit 11 includes an algorithm generation unit 111, a program transmission unit 112, and a data decoding unit 113.

アルゴリズム生成部111は、ユーザの端末20に対して、データ送信処理を含む所定のプログラムを提供する際に、このデータ送信処理に組み込むためのワンタイム暗号化アルゴリズムを、ランダムなシード値に基づいて生成する。
例えば、アルゴリズム生成部111は、ログイン等のユーザ認証結果に応じて、ユーザID及び時刻情報(ワンタイム暗号化アルゴリズムの生成時刻)と紐づけたランダムなシード値に基づいて、後述の通りワンタイム暗号化アルゴリズムを生成する。
When providing a predetermined program including a data transmission process to the user's terminal 20, the algorithm generation unit 111 generates a one-time encryption algorithm to be incorporated into the data transmission process based on a random seed value.
For example, the algorithm generation unit 111 generates a one-time encryption algorithm as described below based on a random seed value linked to a user ID and time information (the time the one-time encryption algorithm was generated) in response to the result of user authentication such as login.

プログラム送信部112は、生成されたワンタイム暗号化アルゴリズムと、このワンタイム暗号化アルゴリズムを生成する際に用いたシード値とを含むプログラムを、端末20へ送信する。 The program transmission unit 112 transmits to the terminal 20 a program including the generated one-time encryption algorithm and the seed value used to generate the one-time encryption algorithm.

このプログラムは、ユーザ環境上で実行したいプログラム(例えば、ゲーム等のアプリケーションプログラム)であり、実行中にサーバ10に対して送信するデータの暗号化処理に対して、ワンタイム暗号化アルゴリズムが組み込まれ、ユーザ毎、又はプログラムのアップデート等、所定のタイミングで提供される。
端末20は、プログラムを実行することにより、通信開始時にID及び生成時刻と紐づけられているシード値をサーバ10に送信した後、ワンタイム暗号化アルゴリズムを用いてサーバ10と暗号化通信を行う。
This program is a program that is desired to be executed in the user environment (for example, an application program such as a game), and a one-time encryption algorithm is incorporated into the encryption process of data sent to the server 10 during execution, and the program is provided at a specified time, such as for each user or when the program is updated.
By executing the program, the terminal 20 transmits a seed value linked to an ID and a generation time to the server 10 at the start of communication, and then performs encrypted communication with the server 10 using a one-time encryption algorithm.

データ復号部113は、端末20から暗号化されたデータを受信すると、シード値を用いて生成されたワンタイム暗号化アルゴリズムに対応する復号アルゴリズムにより、暗号化されたデータを復号する。
制御部11は、データ復号部113により受信データを復号できたことによって暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する。
When the data decryption unit 113 receives encrypted data from the terminal 20, the data decryption unit 113 decrypts the encrypted data using a decryption algorithm corresponding to the one-time encryption algorithm generated using the seed value.
The control unit 11 authenticates the validity of the encrypted data by the data decryption unit 113 being able to decrypt the received data, and then acquires the decrypted data.

なお、暗号化されたデータに対応するシード値は、端末20からサーバ10へ通知されることとしてよいが、これには限られない。例えば、受信時刻に有効なシード値、あるいは、ユーザIDに紐づくシード値が、アルゴリズム生成部111により保存された情報から抽出されてもよい。 The seed value corresponding to the encrypted data may be notified from the terminal 20 to the server 10, but is not limited to this. For example, a seed value that is valid at the time of reception, or a seed value associated with a user ID, may be extracted from the information stored by the algorithm generation unit 111.

ここで、アルゴリズム生成部111により、シード値と対応付けて、ワンタイム暗号化アルゴリズムの生成時刻が保存された場合、データ復号部113は、受信したシード値に対応して保存されている生成時刻に対して、所定の有効期限内のデータのみを受信し、有効期限を超えている場合通信を拒否する。 Here, when the algorithm generation unit 111 stores the generation time of the one-time encryption algorithm in association with the seed value, the data decryption unit 113 receives only data that is within a predetermined expiration date for the generation time stored in correspondence with the received seed value, and rejects communication if the expiration date has been exceeded.

また、アルゴリズム生成部111により、シード値と対応付けて、ユーザのアカウント情報(例えば、ユーザID)が保存された場合、データ復号部113は、受信したシード値に対応して保存されているアカウントに紐づくデータのみを受信する。すなわち、サーバ10は、暗号化通信を行う際に、シード値に紐づいたアカウントを確認し、その後、この通信において紐づいたアカウント以外での利用ができないようにする。 In addition, when the algorithm generation unit 111 stores the user's account information (e.g., user ID) in association with the seed value, the data decryption unit 113 receives only the data associated with the account stored in association with the received seed value. In other words, when performing encrypted communication, the server 10 checks the account associated with the seed value, and subsequently prevents the communication from being used by any account other than the associated account.

なお、端末20は、サーバ10から認証情報を事前に受け取っているものとする。この認証情報は、サーバ10からランダムに発行されたユーザ識別子に類するものでもよく、ID/パスワード等のログイン認証に応じて発行された認証情報でもよい。
また、サーバ10は、この暗号化通信により、ログイン等のアカウントを特定する認証を行う場合、ワンタイム暗号化アルゴリズムの生成に用いたシード値に紐付けられているアカウントと同一でない場合にログインを許可しない。
It is assumed that the terminal 20 has received authentication information in advance from the server 10. This authentication information may be something like a user identifier randomly issued by the server 10, or may be authentication information issued in response to login authentication such as an ID/password.
In addition, when the server 10 performs authentication to identify an account for login, etc. through this encrypted communication, the server 10 will not allow login if the account is not the same as the account linked to the seed value used to generate the one-time encryption algorithm.

図2は、本実施形態における認証システム1における通信の手順を示すシーケンス図である。 Figure 2 is a sequence diagram showing the communication procedure in authentication system 1 in this embodiment.

ステップS1において、端末20は、サーバ10により発行された認証情報をサーバ10に送信することにより、プログラム全体、又は暗号化アルゴリズムを含む少なくとも一部の配信を要求する。 In step S1, the terminal 20 requests delivery of the entire program or at least a part of it including the encryption algorithm by transmitting authentication information issued by the server 10 to the server 10.

ステップS2において、サーバ10は、端末20との暗号化通信に先立って、ワンタイム暗号化アルゴリズム、及びこのワンタイム暗号化アルゴリズムに紐づいたシード値を含むプログラムを配信する。 In step S2, prior to encrypted communication with the terminal 20, the server 10 distributes a program including a one-time encryption algorithm and a seed value associated with the one-time encryption algorithm.

ステップS3において、端末20は、配信されたプログラムに従って、サーバ10との暗号化通信に先立って、シード値をサーバ10に送信する。 In step S3, the terminal 20 transmits a seed value to the server 10 in accordance with the distributed program prior to encrypted communication with the server 10.

ステップS4において、端末20は、配信されたプログラムに従って、シード値に紐づいたワンタイム暗号化アルゴリズムでデータを暗号化してサーバ10へ送信する。 In step S4, the terminal 20 encrypts the data using a one-time encryption algorithm linked to the seed value in accordance with the distributed program and transmits the data to the server 10.

ここで、ワンタイム暗号化アルゴリズムを内包するワンタイムプログラムの生成方法は限定されず、動的に暗号化アルゴリムを生成できる手法であればよい。一例として、AES(Advanced Encryption Standard)の暗号化アルゴリズムを変換して動的に暗号化アルゴリムを生成する方法を示す。 Here, the method of generating a one-time program that includes a one-time encryption algorithm is not limited, and any method that can dynamically generate an encryption algorithm will suffice. As an example, a method of dynamically generating an encryption algorithm by converting the encryption algorithm of AES (Advanced Encryption Standard) will be shown.

図3は、本実施形態におけるワンタイム暗号化アルゴリズムの基になるAESの暗号化アルゴリズムの概要を示す図である。 Figure 3 shows an overview of the AES encryption algorithm that is the basis of the one-time encryption algorithm in this embodiment.

まず、暗号鍵(Cipherkey)が拡張され、例えば鍵長が256ビットの場合、ラウンド鍵(Roundkey)[0]~[14]が生成される。
暗号化対象の平文(Plaintext)は、ラウンド鍵[0]とXOR演算された後、4つの処理(SubBytes、ShiftRows、MixColumns、AddRoundkey)から構成される1ラウンドを14回繰り返すことで、暗号文(Ciphertext)が出力される。
First, the cipherkey is expanded, and when the key length is, for example, 256 bits, round keys [0] to [14] are generated.
The plaintext to be encrypted is XORed with the round key [0], and then a round consisting of four processes (SubBytes, ShiftRows, MixColumns, AddRoundkey) is repeated 14 times to output the ciphertext.

ここで、SubBytesは、数値を1バイト単位に一定の方法でそれぞれ置換することを示している。
AESにおいては、この置換にはある一つの方法(固定のS-boxによる置換)が定められているが、厳密な耐タンパ性に対する考慮を犠牲にすれば、例えば、次のように無数の入れ替えパターンにより新たな暗号化アルゴリズムを生成できる。
Here, SubBytes indicates that the numerical value is replaced in units of one byte in a certain manner.
In AES, one method for this substitution (substitution using a fixed S-box) is defined; however, if strict consideration of tamper resistance is sacrificed, a new encryption algorithm can be generated using an infinite number of substitution patterns, for example, as follows:

すなわち、アルゴリズム生成部111は、暗号化アルゴリズムの中で、数値変換のための変換テーブル(行列)の要素を、シード値に基づいてランダムに入れ替える。
例えば、置換を行わないテーブルをF(0)とする。そして、テーブルのある位置(x,y)の値を、シード値を元に算出されたランダムな別の位置(x’,y’)の値と入れ替えたものをF(1)としたとき、テーブルの全ての値についてこの操作を行なったF(X×Y)を、新たなSubBytesであるSubBytes’の変換テーブルとする。
That is, the algorithm generation unit 111 randomly replaces elements of a conversion table (matrix) for numeric conversion in the encryption algorithm based on a seed value.
For example, let F(0) be a table in which no replacement is performed. If F(1) is a table in which a value at a certain position (x, y) in the table has been replaced with a value at another position (x', y') that is randomly calculated based on a seed value, then F(X×Y), which is the result of performing this operation on all values in the table, is the conversion table for SubBytes', which is the new SubBytes.

新たな変換テーブルの生成方法は、これに限られず、例えば、既存の変換テーブル(S-box)をF(0)として同様の操作を行ってもよい。また、入れ替え操作の回数は、増減されてもよいし、全ての要素が1回以上入れ替えられた時点で終了するなど、終了条件は適宜設定されてよい。
このようにして生成されたSubBytes’を用いることで、AESを元に新たな暗号化アルゴリズムが得られる。
The method of generating a new conversion table is not limited to this, and for example, a similar operation may be performed with an existing conversion table (S-box) as F(0). In addition, the number of replacement operations may be increased or decreased, and a termination condition may be set as appropriate, such as terminating the operation when all elements have been replaced at least once.
By using the SubBytes' thus generated, a new encryption algorithm is obtained based on AES.

なお、ワンタイム生成される暗号化ロジックには鍵データも必要である。鍵そのもの又は鍵データを算出するためのデータは、暗号化ロジック内に含まれてもよいし、本体プログラムから受け取るようにしてもよい。
暗号化ロジック内に鍵データも含めた場合には、鍵データを何らかの計算結果から算出する等、プログラム上で発見しづらくすることもできるが、本手法では暗号化ロジックそのものが毎回異なることを安全性の根拠としているため、たとえ鍵データが発見されたとしても十分な安全性が確保される。
また、暗号化ロジックから復号ロジックを生成される可能性を考慮して、例えばSSL(Secure Socket Layer)と同等の保護範囲において安全性強度を維持するため、プログラム送信部112は、暗号化ロジックをSSLで配信してもよい。
The encryption logic that is generated one time also requires key data. The key itself or data for calculating the key data may be included in the encryption logic, or may be received from the main program.
If key data is included in the encryption logic, it is possible to make the key data more difficult to discover in the program, for example by calculating it from some kind of calculation result. However, the security of this method is based on the fact that the encryption logic itself is different each time, so sufficient security is ensured even if the key data is discovered.
In addition, taking into consideration the possibility that decryption logic may be generated from encryption logic, in order to maintain security strength within the same protection range as, for example, SSL (Secure Socket Layer), the program transmission unit 112 may distribute the encryption logic using SSL.

本実施形態によれば、サーバ10は、ワンタイム暗号化アルゴリズムを、ランダムなシード値に基づいて生成し、このワンタイム暗号化アルゴリズム、及びシード値を含むプログラムを端末20へ送信する。
これにより、サーバ10は、シード値及び暗号化された正当なデータを受信すると、シード値を用いて生成されたワンタイム暗号化アルゴリズムに対応する復号アルゴリズムにより、暗号化されたデータを復号できるので、このように復号できたことによって暗号化されたデータの正当性を認証したうえで、復号されたデータを取得できる。
According to this embodiment, the server 10 generates a one-time encryption algorithm based on a random seed value, and transmits a program including this one-time encryption algorithm and the seed value to the terminal 20 .
As a result, when the server 10 receives the seed value and the encrypted, legitimate data, it can decrypt the encrypted data using a decryption algorithm that corresponds to the one-time encryption algorithm generated using the seed value.By being able to decrypt the data in this manner, it is possible to authenticate the authenticity of the encrypted data and then obtain the decrypted data.

認証システム1における安全性の根拠は、攻撃者が暗号化アルゴリズムを入手した場合でも、この暗号化アルゴリズムからその逆操作となる復号アルゴリズムを短時間で得ることが難しいことにある。
従来のシステムでは、攻撃者は、例えば図4のように、自らの保有する端末上のプログラムを書き換えてCA証明書を入れ替えることで、プロクシサーバでの中間者攻撃が可能であった。これに対して、本実施形態では、サーバ10から暗号化アルゴリズムそのものが与えられるため、攻撃者は、暗号化アルゴリズムのみから復号アルゴリズムを作成する必要があるが、これは従来のCA証明書の入れ替えと比較して困難である。一方で、暗号化アルゴリズムを自動生成するサーバ10では容易に複号が可能である。
The basis for the security of the authentication system 1 is that even if an attacker obtains an encryption algorithm, it is difficult for him to obtain, in a short period of time, a decryption algorithm, which is the inverse operation of the encryption algorithm.
In conventional systems, an attacker could perform a man-in-the-middle attack on a proxy server by rewriting a program on a terminal owned by the attacker and replacing the CA certificate, as shown in Fig. 4. In contrast, in this embodiment, the encryption algorithm itself is provided by the server 10, so the attacker must create a decryption algorithm from only the encryption algorithm, which is more difficult than the conventional replacement of the CA certificate. On the other hand, the server 10, which automatically generates the encryption algorithm, makes it easy to decrypt.

このように、端末20で実行される保護対象のプログラムがサーバ10へ送信するデータは、サーバ10以外の攻撃者が復号困難となっている。したがって、認証システム1は、端末20におけるポーティング層を経由した通信を不正から保護できる。
この結果、例えば、フィッシング検知等のための認証用プログラムを保護すれば安全強度の向上が期待でき、ゲーム等のアプリケーションプログラムを保護すれば、チート等の不正対策となりユーザ体験の向上が期待できる。
In this way, data transmitted to the server 10 by a program to be protected executed on the terminal 20 is difficult to decrypt by an attacker other than the server 10. Therefore, the authentication system 1 can protect communication via the porting layer in the terminal 20 from fraud.
As a result, for example, by protecting authentication programs for phishing detection, etc., it is possible to expect improved security, and by protecting application programs for games, etc., it is possible to prevent fraudulent activities such as cheating, and it is expected that the user experience will be improved.

端末20に送信されるプログラムは、暗号化アルゴリズムの生成に用いられたシード値を含んでもよく、これにより、サーバ10は、暗号化されたデータと共に、シード値を端末20から受信し、このシード値に対応した暗号化アルゴリズム及び復号アルゴリズムを容易に特定できる。 The program sent to the terminal 20 may include a seed value used to generate the encryption algorithm, so that the server 10 can receive the seed value from the terminal 20 along with the encrypted data and easily identify the encryption algorithm and decryption algorithm that correspond to this seed value.

サーバ10は、シード値と対応付けて、ワンタイム暗号化アルゴリズムの生成時刻を保存してもよい。
本実施形態のワンタイム暗号化アルゴリズムのみから復号プログラムを作成することは困難ではあるものの、この暗号方式は、基にした暗号方式を前述のように改変したことから耐タンパ性が完全に保証されるものではなくなった。つまり、一定の期間で破られる可能性を考慮すると、この一定期間より短い期間で方式を変更する必要がある。サーバ10は、受信したシード値に対応して保存されている生成時刻に対して、所定の有効期限内のデータのみを受け付けることで、安全性を向上できる。
The server 10 may store the generation time of the one-time encryption algorithm in association with the seed value.
Although it is difficult to create a decryption program from only the one-time encryption algorithm of this embodiment, the encryption method is no longer completely tamper-resistant because the encryption method on which it is based has been modified as described above. In other words, considering the possibility that it may be broken within a certain period of time, it is necessary to change the method at a period shorter than this certain period. The server 10 can improve security by accepting only data within a predetermined expiration date with respect to the generation time stored in correspondence with the received seed value.

サーバ10は、シード値と対応付けてユーザのアカウント情報を保存し、受信したシード値に対応して保存されているアカウントに紐づくデータのみを受信してもよい。
これにより、暗号解読に要する期間が想定以上に短い場合にも対応可能となる。すなわち、たとえ暗号化アルゴリズムから復号プログラムを作成できた場合でも、この暗号方式が利用されるのはある一つのアカウントに限定される。このため、例えば復号プログラムを用いて元プログラムの意図しないデータを送信するチートプログラムを開発した場合でも、これを幅広いユーザが利用可能なものとして配布できない。さらに、暗号化アルゴリズムの生成方式はサーバ10内に閉じており、攻撃者から見えることはない。このため、攻撃者は、どのアカウントにいつどのような暗号化アルゴリズムが適用されるかを事前に知ることができない。
The server 10 may store the user's account information in association with the seed value, and receive only the data associated with the account stored in association with the received seed value.
This makes it possible to cope with cases where the time required for decryption is shorter than expected. In other words, even if a decryption program can be created from the encryption algorithm, the use of this encryption method is limited to one account. For this reason, even if a cheat program that uses the decryption program to transmit data not intended by the original program is developed, it cannot be distributed as something that can be used by a wide range of users. Furthermore, the method of generating the encryption algorithm is closed within the server 10 and cannot be seen by an attacker. For this reason, an attacker cannot know in advance when and what encryption algorithm will be applied to which account.

サーバ10は、例えばAESのS-boxのように変換テーブルが用いられる方式を用いると、数値変換のための変換行列の要素を、シード値に基づいてランダムに入れ替えることにより、互いに異なるワンタイム暗号化アルゴリズムを、容易に多数生成することができる。 When the server 10 uses a method that uses a conversion table, such as the S-box of AES, it can easily generate a large number of different one-time encryption algorithms by randomly replacing the elements of the conversion matrix for numerical conversion based on a seed value.

本実施形態では、端末20からの送信データのみを暗号化する構成を説明したが、通常の暗号化は送信データ及び受信データの両方に適用される双方向のものである。
これに合わせて、サーバ10は、ワンタイム暗号化アルゴリズムと同様に、ワンタイム復号アルゴリズムをプログラムに含めて配信してもよい。これにより、サーバ10は、端末20へ送信するデータをワンタイム暗号化アルゴリズムにより暗号化し、配信したプログラムを有する端末20でのみ復号可能とする。さらに、送受信で暗号方式が異なるように構成されてもよい。この結果、双方向の安全な暗号化通信が実現される。
In this embodiment, a configuration has been described in which only the data transmitted from the terminal 20 is encrypted, but normal encryption is a two-way encryption that is applied to both the transmitted data and the received data.
In accordance with this, the server 10 may distribute a one-time decryption algorithm included in a program, similar to the one-time encryption algorithm. As a result, the server 10 encrypts data to be transmitted to the terminal 20 using the one-time encryption algorithm, and the data can be decrypted only by the terminal 20 having the distributed program. Furthermore, the encryption method may be different for transmission and reception. As a result, secure two-way encrypted communication is realized.

なお、本実施形態によれば、例えば、プログラムの意図しない送信データをサーバ10との通信に挿入するといった攻撃も考えられる。しかしながら、このような攻撃は、例えばプログラムが生成する送信データそれぞれにデータ順を示す値を付与することでサーバ10において検知可能である。 Note that, according to this embodiment, an attack may occur in which unintended transmission data of the program is inserted into communication with the server 10. However, such an attack can be detected by the server 10, for example, by assigning a value indicating the data order to each piece of transmission data generated by the program.

本実施形態によれば、例えば、不正なデータ通信を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。 According to this embodiment, for example, unauthorized data communications can be suppressed, which makes it possible to contribute to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation."

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Furthermore, the effects described in the above-described embodiments are merely a list of the most favorable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.

サーバ10(認証装置)による認証方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The authentication method by the server 10 (authentication device) is realized by software. When realized by software, the programs that make up this software are installed in an information processing device (computer). These programs may be recorded on removable media such as CD-ROM and distributed to users, or may be distributed by being downloaded to the user's computer via a network. Furthermore, these programs may be provided to the user's computer as a web service via a network without being downloaded.

1 認証システム
10 サーバ(認証装置)
11 制御部
12 記憶部
20 端末
111 アルゴリズム生成部
112 プログラム送信部
113 データ復号部
1 Authentication system 10 Server (authentication device)
11 Control unit 12 Storage unit 20 Terminal 111 Algorithm generation unit 112 Program transmission unit 113 Data decoding unit

Claims (8)

ユーザの端末に対して、データ送信処理を含む所定のプログラムを提供する際に、当該データ送信処理に組み込むための暗号化アルゴリズムを、ランダムなシード値に基づいて生成するアルゴリズム生成部と、
生成された前記暗号化アルゴリズムを含む前記プログラムを、前記端末へ送信するプログラム送信部と、
前記端末から前記暗号化アルゴリズムにより暗号化されたデータを受信すると、前記シード値を用いて生成された前記暗号化アルゴリズムに対応する復号アルゴリズムにより、前記暗号化されたデータを復号するデータ復号部と、を備え、
前記データ復号部により復号できたことによって前記暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する認証装置。
an algorithm generating unit that generates an encryption algorithm to be incorporated in a data transmission process based on a random seed value when providing a predetermined program including the data transmission process to a user terminal;
a program transmission unit that transmits the program including the generated encryption algorithm to the terminal;
a data decryption unit that, when receiving data encrypted by the encryption algorithm from the terminal, decrypts the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated by using the seed value,
an authentication device that authenticates the authenticity of the encrypted data by the data decryption unit succeeding in decrypting the data, and then acquires the decrypted data;
前記プログラムは、前記シード値を含み、
前記データ復号部は、前記暗号化されたデータと共に、前記シード値を前記端末から受信する請求項1に記載の認証装置。
the program includes the seed value;
The authentication device according to claim 1 , wherein the data decryption unit receives the seed value from the terminal together with the encrypted data.
前記アルゴリズム生成部は、前記シード値と対応付けて、前記暗号化アルゴリズムの生成時刻を保存し、
前記データ復号部は、受信した前記シード値に対応して保存されている前記生成時刻に対して、所定の有効期限内のデータのみを受け付ける請求項2に記載の認証装置。
the algorithm generation unit stores a generation time of the encryption algorithm in association with the seed value;
3. The authentication device according to claim 2, wherein the data decryption unit accepts only data that is within a predetermined expiration date with respect to the generation time stored in correspondence with the received seed value.
前記アルゴリズム生成部は、前記シード値と対応付けて、前記ユーザのアカウントを保存し、
前記データ復号部は、受信した前記シード値に対応して保存されているアカウントに紐づくデータのみを受け付ける請求項2に記載の認証装置。
The algorithm generator stores the user's account in association with the seed value;
The authentication device according to claim 2 , wherein the data decryption unit accepts only data associated with an account that is stored in correspondence with the received seed value.
前記アルゴリズム生成部は、前記暗号化アルゴリズムの中で、数値変換のための変換テーブルの要素を、前記シード値に基づいてランダムに入れ替える請求項1から請求項4のいずれかに記載の認証装置。 The authentication device according to any one of claims 1 to 4, wherein the algorithm generation unit randomly replaces elements of a conversion table for numeric conversion in the encryption algorithm based on the seed value. 前記アルゴリズム生成部は、前記暗号化アルゴリズムに対応する前記復号アルゴリズムを前記プログラムに含め、
前記端末へ送信するデータを前記暗号化アルゴリズムにより暗号化することにより、前記プログラムを有する前記端末でのみ復号可能とする請求項1から請求項4のいずれかに記載の認証装置。
the algorithm generation unit includes the decryption algorithm corresponding to the encryption algorithm in the program;
5. The authentication device according to claim 1, wherein data to be transmitted to said terminal is encrypted by said encryption algorithm so that the data can be decrypted only by said terminal having said program.
ユーザの端末に対して、データ送信処理を含む所定のプログラムを提供する際に、当該データ送信処理に組み込むための暗号化アルゴリズムを、ランダムなシード値に基づいて生成するアルゴリズム生成ステップと、
生成された前記暗号化アルゴリズムを含む前記プログラムを、前記端末へ送信するプログラム送信ステップと、
前記端末から前記暗号化アルゴリズムにより暗号化されたデータを受信すると、前記シード値を用いて生成された前記暗号化アルゴリズムに対応する復号アルゴリズムにより、前記暗号化されたデータを復号するデータ復号ステップと、をコンピュータが実行し、
前記データ復号ステップにおいて復号できたことによって、前記コンピュータが前記暗号化されたデータの正当性を認証したうえで、復号されたデータを取得する認証方法。
an algorithm generating step of generating, when providing a predetermined program including a data transmission process to a user terminal, an encryption algorithm to be incorporated in the data transmission process based on a random seed value;
a program transmission step of transmitting the program including the generated encryption algorithm to the terminal;
a data decryption step of receiving data encrypted by the encryption algorithm from the terminal and decrypting the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated using the seed value,
An authentication method in which the computer authenticates the authenticity of the encrypted data by successfully decrypting the data in the data decryption step, and then acquires the decrypted data.
請求項1から請求項4のいずれかに記載の認証装置としてコンピュータを機能させるための認証プログラム。 An authentication program for causing a computer to function as an authentication device according to any one of claims 1 to 4.
JP2022209859A 2022-12-27 Authentication device, authentication method, and authentication program Pending JP2024093467A (en)

Publications (1)

Publication Number Publication Date
JP2024093467A true JP2024093467A (en) 2024-07-09

Family

ID=

Similar Documents

Publication Publication Date Title
WO2018025991A1 (en) Communication system, communication client, communication server, communication method, and program
JP2017063432A (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
JP2009529832A (en) Undiscoverable, ie secure data communication using black data
JP2004030611A (en) Method for changing communication password by remote control
US11438316B2 (en) Sharing encrypted items with participants verification
JP6627043B2 (en) SSL communication system, client, server, SSL communication method, computer program
Rivera et al. Secure communications and protected data for a Internet of Things smart toy platform
US10686771B2 (en) User sign-in and authentication without passwords
CN111740995B (en) Authorization authentication method and related device
JP2022521525A (en) Cryptographic method for validating data
CN111464532A (en) Information encryption method and system
US8393001B1 (en) Secure signature server system and associated method
CN116743470A (en) Service data encryption processing method and device
JP2013134530A (en) Authentication system, authentication method, and authentication program
JP2005175992A (en) Certificate distribution system and certificate distribution method
JP2024093467A (en) Authentication device, authentication method, and authentication program
Thakur et al. A Comprehensive Review of Wireless Security Protocols and Encryption Applications
Subpratatsavee et al. Internet banking transaction authentication using mobile one-time password and qr code
JP6165044B2 (en) User authentication apparatus, system, method and program
Baghdasaryan et al. FIDO Security Reference
JP5114733B2 (en) Access control device, user terminal and program
JP4502461B2 (en) Cryptographic communication method and system
Chandurkar et al. Case Study on Cryptography
Boupo Hybrid Cloud: Multi-factor authentication, a solution to Hybrid cloud in an enterprise environment
JP2003283485A (en) Method and system for managing encryption key