Authentication device, authentication method, and authentication program
The authentication system addresses the challenge of protecting compiled programs by generating a one-time encryption algorithm based on a seed value, ensuring only authorized terminals can decrypt data, thus securing communication against fraud.
Patent Information
- Application Number
- JP2022209859
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-12-27
- Publication Date
- 2026-01-28
- Estimated Expiration
- 2042-12-27
AI Technical Summary
Existing systems face challenges in protecting compiled programs from reverse engineering and unauthorized attacks, particularly when porting them to vulnerable environments like JavaScript, where the exposed porting layer can be manipulated.
An authentication system that generates a one-time encryption algorithm based on a random seed value, incorporating it into data transmission processes, and uses a corresponding decryption algorithm to authenticate and protect data communication, ensuring only authorized terminals can decrypt the data.
The system effectively safeguards communication from fraud by making it difficult for attackers to decrypt data, thereby enhancing security and preventing unauthorized access.
Smart Images

Figure 0007808021000001 
Figure 0007808021000002 
Figure 0007808021000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system for protecting communication data generated by a program executed on a terminal and authenticating the validity of the data. [Background technology]
[0002] 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, on accounts that may be subject to fraudulent use. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Amazon Fraud Detector, Internet<https: / / aws.amazon.com / jp / fraud-detector / > Summary of the Invention [Problem to be solved by the invention]
[0004] When distributing programs from a server to a client terminal, measures to protect the programs are becoming important as a measure to protect intellectual property and prevent unauthorized attacks. In this case, for example, protection of programs 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, becomes an issue. In this case, the compiled program part exists independently, and because the exposed porting layer (OS, browser, runtime, etc.) can control (hook) input and output to and from the outside, it is necessary to design the program in a way that takes into account attacks that use the compiled program part as a black box. However, such a design is difficult, and a method for protecting this vulnerable porting layer is needed.
[0005] An object of the present invention is to provide an authentication system that can protect communications via a porting layer from fraud. [Means for solving the problem]
[0006] The authentication device according to the present invention includes: an algorithm generation 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 the data transmission process to a user terminal; and 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 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.
[0007] The program may include the seed value, and the data decryption unit may receive the seed value from the terminal together with the encrypted data.
[0008] The algorithm generation unit may store the 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.
[0009] 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.
[0010] The algorithm generation unit may randomly replace elements of a conversion table for numeric conversion in the encryption algorithm based on the seed value.
[0011] 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 that has the program.
[0012] The authentication method of the present invention includes an algorithm generation step in which, when providing a specified program including a data transmission process to a user's terminal, an encryption algorithm to be incorporated into the data transmission process is generated based on a random seed value; a program transmission step in which the program including the generated encryption algorithm is transmitted to the terminal; and a data decryption step in which, upon receiving data encrypted using the encryption algorithm from the terminal, the encrypted data is decrypted using a decryption algorithm corresponding to the encryption algorithm generated using the seed value.If decryption is successful in the data decryption step, the computer authenticates the authenticity of the encrypted data and then obtains the decrypted data.
[0013] An authentication program according to the present invention is for causing a computer to function as the authentication device. [Effects of the Invention]
[0014] According to the present invention, communication from a terminal to a server via a porting layer can be protected from fraud. [Brief explanation of the drawings]
[0015] [Figure 1] FIG. 1 is a diagram illustrating a functional configuration of an authentication system according to an embodiment. [Figure 2] FIG. 2 is a sequence diagram showing a communication procedure in the authentication system according to the embodiment. [Figure 3] FIG. 1 is a diagram illustrating an overview of the AES encryption algorithm on which the one-time encryption algorithm in the embodiment is based. DETAILED DESCRIPTION OF THE INVENTION
[0016] An example of an embodiment of the present invention will be described below. In the authentication system of this embodiment, the authentication device certifies 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.
[0017] FIG. 1 is a diagram showing the functional configuration of an authentication system 1 according to this embodiment. The authentication system 1 includes a server 10 (authentication device) that provides a program, and a terminal 20 that communicates with the server 10 by executing the provided program.
[0018] The terminal 20 is an information processing device such as a personal computer, tablet, or 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 sent to the server 10 by executing the program is encrypted using a one-time encryption algorithm built into the program.
[0019] The server 10 is an information processing device that includes a control unit 11, a memory unit 12, and various input / output interfaces, and by executing a program provided to the terminal 20, the server 10 performs encrypted communication while authenticating the validity of the data received from the terminal 20.
[0020] 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.
[0021] The storage unit 12 is a storage area for storing various programs for causing the hardware group to function as the server 10, various data, and the like, and may be a ROM, RAM, flash memory, hard disk drive (HDD), or the like.
[0022] The control unit 11 includes an algorithm generation unit 111 , a program transmission unit 112 , and a data decoding unit 113 .
[0023] When providing a predetermined program including a data transmission process to the user terminal 20, the algorithm generation unit 111 generates a one-time encryption algorithm to be incorporated into this 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 the user ID and time information (the time the one-time encryption algorithm was generated) in accordance with the result of user authentication such as login.
[0024] The program transmission unit 112 transmits to the terminal 20 a program including the generated one-time encryption algorithm and the seed value used when generating this one-time encryption algorithm.
[0025] This program is a program that the user wants to run 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 is provided at a predetermined timing, such as for each user or when the program is updated. By executing the program, the terminal 20 transmits a seed value linked to the ID and the 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.
[0026] When the data decryption unit 113 receives encrypted data from the terminal 20, it 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 authenticity of the encrypted data by the data decryption unit 113 being able to decrypt the received data, and then acquires the decrypted data.
[0027] 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.
[0028] 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 passed.
[0029] Furthermore, when the algorithm generation unit 111 stores user account information (e.g., user ID) in association with the seed value, the data decryption unit 113 receives only data associated with the account stored in association with the received seed value. That is, when performing encrypted communication, the server 10 checks the account associated with the seed value, and thereafter prevents the communication from being used by any account other than the associated account.
[0030] It is assumed that the terminal 20 has received authentication information in advance from the server 10. This authentication information may be something similar to 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. Furthermore, when the server 10 performs authentication to identify an account such as a login through this encrypted communication, it will not permit login if the account is not the same as the account linked to the seed value used to generate the one-time encryption algorithm.
[0031] FIG. 2 is a sequence diagram showing a communication procedure in the authentication system 1 according to this embodiment.
[0032] In step S1, the terminal 20 requests the 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.
[0033] 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 linked to this one-time encryption algorithm.
[0034] 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.
[0035] In step S4, the terminal 20 encrypts the data using the one-time encryption algorithm linked to the seed value in accordance with the distributed program and transmits the encrypted data to the server 10.
[0036] Here, the method for generating a one-time program containing a one-time encryption algorithm is not limited, and any method that can dynamically generate an encryption algorithm will suffice. As an example, we will show a method for dynamically generating an encryption algorithm by converting the AES (Advanced Encryption Standard) encryption algorithm.
[0037] FIG. 3 is a diagram showing an outline of the AES encryption algorithm on which the one-time encryption algorithm in this embodiment is based.
[0038] First, the cipher key is expanded, and if the key length is 256 bits, for example, round keys [0] to
[14] are generated. The plaintext to be encrypted is XORed with the round key [0], and then ciphertext is output by repeating 14 times one round consisting of four processes (SubBytes, ShiftRows, MixColumns, AddRoundkey).
[0039] Here, SubBytes indicates that a numerical value is replaced in units of one byte in a certain way. In AES, one method for this substitution (substitution using a fixed S-box) is defined, but if strict consideration of tamper resistance is sacrificed, new encryption algorithms can be generated using countless substitution patterns, for example, as follows.
[0040] That is, the algorithm generation unit 111 randomly rearranges 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 that does not perform substitution. If F(1) is a table in which a value at a certain position (x, y) in the table is replaced with a value at another position (x', y') calculated randomly based on a seed value, then F(X × Y), which is the result of performing this operation on all values in the table, will be the conversion table for SubBytes', which is a new SubBytes.
[0041] The method for generating a new conversion table is not limited to this, and for example, a similar operation may be performed using an existing conversion table (S-box) as F(0). Furthermore, the number of replacement operations may be increased or decreased, and the termination condition may be set appropriately, such as terminating the operation when all elements have been replaced at least once. By using the SubBytes' generated in this way, a new encryption algorithm can be obtained based on AES.
[0042] 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, the program transmission unit 112 may distribute the encryption logic using SSL (Secure Socket Layer) to maintain security strength within a protection range equivalent to that of SSL.
[0043] According to this embodiment, the server 10 generates a one-time encryption algorithm based on a random seed value, and transmits to the terminal 20 a program including this one-time encryption algorithm and the seed value. 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 corresponding to the one-time encryption algorithm generated using the seed value.By being able to decrypt the data in this manner, the authenticity of the encrypted data can be authenticated and the decrypted data can be obtained.
[0044] 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 quickly obtain 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 the attacker's own terminal and replacing the CA certificate, as shown in Figure 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 replacing the CA certificate in the past. On the other hand, the server 10, which automatically generates the encryption algorithm, makes decryption easy.
[0045] 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 communications 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 fraud such as cheating and to expect an improved user experience.
[0046] The program sent to the terminal 20 may include the 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 corresponding to this seed value.
[0047] 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 using 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 was 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 intervals shorter than this certain period. Security can be improved by the server 10 accepting only data that is within a predetermined expiration date based on the generation time stored in correspondence with the received seed value.
[0048] The server 10 may store the user's account information in association with the seed value, and may 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, this encryption method can only be used for one account. Therefore, even if a cheat program is developed that uses the decryption program to send data not intended by the original program, it cannot be distributed as something that can be used by a wide range of users. Furthermore, the encryption algorithm generation method is kept private within the server 10 and is not visible to attackers. Therefore, an attacker cannot know in advance which encryption algorithm will be applied to which account and when.
[0049] If 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 rearranging the elements of the conversion matrix for numerical conversion based on a seed value.
[0050] 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 sent to the terminal 20 using the one-time encryption algorithm, so that the data can only be decrypted by the terminal 20 that has the distributed program. Furthermore, the encryption method may be different for sending and receiving. As a result, secure two-way encrypted communication is realized.
[0051] According to this embodiment, it is possible to conceive of an attack in which, for example, transmission data not intended by the program is inserted into communication with the server 10. However, such an attack can be detected by the server 10 by, for example, assigning a value indicating the data order to each piece of transmission data generated by the program.
[0052] According to this embodiment, for example, it is possible to suppress unauthorized data communications, thereby contributing to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Develop resilient infrastructure, promote sustainable industrialization and foster innovation."
[0053] 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 preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.
[0054] The authentication method by the server 10 (authentication device) is realized by software. When realized by software, the programs constituting this software are installed in an information processing device (computer). These programs may be recorded on removable media such as CD-ROMs 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. [Explanation of symbols]
[0055] 1. Authentication System 10 Server (authentication device) 11 Control section 12 Storage section 20 terminals 111 Algorithm Generation Unit 112 Program Transmission Unit 113 Data Decoding Unit
Claims
1. 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 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 using the seed value, the program includes the seed value; the algorithm generation unit stores a generation time of the encryption algorithm in association with the seed value; the data decryption unit receives the seed value from the terminal together with the encrypted data, and accepts only data that is within a predetermined expiration date with respect to the generation time stored in correspondence with the received seed value; an authentication device that authenticates the authenticity of the encrypted data by the data decryption unit being able to decrypt the data, and then acquires the decrypted data;
2. 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 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 using the seed value, the program includes the seed value; the algorithm generation unit stores the user's account in association with the seed value; the data decryption unit receives the seed value from the terminal together with the encrypted data, and accepts only data associated with an account stored in correspondence with the received seed value; an authentication device that authenticates the authenticity of the encrypted data by the data decryption unit being able to decrypt the data, and then acquires the decrypted data;
3. 3. The authentication device according to claim 1, wherein the algorithm generation unit randomly replaces elements of a conversion table for numeric conversion in the encryption algorithm based on the seed value.
4. the algorithm generation unit includes the decryption algorithm corresponding to the encryption algorithm in the program; 3. The authentication device according to claim 1, wherein data to be transmitted to said terminal is encrypted using said encryption algorithm so that it can be decrypted only by said terminal having said program.
5. an algorithm generation step of generating, based on a random seed value, an encryption algorithm to be incorporated into a data transmission process when providing a predetermined program including the data transmission process to a user terminal; a program transmission step of transmitting the program including the generated encryption algorithm to the terminal; a data decryption step of, upon receiving data encrypted by the encryption algorithm from the terminal, decrypting the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated using the seed value; the program includes the seed value; In the algorithm generation step, a generation time of the encryption algorithm is stored in association with the seed value; In the data decryption step, the seed value is received from the terminal together with the encrypted data, and only data that is within a predetermined expiration date with respect to the generation time stored in correspondence with the received seed value is accepted; 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.
6. an algorithm generation step of generating, based on a random seed value, an encryption algorithm to be incorporated into a data transmission process when providing a predetermined program including the data transmission process to a user terminal; a program transmission step of transmitting the program including the generated encryption algorithm to the terminal; a data decryption step of, upon receiving data encrypted by the encryption algorithm from the terminal, decrypting the encrypted data by a decryption algorithm corresponding to the encryption algorithm generated using the seed value; the program includes the seed value; In the algorithm generating step, storing the user's account in association with the seed value; In the data decryption step, the seed value is received from the terminal together with the encrypted data, and only data associated with an account stored in correspondence with the received seed value is accepted; 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.
7. 3. An authentication program for causing a computer to function as the authentication device according to claim 1.
Citation Information
Patent Citations
Device for transferring program
JP1998214185A
Cipher communication system and method, and server and cipher communication program
JP2004343812A
Method and Apparatus for Automatically Generating Cryptographic Sets of Instructions and Code Generation
JP2008516502A
Encryption library generation device and program
JP2014103554A