WO2016039568A1 - Device and method for user authentication - Google Patents
Device and method for user authentication Download PDFInfo
- Publication number
- WO2016039568A1 WO2016039568A1 PCT/KR2015/009523 KR2015009523W WO2016039568A1 WO 2016039568 A1 WO2016039568 A1 WO 2016039568A1 KR 2015009523 W KR2015009523 W KR 2015009523W WO 2016039568 A1 WO2016039568 A1 WO 2016039568A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- authentication key
- user
- authentication
- secret
- program
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Definitions
- the present invention relates to user authentication, and more particularly, to an apparatus for user authentication that realizes dual security using a hash function.
- a hash function is a function that can be calculated quickly and easily in one direction, but cannot be calculated in the reverse direction.
- the present invention has been proposed to solve the above problems, and an object thereof is to provide a user authentication method and a device for preventing the duplication of the authentication program and strengthening the security by using a double safety means.
- An apparatus for performing authentication by communicating with an authentication server for achieving the above object, a device authentication key generation module for collecting the unique information of the device and generating a device authentication key using the unique information ;
- a program authentication key for generating a secret hash value by applying a hash function to a secret divisor input from a user, generating a time stamp, and generating a program authentication key using the secret hash value, the time stamp, and the device authentication key.
- a user authentication key generation module for generating a user authentication key using a personal password input from a user and the secret hash value; And a management module for transmitting authentication information including the user identification information, the device authentication key, the program authentication key, and the user authentication key input from the user to the authentication server.
- an apparatus for performing authentication by communicating with a user device comprises: a subscription information management module for receiving and storing subscription information including user identification information from the user device; An authentication information management module for receiving and storing authentication information including user identification information, device authentication key, program authentication key, and user authentication key from the user device; And upon receipt of an approval request from an approval requester, transmits a notification message to the user device, and receives user identification information, a device authentication key, a program authentication key, and a user authentication key from the user device in response thereto. And an authentication processing module which compares the usage information with each other and transmits an approval response to the approval requester if all the information is matched.
- an apparatus for authenticating a user by communicating with a server generates a secret hash value by inputting a secret divisor input from the user into a hash function as a seed value.
- a secret hash value generation module for storing and registering the secret hash value with the server;
- a one-time secret password input module for receiving a one-time secret password;
- And generating a user authentication key by inputting the one-time secret password and the secret hash value received from the one-time secret password input module into the hash function as a seed value, and transmitting the user authentication key to the server.
- a user authentication key generation module for receiving a comparison result of the user authentication key generated at the server from the server, wherein the user authentication key generated at the server is generated at the server and a secret hash value registered at the server. Generated by entering a one-time secret password into the hash function as a seed value.
- an apparatus for authenticating a user by communicating with a user apparatus includes a secret hash value generated by inputting a secret divisor input from a user into a hash function as a seed value; A secret hash value registration module for receiving and registering from the user device; A one time secret password generation module for generating a one time secret password; And receiving the user authentication key from the user device, comparing the received user authentication key with the user authentication key generated by inputting the registered secret hash value and the generated one-time secret password as a seed value to a hash function. And an authentication processing module for authenticating the user.
- an apparatus for communicating with an authentication server comprises: at least one processor; Memory; And a program stored in the memory and configured to be executed by the one or more processors, wherein the program generates a secret hash value by inputting a secret divisor input from a user into a hash function as a seed value.
- a secret hash value generation module for storing and transmitting the secret hash value to the authentication server;
- a user authentication key generation module for generating a user authentication key by inputting a personal password inputted from a user and the secret hash value into a hash function as a seed value, and transmitting and registering the user authentication key to the authentication server;
- a one-time secret password input module for receiving a one-time secret password issued by the authentication server; And generating a one-time authentication key by inputting the one-time secret password and the user authentication key inputted from the one-time secret password input module as a seed value to a hash function and transmitting the one-time authentication key to the authentication server.
- a one-time authentication key generation module configured to receive a comparison result of the key and the one-time authentication key generated by the authentication server from the authentication server.
- an apparatus for communicating with a user device comprises: at least one processor; Memory; And a program stored in the memory and configured to be executed by the one or more processors, wherein the program includes a secret hash value generated by inputting a secret divisor input from a user into a hash function as a seed value.
- a secret hash value registration module for receiving and registering from the user device;
- a user authentication key registration module for receiving and registering a user authentication key generated by inputting a user's personal password and the secret hash value into a hash function as a seed value from the user device;
- a one-time secret password generation module for generating a one-time secret password and transmitting it to the user; And receiving the one-time authentication key from the user device, comparing the received one-time authentication key with the one-time authentication key generated by inputting the registered user authentication key and the one-time secret password into a hash function as a seed value. It includes a; one-time authentication key comparison module for transmitting a comparison result to the user device.
- an apparatus for communicating with a master server and a service server one or more processors; Memory; And a master program and a service program stored in the memory and configured to be executed by the one or more processors, wherein the master program includes a plurality of different service secret hashes using different service secret divisors input from a user.
- a value is generated and stored, and the service program generates a service user authentication key using a selected service secret hash value among the plurality of service secret hash values and a personal password, and uses the service user authentication key as authentication information.
- the master program transfers and registers the unique code received from the service program to the selected service secret hash value among the plurality of service secret hash values.
- the device authentication key is different so that the authentication program is automatically deleted, thereby preventing the copy of the authentication program.
- the present invention enhances security by receiving a secret divisor and a personal password from the user and generating a program authentication key and a user authentication key, respectively, and performing double authentication for use in authentication.
- authentication information can be registered differently for a plurality of authentication servers, thereby preventing a series of security incidents.
- FIG. 1 is a view showing an authentication system according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating a configuration of a user terminal of FIG. 1.
- FIG. 3 is a diagram illustrating a configuration of an authentication program according to an embodiment of the present invention.
- FIG. 4 is a diagram illustrating a configuration of the authentication server of FIG. 1.
- FIG. 5 is a flowchart illustrating a method of generating a device authentication key in a user terminal according to an embodiment of the present invention.
- FIG. 6 is a flowchart illustrating a method of generating a program authentication key according to an embodiment of the present invention.
- FIG. 7 is a flowchart illustrating a server registration process of authentication information according to an embodiment of the present invention.
- FIGS. 8 and 9 are flowcharts illustrating a process of registering information for authentication when a terminal is changed according to an embodiment of the present invention.
- FIG. 10 is a flowchart illustrating a process of changing a user authentication key according to an embodiment of the present invention.
- FIG. 11 is a flowchart illustrating a process of changing a secret divisor according to an embodiment of the present invention.
- 12 and 13 are flowcharts illustrating an online shopping process according to an embodiment of the present invention.
- FIG. 14 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- 15 is a diagram showing the configuration of an authentication server according to another embodiment of the present invention.
- 16 is a flowchart illustrating an authentication method using OTP according to the present invention.
- 17 is a view showing the configuration of a one-time secret password input module according to an embodiment of the present invention.
- FIG. 19 illustrates a circle interface according to an embodiment of the present invention.
- 21 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- FIG. 22 is a diagram illustrating an authentication system according to another embodiment of the present invention.
- FIG. 23 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- FIG. 24 is a diagram illustrating a configuration of the authentication server of FIG. 22.
- 26 is a diagram illustrating an authentication system according to another embodiment of the present invention.
- FIG. 27 is a flowchart illustrating a process of registering a service secret hash value according to an embodiment of the present invention.
- FIG. 28 is a flowchart illustrating a process of setting authentication information for a specific service server according to an embodiment of the present invention.
- 29 is a flowchart illustrating a process of logging in to a service server after the setting process of FIG. 28.
- FIG. 1 is a view showing an authentication system according to an embodiment of the present invention
- Figure 2 is a view showing the configuration of a user terminal of FIG.
- the authentication system includes a user terminal 100, an authentication server 200, and a communication network 300 connecting the user terminal 100 and the authentication server 200. Include.
- the authentication server 200 may be a server of a bank, a card company, a communication company or a general portal site, or may be a server of a payment agency service (PG) company.
- PG payment agency service
- the user terminal 100 may be a mobile communication terminal such as a smartphone or a personal computer. As shown in FIG. 2, the user terminal 100 includes a memory 110, a memory controller 121, one or more processors (CPUs) 122, a peripheral interface 123, and an input / output (I / O) subsystem. 130, a display device 141, an input device 142, and an RF circuit 152. These components communicate via one or more communication buses or signal lines.
- the various components shown in FIG. 2 may be implemented in hardware, software or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.
- the memory 110 may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices.
- memory 110 is a storage device located remote from one or more processors 122, such as RF circuitry 152, the Internet, an intranet, a local area network (LAN), and a wide area network (WLAN). It may further comprise a network attached storage device accessed through a communication network (not shown), such as a storage area network (SAN), or the like, or a suitable combination thereof. Access to memory 110 by other components of user terminal 100, such as processor 122 and peripheral interface 123, may be controlled by memory controller 121.
- the peripheral interface 123 connects the input / output peripheral device of the user terminal 100 with the processor 122 and the memory 110.
- One or more processors 122 execute a set of instructions stored in various software programs and / or memory 110 to perform various functions for the device 100 and to process data.
- peripheral interface 123, processor 122, and memory controller 121 may be implemented on a single chip, such as chip 120. In some other embodiments, they may be implemented in separate chips.
- the I / O subsystem 130 provides an interface between the input / output peripheral of the user terminal 100, such as the display device 141, the input device 142, and the peripheral interface 123.
- the display device 141 may use a liquid crystal display (LCD) technology or a light emitting polymer display (LPD) technology.
- the display device 141 may be a capacitive, resistive, or infrared touch display.
- the touch display provides an output interface and an input interface between the terminal and the user.
- the touch display presents visual output to the user.
- the visual output may include text, graphics, video, and combinations thereof. Some or all of the visual output may correspond to user interface objects.
- the touch display forms a touch sensitive surface that accepts user input.
- the processor 122 is a processor configured to perform operations associated with the user terminal 100 and to perform instructions, for example, input and output between components of the user terminal 100 using instructions retrieved from the memory 110. Receive and manipulate data can be controlled.
- the software component has an operating system 111, a graphics module (instruction set) 112, and an authentication program (instruction set) 113 mounted (installed) in the memory 110.
- the operating system 111 may be, for example, a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc., and may be a general system task (eg, memory). Management, storage device control, power management, etc.) and various software components and / or devices that facilitate and manage communication between the various hardware and software components.
- a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc.
- a general system task eg, memory
- Management, storage device control, power management, etc. and various software components and / or devices that facilitate and manage communication between the various hardware and software components.
- Graphics module 112 includes various well-known software components for presenting and displaying graphics on display device 141.
- graphics refers to any object that can be displayed to the user, including, without limitation, text, web pages, icons (eg, user interface objects including soft keys), digital images, videos, animations, and the like. Include.
- the RF circuit 152 transmits and receives electromagnetic waves.
- the RF circuit 152 converts an electrical signal into an electromagnetic wave and vice versa, and communicates with a communication network, another mobile gateway, and a communication device through the electromagnetic wave.
- RF circuitry 152 includes, but is not limited to, for example, antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, CODEC chipsets, subscriber identity module (SIM) cards, memory, and the like. It may include known circuitry for performing this function, which is not limited.
- RF circuitry 152 may comprise the Internet, called the World Wide Web (WWW), intranets and networks, and / or wireless networks such as cellular telephone networks, wireless LANs, and / or metropolitan area networks (MAN), and near field wireless. Communication can be made with other devices.
- Wireless communications include Global System for Mobile Communication (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), time division multiple access (TDMA), and voice over Internet Protocol, Wi-MAX, Bluetooth, zigbee, Near Field Communication (NFC), or any other suitable communication protocol including communication protocols not yet developed at the time of filing of this application. Any of a plurality of communication standards, protocols, and technologies that are not limited thereto may be used.
- GSM Global System for Mobile Communication
- EDGE Enhanced Data GSM Environment
- WCDMA wideband code division multiple access
- CDMA code division multiple access
- TDMA time division multiple access
- NFC Near Field Communication
- the authentication program 113 may be downloaded and installed from the authentication server 200 or may be downloaded and installed from an app store such as Google Play or Apple Market.
- the authentication program 113 generates a device authentication key, a program authentication key, and a user authentication key when executed by the user after the initial installation, and transmits them to the authentication server 200 for registration.
- the authentication program 113 performs a transaction such as login, financial transaction, or electronic commerce
- the authentication program 113 generates a device authentication key, a program authentication key, and a user authentication key and transmits the generated authentication key to the authentication server 200 to perform an authentication process. This will be described in detail with reference to FIG. 3.
- FIG. 3 is a diagram illustrating a configuration of an authentication program according to an embodiment of the present invention.
- the authentication program 113 includes a device authentication key generation module 210, a program authentication key generation module 230, a user authentication key generation module 250, and a management module 270. ).
- the device authentication key generation module 210 collects unique information of the user terminal 100, for example, a MAC address of a network interface card (NIC), a universally unique identifier (UUID), and the like, when the authentication program 113 is first executed.
- the device authentication key is generated using the collected unique information.
- the device authentication key management module 210 stores a value generated by inputting unique information of the user terminal 100 into a hash function, as a device authentication key.
- the device authentication key generation module 210 generates a device authentication key every time the authentication program 113 is executed and compares the device authentication key with the previously stored device authentication key.
- the device authentication key generation module 210 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other.
- the authentication program 113 duplicated in the device is automatically deleted.
- the program authentication key generation module 230 generates and stores a program authentication key using a device authentication key, a time stamp, and a secret hash value generated by the device authentication key generation module 210.
- the program authentication key may be stored in the authentication program 113 as a binary file.
- the time stamp is a string indicating a time point at which a program authentication key is generated.
- the secret hash value is a value generated by inputting a secret divisor input from a user into a hash function.
- the program authentication key generation module 230 receives a secret divisor from a user through an input device.
- the secret divisor may be any one of a long string, an image file, a sound file, or a video file.
- the program authentication key generation module 230 sets a result of inputting the secret divisor into a hash function as the secret hash value.
- the secret hash value may be stored in the authentication program 113 as a binary file.
- the user authentication key generation module 250 generates a user authentication key using the secret hash value generated by the program authentication key generation module 230 and a personal password input from the user through an input device. Specifically, the user authentication key generation module 250 uses the secret hash value and the input personal password as a hash authentication function as the user authentication key.
- the personal password may be, for example, a six digit number. However, the present invention is not limited thereto and may be a combination of numbers and letters. Compared with the secret divisor input from the user at the time of generating the program authentication key, the secret divisor is a long string, an image file, or the like, and the personal password input from the user at the time of generating the user authentication key is a certain number of digits.
- the personal password may be set differently for each authentication server 200 when there are a plurality of authentication servers 200.
- the device authentication key and the program authentication key has been described as being stored in the authentication program 113, the user authentication key is not stored in the authentication program 113, but is transmitted and stored only in the authentication server 200. desirable.
- the management module 270 controls operations of the device authentication key generation module 210, the program authentication key generation module 230, and the user authentication key generation module 250 according to a user's input through an input device.
- the management module 270 manages the registration of the information of the authentication server 200 in the authentication program 113, manages the membership of the user with the authentication server 200, and also the authentication of the generated authentication keys. Manage registration and change to the server 200.
- the management module 270 receives and stores the address and profile information of the authentication server 200 from a user through an input device.
- the profile information is a nickname of the authentication server 200, so that the user can easily manage and select the authentication server 200 in the authentication program 200.
- the management module 270 opens a member registration page when the user does not become a member in the authentication server 200 and enters personal information of the user, for example, ID, name, date of birth, gender, etc. The personal information of the transmission to the authentication server 200 to register.
- the management module 270 transmits the device authentication key, the program authentication key, the user authentication key, and the ID registered by the user at the time of membership registration to the authentication server 200 as authentication information. In this case, the management module 270 transmits the authentication information to the authentication server 200 before registering and using the one-time password issued by the operator operating the authentication certificate or the operator operating the authentication server 200. You can authenticate.
- the management module 270 When the management module 270 receives an input regarding a change of the user terminal 100 from a user through an input device, the device authentication key generation module 210, the program authentication key generation module 230, and the user authentication.
- the key generation module 250 is controlled to generate a device authentication key, a program authentication key, and a user authentication key for use in the user terminal after the change, and the generated device authentication key, program authentication key, and user authentication key and inputted from the user.
- the device change request including the ID is transmitted to the authentication server 200 and registered.
- the user authentication key and the program authentication key is different from the device authentication key and the program authentication key generated in the previous user terminal, the user authentication key is the same. That is, since the unique information of the user terminal is changed, the device authentication key is changed, and since the time stamp is changed, the program authentication key is changed. However, since the personal password and secret divisor entered by the user are the same, the user authentication key is the same.
- the change of the user terminal 100 may be performed for each of the plurality of authentication servers 200.
- the management module 270 may receive an input regarding a change of the secret divisor for the specific authentication server from the user through the input device.
- the management module 270 controls the program authentication key generation module 230 and the user authentication key generation module 250 to generate a new program authentication key and a new user authentication key.
- a secret divisor change request including a user authentication key, a previous program authentication key, a previous user authentication key, a device authentication key, and an ID input from a user is transmitted to the authentication server 200.
- the management module 270 supports the user to register the authentication information for each individual authentication server. That is, the device authentication key is registered the same for all authentication servers, but the program authentication key and the user authentication key may be different for each authentication server.
- the secret divisor may be different for each authentication server with the same personal password, or the personal password may be different for each authentication server with the same secret divisor.
- the time stamp of the program authentication key for each authentication server is different.
- the program authentication key may be the same and the user authentication key may be different.
- the secret divisor must be the same and the personal passwords must be different.
- the management module 270 provides a selection interface and controls each module so that a program authentication key and a user authentication key can be registered differently for each authentication server.
- the authentication server 200 includes a program transmission module 310, a subscription information management module 320, and an authentication information management module 330. ) And an authentication processing module 340.
- Authentication server 200 comprises a memory, a memory controller, one or more processors (CPUs), peripheral interfaces, input / output (I / O) subsystems, and RF circuitry. These components communicate via one or more communication buses or signal lines. Such components may be implemented in hardware, software or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.
- the memory may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices.
- the memory may include storage devices located remotely from one or more processors. Access to memory by other components such as processors and peripheral interfaces may be controlled by the memory controller.
- the peripheral interface connects the input and output peripherals with the processor and memory.
- One or more processors execute various sets of software programs and / or instructions stored in memory to perform various functions and process data for the authentication server 200.
- the I / O subsystem provides the interface between the input and output peripherals and the peripheral interface.
- the processor is a processor configured to perform operations associated with the authentication server 200 and to perform instructions, for example, using instructions retrieved from a memory, to receive and manipulate input and output data between components of the authentication server 200. Can be controlled.
- the software component is an operating system
- graphics module instruction set
- the operating system may be, for example, a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc., and may be a general system task (e.g., memory management, storage Various software components and / or devices that control and manage device control, power management, etc.), and facilitate communication between various hardware and software components.
- a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc.
- a general system task e.g., memory management, storage
- Various software components and / or devices that control and manage device control, power management, etc.
- the program transmission module 310 transmits an authentication program to the user terminal 100 at the request of the user terminal 100.
- the subscription information management module 320 receives and stores personal information of the user from the user terminal 100, for example, personal information such as ID, name, date of birth, and gender.
- the authentication information management module 330 receives an ID, a device authentication key, a program authentication key, and a user authentication key of the user from the user terminal 100, and authenticates the device based on the identification information of the user, that is, the ID of the user.
- the key, program authentication key, and user authentication key are stored as authentication information.
- the authentication information management module 330 receives a device change request including a device authentication key, a program authentication key, a user authentication key, and an ID of a user to be used in the user terminal after the change. can do.
- the authentication information management module 330 searches for authentication information previously stored and registered by using the user ID included in the device change request.
- the authentication information management module 330 compares the user authentication key among the retrieved authentication information with the user authentication key included in the device change request, and if it matches, the device authentication key and the program authentication key of the corresponding user, which are previously stored. To a device authentication key and a program authentication key included in the device change request, and transmits a completion response to the user terminal 110.
- the authentication information management module 330 may receive a personal password change request including a new user authentication key, a previous user authentication key, a device authentication key, a program authentication key, and a user ID from the user terminal 100. .
- the authentication information management module 330 searches for authentication information previously stored and registered using the user ID included in the personal password change request.
- the authentication information management module 330 compares the retrieved authentication information with the previous user authentication key, device authentication key, and program authentication key included in the personal password change request, and matches the previously stored user authentication key.
- the new user authentication key included in the personal password change request is modified, and the completion response is transmitted to the user terminal 110.
- the authentication information management module 330 may request a secret divisor change request including a new program authentication key, a new user authentication key, a previous program authentication key, a previous user authentication key, a device authentication key, and a user ID. Can be received from.
- the authentication information management module 330 searches for authentication information previously stored and registered using the user ID included in the secret divisor change request.
- the authentication information management module 330 compares the retrieved authentication information with the previous user authentication key, the previous program authentication key, and the device authentication key included in the secret divisor change request, and if all matched, the previously stored user authentication key and
- the program authentication key is modified with the new user authentication key and the new program authentication key included in the secret divisor change request, and the completion response is transmitted to the user terminal 110.
- the authentication processing module 340 When a payment approval request including a user ID is received from an online shopping mall, the authentication processing module 340 identifies the user using the user ID and pushes a notification message to the user terminal 100.
- the authentication processing module 340 receives a payment approval request including a user ID, a device authentication key, a program authentication key, and a user authentication key from the user terminal, and is stored in advance using a user ID included in the payment approval request.
- the device authentication key, the program authentication key, and the user authentication key are searched and compared with the information included in the payment approval request.
- the authentication processing module 340 approves the normal payment processing when all comparison results match. In this case, the authentication processing module 340 may receive payment means information from the user terminal 100 and perform payment processing using the payment means information.
- the authentication processing module 340 transmits the payment approval response to the seller such as an online shopping mall and to the user terminal 100.
- FIG. 5 is a flowchart illustrating a method of generating a device authentication key in a user terminal according to an embodiment of the present invention.
- the user terminal 100 accesses the authentication server 200 through the communication network 300 and downloads the authentication program (S401).
- the user terminal 100 executes the authentication program according to the user's input (S403), and the authentication program checks whether the device authentication key is stored (S405).
- the process of FIG. 5 is performed. 5 will be described later.
- the authentication program collects unique information of the user terminal 100, for example, the MAC address or UUID of the network interface card (S407).
- the authentication program generates and stores a device authentication key using the unique information (S409, S411).
- the authentication program sets the value generated by inputting the unique information into the hash function as the device authentication key.
- the authentication program automatically executes again (S413), and displays a pop-up window asking the user whether to change the terminal, that is, whether the device is changed or used for the first time, and receives an input related thereto (415).
- the process of FIG. 8 is performed. 7 will be described later.
- the process of FIG. 8 is performed. 7 will be described later.
- FIG. 6 is a flowchart illustrating a method of generating a program authentication key according to an embodiment of the present invention.
- the authentication program generates a device authentication key (S501). That is, the authentication program collects unique information of the user terminal 100, for example, a MAC address or UUID of the network interface card, and generates a device authentication key using the unique information.
- the authentication program compares the device authentication key generated in step S501 with the device authentication key previously stored (S503). If the result of the comparison does not match, the authentication program is automatically deleted (S505). For example, if an authentication program is copied and installed in another user terminal, the authentication program is automatically deleted.
- the authentication program checks whether a secret hash value exists (S507), and if there is no secret hash value, performs a process of generating a secret hash value. That is, the authentication program receives a secret divisor from the user (S509), and generates and stores a secret hash value using the secret divisor (S511, S513). The authentication program generates a secret hash value by entering the secret divisor into the hash function.
- the secret divisor may be any one of a long string, an image file, a sound file, or a video file.
- a program authentication key generation process is performed. That is, the authentication program generates a time stamp (S515), and inputs the time stamp, the device authentication key, and the secret hash value into a hash function to generate and store a program authentication key (S517, S519).
- the authentication program After generating the program authentication key as described above, the authentication program asks the user whether the server for authentication information is registered with the authentication server 200 (S523), and when the user receives an input that does not agree to the server registration, the operation ends.
- the process of FIG. 7 is performed.
- FIG. 7 is a flowchart illustrating a server registration process of authentication information according to an embodiment of the present invention.
- the authentication program receives an address input of an authentication server from a user (S601).
- the authentication program receives a profile input of the authentication server from the user (S603).
- the profile is information such as the name of the authentication server so that the user can easily recognize and manage the authentication server.
- the authentication program receives subscription information input from the user (S605).
- the subscription information includes information such as ID, name, date of birth, and gender.
- the authentication program then receives a personal password input from the user (S607).
- the authentication program can be authenticated by using a one-time password issued from a company operating the authentication server, or the authentication server 200, a public certificate.
- the personal password may be, for example, a six digit number.
- the authentication program generates a user authentication key by inputting the secret hash value and the personal password into the hash function (S609).
- the authentication program transmits authentication information including the user ID, the device authentication key, the program authentication key, and the user authentication key to the authentication server 200 (S611). Therefore, the authentication server 200 stores the device authentication key, the program authentication key and the user authentication key based on the user ID to use in online payment.
- FIGS. 8 and 9 are flowcharts illustrating a process of registering information for authentication when a terminal is changed according to an embodiment of the present invention.
- the authentication program generates a device authentication key (S701). That is, the authentication program collects unique information of the user terminal 100, for example, a MAC address or UUID of the network interface card, and generates a device authentication key using the unique information.
- the authentication program compares the device authentication key generated in step S701 with the device authentication key previously stored (S703). If the result of the comparison does not match, the authentication program is automatically deleted (S705). For example, if an authentication program is copied and installed in another user terminal, the authentication program is automatically deleted.
- the authentication program receives a secret divisor from the user (S709).
- the device authentication key matches in the comparison result of step S703.
- the authentication program generates and stores a secret hash value using the secret divisor (S711, S713).
- the authentication program generates a secret hash value by entering the secret divisor into the hash function.
- the secret divisor may be any one of a long string, an image file, a sound file, or a video file.
- the program authentication key is generated. That is, the authentication program generates a time stamp (S715), and inputs the time stamp, the device authentication key, and the secret hash value into a hash function to generate and store a program authentication key (S717, S719).
- the authentication program After generating the program authentication key in this manner, as shown in FIG. 9, the authentication program receives an address input of the authentication server from the user (S801). The authentication program receives a profile input of the authentication server from the user (S803). The authentication program receives an input of a personal password from the user (S805). Since the user has already subscribed to the authentication server 200 before changing the terminal, the membership registration process is not necessary in this process.
- the authentication program generates a user authentication key by inputting the secret hash value and the personal password into the hash function (S807).
- the authentication program transmits authentication information including the user ID, the device authentication key, the program authentication key, and the user authentication key to the authentication server 200 (S809).
- the authentication server 200 If the user authentication key does not match, the authentication server 200 notifies the verification failure to the user terminal (S815), and if the user authentication key is matched, the previously stored device authentication key and program authentication key included in the authentication information. The device authentication key and the program authentication key are modified (S817). The authentication server 200 notifies the user terminal of the completion of the terminal change (S819).
- the user checks whether there are more servers to change the terminal (S821) and terminates when there are no more servers to change. Repeat again.
- FIG. 10 is a flowchart illustrating a process of changing a user authentication key according to an embodiment of the present invention.
- the authentication program of the user terminal 100 receives an existing personal password input from the user (S901).
- the authentication program receives a new personal password input from the user (S903).
- the authentication program generates an existing user authentication key using the existing personal password (S905).
- a secret hash value and an existing personal password are entered into the hash function to generate an existing user authentication key.
- the authentication program generates a new user authentication key using the new personal password (S907).
- a new user authentication key is generated by entering a secret hash value and a new personal password into the hash function.
- the authentication program transmits a user authentication key change request including the existing user authentication key, the new user authentication key, a user ID, a device authentication key, and a program authentication key to the authentication server 200 (S909).
- the authentication server 200 receives the user authentication key change request (S911), and is included in the user authentication key, device authentication key, program authentication key, and the user authentication key change request previously stored using the user ID.
- the verification is performed by comparing the existing user authentication key, device authentication key, and program authentication key (S913).
- the authentication server 200 transmits a change failure notification to the user terminal 100 (S915), and if the comparison results all match, the authentication server 200 previously stored user authentication.
- the key is modified to a new user authentication key included in the user authentication key change request (S917).
- the authentication server 200 transmits a change success notification to the user terminal 100 (S919).
- the secret divisor is used to generate a secret hash value
- the secret hash value is used to generate a program authentication key and a user authentication key. Therefore, the change of the secret divisor will include the change of the program authentication key and the user authentication key.
- the authentication program of the user terminal 100 receives a new secret divisor input (S1001).
- the authentication program generates and stores a new secret hash value using the new secret divisor (S1003, S1005).
- the authentication program generates a time stamp and generates and stores a new program authentication key using the time stamp, the new secret hash value, and the device authentication key (S1007, S1009, and S1011).
- the authentication program receives a server selection input for changing the secret divisor from the user (S1013).
- the user can select one server, or select multiple servers, or select all servers. In this embodiment, it is assumed that one authentication server 200 is selected.
- the authentication program receives an ID and a personal password input from the user (S1015).
- the authentication program generates a new user authentication key using the secret hash value and the personal password (S1017).
- the authentication program transmits a secret divisor change request including a device authentication key, the user ID, the new program authentication key, the new user authentication key, an existing program authentication key, and an existing user authentication key to the authentication server 200 ( S1019).
- the authentication server 200 receives the secret divisor change request (S1021), and stores a user authentication key, a device authentication key, a program authentication key, and an existing user authentication included in the secret divisor change request using a user ID. The verification is performed to compare the key, the device authentication key, and the existing program authentication key (S1023).
- the authentication server 200 transmits a change failure notification to the user terminal 100 (S1025), and if all of the comparison results match, the authentication server 200 previously stored user authentication.
- the key and the program authentication key are modified to the new user authentication key and the new program authentication key included in the secret divisor change request (S1027).
- the authentication server 200 transmits a change success notification to the user terminal 100 (S1029).
- 12 and 13 are flowcharts illustrating an online shopping process according to an embodiment of the present invention.
- a user accesses a shopping server using a user terminal 100, selects a product to purchase, and inputs delivery information such as orderer information and payment means information.
- the shopping server presents a payment approval method to the user terminal 100, and the user selects a hash lock payment approval method according to the present invention among various payment approval methods (S1101 and S1103).
- the shopping server transmits a hash lock ID request to the user terminal, and the user terminal receives the hash lock ID from the user and transmits the hash lock ID to the shopping server (S1105 and S1107).
- the hash lock ID is an ID registered at the time of user registration in the authentication server 200.
- the shopping server transmits a payment approval request including the received ID and transaction details to the authentication server 200 (S1109).
- the transaction details include a name, a product name, an amount of money, and a means of payment of the shopping mall.
- the authentication server 200 identifies a user by using the ID included in the payment approval request and pushes a notification message including transaction details to the user terminal 100 (S1111).
- the authentication program of the user terminal 100 As the notification message is pushed, the authentication program of the user terminal 100 is executed, and the authentication program displays the notification message and receives payment means identification information from the user (S1113).
- the payment means identification information may include a withdrawal account number, credit card number, telephone number, and the like.
- the authentication program transmits a payment approval request including a user ID, a device authentication key, a program authentication key, the generated user authentication key, the transaction information hash value, and payment means identification information to the authentication server 200 (S1121). .
- the authentication server 200 receiving the payment approval request searches for previously stored authentication information using the ID included in the payment approval request, and retrieves the authentication information and the payment approval.
- the device authentication key, the program authentication key, and the user authentication key included in the request are compared and verified (S1123).
- the authentication server 200 transmits a user authentication failure notification to the user terminal 100 (S1125).
- the authentication server 200 generates a transaction information hash value (S1129). That is, a transaction information hash value is generated by inputting a user authentication key extracted from the authentication information, transaction details received from the shopping server in step S1109 and payment means identification information included in the payment approval request to a hash function.
- the authentication server 200 compares and validates the transaction information hash value generated as described above with the transaction information hash value included in the payment approval request (S1131). If the transaction information hash values do not match, the authentication server 200 transmits an integrity failure notification to the user terminal 100 (S1127). On the other hand, when the transaction information hash values match, the authentication server 200 executes the settlement, and notifies the shopping server and the user terminal 100 of the results (S1133, S1135, and S1137).
- the user terminal 100 may communicate with the authentication server 200 through the authentication program 113 to perform one time password (OTP) authentication using a hash algorithm.
- the authentication server 200 communicates with the user terminal 100 to perform OTP authentication. To this end, the authentication server 200 stores and registers a secret hash value when it is received from the user terminal 100. That is, the authentication server 200 shares a secret hash value with the user terminal 100.
- the authentication server 200 When the authentication server 200 receives an OTP authentication request from the user terminal 100, the authentication server 200 generates a one-time secret password and transmits it to the user terminal 100, and includes the one-time secret password from the user terminal 100.
- a server-side user authentication key is generated using the secret hash value stored by the user and the one-time secret password and compared with the user-side user authentication key.
- the authentication server 200 processes authentication success when the user authentication key is the same, and fails authentication if it is not the same.
- the authentication server 200 may be a server of a bank, a card company, a communication company or a general portal site, or may be a server of a payment agency service (PG) company. In this embodiment, only the authentication server is described.
- the authentication server may communicate with the service server and return the authentication result of the user according to the request of the service server. It can be understood that the authentication server of the present embodiment includes a service server.
- FIG. 14 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- the authentication program 113 includes a secret hash value generation module 1410, a one-time secret password input module 1420, and a user authentication key generation module 1430.
- the secret hash value generation module 1410 receives a secret divisor from a user through an input device.
- the secret divisor may be any one of a long string, an image file, a sound file, or a video file, but is not limited thereto.
- the secret hash value generation module 1410 sets the secret divisor as a seed value to the hash function as a secret hash value.
- the secret hash value may be stored as a binary file.
- the secret hash value generation module 1410 registers the secret hash value by transmitting the secret hash value to the authentication server 200.
- the secret hash value generated by the secret hash value generation module 1410 may be stored in the user terminal 100 or may be stored in a separate storage medium such as an NFC card through the RF circuit 152. When the secret hash value is stored in a separate storage medium such as an NFC card, the user terminal 100 does not store the secret hash value.
- the user authentication key generation module 1430 inputs the one-time secret password input by the one-time secret password input module 320 and the secret hash value generated by the secret hash value generation module 310 as a seed value to the hash function.
- the user authentication key here is a result obtained by inputting the one-time secret password and the secret hash value into a hash function as a seed value.
- the secret hash value is stored in a separate storage medium, such as an NFC card
- the user authentication key generation module 1430 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through the RF circuit 152. You can read the secret hash value by running
- the user authentication key generation module 1430 transmits the user authentication key to the authentication server 200 and receives an authentication result from the authentication server 200.
- the authentication result is an authentication success response or an authentication failure response
- the authentication success response or failure response is a response based on a comparison result of the user authentication key.
- the authentication server 200 includes a secret hash value registration module 1510 and a one-time secret password generation module 1520. ) And an authentication processing module 1530. These may be implemented in software installed in memory, or in a combination of hardware and software.
- the secret hash value registration module 1510 receives and registers the secret hash value generated by the user terminal 100 from the user terminal 100.
- the registration may mean mapping and storing identification information of the user, for example, an ID and the secret hash value.
- the authentication server 200 may receive account information (ID and password) from the user and register to process membership, and the secret hash value registration module 410 may receive the secret hash value after the user logs in.
- the one time secret password generation module 1520 generates a one time secret password for authentication of the user.
- the one-time secret password can be generated with a random function.
- the one-time secret password generation module 1520 may generate a one-time secret password when receiving an OTP authentication request from the user terminal 100, specifically, from the authentication program 113. At this time, the one-time secret password generation module 1520 may generate the one-time secret password by inputting the registered secret hash value and time stamp as a seed value to the random number function.
- the authentication processing module 1530 receives a user authentication key from the user terminal 100.
- the authentication processing module 1530 inputs the one-time secret password generated by the one-time secret password generation module 1520 and the secret hash value of the user registered by the secret hash value registration module 1510 as a seed value in a hash function to authenticate the user. Create a key.
- the authentication processing module 1530 compares the generated user authentication key with the user authentication key received from the user terminal 100 and transmits an authentication success response to the user terminal 100 if they match, and does not match. The authentication failure response is transmitted to the user terminal 100.
- the one-time secret password generation module 1520 and the authentication processing module 1530 use a user terminal using an IP address of the logged in user terminal 100 or session information (including ID information) maintained with the user terminal 100. 100) can be identified. That is, when the user authentication key is received from the user terminal 100, the one-time secret password transmitted to the user terminal 100 using the IP address or session information of the user terminal 100 and the registered secret hash value of the user Can be identified.
- 16 is a flowchart illustrating an authentication method using OTP according to the present invention.
- the secret server value is received and registered in advance in the authentication server 200 from the user terminal 100.
- the authentication server 200 transmits the generated one-time secret password to the user terminal 100 (S1605).
- the authentication server 200 may receive the telephone number from the user terminal 100 and transmit the disposable secret password in a text message to the user terminal 100 using the telephone number as the incoming telephone number.
- the authentication server 200 may transmit a call to the user terminal 100 and transmit a one-time secret password to an ARS (Automatic Response Service).
- the one-time secret password is transmitted to the user terminal 100, but the present invention is not limited thereto and may be transmitted to another device such as a wearable device of the user.
- the user When the user receives the one-time secret password from the authentication server 200, the user inputs the received one-time secret password to the user terminal 100 (S1607).
- the user terminal 100 generates a user authentication key by inputting the one-time secret password and the secret hash value stored in the user terminal 100 as a seed value to the hash function (S1609).
- the secret hash value is stored in a separate storage medium such as an NFC card
- the user terminal 100 performs short range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through the RF circuit 152. You can read the secret hash value.
- the user terminal 100 transmits the generated user authentication key to the authentication server 200 (S1611).
- the authentication server 200 Upon receiving the user authentication key from the user terminal 100, the authentication server 200 seeds the one-time secret password generated in step S1603 and the secret hash value previously received and registered from the user terminal 100 in the hash function. In operation S1613, a user authentication key is generated. The authentication server 200 compares whether the user authentication key received from the user terminal 100 in step S1611 and the user authentication key generated in step S1613 are the same (S1615).
- the authentication server 200 determines that the authentication failure and transmits an authentication failure response to the user terminal 100 (S1617). On the other hand, if the user authentication key is the same, the authentication server 200 determines that the authentication is successful and transmits an authentication success response to the user terminal 100 (S1619).
- OTP one-time secret password
- 17 is a view showing the configuration of a one-time secret password input module according to an embodiment of the present invention.
- the one time secret password input module 1420 may include an image registration module 1710, an image input module 1720, and a one time secret password extraction module 1730.
- the image registration module 1710 communicates with the authentication server 200, receives candidate images and codes thereof from the authentication server 200, displays the candidate images on the screen, and selects a key image and a fake image from the user.
- the camouflage image means an image that is displayed together with the key image so that the key image is not exposed to others.
- the authentication processing module 1530 of the authentication server 200 stores the candidate images and their codes and transmits the candidate images and their codes to the user terminal 100 when the user terminal 100 is connected.
- the image registration module 1710 displays candidate images as shown in FIG. 18 after receiving the candidate images and their codes from the authentication server 200.
- the user selects a key image and a fake image from among the candidate images shown in FIG. 18. For example, select three key images and nine camouflage images.
- the image registration module 1710 transmits a code of a key image selected from a user and a code of a fake image to the authentication server 200. At this time, the image registration module 1710 does not transmit the information for distinguishing the code of the key image and the code of the camouflage image. Therefore, the authentication server 200 does not know which code is the key image designated by the user even if the code of the image is received.
- the authentication processing module 1530 of the authentication server 200 maps and stores the codes of the received images to identification information (eg, ID) of the user.
- the image registration module 1710 stores the code of the key image among the key image and the camouflage image and the selection order information of the key image of the user in the user terminal 100, and does not store the code of the camouflage image in the user terminal 100. . That is, only the code and the order information of the key image are stored in the user terminal 100, and the code of the key image and the fake image is stored in the authentication server 200. However, the authentication server 200 does not store the distinguishing information of the key image and the camouflage image.
- the image input module 1720 displays an interface for allowing a user to input a one-time secret password received from the authentication server 200 as an image.
- Image input module 1720 displays two concentric circle interfaces.
- the authentication processing module 1530 of the authentication server 200 transmits the key image and the camouflage image set by the user and their codes to the image input module 1720.
- the first circle interface has a candidate secret password such as numbers, special characters, or alphabets displayed along the perimeter
- the second circle interface has a key image and a camouflage image along the perimeter.
- the first circle interface may not rotate, and the second circle interface may rotate according to a user input. However, on the contrary, the first circle interface may rotate, and the second circle interface may not rotate. Alternatively, both the first and second circle interfaces may rotate. In the present embodiment, only the second circle interface is described as rotating.
- the image input module 1720 receives the key image and the camouflage image and their codes registered by the user from the authentication processing module 1530 of the authentication server 200 and stores the received key image and the camouflage image. 2 Circle the perimeter on the interface.
- the image input module 1720 may also receive candidate secret ciphers and their codes of the first circle interface from the authentication server 200 and list the received candidate secret ciphers along the perimeter of the first circle interface.
- the candidate secret ciphers and their code of the first circle interface may be stored in the terminal itself.
- FIG. 19 illustrates a circle interface according to an embodiment of the present invention. As shown in FIG. 19, numbers 1 through 12 are listed along the circumference of the circle in the first circle interface 1910 of the circle interface, and the first circle interface 1910 in the second circle interface 1920.
- the key image and the camouflage image that surrounds the outside of the user and registered in the authentication server 200 are received from the authentication server 200 and are randomly arranged along the circumference of the circle.
- the image input module 1720 receives a rotation input for the second circle interface from the user to rotate the second circle interface.
- the rotational input may be touch and drop or may be mouse or button input.
- the one-time secret password extraction module 1730 is the first position that is located in the same orientation as the key image of the first order among the key images stored in the user terminal 100 when the user presses the complete input after rotating the second circle interface Extract candidate secret password of circle interface.
- the one-time secret password extraction module 1730 performs this process by the number of key images stored in the user terminal 100 by the user, and thus extracts the one-time secret password.
- the user inputs rotation and completion of the second circle interface, and the one-time secret password extraction module 730 is completed.
- the code of the images listed in the second circle interface is extracted to produce a 1 ⁇ 12 matrix. If the number of key images is n, an n ⁇ 12 matrix is created.
- the user rotates the second circle interface to Position the soccer ball image so that it has an orientation equal to the number '1' of the first circle interface and enter Done.
- the one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock direction to generate a first 1 ⁇ 12 matrix.
- the user rotates the second circle interface again so that the baseball image is in the same orientation as the number '2' of the first circle interface and inputs completion.
- the one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock direction to generate a second 1 ⁇ 12 matrix. Finally, the user rotates the second circle interface again so that the rugby ball image is in the same orientation as the number '7' of the first circle interface and enters a complete. The one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock position to generate a third 1 ⁇ 12 matrix. Thus, a 3x12 matrix is finally extracted.
- the one-time secret password extraction module 1730 extracts the coded coordinates of the key image from the extracted matrix based on the key image set by the user and the order thereof, and extracts the one-time secret password based on the extracted coordinates.
- the one-time secret password extraction module 1730 is a soccer ball in the first row of the 3 ⁇ 12 matrix because the key image and the order set by the user are (soccer ball, baseball ball, rugby ball).
- the coordinates of the baseball ball are identified, and the number '2' of the first circle interface corresponding to the coordinates is extracted.
- the coordinates of the rugby ball code are identified, and the number '7' of the first circle interface corresponding to the coordinates is extracted.
- the one-time secret password of (1, 2, 7) is finally extracted.
- the user registers and uses at least two or more key images. But not limited to this, the user can register and use a single key image. In this case, the order of the key images need not be considered, and the user may repeatedly use one key image.
- the user first places one key image in the same orientation as the number '1' on the first circle interface, then enters a completion, then places it in the same orientation as the number '2', then enters a completion. Finally, put it in the same direction as the number '7' and then enter Done. Then, (1, 2, 7) is extracted as a one-time secret password.
- the embodiment referring to FIG. 19 describes two circle interfaces.
- the present invention is not limited thereto, and three circle interfaces may be used.
- the authentication server 200 issues a one-time secret password for 6 digits and the user has registered three key images
- the one-time secret password in the user terminal 100 using three circle interfaces. Can be entered.
- FIG. 20 illustrates three circle interfaces according to an embodiment of the present invention.
- candidate secret passwords such as numbers and special characters are listed along the circumference of a circle in the first circle interface 2010 among three circle interfaces, and a first circle interface 2020 is located in the first circle interface 2020.
- the same candidate secret ciphers as the first circle interface 2010 are listed along the circumference of the circle.
- the third circle interface 2030 the key image and the camouflage image are randomly arranged along the circumference of the circle.
- all of the first to third circle interfaces may rotate, or only two circle interfaces may rotate. In the present embodiment, a case in which the second and third circle interfaces rotate.
- the user may access the second and third circle interfaces. Rotate so that the number '1' of the first circle interface, the number '0' of the second circle interface, and the 'soccer ball' image of the third circle interface are located in the same orientation, and enter complete. Next, the user rotates the second and third circle interfaces again so that the number '0' of the first circle interface, the number '2' of the second circle interface and the 'baseball ball' image of the third circle interface are located in the same orientation. And complete.
- candidate secret passwords that is, numbers, of the first and second circle interfaces located in the same orientation as the key image can be extracted in each order.
- '10' can be extracted from the first operation
- '02' can be extracted from the second operation
- '07' can be extracted from the third operation.
- Extraction of a one-time secret password using a key image in the three circle interfaces described with reference to FIG. 20 may be performed through matrix operations like the two circle interfaces.
- Each of the first and second circle interfaces is mapped with candidate secret ciphers and their code, and the third circle interface is mapped with images and the code of the images.
- Each circle interface is made one row according to certain criteria.
- the constant criterion is, for example, when a circle interface is first displayed, the candidate row includes a list of candidate secret passwords or images clockwise around 12 o'clock, and when the circle interface is rotated, the row value is shifted by that rotation. After the shift, you can identify the value of each column in each row.
- the coordinates of the key image are extracted from the matrix values of the third circle interface, and the matrix values of the first and second circle interfaces of the same coordinates are extracted as the one-time secret password.
- the key image and the camouflage image set by the user is stored in the authentication server 200, but the identification information of the key image and the camouflage image is not stored, so the authentication server 200 determines which image is the key image. Unknown, the authentication server 200 only transmits the key image and the camouflage image set by the user and their codes to the user terminal 100. The division information of the key image is stored and used in the user terminal 100.
- the identification image of the key image may be stored together with the key image and the camouflage image set by the user in the authentication server 200, and the authentication server 200 may store the key image and
- the authentication server 200 may store the key image and
- the identification information of the key image may be transmitted together.
- the user terminal 100 does not need to store the information of the key image, and receives only the identification information of the key image from the authentication server 200 only at the time of authentication and temporarily stores it and deletes it after the authentication is completed.
- the image registration module 1710 transmits information for distinguishing the code of the key image and the code of the camouflage image to the authentication server 200.
- the user terminal 100 extracts the one-time secret password through the circle interface and then transfers the extracted one-time secret password to the authentication server 200. But it is not limited here.
- the authentication server 200 stores the key image and the camouflage image set by the user, and also stores the identification information of the key image.
- the user terminal 100 does not directly extract the one-time secret password from the circle interface, but when the user operates the circle interface to input the one-time secret password, the matrix extracted from the circle interface (for example, the circle interface of FIG. 19). If a 2 ⁇ 12 matrix extracted from the first and second circle interfaces, and FIG. 20 shows a 3 ⁇ 12 matrix, a user authentication key is generated and transmitted to the authentication server 200. Since the authentication server 200 stores the identification information of the key image and knows the one-time secret password, the authentication server 200 may generate a user authentication key by itself in the same manner as in the user terminal 100, and generate the user by itself. The authentication is performed by comparing the authentication key with the user authentication key received from the user terminal 100.
- the user authentication key generation module 1430 may convert the matrix generated by the circle interface in the one time secret password input module 1420 and the secret hash value generated in the secret hash value generation module 1410 into a hash function. Create a user authentication key by entering the seed value.
- the authentication processing module 1530 of the authentication server 200 generates a matrix using a circle interface using a key image and a camouflage image registered by the user and a one-time secret password issued by the server, and the matrix and the user register. A user authentication key is generated using the secret hash value, and the user authentication key received from the user terminal 100 is compared.
- the authentication server 200 transmits the code of the key image and the camouflage image to the user terminal 100 to the user terminal 100 to implement a circle interface, the code of the key image and camouflage image is a one-time virtual code Can be.
- the authentication server 200 may issue and use a one-time virtual code as a code of a key image and a camouflage image each time authentication is performed. Therefore, even if the matrix is hacked at the network end by the hacker, since the code of the image is changed at the next authentication, secure authentication is possible.
- 21 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- the authentication program 113 in comparison with FIG. 14, the authentication program 113 according to the present embodiment further includes a device authentication key generation module 2110 and a program authentication key generation module 2120.
- the device authentication key generation module 2110 collects unique information of the user terminal 100, for example, a MAC address of a network interface card (NIC), and uses the collected unique information when the authentication program 113 is first executed. To generate a device authentication key. Specifically, the device authentication key management module 2110 stores the value generated by inputting the unique information of the user terminal 100 as a seed value to the hash function as a device authentication key, and transmits the secret to the authentication server 200. It registers with the authentication server 200 similarly to a hash value. The secret hash value registration module 1510 of the authentication server 200 stores the secret hash value of the user and the device authentication key together.
- NIC network interface card
- the device authentication key generation module 2110 may transmit the device authentication key previously stored every time to the authentication server 200 and receive an authentication result.
- the authentication processing module 1530 of the authentication server 200 compares a device authentication key that has been registered with the device authentication key received from the device authentication key generation module 2110 every time it is authenticated. Return the authentication result. That is, if authentication is attempted at another terminal instead of the predetermined user terminal 100, the authentication is failed.
- the device authentication key generation module 2110 may generate a device authentication key every time the authentication program 113 is executed and compare the device authentication key with the previously stored device authentication key.
- the device authentication key generation module 2110 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other.
- the authentication program 113 duplicated in the device is automatically deleted.
- the program authentication key generation module 2120 generates and stores a program authentication key by using the device authentication key, the time stamp, and the secret hash value generated by the device authentication key generation module 2110, and stores the program authentication key. Send it to the authentication server 200 to register with the secret hash value.
- the secret hash value registration module 1510 of the authentication server 200 stores the secret hash value of the user and the program authentication key together.
- the program authentication key may be stored in the authentication program 113 as a binary file.
- the time stamp is a string indicating the time at which the program authentication key is generated.
- the program authentication key generation module 2120 may transmit the program authentication key to the authentication server 200 every time authentication and receive an authentication result.
- the authentication processing module 1530 of the authentication server 200 compares a previously registered program authentication key with a program authentication key received from the program authentication key generation module 2120 every time the authentication is not matched. And return the result. That is, in addition to the case where authentication is attempted at another terminal instead of the predetermined user terminal 100, when the authentication program 113 is reinstalled or duplicated, the timestamp value is changed and authentication fails.
- the one-time secret password is encrypted with a hash algorithm along with a secret hash value to the authentication server 200. Because of the transmission, hacking of the one-time secret password is impossible.
- the present invention by using the device authentication key and the program authentication key to the additional device authentication and program authentication, it is possible to ensure a one-person program. That is, even if an authentication program (for example, an application) is copied and executed on another user terminal, the authentication of the device authentication key fails and the authentication fails. In addition, if the program is reinstalled after deleting the same terminal, the program authentication key is changed and authentication also fails. Therefore, it is possible to block hacking of personal information by uninstalling and reinstalling the program.
- an authentication program for example, an application
- the authentication server 200 generates a one-time secret password and transmits it to a destination designated by the user.
- the authentication server 200 may not transmit the one-time secret password. That is, the user carries the portable disposable secret password generator, and the portable disposable secret password generator stores the same secret hash value as the secret hash value stored in the user terminal 100.
- the portable one-time secret password generator generates a one-time secret password using the same algorithm as the authentication server 200.
- the portable one-time secret password generator generates and displays a one-time secret password by inputting a secret hash value and a timestamp into the random number function as a seed value.
- the user inputs the one-time secret password displayed on the portable one-time secret password generator to the user terminal 100 to transmit the user authentication key to the authentication server 200.
- the input may be the image input method described above, or may be a text input.
- the authentication server 200 generates a one-time secret password by inputting the same timestamp and the already registered secret hash value as a seed value to the random number function as a portable one-time secret password generator.
- the authentication server 200 generates the user authentication key by inputting the generated one-time secret password and the secret hash value into the hash function as a seed value, and then compares the user authentication key received from the user terminal 100.
- the portable one-time secret password generator is described as storing a secret hash value.
- the portable one-time secret password generator does not store the secret hash value, and like a conventional one-time secret password generator, it is possible to generate a one-time secret password using a timestamp and device serial number, and the user can use the key image to generate the secret password.
- the one-time secret password may be input, and the user terminal 100 may generate the user authentication key by inputting the one-time secret password and the secret hash value as a seed value to the hash function and transmit the generated authentication key to the authentication server 200.
- the authentication of the user is performed by the existing hardware-based one-time secret password authentication method
- the user terminal 100 receives the one-time secret password using the image, hash-encrypting the one-time secret password using the secret hash value It may be transmitted to the authentication server 200.
- the authentication system according to the present embodiment includes a user terminal 100, an authentication server 200, a communication network 300, and a service server 400.
- the user terminal 100 installs an authentication program 113 and generates a secret hash value, a device authentication key, a program authentication key, and a user authentication key by using a hash algorithm through the authentication program 113, and as the authentication information.
- the registration is transmitted to the authentication server 200.
- the user terminal 100 also transmits and registers user identification information to the authentication server 200 as authentication information.
- the authentication server 200 stores and registers the authentication information.
- the authentication server 200 compares the device authentication key and the program authentication key received from the user terminal 100 with the device authentication key and the program authentication key of a pre-registered user. If the pre-authentication is successful, the authentication server 200 issues a one-time secret password and transmits it to the user.
- the authentication server 200 receives a one-time authentication key using the one-time secret password from the user terminal 100, the user generates a one-time authentication key using a pre-registered user authentication key and the issued one-time secret password to the user. The final authentication is performed by comparing with the one-time authentication key received from the terminal 100.
- the authentication server 200 receives the user identification information from the service server 400, the identification information for the user and the user is identified using the user identification information, the user terminal 100 and the pre-authentication and the final authentication Can be performed.
- the authentication server 200 returns the authentication result to the service server 400.
- the service server 400 may be an internet web server that requires a login or a server of a financial institution that provides Internet banking or a payment server that provides electronic payment, or an agent terminal of an offline consultation window such as an offline kiosk or a financial institution. Connected servers, and so on.
- the service server 400 transmits the user identification information received from the user to the authentication server 200 when the user authentication is required for the user, and requests the user authentication.
- the user identification information is user identification information stored in the authentication server 200.
- FIG. 23 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
- the authentication program 113 includes a secret hash value generation module 2310, a device authentication key generation module 2320, a program authentication key generation module 2330, and a user authentication key generation.
- Module 2340 one-time secret password input module 2350, one-time authentication key generation module 2360, pre-authentication request module 2370, and change module 2380.
- the secret hash value generation module 2310 sets the secret divisor as a seed value to the hash function as a secret hash value.
- the secret hash value may be stored as a binary file.
- the secret hash value generation module 2310 registers the secret hash value by transmitting the secret hash value to the authentication server 200.
- the secret hash value generated by the secret hash value generation module 2310 may be stored in the user terminal 100, or may be stored in a separate storage medium such as an NFC card through the communication circuit 152. When the secret hash value is stored in a separate storage medium such as an NFC card, the user terminal 100 does not store the secret hash value.
- the device authentication key generation module 2320 collects the unique information of the user terminal 100, for example, the MAC address or universally unique identifier (UUID) of the network interface card (NIC) when the authentication program 113 is first executed.
- the device authentication key is generated using the collected unique information.
- the device authentication key management module 2320 stores a value generated by inputting unique information of the user terminal 100 as a seed value in a hash function, as a device authentication key.
- the device authentication key generation module 2320 transmits and registers the device authentication key generated initially to the authentication server 200.
- the device authentication key generation module 2320 generates a device authentication key every time the authentication program 113 is executed and compares the device authentication key with the previously stored device authentication key.
- the device authentication key generation module 2320 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other.
- the authentication program 113 duplicated in the device is automatically deleted.
- the program authentication key generation module 2330 generates and stores a program authentication key using a device authentication key, a time stamp, and the secret hash value generated by the device authentication key generation module 2320.
- the program authentication key may be stored in the authentication program 113 as a binary file.
- the time stamp is a string indicating a time point at which a program authentication key is generated.
- the program authentication key generation module 2330 transmits and registers the first generated program authentication key to the authentication server 200. If the secret hash value is stored in a separate storage medium, such as an NFC card, the program authentication key generation module 2330 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through a communication circuit 152. You can read the secret hash value by running
- the user authentication key generation module 2340 generates a user authentication key using the secret hash value generated by the secret hash value generation module 2310 and a personal password input from a user through an input device. Specifically, the user authentication key generation module 2340 uses the secret hash value and the input personal password as a seed value in a hash function as a user authentication key. The user authentication key generation module 2340 transmits and registers the first generated user authentication key to the authentication server 200. If the secret hash value is stored in a separate storage medium, such as an NFC card, the user authentication key generation module 2340 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through a communication circuit 152. You can read the secret hash value by running
- the device authentication key and the program authentication key has been described as being stored in both the authentication program 113 and the authentication server 200, the user authentication key is not stored in the authentication program 113, authentication server 200 It is desirable to transmit and store only.
- the user may register in the authentication server 200 and the secret hash value, the device authentication key, the program authentication key, and the user authentication key are authenticated based on the user identification information (eg, ID) registered at the time of membership registration. It is stored in the server 200 as information for authentication.
- the authentication server 200 may store not only user identification information, but also personal information such as name, date of birth, and gender.
- the one-time secret password input module 2350 receives the one-time secret password generated by the authentication server 200 and received by the user-specified destination.
- the destination designated by the user may be the user terminal 100, or may be a wearable device carried by a separate user, or may be an email address. But it is not limited here.
- the one-time secret password may be received in the form of a short message (SMS) or a push message.
- SMS short message
- the one-time secret password input module 2350 may receive the one-time secret password through a keypad or may be input through an image.
- the one-time authentication key generation module 2360 may input the one-time secret password input from the one-time secret password input module 2350 and the user authentication key generated by the user authentication key generation module 2340 as a seed value in a hash function. Generate a one-time authentication key and transmit it to the authentication server (200). That is, when a one-time secret password is issued to the user from the authentication server 200, the user enters the personal password and the issued one-time secret password in the user terminal 100. Then, the user authentication key generation module 2340 generates a user authentication key using the personal password, and the one-time authentication key generation module 2360 generates a one-time authentication key using the user authentication key and the one-time secret password.
- the pre-authentication request module 2370 may receive a pre-authentication by transmitting a pre-authentication request including user identification information, a device authentication key, and a program authentication key to the authentication server 200 before final authentication using the one-time secret password.
- the authentication server 200 issues a one-time secret password when the user identification information, the device authentication key, and the program authentication key included in the pre-authentication request are the same as the previously registered user identification information, the device authentication key, and the program authentication key. .
- the change module 2380 performs the change of the secret divisor, the change of the personal password, the change of the program authentication key according to the reinstallation of the authentication program, and the change of the device authentication key and the program authentication key according to the change of the user terminal 100.
- the secret divisor is changed, the secret hash value is changed so that the program authentication key and the user authentication key using the secret hash value are changed together.
- the personal password is changed, the user authentication key using the same is changed.
- the change module 2380 transmits a secret divisor change request including the device authentication key and the program authentication key to the authentication server 200.
- the authentication server 200 When the device authentication key and the program authentication key included in the secret divisor change request and the device authentication key and the program authentication key previously registered in the authentication server 200 match, the authentication server 200 generates a one-time secret password. Issue to the user.
- the one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200.
- the authentication server 200 When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360.
- the change module 2380 controls the secret hash value generation module 2310, the user authentication key generation module 2340, and the program authentication key generation module 2330 to generate a new secret hash value. In addition, a new user authentication key and a new program authentication key are generated.
- the secret hash value generation module 2310, the user authentication key generation module 2340, and the program authentication key generation module 2330 may generate a newly generated secret hash value, a user authentication key, and a program authentication key from the authentication server 200.
- the authentication server 200 updates the previously registered secret hash value, user authentication key, and program authentication key with new values.
- the change module 2380 receives the secret divisor change complete response from the authentication server 200.
- the change module 2380 transmits a personal password change request including the device authentication key and the program authentication key to the authentication server 200.
- the authentication server 200 When the device authentication key and the program authentication key included in the personal password change request and the device authentication key and the program authentication key previously registered in the authentication server 200 match, the authentication server 200 generates a one-time secret password. Issue to the user.
- the one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200.
- the authentication server 200 When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360. When the match response is returned as described above, the change module 2380 controls the user authentication key generation module 2340 to generate a new user authentication key.
- the user authentication key generation module 2340 transmits a new user authentication key to the authentication server 200, and the authentication server 200 updates a user authentication key that has been previously registered with the new user authentication key.
- the change module 2380 receives a personal password change complete response from the authentication server 200.
- the secret hash value generation module 2310 receives the secret divisor from the user and generates and stores the secret hash value.
- the device authentication key generation module 2320 and the program authentication key generation module 2330 also generate a new device authentication key and program authentication key.
- the user authentication key generation module 2340 generates a new user authentication key.
- the change module 2380 may generate a user authentication key, a device authentication key, and a program authentication key generated by the user authentication key generation module 2340, the device authentication key generation module 2320, and the program authentication key generation module 2330.
- the reinstallation registration message is transmitted to the authentication server 200.
- the authentication server 200 issues a one-time secret password to the user.
- the one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200.
- the authentication server 200 When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360.
- the authentication server 200 updates the existing program authentication key with the new program authentication key included in the reinstallation registration message.
- the change module 2380 receives the reinstallation registration complete response from the authentication server 200.
- the secret hash value generation module 2310 receives a secret divisor from a user and generates and stores a secret hash value.
- the device authentication key generation module 2320 and the program authentication key generation module 2330 also generate a new device authentication key and program authentication key.
- the user authentication key generation module 2340 generates a new user authentication key. If the user terminal 100 is changed, the authentication program is reinstalled, but since the secret divisor and the personal password are the same, the device authentication key and the program authentication key are different from the existing ones, and the user authentication key and the secret hash value are the same as before.
- the authentication server 200 When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360.
- the authentication server 200 updates the device authentication key and the program authentication key registered previously with the new device authentication key and the new program authentication key included in the device change registration message.
- the change module 2380 receives a device registration complete response from the authentication server 200.
- the authentication server 200 When changing the secret divisor, the personal password, the program authentication key due to the reinstallation of the authentication program, the device authentication key and the program authentication key according to the change of the user terminal 100, the authentication server 200 The user may receive user identification information from the user terminal 100 and check whether the user identification information is matched with previously registered user identification information.
- FIG. 24 is a diagram illustrating the configuration of the authentication server of FIG. 22.
- the authentication server 200 includes a secret hash value registration module 2410, a user authentication key registration module 2420, and a one-time secret password.
- Generation module 2430, one-time authentication key comparison module 2440, device authentication key registration module 2450, program authentication key registration module 2460, pre-authentication request receiving module 2470 and change registration module 2480 do. These may be implemented as programs installed in the memory, or may be implemented as a combination of hardware and software.
- the secret hash value registration module 2410 receives and registers a secret hash value from the user terminal 100.
- the registration here means storing together with the user identification information.
- the authentication server 200 may register a secret hash value based on the generated user identification information by processing user registration. Since the secret hash value has been described above, a detailed description thereof will be omitted.
- the user authentication key registration module 2420 receives and registers a user authentication key from the user terminal 100. Since the user authentication key has been described above, a detailed description thereof will be omitted.
- the one-time secret password generation module 2430 may generate a one-time secret password as shown in Equation 1 or 2 below.
- One-time secret password f (ENC_eHPSS + TimesTAMP)
- One-time secret password f (eHPSS + TimesTAMP)
- eHPSS is a secret hash value
- f () is a hash function
- timestamps can be replaced with other values, and one-time secret passwords can be created by adding additional data as seed values in addition to the timestamp and secret hash values. . Since the secret hash value is used when generating the one-time secret password, the one-time secret password becomes a personalized one-time secret password.
- the one time secret password generation module 2430 transmits the generated one time secret password to a destination designated by the user.
- the one-time secret password may be transmitted in the form of a text message (SMS) or push message or email or an Automatic Response Service (ARS).
- SMS text message
- ARS Automatic Response Service
- the one-time secret password generation module 2430 may receive a telephone number or e-mail address from the user.
- the one-time authentication key comparison module 2440 compares the one-time authentication key generated by the user. Since the method of generating the one-time authentication key in the user terminal 100 has been described above, the description thereof will be omitted.
- the one-time authentication key comparison module 2440 may seed the one-time secret password issued to the user in the one-time secret password generation module 2430 and the user authentication key of the user registered in the user authentication key registration module 2420 to a hash function. Generate a one-time authentication key, and compare the one-time authentication key with the one-time authentication key from the user terminal 100.
- the one-time authentication key comparison module 2440 transmits the one-time authentication key comparison result to the user terminal 100.
- the device authentication key registration module 2450 receives and registers a device authentication key from the user terminal 100. Since the device authentication key has been described above, a detailed description thereof will be omitted.
- the program authentication key registration module 2460 receives and registers a program authentication key from the user terminal 100. Since the program authentication key has been described above, a detailed description thereof will be omitted.
- the authentication server 200 may process a user registration and store a secret hash value, a user authentication key, a device authentication key, and a program authentication key based on the generated user identification information.
- the pre-authentication request receiving module 2470 When the pre-authentication request receiving module 2470 receives user identification information for authenticating the user from the service server 400, the pre-authentication request receiving module 2470 transmits an identity authentication notification message to the corresponding user terminal 100. As the user authentication notification message is received by the user terminal 100, the user terminal 100 transmits a pre-authentication request including user identification information, a device authentication key, and a program authentication key, and the pre-authentication request receiving module 2470 Receive the pre-authentication request.
- the one time secret password generation module 2430 searches for a device authentication key and a program authentication key previously registered in the authentication server 200 by using the user identification information included in the pre-authentication request.
- the one-time secret password generation module 2430 generates a one-time secret password when the matched device authentication key and the program authentication key and the device authentication key and the program authentication key included in the pre-authentication request are matched to the destination designated by the user. To transmit.
- the one-time authentication key comparison module 2440 When the one-time authentication key comparison module 2440 receives the one-time authentication key from the user terminal 100, the one-time authentication key comparison module 2440 compares the generated one-time authentication key with the self-generated authentication key, and if it matches, transmits the user authentication success response to the service server 400. do. If it does not match, the one-time authentication key comparison module 440 transmits a user authentication failure response to the service server 400.
- the change registration module 2480 registers change of secret divisor, change registration of personal password, change registration of program authentication key according to reinstallation of authentication program, device authentication key and program authentication key according to change of user terminal 100. Perform change registration. When the secret divisor is changed, the program authentication key and the user authentication key are changed and registered together. When the personal password is changed, the user authentication key using the same is registered with the change.
- the change registration module 2480 receives a secret divisor change request including a device authentication key and a program authentication key from the user terminal 100.
- the change registration module 2480 controls the one-time secret password generation module 2430 when the device authentication key and the program authentication key included in the secret divisor change request and the previously registered device authentication key and the program authentication key match. Issue a one-time secret password to the user.
- the one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches.
- the change registration module 2480 receives the newly generated secret hash value, the user authentication key and the program authentication key from the user terminal 100 to replace the previously registered secret hash value, the user authentication key and the program authentication key. Update
- the change registration module 2480 receives a reinstallation registration message including a user authentication key, a device authentication key, and a program authentication key from the user terminal 100 as the authentication program is reinstalled in the user terminal 100.
- the change registration module 2480 controls the one-time secret password generation module 2430 for one-time use. Issue a secret password to the user.
- the one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches.
- the change registration module 2480 replaces the previously registered program authentication key with the program authentication key included in the reinstallation registration message and updates the registered program authentication key.
- the change registration module 2480 receives a device change registration message including a user authentication key, a device authentication key, and a program authentication key from the user terminal 100 after the change as the user terminal 100 changes.
- the change registration module 2480 controls the one-time secret password generation module 2430 to issue a one-time secret password to the user.
- the one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches.
- the change registration module 2480 updates the previously registered device authentication key and program authentication key with the device authentication key and program authentication key included in the device change registration message.
- 25 is a flowchart illustrating a method for authenticating a user when a user registers with a service server according to an embodiment of the present invention.
- the authentication server 200 identifies user authentication information using the ID of the user included in the user authentication request received from the service server 400 and transmits a user authentication notification message to the user terminal 100 (S2505). .
- the user terminal 100 displays the user authentication notification message pop-up and receives an ID and a user authentication start input from the user (S2507).
- the user terminal 100 transmits a pre-authentication request including an ID of the user, a device authentication key, and a program authentication key to the authentication server 200 (S2509).
- the authentication server 200 compares the ID, device authentication key, and program authentication key included in the pre-authentication request with the ID, device authentication key, and program authentication key of a pre-registered user. (S2511).
- the authentication server 200 generates a one-time secret password using a secret hash value of a user that is registered in advance (S2513).
- the one-time secret password is generated according to (Equation 1) or (Equation 2) described above.
- the authentication server 200 transmits the one-time secret password to a destination designated by the user. In the present embodiment, it transmits to the user terminal 100 (S2515).
- the user terminal 100 receives a one-time secret password issued by the authentication server 200 from the user and receives a personal password from the user (S2517).
- the user terminal 100 generates a user authentication key using a secret hash value and the input personal password (S2519).
- the user terminal 100 generates a one-time authentication key using the user authentication key and the one-time secret password input from the user (S2521).
- the user terminal 100 transmits the generated one-time authentication key to the authentication server 200 (S2523).
- the authentication server 200 generates a one-time authentication key using the one-time secret password generated in step S2513 and a user authentication key of a user who is already registered, and generates the one-time authentication key and the user terminal 100 in step S2523. Compare the one-time authentication key received from the (S2525).
- the authentication server 200 transmits an authentication success response to the user terminal 100 and the service server 400 (S2527, S2529).
- the comparison result of the one-time authentication key if it does not match, the authentication server 200 transmits an authentication failure response to the user terminal 100 and the service server 400.
- This embodiment described with reference to FIG. 25 is a method for authenticating a user when a user joins a service server 400. But it is not limited to this.
- the identity authentication process described with reference to FIG. 25 is also performed when identity verification is performed offline such as a kiosk or a vending machine. That is, the kiosk or vending machine receives user identification information such as an ID from a user and directly transmits the user identification information to the authentication server 200 or transmits the user identification information to the authentication server 200 via the service server 400. You can make a request for identity verification.
- the kiosk or the vending machine may read the user identification information from the user terminal 100 through short-range communication such as NFC, RFID, or Bluetooth.
- the authentication process described with reference to FIG. 25 may be applied when a user consults offline in a financial institution.
- the user consults with an agent of a financial institution and requires his / her authentication
- the user provides user identification information to the agent
- the agent terminal directly transmits the user identification information input from the agent to the authentication server 200 or the service server 400.
- the user identification information may be transmitted to the authentication server 200 by transmitting the user identification information.
- the user may verbally provide the user identification information to the counselor, or present the card storing the user identification information to the counselor, and the counselor may read the card to the reader to obtain the user identification information.
- the user authentication may be performed as described with reference to FIG. 25.
- the identity authentication described above may be performed at the time of identity authentication. In this way, the identity authentication according to the present embodiment can be applied to all services required for identity authentication.
- the authentication server 200 performs a process of comparing the device authentication key and the program authentication key. That is, the authentication server 200 issues a one-time secret password only when the user uses the predetermined authentication program in the predetermined user terminal 100 and. Therefore, in the case of copying the authentication program and using it in another user terminal or using an unregistered authentication program, authentication is not successful and security is enhanced.
- the one-time secret password is generated using the secret hash value of the user, the one-time secret password cannot be inferred by analogy.
- the user terminal 100 does not send only the one-time secret password to the authentication server 200, and sends the user's personal password and one-time secret password encrypted by the hash algorithm, the original protection of the one-time secret password is possible.
- the timestamp can be used to create one-time secret passwords for added security.
- 26 is a diagram illustrating an authentication system according to another embodiment of the present invention.
- the authentication system includes a user terminal 100, a master server 600, a communication network 300, and a service server 400.
- the user terminal 100 includes a master program 2601 and a service program 2603.
- the master program 2601 communicates with the master server 600, registers the authentication information after registering as a member with the master server 600, and then authenticates the user with the master server 600 using the authentication information. To perform. At the time of membership registration, identification information such as ID, name, date of birth, address, telephone number, etc. may be stored in the master server 600 as member information.
- the authentication information includes a master device authentication key, a master program authentication key, and a master user authentication key generated using a hash algorithm. Of these, the master program authentication key and the master user authentication key are generated using the master secret hash value.
- the master program 2601 generates at least one service secret hash value that a user can use in the service server 400 and registers the secret secret value in the master server 600 and stores the generated secret hash value therein. At this time, when generating the service secret hash value, the master program 2601 receives a nickname of the service secret hash value from the user and stores the nickname. When the user selects any one of the at least one service secret hash value as the service secret hash value to be used by the service server 400, the master program 2601 selects a unique code of the service program 2603 as the service secret. It is also registered with the master server 600 while being stored with the hash value.
- the master program 2601 When the master program 2601 registers or changes the service secret hash value, the master program 2601 authenticates the user by using the master device authentication key, the master program authentication key, and the master user authentication key. Enable registration or change.
- the master server 600 registers the information for authentication in the database 610. As illustrated in FIG. 26, the master server 600 may include nicknames of at least one service secret hash value and each service secret hash value that the user may use in the service server 400 based on the user's ID. It stores in the database 610, and also stores the authentication information.
- the authentication is performed by comparing the master program authentication key and the master user authentication key.
- the master server 600 when the user authentication is required, the master device authentication key and the master device authentication key and the master device authentication key and the master device authentication key and the master program authentication key received from the user terminal 100 in the database 610 Pre-authentication is performed compared to the program authentication key. If the pre-authentication is successful, the master server 600 issues a one-time secret password and transmits it to the user.
- the master server 600 receives the one-time secret password generated using the one-time secret password and the master user authentication key from the user terminal 100, by using a pre-registered master user authentication key and the issued one-time secret password
- the final authentication may be performed by generating a one-time authentication key and comparing with the one-time authentication key received from the user terminal 100.
- the service server 400 may be an internet web server that requires a login or a server of a financial institution that provides Internet banking or a payment server that provides electronic payment, or an agent terminal of an offline consultation window such as an offline kiosk or a financial institution. Connected servers, and so on.
- the service server 400 needs to authenticate the user, the service server 400 directly communicates with the service program 2603 of the user terminal 100 to perform a user authentication process, or identify the user received from the user to the master server 600. Send information and request user authentication.
- the user identification information is user identification information such as an ID stored in the master server 600.
- the service server 400 may store the service device authentication key, the service program authentication key, and the service user authentication key received from the user terminal 100 in the database 410 during a user authentication process through direct communication with the service program 2603.
- the authentication is performed by comparing the service device authentication key, the service program authentication key, and the service user authentication key of the user who is registered.
- the secret divisor associated with the master server 600 is the master secret divisor
- the secret divisor associated with the service server 400 is the service secret divisor.
- the secret hash value associated with the master server 600 is a master secret hash value
- the secret hash value associated with the service server 400 is a service secret hash value.
- the master program 2601 uses a master secret hash value when generating the authentication information registered in the master server 600.
- the master program 2601 generates and manages at least one secret hash value, that is, a service secret hash value, which can be used when a user uses a service of the service server 400.
- the service secret hash value is stored in both the master program 2601 and the master server 600, and after performing the authentication process with the master server 600 even if the user terminal 100 is changed, the service from the master server 600. You can restore the secret hash value.
- the master program 2601 receives a nickname of each service secret hash value from the user and maps the service secret hash value to the service secret hash value.
- the master program 2601 receives the unique code of the service program 2603 corresponding to the service server 400.
- the master program 2601 maps the unique code to the corresponding service secret hash value and stores it. Therefore, the mapping information of the service secret hash value / nickname / unique code is stored in the user terminal 100, and the mapping information of the service secret hash value / nickname / unique code is stored in the master server 600 based on the user ID. Is stored.
- the master secret hash value and the service secret hash value are different because the seed secret divisors are different. Also, when there are a plurality of service secret hash values, the secret divisor, which is the seed of each service secret hash value, is also different, so that each service secret hash value is different.
- the service secret hash value is stored in synchronization with the user terminal 100 and the master server 600, but the master secret hash value is not stored in either. That is, the master secret hash value is generated by receiving a secret divisor from the user whenever necessary.
- the secret hash value is not stored by itself, but may be stored encrypted.
- the secret hash value can be encrypted with the device authentication key. Therefore, when the master program 2601 attempts to use the secret hash value, the master program 2601 recovers the encrypted secret hash value and the device authentication key, and then compares the restored device authentication key with a previously stored device authentication key. To perform. If the device authentication key does not match, the subsequent process is automatically stopped.
- the device authentication key may also be divided into a master device authentication key and a service device authentication key. Since the master program 2601 and the service program 2603 are installed in the same user terminal 100, the master device authentication key and the service device authentication key are the same.
- the program authentication key may be divided into a master program authentication key and a service program authentication key.
- the master program authentication key is generated from the master device authentication key, time stamp and master secret hash value
- the service program authentication key is generated from the service device authentication key, time stamp and service secret hash value.
- the user authentication key may also be divided into a master user authentication key and a service user authentication key.
- the master user authentication key is generated from the master secret hash value and the personal password
- the service user authentication key is generated from the service secret hash value and the personal password.
- the personal password input from the user when generating the master user authentication key and the personal password input when generating the service user authentication key may be different according to the user's selection.
- the device authentication key, the program authentication key, and the user authentication key described above are both stored in the user terminal 100 and the servers 600 and 400, and the user authentication key is Only stored on servers 600 and 400.
- the master secret hash value is not stored anywhere and is generated every time the user authenticates the master server 600 with the user.
- the service secret hash value is stored in synchronization with the master program 2601 and the master server 600.
- Authentication success can be divided into two types.
- the programs 2601 and 2063 transmit an authentication request including the user identification information, the device authentication key, the program authentication key, and the user authentication key to the servers 600 and 400.
- the server 600 and 400 may include user identification information, device authentication key, program authentication key, and user authentication key included in the authentication request, user identification information, device authentication key, program authentication key, and user authentication key that are pre-registered. If it is the same, authentication succeeds.
- the programs 2601 and 2063 generate a one-time secret key input from the user and a user authentication key as a seed value in a hash function, and generate the one-time authentication key, and transmit them to the servers 600 and 400.
- the server 600 or 400 compares the received one-time authentication key with the one-time authentication key generated by itself, and successively authenticates the same.
- the servers 600 and 400 generate a one-time authentication key by using the issued one-time secret password and a user authentication key of the user who is stored therein.
- the authentication of the user using the device authentication key, the program authentication key, and the user authentication key is described.
- the user can be authenticated using only the user authentication key. Can be used for authentication.
- the device authentication key it is possible to block attempting authentication at another user terminal 100 instead of the determined user terminal 100.
- the program authentication key it is possible to block a case where the program is illegally copied and used for authentication.
- the above-described authentication method can be applied when the user sets a new service secret hash value in the master program 2601 or changes a preset service secret hash value. That is, the master program 2601 can set a new service secret hash value when the user is successfully authenticated through the above-described authentication process with the master server 600, and also change the existing service secret hash value. .
- FIG. 27 is a flowchart illustrating a process of registering a service secret hash value according to an embodiment of the present invention.
- a user first executes a master program 2601 in the user terminal 100 and registers as a member of the master server 600 through the master program 2601 (S2701). That is, the user enters an ID, a social security number, a password, an address, and the like to join the master server 600.
- the user selects the master secret divisor through the input device of the user terminal 100 (S2703).
- the master secret divisor may be any one of a long text string, an image file, a sound file, or a video file, but is not limited thereto.
- the master program 2601 generates a master secret hash value by inputting the selected master secret divisor as a seed value to a hash function (S2705).
- the master program 2601 generates information for authentication (S2707).
- the authentication information includes a master device authentication key, a master program authentication key, and a master user authentication key.
- the master user authentication key is generated by inputting the master secret hash value and the personal password input from the user through the input device as a seed value to the hash function.
- the master program 2601 transfers the generated authentication information to the master server 600 and registers it (S2709).
- the master server 600 stores authentication information based on the ID of the user.
- the master program 2601 also stores the master program authentication key and the master device authentication key in the user terminal 100 except for the master user authentication key.
- the user selects a service secret divisor through the input device of the user terminal 100 (S2711).
- the master secret divisor and the service secret divisor are chosen to be different.
- the user inputs a nickname for the selected service secret divisor through the input device of the user terminal 100 (S2713).
- the master program 2601 generates a service secret hash value by inputting the selected service secret divisor as a seed value to a hash function (S2715).
- the master program 2601 transmits mapping information including the generated service secret hash value and the input nickname to the master server 600 (S2719).
- the master server 600 stores and registers the received mapping information (S2721).
- the master server 600 registers the mapping information based on the ID of the user.
- the master program 2601 asks the user for the completion of the setting of the service secret hash value (S2723).
- the master program 2601 ends the setting of the service secret hash value (S2725).
- the process from step S2711 described above is repeated.
- each service secret hash value has a different secret divisor so that the value is different. And by different nickname of each service secret hash value, user can easily distinguish each service secret hash value.
- the master program 2601 may encrypt each service secret hash value together with the master device authentication key and store the same in the user terminal 100 and the master server 600.
- the service secret hash value when used, the service secret hash value and the master device authentication key are decrypted together, and then the master device authentication key is compared with the prestored master device authentication key, and only matches. Enable the use of service secret hash values.
- FIG. 28 is a flowchart illustrating a process of setting authentication information for a specific service server according to an embodiment of the present invention. For example, it is an example of setting up login authentication using the authentication information according to the present invention, rather than login authentication through ID / password while registering as a service server 400. As described above, when the login authentication using the authentication information according to the present invention is set, the user does not log in with the ID / password when logging in to the service server 400, and logs in with the authentication information according to the present invention. Can be.
- the user may execute the service program 2603 to proceed with the registration process with the service server 400. You can join by entering ID, password, and personal information.
- the service program 2603 requests the service secret hash value list from the master program 2601 (S2801).
- the service program 2603 is equipped with an API-based interworking module that communicates with the master program 2601 and communicates with the master program 2601.
- the master program 2601 responds to the service program 2603 with the list of service secret hash values set by the user (S2803).
- the master program 2601 may transmit nicknames of the plurality of service secret hash values to the service program 2603.
- the service program 2603 displays a list of the plurality of service secret hash values received from the master program 2601 (S2805), and receives one of the plurality of service secret hash values from the user (S2807).
- the service program 2603 transmits selection information of the selected service secret hash value, for example, a nickname and a unique code of the service program 2603, to the master program 2601 (S2809).
- the master program 2601 identifies the service secret hash value from the service secret hash value and the nickname mapping information based on the received nickname, and adds the received unique code to the mapping information (S2811). Therefore, the unique code is added to the service secret hash value selected by the user among the plurality of service secret hash values present in the mapping information.
- the master program 2601 transmits the service secret hash value confirmed based on the received nickname to the service program 2603 (S2813).
- the service program 2603 generates authentication information using the received service secret hash value (S2815).
- the authentication information includes a service device authentication key, a service program authentication key, and a service user authentication key.
- the service device authentication key is a value generated by inputting unique information of the user terminal 100, for example, a MAC address or universally unique identifier (UUID) of a network interface card (NIC), as a seed value to a hash function.
- the service program authentication key is a value generated by inputting the service device authentication key, time stamp, and service secret hash value into the hash function as a seed value.
- the service user authentication key is a value generated by inputting the service secret hash value and the personal password input from the user through the input device as a seed value to the hash function.
- the service program 2603 transmits the generated authentication information to the service server 400 (S2817).
- the service server 400 stores authentication information based on the ID of the user (S2819).
- the service program 2603 also stores the service program authentication key and the service device authentication key in the user terminal 100 except for the service user authentication key.
- FIG. 29 is a flowchart illustrating a process of logging in to the service server 400 after the setting process of FIG. 28.
- the user After the user executes the service program 2603 on the user terminal 100, the user makes a login request according to the present invention to the service server 400 (S2901). In this case, the user may input an ID. Therefore, the service server 400 transmits the data of the personal password input window to the service program 2603, and the service program 2603 displays the personal password input window (S2903).
- the service program 2603 receives a personal password through an input device of the user terminal 100 (S2905).
- the service program 2603 retrieves the service device authentication key and the service program authentication key stored therein (S2907). At this time, the service program 2603 can verify the service device authentication key. That is, the service program 2603 inputs the unique information of the user terminal 100, for example, the MAC address or universally unique identifier (UUID) of the network interface card (NIC) as a seed value to the hash function to authenticate the service device. After the key is generated, it is compared with the service device authentication key pre-stored therein.
- UUID universally unique identifier
- the service program 2603 transmits a pre-authentication request including the retrieved service device authentication key and service program authentication key to the service server 400 (S2909).
- the service server 400 compares the service device authentication key and the service program authentication key included in the pre-authentication request with the service device authentication key and the service program authentication key of a pre-registered user. (S2911).
- the service server 400 may search for a service device authentication key and a service program authentication key of a user who are pre-registered using the user ID.
- the service server 400 generates a one-time secret password (S2913).
- a one-time secret password consists of a number of digits.
- the service server 400 transmits the one-time secret password to a destination designated by a user. In the present embodiment, it transmits to the user terminal 100 (S2915).
- the service program 2603 sends a unique code of the service program to the master program 2601 and requests a service secret hash value (S2917).
- the master program 2601 retrieves a service secret hash value corresponding to the unique code from the mapping information stored therein using the received unique code (S2919).
- the master program 2601 transmits the retrieved service secret hash value to the service program 2603 (S2921).
- the service program 2603 generates a service user authentication key using the received service secret hash value and the personal password input in step S2905 (S2923). That is, the service program 2603 generates the service user authentication key by inputting the received service secret hash value and the personal password input in the step S2905 into the hash function as a seed value.
- the service program 2603 receives a one-time secret password received in the step S2915 from the user, inputs the one-time secret password and the service user authentication key generated in the step S2923 as a seed value in a hash function to input the one-time authentication key. It generates (S2925). The service program 2603 transmits the generated one-time authentication key to the service server 400 (S2927).
- the service server 400 verifies the one-time authentication key received from the user terminal 100 (S2929). That is, the service server 400 generates a one-time authentication key by inputting the service user authentication key of the user, and the one-time secret password generated in step S2913 into the hash function, and the generated one-time authentication key and the The one-time authentication key received in step S2927 is compared. As a result of the comparison, it is determined that the authentication is successful.
- the service server 400 If the service server 400 succeeds in authenticating, the service server 400 transmits an authentication success response to the service program 2603 (S2931).
- the user does not need to select a secret divisor to log in to the service server 400, but merely inputs a personal password and a one-time secret password issued from the service server 400. You can log in to the service server 400.
- the service program 2603 performs steps S2917 to S2921 to receive the service secret hash value from the master program 2601, and then the service device authentication key and service program authentication.
- the key and the service user authentication key are transmitted to the service server 400.
- the service server 400 may store a service device authentication key, a service program authentication key, and a service user authentication key of a user, and a service device authentication key, a service program authentication key, and a service user authentication received from the service program 2603. By comparing the keys, if they all match, it can be determined that authentication is successful.
- the method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.
- a recording medium CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
A device for performing authentication by communicating with an authentication server comprises: a device authentication key generation module for collecting intrinsic information of the device, and generating a device authentication key by using the intrinsic information; a program authentication key generation module for generating a secret hash value by applying a hash function to a password inputted from a user, generating a time stamp, and generating a program authentication key by using the secret hash value, the time stamp, and the device authentication key; a user authentication key generation module for generating a user authentication key by using a personal identification number inputted from the user and the secret hash value; and a management module for transmitting, to the authentication server, authentication information including user identification information inputted from the user, the device authentication key, the program authentication key, and the user authentication key.
Description
본 발명은 사용자 인증에 관한 것으로서, 보다 구체적으로, 해쉬 함수를 이용하여 이중 보안을 실현하는 사용자 인증을 위한 장치에 관한 것이다. TECHNICAL FIELD The present invention relates to user authentication, and more particularly, to an apparatus for user authentication that realizes dual security using a hash function.
본 출원은 2014년 09월 11일에 출원된 한국특허출원 2014-0120165, 2015년 04월 14일에 출원된 한국특허출원 2015-0052631, 2015년 05월 08일에 출원된 한국특허출원 2015-0064749 및 2015년 09월 08일에 출원된 한국특허출원 2015-0127141에 기초한 우선권을 주장하며, 해당 출원의 명세서 및 도면에 개시된 모든 내용은 본 출원에 원용된다.The present application is filed on September 11, 2014, Korea Patent Application 2014-0120165, Korea Patent Application 2015-0052631, filed April 14, 2015, Korea Patent Application 2015-0064749, filed May 08, 2015 And claims based on Korean Patent Application No. 2015-0127141, filed on September 08, 2015, and all the contents disclosed in the specification and drawings of that application are incorporated in this application.
오늘날 세계 각국의 통신망이 상호 연결되어 인터넷을 통한 정보의 교환이 일반화되어 정보의 검색, 저장, 추출이 갈수록 활발해지고 있는 반면에, 특정 서버를 사용하는 사용자를 인식하는 기법은 초창기의 방법이 그대로 사용되고 있어서 개인 정보의 누출, 전산망 해킹(hacking) 등 그 역기능 현상 또한 심각한 사회문제로 대두되고 있다. 그 동안 국내에서 발생한 대표적인 해킹 행위는 주로 단순 침입, 사용자 식별정보(ID) 도용, 자료 절취, 자료 변조 및 파괴 등이며 외국의 해킹 실태는 국내에 비하여 매우 심각한 실정이다.While communication networks around the world are interconnected and the exchange of information through the Internet is becoming more common, the search, storage, and extraction of information is becoming more and more active.However, the technique of recognizing users who use a specific server is still used. As such, dysfunction such as leakage of personal information, hacking of computer network, etc. is also a serious social problem. Representative hacking behaviors in Korea have mainly been simple intrusions, user ID information theft, data truncation, data tampering and destruction, and foreign hacking conditions are more serious than in Korea.
기존의 일반적인 사용자 인증 기법은 사용자가 서버측에 자신의 식별정보(ID)와 패스워드(password)를 제공하면, 서버측은 모든 사용자의 패스워드에 대한 해쉬(hash) 함수를 저장하고 있어서 수신한 패스워드의 해쉬값을 취하여, 두 값을 비교한 후 해당 사용자가 정당한 사용자인지 확인한다. 참고로 해쉬함수는 일 방향으로 계산이 빠르고 용이하게 되어지지만, 역방향으로는 계산이 이론적으로 불가능한 함수를 말한다.In the conventional general user authentication scheme, if a user provides his or her ID and password to the server side, the server stores a hash function for all the user's passwords. Takes a value, compares the two values, and verifies that the user is a legitimate user. For reference, a hash function is a function that can be calculated quickly and easily in one direction, but cannot be calculated in the reverse direction.
그러나 이러한 종래의 사용자 인증 기법은, 사용자 식별정보와 패스워드가 노출되면 개인 정보도 함께 노출될 수 있어 보안이 취약하고, 또한 인증 프로그램이 복제되거나 복사되어 사용되는 경우 역시 개인 정보가 유출될 수 있는 문제점이 있다. 또한 ID와 패스워드에 의한 일차원 인증으로 보안이 취약한 문제점이 있다.However, such a conventional user authentication technique may expose personal information when the user identification information and the password are exposed, and thus, the security is weak, and personal information may also be leaked when the authentication program is copied or used. There is this. In addition, there is a problem that security is weak due to one-dimensional authentication by ID and password.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 인증 프로그램의 복제를 방지하고 이중의 안전 수단을 이용하여 보안을 강화한 사용자의 인증 방법 및 이를 위한 장치를 제공하는데 그 목적이 있다. The present invention has been proposed to solve the above problems, and an object thereof is to provide a user authentication method and a device for preventing the duplication of the authentication program and strengthening the security by using a double safety means.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른, 인증 서버와 통신하여 인증을 수행하는 장치는, 장치의 고유 정보를 수집하고 그 고유 정보를 이용하여 디바이스 인증키를 생성하는 디바이스 인증키 생성 모듈; 사용자로부터 입력된 비밀 제수에 해쉬 함수를 적용하여 비밀 해쉬값을 생성하고, 타임스탬프를 생성하며, 상기 비밀 해쉬값과 상기 타임스탬프 및 상기 디바이스 인증키를 이용하여 프로그램 인증키를 생성하는 프로그램 인증키 생성 모듈; 사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 이용하여 사용자 인증키를 생성하는 사용자 인증키 생성 모듈; 및 사용자로부터 입력된 사용자 식별정보, 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키를 포함하는 인증용 정보를 상기 인증 서버로 전송하는 관리 모듈;을 포함한다.An apparatus for performing authentication by communicating with an authentication server according to an aspect of the present invention for achieving the above object, a device authentication key generation module for collecting the unique information of the device and generating a device authentication key using the unique information ; A program authentication key for generating a secret hash value by applying a hash function to a secret divisor input from a user, generating a time stamp, and generating a program authentication key using the secret hash value, the time stamp, and the device authentication key. Generation module; A user authentication key generation module for generating a user authentication key using a personal password input from a user and the secret hash value; And a management module for transmitting authentication information including the user identification information, the device authentication key, the program authentication key, and the user authentication key input from the user to the authentication server.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른, 사용자 장치와 통신하여 인증을 수행하는 장치는, 상기 사용자 장치로부터 사용자 식별정보를 포함하는 가입 정보를 수신하여 저장하는 가입 정보 관리 모듈; 상기 사용자 장치로부터 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 인증용 정보를 수신하여 저장하는 인증 정보 관리 모듈; 및 승인 요청자로부터 승인 요청 수신시, 상기 사용자 장치로 알림 메시지를 전송하고, 이에 대한 응답으로 상기 사용자 장치로부터 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 수신하여 상기 저장되어 있는 인증용 정보와 비교하고, 모두 일치하는 경우 상기 승인 요청자에게 승인 응답을 전송하는 인증 처리 모듈;을 포함한다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for performing authentication by communicating with a user device comprises: a subscription information management module for receiving and storing subscription information including user identification information from the user device; An authentication information management module for receiving and storing authentication information including user identification information, device authentication key, program authentication key, and user authentication key from the user device; And upon receipt of an approval request from an approval requester, transmits a notification message to the user device, and receives user identification information, a device authentication key, a program authentication key, and a user authentication key from the user device in response thereto. And an authentication processing module which compares the usage information with each other and transmits an approval response to the approval requester if all the information is matched.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른, 서버와 통신하여 사용자를 인증하는 장치는, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고 상기 서버에 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈; 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및 상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고 그 사용자 인증키를 상기 서버로 전송하며, 그 전송한 사용자 인증키와 상기 서버에서 생성된 사용자 인증키의 비교 결과를 상기 서버로부터 수신하는 사용자 인증키 생성 모듈;을 포함하고, 상기 서버에서 생성된 사용자 인증키는 상기 서버에 등록된 비밀 해쉬값과 해당 서버에서 생성한 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 값이다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for authenticating a user by communicating with a server generates a secret hash value by inputting a secret divisor input from the user into a hash function as a seed value. A secret hash value generation module for storing and registering the secret hash value with the server; A one-time secret password input module for receiving a one-time secret password; And generating a user authentication key by inputting the one-time secret password and the secret hash value received from the one-time secret password input module into the hash function as a seed value, and transmitting the user authentication key to the server. And a user authentication key generation module for receiving a comparison result of the user authentication key generated at the server from the server, wherein the user authentication key generated at the server is generated at the server and a secret hash value registered at the server. Generated by entering a one-time secret password into the hash function as a seed value.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른, 사용자 장치와 통신하여 사용자를 인증하는 장치는, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 생성된 비밀 해쉬값을, 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈; 일회용 비밀 암호를 생성하는 일회용 비밀 암호 생성 모듈; 및 상기 사용자 장치로부터 사용자 인증키를 수신하면, 그 수신된 사용자 인증키와, 상기 등록된 비밀 해쉬값 및 상기 생성된 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 사용자 인증키를 비교하여, 상기 사용자를 인증하는 인증 처리 모듈;을 포함한다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for authenticating a user by communicating with a user apparatus includes a secret hash value generated by inputting a secret divisor input from a user into a hash function as a seed value; A secret hash value registration module for receiving and registering from the user device; A one time secret password generation module for generating a one time secret password; And receiving the user authentication key from the user device, comparing the received user authentication key with the user authentication key generated by inputting the registered secret hash value and the generated one-time secret password as a seed value to a hash function. And an authentication processing module for authenticating the user.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른, 인증 서버와 통신하는 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, 상기 프로그램은, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고, 상기 인증 서버로 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈; 사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고, 상기 인증 서버로 상기 사용자 인증키를 전송하여 등록하는 사용자 인증키 생성 모듈; 상기 인증 서버에서 발급한 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및 상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 그 일회용 인증키를 상기 인증 서버로 전송하며, 그 전송한 일회용 인증키와 상기 인증 서버에서 생성한 일회용 인증키의 비교 결과를 상기 인증 서버로부터 수신하는 일회용 인증키 생성 모듈;을 포함한다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for communicating with an authentication server comprises: at least one processor; Memory; And a program stored in the memory and configured to be executed by the one or more processors, wherein the program generates a secret hash value by inputting a secret divisor input from a user into a hash function as a seed value. A secret hash value generation module for storing and transmitting the secret hash value to the authentication server; A user authentication key generation module for generating a user authentication key by inputting a personal password inputted from a user and the secret hash value into a hash function as a seed value, and transmitting and registering the user authentication key to the authentication server; A one-time secret password input module for receiving a one-time secret password issued by the authentication server; And generating a one-time authentication key by inputting the one-time secret password and the user authentication key inputted from the one-time secret password input module as a seed value to a hash function and transmitting the one-time authentication key to the authentication server. And a one-time authentication key generation module configured to receive a comparison result of the key and the one-time authentication key generated by the authentication server from the authentication server.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른, 사용자 장치와 통신하는 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, 상기 프로그램은, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 생성된 비밀 해쉬값을 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈; 사용자의 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를 상기 사용자 장치로부터 수신하여 등록하는 사용자 인증키 등록 모듈; 일회용 비밀 암호를 생성하여 상기 사용자에게 전송하는 일회용 비밀 암호 생성 모듈; 및 상기 사용자 장치로부터 일회용 인증키를 수신하면, 그 수신된 일회용 인증키와, 상기 등록된 사용자 인증키 및 상기 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 일회용 인증키를 비교하여, 그 비교 결과를 상기 사용자 장치로 전송하는 일회용 인증키 비교 모듈;을 포함한다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for communicating with a user device comprises: at least one processor; Memory; And a program stored in the memory and configured to be executed by the one or more processors, wherein the program includes a secret hash value generated by inputting a secret divisor input from a user into a hash function as a seed value. A secret hash value registration module for receiving and registering from the user device; A user authentication key registration module for receiving and registering a user authentication key generated by inputting a user's personal password and the secret hash value into a hash function as a seed value from the user device; A one-time secret password generation module for generating a one-time secret password and transmitting it to the user; And receiving the one-time authentication key from the user device, comparing the received one-time authentication key with the one-time authentication key generated by inputting the registered user authentication key and the one-time secret password into a hash function as a seed value. It includes a; one-time authentication key comparison module for transmitting a comparison result to the user device.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른, 마스터 서버 및 서비스 서버와 통신하는 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 마스터 프로그램 및 서비스 프로그램을 포함하고, 상기 마스터 프로그램은, 사용자로부터 입력된 서로 다른 서비스 비밀 제수를 이용하여 서로 다른 복수의 서비스 비밀 해쉬값을 생성하여 저장하고, 상기 서비스 프로그램은, 상기 복수의 서비스 비밀 해쉬값 중 선택된 서비스 비밀 해쉬값과, 개인 비밀번호를 이용하여 서비스 사용자 인증키를 생성하고, 상기 서비스 사용자 인증키를 인증용 정보로서 상기 서비스 서버에 전송하여 등록하며, 상기 마스터 프로그램은, 상기 서비스 프로그램으로부터 수신된 고유 코드를 상기 복수의 서비스 비밀 해쉬값 중 상기 선택된 서비스 비밀 해쉬값에 매핑하여 저장한다.In accordance with another aspect of the present invention for achieving the above object, an apparatus for communicating with a master server and a service server, one or more processors; Memory; And a master program and a service program stored in the memory and configured to be executed by the one or more processors, wherein the master program includes a plurality of different service secret hashes using different service secret divisors input from a user. A value is generated and stored, and the service program generates a service user authentication key using a selected service secret hash value among the plurality of service secret hash values and a personal password, and uses the service user authentication key as authentication information. The master program transfers and registers the unique code received from the service program to the selected service secret hash value among the plurality of service secret hash values.
본 발명은 인증 프로그램의 복사하여 실행할 경우 디바이스 인증키가 달라 인증 프로그램이 자동 삭제됨으로써 인증 프로그램의 복사를 원천적으로 차단한다.In the present invention, when the authentication program is copied and executed, the device authentication key is different so that the authentication program is automatically deleted, thereby preventing the copy of the authentication program.
또한, 본 발명은 사용자로부터 비밀 제수 및 개인 비밀번호를 입력받아 프로그램 인증키와 사용자 인증키를 각각 생성하여 인증에 사용하는 이중 인증을 수행함으로써 보안을 강화한다.In addition, the present invention enhances security by receiving a secret divisor and a personal password from the user and generating a program authentication key and a user authentication key, respectively, and performing double authentication for use in authentication.
또한, 본 발명은, 복수의 인증 서버에 대해 인증 정보를 서로 달리 등록할 수 있어 연쇄적인 보안 사고를 방지할 수 있다.In addition, according to the present invention, authentication information can be registered differently for a plurality of authentication servers, thereby preventing a series of security incidents.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이다.1 is a view showing an authentication system according to an embodiment of the present invention.
도 2는 도 1의 사용자 단말의 구성을 나타낸 도면이다.2 is a diagram illustrating a configuration of a user terminal of FIG. 1.
도 3은 본 발명의 일 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.3 is a diagram illustrating a configuration of an authentication program according to an embodiment of the present invention.
도 4는 도 1의 인증 서버의 구성을 나타낸 도면이다.4 is a diagram illustrating a configuration of the authentication server of FIG. 1.
도 5는 본 발명의 일 실시예에 따른 사용자 단말에서 디바이스 인증키를 생성하는 방법을 설명하는 흐름도이다.5 is a flowchart illustrating a method of generating a device authentication key in a user terminal according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 프로그램 인증키를 생성하는 방법을 설명하는 흐름도이다.6 is a flowchart illustrating a method of generating a program authentication key according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 인증용 정보의 서버 등록 과정을 설명하는 흐름도이다.7 is a flowchart illustrating a server registration process of authentication information according to an embodiment of the present invention.
도 8 및 도 9은 본 발명의 일 실시예에 따른 단말 변경시 인증용 정보를 등록하는 과정을 설명하는 흐름도이다.8 and 9 are flowcharts illustrating a process of registering information for authentication when a terminal is changed according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 사용자 인증키를 변경하는 과정을 설명하는 흐름도이다.10 is a flowchart illustrating a process of changing a user authentication key according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 비밀 제수의 변경 과정을 설명하는 흐름도이다.11 is a flowchart illustrating a process of changing a secret divisor according to an embodiment of the present invention.
도 12 및 도 13은 본 발명의 일 실시예에 따른 온라인 쇼핑 과정을 설명하는 흐름도이다.12 and 13 are flowcharts illustrating an online shopping process according to an embodiment of the present invention.
도 14는, 본 발명의 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.14 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 15는 본 발명의 다른 실시예에 따른 인증 서버의 구성을 나타낸 도면이다.15 is a diagram showing the configuration of an authentication server according to another embodiment of the present invention.
도 16은 본 발명의 OTP를 이용한 인증 방법을 설명하는 흐름도이다.16 is a flowchart illustrating an authentication method using OTP according to the present invention.
도 17은 본 발명의 일 실시예에 따른 일회용 비밀 암호 입력 모듈의 구성을 나타낸 도면이다.17 is a view showing the configuration of a one-time secret password input module according to an embodiment of the present invention.
도 18은 본 발명의 일 실시예에 따른 후보 이미지들을 나타낸 도면이다.18 illustrates candidate images according to an embodiment of the present invention.
도 19는 본 발명의 일 실시예에 따른 서클 인터페이스를 나타낸 도면이다.19 illustrates a circle interface according to an embodiment of the present invention.
도 20은 본 발명의 일 실시예에 따른 세 개의 서클 인터페이스를 나타낸 도면이다.20 illustrates three circle interfaces according to an embodiment of the present invention.
도 21은 본 발명의 또 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.21 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 22는 본 발명의 다른 실시예에 따른 인증 시스템을 나타낸 도면이다.22 is a diagram illustrating an authentication system according to another embodiment of the present invention.
도 23은 본 발명의 또 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.23 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 24는 도 22의 인증 서버의 구성을 나타낸 도면이다.24 is a diagram illustrating a configuration of the authentication server of FIG. 22.
도 25는 본 발명의 일 실시예에 따른 사용자가 서비스 서버에 회원 가입시 사용자를 인증하는 방법을 설명하는 흐름도이다.25 is a flowchart illustrating a method for authenticating a user when a user registers with a service server according to an embodiment of the present invention.
도 26은 본 발명의 또 다른 실시예에 따른 인증 시스템을 나타낸 도면이다.26 is a diagram illustrating an authentication system according to another embodiment of the present invention.
도 27은 본 발명의 일 실시예에 따른 서비스 비밀 해쉬값을 등록하는 과정을 설명하는 흐름도이다.27 is a flowchart illustrating a process of registering a service secret hash value according to an embodiment of the present invention.
도 28은 본 발명의 일 실시예에 따른 특정 서비스 서버에 대한 인증용 정보를 설정하는 과정을 설명하는 흐름도이다.28 is a flowchart illustrating a process of setting authentication information for a specific service server according to an embodiment of the present invention.
도 29는, 도 28의 설정 과정 후 서비스 서버에 로그인하는 과정을 설명하는 흐름도이다.29 is a flowchart illustrating a process of logging in to a service server after the setting process of FIG. 28.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이고, 도 2는 도 1의 사용자 단말의 구성을 나타낸 도면이다.1 is a view showing an authentication system according to an embodiment of the present invention, Figure 2 is a view showing the configuration of a user terminal of FIG.
도 1에 도시된 바와 같이, 본 실시예에 따른 인증 시스템은, 사용자 단말(100) 및 인증 서버(200) 그리고 상기 사용자 단말(100)과 상기 인증 서버(200)를 연결하는 통신망(300)을 포함한다.As shown in FIG. 1, the authentication system according to the present embodiment includes a user terminal 100, an authentication server 200, and a communication network 300 connecting the user terminal 100 and the authentication server 200. Include.
사용자 단말(100)은 인증 프로그램을 설치하고 그 인증 프로그램을 통해 해쉬 알고리즘을 이용하여 사용자 인증키, 디바이스 인증키, 프로그램 인증키를 생성하고 이를 인증용 정보로서 상기 인증 서버(220)에 전송하여 등록한다. The user terminal 100 installs an authentication program and generates a user authentication key, a device authentication key, and a program authentication key using a hash algorithm through the authentication program, and transmits it to the authentication server 220 as authentication information. do.
본 실시예에서는 인증 서버(200)를 하나만 도시하고 설명하지만, 인증 서버(200)는 복수 개가 존재할 수 있고, 사용자는 각 인증 서버(200)마다 상기 사용자 인증키, 디바이스 인증키, 프로그램 인증키를 생성하여 등록할 수 있다. 여기서 인증 서버(200)는 은행, 카드사, 통신사 또는 일반 포털 사이트의 서버일 수 있고, 또는 결제 대행 서비스(PG)사의 서버일 수 있다.In this embodiment, only one authentication server 200 is illustrated and described, but there may be a plurality of authentication servers 200, and a user may use the user authentication key, device authentication key, and program authentication key for each authentication server 200. Can be created and registered. Here, the authentication server 200 may be a server of a bank, a card company, a communication company or a general portal site, or may be a server of a payment agency service (PG) company.
사용자 단말(100)은 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터 등일 수 있다. 도 2에 도시된 바와 같이, 사용자 단말(100)은, 메모리(110), 메모리 제어기(121), 하나 이상의 프로세서(CPU)(122), 주변 인터페이스(123), 입출력(I/O) 서브시스템(130), 디스플레이 장치(141), 입력 장치(142) 및 RF 회로(152)를 포함한다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 도 2에 도시한 여러 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.The user terminal 100 may be a mobile communication terminal such as a smartphone or a personal computer. As shown in FIG. 2, the user terminal 100 includes a memory 110, a memory controller 121, one or more processors (CPUs) 122, a peripheral interface 123, and an input / output (I / O) subsystem. 130, a display device 141, an input device 142, and an RF circuit 152. These components communicate via one or more communication buses or signal lines. The various components shown in FIG. 2 may be implemented in hardware, software or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.
메모리(110)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리(110)는 하나 이상의 프로세서(122)로부터 멀리 떨어져 위치하는 저장 장치, 예를 들어 RF 회로(152)와, 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등, 또는 이들의 적절한 조합과 같은 통신 네트워크(도시하지 않음)를 통하여 액세스되는 네트워크 부착형(attached) 저장 장치를 더 포함할 수 있다. 프로세서(122) 및 주변 인터페이스(123)와 같은 사용자 단말(100)의 다른 구성요소에 의한 메모리(110)로의 액세스는 메모리 제어기(121)에 의하여 제어될 수 있다.The memory 110 may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices. In some embodiments, memory 110 is a storage device located remote from one or more processors 122, such as RF circuitry 152, the Internet, an intranet, a local area network (LAN), and a wide area network (WLAN). It may further comprise a network attached storage device accessed through a communication network (not shown), such as a storage area network (SAN), or the like, or a suitable combination thereof. Access to memory 110 by other components of user terminal 100, such as processor 122 and peripheral interface 123, may be controlled by memory controller 121.
주변 인터페이스(123)는 사용자 단말(100)의 입출력 주변 장치를 프로세서(122) 및 메모리(110)와 연결한다. 하나 이상의 프로세서(122)는 다양한 소프트웨어 프로그램 및/또는 메모리(110)에 저장되어 있는 명령어 세트를 실행하여 장치(100)를 위한 여러 기능을 수행하고 데이터를 처리한다.The peripheral interface 123 connects the input / output peripheral device of the user terminal 100 with the processor 122 and the memory 110. One or more processors 122 execute a set of instructions stored in various software programs and / or memory 110 to perform various functions for the device 100 and to process data.
일부 실시예에서, 주변 인터페이스(123), 프로세서(122) 및 메모리 제어기(121)는 칩(120)과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예에서, 이들은 별개의 칩으로 구현될 수 있다.In some embodiments, peripheral interface 123, processor 122, and memory controller 121 may be implemented on a single chip, such as chip 120. In some other embodiments, they may be implemented in separate chips.
I/O 서브시스템(130)은 디스플레이 장치(141), 입력 장치(142)와 같은 사용자 단말(100)의 입출력 주변장치와 주변 인터페이스(123) 사이에 인터페이스를 제공한다. The I / O subsystem 130 provides an interface between the input / output peripheral of the user terminal 100, such as the display device 141, the input device 142, and the peripheral interface 123.
디스플레이 장치(141)는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있고, 이러한 디스플레이 장치(141)는 용량형, 저항형, 적외선형 등의 터치 디스플레이일 수 있다. 터치 디스플레이는 단말과 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공한다. 터치 디스플레이는 사용자에게 시각적인 출력을 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 전부는 사용자 인터페이스 대상에 대응할 수 있다. 터치 디스플레이는 사용자 입력을 수용하는 터치 감지면을 형성한다.The display device 141 may use a liquid crystal display (LCD) technology or a light emitting polymer display (LPD) technology. The display device 141 may be a capacitive, resistive, or infrared touch display. The touch display provides an output interface and an input interface between the terminal and the user. The touch display presents visual output to the user. The visual output may include text, graphics, video, and combinations thereof. Some or all of the visual output may correspond to user interface objects. The touch display forms a touch sensitive surface that accepts user input.
프로세서(122)는 사용자 단말(100)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리(110)로부터 검색된 명령어들을 이용하여, 사용자 단말(100)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. The processor 122 is a processor configured to perform operations associated with the user terminal 100 and to perform instructions, for example, input and output between components of the user terminal 100 using instructions retrieved from the memory 110. Receive and manipulate data can be controlled.
일부 실시예에서, 소프트웨어 구성요소는 운영 체제(111), 그래픽 모듈(명령어 세트)(112) 및 인증 프로그램(명령어 세트)(113)이 메모리(110)에 탑재(설치)된다. In some embodiments, the software component has an operating system 111, a graphics module (instruction set) 112, and an authentication program (instruction set) 113 mounted (installed) in the memory 110.
운영 체제(111)는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.The operating system 111 may be, for example, a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc., and may be a general system task (eg, memory). Management, storage device control, power management, etc.) and various software components and / or devices that facilitate and manage communication between the various hardware and software components.
그래픽 모듈(112)은 디스플레이 장치(141) 상에 그래픽을 제공하고 표시하기 위한 주지의 여러 소프트웨어 구성요소를 포함한다. "그래픽(graphics)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다.Graphics module 112 includes various well-known software components for presenting and displaying graphics on display device 141. The term "graphics" refers to any object that can be displayed to the user, including, without limitation, text, web pages, icons (eg, user interface objects including soft keys), digital images, videos, animations, and the like. Include.
RF 회로(152)는 전자파를 송수신한다. RF 회로(152)는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 통신 장치와 통신한다. RF 회로(152)는 예를 들어 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않는 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. RF 회로(152)는 월드 와이드 웹(World Wide Web, WWW)으로 불리는 인터넷, 인트라넷과 네트워크 및/또는, 셀룰러 전화 네트워크, 무선 LAN 및/또는 MAN(metropolitan area network)와 같은 무선 네트워크, 그리고 근거리 무선 통신에 의하여 다른 장치와 통신할 수 있다. 무선 통신은 GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), WCDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), VoIP(voice over Internet Protocol), Wi-MAX, 블루투스(Bluetooth), 지그비(zigbee), 엔에프씨(NFC:Near Field Communication) 또는 본 출원의 출원 시점에 아직 개발되지 않은 통신 프로토콜을 포함하는 기타 다른 적절한 통신 프로토콜을 포함하지만 이에 한정되지 않는 복수의 통신 표준, 프로토콜 및 기술 중 어느 것을 이용할 수 있다.The RF circuit 152 transmits and receives electromagnetic waves. The RF circuit 152 converts an electrical signal into an electromagnetic wave and vice versa, and communicates with a communication network, another mobile gateway, and a communication device through the electromagnetic wave. RF circuitry 152 includes, but is not limited to, for example, antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, CODEC chipsets, subscriber identity module (SIM) cards, memory, and the like. It may include known circuitry for performing this function, which is not limited. RF circuitry 152 may comprise the Internet, called the World Wide Web (WWW), intranets and networks, and / or wireless networks such as cellular telephone networks, wireless LANs, and / or metropolitan area networks (MAN), and near field wireless. Communication can be made with other devices. Wireless communications include Global System for Mobile Communication (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (WCDMA), code division multiple access (CDMA), time division multiple access (TDMA), and voice over Internet Protocol, Wi-MAX, Bluetooth, zigbee, Near Field Communication (NFC), or any other suitable communication protocol including communication protocols not yet developed at the time of filing of this application. Any of a plurality of communication standards, protocols, and technologies that are not limited thereto may be used.
인증 프로그램(113)은 인증 서버(200)로부터 다운로드되어 설치될 수 있고, 또는 구글 플레이나 애플 마켓 등의 앱 스토어에서 다운로드되어 설치될 수 있다. 인증 프로그램(113)은, 최초 설치 후 사용자에 의해 실행시, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성하여 이를 상기 인증 서버(200)에 전송하여 등록한다. 이후 인증 프로그램(113)은 로그인이나 금융 거래, 또는 전자 상거래 등의 거래가 이루어질 때, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성하여 상기 인증 서버(200)로 전송하여 인증 과정을 수행한다. 이하에서 도 3을 참조하여 자세히 설명한다.The authentication program 113 may be downloaded and installed from the authentication server 200 or may be downloaded and installed from an app store such as Google Play or Apple Market. The authentication program 113 generates a device authentication key, a program authentication key, and a user authentication key when executed by the user after the initial installation, and transmits them to the authentication server 200 for registration. Then, when the authentication program 113 performs a transaction such as login, financial transaction, or electronic commerce, the authentication program 113 generates a device authentication key, a program authentication key, and a user authentication key and transmits the generated authentication key to the authentication server 200 to perform an authentication process. This will be described in detail with reference to FIG. 3.
도 3은 본 발명의 일 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.3 is a diagram illustrating a configuration of an authentication program according to an embodiment of the present invention.
도 3에 도시된 바와 같이, 본 실시예에 따른 인증 프로그램(113)은 디바이스 인증키 생성 모듈(210), 프로그램 인증키 생성 모듈(230) 및 사용자 인증키 생성 모듈(250) 및 관리 모듈(270)을 포함한다. As shown in FIG. 3, the authentication program 113 according to the present embodiment includes a device authentication key generation module 210, a program authentication key generation module 230, a user authentication key generation module 250, and a management module 270. ).
디바이스 인증키 생성 모듈(210)은 인증 프로그램(113)의 최초 실행시 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소, UUID(Universally Unique Identifier) 등을 수집하고 그 수집된 고유 정보를 이용하여 디바이스 인증키를 생성한다. 구체적으로, 디바이스 인증키 관리 모듈(210)은 상기 사용자 단말(100)의 고유 정보를 해쉬 함수에 입력하여 생성된 값을 디바이스 인증키로서 저장한다.The device authentication key generation module 210 collects unique information of the user terminal 100, for example, a MAC address of a network interface card (NIC), a universally unique identifier (UUID), and the like, when the authentication program 113 is first executed. The device authentication key is generated using the collected unique information. Specifically, the device authentication key management module 210 stores a value generated by inputting unique information of the user terminal 100 into a hash function, as a device authentication key.
디바이스 인증키 생성 모듈(210)은 인증 프로그램(113)의 실행시마다 디바이스 인증키를 생성하고 상기 기 저장된 디바이스 인증키와 비교한다. 디바이스 인증키 생성 모듈(210)은, 비교 결과, 디바이스 인증키가 일치하지 않는 경우, 인증 프로그램(113)을 자동 삭제한다. 예를 들면, 사용자 단말(100)에 설치된 인증 프로그램(113)이 복제되어 다른 장치에 이전되어 실행되는 경우, 기 저장된 디바이스 인증키와 해당 실행시에 생성된 디바이스 인증키는 일치하지 않게 되어, 다른 장치에 복제된 인증 프로그램(113)은 자동 삭제된다.The device authentication key generation module 210 generates a device authentication key every time the authentication program 113 is executed and compares the device authentication key with the previously stored device authentication key. The device authentication key generation module 210 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other. The authentication program 113 duplicated in the device is automatically deleted.
프로그램 인증키 생성 모듈(230)은 상기 디바이스 인증키 생성 모듈(210)에서 생성된 디바이스 인증키와, 타임스탬프, 그리고 비밀 해쉬값을 이용하여 프로그램 인증키를 생성하여 저장한다. 프로그램 인증키는 바이너리 파일로 인증 프로그램(113)에 저장될 수 있다. 여기서 상기 타임스탬프는 프로그램 인증키를 생성하는 시점의 시각을 나타내는 문자열이다. 그리고 상기 비밀 해쉬값은 사용자로부터 입력된 비밀 제수를 해쉬 함수에 입력하여 생성한 값이다.The program authentication key generation module 230 generates and stores a program authentication key using a device authentication key, a time stamp, and a secret hash value generated by the device authentication key generation module 210. The program authentication key may be stored in the authentication program 113 as a binary file. In this case, the time stamp is a string indicating a time point at which a program authentication key is generated. The secret hash value is a value generated by inputting a secret divisor input from a user into a hash function.
구체적으로, 프로그램 인증키 생성 모듈(230)은 입력 장치를 통해 사용자로부터 비밀 제수를 입력받는다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있다. 프로그램 인증키 생성 모듈(230)은 상기 비밀 제수를 해쉬 함수에 입력하여 나온 결과를 상기 비밀 해쉬값으로 한다. 상기 비밀 해쉬값은 바이너리 파일로 인증 프로그램(113)에 저장될 수 있다. In detail, the program authentication key generation module 230 receives a secret divisor from a user through an input device. The secret divisor may be any one of a long string, an image file, a sound file, or a video file. The program authentication key generation module 230 sets a result of inputting the secret divisor into a hash function as the secret hash value. The secret hash value may be stored in the authentication program 113 as a binary file.
사용자 인증키 생성 모듈(250)은 상기 프로그램 인증키 생성 모듈(230)에서 생성된 상기 비밀 해쉬값과, 입력 장치를 통해 사용자로부터 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다. 구체적으로, 사용자 인증키 생성 모듈(250)은 상기 비밀 해쉬값과 상기 입력된 개인 비밀번호를 해쉬 함수에 입력하여 생성된 값을 사용자 인증키로 한다.The user authentication key generation module 250 generates a user authentication key using the secret hash value generated by the program authentication key generation module 230 and a personal password input from the user through an input device. Specifically, the user authentication key generation module 250 uses the secret hash value and the input personal password as a hash authentication function as the user authentication key.
상기 개인 비밀번호는 예를 들어 6자리의 숫자일 수 있다. 그러나 여기에 제한되는 것은 아니고 숫자와 문자의 조합일 수도 있다. 상기 프로그램 인증키 생성시 사용자로부터 입력되는 비밀 제수와 비교하면, 비밀 제수는 장문의 문자열이나, 이미지 파일 등이나, 사용자 인증키 생성시 사용자로부터 입력되는 상기 개인 비밀번호는 일정한 자릿수의 숫자이다. 상기 개인 비밀번호는 인증 서버(200)가 복수 개있을 때 각 인증 서버(200)마다 서로 다르게 설정될 수 있다.The personal password may be, for example, a six digit number. However, the present invention is not limited thereto and may be a combination of numbers and letters. Compared with the secret divisor input from the user at the time of generating the program authentication key, the secret divisor is a long string, an image file, or the like, and the personal password input from the user at the time of generating the user authentication key is a certain number of digits. The personal password may be set differently for each authentication server 200 when there are a plurality of authentication servers 200.
앞서 설명에서, 디바이스 인증키와 프로그램 인증키는 인증 프로그램(113)에 저장되는 것으로 설명하였으나, 상기 사용자 인증키는 인증 프로그램(113)에 저장되지 않고, 인증 서버(200)에만 전송되어 저장되는 것이 바람직하다.In the above description, although the device authentication key and the program authentication key has been described as being stored in the authentication program 113, the user authentication key is not stored in the authentication program 113, but is transmitted and stored only in the authentication server 200. desirable.
관리 모듈(270)은 입력 장치를 통한 사용자의 입력에 따라 상기 디바이스 인증키 생성 모듈(210), 상기 프로그램 인증키 생성 모듈(230) 및 상기 사용자 인증키 생성 모듈(250)의 동작을 제어한다. 관리 모듈(270)은 인증 프로그램(113)에 상기 인증 서버(200)의 정보 등록을 관리하고, 상기 인증 서버(200)에 대한 사용자의 회원 가입을 관리하며, 또한 상기 생성되는 인증키들의 상기 인증 서버(200)로의 등록 및 변경을 관리한다.The management module 270 controls operations of the device authentication key generation module 210, the program authentication key generation module 230, and the user authentication key generation module 250 according to a user's input through an input device. The management module 270 manages the registration of the information of the authentication server 200 in the authentication program 113, manages the membership of the user with the authentication server 200, and also the authentication of the generated authentication keys. Manage registration and change to the server 200.
구체적으로, 관리 모듈(270)은 입력 장치를 통해 사용자로부터 상기 인증 서버(200)의 주소와 프로파일 정보를 입력받아 저장한다. 여기서 프로파일 정보는 상기 인증 서버(200)의 닉네임 등으로서 사용자가 인증 프로그램(200)에서 인증 서버(200)들을 쉽게 관리하고 선택할 수 있도록 한다. In detail, the management module 270 receives and stores the address and profile information of the authentication server 200 from a user through an input device. Here, the profile information is a nickname of the authentication server 200, so that the user can easily manage and select the authentication server 200 in the authentication program 200.
관리 모듈(270)은 사용자가 상기 인증 서버(200)에 회원 가입을 하지 않은 경우 회원 가입 페이지를 오픈하고 입력 장치를 통해 입력되는 사용자의 개인 정보, 예를 들어 ID, 이름, 생년 월일, 성별 등의 개인 정보를 상기 인증 서버(200)에 전송하여 등록한다.The management module 270 opens a member registration page when the user does not become a member in the authentication server 200 and enters personal information of the user, for example, ID, name, date of birth, gender, etc. The personal information of the transmission to the authentication server 200 to register.
또한, 관리 모듈(270)은 상기 디바이스 인증키, 상기 프로그램 인증키, 상기 사용자 인증키 및 상기 회원 가입시 사용자가 등록한 ID를 인증용 정보로서 상기 인증 서버(200)에 전송하여 등록한다. 이때 관리 모듈(270)은 인증용 정보를 인증 서버(200)에 전송하여 등록하기 전에, 공인인증서를 통한 본인 인증, 또는 인증 서버(200)를 운영하는 사업자로부터 발급받은 1회용 비밀번호를 이용하여 본인 인증을 할 수 있다.In addition, the management module 270 transmits the device authentication key, the program authentication key, the user authentication key, and the ID registered by the user at the time of membership registration to the authentication server 200 as authentication information. In this case, the management module 270 transmits the authentication information to the authentication server 200 before registering and using the one-time password issued by the operator operating the authentication certificate or the operator operating the authentication server 200. You can authenticate.
관리 모듈(270)은 입력 장치를 통해 사용자로부터 사용자 단말(100)의 변경에 관한 입력을 수신하는 경우, 상기 디바이스 인증키 생성 모듈(210), 상기 프로그램 인증키 생성 모듈(230) 및 상기 사용자 인증키 생성 모듈(250)을 제어하여, 변경 후 사용자 단말에서 사용할 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성하고, 그 생성된 디바이스 인증키, 프로그램 인증키 및 사용자 인증키와 사용자로부터 입력된 ID를 포함하는 디바이스 변경 요청을 인증 서버(200)로 전송하여 등록한다. When the management module 270 receives an input regarding a change of the user terminal 100 from a user through an input device, the device authentication key generation module 210, the program authentication key generation module 230, and the user authentication. The key generation module 250 is controlled to generate a device authentication key, a program authentication key, and a user authentication key for use in the user terminal after the change, and the generated device authentication key, program authentication key, and user authentication key and inputted from the user. The device change request including the ID is transmitted to the authentication server 200 and registered.
이때, 사용자 단말이 변경되었으므로, 디바이스 인증키와 프로그램 인증키는 이전 사용자 단말에서 생성된 디바이스 인증키 및 프로그램 인증키와 달라지고, 사용자 인증키는 동일하다. 즉, 사용자 단말의 고유 정보가 변경되었으므로 디바이스 인증키는 변경되고, 타임스탬프가 변경되므로 프로그램 인증키는 변경된다. 그러나, 사용자가 입력하는 개인 비밀번호와 비밀 제수는 동일하므로 사용자 인증키는 동일하다. At this time, since the user terminal is changed, the device authentication key and the program authentication key is different from the device authentication key and the program authentication key generated in the previous user terminal, the user authentication key is the same. That is, since the unique information of the user terminal is changed, the device authentication key is changed, and since the time stamp is changed, the program authentication key is changed. However, since the personal password and secret divisor entered by the user are the same, the user authentication key is the same.
이러한 사용자 단말(100)의 변경은, 복수의 인증 서버(200) 각각에 대해 수행할 수 있다. The change of the user terminal 100 may be performed for each of the plurality of authentication servers 200.
또한, 관리 모듈(270)은 입력 장치를 통해 사용자로부터 특정 인증 서버에 대한 개인 비밀번호의 변경에 관한 입력을 수신할 수 있다. 관리 모듈(270)은, 상기 사용자 인증키 생성 모듈(250)을 제어하여, 새로운 사용자 인증키를 생성하도록 하고, 새로운 사용자 인증키, 이전 사용자 인증키, 디바이스 인증키, 프로그램 인증키 및 사용자로부터 입력된 ID를 포함하는 개인 비밀번호 변경 요청을 상기 특정 인증 서버로 전송한다.In addition, the management module 270 may receive an input regarding a change of a personal password for a specific authentication server from a user through an input device. The management module 270 controls the user authentication key generation module 250 to generate a new user authentication key, and inputs a new user authentication key, a previous user authentication key, a device authentication key, a program authentication key, and a user. The personal password change request including the generated ID is transmitted to the specific authentication server.
또한, 관리 모듈(270)은 입력 장치를 통해 사용자로부터 특정 인증 서버에 대한 비밀 제수의 변경에 관한 입력을 수신할 수 있다. 관리 모듈(270)은, 상기 프로그램 인증키 생성 모듈(230) 및 상기 사용자 인증키 생성 모듈(250)을 제어하여, 새로운 프로그램 인증키 및 새로운 사용자 인증키를 생성하도록 하고, 새로운 프로그램 인증키, 새로운 사용자 인증키, 이전 프로그램 인증키, 이전 사용자 인증키, 디바이스 인증키 및 사용자로부터 입력된 ID를 포함하는 비밀 제수 변경 요청을 인증 서버(200)로 전송한다.In addition, the management module 270 may receive an input regarding a change of the secret divisor for the specific authentication server from the user through the input device. The management module 270 controls the program authentication key generation module 230 and the user authentication key generation module 250 to generate a new program authentication key and a new user authentication key. A secret divisor change request including a user authentication key, a previous program authentication key, a previous user authentication key, a device authentication key, and an ID input from a user is transmitted to the authentication server 200.
관리 모듈(270)은, 사용자가 인증용 정보의 등록을 각 개별 인증 서버마다 수행할 수 있도록 지원한다. 즉, 모든 인증 서버에 대해 디바이스 인증키는 동일하게 등록하되, 각 인증 서버마다 프로그램 인증키와 사용자 인증키를 달리할 수 있다. 각 인증 서버마다 프로그램 인증키와 사용자 인증키를 달리하기 위해서는, 개인 비밀번호는 동일하게 하면서 비밀 제수를 각 인증 서버마다 달리할 수 있고, 또는 비밀 제수는 동일하게 하면서 각 인증 서버마다 개인 비밀번호를 달리하고 또한 각 인증 서버에 대한 프로그램 인증키의 타임스탬프를 달리한다. 또는 프로그램 인증키는 동일하게 하면서 사용자 인증키를 달리할 수 있다. 이 경우 비밀 제수는 동일하게 하고 개인 비밀번호만 달리하면 된다. 관리 모듈(270)은 각 인증 서버마다 프로그램 인증키와 사용자 인증키를 다르게 등록할 수 있도록 선택 인터페이스를 제공하고 각 모듈들을 제어한다.The management module 270 supports the user to register the authentication information for each individual authentication server. That is, the device authentication key is registered the same for all authentication servers, but the program authentication key and the user authentication key may be different for each authentication server. In order to change the program authentication key and the user authentication key for each authentication server, the secret divisor may be different for each authentication server with the same personal password, or the personal password may be different for each authentication server with the same secret divisor. Also, the time stamp of the program authentication key for each authentication server is different. Alternatively, the program authentication key may be the same and the user authentication key may be different. In this case, the secret divisor must be the same and the personal passwords must be different. The management module 270 provides a selection interface and controls each module so that a program authentication key and a user authentication key can be registered differently for each authentication server.
도 4는 도 1의 인증 서버의 구성을 나타낸 도면으로, 도 4에 도시된 바와 같이, 인증 서버(200)는 프로그램 전송 모듈(310), 가입 정보 관리 모듈(320), 인증 정보 관리 모듈(330) 및 인증 처리 모듈(340)을 포함한다. 인증 서버(200)는 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템 및 RF 회로를 포함하여 구성된다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 이러한 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.4 is a diagram illustrating a configuration of the authentication server of FIG. 1. As illustrated in FIG. 4, the authentication server 200 includes a program transmission module 310, a subscription information management module 320, and an authentication information management module 330. ) And an authentication processing module 340. Authentication server 200 comprises a memory, a memory controller, one or more processors (CPUs), peripheral interfaces, input / output (I / O) subsystems, and RF circuitry. These components communicate via one or more communication buses or signal lines. Such components may be implemented in hardware, software or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.
메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리는 하나 이상의 프로세서로부터 멀리 떨어져 위치하는 저장 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다.The memory may include fast random access memory, and may also include one or more magnetic disk storage devices, nonvolatile memory such as flash memory devices, or other nonvolatile semiconductor memory devices. In some embodiments, the memory may include storage devices located remotely from one or more processors. Access to memory by other components such as processors and peripheral interfaces may be controlled by the memory controller.
주변 인터페이스는 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 인증 서버(200)를 위한 여러 기능을 수행하고 데이터를 처리한다.The peripheral interface connects the input and output peripherals with the processor and memory. One or more processors execute various sets of software programs and / or instructions stored in memory to perform various functions and process data for the authentication server 200.
I/O 서브시스템은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. The I / O subsystem provides the interface between the input and output peripherals and the peripheral interface.
프로세서는 인증 서버(200)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 인증 서버(200)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 일부 실시예에서, 소프트웨어 구성요소는 운영 체제, 그래픽 모듈(명령어 세트)이 메모리에 탑재(설치)된다. The processor is a processor configured to perform operations associated with the authentication server 200 and to perform instructions, for example, using instructions retrieved from a memory, to receive and manipulate input and output data between components of the authentication server 200. Can be controlled. In some embodiments, the software component is an operating system, graphics module (instruction set) is mounted (installed) in the memory.
운영 체제는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.The operating system may be, for example, a built-in operating system such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS or VxWorks, Android, etc., and may be a general system task (e.g., memory management, storage Various software components and / or devices that control and manage device control, power management, etc.), and facilitate communication between various hardware and software components.
프로그램 전송 모듈(310)은 사용자 단말(100)의 요청에 따라 인증 프로그램을 상기 사용자 단말(100)로 전송한다.The program transmission module 310 transmits an authentication program to the user terminal 100 at the request of the user terminal 100.
가입 정보 관리 모듈(320)은 상기 사용자 단말(100)로부터 사용자의 개인 정보, 예를 들어 ID, 이름, 생년 월일, 성별 등의 개인 정보를 수신하여 저장한다.The subscription information management module 320 receives and stores personal information of the user from the user terminal 100, for example, personal information such as ID, name, date of birth, and gender.
인증 정보 관리 모듈(330)은 상기 사용자 단말(100)로부터 사용자의 ID, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 수신하고, 사용자의 식별정보, 즉 상기 사용자의 ID를 기준으로 상기 다바이스 인증키, 프로그램 인증키 및 사용자 인증키를 인증용 정보로서 저장한다.The authentication information management module 330 receives an ID, a device authentication key, a program authentication key, and a user authentication key of the user from the user terminal 100, and authenticates the device based on the identification information of the user, that is, the ID of the user. The key, program authentication key, and user authentication key are stored as authentication information.
인증 정보 관리 모듈(330)은, 사용자자 사용자 단말(100)을 변경하는 경우, 변경 후 사용자 단말에서 사용할 디바이스 인증키, 프로그램 인증키 및 사용자 인증키와 사용자의 ID를 포함하는 디바이스 변경 요청을 수신할 수 있다. 인증 정보 관리 모듈(330)은, 상기 디바이스 변경 요청에 포함된 사용자 ID를 이용하여 기 저장되어 등록되어 있는 인증용 정보를 검색한다. 인증 정보 관리 모듈(330)은 검색된 인증용 정보 중 사용자 인증키와, 상기 디바이스 변경 요청에 포함된 사용자 인증키를 비교하여, 일치할 경우, 기 저장되어 있는 해당 사용자의 디바이스 인증키와 프로그램 인증키를 상기 디바이스 변경 요청에 포함된 디바이스 인증키와 프로그램 인증키로 수정하고, 완료 응답을 사용자 단말(110)로 전송한다.When changing the user user terminal 100, the authentication information management module 330 receives a device change request including a device authentication key, a program authentication key, a user authentication key, and an ID of a user to be used in the user terminal after the change. can do. The authentication information management module 330 searches for authentication information previously stored and registered by using the user ID included in the device change request. The authentication information management module 330 compares the user authentication key among the retrieved authentication information with the user authentication key included in the device change request, and if it matches, the device authentication key and the program authentication key of the corresponding user, which are previously stored. To a device authentication key and a program authentication key included in the device change request, and transmits a completion response to the user terminal 110.
또한, 인증 정보 관리 모듈(330)은, 새로운 사용자 인증키, 이전 사용자 인증키, 디바이스 인증키, 프로그램 인증키 및 사용자 ID를 포함하는 개인 비밀번호 변경 요청을 상기 사용자 단말(100)로부터 수신할 수 있다. 인증 정보 관리 모듈(330)은, 상기 개인 비밀번호 변경 요청에 포함된 사용자 ID를 이용하여 기 저장되어 등록되어 있는 인증용 정보를 검색한다. 인증 정보 관리 모듈(330)은 검색된 인증용 정보와 상기 개인 비밀번호 변경 요청에 포함된 이전 사용자 인증키, 디바이스 인증키, 프로그램 인증키를 비교하여 모두 일치하는 경우, 기 저장되어 있는 사용자 인증키를 상기 개인 비밀번호 변경 요청에 포함된 새로운 사용자 인증키로 수정하고, 완료 응답을 사용자 단말(110)로 전송한다.In addition, the authentication information management module 330 may receive a personal password change request including a new user authentication key, a previous user authentication key, a device authentication key, a program authentication key, and a user ID from the user terminal 100. . The authentication information management module 330 searches for authentication information previously stored and registered using the user ID included in the personal password change request. The authentication information management module 330 compares the retrieved authentication information with the previous user authentication key, device authentication key, and program authentication key included in the personal password change request, and matches the previously stored user authentication key. The new user authentication key included in the personal password change request is modified, and the completion response is transmitted to the user terminal 110.
또한, 인증 정보 관리 모듈(330)은, 새로운 프로그램 인증키, 새로운 사용자 인증키, 이전 프로그램 인증키, 이전 사용자 인증키, 디바이스 인증키 및 사용자 ID를 포함하는 비밀 제수 변경 요청을 상기 사용자 단말(100)로부터 수신할 수 있다. 인증 정보 관리 모듈(330)은, 상기 비밀 제수 변경 요청에 포함된 사용자 ID를 이용하여 기 저장되어 등록되어 있는 인증용 정보를 검색한다. 인증 정보 관리 모듈(330)은 검색된 인증용 정보와 상기 비밀 제수 변경 요청에 포함된 이전 사용자 인증키, 이전 프로그램 인증키, 디바이스 인증키를 비교하여 모두 일치하는 경우, 기 저장되어 있는 사용자 인증키 및 프로그램 인증키를 상기 비밀 제수 변경 요청에 포함된 새로운 사용자 인증키 및 새로운 프로그램 인증키로 수정하고, 완료 응답을 사용자 단말(110)로 전송한다.In addition, the authentication information management module 330 may request a secret divisor change request including a new program authentication key, a new user authentication key, a previous program authentication key, a previous user authentication key, a device authentication key, and a user ID. Can be received from. The authentication information management module 330 searches for authentication information previously stored and registered using the user ID included in the secret divisor change request. The authentication information management module 330 compares the retrieved authentication information with the previous user authentication key, the previous program authentication key, and the device authentication key included in the secret divisor change request, and if all matched, the previously stored user authentication key and The program authentication key is modified with the new user authentication key and the new program authentication key included in the secret divisor change request, and the completion response is transmitted to the user terminal 110.
인증 처리 모듈(340)은 온라인 쇼핑몰 등으로부터 사용자 ID를 포함하는 결제 승인 요청이 수신되면 상기 사용자 ID를 이용하여 사용자를 식별하고 알림 메시지를 사용자 단말(100)로 푸시한다. 그리고 인증 처리 모듈(340)은 사용자 단말로부터 사용자 ID, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 결제 승인 요청을 수신하고, 그 결제 승인 요청에 포함된 사용자 ID를 이용하여 기 저장되어 있는 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 검색하고 상기 결제 승인 요청에 포함된 정보들과 비교한다. 인증 처리 모듈(340)은 비교 결과 모두 일치하는 경우 정상적인 결제 처리를 승인한다. 이때 인증 처리 모듈(340)은 사용자 단말(100)로부터 지불 수단 정보를 수신하고 그 지불 수단 정보를 이용하여 결제 처리를 수행할 수 있다. 인증 처리 모듈(340)은 결제 승인 응답을 온라인 쇼핑몰 등 판매자에게 그리고 사용자 단말(100)에 전송한다.When a payment approval request including a user ID is received from an online shopping mall, the authentication processing module 340 identifies the user using the user ID and pushes a notification message to the user terminal 100. The authentication processing module 340 receives a payment approval request including a user ID, a device authentication key, a program authentication key, and a user authentication key from the user terminal, and is stored in advance using a user ID included in the payment approval request. The device authentication key, the program authentication key, and the user authentication key are searched and compared with the information included in the payment approval request. The authentication processing module 340 approves the normal payment processing when all comparison results match. In this case, the authentication processing module 340 may receive payment means information from the user terminal 100 and perform payment processing using the payment means information. The authentication processing module 340 transmits the payment approval response to the seller such as an online shopping mall and to the user terminal 100.
도 5는 본 발명의 일 실시예에 따른 사용자 단말에서 디바이스 인증키를 생성하는 방법을 설명하는 흐름도이다.5 is a flowchart illustrating a method of generating a device authentication key in a user terminal according to an embodiment of the present invention.
도 5를 참조하면, 사용자 단말(100)은 통신망(300)을 통해 인증 서버(200)에 접속하여 인증 프로그램을 다운로드한다(S401). 사용자 단말(100)은 사용자의 입력에 따라 상기 인증 프로그램을 실행하고(S403), 상기 인증 프로그램은 디바이스 인증키가 저장되어 있는지 확인한다(S405). 디바이스 인증키가 저장되어 있는 경우 도 5의 과정을 수행한다. 도 5에 관해서는 후술한다.Referring to FIG. 5, the user terminal 100 accesses the authentication server 200 through the communication network 300 and downloads the authentication program (S401). The user terminal 100 executes the authentication program according to the user's input (S403), and the authentication program checks whether the device authentication key is stored (S405). When the device authentication key is stored, the process of FIG. 5 is performed. 5 will be described later.
디바이스 인증키가 저장되어 있지 않은 경우, 상기 인증 프로그램은 사용자 단말(100)의 고유 정보, 예컨대 네트워크 인터페이스 카드의 MAC 주소 또는 UUID 등을 수집한다(S407). 그리고 상기 인증 프로그램은 상기 고유 정보를 이용하여 디바이스 인증키를 생성하고 저장한다(S409, S411). 인증 프로그램은 상기 고유 정보를 해쉬 함수에 입력하여 생성되는 값을 디바이스 인증키로 한다.If the device authentication key is not stored, the authentication program collects unique information of the user terminal 100, for example, the MAC address or UUID of the network interface card (S407). The authentication program generates and stores a device authentication key using the unique information (S409, S411). The authentication program sets the value generated by inputting the unique information into the hash function as the device authentication key.
이어서 상기 인증 프로그램은 자동 재실행하고(S413), 사용자에게 단말 변경, 즉 디바이스 변경인지 아니면 처음 사용하는 것인지를 묻는 팝업 창을 표시하고 이에 관한 입력을 수신한다(415). 디바이스 변경인 경우, 도 8의 과정을 수행한다. 도 7에 관해서는 후술한다. 반면, 인증 프로그램을 처음 사용하는 것인 경우, 도 6의 과정을 수행한다. Subsequently, the authentication program automatically executes again (S413), and displays a pop-up window asking the user whether to change the terminal, that is, whether the device is changed or used for the first time, and receives an input related thereto (415). In the case of device change, the process of FIG. 8 is performed. 7 will be described later. On the other hand, when using the authentication program for the first time, the process of FIG.
도 6은 본 발명의 일 실시예에 따른 프로그램 인증키를 생성하는 방법을 설명하는 흐름도이다.6 is a flowchart illustrating a method of generating a program authentication key according to an embodiment of the present invention.
도 6을 참조하면, 인증 프로그램은 디바이스 인증키를 생성한다(S501). 즉 인증 프로그램은 사용자 단말(100)의 고유 정보, 예컨대 네트워크 인터페이스 카드의 MAC 주소 또는 UUID 등을 수집하고 그 고유 정보를 이용하여 디바이스 인증키를 생성한다.Referring to FIG. 6, the authentication program generates a device authentication key (S501). That is, the authentication program collects unique information of the user terminal 100, for example, a MAC address or UUID of the network interface card, and generates a device authentication key using the unique information.
그리고 인증 프로그램은 상기 단계 S501에서 생성한 디바이스 인증키와 기 저장되어 있는 디바이스 인증키를 비교한다(S503). 비교 결과, 일치하지 않는 경우, 상기 인증 프로그램은 자동 삭제한다(S505). 예를 들어 인증 프로그램이 복사되어 다른 사용자 단말에 설치된 경우 인증 프로그램은 자동 삭제된다.The authentication program compares the device authentication key generated in step S501 with the device authentication key previously stored (S503). If the result of the comparison does not match, the authentication program is automatically deleted (S505). For example, if an authentication program is copied and installed in another user terminal, the authentication program is automatically deleted.
한편, 상기 단계 S503의 비교 결과, 일치하는 경우, 인증 프로그램은 비밀 해쉬값이 존재하는지 확인하고(S507), 비밀 해쉬값이 존재하지 않는 경우, 비밀 해쉬값을 생성하는 과정을 수행한다. 즉 인증 프로그램은 사용자로부터 비밀 제수를 입력받고(S509), 그 비밀 제수를 이용하여 비밀 해쉬값을 생성하여 저장한다(S511, S513). 인증 프로그램은 비밀 제수를 해쉬 함수에 입력하여 비밀 해쉬값을 생성한다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있다.On the other hand, as a result of the comparison in step S503, if it matches, the authentication program checks whether a secret hash value exists (S507), and if there is no secret hash value, performs a process of generating a secret hash value. That is, the authentication program receives a secret divisor from the user (S509), and generates and stores a secret hash value using the secret divisor (S511, S513). The authentication program generates a secret hash value by entering the secret divisor into the hash function. The secret divisor may be any one of a long string, an image file, a sound file, or a video file.
비밀 해쉬값을 생성한 후, 또는 상기 단계 S507에서 확인 결과 비밀 해쉬값이 존재하지만 단계 S521에서 확인한 결과 프로그램 인증키가 존재하지 않는 경우, 프로그램 인증키 생성 과정을 수행한다. 즉, 인증 프로그램은 타임스탬프를 생성하고(S515), 그 타임스탬프와 디바이스 인증키 그리고 상기 비밀 해쉬값을 해쉬 함수에 입력하여 프로그램 인증키를 생성하여 저장한다(S517, S519). After generating the secret hash value, or if there is a secret hash value as a result of the check in step S507 but the program authentication key does not exist as a result of checking in step S521, a program authentication key generation process is performed. That is, the authentication program generates a time stamp (S515), and inputs the time stamp, the device authentication key, and the secret hash value into a hash function to generate and store a program authentication key (S517, S519).
이와 같이 프로그램 인증키를 생성하고 나서, 인증 프로그램은 사용자에게 인증 서버(200)로 인증용 정보의 서버 등록 여부를 묻고(S523), 사용자로부터 서버 등록에 동의하지 않는 입력을 수신한 경우 동작을 종료하고, 서버 등록에 동의하는 입력을 수신하는 경우 도 7의 과정을 수행한다.After generating the program authentication key as described above, the authentication program asks the user whether the server for authentication information is registered with the authentication server 200 (S523), and when the user receives an input that does not agree to the server registration, the operation ends. When receiving an input for agreeing to register the server, the process of FIG. 7 is performed.
도 7은 본 발명의 일 실시예에 따른 인증용 정보의 서버 등록 과정을 설명하는 흐름도이다.7 is a flowchart illustrating a server registration process of authentication information according to an embodiment of the present invention.
도 7을 참조하면, 인증 프로그램은 사용자로부터 인증 서버의 주소 입력을 수신한다(S601). 그리고 인증 프로그램은 사용자로부터 인증 서버의 프로파일 입력을 수신한다(S603). 여기서 프로파일은 인증 서버의 이름 등으로서 사용자가 인증 서버를 쉽게 인식하고 관리할 수 있도록 하는 정보이다.Referring to FIG. 7, the authentication program receives an address input of an authentication server from a user (S601). The authentication program receives a profile input of the authentication server from the user (S603). Here, the profile is information such as the name of the authentication server so that the user can easily recognize and manage the authentication server.
다음으로 인증 프로그램은 사용자로부터 가입 정보 입력을 수신한다(S605). 여기서 가입 정보는 ID, 이름, 생년월일, 성별 등의 정보를 포함한다. 그리고 인증 프로그램은 사용자로부터 개인 비밀번호 입력을 수신한다(S607). 개인 비밀번호 입력을 수신하기 전에, 인증 프로그램은, 공인인증서를 통한 본인 인증, 또는 인증 서버(200)를 운영하는 사업자로부터 발급받은 1회용 비밀번호를 이용하여 본인 인증을 할 수 있다. 상기 개인 비밀번호는 예를 들어 6자리의 숫자일 수 있다. Next, the authentication program receives subscription information input from the user (S605). Here, the subscription information includes information such as ID, name, date of birth, and gender. The authentication program then receives a personal password input from the user (S607). Before receiving the personal password input, the authentication program can be authenticated by using a one-time password issued from a company operating the authentication server, or the authentication server 200, a public certificate. The personal password may be, for example, a six digit number.
인증 프로그램은, 비밀 해쉬값과 상기 개인 비밀번호를 해쉬 함수에 입력하여 사용자 인증키를 생성한다(S609).The authentication program generates a user authentication key by inputting the secret hash value and the personal password into the hash function (S609).
그리고 인증 프로그램은, 사용자 ID, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 인증용 정보를 인증 서버(200)로 전송한다(S611). 따라서 인증 서버(200)는 사용자 ID를 기준으로 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 저장하여 온라인 결제 등에서 이용한다.The authentication program transmits authentication information including the user ID, the device authentication key, the program authentication key, and the user authentication key to the authentication server 200 (S611). Therefore, the authentication server 200 stores the device authentication key, the program authentication key and the user authentication key based on the user ID to use in online payment.
도 8 및 도 9은 본 발명의 일 실시예에 따른 단말 변경시 인증용 정보를 등록하는 과정을 설명하는 흐름도이다.8 and 9 are flowcharts illustrating a process of registering information for authentication when a terminal is changed according to an embodiment of the present invention.
도 8을 참조하면, 인증 프로그램은 디바이스 인증키를 생성한다(S701). 즉 인증 프로그램은 사용자 단말(100)의 고유 정보, 예컨대 네트워크 인터페이스 카드의 MAC 주소 또는 UUID 등을 수집하고 그 고유 정보를 이용하여 디바이스 인증키를 생성한다.Referring to FIG. 8, the authentication program generates a device authentication key (S701). That is, the authentication program collects unique information of the user terminal 100, for example, a MAC address or UUID of the network interface card, and generates a device authentication key using the unique information.
그리고 인증 프로그램은 상기 단계 S701에서 생성한 디바이스 인증키와 기 저장되어 있는 디바이스 인증키를 비교한다(S703). 비교 결과, 일치하지 않는 경우, 상기 인증 프로그램은 자동 삭제한다(S705). 예를 들어 인증 프로그램이 복사되어 다른 사용자 단말에 설치된 경우 인증 프로그램은 자동 삭제된다.The authentication program compares the device authentication key generated in step S701 with the device authentication key previously stored (S703). If the result of the comparison does not match, the authentication program is automatically deleted (S705). For example, if an authentication program is copied and installed in another user terminal, the authentication program is automatically deleted.
한편, 상기 단계 S703의 비교 결과, 일치하는 경우, 인증 프로그램은 사용자로부터 비밀 제수를 입력받는다(S709). 단말을 변경하여 인증 프로그램을 최초 설치하는 경우 도 5의 과정을 통해 미리 디바이스 인증키가 저장되어 있으므로, 단계 S703의 비교 결과에서 디바이스 인증키는 일치한다.On the other hand, if the comparison result of the above step S703, the authentication program receives a secret divisor from the user (S709). In the case of first installing the authentication program by changing the terminal, since the device authentication key is stored in advance through the process of FIG. 5, the device authentication key matches in the comparison result of step S703.
인증 프로그램은 상기 비밀 제수를 이용하여 비밀 해쉬값을 생성하여 저장한다(S711, S713). 인증 프로그램은 비밀 제수를 해쉬 함수에 입력하여 비밀 해쉬값을 생성한다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있다.The authentication program generates and stores a secret hash value using the secret divisor (S711, S713). The authentication program generates a secret hash value by entering the secret divisor into the hash function. The secret divisor may be any one of a long string, an image file, a sound file, or a video file.
비밀 해쉬값을 생성한 후 프로그램 인증키 생성 과정을 수행한다. 즉, 인증 프로그램은 타임스탬프를 생성하고(S715), 그 타임스탬프와 디바이스 인증키 그리고 상기 비밀 해쉬값을 해쉬 함수에 입력하여 프로그램 인증키를 생성하여 저장한다(S717, S719). After generating the secret hash value, the program authentication key is generated. That is, the authentication program generates a time stamp (S715), and inputs the time stamp, the device authentication key, and the secret hash value into a hash function to generate and store a program authentication key (S717, S719).
이와 같이 프로그램 인증키를 생성하고 나서, 도 9에 도시된 바와 같이, 인증 프로그램은 사용자로부터 인증 서버의 주소 입력을 수신한다(S801). 그리고 인증 프로그램은 사용자로부터 인증 서버의 프로파일 입력을 수신한다(S803). 그리고 인증 프로그램은 사용자로부터 개인 비밀번호 입력을 수신한다(S805). 사용자는 단말을 변경하기 전에 이미 인증 서버(200)에 회원 가입을 하였으므로 본 과정에서는 회원 가입 과정이 필요없다.After generating the program authentication key in this manner, as shown in FIG. 9, the authentication program receives an address input of the authentication server from the user (S801). The authentication program receives a profile input of the authentication server from the user (S803). The authentication program receives an input of a personal password from the user (S805). Since the user has already subscribed to the authentication server 200 before changing the terminal, the membership registration process is not necessary in this process.
인증 프로그램은, 비밀 해쉬값과 상기 개인 비밀번호를 해쉬 함수에 입력하여 사용자 인증키를 생성한다(S807). 그리고 인증 프로그램은, 사용자 ID, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 인증용 정보를 인증 서버(200)로 전송한다(S809). The authentication program generates a user authentication key by inputting the secret hash value and the personal password into the hash function (S807). The authentication program transmits authentication information including the user ID, the device authentication key, the program authentication key, and the user authentication key to the authentication server 200 (S809).
인증 서버(200)는 상기 인증용 정보에 포함된 사용자 ID를 이용하여 기 저장된 사용자 인증키를 검색하고, 그 검색한 사용자 인증키와 상기 인증용 정보에 포함된 사용자 인증키를 비교하여 사용자 인증키에 대한 검증을 수행한다(S813). The authentication server 200 searches for a previously stored user authentication key by using the user ID included in the authentication information, compares the searched user authentication key with the user authentication key included in the authentication information, and authenticates the user authentication key. Verification is performed (S813).
사용자 인증키가 일치하지 않는 경우, 인증 서버(200)는 사용자 단말로 검증 실패를 알리고(S815), 사용자 인증키가 일치하는 경우, 기 저장된 디바이스 인증키 및 프로그램 인증키를 상기 인증용 정보에 포함된 디바이스 인증키 및 프로그램 인증키로 수정한다(S817). 그리고 인증 서버(200)는 단말 변경 완료를 사용자 단말에게 알린다(S819). If the user authentication key does not match, the authentication server 200 notifies the verification failure to the user terminal (S815), and if the user authentication key is matched, the previously stored device authentication key and program authentication key included in the authentication information. The device authentication key and the program authentication key are modified (S817). The authentication server 200 notifies the user terminal of the completion of the terminal change (S819).
인증 프로그램은 단말 변경 완료를 표시한 후, 사용자에게 단말을 변경할 서버가 더 있는지 확인하여(S821) 더 이상 변경할 서버가 없는 경우 종료하고, 변경할 서버가 더 있는 경우 전술한 단계 S801부터 상술한 과정을 다시 반복 수행한다.After the authentication program displays the terminal change completion, the user checks whether there are more servers to change the terminal (S821) and terminates when there are no more servers to change. Repeat again.
도 10은 본 발명의 일 실시예에 따른 사용자 인증키를 변경하는 과정을 설명하는 흐름도이다.10 is a flowchart illustrating a process of changing a user authentication key according to an embodiment of the present invention.
도 10을 참조하면, 사용자 단말(100)의 인증 프로그램은 사용자로부터 기존 개인 비밀번호 입력을 수신한다(S901). 그리고 인증 프로그램은 사용자로부터 새로운 개인 비밀번호 입력을 수신한다(S903).Referring to FIG. 10, the authentication program of the user terminal 100 receives an existing personal password input from the user (S901). The authentication program receives a new personal password input from the user (S903).
인증 프로그램은 상기 기존 개인 비밀번호를 이용하여 기존 사용자 인증키를 생성한다(S905). 즉 비밀 해쉬값과 기존 개인 비밀번호를 해쉬 함수에 입력하여 기존 사용자 인증키를 생성한다. The authentication program generates an existing user authentication key using the existing personal password (S905). In other words, a secret hash value and an existing personal password are entered into the hash function to generate an existing user authentication key.
또한, 인증 프로그램은 상기 새로운 개인 비밀번호를 이용하여 새로운 사용자 인증키를 생성한다(S907). 즉 비밀 해쉬값과 새로운 개인 비밀번호를 해쉬 함수에 입력하여 새로운 사용자 인증키를 생성한다. In addition, the authentication program generates a new user authentication key using the new personal password (S907). In other words, a new user authentication key is generated by entering a secret hash value and a new personal password into the hash function.
다음으로, 인증 프로그램은, 상기 기존 사용자 인증키, 상기 새로운 사용자 인증키, 사용자 ID, 디바이스 인증키 및 프로그램 인증키를 포함하는 사용자 인증키 변경 요청을 인증 서버(200)로 전송한다(S909).Next, the authentication program transmits a user authentication key change request including the existing user authentication key, the new user authentication key, a user ID, a device authentication key, and a program authentication key to the authentication server 200 (S909).
인증 서버(200)는 상기 사용자 인증키 변경 요청을 수신하고(S911), 상기 사용자 ID를 이용하여 기 저장되어 있는 사용자 인증키, 디바이스 인증키 및 프로그램 인증키와 상기 사용자 인증키 변경 요청에 포함된 기존 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 비교하는 검증을 수행한다(S913).The authentication server 200 receives the user authentication key change request (S911), and is included in the user authentication key, device authentication key, program authentication key, and the user authentication key change request previously stored using the user ID. The verification is performed by comparing the existing user authentication key, device authentication key, and program authentication key (S913).
비교 결과, 하나라도 일치하지 않는 경우, 인증 서버(200)는 사용자 단말(100)로 변경 실패 알림을 전송하고(S915), 비교 결과 모두 일치하는 경우 인증 서버(200)는 기 저장되어 있는 사용자 인증키를 상기 사용자 인증키 변경 요청에 포함된 새로운 사용자 인증키로 수정한다(S917). 그리고 인증 서버(200)는 사용자 단말(100)로 변경 성공 알림을 전송한다(S919).As a result of the comparison, if any one does not match, the authentication server 200 transmits a change failure notification to the user terminal 100 (S915), and if the comparison results all match, the authentication server 200 previously stored user authentication. The key is modified to a new user authentication key included in the user authentication key change request (S917). The authentication server 200 transmits a change success notification to the user terminal 100 (S919).
도 11은 본 발명의 일 실시예에 따른 비밀 제수의 변경 과정을 설명하는 흐름도이다. 비밀 제수는 비밀 해쉬값 생성에 이용되고, 비밀 해쉬값은 프로그램 인증키와 사용자 인증키 생성에 이용된다. 따라서 비밀 제수의 변경은 곧 프로그램 인증키와 사용자 인증키의 변경까지 포함하게 된다.11 is a flowchart illustrating a process of changing a secret divisor according to an embodiment of the present invention. The secret divisor is used to generate a secret hash value, and the secret hash value is used to generate a program authentication key and a user authentication key. Therefore, the change of the secret divisor will include the change of the program authentication key and the user authentication key.
도 11을 참조하면, 사용자 단말(100)의 인증 프로그램은 새로운 비밀 제수 입력을 수신한다(S1001). 그리고 인증 프로그램은 상기 새로운 비밀 제수를 이용하여 새로운 비밀 해쉬값을 생성하여 저장한다(S1003, S1005).Referring to FIG. 11, the authentication program of the user terminal 100 receives a new secret divisor input (S1001). The authentication program generates and stores a new secret hash value using the new secret divisor (S1003, S1005).
인증 프로그램은 타임스탬프를 생성하고 그 타임스탬프와 상기 새로운 비밀 해쉬값 그리고 디바이스 인증키를 이용하여 새로운 프로그램 인증키를 생성하고 저장한다(S1007, S1009, S1011).The authentication program generates a time stamp and generates and stores a new program authentication key using the time stamp, the new secret hash value, and the device authentication key (S1007, S1009, and S1011).
인증 프로그램은 사용자로부터 비밀 제수를 변경할 서버 선택 입력을 수신한다(S1013). 사용자는 하나의 서버를 선택할 수 있고, 또는 복수의 서버를 선택할 수 있으며, 또는 모든 서버를 선택할 수 있다. 본 실시예에서는 하나의 인증 서버(200)를 선택한 것으로 가정한다.The authentication program receives a server selection input for changing the secret divisor from the user (S1013). The user can select one server, or select multiple servers, or select all servers. In this embodiment, it is assumed that one authentication server 200 is selected.
인증 프로그램은 사용자로부터 ID 및 개인 비밀번호 입력을 수신한다(S1015). 인증 프로그램은 상기 비밀 해쉬값 및 상기 개인 비밀번호를 이용하여 새로운 사용자 인증키를 생성한다(S1017).The authentication program receives an ID and a personal password input from the user (S1015). The authentication program generates a new user authentication key using the secret hash value and the personal password (S1017).
인증 프로그램은, 디바이스 인증키, 상기 사용자 ID, 상기 새로운 프로그램 인증키, 상기 새로운 사용자 인증키, 기존 프로그램 인증키 및 기존 사용자 인증키를 포함하는 비밀 제수 변경 요청을 인증 서버(200)로 전송한다(S1019).The authentication program transmits a secret divisor change request including a device authentication key, the user ID, the new program authentication key, the new user authentication key, an existing program authentication key, and an existing user authentication key to the authentication server 200 ( S1019).
인증 서버(200)는 상기 비밀 제수 변경 요청을 수신하고(S1021), 사용자 ID를 이용하여 기 저장되어 있는 사용자 인증키, 디바이스 인증키 및 프로그램 인증키와 상기 비밀 제수 변경 요청에 포함된 기존 사용자 인증키, 디바이스 인증키 및 기존 프로그램 인증키를 비교하는 검증을 수행한다(S1023).The authentication server 200 receives the secret divisor change request (S1021), and stores a user authentication key, a device authentication key, a program authentication key, and an existing user authentication included in the secret divisor change request using a user ID. The verification is performed to compare the key, the device authentication key, and the existing program authentication key (S1023).
비교 결과, 하나라도 일치하지 않는 경우, 인증 서버(200)는 사용자 단말(100)로 변경 실패 알림을 전송하고(S1025), 비교 결과 모두 일치하는 경우 인증 서버(200)는 기 저장되어 있는 사용자 인증키 및 프로그램 인증키를 상기 비밀 제수 변경 요청에 포함된 새로운 사용자 인증키 및 새로운 프로그램 인증키로 수정한다(S1027). 그리고 인증 서버(200)는 사용자 단말(100)로 변경 성공 알림을 전송한다(S1029).As a result of the comparison, if any one does not match, the authentication server 200 transmits a change failure notification to the user terminal 100 (S1025), and if all of the comparison results match, the authentication server 200 previously stored user authentication. The key and the program authentication key are modified to the new user authentication key and the new program authentication key included in the secret divisor change request (S1027). The authentication server 200 transmits a change success notification to the user terminal 100 (S1029).
도 12 및 도 13은 본 발명의 일 실시예에 따른 온라인 쇼핑 과정을 설명하는 흐름도이다.12 and 13 are flowcharts illustrating an online shopping process according to an embodiment of the present invention.
도 12를 참조하면, 사용자는 사용자 단말(100)을 이용하여 쇼핑 서버에 접속하여 구매하고자 하는 상품을 선택하고, 주문자 정보 등의 배송 정보 그리고 지불 수단 정보를 입력한다. 이때 쇼핑 서버는 사용자 단말(100)로 결제 승인 방법을 제시하고, 사용자는 여러 결제 승인 방법 중 본 발명에 따른 해쉬락 결제 승인 방법을 선택한다(S1101, S1103).Referring to FIG. 12, a user accesses a shopping server using a user terminal 100, selects a product to purchase, and inputs delivery information such as orderer information and payment means information. At this time, the shopping server presents a payment approval method to the user terminal 100, and the user selects a hash lock payment approval method according to the present invention among various payment approval methods (S1101 and S1103).
이에 따라 쇼핑 서버는 사용자 단말로 해쉬락 ID 요청을 전송하고, 사용자 단말은 사용자로부터 해쉬락 ID를 입력받아 쇼핑 서버로 전송한다(S1105, S1107). 여기서 해쉬락 ID는 인증 서버(200)에 사용자가 회원 가입시 등록한 ID이다.Accordingly, the shopping server transmits a hash lock ID request to the user terminal, and the user terminal receives the hash lock ID from the user and transmits the hash lock ID to the shopping server (S1105 and S1107). Here, the hash lock ID is an ID registered at the time of user registration in the authentication server 200.
쇼핑 서버는 상기 수신된 ID와 거래 내역을 포함하는 결제 승인 요청을 인증 서버(200)로 전송한다(S1109). 여기서 거래 내역은 쇼핑몰의 이름, 상품명, 금액, 지불 수단 정보를 포함한다.The shopping server transmits a payment approval request including the received ID and transaction details to the authentication server 200 (S1109). Here, the transaction details include a name, a product name, an amount of money, and a means of payment of the shopping mall.
인증 서버(200)는 상기 결제 승인 요청에 포함된 ID를 이용하여 사용자를 식별하고 사용자 단말(100)로 거래 내역을 포함하는 알림 메시지를 푸시한다(S1111).The authentication server 200 identifies a user by using the ID included in the payment approval request and pushes a notification message including transaction details to the user terminal 100 (S1111).
알림 메시지가 푸시됨에 따라, 사용자 단말(100)의 인증 프로그램이 실행되고, 인증 프로그램은 알림 메시지를 표시하며 사용자로부터 지불 수단 식별정보를 입력받는다(S1113). 여기서 지불 수단 식별정보는 출금 계좌 번호, 신용카드번호, 전화번호 등을 포함할 수 있다.As the notification message is pushed, the authentication program of the user terminal 100 is executed, and the authentication program displays the notification message and receives payment means identification information from the user (S1113). The payment means identification information may include a withdrawal account number, credit card number, telephone number, and the like.
인증 프로그램은, 사용자로부터 ID, 개인 비밀번호를 입력받는다(S1115). 인증 프로그램은 비밀 해쉬값 및 상기 입력받은 개인 비밀번호를 이용하여 사용자 인증키를 생성한다(S1117). 인증 프로그램은, 상기 사용자 인증키와 거래 내역 그리고 지불 수단 식별정보를 해쉬 함수에 입력하여 거래 정보 해쉬값을 생성한다(S1119).The authentication program receives an ID and a personal password from the user (S1115). The authentication program generates a user authentication key using a secret hash value and the input personal password (S1117). The authentication program generates a transaction information hash value by inputting the user authentication key, transaction details, and payment means identification information into a hash function (S1119).
인증 프로그램은, 사용자 ID, 디바이스 인증키, 프로그램 인증키, 상기 생성한 사용자 인증키, 상기 거래 정보 해쉬값 및 지불 수단 식별정보를 포함하는 결제 승인 요청을 인증 서버(200)로 전송한다(S1121).The authentication program transmits a payment approval request including a user ID, a device authentication key, a program authentication key, the generated user authentication key, the transaction information hash value, and payment means identification information to the authentication server 200 (S1121). .
도 13을 참조하면, 결제 승인 요청을 수신한 인증 서버(200)는, 상기 결제 승인 요청에 포함된 ID를 이용하여 기 저장되어 있는 인증용 정보를 검색하고 그 검색한 인증용 정보와 상기 결제 승인 요청에 포함된 디바이스 인증키, 프로그램 인증키, 사용자 인증키를 비교하여 검증한다(S1123).Referring to FIG. 13, the authentication server 200 receiving the payment approval request searches for previously stored authentication information using the ID included in the payment approval request, and retrieves the authentication information and the payment approval. The device authentication key, the program authentication key, and the user authentication key included in the request are compared and verified (S1123).
검증에 실패한 경우, 즉 비교 결과 어느 하나라도 일치하지 않는 경우, 인증 서버(200)는 사용자 단말(100)로 본인 인증 실패 알림을 전송한다(S1125). 반면 검증에 성공한 경우, 즉 비교 결과 모두 일치하는 경우, 인증 서버(200)는 거래 정보 해쉬값을 생성한다(S1129). 즉, 상기 인증용 정보에서 추출한 사용자 인증키와 단계 S1109에서 쇼핑 서버로부터 수신하였던 거래 내역 그리고 상기 결제 승인 요청에 포함된 지불 수단 식별정보를 해쉬 함수에 입력하여 거래 정보 해쉬값을 생성한다. If the verification fails, that is, if any of the comparison results do not match, the authentication server 200 transmits a user authentication failure notification to the user terminal 100 (S1125). On the other hand, if the verification is successful, that is, if all comparison results match, the authentication server 200 generates a transaction information hash value (S1129). That is, a transaction information hash value is generated by inputting a user authentication key extracted from the authentication information, transaction details received from the shopping server in step S1109 and payment means identification information included in the payment approval request to a hash function.
인증 서버(200)는 이와 같이 생성한 거래 정보 해쉬값과 상기 결제 승인 요청에 포함된 거래 정보 해쉬값을 비교하여 검증한다(S1131). 거래 정보 해쉬값이 일치하지 않는 경우, 인증 서버(200)는 사용자 단말(100)로 무결성 실패 알림을 전송한다(S1127). 반면 거래 정보 해쉬값이 일치하는 경우, 인증 서버(200)는 결제를 실행하고, 그 결과를 쇼핑 서버와 사용자 단말(100)로 통지한다(S1133, S1135, S1137).The authentication server 200 compares and validates the transaction information hash value generated as described above with the transaction information hash value included in the payment approval request (S1131). If the transaction information hash values do not match, the authentication server 200 transmits an integrity failure notification to the user terminal 100 (S1127). On the other hand, when the transaction information hash values match, the authentication server 200 executes the settlement, and notifies the shopping server and the user terminal 100 of the results (S1133, S1135, and S1137).
도 12 및 도 13을 참조한 실시예는 온라인 쇼핑몰에서 상품을 구매하여 결제하는 예이다. 본 발명은 여기에만 제한되는 것은 아니며, 은행 계좌 이체, 이동통신 요금 결제 등의 통상적인 인증 과정이 필요한 모든 거래에 적용될 수 있다.12 and 13 illustrate an example of purchasing and paying for a product in an online shopping mall. The present invention is not limited thereto, and may be applied to all transactions requiring a conventional authentication process such as bank account transfer and mobile communication fee payment.
OTPOTP
((
OneOne
TimeTime
PasswordPassword
) 인증의 일 Day of certification
실시예Example
사용자 단말(100)은 인증 프로그램(113)을 통해 상기 인증 서버(200)와 통신하여 해쉬 알고리즘을 이용하여 OTP(One Time Password) 인증을 수행할 수 있다. 상기 인증 서버(200)는 상기 사용자 단말(100)과 통신하여 OTP 인증을 수행한다. 이를 위해 상기 인증 서버(200)는 상기 사용자 단말(100)로부터 비밀 해쉬값이 수신되면 이를 저장하여 등록한다. 즉 상기 인증 서버(200)는 사용자 단말(100)과 함께 비밀 해쉬값을 공유하는 것이다.The user terminal 100 may communicate with the authentication server 200 through the authentication program 113 to perform one time password (OTP) authentication using a hash algorithm. The authentication server 200 communicates with the user terminal 100 to perform OTP authentication. To this end, the authentication server 200 stores and registers a secret hash value when it is received from the user terminal 100. That is, the authentication server 200 shares a secret hash value with the user terminal 100.
상기 인증 서버(200)는 상기 사용자 단말(100)로부터 OTP 인증 요청이 수신되면, 일회용 비밀 암호를 생성하여 상기 사용자 단말(100)로 전송하고, 상기 사용자 단말(100)로부터 상기 일회용 비밀 암호를 포함하는 사용자 측 사용자 인증키가 수신되면, 자신이 저장하고 있는 비밀 해쉬값과 상기 일회용 비밀 암호를 이용하여 서버 측 사용자 인증키를 생성하여 상기 사용자 측 사용자 인증키와 비교한다. 인증 서버(200)는 사용자 인증키가 동일하면 인증 성공 처리하고 동일하지 않으면 인증 실패 처리한다. 여기서 인증 서버(200)는 은행, 카드사, 통신사 또는 일반 포털 사이트의 서버일 수 있고, 또는 결제 대행 서비스(PG)사의 서버일 수 있다. 본 실시예에서는 인증 서버만을 단독으로 설명하고 있는데, 이러한 인증 서버는 서비스 서버와 통신하여 서비스 서버의 요청에 따라 사용자의 인증 결과를 회신할 수 있다. 본 실시예의 인증 서버는 서비스 서버를 포함하는 것으로 이해될 수 있다.When the authentication server 200 receives an OTP authentication request from the user terminal 100, the authentication server 200 generates a one-time secret password and transmits it to the user terminal 100, and includes the one-time secret password from the user terminal 100. When the user-side user authentication key is received, a server-side user authentication key is generated using the secret hash value stored by the user and the one-time secret password and compared with the user-side user authentication key. The authentication server 200 processes authentication success when the user authentication key is the same, and fails authentication if it is not the same. Here, the authentication server 200 may be a server of a bank, a card company, a communication company or a general portal site, or may be a server of a payment agency service (PG) company. In this embodiment, only the authentication server is described. The authentication server may communicate with the service server and return the authentication result of the user according to the request of the service server. It can be understood that the authentication server of the present embodiment includes a service server.
도 14는, 본 발명의 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.14 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 14에 도시된 바와 같이, 본 실시예에 따른 인증 프로그램(113)은 비밀 해쉬값 생성 모듈(1410), 일회용 비밀 암호 입력 모듈(1420) 및 사용자 인증키 생성 모듈(1430)을 포함한다. As shown in FIG. 14, the authentication program 113 according to the present embodiment includes a secret hash value generation module 1410, a one-time secret password input module 1420, and a user authentication key generation module 1430.
비밀 해쉬값 생성 모듈(1410)은 입력 장치를 통해 사용자로부터 비밀 제수를 입력받는다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있으나 여기에 제한되는 것은 아니고 사용자만이 알 수 있는 데이터이다. The secret hash value generation module 1410 receives a secret divisor from a user through an input device. The secret divisor may be any one of a long string, an image file, a sound file, or a video file, but is not limited thereto.
비밀 해쉬값 생성 모듈(1410)은 상기 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 나온 결과를 비밀 해쉬값으로 한다. 상기 비밀 해쉬값은 바이너리 파일로 저장될 수 있다. 비밀 해쉬값 생성 모듈(1410)은 상기 비밀 해쉬값을 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값 생성 모듈(1410)에서 생성된 비밀 해쉬값은 사용자 단말(100)에 저장될 수 있고, 또는 RF 회로(152)를 통해 NFC 카드와 같이 별도의 저장 매체에 저장될 수도 있다. 비밀 해쉬값이 NFC 카드 등의 별도의 저장 매체에 저장되는 경우, 사용자 단말(100)에는 비밀 해쉬값이 저장되지 않는다. The secret hash value generation module 1410 sets the secret divisor as a seed value to the hash function as a secret hash value. The secret hash value may be stored as a binary file. The secret hash value generation module 1410 registers the secret hash value by transmitting the secret hash value to the authentication server 200. The secret hash value generated by the secret hash value generation module 1410 may be stored in the user terminal 100 or may be stored in a separate storage medium such as an NFC card through the RF circuit 152. When the secret hash value is stored in a separate storage medium such as an NFC card, the user terminal 100 does not store the secret hash value.
일회용 비밀 암호 입력 모듈(1420)은 인증 서버(200)에서 생성되어 사용자가 지정한 수신처로 수신된 일회용 비밀 암호를 입력받는다. 사용자가 지정한 수신처는 사용자 단말(100)이 될 수 있고, 또는 별도의 사용자가 휴대하는 웨어러블 디바이스일 수도 있으며, 또는 이메일 주소가 될 수 있다. 그러나 여기에 제한되지 않는다. 일회용 비밀 암호는 단문 메시지(SMS) 또는 푸쉬 메시지 형태로 수신될 수도 있다. 일회용 비밀 암호 입력 모듈(1420)은 상기 일회용 비밀 암호를 키패드를 통해 입력받을 수 있고, 또는 이미지를 통해 입력받을 수도 있다. 이미지를 통해 입력받는 방법에 관해서는 후술하도록 한다.The one-time secret password input module 1420 receives the one-time secret password generated by the authentication server 200 and received by the user-specified destination. The destination designated by the user may be the user terminal 100, or may be a wearable device carried by a separate user, or may be an email address. But it is not limited here. The one-time secret password may be received in the form of a short message (SMS) or a push message. The one-time secret password input module 1420 may receive the one-time secret password through a keypad or may be input through an image. A method of receiving input through an image will be described later.
사용자 인증키 생성 모듈(1430)은, 상기 일회용 비밀 암호 입력 모듈(320)에서 입력된 일회용 비밀 암호와, 상기 비밀 해쉬값 생성 모듈(310)에서 생성된 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다. 즉 여기서의 사용자 인증키는, 해쉬 함수에 상기 일회용 비밀 암호와 상기 비밀 해쉬값을 시드 값으로 입력하여 나온 결과이다. 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 사용자 인증키 생성 모듈(1430)은 RF 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다.The user authentication key generation module 1430 inputs the one-time secret password input by the one-time secret password input module 320 and the secret hash value generated by the secret hash value generation module 310 as a seed value to the hash function. To create a user authentication key. That is, the user authentication key here is a result obtained by inputting the one-time secret password and the secret hash value into a hash function as a seed value. If the secret hash value is stored in a separate storage medium, such as an NFC card, the user authentication key generation module 1430 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through the RF circuit 152. You can read the secret hash value by running
사용자 인증키 생성 모듈(1430)은 상기 사용자 인증키를 인증 서버(200)로 전송하고, 인증 서버(200)로부터 인증 결과를 수신한다. 여기서 인증 결과는 인증 성공 응답 또는 인증 실패 응답으로서, 인증 성공 응답 또는 실패 응답은 사용자 인증키의 비교 결과에 따른 응답이다.The user authentication key generation module 1430 transmits the user authentication key to the authentication server 200 and receives an authentication result from the authentication server 200. Herein, the authentication result is an authentication success response or an authentication failure response, and the authentication success response or failure response is a response based on a comparison result of the user authentication key.
도 15는 본 발명의 다른 실시예에 따른 인증 서버의 구성을 나타낸 도면으로, 도 15에 도시된 바와 같이, 인증 서버(200)는 비밀 해쉬값 등록 모듈(1510), 일회용 비밀 암호 생성 모듈(1520) 및 인증 처리 모듈(1530)을 포함한다. 이들은 메모리에 설치되는 소프트웨어로 구현될 수 있고, 또는 하드웨어 및 소트프웨어의 결합으로 구현될 수 있다.15 is a diagram illustrating a configuration of an authentication server according to another embodiment of the present invention. As shown in FIG. 15, the authentication server 200 includes a secret hash value registration module 1510 and a one-time secret password generation module 1520. ) And an authentication processing module 1530. These may be implemented in software installed in memory, or in a combination of hardware and software.
비밀 해쉬값 등록 모듈(1510)은 사용자 단말(100)에서 생성된 비밀 해쉬값을 상기 사용자 단말(100)로부터 수신하여 등록한다. 여기서의 등록은 사용자의 식별정보, 예를 들어 ID와 상기 비밀 해쉬값을 매핑하여 저장하는 것을 의미할 수 있다. 인증 서버(200)는 사용자로부터 계정 정보(ID 및 패스워드)를 입력받아 회원 가입 처리하고, 사용자의 로그인 후에 상기 비밀 해쉬값 등록 모듈(410)이 상기 비밀 해쉬값을 수신할 수 있다.The secret hash value registration module 1510 receives and registers the secret hash value generated by the user terminal 100 from the user terminal 100. In this case, the registration may mean mapping and storing identification information of the user, for example, an ID and the secret hash value. The authentication server 200 may receive account information (ID and password) from the user and register to process membership, and the secret hash value registration module 410 may receive the secret hash value after the user logs in.
일회용 비밀 암호 생성 모듈(1520)은 사용자의 인증을 위한 일회용 비밀 암호를 생성한다. 일회용 비밀 암호는 난수 함수로 생성될 수 있다. 일회용 비밀 암호 생성 모듈(1520)은 사용자 단말(100)로부터, 구체적으로 인증 프로그램(113)으로부터 OTP 인증 요청을 수신할 때 일회용 비밀 암호를 생성할 수 있다. 이때 일회용 비밀 암호 생성 모듈(1520)은 등록된 비밀 해쉬값과 타임스탬프를 난수 함수에 시드 값으로 입력하여 상기 일회용 비밀 암호를 생성할 수 있다. The one time secret password generation module 1520 generates a one time secret password for authentication of the user. The one-time secret password can be generated with a random function. The one-time secret password generation module 1520 may generate a one-time secret password when receiving an OTP authentication request from the user terminal 100, specifically, from the authentication program 113. At this time, the one-time secret password generation module 1520 may generate the one-time secret password by inputting the registered secret hash value and time stamp as a seed value to the random number function.
일회용 비밀 암호 생성 모듈(1520)은 상기 생성한 일회용 비밀 암호를 사용자가 지정한 수신처로 전송한다. 일회용 비밀 암호는 문자 메시지(SMS) 또는 푸시 메시지 또는 이메일 또는 ARS(Automatic Response Service) 등의 형태로 전송될 수 있다. 이를 위해 일회용 비밀 암호 생성 모듈(1520)은 사용자로부터 전화번호 또는 이메일 주소 등을 수신할 수 있다.The one-time secret password generation module 1520 transmits the generated one-time secret password to a destination designated by the user. The one-time secret password may be transmitted in the form of a text message (SMS) or push message or email or an Automatic Response Service (ARS). To this end, the one-time secret password generation module 1520 may receive a telephone number or e-mail address from the user.
인증 처리 모듈(1530)은 사용자 단말(100)로부터 사용자 인증키를 수신한다. 인증 처리 모듈(1530)은 상기 일회용 비밀 암호 생성 모듈(1520)에서 생성한 일회용 비밀 암호와 상기 비밀 해쉬값 등록 모듈(1510)에서 등록한 사용자의 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다. 인증 처리 모듈(1530)은 그 생성한 사용자 인증키와 상기 사용자 단말(100)로부터 수신된 사용자 인증키를 비교하여, 일치할 경우 인증 성공 응답을 사용자 단말(100)로 전송하고, 일치하지 않는 경우 인증 실패 응답을 사용자 단말(100)로 전송한다. The authentication processing module 1530 receives a user authentication key from the user terminal 100. The authentication processing module 1530 inputs the one-time secret password generated by the one-time secret password generation module 1520 and the secret hash value of the user registered by the secret hash value registration module 1510 as a seed value in a hash function to authenticate the user. Create a key. The authentication processing module 1530 compares the generated user authentication key with the user authentication key received from the user terminal 100 and transmits an authentication success response to the user terminal 100 if they match, and does not match. The authentication failure response is transmitted to the user terminal 100.
일회용 비밀 암호 생성 모듈(1520)과 인증 처리 모듈(1530)은 로그인한 사용자 단말(100)의 IP 주소나 또는 사용자 단말(100)과 유지되고 있는 세션 정보(ID 정보 포함)를 이용하여 사용자 단말(100)을 식별할 수 있다. 즉, 사용자 단말(100)로부터 사용자 인증키가 수신되면, 상기 사용자 단말(100)의 IP 주소나 세션 정보를 이용하여 사용자 단말(100)로 전송한 일회용 비밀 암호 그리고 사용자의 등록된 비밀 해쉬값을 식별할 수 있다. The one-time secret password generation module 1520 and the authentication processing module 1530 use a user terminal using an IP address of the logged in user terminal 100 or session information (including ID information) maintained with the user terminal 100. 100) can be identified. That is, when the user authentication key is received from the user terminal 100, the one-time secret password transmitted to the user terminal 100 using the IP address or session information of the user terminal 100 and the registered secret hash value of the user Can be identified.
도 16은 본 발명의 OTP를 이용한 인증 방법을 설명하는 흐름도이다. 도 16을 참조한 본 실시예에서, 인증 서버(200)에는 사용자 단말(100)로부터 미리 비밀 해쉬값이 수신되어 등록되어 있다..16 is a flowchart illustrating an authentication method using OTP according to the present invention. In the present embodiment with reference to FIG. 16, the secret server value is received and registered in advance in the authentication server 200 from the user terminal 100.
도 16을 참조하면, 사용자는 사용자 단말(100)을 이용하여 인증 서버(200)에 접속한 후 인증 서버(200)로 OTP 인증을 요청한다(S1601). 인증 서버(200)는 일회용 비밀 암호(OTP)를 생성한다(S1603). 일회용 비밀 암호는 난수 함수로 생성될 수 있다. 이때 인증 서버(200)는 등록된 비밀 해쉬값과 타임스탬프를 난수 함수에 시드 값으로 입력하여 상기 일회용 비밀 암호를 생성할 수 있다. Referring to FIG. 16, the user accesses the authentication server 200 using the user terminal 100 and requests the OTP authentication to the authentication server 200 (S1601). The authentication server 200 generates a one-time secret password OTP (S1603). The one-time secret password can be generated with a random function. At this time, the authentication server 200 may generate the one-time secret password by inputting the registered secret hash value and time stamp as a seed value to the random number function.
인증 서버(200)는 상기 생성한 일회용 비밀 암호를 사용자 단말(100)로 전송한다(S1605). 인증 서버(200)는 사용자 단말(100)로부터 전화번호를 수신하고 그 전화번호를 착신 전화번호로 하여 사용자 단말(100)로 문자 메시지로 상기 일회용 비밀 암호를 전송할 수 있다. 또는 인증 서버(200)는 사용자 단말(100)로 호를 발신하여 ARS(Automatic Response Service)로 일회용 비밀 암호를 전송할 수도 있다. 본 실시예에서는 사용자 단말(100)로 일회용 비밀 암호를 전송하는 것을 설명하나 여기에 제한되는 것은 아니고 사용자의 웨어러블 디바이스 등과 같은 다른 장치로 전송될 수 있다.The authentication server 200 transmits the generated one-time secret password to the user terminal 100 (S1605). The authentication server 200 may receive the telephone number from the user terminal 100 and transmit the disposable secret password in a text message to the user terminal 100 using the telephone number as the incoming telephone number. Alternatively, the authentication server 200 may transmit a call to the user terminal 100 and transmit a one-time secret password to an ARS (Automatic Response Service). In the present exemplary embodiment, the one-time secret password is transmitted to the user terminal 100, but the present invention is not limited thereto and may be transmitted to another device such as a wearable device of the user.
사용자는 인증 서버(200)로부터 일회용 비밀 암호를 수신하면, 사용자 단말(100)에 상기 수신된 일회용 비밀 암호를 입력한다(S1607). 사용자 단말(100)은 입력된 일회용 비밀 암호 및 사용자 단말(100)에 저장되어 있는 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다(S1609). 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 사용자 단말(100)은 RF 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다. 사용자 단말(100)은 그 생성한 사용자 인증키를 인증 서버(200)로 전송한다(S1611).When the user receives the one-time secret password from the authentication server 200, the user inputs the received one-time secret password to the user terminal 100 (S1607). The user terminal 100 generates a user authentication key by inputting the one-time secret password and the secret hash value stored in the user terminal 100 as a seed value to the hash function (S1609). When the secret hash value is stored in a separate storage medium such as an NFC card, the user terminal 100 performs short range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through the RF circuit 152. You can read the secret hash value. The user terminal 100 transmits the generated user authentication key to the authentication server 200 (S1611).
사용자 단말(100)로부터 사용자 인증키를 수신한 인증 서버(200)는, 단계 S1603에서 생성한 일회용 비밀 암호와, 사용자 단말(100)로부터 미리 수신되어 등록되어 있는 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다(S1613). 그리고 인증 서버(200)는 단계 S1611에서 사용자 단말(100)로부터 수신한 사용자 인증키와 상기 단계 S1613에서 자체적으로 생성한 사용자 인증키가 동일한지 비교한다(S1615).Upon receiving the user authentication key from the user terminal 100, the authentication server 200 seeds the one-time secret password generated in step S1603 and the secret hash value previously received and registered from the user terminal 100 in the hash function. In operation S1613, a user authentication key is generated. The authentication server 200 compares whether the user authentication key received from the user terminal 100 in step S1611 and the user authentication key generated in step S1613 are the same (S1615).
인증 서버(200)는 비교 결과, 사용자 인증키가 동일하지 않은 경우, 인증 실패로 판단하고 사용자 단말(100)로 인증 실패 응답을 전송한다(S1617). 반면, 사용자 인증키가 동일한 경우, 인증 서버(200)는 인증 성공으로 판단하고 사용자 단말(100)로 인증 성공 응답을 전송한다(S1619).If the comparison result, the user authentication key is not the same, the authentication server 200 determines that the authentication failure and transmits an authentication failure response to the user terminal 100 (S1617). On the other hand, if the user authentication key is the same, the authentication server 200 determines that the authentication is successful and transmits an authentication success response to the user terminal 100 (S1619).
일회용 비밀 암호(OTP)의 입력Entering a one-time secret password (OTP)
도 17은 본 발명의 일 실시예에 따른 일회용 비밀 암호 입력 모듈의 구성을 나타낸 도면이다.17 is a view showing the configuration of a one-time secret password input module according to an embodiment of the present invention.
도 17을 참조하면, 일회용 비밀 암호 입력 모듈(1420)은, 이미지 등록 모듈(1710), 이미지 입력 모듈(1720) 및 일회용 비밀 암호 추출 모듈(1730)을 포함한다.Referring to FIG. 17, the one time secret password input module 1420 may include an image registration module 1710, an image input module 1720, and a one time secret password extraction module 1730.
이미지 등록 모듈(1710)은 인증 서버(200)와 통신하여 인증 서버(200)로부터 후보 이미지들 및 이의 코드를 수신하여 상기 후보 이미지들을 화면에 표시하여 사용자로부터 열쇠 이미지와 위장 이미지를 선택받는다. 여기서 위장 이미지는 상기 열쇠 이미지가 타인에게 노출되지 않도록 상기 열쇠 이미지와 함께 표출되는 이미지를 의미이다. 이를 위해 인증 서버(200)의 인증 처리 모듈(1530)은 후보 이미지들 및 이들의 코드를 저장하고 사용자 단말(100)의 접속시 후보 이미지들 및 이들의 코드를 사용자 단말(100)로 전송한다. The image registration module 1710 communicates with the authentication server 200, receives candidate images and codes thereof from the authentication server 200, displays the candidate images on the screen, and selects a key image and a fake image from the user. Here, the camouflage image means an image that is displayed together with the key image so that the key image is not exposed to others. To this end, the authentication processing module 1530 of the authentication server 200 stores the candidate images and their codes and transmits the candidate images and their codes to the user terminal 100 when the user terminal 100 is connected.
도 18은 본 발명의 일 실시예에 따른 후보 이미지들을 나타낸 도면이다. 이미지 등록 모듈(1710)은 인증 서버(200)로부터 후보 이미지들 및 이들의 코드를 수신한 후 도 18에 도시된 바와 같이 후보 이미지들을 표시한다. 사용자는 도 18에 표시된 후보 이미지들 중에서 열쇠 이미지와 위장 이미지를 선택한다. 예를 들어, 열쇠 이미지 3개와 위장 이미지 9개를 선택한다. 18 illustrates candidate images according to an embodiment of the present invention. The image registration module 1710 displays candidate images as shown in FIG. 18 after receiving the candidate images and their codes from the authentication server 200. The user selects a key image and a fake image from among the candidate images shown in FIG. 18. For example, select three key images and nine camouflage images.
이미지 등록 모듈(1710)은 사용자로부터 선택된 열쇠 이미지의 코드와 위장 이미지의 코드를 인증 서버(200)에 전송한다. 이때 이미지 등록 모듈(1710)은 열쇠 이미지의 코드와 위장 이미지의 코드를 구분하는 정보는 전송하지 않는다. 따라서 인증 서버(200)는 이미지들의 코드를 수신하더라도 어떤 코드가 사용자가 열쇠로 지정한 열쇠 이미지인지 알 수 없다. 인증 서버(200)의 인증 처리 모듈(1530)은 사용자의 식별정보(예컨대, ID)에 상기 수신된 이미지들의 코드를 매핑하여 저장한다.The image registration module 1710 transmits a code of a key image selected from a user and a code of a fake image to the authentication server 200. At this time, the image registration module 1710 does not transmit the information for distinguishing the code of the key image and the code of the camouflage image. Therefore, the authentication server 200 does not know which code is the key image designated by the user even if the code of the image is received. The authentication processing module 1530 of the authentication server 200 maps and stores the codes of the received images to identification information (eg, ID) of the user.
이미지 등록 모듈(1710)은 열쇠 이미지와 위장 이미지 중 열쇠 이미지의 코드 및 사용자의 열쇠 이미지의 선택 순서 정보를 사용자 단말(100)에 저장하고, 위장 이미지의 코드는 사용자 단말(100)에 저장하지 않는다. 즉, 사용자 단말(100)에는 열쇠 이미지의 코드 및 순서 정보만 저장되고, 인증 서버(200)에는 열쇠 이미지와 위장 이미지의 코드가 저장된다. 그러나 인증 서버(200)에는 열쇠 이미지와 위장 이미지의 구분 정보는 저장되지 않는다.The image registration module 1710 stores the code of the key image among the key image and the camouflage image and the selection order information of the key image of the user in the user terminal 100, and does not store the code of the camouflage image in the user terminal 100. . That is, only the code and the order information of the key image are stored in the user terminal 100, and the code of the key image and the fake image is stored in the authentication server 200. However, the authentication server 200 does not store the distinguishing information of the key image and the camouflage image.
이미지 입력 모듈(1720)은 사용자가 인증 서버(200)로부터 수신한 일회용 비밀 암호를 이미지로 입력할 수 있는 인터페이스를 표시한다. 이미지 입력 모듈(1720)은 동심의 두 개의 서클 인터페이스를 표시한다. 이를 위해 인증 서버(200)의 인증 처리 모듈(1530)은 사용자가 설정해 놓은 열쇠 이미지 및 위장 이미지와 이들의 코드를 상기 이미지 입력 모듈(1720)로 전송한다.The image input module 1720 displays an interface for allowing a user to input a one-time secret password received from the authentication server 200 as an image. Image input module 1720 displays two concentric circle interfaces. To this end, the authentication processing module 1530 of the authentication server 200 transmits the key image and the camouflage image set by the user and their codes to the image input module 1720.
두 개의 서클 인터페이스 중 제 1 서클 인터페이스는 숫자, 특수 문자 또는 알파벳 등의 후보 비밀 암호가 둘레를 따라 표시되고, 제 2 서클 인터페이스는 열쇠 이미지 및 위장 이미지가 둘레를 따라 표시된다. 제 1 서클 인터페이스는 회전하지 않고, 제 2 서클 인터페이스는 사용자의 입력에 따라 회전할 수 있다. 그러나 반대로, 제 1 서클 인터페이스가 회전할 수 있고, 제 2 서클 인터페이스는 회전하지 않을 수도 있다. 또는 제 1, 2 서클 인터페이스 모두 회전할 수 있다. 본 실시예에서는 제 2 서클 인터페이스만 회전하는 것으로 설명한다.Among the two circle interfaces, the first circle interface has a candidate secret password such as numbers, special characters, or alphabets displayed along the perimeter, and the second circle interface has a key image and a camouflage image along the perimeter. The first circle interface may not rotate, and the second circle interface may rotate according to a user input. However, on the contrary, the first circle interface may rotate, and the second circle interface may not rotate. Alternatively, both the first and second circle interfaces may rotate. In the present embodiment, only the second circle interface is described as rotating.
이미지 입력 모듈(1720)은, 상기 인증 서버(200)의 인증 처리 모듈(1530)로부터 사용자가 등록해 놓은 열쇠 이미지 및 위장 이미지와 이들의 코드를 수신하고, 수신된 열쇠 이미지 및 위장 이미지를 상기 제 2 서클 인터페이스에 둘레를 따라 나열한다. 이미지 입력 모듈(1720)은 제 1 서클 인터페이스의 후보 비밀 암호들 및 그들의 코드도 인증 서버(200)로부터 수신하고 그 수신된 후보 비밀 암호들을 제 1 서클 인터페이스에 둘레를 따라 나열할 수 있다. 물론 제 1 서클 인터페이스의 후보 비밀 암호들 및 그들의 코드는 단말에 자체 저장될 수 있다. The image input module 1720 receives the key image and the camouflage image and their codes registered by the user from the authentication processing module 1530 of the authentication server 200 and stores the received key image and the camouflage image. 2 Circle the perimeter on the interface. The image input module 1720 may also receive candidate secret ciphers and their codes of the first circle interface from the authentication server 200 and list the received candidate secret ciphers along the perimeter of the first circle interface. Of course the candidate secret ciphers and their code of the first circle interface may be stored in the terminal itself.
도 19는 본 발명의 일 실시예에 따른 서클 인터페이스를 나타낸 도면이다. 도 19에 도시된 바와 같이, 서클 인터페이스 중 제 1 서클 인터페이스(1910)에는 1부터 12까지의 숫자가 원의 둘레를 따라 나열되어 있고, 제 2 서클 인터페이스(1920)에는 제 1 서클 인터페이스(1910)의 외곽을 둘러싸고 있고 사용자가 인증 서버(200)에 등록해 놓은 열쇠 이미지 및 위장 이미지가 인증 서버(200)로부터 수신되어 랜덤에게 원의 둘레를 따라 나열되어 있다. 19 illustrates a circle interface according to an embodiment of the present invention. As shown in FIG. 19, numbers 1 through 12 are listed along the circumference of the circle in the first circle interface 1910 of the circle interface, and the first circle interface 1910 in the second circle interface 1920. The key image and the camouflage image that surrounds the outside of the user and registered in the authentication server 200 are received from the authentication server 200 and are randomly arranged along the circumference of the circle.
이미지 입력 모듈(1720)은 사용자로부터 제 2 서클 인터페이스에 대한 회전 입력을 수신하여 제 2 서클 인터페이스를 회전시킨다. 회전 입력은 터치 앤 드롭일 수 있고 또는 마우스 또는 버튼 입력일 수 있다. The image input module 1720 receives a rotation input for the second circle interface from the user to rotate the second circle interface. The rotational input may be touch and drop or may be mouse or button input.
일회용 비밀 암호 추출 모듈(1730)은 사용자가 제 2 서클 인터페이스를 회전시킨 후 완료 입력을 누르면 사용자가 사용자 단말(100)에 저장해 놓은 열쇠 이미지 중 첫 번째 순서의 열쇠 이미지와 같은 방위에 위치하는 제 1 서클 인터페이스의 후보 비밀 암호를 추출한다. 일회용 비밀 암호 추출 모듈(1730)은 이러한 과정을 사용자가 사용자 단말(100)에 저장해 놓은 열쇠 이미지의 개수만큼 수행하고, 따라서 일회용 비밀 암호를 추출한다.The one-time secret password extraction module 1730 is the first position that is located in the same orientation as the key image of the first order among the key images stored in the user terminal 100 when the user presses the complete input after rotating the second circle interface Extract candidate secret password of circle interface. The one-time secret password extraction module 1730 performs this process by the number of key images stored in the user terminal 100 by the user, and thus extracts the one-time secret password.
상술한 열쇠 이미지를 이용한 일회용 비밀 암호의 추출은 행렬 연산을 통해 수행될 수 있다. 사용자가 제 2 서클 인터페이스를 회전시킨 후 완료 입력을 누른다. 사용자는 제 1 서클 인터페이스에 나열된 후보 비밀 암호 중 일회용 비밀 암호와 제 2 서클 인터페이스에 나열된 이미지 중 열쇠 이미지가 같은 방위에 위치할 때 완료 입력을 누른다. 완료 입력이 눌러지면, 일회용 비밀 암호 추출 모듈(1730)은 일정한 기준에 따라 제 2 서클 인터페이스의 이미지들의 코드의 행렬을 추출한다. 예를 들어, 12시부터 시계 방향으로 제 2 서클 인터페이스에 나열된 이미지들의 코드를 추출하여 1×12의 행렬을 만들어 낸다. 이러한 1×12의 행렬은 열쇠 이미지의 개수만큼 만들어진다. 즉 제 2 서클 인터페이스에 나열된 이미지 중 열쇠 이미지의 개수만큼 그리고 사용자가 설정한 열쇠 이미지의 순서에 따라, 사용자는 제 2 서클 인터페이스의 회전 및 완료를 입력하고, 일회용 비밀 암호 추출 모듈(730)은 완료 입력이 있을 때마다 제 2 서클 인터페이스에 나열된 이미지들의 코드를 추출하여 1×12의 행렬을 만들어 낸다. 열쇠 이미지의 개수가 n이라면, n×12의 행렬이 만들어진다.Extraction of the one-time secret password using the above-described key image may be performed through matrix operation. The user presses the Done input after rotating the second circle interface. The user presses the completion input when the one-time secret password among the candidate secret passwords listed in the first circle interface and the key image among the images listed in the second circle interface are located in the same orientation. When the complete input is pressed, the one time secret password extraction module 1730 extracts a matrix of codes of images of the second circle interface according to certain criteria. For example, starting at 12 o'clock, the code of the images listed in the second circle interface is extracted in a clockwise direction to generate a 1 × 12 matrix. This 1 × 12 matrix is created by the number of key images. That is, according to the number of key images among the images listed in the second circle interface and the order of the key images set by the user, the user inputs rotation and completion of the second circle interface, and the one-time secret password extraction module 730 is completed. Each time there is an input, the code of the images listed in the second circle interface is extracted to produce a 1 × 12 matrix. If the number of key images is n, an n × 12 matrix is created.
예를 들면, 인증 서버(200)로부터 수신된 일회용 비밀 암호가 (1, 2, 7)이고, 열쇠 이미지는 (축구공, 야구공, 럭비공)인 경우, 사용자는 제 2 서클 인터페이스를 회전시켜 축구공 이미지가 제 1 서클 인터페이스의 숫자 '1'과 같은 방위가 되도록 위치시키고 완료를 입력한다. 일회용 비밀 암호 추출 모듈(1730)은 12시 방향을 기준으로 시계 방향으로 순서대로 제 2 서클 인터페이스의 이미지들의 코드를 추출하여 첫 번째의 1×12의 행렬을 만들어 낸다. 다음으로, 사용자는 제 2 서클 인터페이스를 다시 회전시켜 야구공 이미지가 제 1 서클 인터페이스의 숫자 '2'와 같은 방위가 되도록 위치시키고 완료를 입력한다. 일회용 비밀 암호 추출 모듈(1730)은 12시 방향을 기준으로 시계 방향으로 순서대로 제 2 서클 인터페이스의 이미지들의 코드를 추출하여 두 번째의 1×12의 행렬을 만들어 낸다. 마지막으로, 사용자는 제 2 서클 인터페이스를 다시 회전시켜 럭비공 이미지가 제 1 서클 인터페이스의 숫자 '7'과 같은 방위가 되도록 위치시키고 완료를 입력한다. 일회용 비밀 암호 추출 모듈(1730)은 12시 방향을 기준으로 시계 방향으로 순서대로 제 2 서클 인터페이스의 이미지들의 코드를 추출하여 세 번째의 1×12의 행렬을 만들어 낸다. 따라서 최종적으로 3×12 행렬이 추출된다.For example, if the one-time secret password received from the authentication server 200 is (1, 2, 7) and the key image is (soccer ball, baseball, rugby ball), the user rotates the second circle interface to Position the soccer ball image so that it has an orientation equal to the number '1' of the first circle interface and enter Done. The one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock direction to generate a first 1 × 12 matrix. Next, the user rotates the second circle interface again so that the baseball image is in the same orientation as the number '2' of the first circle interface and inputs completion. The one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock direction to generate a second 1 × 12 matrix. Finally, the user rotates the second circle interface again so that the rugby ball image is in the same orientation as the number '7' of the first circle interface and enters a complete. The one-time secret password extraction module 1730 extracts the codes of the images of the second circle interface in the clockwise order with respect to the 12 o'clock position to generate a third 1 × 12 matrix. Thus, a 3x12 matrix is finally extracted.
일회용 비밀 암호 추출 모듈(1730)은, 사용자가 설정해 놓은 열쇠 이미지 및 그 순서를 토대로, 상기 추출된 행렬로부터 열쇠 이미지의 코드가 있는 좌표를 추출하고 그 추출한 좌표를 토대로 일회용 비밀 암호를 추출한다. 앞서 든 예로 설명하면, 일회용 비밀 암호 추출 모듈(1730)은, 사용자가 설정해 놓은 열쇠 이미지 및 그 순서는 (축구공, 야구공, 럭비공)이므로, 상기 3×12 행렬의 제 1 행에서 축구공의 코드가 있는 좌표를 확인하고, 그 좌표에 해당하는 제 1 서클 인터페이스의 숫자 '1'을 추출한다. 다음으로, 상기 3×12 행렬의 제 2 행에서 야구공의 코드가 있는 좌표를 확인하고, 그 좌표에 해당하는 제 1 서클 인터페이스의 숫자 '2'를 추출한다. 마지막으로, 상기 3×12 행렬의 제 3 행에서 럭비공의 코드가 있는 좌표를 확인하고, 그 좌표에 해당하는 제 1 서클 인터페이스의 숫자 '7'을 추출한다. 따라서 최종적으로 (1, 2, 7)의 일회용 비밀 암호가 추출된다.The one-time secret password extraction module 1730 extracts the coded coordinates of the key image from the extracted matrix based on the key image set by the user and the order thereof, and extracts the one-time secret password based on the extracted coordinates. In the above-described example, the one-time secret password extraction module 1730 is a soccer ball in the first row of the 3 × 12 matrix because the key image and the order set by the user are (soccer ball, baseball ball, rugby ball). Check the coordinate with the code of, and extract the number '1' of the first circle interface corresponding to the coordinate. Next, in the second row of the 3x12 matrix, the coordinates of the baseball ball are identified, and the number '2' of the first circle interface corresponding to the coordinates is extracted. Finally, in the third row of the 3x12 matrix, the coordinates of the rugby ball code are identified, and the number '7' of the first circle interface corresponding to the coordinates is extracted. Thus, the one-time secret password of (1, 2, 7) is finally extracted.
이상의 실시예에서는 사용자가 적어도 두 개 이상의 열쇠 이미지를 등록해 놓고 사용하는 것을 설명한다. 그러나 여기에 제한되지 않고 사용자는 하나의 열쇠 이미지를 등록해 놓고 사용할 수 있다. 이 경우 열쇠 이미지의 순서는 고려될 필요가 없고, 사용자는 하나의 열쇠 이미지를 반복 사용하면 된다. 위의 예로 설명하면, 사용자는 하나의 열쇠 이미지를 먼저 제 1 서클 인터페이스의 숫자 '1'과 같은 방위가 되도록 놓은 후 완료를 입력하고, 다음으로 숫자 '2'와 같은 방위에 놓은 후 완료를 입력하며, 마지막으로 숫자 '7'과 같은 방위에 놓은 후 완료를 입력한다. 그러면 일회용 비밀 암호로서 (1, 2, 7)이 추출된다.In the above embodiment, the user registers and uses at least two or more key images. But not limited to this, the user can register and use a single key image. In this case, the order of the key images need not be considered, and the user may repeatedly use one key image. In the above example, the user first places one key image in the same orientation as the number '1' on the first circle interface, then enters a completion, then places it in the same orientation as the number '2', then enters a completion. Finally, put it in the same direction as the number '7' and then enter Done. Then, (1, 2, 7) is extracted as a one-time secret password.
또한, 도 19를 참조한 실시예에서는 두 개의 서클 인터페이스를 설명한다. 그러나 여기에 제한되는 것은 아니며 세 개의 서클 인터페이스를 이용할 수 있다. 예를 들어, 인증 서버(200)에서 6자리의 숫자를 일회용 비밀 암호를 발급하고, 사용자는 3 개의 열쇠 이미지를 등록해 놓은 경우, 세 개의 서클 인터페이스를 이용하여 사용자 단말(100)에서 일회용 비밀 암호를 입력할 수 있다.In addition, the embodiment referring to FIG. 19 describes two circle interfaces. However, the present invention is not limited thereto, and three circle interfaces may be used. For example, if the authentication server 200 issues a one-time secret password for 6 digits and the user has registered three key images, the one-time secret password in the user terminal 100 using three circle interfaces. Can be entered.
도 20은 본 발명의 일 실시예에 따른 세 개의 서클 인터페이스를 나타낸 도면이다. 도 20에 도시된 바와 같이, 세 개의 서클 인터페이스 중 제 1 서클 인터페이스(2010)에는 숫자, 특수 문자 등의 후보 비밀 암호가 원의 둘레를 따라 나열되어 있고, 제 2 서클 인터페이스(2020)에는 제 1 서클 인터페이스(2010)의 외곽을 둘러싸고 있으며 제 1 서클 인터페이스(2010)와 동일한 후보 비밀 암호가 원의 둘레를 따라 나열되어 있다. 제 3 서클 인터페이스(2030)에는 열쇠 이미지 및 위장 이미지가 랜덤에게 원의 둘레를 따라 나열되어 있다. 이때 제 1 내지 제3 서클 인터페이스 모두 회전할 수 있고, 또는 두 개의 서클 인터페이스만 회전할 수도 있다. 본 실시예에서는 제 2, 3 서클 인터페이스가 회전하는 경우를 설명한다.20 illustrates three circle interfaces according to an embodiment of the present invention. As shown in FIG. 20, candidate secret passwords such as numbers and special characters are listed along the circumference of a circle in the first circle interface 2010 among three circle interfaces, and a first circle interface 2020 is located in the first circle interface 2020. Surrounding the outside of the circle interface 2010, the same candidate secret ciphers as the first circle interface 2010 are listed along the circumference of the circle. In the third circle interface 2030, the key image and the camouflage image are randomly arranged along the circumference of the circle. At this time, all of the first to third circle interfaces may rotate, or only two circle interfaces may rotate. In the present embodiment, a case in which the second and third circle interfaces rotate.
예를 들어, 인증 서버(200)로부터 수신된 일회용 비밀 암호가 (100207)의 6자리 숫자이고, 열쇠 이미지는 (축구공, 야구공, 럭비공)인 경우, 사용자는 제 2, 3 서클 인터페이스를 회전시켜 제 1 서클 인터페이스의 숫자 '1'과 제 2 서클 인터페이스의 숫자 '0' 그리고 제 3 서클 인터페이스의 '축구공' 이미지가 같은 방위에 위치하도록 하고 완료를 입력한다. 다음으로, 사용자는 제 2, 3 서클 인터페이스를 다시 회전시켜 제 1 서클 인터페이스의 숫자 '0'과 제 2 서클 인터페이스의 숫자 '2' 그리고 제 3 서클 인터페이스의 '야구공' 이미지가 같은 방위에 위치하도록 하고 완료를 입력한다. 마지막으로, 사용자는 제 2, 3 서클 인터페이스를 다시 회전시켜 제 1 서클 인터페이스의 숫자 '0'과 제 2 서클 인터페이스의 숫자 '7' 그리고 제 3 서클 인터페이스의 '럭비공' 이미지가 같은 방위에 위치하도록 하고 완료를 입력한다. 이와 같이 세 차례의 조작을 하게 되면, 각 순서에서 열쇠 이미지와 같은 방위에 위치하는 제 1, 2 서클 인터페이스의 후보 비밀 암호, 즉 숫자를 추출할 수 있다. 위의 예에서, 첫 번째 조작에서 '10'을 추출할 수 있고, 두 번째 조작에서 '02'를 추출할 수 있으며, 세 번째 조작에서 '07'을 추출할 수 있다.For example, if the one-time secret password received from the authentication server 200 is a six-digit number of 100207 and the key image is (soccer ball, baseball, rugby ball), the user may access the second and third circle interfaces. Rotate so that the number '1' of the first circle interface, the number '0' of the second circle interface, and the 'soccer ball' image of the third circle interface are located in the same orientation, and enter complete. Next, the user rotates the second and third circle interfaces again so that the number '0' of the first circle interface, the number '2' of the second circle interface and the 'baseball ball' image of the third circle interface are located in the same orientation. And complete. Finally, the user rotates the second and third circle interfaces again so that the number '0' of the first circle interface, the number '7' of the second circle interface and the 'rugby ball' image of the third circle interface are located in the same orientation. And complete. When three operations are performed in this manner, candidate secret passwords, that is, numbers, of the first and second circle interfaces located in the same orientation as the key image can be extracted in each order. In the above example, '10' can be extracted from the first operation, '02' can be extracted from the second operation, and '07' can be extracted from the third operation.
도 20을 참조하여 설명한 세 개의 서클 인터페이스에서 열쇠 이미지를 이용한 일회용 비밀 암호의 추출은 두 개의 서클 인터페이스와 마찬가지로 행렬 연산을 통해 수행될 수 있다. 제 1, 2 서클 인터페이스 각각은 후보 비밀 암호들 및 그들의 코드가 매핑되어 있고, 제 3 서클 인터페이스는 이미지들 및 그 이미지들의 코드가 매핑되어 있다. 각 서클 인터페이스는 일정한 기준에 따라 하나의 행이 만들어진다. 여기서 일정한 기준이란 예를 들어 처음 서클 인터페이스가 표시되었을 때 12시를 기준으로 시계 방향으로 후보 비밀 암호 또는 이미지를 나열한 것을 최초의 행으로 하고, 서클 인터페이스를 회전시키면 그 회전만큼 행의 값을 쉬프트하면, 쉬프트 후에 각 행에 속하는 각 열의 값을 식별할 수 있다. 사용자가 제 3 서클 인터페이스를 회전시킨 후 완료를 누르면, 제 3 서클 인터페이스의 행렬 값에서 열쇠 이미지의 좌표를 추출하고, 동일한 좌표의 제 1, 2 서클 인터페이스의 행렬 값을 일회용 비밀 암호로 추출한다. Extraction of a one-time secret password using a key image in the three circle interfaces described with reference to FIG. 20 may be performed through matrix operations like the two circle interfaces. Each of the first and second circle interfaces is mapped with candidate secret ciphers and their code, and the third circle interface is mapped with images and the code of the images. Each circle interface is made one row according to certain criteria. In this case, the constant criterion is, for example, when a circle interface is first displayed, the candidate row includes a list of candidate secret passwords or images clockwise around 12 o'clock, and when the circle interface is rotated, the row value is shifted by that rotation. After the shift, you can identify the value of each column in each row. When the user presses Done after rotating the third circle interface, the coordinates of the key image are extracted from the matrix values of the third circle interface, and the matrix values of the first and second circle interfaces of the same coordinates are extracted as the one-time secret password.
이상의 실시예에서는, 인증 서버(200)에 사용자가 설정한 열쇠 이미지와 위장 이미지가 저장되지만 열쇠 이미지와 위장 이미지의 구분 정보는 저장되지 않아 인증 서버(200)는 이미지들 중 어느 이미지가 열쇠 이미지인지 알 수 없고, 인증 서버(200)는 사용자가 설정해 둔 열쇠 이미지와 위장 이미지 그리고 그들의 코드를 사용자 단말(100)로 전송만 한다. 열쇠 이미지의 구분 정보는 사용자 단말(100)에 저장되어 사용된다. In the above embodiment, the key image and the camouflage image set by the user is stored in the authentication server 200, but the identification information of the key image and the camouflage image is not stored, so the authentication server 200 determines which image is the key image. Unknown, the authentication server 200 only transmits the key image and the camouflage image set by the user and their codes to the user terminal 100. The division information of the key image is stored and used in the user terminal 100.
다른 실시예로서, 인증 서버(200)에 사용자가 설정한 열쇠 이미지와 위장 이미지가 저장되면서 열쇠 이미지의 구분 정보가 함께 저장될 수 있고, 인증 서버(200)는 서클 인터페이스를 구현하기 위해 열쇠 이미지 및 위장 이미지 등의 인터페이스 데이터를 사용자 단말(100)로 전송할 때 열쇠 이미지의 구분 정보를 함께 전송할 수 있다. 이 경우 사용자 단말(100)은 열쇠 이미지의 정보를 저장할 필요가 없고, 인증시에만 인증 서버(200)로부터 열쇠 이미지의 구분 정보를 수신받아 일시적으로 저장하고 인증 완료 후에는 삭제한다. 이를 위해 이미지 등록 모듈(1710)은 열쇠 이미지의 코드와 위장 이미지의 코드를 구분하는 정보를 인증 서버(200)에 전송한다. As another embodiment, the identification image of the key image may be stored together with the key image and the camouflage image set by the user in the authentication server 200, and the authentication server 200 may store the key image and When the interface data such as the camouflage image is transmitted to the user terminal 100, the identification information of the key image may be transmitted together. In this case, the user terminal 100 does not need to store the information of the key image, and receives only the identification information of the key image from the authentication server 200 only at the time of authentication and temporarily stores it and deletes it after the authentication is completed. To this end, the image registration module 1710 transmits information for distinguishing the code of the key image and the code of the camouflage image to the authentication server 200.
한편, 상술한 실시예에서 사용자 단말(100)에서 일회용 비밀 암호를 서클 인터페이스를 통해 추출한 후 그 추출한 일회용 비밀 암호를 인증 서버(200)로 전송하는 것을 설명한다. 그러나 여기에만 제한되는 것은 아니다. Meanwhile, in the above-described embodiment, the user terminal 100 extracts the one-time secret password through the circle interface and then transfers the extracted one-time secret password to the authentication server 200. But it is not limited here.
또 다른 실시예로서, 인증 서버(200)에는 사용자가 설정한 열쇠 이미지와 위장 이미지가 저장되면서 열쇠 이미지의 구분 정보도 저장된다. 그리고 사용자 단말(100)은, 서클 인터페이스에서 일회용 비밀 암호를 직접 추출하지 않고, 일회용 비밀 암호를 입력하기 위해 사용자가 서클 인터페이스의 조작을 하면, 서클 인터페이스로부터 추출된 행렬(예컨대, 도 19의 서클 인터페이스라면 제 1, 2 서클 인터페이스로부터 추출된 2×12 행렬, 도 20은 3×12 행렬)을 일회용 비밀 암호로서 사용하여 사용자 인증키를 만들어 인증 서버(200)로 전송한다. 인증 서버(200)는 열쇠 이미지의 구분 정보가 저장되어 있고, 일회용 비밀 암호를 알고 있으므로, 사용자 단말(100)에서와 동일한 방식으로 자체적으로 사용자 인증키를 생성할 수 있고, 그 자체적으로 생성한 사용자 인증키와 사용자 단말(100)로부터 수신된 사용자 인증키를 비교하여 인증을 수행한다. In another embodiment, the authentication server 200 stores the key image and the camouflage image set by the user, and also stores the identification information of the key image. The user terminal 100 does not directly extract the one-time secret password from the circle interface, but when the user operates the circle interface to input the one-time secret password, the matrix extracted from the circle interface (for example, the circle interface of FIG. 19). If a 2 × 12 matrix extracted from the first and second circle interfaces, and FIG. 20 shows a 3 × 12 matrix, a user authentication key is generated and transmitted to the authentication server 200. Since the authentication server 200 stores the identification information of the key image and knows the one-time secret password, the authentication server 200 may generate a user authentication key by itself in the same manner as in the user terminal 100, and generate the user by itself. The authentication is performed by comparing the authentication key with the user authentication key received from the user terminal 100.
이를 위해, 사용자 인증키 생성 모듈(1430)은, 일회용 비밀 암호 입력 모듈(1420)에서 서클 인터페이스에 의해 생성된 행렬과, 비밀 해쉬값 생성 모듈(1410)에서 생성된 비밀 해쉬값을, 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다. 인증 서버(200)의 인증 처리 모듈(1530)은, 사용자가 등록해 놓은 열쇠 이미지 및 위장 이미지 그리고 서버에서 발급된 일회용 비밀 암호를 이용하여 서클 인터페이스에 의한 행렬을 만들어 내고, 그 행렬과 사용자가 등록해 놓은 비밀 해쉬값을 이용하여 사용자 인증키를 생성하여, 사용자 단말(100)로부터 수신된 사용자 인증키와 비교를 한다. 이때, 인증 서버(200)는 사용자 단말(100)로 열쇠 이미지 및 위장 이미지의 코드를 사용자 단말(100)로 전송하여 서클 인터페이스가 구현되도록 하는데, 열쇠 이미지 및 위장 이미지의 코드는 일회용의 가상 코드일 수 있다. 인증 서버(200)는 인증을 할 때마다 열쇠 이미지 및 위장 이미지의 코드로서 일회용의 가상 코드를 발급하여 이용할 수 있다. 따라서 해커에 의해 네트워크 단에서 행렬이 해킹되더라도 다음 인증시에 이미지의 코드가 변경되므로, 안전한 인증이 가능해진다.To this end, the user authentication key generation module 1430 may convert the matrix generated by the circle interface in the one time secret password input module 1420 and the secret hash value generated in the secret hash value generation module 1410 into a hash function. Create a user authentication key by entering the seed value. The authentication processing module 1530 of the authentication server 200 generates a matrix using a circle interface using a key image and a camouflage image registered by the user and a one-time secret password issued by the server, and the matrix and the user register. A user authentication key is generated using the secret hash value, and the user authentication key received from the user terminal 100 is compared. At this time, the authentication server 200 transmits the code of the key image and the camouflage image to the user terminal 100 to the user terminal 100 to implement a circle interface, the code of the key image and camouflage image is a one-time virtual code Can be. The authentication server 200 may issue and use a one-time virtual code as a code of a key image and a camouflage image each time authentication is performed. Therefore, even if the matrix is hacked at the network end by the hacker, since the code of the image is changed at the next authentication, secure authentication is possible.
도 21은 본 발명의 또 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.21 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 21을 참조하면, 도 14와 비교하여, 본 실시예에 따른 인증 프로그램(113)은, 디바이스 인증키 생성 모듈(2110), 프로그램 인증키 생성 모듈(2120)을 더 포함한다. Referring to FIG. 21, in comparison with FIG. 14, the authentication program 113 according to the present embodiment further includes a device authentication key generation module 2110 and a program authentication key generation module 2120.
디바이스 인증키 생성 모듈(2110)은 인증 프로그램(113)의 최초 실행시 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소 등을 수집하고 그 수집된 고유 정보를 이용하여 디바이스 인증키를 생성한다. 구체적으로, 디바이스 인증키 관리 모듈(2110)은 상기 사용자 단말(100)의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성된 값을 디바이스 인증키로서 저장하고, 인증 서버(200)에 전송하여 비밀 해쉬값과 마찬가지로 인증 서버(200)에 등록한다. 인증 서버(200)의 비밀 해쉬값 등록 모듈(1510)은 사용자의 비밀 해쉬값과 디바이스 인증키를 함께 저장한다.The device authentication key generation module 2110 collects unique information of the user terminal 100, for example, a MAC address of a network interface card (NIC), and uses the collected unique information when the authentication program 113 is first executed. To generate a device authentication key. Specifically, the device authentication key management module 2110 stores the value generated by inputting the unique information of the user terminal 100 as a seed value to the hash function as a device authentication key, and transmits the secret to the authentication server 200. It registers with the authentication server 200 similarly to a hash value. The secret hash value registration module 1510 of the authentication server 200 stores the secret hash value of the user and the device authentication key together.
디바이스 인증키 생성 모듈(2110)은 인증시마다 기 저장되어 있는 디바이스 인증키를 인증 서버(200)에 전송하고 인증 결과를 수신할 수 있다. 인증 서버(200)의 인증 처리 모듈(1530)은 기 등록되어 있는 디바이스 인증키와 인증시마다 상기 디바이스 인증키 생성 모듈(2110)로부터 수신되는 디바이스 인증키를 비교하여 일치하지 않는 경우, 인증을 실패 처리하여 인증 결과를 회신한다. 즉 정해진 사용자 단말(100)이 아닌, 다른 단말에서 인증이 시도되는 경우 인증을 실패 처리하는 것이다.The device authentication key generation module 2110 may transmit the device authentication key previously stored every time to the authentication server 200 and receive an authentication result. The authentication processing module 1530 of the authentication server 200 compares a device authentication key that has been registered with the device authentication key received from the device authentication key generation module 2110 every time it is authenticated. Return the authentication result. That is, if authentication is attempted at another terminal instead of the predetermined user terminal 100, the authentication is failed.
또한, 디바이스 인증키 생성 모듈(2110)은 인증 프로그램(113)의 실행시마다 디바이스 인증키를 생성하고 상기 기 저장된 디바이스 인증키와 비교할 수 있다. 디바이스 인증키 생성 모듈(2110)은, 비교 결과, 디바이스 인증키가 일치하지 않는 경우, 인증 프로그램(113)을 자동 삭제한다. 예를 들면, 사용자 단말(100)에 설치된 인증 프로그램(113)이 복제되어 다른 장치에 이전되어 실행되는 경우, 기 저장된 디바이스 인증키와 해당 실행시에 생성된 디바이스 인증키는 일치하지 않게 되어, 다른 장치에 복제된 인증 프로그램(113)은 자동 삭제된다.In addition, the device authentication key generation module 2110 may generate a device authentication key every time the authentication program 113 is executed and compare the device authentication key with the previously stored device authentication key. The device authentication key generation module 2110 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other. The authentication program 113 duplicated in the device is automatically deleted.
프로그램 인증키 생성 모듈(2120)은 상기 디바이스 인증키 생성 모듈(2110)에서 생성된 디바이스 인증키와, 타임스탬프, 그리고 비밀 해쉬값을 이용하여 프로그램 인증키를 생성하여 저장하고, 또한 프로그램 인증키를 인증 서버(200)로 전송하여 비밀 해쉬값과 함께 등록한다. 인증 서버(200)의 비밀 해쉬값 등록 모듈(1510)은 사용자의 비밀 해쉬값과 프로그램 인증키를 함께 저장한다. 프로그램 인증키는 바이너리 파일로 인증 프로그램(113)에 저장될 수 있다. 여기서 상기 타임 스탬프는 프로그램 인증키를 생성하는 시점의 시각을 나타내는 문자열이다.The program authentication key generation module 2120 generates and stores a program authentication key by using the device authentication key, the time stamp, and the secret hash value generated by the device authentication key generation module 2110, and stores the program authentication key. Send it to the authentication server 200 to register with the secret hash value. The secret hash value registration module 1510 of the authentication server 200 stores the secret hash value of the user and the program authentication key together. The program authentication key may be stored in the authentication program 113 as a binary file. In this case, the time stamp is a string indicating the time at which the program authentication key is generated.
프로그램 인증키 생성 모듈(2120)은 인증시마다 상기 프로그램 인증키를 인증 서버(200)에 전송하고 인증 결과를 수신할 수 있다. 인증 서버(200)의 인증 처리 모듈(1530)은 기 등록되어 있는 프로그램 인증키와 인증시마다 상기 프로그램 인증키 생성 모듈(2120)로부터 수신되는 프로그램 인증키를 비교하여 일치하지 않는 경우, 인증을 실패 처리하고 그 결과를 회신한다. 즉 정해진 사용자 단말(100)이 아닌, 다른 단말에서 인증이 시도되는 경우뿐만 아니라, 인증 프로그램(113)을 재설치하거나 복제 설치하는 경우 타임스탬프값이 변경되어 인증이 실패 처리된다.The program authentication key generation module 2120 may transmit the program authentication key to the authentication server 200 every time authentication and receive an authentication result. The authentication processing module 1530 of the authentication server 200 compares a previously registered program authentication key with a program authentication key received from the program authentication key generation module 2120 every time the authentication is not matched. And return the result. That is, in addition to the case where authentication is attempted at another terminal instead of the predetermined user terminal 100, when the authentication program 113 is reinstalled or duplicated, the timestamp value is changed and authentication fails.
이상에서 설명한 본 발명은, 인증 서버(200)에서 발급한 일회용 비밀 암호를 사용자가 사용자 단말(100)에 입력하면 그 일회용 비밀 암호를 비밀 해쉬값과 함께 해쉬 알고리즘으로 암호화하여 인증 서버(200)에 전송하므로 일회용 비밀 암호의 해킹은 불가능하다. In the present invention described above, when a user inputs a one-time secret password issued by the authentication server 200 to the user terminal 100, the one-time secret password is encrypted with a hash algorithm along with a secret hash value to the authentication server 200. Because of the transmission, hacking of the one-time secret password is impossible.
또한, 사용자 단말(100)에서 일회용 비밀 암호를 입력할 때, 서클 인터페이스를 이용하여 일회용 비밀 암호를 입력함으로써, 다른 사람이 엿보더라도 일회용 비밀 암호를 전혀 알 수가 없다. 따라서 일회용 비밀 암호의 입력시 보안을 강화할 수 있다.In addition, when inputting the one-time secret password in the user terminal 100, by inputting the one-time secret password using the circle interface, even if someone peeks you can not know the one-time secret password at all. Therefore, it is possible to strengthen the security when entering the one-time secret password.
또한 본 발명은, 디바이스 인증키와 프로그램 인증키를 이용하여 추가적인 기기의 인증과 프로그램 인증을 함으로써, 1인 1프로그램을 확보할 수 있다. 즉 인증 프로그램(예컨대 어플리케이션)을 복제하여 다른 사용자 단말에 이식하여 실행하더라도 디바이스 인증키 검증에 실패하여 인증이 실패하게 된다. 또한 동일한 단말에서 프로그램을 삭제한 후 재설치할 경우, 프로그램 인증키가 달라져 역시 인증에 실패한다. 따라서 프로그램 삭제 및 재설치에 의한 개인 정보 해킹을 차단할 수 있다.In addition, the present invention, by using the device authentication key and the program authentication key to the additional device authentication and program authentication, it is possible to ensure a one-person program. That is, even if an authentication program (for example, an application) is copied and executed on another user terminal, the authentication of the device authentication key fails and the authentication fails. In addition, if the program is reinstalled after deleting the same terminal, the program authentication key is changed and authentication also fails. Therefore, it is possible to block hacking of personal information by uninstalling and reinstalling the program.
한편, 전술한 실시예에서는, 인증 서버(200)에서 일회용 비밀 암호를 생성하여 사용자가 지정한 수신처에 전송하는 것을 설명한다. 인증 서버(200)는 일회용 비밀 암호를 전송하지 않을 수 있다. 즉 휴대용 일회용 비밀 암호 발생기를 사용자가 휴대하고, 그 휴대용 일회용 비밀 암호 발생기에는 사용자 단말(100)에 저장된 비밀 해쉬값과 동일한 비밀 해쉬값이 저장된다. 그리고 휴대용 일회용 비밀 암호 발생기는 인증 서버(200)와 동일한 알고리즘으로 일회용 비밀 암호를 생성한다. 휴대용 일회용 비밀 암호 발생기는 비밀 해쉬값 그리고 타임스탬프를 난수 함수에 시드 값으로 입력하여 일회용 비밀 암호를 생성하여 표시한다. 사용자는 휴대용 일회용 비밀 암호 발생기에 표시되는 일회용 비밀 암호를 사용자 단말(100)에 입력하여 사용자 인증키를 인증 서버(200)에 전송한다. 이때의 입력은 앞서 설명한 이미지 입력 방식일 수 있고, 또는 텍스트 입력일 수도 있다. 인증 서버(200)는 휴대용 일회용 비밀 암호 발생기와 동일한 타임스탬프 그리고 이미 등록되어 있는 비밀 해쉬값을 난수 함수에 시드 값으로 입력하여 일회용 비밀 암호를 생성한다. 인증 서버(200)는 그 생성한 일회용 비밀 암호와 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한 후, 사용자 단말(100)로부터 수신된 사용자 인증키와 비교한다.Meanwhile, in the above-described embodiment, it will be described that the authentication server 200 generates a one-time secret password and transmits it to a destination designated by the user. The authentication server 200 may not transmit the one-time secret password. That is, the user carries the portable disposable secret password generator, and the portable disposable secret password generator stores the same secret hash value as the secret hash value stored in the user terminal 100. The portable one-time secret password generator generates a one-time secret password using the same algorithm as the authentication server 200. The portable one-time secret password generator generates and displays a one-time secret password by inputting a secret hash value and a timestamp into the random number function as a seed value. The user inputs the one-time secret password displayed on the portable one-time secret password generator to the user terminal 100 to transmit the user authentication key to the authentication server 200. In this case, the input may be the image input method described above, or may be a text input. The authentication server 200 generates a one-time secret password by inputting the same timestamp and the already registered secret hash value as a seed value to the random number function as a portable one-time secret password generator. The authentication server 200 generates the user authentication key by inputting the generated one-time secret password and the secret hash value into the hash function as a seed value, and then compares the user authentication key received from the user terminal 100.
위의 예에서, 휴대용 일회용 비밀 암호 발생기는, 비밀 해쉬값을 저장하는 것으로 설명한다. 그러나 휴대용 일회용 비밀 암호 발생기는 비밀 해쉬값을 저장하지 않고, 기존의 일회용 비밀 암호 발생기와 마찬가지로, 타임스탬프와 기기 일련번호를 이용하여 일회용 비밀 암호를 발생시킬 수 있고, 사용자는 열쇠 이미지를 이용하여 그 일회용 비밀 암호를 입력할 수 있고, 사용자 단말(100)은 일회용 비밀 암호와 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하여 인증 서버(200)로 전송할 수 있다. 즉, 사용자의 인증은 기존의 하드웨어 기반의 일회용 비밀 암호 인증 방식으로 수행하되, 사용자 단말(100)은 일회용 비밀 암호를 이미지를 이용하여 입력받고, 일회용 비밀 암호를 비밀 해쉬값을 이용하여 해쉬 암호화하여 인증 서버(200)로 전송할 수 있다.In the above example, the portable one-time secret password generator is described as storing a secret hash value. However, the portable one-time secret password generator does not store the secret hash value, and like a conventional one-time secret password generator, it is possible to generate a one-time secret password using a timestamp and device serial number, and the user can use the key image to generate the secret password. The one-time secret password may be input, and the user terminal 100 may generate the user authentication key by inputting the one-time secret password and the secret hash value as a seed value to the hash function and transmit the generated authentication key to the authentication server 200. That is, the authentication of the user is performed by the existing hardware-based one-time secret password authentication method, the user terminal 100 receives the one-time secret password using the image, hash-encrypting the one-time secret password using the secret hash value It may be transmitted to the authentication server 200.
OTPOTP
((
OneOne
TimeTime
PasswordPassword
) 인증의 다른 ) Other of certification
실시예Example
도 22는 본 발명의 다른 실시예에 따른 인증 시스템을 나타낸 도면이다. 도 22에 도시된 바와 같이, 본 실시예에 따른 인증 시스템은, 사용자 단말(100), 인증 서버(200), 통신망(300) 및 서비스 서버(400)를 포함한다.22 is a diagram illustrating an authentication system according to another embodiment of the present invention. As shown in FIG. 22, the authentication system according to the present embodiment includes a user terminal 100, an authentication server 200, a communication network 300, and a service server 400.
사용자 단말(100)은 인증 프로그램(113)을 설치하고 그 인증 프로그램(113)을 통해 해쉬 알고리즘을 이용하여 비밀 해쉬값, 디바이스 인증키, 프로그램 인증키, 사용자 인증키를 생성하고 이를 인증용 정보로서 상기 인증 서버(200)에 전송하여 등록한다. 사용자 단말(100)은 인증용 정보로서 사용자 식별정보도 함께 인증 서버(200)에 전송하여 등록한다. The user terminal 100 installs an authentication program 113 and generates a secret hash value, a device authentication key, a program authentication key, and a user authentication key by using a hash algorithm through the authentication program 113, and as the authentication information. The registration is transmitted to the authentication server 200. The user terminal 100 also transmits and registers user identification information to the authentication server 200 as authentication information.
인증 서버(200)는 상기 인증용 정보를 저장하여 등록한다. 인증 서버(200)는 사용자 인증이 필요할 때, 사용자 단말(100)로부터 수신된 디바이스 인증키와 프로그램 인증키를 기 등록되어 있는 사용자의 디바이스 인증키 및 프로그램 인증키와 비교하여 사전 인증을 수행한다. 사전 인증에 성공하는 경우, 인증 서버(200)는 일회용 비밀 암호를 발급하여 사용자에게 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 상기 일회용 비밀 암호를 이용한 일회용 인증키를 수신하면, 기 등록되어 있는 사용자 인증키와 상기 발급한 일회용 비밀 암호를 이용하여 일회용 인증키를 생성하여 상기 사용자 단말(100)로부터 수신된 일회용 인증키와 비교하여 최종 인증을 수행한다. The authentication server 200 stores and registers the authentication information. When the user authentication is required, the authentication server 200 compares the device authentication key and the program authentication key received from the user terminal 100 with the device authentication key and the program authentication key of a pre-registered user. If the pre-authentication is successful, the authentication server 200 issues a one-time secret password and transmits it to the user. When the authentication server 200 receives a one-time authentication key using the one-time secret password from the user terminal 100, the user generates a one-time authentication key using a pre-registered user authentication key and the issued one-time secret password to the user. The final authentication is performed by comparing with the one-time authentication key received from the terminal 100.
인증 서버(200)는 상기 서비스 서버(400)로부터 사용자 식별정보를 수신하면 그 사용자 식별정보를 이용하여 사용자의 인증용 정보 및 사용자를 식별하고, 사용자 단말(100)과 상기 사전 인증 및 상기 최종 인증을 수행할 수 있다. 인증 서버(200)는 인증 결과를 서비스 서버(400)로 회신한다. When the authentication server 200 receives the user identification information from the service server 400, the identification information for the user and the user is identified using the user identification information, the user terminal 100 and the pre-authentication and the final authentication Can be performed. The authentication server 200 returns the authentication result to the service server 400.
서비스 서버(400)는 로그인이 필요한 인터넷 웹 서버 또는 인터넷 뱅킹을 제공하는 금융 기관의 서버 또는 전자 결제를 제공하는 결제 서버 등일 수 있고, 또는 오프라인 키오스크나, 금융 기관과 같은 오프라인 상담 창구의 상담원 단말과 연결된 서버 등일 수 있다. 서비스 서버(400)는 사용자에 대한 본인 인증이 필요할 경우, 상기 인증 서버(200)로 사용자로부터 수신된 사용자 식별정보를 전송하며 본인 인증을 요청한다. 여기서 사용자 식별정보는 인증 서버(200)에 저장된 사용자 식별정보이다. The service server 400 may be an internet web server that requires a login or a server of a financial institution that provides Internet banking or a payment server that provides electronic payment, or an agent terminal of an offline consultation window such as an offline kiosk or a financial institution. Connected servers, and so on. The service server 400 transmits the user identification information received from the user to the authentication server 200 when the user authentication is required for the user, and requests the user authentication. The user identification information is user identification information stored in the authentication server 200.
도 23은 본 발명의 또 다른 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.23 is a diagram showing the configuration of an authentication program according to another embodiment of the present invention.
도 23에 도시된 바와 같이, 본 실시예에 따른 인증 프로그램(113)은 비밀 해쉬값 생성 모듈(2310), 디바이스 인증키 생성 모듈(2320), 프로그램 인증키 생성 모듈(2330), 사용자 인증키 생성 모듈(2340), 일회용 비밀 암호 입력 모듈(2350), 일회용 인증키 생성 모듈(2360), 사전 인증 요청 모듈(2370) 및 변경 모듈(2380)을 포함한다. As shown in FIG. 23, the authentication program 113 according to the present embodiment includes a secret hash value generation module 2310, a device authentication key generation module 2320, a program authentication key generation module 2330, and a user authentication key generation. Module 2340, one-time secret password input module 2350, one-time authentication key generation module 2360, pre-authentication request module 2370, and change module 2380.
비밀 해쉬값 생성 모듈(2310)은 입력 장치를 통해 사용자로부터 비밀 제수를 입력받는다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있으나 여기에 제한되는 것은 아니고 사용자만이 알 수 있는 데이터이다. The secret hash value generation module 2310 receives a secret divisor from a user through an input device. The secret divisor may be any one of a long string, an image file, a sound file, or a video file, but is not limited thereto.
비밀 해쉬값 생성 모듈(2310)은 상기 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 나온 결과를 비밀 해쉬값으로 한다. 상기 비밀 해쉬값은 바이너리 파일로 저장될 수 있다. 비밀 해쉬값 생성 모듈(2310)은 상기 비밀 해쉬값을 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값 생성 모듈(2310)에서 생성된 비밀 해쉬값은 사용자 단말(100)에 저장될 수 있고, 또는 통신 회로(152)를 통해 NFC 카드와 같이 별도의 저장 매체에 저장될 수도 있다. 비밀 해쉬값이 NFC 카드 등의 별도의 저장 매체에 저장되는 경우, 사용자 단말(100)에는 비밀 해쉬값이 저장되지 않는다. The secret hash value generation module 2310 sets the secret divisor as a seed value to the hash function as a secret hash value. The secret hash value may be stored as a binary file. The secret hash value generation module 2310 registers the secret hash value by transmitting the secret hash value to the authentication server 200. The secret hash value generated by the secret hash value generation module 2310 may be stored in the user terminal 100, or may be stored in a separate storage medium such as an NFC card through the communication circuit 152. When the secret hash value is stored in a separate storage medium such as an NFC card, the user terminal 100 does not store the secret hash value.
디바이스 인증키 생성 모듈(2320)은 인증 프로그램(113)의 최초 실행시 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소 또는 UUID(Universally Unique Identifier) 등을 수집하고 그 수집된 고유 정보를 이용하여 디바이스 인증키를 생성한다. 구체적으로, 디바이스 인증키 관리 모듈(2320)은 상기 사용자 단말(100)의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성된 값을 디바이스 인증키로서 저장한다. 디바이스 인증키 생성 모듈(2320)은 최초에 생성된 상기 디바이스 인증키를 인증 서버(200)로 전송하여 등록한다. The device authentication key generation module 2320 collects the unique information of the user terminal 100, for example, the MAC address or universally unique identifier (UUID) of the network interface card (NIC) when the authentication program 113 is first executed. The device authentication key is generated using the collected unique information. In detail, the device authentication key management module 2320 stores a value generated by inputting unique information of the user terminal 100 as a seed value in a hash function, as a device authentication key. The device authentication key generation module 2320 transmits and registers the device authentication key generated initially to the authentication server 200.
디바이스 인증키 생성 모듈(2320)은 인증 프로그램(113)의 실행시마다 디바이스 인증키를 생성하고 상기 기 저장된 디바이스 인증키와 비교한다. 디바이스 인증키 생성 모듈(2320)은, 비교 결과, 디바이스 인증키가 일치하지 않는 경우, 인증 프로그램(113)을 자동 삭제한다. 예를 들면, 사용자 단말(100)에 설치된 인증 프로그램(113)이 복제되어 다른 장치에 이전되어 실행되는 경우, 기 저장된 디바이스 인증키와 해당 실행시에 생성된 디바이스 인증키는 일치하지 않게 되어, 다른 장치에 복제된 인증 프로그램(113)은 자동 삭제된다.The device authentication key generation module 2320 generates a device authentication key every time the authentication program 113 is executed and compares the device authentication key with the previously stored device authentication key. The device authentication key generation module 2320 automatically deletes the authentication program 113 when the device authentication key does not match as a result of the comparison. For example, when the authentication program 113 installed in the user terminal 100 is duplicated and transferred to another device and executed, the previously stored device authentication key and the device authentication key generated at the time of execution do not coincide with each other. The authentication program 113 duplicated in the device is automatically deleted.
프로그램 인증키 생성 모듈(2330)은 상기 디바이스 인증키 생성 모듈(2320)에서 생성된 디바이스 인증키와, 타임스탬프, 그리고 상기 비밀 해쉬값을 이용하여 프로그램 인증키를 생성하여 저장한다. 프로그램 인증키는 바이너리 파일로 인증 프로그램(113)에 저장될 수 있다. 여기서 상기 타임스탬프는 프로그램 인증키를 생성하는 시점의 시각을 나타내는 문자열이다. 프로그램 인증키 생성 모듈(2330)은 최초 생성된 프로그램 인증키를 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 프로그램 인증키 생성 모듈(2330)은 통신 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다.The program authentication key generation module 2330 generates and stores a program authentication key using a device authentication key, a time stamp, and the secret hash value generated by the device authentication key generation module 2320. The program authentication key may be stored in the authentication program 113 as a binary file. In this case, the time stamp is a string indicating a time point at which a program authentication key is generated. The program authentication key generation module 2330 transmits and registers the first generated program authentication key to the authentication server 200. If the secret hash value is stored in a separate storage medium, such as an NFC card, the program authentication key generation module 2330 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through a communication circuit 152. You can read the secret hash value by running
사용자 인증키 생성 모듈(2340)은 상기 비밀 해쉬값 생성 모듈(2310)에서 생성된 상기 비밀 해쉬값과, 입력 장치를 통해 사용자로부터 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다. 구체적으로, 사용자 인증키 생성 모듈(2340)은 상기 비밀 해쉬값과 상기 입력된 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 생성된 값을 사용자 인증키로 한다. 사용자 인증키 생성 모듈(2340)은 최초 생성된 사용자 인증키를 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 사용자 인증키 생성 모듈(2340)은 통신 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다.The user authentication key generation module 2340 generates a user authentication key using the secret hash value generated by the secret hash value generation module 2310 and a personal password input from a user through an input device. Specifically, the user authentication key generation module 2340 uses the secret hash value and the input personal password as a seed value in a hash function as a user authentication key. The user authentication key generation module 2340 transmits and registers the first generated user authentication key to the authentication server 200. If the secret hash value is stored in a separate storage medium, such as an NFC card, the user authentication key generation module 2340 is a short-range communication such as Bluetooth communication or NFC communication from a storage medium such as an NFC card through a communication circuit 152. You can read the secret hash value by running
앞서 설명에서, 디바이스 인증키와 프로그램 인증키는 인증 프로그램(113)과 인증 서버(200)에 모두 저장되는 것으로 설명하였으나, 상기 사용자 인증키는 인증 프로그램(113)에 저장되지 않고, 인증 서버(200)에만 전송되어 저장되는 것이 바람직하다.In the above description, the device authentication key and the program authentication key has been described as being stored in both the authentication program 113 and the authentication server 200, the user authentication key is not stored in the authentication program 113, authentication server 200 It is desirable to transmit and store only.
사용자는 인증 서버(200)에 회원 가입을 할 수 있고 회원 가입시 등록한 사용자 식별정보(예, ID)를 기준으로 상기 비밀 해쉬값, 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키가 상기 인증 서버(200)에 인증용 정보로서 저장된다. 인증 서버(200)에는 사용자 식별정보뿐만 아니라, 이름, 생년 월일, 성별 등의 개인 정보도 저장될 수 있다.The user may register in the authentication server 200 and the secret hash value, the device authentication key, the program authentication key, and the user authentication key are authenticated based on the user identification information (eg, ID) registered at the time of membership registration. It is stored in the server 200 as information for authentication. The authentication server 200 may store not only user identification information, but also personal information such as name, date of birth, and gender.
일회용 비밀 암호 입력 모듈(2350)은 인증 서버(200)에서 생성되어 사용자가 지정한 수신처로 수신된 일회용 비밀 암호를 입력받는다. 사용자가 지정한 수신처는 사용자 단말(100)이 될 수 있고, 또는 별도의 사용자가 휴대하는 웨어러블 디바이스일 수도 있으며, 또는 이메일 주소가 될 수 있다. 그러나 여기에 제한되지 않는다. 일회용 비밀 암호는 단문 메시지(SMS) 또는 푸쉬 메시지 형태로 수신될 수도 있다. 일회용 비밀 암호 입력 모듈(2350)은 상기 일회용 비밀 암호를 키패드를 통해 입력받을 수 있고, 또는 이미지를 통해 입력받을 수도 있다.The one-time secret password input module 2350 receives the one-time secret password generated by the authentication server 200 and received by the user-specified destination. The destination designated by the user may be the user terminal 100, or may be a wearable device carried by a separate user, or may be an email address. But it is not limited here. The one-time secret password may be received in the form of a short message (SMS) or a push message. The one-time secret password input module 2350 may receive the one-time secret password through a keypad or may be input through an image.
일회용 인증키 생성 모듈(2360)은 상기 일회용 비밀 암호 입력 모듈(2350)에서 입력된 일회용 비밀 암호와, 상기 사용자 인증키 생성 모듈(2340)에서 생성된 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 이를 인증 서버(200)로 전송한다. 즉, 인증 서버(200)로부터 사용자에게 일회용 비밀 암호가 발급되면, 사용자는 사용자 단말(100)에서 개인 비밀번호와 상기 발급된 일회용 비밀 암호를 입력한다. 그러면, 사용자 인증키 생성 모듈(2340)에서 상기 개인 비밀번호를 이용하여 사용자 인증키를 생성하고, 일회용 인증키 생성 모듈(2360)은 사용자 인증키와 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다.The one-time authentication key generation module 2360 may input the one-time secret password input from the one-time secret password input module 2350 and the user authentication key generated by the user authentication key generation module 2340 as a seed value in a hash function. Generate a one-time authentication key and transmit it to the authentication server (200). That is, when a one-time secret password is issued to the user from the authentication server 200, the user enters the personal password and the issued one-time secret password in the user terminal 100. Then, the user authentication key generation module 2340 generates a user authentication key using the personal password, and the one-time authentication key generation module 2360 generates a one-time authentication key using the user authentication key and the one-time secret password.
사전 인증 요청 모듈(2370)은 상기 일회용 비밀 암호를 이용한 최종 인증 전에 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 인증 서버(200)로 전송하여 사전 인증을 받을 수 있다. 인증 서버(200)는 사전 인증 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키가, 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한 경우, 일회용 비밀 암호를 발급한다.The pre-authentication request module 2370 may receive a pre-authentication by transmitting a pre-authentication request including user identification information, a device authentication key, and a program authentication key to the authentication server 200 before final authentication using the one-time secret password. The authentication server 200 issues a one-time secret password when the user identification information, the device authentication key, and the program authentication key included in the pre-authentication request are the same as the previously registered user identification information, the device authentication key, and the program authentication key. .
변경 모듈(2380)은, 비밀 제수의 변경, 개인 비밀번호의 변경, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경을 수행한다. 비밀 제수의 변경시, 비밀 해쉬값이 변경되므로 비밀 해쉬값을 이용하는 프로그램 인증키 및 사용자 인증키가 함께 변경된다. 개인 비밀번호의 변경시, 이를 이용하는 사용자 인증키가 함께 변경된다. The change module 2380 performs the change of the secret divisor, the change of the personal password, the change of the program authentication key according to the reinstallation of the authentication program, and the change of the device authentication key and the program authentication key according to the change of the user terminal 100. . When the secret divisor is changed, the secret hash value is changed so that the program authentication key and the user authentication key using the secret hash value are changed together. When the personal password is changed, the user authentication key using the same is changed.
비밀 제수 변경Change secret divisor
변경 모듈(2380)은, 사용자로부터 비밀 제수 변경 입력이 수신되는 경우, 디바이스 인증키 및 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 인증 서버(200)로 전송한다. 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버(200)에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 인증 서버(200)는 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(2360)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(2360)로 회신한다. 이와 같이 일치 응답이 회신되면, 변경 모듈(2380)은 상기 비밀 해쉬값 생성 모듈(2310), 상기 사용자 인증키 생성 모듈(2340) 및 상기 프로그램 인증키 생성 모듈(2330)을 제어하여 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키가 생성되도록 한다. 상기 비밀 해쉬값 생성 모듈(2310), 상기 사용자 인증키 생성 모듈(2340) 및 상기 프로그램 인증키 생성 모듈(2330)은 새로 생성한 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 인증 서버(200)로 전송하고, 인증 서버(200)는 기 등록되어 있는 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 새로운 값으로 갱신한다. 변경 모듈(2380)은 인증 서버(200)로부터 비밀 제수 변경 완료 응답을 수신한다. When the secret divisor change input is received from the user, the change module 2380 transmits a secret divisor change request including the device authentication key and the program authentication key to the authentication server 200. When the device authentication key and the program authentication key included in the secret divisor change request and the device authentication key and the program authentication key previously registered in the authentication server 200 match, the authentication server 200 generates a one-time secret password. Issue to the user. The one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200. When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360. When the match response is returned as described above, the change module 2380 controls the secret hash value generation module 2310, the user authentication key generation module 2340, and the program authentication key generation module 2330 to generate a new secret hash value. In addition, a new user authentication key and a new program authentication key are generated. The secret hash value generation module 2310, the user authentication key generation module 2340, and the program authentication key generation module 2330 may generate a newly generated secret hash value, a user authentication key, and a program authentication key from the authentication server 200. The authentication server 200 updates the previously registered secret hash value, user authentication key, and program authentication key with new values. The change module 2380 receives the secret divisor change complete response from the authentication server 200.
개인 비밀번호 변경Change personal password
변경 모듈(2380)은, 사용자로부터 개인 비밀번호 변경 입력이 수신되는 경우, 디바이스 인증키 및 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 인증 서버(200)로 전송한다. 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버(200)에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 인증 서버(200)는 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(2360)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(2360)로 회신한다. 이와 같이 일치 응답이 회신되면, 변경 모듈(2380)은 상기 사용자 인증키 생성 모듈(2340)을 제어하여 새로운 사용자 인증키가 생성되도록 한다. 상기 사용자 인증키 생성 모듈(2340)은 새로운 사용자 인증키를 인증 서버(200)로 전송하고, 인증 서버(200)는 기 등록되어 있는 사용자 인증키를 새로운 사용자 인증키로 갱신한다. 변경 모듈(2380)은 인증 서버(200)로부터 개인 비밀번호 변경 완료 응답을 수신한다. When the personal password change input is received from the user, the change module 2380 transmits a personal password change request including the device authentication key and the program authentication key to the authentication server 200. When the device authentication key and the program authentication key included in the personal password change request and the device authentication key and the program authentication key previously registered in the authentication server 200 match, the authentication server 200 generates a one-time secret password. Issue to the user. The one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200. When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360. When the match response is returned as described above, the change module 2380 controls the user authentication key generation module 2340 to generate a new user authentication key. The user authentication key generation module 2340 transmits a new user authentication key to the authentication server 200, and the authentication server 200 updates a user authentication key that has been previously registered with the new user authentication key. The change module 2380 receives a personal password change complete response from the authentication server 200.
인증 프로그램의 재설치Reinstallation of Certification Program
인증 프로그램의 재설치시, 비밀 해쉬값 생성 모듈(2310)은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성하여 저장한다. 또한, 디바이스 인증키 생성 모듈(2320) 및 프로그램 인증키 생성 모듈(2330)도 디바이스 인증키와 프로그램 인증키를 새로 생성한다. 사용자 인증키 생성 모듈(2340)은 사용자 인증키를 새로 생성한다. 인증 프로그램을 재설치하는 경우, 사용자 단말(100)은 변경이 없고 비밀 제수 및 개인 비밀번호도 동일하므로, 디바이스 인증키, 사용자 인증키, 비밀 해쉬값은 기존과 동일하지만, 프로그램 인증키는 변경된다. 변경 모듈(2380)은 상기 사용자 인증키 생성 모듈(2340), 상기 디바이스 인증키 생성 모듈(2320) 및 상기 프로그램 인증키 생성 모듈(2330)에서 생성된 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 인증 서버(200)로 전송한다. 인증 서버(200)는 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하는 경우, 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(2360)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(2360)로 회신한다. 그리고 인증 서버(200)는 기존에 등록되어 있는 프로그램 인증키를 상기 재설치 등록 메시지에 포함된 새로운 프로그램 인증키로 갱신한다. 변경 모듈(2380)은 인증 서버(200)로부터 재설치 등록 완료 응답을 수신한다. Upon reinstallation of the authentication program, the secret hash value generation module 2310 receives the secret divisor from the user and generates and stores the secret hash value. In addition, the device authentication key generation module 2320 and the program authentication key generation module 2330 also generate a new device authentication key and program authentication key. The user authentication key generation module 2340 generates a new user authentication key. When the authentication program is reinstalled, since the user terminal 100 has no change and the secret divisor and the personal password are the same, the device authentication key, the user authentication key, and the secret hash value are the same as before, but the program authentication key is changed. The change module 2380 may generate a user authentication key, a device authentication key, and a program authentication key generated by the user authentication key generation module 2340, the device authentication key generation module 2320, and the program authentication key generation module 2330. The reinstallation registration message is transmitted to the authentication server 200. When the user authentication key and the device authentication key included in the reinstallation registration message match the pre-registered user authentication key and device authentication key, the authentication server 200 issues a one-time secret password to the user. The one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200. When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360. The authentication server 200 updates the existing program authentication key with the new program authentication key included in the reinstallation registration message. The change module 2380 receives the reinstallation registration complete response from the authentication server 200.
사용자 단말의 변경Change of user terminal
사용자 단말(100)이 변경되면 인증 프로그램도 재설치된다. 비밀 해쉬값 생성 모듈(2310)은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성하여 저장한다. 또한, 디바이스 인증키 생성 모듈(2320) 및 프로그램 인증키 생성 모듈(2330)도 디바이스 인증키와 프로그램 인증키를 새로 생성한다. 사용자 인증키 생성 모듈(2340)은 사용자 인증키를 새로 생성한다. 사용자 단말(100)이 변경되면 인증 프로그램도 재설치되지만, 비밀 제수 및 개인 비밀번호는 동일하므로, 디바이스 인증키 및 프로그램 인증키는 기존과 달라지고, 사용자 인증키 및 비밀 해쉬값은 기존과 동일하다. 변경 모듈(2380)은 상기 사용자 인증키 생성 모듈(2340), 상기 디바이스 인증키 생성 모듈(2320) 및 상기 프로그램 인증키 생성 모듈(2330)에서 생성된 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 인증 서버(200)로 전송한다. 인증 서버(200)는 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 기 등록되어 있는 사용자 인증키와 일치하는 경우, 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(2360)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(2360)로 회신한다. 그리고 인증 서버(200)는 기존에 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 등록 메시지에 포함된 새로운 디바이스 인증키 및 새로운 프로그램 인증키로 갱신한다. 변경 모듈(2380)은 인증 서버(200)로부터 디바이스 등록 완료 응답을 수신한다. If the user terminal 100 is changed, the authentication program is also reinstalled. The secret hash value generation module 2310 receives a secret divisor from a user and generates and stores a secret hash value. In addition, the device authentication key generation module 2320 and the program authentication key generation module 2330 also generate a new device authentication key and program authentication key. The user authentication key generation module 2340 generates a new user authentication key. If the user terminal 100 is changed, the authentication program is reinstalled, but since the secret divisor and the personal password are the same, the device authentication key and the program authentication key are different from the existing ones, and the user authentication key and the secret hash value are the same as before. The change module 2380 may generate a user authentication key, a device authentication key, and a program authentication key generated by the user authentication key generation module 2340, the device authentication key generation module 2320, and the program authentication key generation module 2330. The device change registration message is transmitted to the authentication server 200. The authentication server 200 issues a one-time secret password to the user when the user authentication key included in the device change registration message matches a user authentication key that is pre-registered. The one-time authentication key generation module 2360 generates a one-time authentication key using the one-time secret password and the user authentication key input from the user and transmits the one-time authentication key to the authentication server 200. When the one-time authentication key received from the user terminal 100 matches the one-time authentication key generated by the authentication server 200, the authentication server 200 returns a matching response to the one-time authentication key generation module 2360. The authentication server 200 updates the device authentication key and the program authentication key registered previously with the new device authentication key and the new program authentication key included in the device change registration message. The change module 2380 receives a device registration complete response from the authentication server 200.
상술한 비밀 제수의 변경, 개인 비밀번호의 변경, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경시에, 인증 서버(200)는 사용자 단말(100)로부터 사용자 식별정보를 수신하여 기 등록되어 있는 사용자 식별정보와의 일치 여부를 확인할 수 있다.When changing the secret divisor, the personal password, the program authentication key due to the reinstallation of the authentication program, the device authentication key and the program authentication key according to the change of the user terminal 100, the authentication server 200 The user may receive user identification information from the user terminal 100 and check whether the user identification information is matched with previously registered user identification information.
도 24는 도 22의 인증 서버의 구성을 나타낸 도면으로, 도 24에 도시된 바와 같이, 인증 서버(200)는 비밀 해쉬값 등록 모듈(2410), 사용자 인증키 등록 모듈(2420), 일회용 비밀 암호 생성 모듈(2430), 일회용 인증키 비교 모듈(2440), 디바이스 인증키 등록 모듈(2450), 프로그램 인증키 등록 모듈(2460), 사전 인증 요청 수신 모듈(2470) 및 변경 등록 모듈(2480)을 포함한다. 이들은 메모리에 설치되는 프로그램으로 구현될 수 있고, 또는 하드웨어 및 소트프웨어의 결합으로 구현될 수 있다. FIG. 24 is a diagram illustrating the configuration of the authentication server of FIG. 22. As shown in FIG. 24, the authentication server 200 includes a secret hash value registration module 2410, a user authentication key registration module 2420, and a one-time secret password. Generation module 2430, one-time authentication key comparison module 2440, device authentication key registration module 2450, program authentication key registration module 2460, pre-authentication request receiving module 2470 and change registration module 2480 do. These may be implemented as programs installed in the memory, or may be implemented as a combination of hardware and software.
비밀 해쉬값 등록 모듈(2410)은, 사용자 단말(100)로부터 비밀 해쉬값을 수신하여 등록한다. 여기서 등록은 사용자 식별정보와 함께 저장하는 것을 의미한다. 인증 서버(200)는 사용자의 회원 가입을 처리하며 생성한 사용자 식별정보를 기준으로 비밀 해쉬값을 등록할 수 있다. 비밀 해쉬값에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.The secret hash value registration module 2410 receives and registers a secret hash value from the user terminal 100. The registration here means storing together with the user identification information. The authentication server 200 may register a secret hash value based on the generated user identification information by processing user registration. Since the secret hash value has been described above, a detailed description thereof will be omitted.
사용자 인증키 등록 모듈(2420)은 사용자 단말(100)로부터 사용자 인증키를 수신하여 등록한다. 사용자 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.The user authentication key registration module 2420 receives and registers a user authentication key from the user terminal 100. Since the user authentication key has been described above, a detailed description thereof will be omitted.
일회용 비밀 암호 생성 모듈(2430)은 아래 식1 또는 식2와 같이 일회용 비밀 암호를 생성할 수 있다. The one-time secret password generation module 2430 may generate a one-time secret password as shown in Equation 1 or 2 below.
(식1)(Eq. 1)
ENC_eHPSS=f(eHPSS+TimeStamp),ENC_eHPSS = f (eHPSS + TimeStamp),
일회용 비밀 암호=f(ENC_eHPSS+TimesTAMP)One-time secret password = f (ENC_eHPSS + TimesTAMP)
(식2)(Eq. 2)
일회용 비밀 암호=f(eHPSS+TimesTAMP)One-time secret password = f (eHPSS + TimesTAMP)
(식1) 및 (식2)에서 eHPSS는 비밀 해쉬값, f()는 해쉬 함수이다.In (1) and (2), eHPSS is a secret hash value, and f () is a hash function.
f(ENC_eHPSS+TimesTAMP) 또는 f(eHPSS+TimesTAMP)에서 타임스탬프는 다른 값으로 대체될 수 있고, 또한 타임스탬프 및 비밀 해쉬값 이외 추가적으로 다른 데이터를 시드 값으로 더 넣어 일회용 비밀 암호를 생성할 수 있다. 일회용 비밀 암호의 생성시 비밀 해쉬값이 이용되므로 일회용 비밀 암호는 개인화된 일회용 비밀 암호가 된다.In f (ENC_eHPSS + TimesTAMP) or f (eHPSS + TimesTAMP), timestamps can be replaced with other values, and one-time secret passwords can be created by adding additional data as seed values in addition to the timestamp and secret hash values. . Since the secret hash value is used when generating the one-time secret password, the one-time secret password becomes a personalized one-time secret password.
일회용 비밀 암호 생성 모듈(2430)은 상기 생성한 일회용 비밀 암호를 사용자가 지정한 수신처로 전송한다. 일회용 비밀 암호는 문자 메시지(SMS) 또는 푸시 메시지 또는 이메일 또는 ARS(Automatic Response Service) 등의 형태로 전송될 수 있다. 이를 위해 일회용 비밀 암호 생성 모듈(2430)은 사용자로부터 전화번호 또는 이메일 주소 등을 수신할 수 있다.The one time secret password generation module 2430 transmits the generated one time secret password to a destination designated by the user. The one-time secret password may be transmitted in the form of a text message (SMS) or push message or email or an Automatic Response Service (ARS). To this end, the one-time secret password generation module 2430 may receive a telephone number or e-mail address from the user.
일회용 인증키 비교 모듈(2440)은, 사용자 단말(100)로부터 일회용 인증키를 수신하면, 자체 생성한 일회용 인증키와 비교한다. 사용자 단말(100)에서 일회용 인증키를 생성하는 방법은 앞서 설명하였으므로 여기서는 설명을 생략한다. 일회용 인증키 비교 모듈(2440)은, 상기 일회용 비밀 암호 생성 모듈(2430)에서 사용자에게 발급된 일회용 비밀 암호와 상기 사용자 인증키 등록 모듈(2420)에서 등록한 사용자의 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고, 그 일회용 인증키를 상기 사용자 단말(100)로부터 일회용 인증키를 비교한다. 일회용 인증키 비교 모듈(2440)은 일회용 인증키 비교 결과를 사용자 단말(100)로 전송한다. When the one-time authentication key comparison module 2440 receives the one-time authentication key from the user terminal 100, the one-time authentication key comparison module 2440 compares the one-time authentication key generated by the user. Since the method of generating the one-time authentication key in the user terminal 100 has been described above, the description thereof will be omitted. The one-time authentication key comparison module 2440 may seed the one-time secret password issued to the user in the one-time secret password generation module 2430 and the user authentication key of the user registered in the user authentication key registration module 2420 to a hash function. Generate a one-time authentication key, and compare the one-time authentication key with the one-time authentication key from the user terminal 100. The one-time authentication key comparison module 2440 transmits the one-time authentication key comparison result to the user terminal 100.
디바이스 인증키 등록 모듈(2450)은 사용자 단말(100)로부터 디바이스 인증키를 수신하여 등록한다. 디바이스 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.The device authentication key registration module 2450 receives and registers a device authentication key from the user terminal 100. Since the device authentication key has been described above, a detailed description thereof will be omitted.
프로그램 인증키 등록 모듈(2460)은, 사용자 단말(100)로부터 프로그램 인증키를 수신하여 등록한다. 프로그램 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.The program authentication key registration module 2460 receives and registers a program authentication key from the user terminal 100. Since the program authentication key has been described above, a detailed description thereof will be omitted.
인증 서버(200)는 사용자의 회원 가입을 처리하며 생성한 사용자 식별정보를 기준으로 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 저장할 수 있다.The authentication server 200 may process a user registration and store a secret hash value, a user authentication key, a device authentication key, and a program authentication key based on the generated user identification information.
사전 인증 요청 수신 모듈(2470)은, 서비스 서버(400)로부터 사용자의 본인 인증을 위한 사용자 식별정보를 수신하면 이에 대응하는 사용자 단말(100)로 본인 인증 알림 메시지를 전송한다. 본인 인증 알림 메시지가 사용자 단말(100)로 수신됨에 따라 사용자 단말(100)은 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 전송하고, 사전 인증 요청 수신 모듈(2470)은 그 사전 인증 요청을 수신한다. When the pre-authentication request receiving module 2470 receives user identification information for authenticating the user from the service server 400, the pre-authentication request receiving module 2470 transmits an identity authentication notification message to the corresponding user terminal 100. As the user authentication notification message is received by the user terminal 100, the user terminal 100 transmits a pre-authentication request including user identification information, a device authentication key, and a program authentication key, and the pre-authentication request receiving module 2470 Receive the pre-authentication request.
일회용 비밀 암호 생성 모듈(2430)은, 상기 사전 인증 요청에 포함된 사용자 식별정보를 이용하여 인증 서버(200)에 기 등록되어 있는 디바이스 인증키와 프로그램 인증키를 검색한다. 일회용 비밀 암호 생성 모듈(2430)은, 검색된 디바이스 인증키 및 프로그램 인증키와, 상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와 비교하여 일치하는 경우 일회용 비밀 암호를 생성하여 사용자가 지정한 수신처에 전송한다.The one time secret password generation module 2430 searches for a device authentication key and a program authentication key previously registered in the authentication server 200 by using the user identification information included in the pre-authentication request. The one-time secret password generation module 2430 generates a one-time secret password when the matched device authentication key and the program authentication key and the device authentication key and the program authentication key included in the pre-authentication request are matched to the destination designated by the user. To transmit.
일회용 인증키 비교 모듈(2440)은, 사용자 단말(100)로부터 일회용 인증키를 수신하면, 자체 생성한 일회용 인증키와 비교하고, 일치할 경우, 상기 서비스 서버(400)로 본인 인증 성공 응답을 전송한다. 일치하지 않을 경우, 일회용 인증키 비교 모듈(440)은, 본인 인증 실패 응답을 상기 서비스 서버(400)로 전송한다.When the one-time authentication key comparison module 2440 receives the one-time authentication key from the user terminal 100, the one-time authentication key comparison module 2440 compares the generated one-time authentication key with the self-generated authentication key, and if it matches, transmits the user authentication success response to the service server 400. do. If it does not match, the one-time authentication key comparison module 440 transmits a user authentication failure response to the service server 400.
변경 등록 모듈(2480)은, 비밀 제수의 변경 등록, 개인 비밀번호의 변경 등록, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경 등록, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경 등록을 수행한다. 비밀 제수의 변경시, 프로그램 인증키 및 사용자 인증키가 함께 변경되어 등록된다. 개인 비밀번호의 변경시, 이를 이용하는 사용자 인증키가 함께 변경 등록된다. The change registration module 2480 registers change of secret divisor, change registration of personal password, change registration of program authentication key according to reinstallation of authentication program, device authentication key and program authentication key according to change of user terminal 100. Perform change registration. When the secret divisor is changed, the program authentication key and the user authentication key are changed and registered together. When the personal password is changed, the user authentication key using the same is registered with the change.
비밀 제수 변경Change secret divisor
변경 등록 모듈(2480)은, 디바이스 인증키 및 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 사용자 단말(100)로부터 수신한다. 변경 등록 모듈(2480)은 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 일회용 비밀 암호 생성 모듈(2430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(2440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(2480)은, 사용자 단말(100)로부터 새로 생성한 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 수신하여 기 등록되어 있는 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 대체하여 갱신한다. The change registration module 2480 receives a secret divisor change request including a device authentication key and a program authentication key from the user terminal 100. The change registration module 2480 controls the one-time secret password generation module 2430 when the device authentication key and the program authentication key included in the secret divisor change request and the previously registered device authentication key and the program authentication key match. Issue a one-time secret password to the user. The one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches. The change registration module 2480 receives the newly generated secret hash value, the user authentication key and the program authentication key from the user terminal 100 to replace the previously registered secret hash value, the user authentication key and the program authentication key. Update
개인 비밀번호 변경Change personal password
변경 등록 모듈(2480)은, 디바이스 인증키 및 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 사용자 단말(100)로부터 수신한다. 변경 등록 모듈(2480)은, 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 일회용 비밀 암호 생성 모듈(2430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(2440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(2480)은, 사용자 단말(100)로부터 새로운 사용자 인증키를 수신하여 기 등록되어 있는 사용자 인증키를 대체하여 갱신한다.The change registration module 2480 receives a personal password change request including a device authentication key and a program authentication key from the user terminal 100. When the device authentication key and the program authentication key included in the personal password change request and the previously registered device authentication key and the program authentication key match, the change registration module 2480 performs the one-time secret password generation module 2430. Control and issue a one-time secret password to the user. The one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches. The change registration module 2480 receives a new user authentication key from the user terminal 100 and updates the registered user authentication key by replacing the pre-registered user authentication key.
인증 프로그램의 재설치Reinstallation of Certification Program
변경 등록 모듈(2480)은, 사용자 단말(100)에서 인증 프로그램이 재설치됨에 따라 상기 사용자 단말(100)로부터 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 수신한다. 변경 등록 모듈(2480)은, 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하는 경우, 일회용 비밀 암호 생성 모듈(2430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(2440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(2480)은 기 등록되어 있는 프로그램 인증키를 상기 재설치 등록 메시지에 포함된 프로그램 인증키로 대체하여 갱신한다. The change registration module 2480 receives a reinstallation registration message including a user authentication key, a device authentication key, and a program authentication key from the user terminal 100 as the authentication program is reinstalled in the user terminal 100. When the user authentication key and the device authentication key included in the reinstallation registration message match the pre-registered user authentication key and device authentication key, the change registration module 2480 controls the one-time secret password generation module 2430 for one-time use. Issue a secret password to the user. The one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches. The change registration module 2480 replaces the previously registered program authentication key with the program authentication key included in the reinstallation registration message and updates the registered program authentication key.
사용자 단말의 변경Change of user terminal
변경 등록 모듈(2480)은, 사용자 단말(100)이 변경됨에 따라 변경 후 사용자 단말(100)로부터 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 수신한다. 변경 등록 모듈(2480)은 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 기 등록되어 있는 사용자 인증키와 일치하는 경우, 일회용 비밀 암호 생성 모듈(2430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(2440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(2480)은 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 등록 메시지에 포함된 디바이스 인증키 및 프로그램 인증키로 대체하여 갱신한다.The change registration module 2480 receives a device change registration message including a user authentication key, a device authentication key, and a program authentication key from the user terminal 100 after the change as the user terminal 100 changes. When the user authentication key included in the device change registration message matches the pre-registered user authentication key, the change registration module 2480 controls the one-time secret password generation module 2430 to issue a one-time secret password to the user. The one-time authentication key comparison module 2440 compares the one-time authentication key and transmits a matching response to the user terminal 100 when it matches. The change registration module 2480 updates the previously registered device authentication key and program authentication key with the device authentication key and program authentication key included in the device change registration message.
도 25는 본 발명의 일 실시예에 따른 사용자가 서비스 서버에 회원 가입시 사용자를 인증하는 방법을 설명하는 흐름도이다.25 is a flowchart illustrating a method for authenticating a user when a user registers with a service server according to an embodiment of the present invention.
도 25를 참조하면, 사용자는 사용자 단말(100)로 서비스 서버(400)에 접속하여 회원 가입을 신청한다(S2501). 회원 가입시 사용자는 ID, 패스워드를 입력하고 이외 성별, 생년월일, 전화번호, 주민등록번호 등을 추가로 입력할 수 있다. 이때 사용자가 입력하는 ID는 인증 서버(200)에 저장된 사용자의 ID와 동일하다. 회원 가입 신청을 수신한 서비스 서버(400)는 사용자가 입력한 ID를 포함하는 본인 인증 요청을 인증 서버(200)로 전송한다(S2503). 본 실시예에서는 본인 인증 요청에 ID가 포함되는 것으로 설명하나, 이외 다른 사용자의 식별정보, 예를 들어 전화번호, 주민등록번호, 주소 등의 인증 서버(200)에서 사용자를 식별할 수 있는 개인 정보가 포함될 수도 있다.Referring to FIG. 25, the user accesses the service server 400 through the user terminal 100 and applies for membership (S2501). When registering as a user, the user may enter an ID and password, and additionally input a gender, date of birth, telephone number, and social security number. At this time, the ID input by the user is the same as the ID of the user stored in the authentication server 200. The service server 400 receiving the member subscription request transmits an identity authentication request including the ID input by the user to the authentication server 200 (S2503). In this embodiment, the identity authentication request is described as including an ID, but other user identification information, for example, a personal information that can identify the user in the authentication server 200, such as a telephone number, social security number, address, etc. It may be.
인증 서버(200)는 서비스 서버(400)로부터 수신된 본인 인증 요청에 포함된 사용자의 ID를 이용하여 사용자의 인증용 정보를 식별하고 사용자 단말(100)로 본인 인증 알림 메시지를 전송한다(S2505). 사용자 단말(100)은 본인 인증 알림 메시지를 팝업 표시하고 사용자로부터 ID 및 본인 인증 시작 입력을 수신한다(S2507).The authentication server 200 identifies user authentication information using the ID of the user included in the user authentication request received from the service server 400 and transmits a user authentication notification message to the user terminal 100 (S2505). . The user terminal 100 displays the user authentication notification message pop-up and receives an ID and a user authentication start input from the user (S2507).
사용자 단말(100)은 사용자의 ID, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 인증 서버(200)로 전송한다(S2509). 인증 서버(200)는 상기 사전 인증 요청에 포함된 ID, 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 사용자의 ID, 디바이스 인증키 및 프로그램 인증키를 비교하여 일치하는 경우 사전 인증을 성공 처리한다(S2511).The user terminal 100 transmits a pre-authentication request including an ID of the user, a device authentication key, and a program authentication key to the authentication server 200 (S2509). The authentication server 200 compares the ID, device authentication key, and program authentication key included in the pre-authentication request with the ID, device authentication key, and program authentication key of a pre-registered user. (S2511).
인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S2513). 일회용 비밀 암호는 앞서 설명한 (식1) 또는 (식2)에 따라 생성된다. 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S2515). The authentication server 200 generates a one-time secret password using a secret hash value of a user that is registered in advance (S2513). The one-time secret password is generated according to (Equation 1) or (Equation 2) described above. The authentication server 200 transmits the one-time secret password to a destination designated by the user. In the present embodiment, it transmits to the user terminal 100 (S2515).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다(S2517). 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다(S2519). 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S2521).The user terminal 100 receives a one-time secret password issued by the authentication server 200 from the user and receives a personal password from the user (S2517). The user terminal 100 generates a user authentication key using a secret hash value and the input personal password (S2519). The user terminal 100 generates a one-time authentication key using the user authentication key and the one-time secret password input from the user (S2521).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S2523). 인증 서버(200)는 단계 S2513에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S2523에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교한다(S2525).The user terminal 100 transmits the generated one-time authentication key to the authentication server 200 (S2523). The authentication server 200 generates a one-time authentication key using the one-time secret password generated in step S2513 and a user authentication key of a user who is already registered, and generates the one-time authentication key and the user terminal 100 in step S2523. Compare the one-time authentication key received from the (S2525).
일회용 인증키의 비교 결과, 일치하는 경우, 인증 서버(200)는 사용자 단말(100)과 서비스 서버(400)로 인증 성공 응답을 전송한다(S2527, S2529). 반면, 일회용 인증키의 비교 결과, 일치하는 않는 경우, 인증 서버(200)는 사용자 단말(100)과 서비스 서버(400)로 인증 실패 응답을 전송한다.As a result of comparing the one-time authentication key, if it matches, the authentication server 200 transmits an authentication success response to the user terminal 100 and the service server 400 (S2527, S2529). On the other hand, when the comparison result of the one-time authentication key, if it does not match, the authentication server 200 transmits an authentication failure response to the user terminal 100 and the service server 400.
도 25를 참조하여 설명한 본 실시예는, 사용자가 서비스 서버(400)에 회원 가입할 때 본인 인증을 하는 방법이다. 그러나 여기에만 한정되는 것은 아니다. 예를 들어, 키오스크나 자판기와 같이 오프라인에서 본인 인증을 할 때도 도 25를 참조하여 설명한 본인 인증 과정이 수행된다. 즉 키오스크나 자판기는 사용자로부터 ID와 같은 사용자 식별정보를 수신하여 직접 인증 서버(200)로 그 사용자 식별정보를 전송하거나 서비스 서버(400)를 경유하여 인증 서버(200)로 사용자 식별정보를 전송하며 본인 인증 요청을 할 수 있다. 이때 키오스크나 자판기는 NFC, RFID, 또는 블루투스 등의 근거리 통신을 통해 사용자 단말(100)로부터 사용자 식별정보를 리딩할 수 있다. This embodiment described with reference to FIG. 25 is a method for authenticating a user when a user joins a service server 400. But it is not limited to this. For example, the identity authentication process described with reference to FIG. 25 is also performed when identity verification is performed offline such as a kiosk or a vending machine. That is, the kiosk or vending machine receives user identification information such as an ID from a user and directly transmits the user identification information to the authentication server 200 or transmits the user identification information to the authentication server 200 via the service server 400. You can make a request for identity verification. In this case, the kiosk or the vending machine may read the user identification information from the user terminal 100 through short-range communication such as NFC, RFID, or Bluetooth.
또한 도 25를 참조하여 설명한 본인 인증 과정은 금융 기관에서 사용자가 오프라인 상담을 할 때도 적용될 수 있다. 사용자는 금융 기관의 상담원과 상담하며 본인 인증이 필요할 때, 상담원에게 사용자 식별정보를 제공하고, 상담원 단말은 상담원으로부터 입력된 사용자 식별정보를 직접 인증 서버(200)로 전송하거나 서비스 서버(400)를 경유하여 인증 서버(200)로 사용자 식별정보를 전송하여 본인 인증 요청을 할 수 있다. 사용자는 상담원에게 구두로 사용자 식별정보를 제공할 수도 있고, 또는 사용자 식별정보를 저장하고 있는 카드를 상담원에게 제시하고 상담원이 해당 카드를 리더기로 리딩하여 사용자 식별정보를 획득할 수도 있다. In addition, the authentication process described with reference to FIG. 25 may be applied when a user consults offline in a financial institution. When the user consults with an agent of a financial institution and requires his / her authentication, the user provides user identification information to the agent, and the agent terminal directly transmits the user identification information input from the agent to the authentication server 200 or the service server 400. The user identification information may be transmitted to the authentication server 200 by transmitting the user identification information. The user may verbally provide the user identification information to the counselor, or present the card storing the user identification information to the counselor, and the counselor may read the card to the reader to obtain the user identification information.
이외에도 사용자가 온라인 쇼핑몰에서 물품을 구매하고 지불 결제를 할 때 본인 인증을 하는 과정에서 도 25를 참조하여 설명한 본인 인증을 수행할 수 있다. 또한 금융 자동화기기(ATM)나 오프라인 상점에서 POS 단말을 이용하여 거래를 할 때 본인 인증시에도 위에서 설명한 본인 인증이 수행될 수도 있다. 이와 같이 본 실시예에 따른 본인 인증은 본인 인증이 필요로 하는 서비스에서 모두 적용할 수 있다.In addition, when the user purchases the goods in the online shopping mall and makes a payment, the user authentication may be performed as described with reference to FIG. 25. In addition, when performing a transaction using a POS terminal in an ATM or an offline store, the identity authentication described above may be performed at the time of identity authentication. In this way, the identity authentication according to the present embodiment can be applied to all services required for identity authentication.
이상에서 설명한 실시예에 따르면, 인증 서버(200)는 디바이스 인증키 및 프로그램 인증키를 비교하는 과정을 수행한다. 즉 사용자가 정해진 사용자 단말(100)에서 그리고 기 등록되어 있는 인증 프로그램을 이용해야만 인증 서버(200)는 일회용 비밀 암호를 발급한다. 따라서 인증 프로그램을 복사해서 다른 사용자 단말에서 사용하거나 등록되지 않은 인증 프로그램을 이용하는 경우, 인증에 성공하지 못하여 보안을 강화한다. According to the embodiment described above, the authentication server 200 performs a process of comparing the device authentication key and the program authentication key. That is, the authentication server 200 issues a one-time secret password only when the user uses the predetermined authentication program in the predetermined user terminal 100 and. Therefore, in the case of copying the authentication program and using it in another user terminal or using an unregistered authentication program, authentication is not successful and security is enhanced.
또한, 일회용 비밀 암호는 사용자의 비밀 해쉬값을 이용하여 생성되므로 일회용 비밀 암호를 유추하여 알아낼 수 없다. 또한 사용자 단말(100)은 일회용 비밀 암호만을 인증 서버(200)로 보내지 않고, 사용자의 개인 비밀번호와 일회용 비밀 암호를 해쉬 알고리즘으로 암호화하여 보냄으로써, 일회용 비밀 암호의 원천적인 보호가 가능하다. 또한 일회용 비밀 암호를 생성할 때 타임스탬프를 이용함으로써 보안을 한층 더 강화할 수 있다. In addition, since the one-time secret password is generated using the secret hash value of the user, the one-time secret password cannot be inferred by analogy. In addition, the user terminal 100 does not send only the one-time secret password to the authentication server 200, and sends the user's personal password and one-time secret password encrypted by the hash algorithm, the original protection of the one-time secret password is possible. In addition, the timestamp can be used to create one-time secret passwords for added security.
비밀 Secret
해쉬값의Hash value
별도 보관 Kept separately
도 26은 본 발명의 또 다른 실시예에 따른 인증 시스템을 나타낸 도면이다.26 is a diagram illustrating an authentication system according to another embodiment of the present invention.
도 26에 도시된 바와 같이, 본 실시예에 따른 인증 시스템은, 사용자 단말(100), 마스터 서버(600), 통신망(300) 및 서비스 서버(400)를 포함한다. As shown in FIG. 26, the authentication system according to the present embodiment includes a user terminal 100, a master server 600, a communication network 300, and a service server 400.
사용자 단말(100)은, 마스터 프로그램(2601) 및 서비스 프로그램(2603)을 포함한다.The user terminal 100 includes a master program 2601 and a service program 2603.
마스터 프로그램(2601)은, 상기 마스터 서버(600)와 통신하여 회원 가입 후 인증용 정보를 상기 마스터 서버(600)에 등록한 후 그 인증용 정보를 이용하여 상기 마스터 서버(600)와 사용자의 인증을 수행한다. 회원 가입시, 회원 정보로서, ID, 이름, 생년월일, 주소, 전화번호 등의 식별정보가 마스터 서버(600)에 저장될 수 있다. 여기서 상기 인증용 정보는, 해쉬 알고리즘을 이용하여 생성한, 마스터 디바이스 인증키, 마스터 프로그램 인증키, 마스터 사용자 인증키를 포함한다. 이중에서 마스터 프로그램 인증키, 마스터 사용자 인증키는, 마스터 비밀 해쉬값을 이용하여 생성된다.The master program 2601 communicates with the master server 600, registers the authentication information after registering as a member with the master server 600, and then authenticates the user with the master server 600 using the authentication information. To perform. At the time of membership registration, identification information such as ID, name, date of birth, address, telephone number, etc. may be stored in the master server 600 as member information. The authentication information includes a master device authentication key, a master program authentication key, and a master user authentication key generated using a hash algorithm. Of these, the master program authentication key and the master user authentication key are generated using the master secret hash value.
마스터 프로그램(2601)은, 사용자가 서비스 서버(400)에서 이용할 수 있는 적어도 하나 이상의 서비스 비밀 해쉬값을 생성하여 상기 마스터 서버(600)에 등록하면서 자체적으로 내부에도 저장한다. 이때 마스터 프로그램(2601)은 서비스 비밀 해쉬값을 생성할 때, 사용자로부터 서비스 비밀 해쉬값의 닉네임을 입력받아 함께 저장한다. 마스터 프로그램(2601)은, 사용자가 상기 적어도 하나 이상의 서비스 비밀 해쉬값 중 어느 하나를 상기 서비스 서버(400)에서 사용할 서비스 비밀 해쉬값으로 선택하면, 상기 서비스 프로그램(2603)의 고유 코드를 해당 서비스 비밀 해쉬값과 함께 저장하면서 상기 마스터 서버(600)에도 등록한다. The master program 2601 generates at least one service secret hash value that a user can use in the service server 400 and registers the secret secret value in the master server 600 and stores the generated secret hash value therein. At this time, when generating the service secret hash value, the master program 2601 receives a nickname of the service secret hash value from the user and stores the nickname. When the user selects any one of the at least one service secret hash value as the service secret hash value to be used by the service server 400, the master program 2601 selects a unique code of the service program 2603 as the service secret. It is also registered with the master server 600 while being stored with the hash value.
마스터 프로그램(2601)과 마스터 서버(600)에 동일하게 서비스 비밀 해쉬값이 저장됨으로써, 사용자 단말(100)이 변경되어 마스터 프로그램(2601)이 재설치되더라도 서비스 비밀 해쉬값의 복원이 가능하다.Since the service secret hash value is stored in the master program 2601 and the master server 600 in the same manner, the service secret hash value can be restored even if the user terminal 100 is changed and the master program 2601 is reinstalled.
마스터 프로그램(2601)은, 서비스 비밀 해쉬값의 등록 또는 변경시, 상기 마스터 디바이스 인증키, 마스터 프로그램 인증키, 마스터 사용자 인증키를 이용하여 사용자를 인증하고, 인증에 성공시에 비스 비밀 해쉬값의 등록 또는 변경을 가능하게 한다.When the master program 2601 registers or changes the service secret hash value, the master program 2601 authenticates the user by using the master device authentication key, the master program authentication key, and the master user authentication key. Enable registration or change.
서비스 프로그램(2603)은, 상기 서비스 서버(400)와 통신하여 상기 서비스 서버(400)의 서비스를 사용자에게 제공한다. 서비스 프로그램(2603)은, 인증용 정보를 서비스 서버(400)에 등록한 후 그 인증용 정보를 이용하여 상기 서비스 서버(400)와 사용자의 인증을 수행한다. 여기서 인증용 정보는, 해쉬 알고리즘을 이용하여 생성한, 서비스 디바이스 인증키, 서비스 프로그램 인증키, 서비스 사용자 인증키를 포함한다. 이중에서, 서비스 프로그램 인증키, 서비스 사용자 인증키는, 서비스 비밀 해쉬값을 이용하여 생성된다. 그리고 서비스 비밀 해쉬값은, 상기 마스터 프로그램(2601)에서 관리하는 적어도 하나 이상의 서비스 비밀 해쉬값 중에서 선택된다. The service program 2603 communicates with the service server 400 to provide a service of the service server 400 to a user. The service program 2603 registers authentication information with the service server 400 and then authenticates the user with the service server 400 using the authentication information. Here, the authentication information includes a service device authentication key, a service program authentication key, and a service user authentication key generated using a hash algorithm. Among these, the service program authentication key and the service user authentication key are generated using the service secret hash value. The service secret hash value is selected from at least one service secret hash value managed by the master program 2601.
마스터 서버(600)는 인증용 정보를 데이터베이스(610)에 저장하여 등록한다. 마스터 서버(600)는, 도 26에 도시된 바와 같이, 사용자의 ID를 기준으로 해당 사용자가 서비스 서버(400)에서 사용할 수 있는, 적어도 하나 이상의 서비스 비밀 해쉬값 그리고 각 서비스 비밀 해쉬값의 닉네임을 데이터베이스(610)에 저장하고, 또한 상기 인증용 정보를 함께 저장한다. The master server 600 registers the information for authentication in the database 610. As illustrated in FIG. 26, the master server 600 may include nicknames of at least one service secret hash value and each service secret hash value that the user may use in the service server 400 based on the user's ID. It stores in the database 610, and also stores the authentication information.
마스터 서버(600)는 사용자 인증이 필요할 때, 사용자 단말(100)로부터 수신된 마스터 디바이스 인증키, 마스터 프로그램 인증키 및 마스터 사용자 인증키를 데이터베이스(610)에 기 등록되어 있는 사용자의 마스터 디바이스 인증키, 마스터 프로그램 인증키 및 마스터 사용자 인증키와 비교하여 인증을 수행한다. When the master server 600 requires user authentication, the master device authentication key of the user who is registered in the database 610 with the master device authentication key, the master program authentication key and the master user authentication key received from the user terminal 100. The authentication is performed by comparing the master program authentication key and the master user authentication key.
또는, 마스터 서버(600)는, 사용자 인증이 필요할 때, 사용자 단말(100)로부터 수신된 마스터 디바이스 인증키 및 마스터 프로그램 인증키를 데이터베이스(610)에 기 등록되어 있는 사용자의 마스터 디바이스 인증키 및 마스터 프로그램 인증키와 비교하여 사전 인증을 수행한다. 사전 인증에 성공하는 경우, 마스터 서버(600)는 일회용 비밀 암호를 발급하여 사용자에게 전송한다. 마스터 서버(600)는 사용자 단말(100)로부터 상기 일회용 비밀 암호 및 마스터 사용자 인증키를 이용한 생성된 일회용 인증키를 수신하면, 기 등록되어 있는 마스터 사용자 인증키와 상기 발급한 일회용 비밀 암호를 이용하여 일회용 인증키를 생성하여 상기 사용자 단말(100)로부터 수신된 일회용 인증키와 비교하여 최종 인증을 수행할 수도 있다.Alternatively, the master server 600, when the user authentication is required, the master device authentication key and the master device authentication key and the master device authentication key and the master program authentication key received from the user terminal 100 in the database 610 Pre-authentication is performed compared to the program authentication key. If the pre-authentication is successful, the master server 600 issues a one-time secret password and transmits it to the user. When the master server 600 receives the one-time secret password generated using the one-time secret password and the master user authentication key from the user terminal 100, by using a pre-registered master user authentication key and the issued one-time secret password The final authentication may be performed by generating a one-time authentication key and comparing with the one-time authentication key received from the user terminal 100.
마스터 서버(600)는 상기 서비스 서버(400)로부터 사용자 식별정보를 수신하면 그 사용자 식별정보를 이용하여 사용자의 인증용 정보 및 사용자를 식별하고, 사용자 단말(100)과 상기 사전 인증 및 상기 최종 인증을 수행할 수 있다. 마스터 서버(600)는 인증 결과를 서비스 서버(400)로 회신한다. When the master server 600 receives the user identification information from the service server 400, using the user identification information to identify the user authentication information and the user, the user terminal 100 and the pre-authentication and the final authentication Can be performed. The master server 600 returns the authentication result to the service server 400.
서비스 서버(400)는 로그인이 필요한 인터넷 웹 서버 또는 인터넷 뱅킹을 제공하는 금융 기관의 서버 또는 전자 결제를 제공하는 결제 서버 등일 수 있고, 또는 오프라인 키오스크나, 금융 기관과 같은 오프라인 상담 창구의 상담원 단말과 연결된 서버 등일 수 있다. 서비스 서버(400)는 사용자에 대한 인증이 필요할 경우, 사용자 단말(100)의 서비스 프로그램(2603)과 직접 통신하여 사용자 인증 과정을 수행하거나, 또는 상기 마스터 서버(600)로 사용자로부터 수신된 사용자 식별정보를 전송하며 사용자 인증을 요청할 수 있다. 여기서 사용자 식별정보는 마스터 서버(600)에 저장된 ID 등과 같은 사용자 식별정보이다. The service server 400 may be an internet web server that requires a login or a server of a financial institution that provides Internet banking or a payment server that provides electronic payment, or an agent terminal of an offline consultation window such as an offline kiosk or a financial institution. Connected servers, and so on. When the service server 400 needs to authenticate the user, the service server 400 directly communicates with the service program 2603 of the user terminal 100 to perform a user authentication process, or identify the user received from the user to the master server 600. Send information and request user authentication. The user identification information is user identification information such as an ID stored in the master server 600.
서비스 서버(400)는, 서비스 프로그램(2603)과 직접 통신을 통한 사용자 인증 과정시, 사용자 단말(100)로부터 수신된 서비스 디바이스 인증키, 서비스 프로그램 인증키 및 서비스 사용자 인증키를 데이터베이스(410)에 기 등록되어 있는 사용자의 서비스 디바이스 인증키, 서비스 프로그램 인증키 및 서비스 사용자 인증키와 비교하여 인증을 수행한다. The service server 400 may store the service device authentication key, the service program authentication key, and the service user authentication key received from the user terminal 100 in the database 410 during a user authentication process through direct communication with the service program 2603. The authentication is performed by comparing the service device authentication key, the service program authentication key, and the service user authentication key of the user who is registered.
또는, 서비스 서버(400)는, 사용자 단말(100)로부터 수신된 서비스 디바이스 인증키 및 서비스 프로그램 인증키를 데이터베이스(410)에 기 등록되어 있는 사용자의 서비스 디바이스 인증키 및 서비스 프로그램 인증키와 비교하여 사전 인증을 수행한다. 사전 인증에 성공하는 경우, 서비스 서버(400)는 일회용 비밀 암호를 발급하여 사용자에게 전송한다. 서비스 서버(400)는 사용자 단말(100)로부터 서비스 사용자 인증키 및 상기 일회용 비밀 암호를 이용하여 생성된 일회용 인증키를 수신하면, 기 등록되어 있는 서비스 사용자 인증키와 상기 발급한 일회용 비밀 암호를 이용하여 일회용 인증키를 생성하여 상기 사용자 단말(100)로부터 수신된 일회용 인증키와 비교하여 최종 인증을 수행할 수도 있다.Alternatively, the service server 400 compares the service device authentication key and the service program authentication key received from the user terminal 100 with the service device authentication key and the service program authentication key of the user who are pre-registered in the database 410. Perform pre-authentication. If the pre-authentication is successful, the service server 400 issues a one-time secret password and transmits it to the user. When the service server 400 receives the one-time authentication key generated by using the service user authentication key and the one-time secret password from the user terminal 100, the service user authentication key and the issued one-time secret password are used. By generating a one-time authentication key compared to the one-time authentication key received from the user terminal 100 may perform a final authentication.
서비스 서버(400)는, 마스터 서버(600)를 통한 사용자 인증시, 사용자 단말(100)로부터 수신된 사용자 식별정보를 마스터 서버(600)로 전송하고, 마스터 서버(600)로부터 인증 결과를 수신한다. 이때, 마스터 서버(600)는 앞서 설명한 방법으로, 사용자 단말(100)의 마스터 프로그램(2601)과 통신하여 사용자를 인증하고 그 인증 결과를 서비스 서버(400)로 전송하는 것이다. The service server 400 transmits the user identification information received from the user terminal 100 to the master server 600 and receives the authentication result from the master server 600 at the time of user authentication through the master server 600. . At this time, the master server 600 is to communicate with the master program 2601 of the user terminal 100 to authenticate the user and transmit the authentication result to the service server 400 in the manner described above.
마스터 서버(600)와 서비스 서버(400)는, 적어도 프로세서, 메모리, 입출력 인터페이스를 구비하는 정보처리장치를 의미한다. 마스터 서버(600) 및 서비스 서버(400)는 메모리 내에 각종 데이터 및 프로그램을 저장해 두고, 프로세서를 통해 실행함으로써 사용자 인증 및 서비스 제공 등을 처리한다. The master server 600 and the service server 400 mean an information processing apparatus having at least a processor, a memory, and an input / output interface. The master server 600 and the service server 400 store various data and programs in a memory and execute the same through a processor to process user authentication and service provision.
마스터 서버(600)와 관련된 비밀 제수는, 마스터 비밀 제수이고, 서비스 서버(400)와 관련된 비밀 제수는 서비스 비밀 제수이다. 마스터 서버(600)와 관련된 비밀 해쉬값은, 마스터 비밀 해쉬값이고, 서비스 서버(400)와 관련된 비밀 해쉬값은 서비스 비밀 해쉬값이다.The secret divisor associated with the master server 600 is the master secret divisor, and the secret divisor associated with the service server 400 is the service secret divisor. The secret hash value associated with the master server 600 is a master secret hash value, and the secret hash value associated with the service server 400 is a service secret hash value.
마스터 프로그램(2601)은, 마스터 서버(600)에 등록하는 인증용 정보를 생성할 때, 마스터 비밀 해쉬값을 이용한다. 또한 마스터 프로그램(2601)은, 사용자가 서비스 서버(400)의 서비스를 이용할 때 사용할 수 있는 적어도 하나의 비밀 해쉬값, 즉 서비스 비밀 해쉬값을 생성하여 관리한다. 서비스 비밀 해쉬값은, 마스터 프로그램(2601)과 마스터 서버(600)에 모두 저장되어, 사용자 단말(100)을 변경하더라도 마스터 서버(600)와 인증 과정을 수행한 후, 마스터 서버(600)로부터 서비스 비밀 해쉬값을 복원할 수 있다. 마스터 프로그램(2601)은, 서비스 비밀 해쉬값을 생성할 때, 사용자로부터 각 서비스 비밀 해쉬값의 닉네임을 입력받아 서비스 비밀 해쉬값에 매핑하여 저장한다. 따라서 사용자는 서비스 프로그램(2603)에서 마스터 프로그램(2601)이 제공하는 서비스 비밀 해쉬값 중 하나를 선택할 때 닉네임만을 선택하면 된다. 마스터 프로그램(2601)은, 사용자가 서비스 서버(400)의 서비스를 이용할 때 사용할 서비스 비밀 해쉬값을 선택하면, 그 서비스 서버(400)에 대응하는 서비스 프로그램(2603)의 고유 코드를 수신한다. 마스터 프로그램(2601)은 그 고유 코드를 해당 서비스 비밀 해쉬값에 매핑하여 저장한다. 따라서, 사용자 단말(100)에는, 서비스 비밀 해쉬값/닉네임/고유 코드의 매핑 정보가 저장되고, 마스터 서버(600)에는, 사용자의 ID를 기준으로 서비스 비밀 해쉬값/닉네임/고유 코드의 매핑 정보가 저장된다. The master program 2601 uses a master secret hash value when generating the authentication information registered in the master server 600. In addition, the master program 2601 generates and manages at least one secret hash value, that is, a service secret hash value, which can be used when a user uses a service of the service server 400. The service secret hash value is stored in both the master program 2601 and the master server 600, and after performing the authentication process with the master server 600 even if the user terminal 100 is changed, the service from the master server 600. You can restore the secret hash value. When generating the service secret hash value, the master program 2601 receives a nickname of each service secret hash value from the user and maps the service secret hash value to the service secret hash value. Therefore, the user only needs to select a nickname when selecting one of the service secret hash values provided by the master program 2601 in the service program 2603. When the user selects the service secret hash value to be used when the user uses the service of the service server 400, the master program 2601 receives the unique code of the service program 2603 corresponding to the service server 400. The master program 2601 maps the unique code to the corresponding service secret hash value and stores it. Therefore, the mapping information of the service secret hash value / nickname / unique code is stored in the user terminal 100, and the mapping information of the service secret hash value / nickname / unique code is stored in the master server 600 based on the user ID. Is stored.
마스터 비밀 해쉬값과 서비스 비밀 해쉬값은 각각 시드인 비밀 제수가 서로 다르기 때문에 그 값이 서로 다르다. 또한 서비스 비밀 해쉬값이 복수 개일 때, 각 서비스 비밀 해쉬값의 시드인 비밀 제수 역시 서로 다르기 때문에 각 서비스 비밀 해쉬값이 서로 다르다. 서비스 비밀 해쉬값은, 사용자 단말(100)과 마스터 서버(600)에 동기화되어 저장되지만, 마스터 비밀 해쉬값은 어느 쪽에도 저장되지 않는다. 즉 마스터 비밀 해쉬값은, 필요할 때마다 사용자로부터 비밀 제수를 입력받아 생성된다.The master secret hash value and the service secret hash value are different because the seed secret divisors are different. Also, when there are a plurality of service secret hash values, the secret divisor, which is the seed of each service secret hash value, is also different, so that each service secret hash value is different. The service secret hash value is stored in synchronization with the user terminal 100 and the master server 600, but the master secret hash value is not stored in either. That is, the master secret hash value is generated by receiving a secret divisor from the user whenever necessary.
비밀 해쉬값은, 그 자체로 저장되지 않고, 암호화되어 저장될 수 있다. 암호화를 할 때, 비밀 해쉬값은, 디바이스 인증키와 함께 암호화될 수 있다. 따라서 마스터 프로그램(2601)은, 비밀 해쉬값을 이용하고자 할 때, 암호화된 비밀 해쉬값 및 디바이스 인증키를 복원한 후, 복원된 디바이스 인증키를, 기 저장되어 있는 디바이스 인증키와 비교하는 과정을 수행한다. 디바이스 인증키가 일치하지 않은 경우 이후 과정은 자동 중단된다.The secret hash value is not stored by itself, but may be stored encrypted. When encrypting, the secret hash value can be encrypted with the device authentication key. Therefore, when the master program 2601 attempts to use the secret hash value, the master program 2601 recovers the encrypted secret hash value and the device authentication key, and then compares the restored device authentication key with a previously stored device authentication key. To perform. If the device authentication key does not match, the subsequent process is automatically stopped.
디바이스 인증키도 마스터 디바이스 인증키와 서비스 디바이스 인증키로 구분될 수 있다. 마스터 프로그램(2601)과 서비스 프로그램(2603)은 동일한 사용자 단말(100)에 설치되므로, 마스터 디바이스 인증키와 서비스 디바이스 인증키는 서로 동일하다. The device authentication key may also be divided into a master device authentication key and a service device authentication key. Since the master program 2601 and the service program 2603 are installed in the same user terminal 100, the master device authentication key and the service device authentication key are the same.
프로그램 인증키는, 마스터 프로그램 인증키와 서비스 프로그램 인증키로 구분될 수 있다. 마스터 프로그램 인증키는, 마스터 디바이스 인증키, 타임스탬프, 마스터 비밀 해쉬값으로부터 생성되고, 서비스 프로그램 인증키는 서비스 디바이스 인증키, 타임스탬프, 서비스 비밀 해쉬값으로부터 생성된다.The program authentication key may be divided into a master program authentication key and a service program authentication key. The master program authentication key is generated from the master device authentication key, time stamp and master secret hash value, and the service program authentication key is generated from the service device authentication key, time stamp and service secret hash value.
사용자 인증키 역시 마스터 사용자 인증키와 서비스 사용자 인증키로 구분될 수 있다. 마스터 사용자 인증키는, 마스터 비밀 해쉬값 및 개인 비밀번호로부터 생성되고, 서비스 사용자 인증키는, 서비스 비밀 해쉬값 및 개인 비밀번호로부터 생성된다. 이때, 마스터 사용자 인증키를 생성할 때 사용자로부터 입력되는 개인 비밀번호와, 서비스 사용자 인증키를 생성할 때 입력되는 개인 비밀번호는 사용자의 선택에 따라 다를 수 있다. The user authentication key may also be divided into a master user authentication key and a service user authentication key. The master user authentication key is generated from the master secret hash value and the personal password, and the service user authentication key is generated from the service secret hash value and the personal password. In this case, the personal password input from the user when generating the master user authentication key and the personal password input when generating the service user authentication key may be different according to the user's selection.
앞서 설명한, 비밀 해쉬값, 디바이스 인증키, 프로그램 인증키, 사용자 인증키 중, 디바이스 인증키와 프로그램 인증키는, 사용자 단말(100)과 서버(600, 400)에 모두 저장되고, 사용자 인증키는 서버(600, 400)에만 저장된다. 그리고, 마스터 비밀 해쉬값은, 어디에도 저장되지 않고 마스터 서버(600)와 사용자의 인증을 수행할 때마다 생성된다. 서비스 비밀 해쉬값은 마스터 프로그램(2601)과 마스터 서버(600)에 동기화되어 저장된다. Among the secret hash value, the device authentication key, the program authentication key, and the user authentication key described above, the device authentication key and the program authentication key are both stored in the user terminal 100 and the servers 600 and 400, and the user authentication key is Only stored on servers 600 and 400. The master secret hash value is not stored anywhere and is generated every time the user authenticates the master server 600 with the user. The service secret hash value is stored in synchronization with the master program 2601 and the master server 600.
일회용 비밀 암호는, 사용자의 인증시에, 마스터 서버(600) 또는 서비스 서버(400)에서 생성되어, 사용자가 지정한 수신처로 수신된 값이다. 사용자가 지정한 수신처는 사용자 단말(100)이 될 수 있고, 또는 별도의 사용자가 휴대하는 웨어러블 디바이스일 수도 있으며, 또는 이메일 주소가 될 수 있다. 그러나 여기에 제한되지 않는다. 일회용 비밀 암호는 단문 메시지(SMS) 또는 푸쉬 메시지 형태로 수신될 수도 있다. 사용자는, 마스터 프로그램(2601) 또는 서비스 프로그램(2603)에서 제공되는 키패드를 통해 일회용 비밀 암호를 입력할 수 있고, 또는 이미지를 통해 입력할 수도 있다.The one-time secret password is a value generated at the master server 600 or the service server 400 at the time of user authentication and received at a destination designated by the user. The destination designated by the user may be the user terminal 100, or may be a wearable device carried by a separate user, or may be an email address. But it is not limited here. The one-time secret password may be received in the form of a short message (SMS) or a push message. The user may enter the one-time secret password through the keypad provided in the master program 2601 or the service program 2603 or may enter the image via an image.
일회용 인증키는, 사용자로부터 입력된 일회용 비밀 암호와, 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 생성된 값이다. 구체적으로, 서버(600, 400)에서 일회용 비밀 암호가 발급되어 사용자에게 전송되면, 사용자는 프로그램(2601, 2063)에서 개인 비밀번호와 상기 발급된 일회용 비밀 암호를 입력한다. 그러면, 프로그램(2601, 2063)은, 상기 개인 비밀번호를 이용하여 사용자 인증키를 생성하고, 그 생성된 사용자 인증키와 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다. 이와 같이 생성된 일회용 인증키는, 서버(600, 400)로 전송되고, 서버(600, 400)는 수신된 일회용 인증키와, 자체 생성한 일회용 인증키를 비교하여 일치하면 인증을 성공 처리한다. The one-time authentication key is a value generated by inputting the one-time secret password input from the user and the user authentication key as a seed value to the hash function. Specifically, when a one-time secret password is issued from the server (600, 400) is transmitted to the user, the user enters the personal password and the issued one-time secret password in the program (2601, 2063). Then, the programs 2601 and 2063 generate a user authentication key using the personal password, and generate a one time authentication key using the generated user authentication key and one-time secret password. The one-time authentication key generated in this way is transmitted to the servers 600 and 400, and the server 600 and 400 compares the received one-time authentication key with the one-time authentication key generated by itself and successfully processes the authentication.
인증 성공은 두 가지로 구분할 수 있다.Authentication success can be divided into two types.
첫 번째로, 프로그램(2601, 2063)은, 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 인증 요청을 서버(600, 400)로 전송한다. 서버(600, 400)는, 인증 요청에 포함된 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키가, 기 등록되어 있는 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키와 동일한 경우, 인증 성공 처리한다. First, the programs 2601 and 2063 transmit an authentication request including the user identification information, the device authentication key, the program authentication key, and the user authentication key to the servers 600 and 400. The server 600 and 400 may include user identification information, device authentication key, program authentication key, and user authentication key included in the authentication request, user identification information, device authentication key, program authentication key, and user authentication key that are pre-registered. If it is the same, authentication succeeds.
두 번째로, 프로그램(2601, 2063)은 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 서버(600, 400)로 전송한다. 서버(600, 400)는 사전 인증 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키가, 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한 경우, 일회용 비밀 암호를 사용자에게 발급한다. 일회용 비밀 암호는, 사용자가 지정한 수신처로 수신된다. 사용자는, 프로그램(2601, 2063)에서 제공되는 키패드 또는 이미지를 통해 일회용 비밀 암호를 입력한다. 프로그램(2601, 2063)은, 사용자로부터 입력된 일회용 비밀 암호와, 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고, 서버(600, 400)로 전송한다. 서버(600, 400)는 수신된 일회용 인증키와, 자체 생성한 일회용 인증키를 비교하여 일치하면 인증을 성공 처리한다. 서버(600, 400)는, 상기 발급한 일회용 비밀 암호와, 자체 저장하고 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 자체 생성한다. Second, the programs 2601 and 2063 transmit a pre-authentication request including the user identification information, the device authentication key, and the program authentication key to the servers 600 and 400. When the user identification information, the device authentication key, and the program authentication key included in the pre-authentication request are the same as the pre-registered user identification information, the device authentication key, and the program authentication key, the servers 600 and 400 may use a one-time secret password. Issue to. The one-time secret password is received at a destination designated by the user. The user enters a one-time secret password via a keypad or image provided by programs 2601 and 2063. The programs 2601 and 2063 generate a one-time secret key input from the user and a user authentication key as a seed value in a hash function, and generate the one-time authentication key, and transmit them to the servers 600 and 400. The server 600 or 400 compares the received one-time authentication key with the one-time authentication key generated by itself, and successively authenticates the same. The servers 600 and 400 generate a one-time authentication key by using the issued one-time secret password and a user authentication key of the user who is stored therein.
이상의 설명에서는, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 모두 이용하여 사용자를 인증하는 것을 설명하나, 사용자 인증키만을 이용하여 사용자를 인증할 수 있고, 디바이스 인증키 및 프로그램 인증키는 필요에 따라 인증에 사용할 수 있다. 디바이스 인증키를 이용하는 경우, 정해진 사용자 단말(100)이 아닌, 다른 사용자 단말(100)에서 인증을 시도하는 것을 차단할 수 있다. 그리고 프로그램 인증키를 이용하는 경우, 프로그램이 불법 복제되어 인증에 사용되는 경우를 차단할 수 있다. In the above description, the authentication of the user using the device authentication key, the program authentication key, and the user authentication key is described. However, the user can be authenticated using only the user authentication key. Can be used for authentication. In the case of using the device authentication key, it is possible to block attempting authentication at another user terminal 100 instead of the determined user terminal 100. In addition, when the program authentication key is used, it is possible to block a case where the program is illegally copied and used for authentication.
한편, 상술한 인증 방법은, 사용자가 마스터 프로그램(2601)에서 새로운 서비스 비밀 해쉬값을 설정하거나, 기 설정되어 있는 서비스 비밀 해쉬값을 변경하는 경우에 적용될 수 있다. 즉 마스터 프로그램(2601)은, 마스터 서버(600)와 상술한 인증 과정을 거쳐 사용자의 인증에 성공한 경우, 새로운 서비스 비밀 해쉬값을 설정할 수 있도록 하고, 또한 기존 서비스 비밀 해쉬값의 변경을 가능하게 한다.Meanwhile, the above-described authentication method can be applied when the user sets a new service secret hash value in the master program 2601 or changes a preset service secret hash value. That is, the master program 2601 can set a new service secret hash value when the user is successfully authenticated through the above-described authentication process with the master server 600, and also change the existing service secret hash value. .
도 27은 본 발명의 일 실시예에 따른 서비스 비밀 해쉬값을 등록하는 과정을 설명하는 흐름도이다.27 is a flowchart illustrating a process of registering a service secret hash value according to an embodiment of the present invention.
도 27을 참조하면, 먼저 사용자는 사용자 단말(100)에서 마스터 프로그램(2601)을 실행하고, 마스터 프로그램(2601)을 통해 마스터 서버(600)에 회원 가입을 한다(S2701). 즉 사용자는 ID, 주민등록번호, 패스워드, 주소 등을 입력하여 마스터 서버(600)에 회원 가입을 한다. 이어서, 사용자는 사용자 단말(100)의 입력 장치를 통해 마스터 비밀 제수를 선택한다(S2703). 여기서 마스터 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있으나 여기에 제한되는 것은 아니고 사용자만이 알 수 있는 데이터이다.Referring to FIG. 27, a user first executes a master program 2601 in the user terminal 100 and registers as a member of the master server 600 through the master program 2601 (S2701). That is, the user enters an ID, a social security number, a password, an address, and the like to join the master server 600. Next, the user selects the master secret divisor through the input device of the user terminal 100 (S2703). The master secret divisor may be any one of a long text string, an image file, a sound file, or a video file, but is not limited thereto.
마스터 프로그램(2601)은, 해쉬 함수에 상기 선택된 마스터 비밀 제수를 시드 값으로 입력하여 마스터 비밀 해쉬값을 생성한다(S2705). 그리고 마스터 프로그램(2601)은 인증용 정보를 생성한다(S2707). 여기서 인증용 정보는, 마스터 디바이스 인증키, 마스터 프로그램 인증키, 마스터 사용자 인증키를 포함한다. 마스터 사용자 인증키는, 마스터 비밀 해쉬값과, 입력 장치를 통해 사용자로부터 입력된 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 생성한다.The master program 2601 generates a master secret hash value by inputting the selected master secret divisor as a seed value to a hash function (S2705). The master program 2601 generates information for authentication (S2707). The authentication information includes a master device authentication key, a master program authentication key, and a master user authentication key. The master user authentication key is generated by inputting the master secret hash value and the personal password input from the user through the input device as a seed value to the hash function.
마스터 프로그램(2601)은, 상기 생성한 인증용 정보를 마스터 서버(600)로 전송하여 등록한다(S2709). 마스터 서버(600)는 사용자의 ID를 기준으로 인증용 정보를 저장한다. 그리고, 마스터 프로그램(2601)은, 마스터 사용자 인증키를 제외한, 마스터 프로그램 인증키 및 마스터 디바이스 인증키를 사용자 단말(100)에도 저장한다. The master program 2601 transfers the generated authentication information to the master server 600 and registers it (S2709). The master server 600 stores authentication information based on the ID of the user. The master program 2601 also stores the master program authentication key and the master device authentication key in the user terminal 100 except for the master user authentication key.
다음으로, 여러 서비스 서버(400)에서 선택적으로 사용할 서비스 비밀 해쉬값을 생성하는 과정을 수행한다. Next, a process of generating a service secret hash value selectively used by the various service servers 400 is performed.
사용자는 사용자 단말(100)의 입력 장치를 통해 서비스 비밀 제수를 선택한다(S2711). 마스터 비밀 제수와 서비스 비밀 제수는 서로 다르도록 선택된다. 그리고 사용자는 사용자 단말(100)의 입력 장치를 통해 상기 선택한 서비스 비밀 제수에 대한 닉네임을 입력한다(S2713).The user selects a service secret divisor through the input device of the user terminal 100 (S2711). The master secret divisor and the service secret divisor are chosen to be different. The user inputs a nickname for the selected service secret divisor through the input device of the user terminal 100 (S2713).
마스터 프로그램(2601)은, 해쉬 함수에 상기 선택된 서비스 비밀 제수를 시드 값으로 입력하여 서비스 비밀 해쉬값을 생성한다(S2715). 그리고 마스터 프로그램(2601)은, 그 생성한 서비스 비밀 해쉬값 및 상기 입력된 닉네임을 포함하는 매핑 정보를 마스터 서버(600)로 전송한다(S2719). 마스터 서버(600)는 그 수신된 매핑 정보를 저장하여 등록한다(S2721). 마스터 서버(600)는 사용자의 ID를 기준으로 매핑 정보를 등록한다.The master program 2601 generates a service secret hash value by inputting the selected service secret divisor as a seed value to a hash function (S2715). The master program 2601 transmits mapping information including the generated service secret hash value and the input nickname to the master server 600 (S2719). The master server 600 stores and registers the received mapping information (S2721). The master server 600 registers the mapping information based on the ID of the user.
마스터 프로그램(2601)은, 서비스 비밀 해쉬값의 설정 완료를 사용자에게 묻고(S2723), 사용자로부터 설정 완료 입력이 수신되면, 서비스 비밀 해쉬값의 설정을 종료한다(S2725). 반면, 사용자가 추가로 서비스 비밀 해쉬값을 설정하는 경우, 앞서 설명한, 단계 S2711부터의 과정을 반복 수행한다. The master program 2601 asks the user for the completion of the setting of the service secret hash value (S2723). When the setting completion input is received from the user, the master program 2601 ends the setting of the service secret hash value (S2725). On the other hand, when the user further sets the service secret hash value, the process from step S2711 described above is repeated.
이와 같이, 사용자는 복수의 서비스 비밀 해쉬값을 설정할 수 있다. 각 서비스 비밀 해쉬값 각각은, 비밀 제수를 달리하여 그 값이 서로 다르게 한다. 그리고 각 서비스 비밀 해쉬값의 닉네임을 달리하여 사용자는 각 서비스 비밀 해쉬값을 손쉽게 구분할 수 있다. In this way, the user can set a plurality of service secret hash values. Each service secret hash value has a different secret divisor so that the value is different. And by different nickname of each service secret hash value, user can easily distinguish each service secret hash value.
한편, 마스터 프로그램(2601)은, 각 서비스 비밀 해쉬값을 마스터 디바이스 인증키와 함께 암호화하여 사용자 단말(100)과 마스터 서버(600)에 저장할 수 있다. 이와 같이 암호화한 경우, 서비스 비밀 해쉬값이 사용될 때, 서비스 비밀 해쉬값과 마스터 디바이스 인증키를 함께 복호화한 후, 마스터 디바이스 인증키를 기 저장되어 있는 마스터 디바이스 인증키와 비교하여, 일치할 경우에만 서비스 비밀 해쉬값을 사용할 수 있도록 한다.Meanwhile, the master program 2601 may encrypt each service secret hash value together with the master device authentication key and store the same in the user terminal 100 and the master server 600. In this case, when the service secret hash value is used, the service secret hash value and the master device authentication key are decrypted together, and then the master device authentication key is compared with the prestored master device authentication key, and only matches. Enable the use of service secret hash values.
도 28은 본 발명의 일 실시예에 따른 특정 서비스 서버에 대한 인증용 정보를 설정하는 과정을 설명하는 흐름도이다. 예를 들어, 서비스 서버(400)에 회원 가입을 하면서 ID/패스워드를 통한 로그인 인증이 아닌, 본 발명에 따른 인증용 정보를 이용하여 로그인 인증을 하는 것을 설정하는 예이다. 이와 같이 본 발명에 따른 인증용 정보를 이용한 로그인 인증을 설정하면, 사용자는 서비스 서버(400)에 로그인을 할 때, ID/패스워드로 로그인을 하지 않고, 본 발명에 따른 인증용 정보로 로그인을 할 수 있다. 28 is a flowchart illustrating a process of setting authentication information for a specific service server according to an embodiment of the present invention. For example, it is an example of setting up login authentication using the authentication information according to the present invention, rather than login authentication through ID / password while registering as a service server 400. As described above, when the login authentication using the authentication information according to the present invention is set, the user does not log in with the ID / password when logging in to the service server 400, and logs in with the authentication information according to the present invention. Can be.
도 28에 도시되지 않았지만, 사용자는 서비스 프로그램(2603)을 실행하여 서비스 서버(400)에 회원 가입 절차를 진행할 수 있다. ID, 패스워드, 개인 정보를 입력하여 회원 가입을 할 수 있다.Although not shown in FIG. 28, the user may execute the service program 2603 to proceed with the registration process with the service server 400. You can join by entering ID, password, and personal information.
도 28을 참조하면, 서비스 프로그램(2603)은, 마스터 프로그램(2601)으로 서비스 비밀 해쉬값 리스트를 요청한다(S2801). 서비스 프로그램(2603)은, 마스터 프로그램(2601)과 통신하는 API 기반의 연동 모듈을 탑재하여 마스터 프로그램(2601)과 통신한다.Referring to FIG. 28, the service program 2603 requests the service secret hash value list from the master program 2601 (S2801). The service program 2603 is equipped with an API-based interworking module that communicates with the master program 2601 and communicates with the master program 2601.
마스터 프로그램(2601)은, 사용자가 설정해 놓은, 서비스 비밀 해쉬값의 리스트를 서비스 프로그램(2603)으로 응답한다(S2803). 마스터 프로그램(2601)은, 복수의 서비스 비밀 해쉬값의 닉네임들을 서비스 프로그램(2603)으로 전송할 수 있다.The master program 2601 responds to the service program 2603 with the list of service secret hash values set by the user (S2803). The master program 2601 may transmit nicknames of the plurality of service secret hash values to the service program 2603.
서비스 프로그램(2603)은, 마스터 프로그램(2601)으로부터 수신된 복수의 서비스 비밀 해쉬값의 리스트를 표시하고(S2805), 사용자로부터 복수의 서비스 비밀 해쉬값 중 하나를 선택받는다(S2807). 서비스 프로그램(2603)은, 그 선택된 서비스 비밀 해쉬값의 선택 정보, 예컨대 닉네임 그리고 서비스 프로그램(2603)의 고유 코드를 마스터 프로그램(2601)으로 전송한다(S2809).The service program 2603 displays a list of the plurality of service secret hash values received from the master program 2601 (S2805), and receives one of the plurality of service secret hash values from the user (S2807). The service program 2603 transmits selection information of the selected service secret hash value, for example, a nickname and a unique code of the service program 2603, to the master program 2601 (S2809).
마스터 프로그램(2601)은, 수신된 닉네임을 기초로 서비스 비밀 해쉬값 및 닉네임의 매핑 정보에서 서비스 비밀 해쉬값을 식별하고, 상기 수신된 고유 코드를 그 매핑 정보에 추가한다(S2811). 따라서, 매핑 정보에 존재하는 복수의 서비스 비밀 해쉬값 중 사용자가 선택한 서비스 비밀 해쉬값에는, 상기 고유 코드가 추가된다.The master program 2601 identifies the service secret hash value from the service secret hash value and the nickname mapping information based on the received nickname, and adds the received unique code to the mapping information (S2811). Therefore, the unique code is added to the service secret hash value selected by the user among the plurality of service secret hash values present in the mapping information.
마스터 프로그램(2601)은, 상기 수신된 닉네임을 기초로 확인한 서비스 비밀 해쉬값을, 서비스 프로그램(2603)으로 전송한다(S2813). 서비스 프로그램(2603)은, 그 수신된 서비스 비밀 해쉬값을 이용하여 인증용 정보를 생성한다(S2815). 여기서 인증용 정보는, 서비스 디바이스 인증키, 서비스 프로그램 인증키, 서비스 사용자 인증키를 포함한다. 서비스 디바이스 인증키는, 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소 또는 UUID(Universally Unique Identifier) 등을 해쉬 함수에 시드 값으로 입력하여 생성한 값이다. 서비스 프로그램 인증키는, 서비스 디바이스 인증키와, 타임 스탬프, 그리고 서비스 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성한 값이다. 서비스 사용자 인증키는, 서비스 비밀 해쉬값과, 입력 장치를 통해 사용자로부터 입력된 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 생성한 값이다. The master program 2601 transmits the service secret hash value confirmed based on the received nickname to the service program 2603 (S2813). The service program 2603 generates authentication information using the received service secret hash value (S2815). Here, the authentication information includes a service device authentication key, a service program authentication key, and a service user authentication key. The service device authentication key is a value generated by inputting unique information of the user terminal 100, for example, a MAC address or universally unique identifier (UUID) of a network interface card (NIC), as a seed value to a hash function. The service program authentication key is a value generated by inputting the service device authentication key, time stamp, and service secret hash value into the hash function as a seed value. The service user authentication key is a value generated by inputting the service secret hash value and the personal password input from the user through the input device as a seed value to the hash function.
서비스 프로그램(2603)은, 상기 생성한 인증용 정보를 서비스 서버(400)로 전송한다(S2817). 서비스 서버(400)는 사용자의 ID를 기준으로 인증용 정보를 저장한다(S2819). 그리고, 서비스 프로그램(2603)은, 서비스 사용자 인증키를 제외한, 서비스 프로그램 인증키 및 서비스 디바이스 인증키를 사용자 단말(100)에도 저장한다. The service program 2603 transmits the generated authentication information to the service server 400 (S2817). The service server 400 stores authentication information based on the ID of the user (S2819). The service program 2603 also stores the service program authentication key and the service device authentication key in the user terminal 100 except for the service user authentication key.
도 29는, 도 28의 설정 과정 후 서비스 서버(400)에 로그인하는 과정을 설명하는 흐름도이다.FIG. 29 is a flowchart illustrating a process of logging in to the service server 400 after the setting process of FIG. 28.
도 29를 참조하면, 사용자는 사용자 단말(100)에서 서비스 프로그램(2603)을 실행한 후, 서비스 서버(400)로 본 발명에 따른 로그인 요청을 한다(S2901). 이때, 사용자는 ID를 입력할 수 있다. 따라서, 서비스 서버(400)는 개인 비밀번호 입력창의 데이터를 서비스 프로그램(2603)으로 전송하고, 서비스 프로그램(2603)은 개인 비밀번호 입력창을 표시한다(S2903).Referring to FIG. 29, after the user executes the service program 2603 on the user terminal 100, the user makes a login request according to the present invention to the service server 400 (S2901). In this case, the user may input an ID. Therefore, the service server 400 transmits the data of the personal password input window to the service program 2603, and the service program 2603 displays the personal password input window (S2903).
서비스 프로그램(2603)은, 사용자 단말(100)의 입력 장치를 통해 개인 비밀번호를 입력받는다(S2905). The service program 2603 receives a personal password through an input device of the user terminal 100 (S2905).
서비스 프로그램(2603)은, 내부에 저장된 서비스 디바이스 인증키 및 서비스 프로그램 인증키를 검색한다(S2907). 이때, 서비스 프로그램(2603)은, 서비스 디바이스 인증키를 검증할 수 있다. 즉, 서비스 프로그램(2603)은, 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소 또는 UUID(Universally Unique Identifier) 등을 해쉬 함수에 시드 값으로 입력하여 서비스 디바이스 인증키를 생성한 후, 내부에 기 저장되어 있는 서비스 디바이스 인증키와 비교하여, 일치하지 않을 경우 이후 과정을 수행하지 않고 중단한다. The service program 2603 retrieves the service device authentication key and the service program authentication key stored therein (S2907). At this time, the service program 2603 can verify the service device authentication key. That is, the service program 2603 inputs the unique information of the user terminal 100, for example, the MAC address or universally unique identifier (UUID) of the network interface card (NIC) as a seed value to the hash function to authenticate the service device. After the key is generated, it is compared with the service device authentication key pre-stored therein.
서비스 프로그램(2603)은, 상기 검색된 서비스 디바이스 인증키 및 서비스 프로그램 인증키를 포함하는 사전 인증 요청을 서비스 서버(400)로 전송한다(S2909). 서비스 서버(400)는 상기 사전 인증 요청에 포함된 서비스 디바이스 인증키 및 서비스 프로그램 인증키와, 기 등록되어 있는 사용자의 서비스 디바이스 인증키 및 서비스 프로그램 인증키를 비교하여 일치하는 경우 사전 인증을 성공 처리한다(S2911). 이때 서비스 서버(400)는, 사용자의 ID를 이용하여 기 등록되어 있는 사용자의 서비스 디바이스 인증키 및 서비스 프로그램 인증키를 검색할 수 있다.The service program 2603 transmits a pre-authentication request including the retrieved service device authentication key and service program authentication key to the service server 400 (S2909). The service server 400 compares the service device authentication key and the service program authentication key included in the pre-authentication request with the service device authentication key and the service program authentication key of a pre-registered user. (S2911). In this case, the service server 400 may search for a service device authentication key and a service program authentication key of a user who are pre-registered using the user ID.
서비스 서버(400)는 일회용 비밀 암호를 생성한다(S2913). 일회용 비밀 암호는 일정한 자릿수의 숫자로 이루어진다. 서비스 서버(400)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S2915). The service server 400 generates a one-time secret password (S2913). A one-time secret password consists of a number of digits. The service server 400 transmits the one-time secret password to a destination designated by a user. In the present embodiment, it transmits to the user terminal 100 (S2915).
서비스 프로그램(2603)은, 서비스 프로그램의 고유 코드를 마스터 프로그램(2601)으로 전송하여 서비스 비밀 해쉬값을 요청한다(S2917). 마스터 프로그램(2601)은, 상기 수신된 고유 코드를 이용하여 내부에 저장 중인 매핑 정보에서 상기 고유 코드에 대응하는 서비스 비밀 해쉬값을 검색한다(S2919). 그리고 마스터 프로그램(2601)은 검색된 서비스 비밀 해쉬값을 서비스 프로그램(2603)으로 전송한다(S2921).The service program 2603 sends a unique code of the service program to the master program 2601 and requests a service secret hash value (S2917). The master program 2601 retrieves a service secret hash value corresponding to the unique code from the mapping information stored therein using the received unique code (S2919). The master program 2601 transmits the retrieved service secret hash value to the service program 2603 (S2921).
서비스 프로그램(2603)은, 그 수신된 서비스 비밀 해쉬값과 상기 단계 S2905에서 입력된 개인 비밀번호를 이용하여 서비스 사용자 인증키를 생성한다(S2923). 즉 서비스 프로그램(2603)은, 상기 수신된 서비스 비밀 해쉬값과, 상기 단계 S2905에서 입력된 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 서비스 사용자 인증키를 생성한다.The service program 2603 generates a service user authentication key using the received service secret hash value and the personal password input in step S2905 (S2923). That is, the service program 2603 generates the service user authentication key by inputting the received service secret hash value and the personal password input in the step S2905 into the hash function as a seed value.
서비스 프로그램(2603)은, 상기 단계 S2915에서 수신된 일회용 비밀 암호를 사용자로부터 입력받고, 그 일회용 비밀 암호와 상기 단계 S2923에서 생성된 서비스 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성한다(S2925). 그리고 서비스 프로그램(2603)은, 생성된 일회용 인증키를 서비스 서버(400)로 전송한다(S2927). The service program 2603 receives a one-time secret password received in the step S2915 from the user, inputs the one-time secret password and the service user authentication key generated in the step S2923 as a seed value in a hash function to input the one-time authentication key. It generates (S2925). The service program 2603 transmits the generated one-time authentication key to the service server 400 (S2927).
서비스 서버(400)는 사용자 단말(100)로부터 수신된 일회용 인증키를 검증한다(S2929). 즉, 서비스 서버(400)는 기 저장되어 있는 사용자의 서비스 사용자 인증키와, 상기 단계 S2913에서 생성한 일회용 비밀 암호를 해쉬 함수에 입력하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S2927에서 수신된 일회용 인증키를 비교한다. 비교 결과, 일치하는 경우 인증에 성공한 것으로 판단한다.The service server 400 verifies the one-time authentication key received from the user terminal 100 (S2929). That is, the service server 400 generates a one-time authentication key by inputting the service user authentication key of the user, and the one-time secret password generated in step S2913 into the hash function, and the generated one-time authentication key and the The one-time authentication key received in step S2927 is compared. As a result of the comparison, it is determined that the authentication is successful.
서비스 서버(400)는, 인증에 성공한 경우, 인증 성공 응답을 서비스 프로그램(2603)으로 전송한다(S2931). If the service server 400 succeeds in authenticating, the service server 400 transmits an authentication success response to the service program 2603 (S2931).
이상의 도 29를 참조하여 설명한 바와 같이, 사용자는, 서비스 서버(400)에 로그인하기 위해 비밀 제수를 선택할 필요가 없고, 개인 비밀번호와 서비스 서버(400)로부터 발급된 일회용 비밀 암호를 입력하기만 하면, 서비스 서버(400)에 로그인할 수 있다. As described above with reference to FIG. 29, the user does not need to select a secret divisor to log in to the service server 400, but merely inputs a personal password and a one-time secret password issued from the service server 400. You can log in to the service server 400.
도 29를 참조한 실시예에서는, 일회용 비밀 암호를 이용하여 사용자를 인증하는 것을 설명한다. 그러나 일회용 비밀 암호를 이용하지 않아도 된다. 즉, 단계 S2905에서 사용자로부터 개인 비밀번호가 입력되면, 서비스 프로그램(2603)은, 단계 S2917 내지 S2921을 수행하여 서비스 비밀 해쉬값을 마스터 프로그램(2601)으로부터 수신하고, 이어서 서비스 디바이스 인증키, 서비스 프로그램 인증키 및 서비스 사용자 인증키를 서비스 서버(400)로 전송한다. 서비스 서버(400)는, 기 저장되어 있는 사용자의 서비스 디바이스 인증키, 서비스 프로그램 인증키 및 서비스 사용자 인증키와, 서비스 프로그램(2603)으로부터 수신된 서비스 디바이스 인증키, 서비스 프로그램 인증키 및 서비스 사용자 인증키를 비교하여, 모두 일치하는 경우 인증 성공으로 판단할 수 있다.In the embodiment with reference to FIG. 29, it will be described that the user is authenticated using a one-time secret password. But you don't have to use a one-time secret password. That is, when a personal password is input from the user in step S2905, the service program 2603 performs steps S2917 to S2921 to receive the service secret hash value from the master program 2601, and then the service device authentication key and service program authentication. The key and the service user authentication key are transmitted to the service server 400. The service server 400 may store a service device authentication key, a service program authentication key, and a service user authentication key of a user, and a service device authentication key, a service program authentication key, and a service user authentication received from the service program 2603. By comparing the keys, if they all match, it can be determined that authentication is successful.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, the features described in the individual embodiments herein can be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment herein can be implemented individually in various embodiments or in combination as appropriate.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations are described in a particular order in the drawings, they should not be understood as being performed in a particular order as shown, or in a sequence of successive orders, or all described actions being performed to obtain a desired result. . Multitasking and parallel processing may be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be packaged in a single software product or multiple software products.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.
Claims (62)
- 인증 서버와 통신하여 인증을 수행하는 장치에 있어서,An apparatus for performing authentication by communicating with an authentication server,장치의 고유 정보를 수집하고 그 고유 정보를 이용하여 디바이스 인증키를 생성하는 디바이스 인증키 생성 모듈;A device authentication key generation module for collecting unique information of the device and generating a device authentication key using the unique information;사용자로부터 입력된 비밀 제수에 해쉬 함수를 적용하여 비밀 해쉬값을 생성하고, 타임스탬프를 생성하며, 상기 비밀 해쉬값과 상기 타임스탬프 및 상기 디바이스 인증키를 이용하여 프로그램 인증키를 생성하는 프로그램 인증키 생성 모듈;A program authentication key for generating a secret hash value by applying a hash function to a secret divisor input from a user, generating a time stamp, and generating a program authentication key using the secret hash value, the time stamp, and the device authentication key. Generation module;사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 이용하여 사용자 인증키를 생성하는 사용자 인증키 생성 모듈; 및A user authentication key generation module for generating a user authentication key using a personal password input from a user and the secret hash value; And사용자로부터 입력된 사용자 식별정보, 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키를 포함하는 인증용 정보를 상기 인증 서버로 전송하는 관리 모듈;을 포함하는 장치.And a management module configured to transmit authentication information including user identification information input from a user, the device authentication key, the program authentication key, and the user authentication key to the authentication server.
- 제 1 항에 있어서,The method of claim 1,상기 디바이스 인증키 생성 모듈은,The device authentication key generation module,실행시마다 디바이스 인증키를 생성하여 기 저장된 디바이스 인증키와 비교하고, 일치하지 않는 경우 상기 모듈들을 삭제하는 것을 특징으로 하는 장치.A device authentication key is generated every time it is executed, compared with a previously stored device authentication key, and if it does not match, the module is deleted.
- 제 1 항에 있어서,The method of claim 1,상기 관리 모듈은,The management module,상기 인증 서버에 대한 개인 비밀번호의 변경에 관한 입력 수신시, 상기 사용자 인증키 생성 모듈을 제어하여 새로운 사용자 인증키를 생성하고, 그 새로운 사용자 인증키, 이전 사용자 인증키, 상기 디바이스 인증키, 프로그램 인증키 및 상기 사용자 식별정보를 포함하는 개인 비밀번호 변경 요청을 상기 인증 서버로 전송하는 것을 특징으로 하는 장치.Upon receiving an input relating to the change of the personal password for the authentication server, the user authentication key generation module is controlled to generate a new user authentication key, the new user authentication key, the previous user authentication key, the device authentication key, and program authentication. And a personal password change request including a key and the user identification information to the authentication server.
- 제 1 항에 있어서,The method of claim 1,상기 관리 모듈은,The management module,상기 인증 서버에 대한 비밀 제수의 변경에 관한 입력 수신시, 상기 프로그램 인증키 생성 모듈 및 상기 사용자 인증키 생성 모듈을 제어하여, 새로운 프로그램 인증키 및 새로운 사용자 인증키를 생성하고, 새로운 프로그램 인증키, 새로운 사용자 인증키, 이전 프로그램 인증키, 이전 사용자 인증키, 상기 디바이스 인증키 및 상기 사용자 식별정보를 포함하는 비밀 제수 변경 요청을 상기 인증 서버로 전송하는 것을 특징으로 하는 장치.Upon receiving an input regarding the change of the secret divisor to the authentication server, the program authentication key generation module and the user authentication key generation module are controlled to generate a new program authentication key and a new user authentication key, and a new program authentication key, And transmit a secret divisor change request including a new user authentication key, a previous program authentication key, a previous user authentication key, the device authentication key, and the user identification information to the authentication server.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4,상기 관리 모듈은, The management module,복수의 인증 서버 각각에 대해 프로그램 인증키와 사용자 인증키 중 적어도 하나를 다르게 생성하도록, 상기 프로그램 인증키 생성 모듈 및 상기 사용자 인증키 생성 모듈을 제어하고, 상기 복수의 인증 서버 각각에 서로 다른 인증용 정보를 전송하는 것을 특징으로 하는 장치.The program authentication key generation module and the user authentication key generation module are controlled to differently generate at least one of a program authentication key and a user authentication key for each of a plurality of authentication servers, and for different authentication to each of the plurality of authentication servers. Device for transmitting information.
- 사용자 장치와 통신하여 인증을 수행하는 장치에 있어서,A device for performing authentication by communicating with a user device,상기 사용자 장치로부터 사용자 식별정보를 포함하는 가입 정보를 수신하여 저장하는 가입 정보 관리 모듈; A subscription information management module for receiving and storing subscription information including user identification information from the user device;상기 사용자 장치로부터 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 포함하는 인증용 정보를 수신하여 저장하는 인증 정보 관리 모듈; 및An authentication information management module for receiving and storing authentication information including user identification information, device authentication key, program authentication key, and user authentication key from the user device; And승인 요청자로부터 승인 요청 수신시, 상기 사용자 장치로 알림 메시지를 전송하고, 이에 대한 응답으로 상기 사용자 장치로부터 사용자 식별정보, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 수신하여 상기 저장되어 있는 인증용 정보와 비교하고, 모두 일치하는 경우 상기 승인 요청자에게 승인 응답을 전송하는 인증 처리 모듈;을 포함하는 장치.When receiving the approval request from the approval requester, a notification message is transmitted to the user device, and in response to the user identification information, device authentication key, program authentication key and user authentication key received from the user device for the stored authentication An authentication processing module for comparing the information and sending an approval response to the approval requester if all match.
- 제 6 항에 있어서,The method of claim 6,상기 인증 정보 관리 모듈은,The authentication information management module,상기 사용자 장치로부터 디바이스 인증키, 프로그램 인증키, 사용자 인증키 및 사용자 식별정보를 포함하는 디바이스 변경 요청을 수신하고,Receiving a device change request including a device authentication key, a program authentication key, a user authentication key, and user identification information from the user device,상기 디바이스 변경 요청에 포함된 상기 사용자 식별정보를 이용하여 기 저장되어 있는 사용자 인증키를 검색한 후 상기 디바이스 변경 요청에 포함된 사용자 인증키와 비교하고, 일치할 경우 기 저장되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키로 수정하는 것을 특징으로 하는 장치.Search for a user authentication key previously stored using the user identification information included in the device change request, compare the user authentication key with the user authentication key included in the device change request; And modifying a program authentication key into a device authentication key and a program authentication key included in the device change request.
- 제 6 항에 있어서,The method of claim 6,상기 인증 정보 관리 모듈은, The authentication information management module,상기 사용자 장치로부터 새로운 사용자 인증키, 이전 사용자 인증키, 디바이스 인증키, 프로그램 인증키 및 사용자 식별정보를 포함하는 개인 비밀번호 변경 요청을 수신하고,Receive a personal password change request including a new user authentication key, a previous user authentication key, a device authentication key, a program authentication key, and user identification information from the user device,상기 개인 비밀번호 변경 요청에 포함된 사용자 식별정보를 이용하여 기 저장되어 있는 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 검색한 후 상기 개인 비밀번호 변경 요청에 포함된 이전 사용자 인증키, 디바이스 인증키, 프로그램 인증키와 비교하고, 모두 일치하는 경우, 기 저장되어 있는 사용자 인증키를 상기 개인 비밀번호 변경 요청에 포함된 새로운 사용자 인증키로 수정하는 것을 특징으로 하는 장치.After the user authentication key, the device authentication key, and the program authentication key are previously stored using the user identification information included in the personal password change request, the previous user authentication key, device authentication key, Compared with the program authentication key, and if all match, the previously stored user authentication key is modified with a new user authentication key included in the personal password change request.
- 제 6 항에 있어서,The method of claim 6,상기 인증 정보 관리 모듈은, The authentication information management module,상기 사용자 장치로부터 새로운 프로그램 인증키, 새로운 사용자 인증키, 이전 프로그램 인증키, 이전 사용자 인증키, 디바이스 인증키 및 사용자 식별정보를 포함하는 비밀 제수 변경 요청을 수신하고,Receive a secret divisor change request including a new program authentication key, a new user authentication key, a previous program authentication key, a previous user authentication key, a device authentication key, and user identification information from the user device,상기 비밀 제수 변경 요청에 포함된 사용자 식별정보를 이용하여 기 저장되어 있는 사용자 인증키, 프로그램 인증키 및 디바이스 인증키를 검색한 후 상기 비밀 제수 변경 요청에 포함된 이전 사용자 인증키, 이전 프로그램 인증키, 디바이스 인증키를 비교하고, 모두 일치하는 경우, 기 저장되어 있는 사용자 인증키 및 프로그램 인증키를 상기 비밀 제수 변경 요청에 포함된 새로운 사용자 인증키 및 새로운 프로그램 인증키로 수정하는 것을 특징으로 하는 장치.After retrieving the user authentication key, program authentication key and device authentication key previously stored using the user identification information included in the secret divisor change request, the previous user authentication key and the previous program authentication key included in the secret divisor change request And comparing the device authentication keys and, if all of them match, modifying previously stored user authentication keys and program authentication keys into new user authentication keys and new program authentication keys included in the secret divisor change request.
- 제 6 항 내지 제 9 항 중 어느 한 항에 있어서,The method according to any one of claims 6 to 9,상기 디바이스 인증키는, The device authentication key,상기 사용자 디바이스의 고유 정보 이용하여 생성된 것을 특징으로 하는 장치.And generate using the unique information of the user device.
- 제 10 항에 있어서,The method of claim 10,상기 프로그램 인증키는,The program authentication key,사용자로부터 입력된 비밀 제수에 해쉬 함수를 적용하여 생성된 비밀 해쉬값과, 타임스탬프와, 상기 디바이스 인증키를 이용하여 생성된 것을 특징으로 하는 장치.And a secret hash value generated by applying a hash function to a secret divisor input from a user, a timestamp, and the device authentication key.
- 제 11 항에 있어서,The method of claim 11,상기 사용자 인증키는,The user authentication key,사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 이용하여 생성된 것을 특징으로 하는 장치.And a personal password input from a user and the secret hash value.
- 서버와 통신하여 사용자를 인증하는 장치에 있어서,A device for authenticating a user by communicating with a server,사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고 상기 서버에 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈;A secret hash value generation module for generating and storing a secret hash value by inputting a secret divisor input from a user as a seed value to a hash function, and transmitting and registering the secret hash value to the server;일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및A one-time secret password input module for receiving a one-time secret password; And상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고 그 사용자 인증키를 상기 서버로 전송하며, 그 전송한 사용자 인증키와 상기 서버에서 생성된 사용자 인증키의 비교 결과를 상기 서버로부터 수신하는 사용자 인증키 생성 모듈;을 포함하고Inputting the one-time secret password and the secret hash value received from the one-time secret password input module to the hash function as a seed value to generate a user authentication key, and transmitting the user authentication key to the server; And a user authentication key generation module configured to receive a comparison result of the user authentication key generated by the server from the server.상기 서버에서 생성된 사용자 인증키는 상기 서버에 등록된 비밀 해쉬값과 해당 서버에서 생성한 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 값인, The user authentication key generated in the server is a value generated by inputting a secret hash value registered in the server and a one-time secret password generated in the server as a seed value in a hash function.장치.Device.
- 제 13 항에 있어서,The method of claim 13,상기 일회용 비밀 암호는, 상기 서버에서 생성되어 상기 사용자가 지정한 수신처에 수신되고,The one-time secret password is generated in the server and received at the destination designated by the user,상기 일회용 비밀 암호 입력 모듈은, 상기 수신처에 수신된 일회용 비밀 암호를 상기 사용자로부터 입력받는 것을 특징으로 하는 장치.The one-time secret password input module, characterized in that for receiving a one-time secret password received at the destination from the user.
- 제 14 항에 있어서,The method of claim 14,상기 사용자가 지정한 수신처는, 상기 장치 또는 상기 사용자의 웨어러블 디바이스 중 어느 하나인 것을 특징으로 하는 장치.And the destination designated by the user is either the apparatus or the wearable device of the user.
- 제 14 항에 있어서,The method of claim 14,상기 일회용 비밀 암호는, 상기 서버에서 타임스탬프와 해당 서버에 등록된 상기 비밀 해쉬값을 난수 함수에 시드 값으로 입력하여 생성한 값인 것을 특징으로 하는 장치.And the one-time secret password is a value generated by inputting a time stamp and the secret hash value registered in the server as a seed value in a random number function.
- 제 13 항에 있어서,The method of claim 13,상기 일회용 비밀 암호는, 휴대용 일회용 비밀 암호 발생기에서 생성되고,The one-time secret password is generated in a portable one-time secret password generator,상기 일회용 비밀 암호 입력 모듈은, 상기 휴대용 일회용 비밀 암호 발생기에서 생성된 상기 일회용 비밀 암호를 상기 사용자로부터 입력받는 것을 특징으로 하는 장치.The one-time secret password input module, characterized in that for receiving the one-time secret password generated by the portable one-time secret password generator from the user.
- 제 17 항에 있어서,The method of claim 17,상기 휴대용 일회용 비밀 암호 발생기는, 상기 비밀 해쉬값 생성 모듈에서 생성된 비밀 해쉬값과 동일한 비밀 해쉬값을 저장하고,The portable disposable secret password generator may store a secret hash value that is the same as the secret hash value generated by the secret hash value generation module,상기 일회용 비밀 암호는,The disposable secret password,상기 휴대용 일회용 비밀 암호 발생기에서 비밀 해쉬값 및 타임스탬프를 난수 함수에 시드 값으로 입력하여 생성한 값인 것을 특징으로 하는 장치.And a value generated by inputting a secret hash value and a time stamp into the random number function as a seed value in the portable disposable secret password generator.
- 제 13 항에 있어서,The method of claim 13,상기 비밀 해쉬값 생성 모듈에서 생성된 비밀 해쉬값은, NFC 카드에 저장되고,The secret hash value generated by the secret hash value generating module is stored in the NFC card,상기 사용자 인증키 생성 모듈은, 상기 NFC 카드로부터 해당 NFC 카드에 저장된 비밀 해쉬값을 리딩하여 상기 사용자 인증키를 생성하는 것을 특징으로 하는 장치.The user authentication key generation module, characterized in that for generating the user authentication key by reading the secret hash value stored in the NFC card from the NFC card.
- 제 13 항에 있어서,The method of claim 13,상기 장치의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성한 디바이스 인증키를 저장하고 그 디바이스 인증키를 상기 서버에 전송하여 등록하는 디바이스 인증키 생성 모듈;를 더 포함하는 것을 특징으로 하는 장치.And a device authentication key generation module for storing a device authentication key generated by inputting unique information of the device as a seed value and transmitting the device authentication key to the server and registering the device authentication key.
- 제 20 항에 있어서,The method of claim 20,상기 디바이스 인증키 생성 모듈은,The device authentication key generation module,인증시마다, 기 저장되어 있는 상기 디바이스 인증키를 상기 서버로 전송한 후 상기 서버로부터 해당 서버에 기 저장되어 있는 디바이스 인증키와 비교 결과를 수신하는 것을 특징으로 하는 장치.Each time the authentication is performed, the device authentication key stored in advance is transmitted to the server, and the device receives the comparison result with the device authentication key previously stored in the server.
- 제 20 항에 있어서,The method of claim 20,타임스탬프와, 상기 디바이스 인증키 그리고 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성한 프로그램 인증키를 저장하고 그 프로그램 인증키를 상기 서버에 전송하여 등록하는 프로그램 인증키 생성 모듈;을 더 포함하는 것을 특징으로 하는 장치.A program authentication key generation module for storing a program authentication key generated by inputting a time stamp, the device authentication key, and the secret hash value into a hash function as a seed value, and transmitting the program authentication key to the server for registration; Apparatus comprising a.
- 제 22 항에 있어서,The method of claim 22,상기 프로그램 인증키 생성 모듈은,The program authentication key generation module,인증시마다, 기 저장되어 있는 상기 프로그램 인증키를 상기 서버로 전송한 후 상기 서버로부터 해당 서버에 기 저장되어 있는 프로그램 인증키와의 비교 결과를 수신하는 것을 특징으로 하는 장치.Each time authentication, the program authentication key stored in advance is transmitted to the server, and then the comparison result with the program authentication key previously stored in the server is received from the server.
- 사용자 장치와 통신하여 사용자를 인증하는 장치에 있어서,A device for authenticating a user by communicating with a user device, the device comprising:사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 생성된 비밀 해쉬값을, 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈;A secret hash value registration module configured to receive and register a secret hash value generated by inputting a secret divisor input from a user into a hash function as a seed value from the user device;일회용 비밀 암호를 생성하는 일회용 비밀 암호 생성 모듈; 및A one time secret password generation module for generating a one time secret password; And상기 사용자 장치로부터 사용자 인증키를 수신하면, 그 수신된 사용자 인증키와, 상기 등록된 비밀 해쉬값 및 상기 생성된 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 사용자 인증키를 비교하여, 상기 사용자를 인증하는 인증 처리 모듈;을 포함하는 장치.Upon receiving a user authentication key from the user device, the received user authentication key is compared with the user authentication key generated by inputting the registered secret hash value and the generated one-time secret password as a seed value to a hash function. An authentication processing module for authenticating the user.
- 제 24 항에 있어서,The method of claim 24,상기 일회용 비밀 암호 생성 모듈은, 생성한 일회용 비밀 암호를 상기 사용자가 지정한 수신처에 전송하고,The one-time secret password generation module transmits the generated one-time secret password to a destination designated by the user,상기 인증 처리 모듈은, 상기 수신처에 전송된 일회용 비밀 암호와 상기 사용자 장치에 저장된 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를, 상기 사용자 장치로부터 수신하는 것을 특징으로 하는 장치.And the authentication processing module receives a user authentication key generated by inputting a one-time secret password transmitted to the destination and a secret hash value stored in the user device as a seed value to a hash function, from the user device. .
- 제 25 항에 있어서,The method of claim 25,상기 일회용 비밀 암호 생성 모듈은, 상기 등록된 비밀 해쉬값 및 타임 스탬프를 난수 함수에 시드 값으로 입력하여 상기 일회용 비밀 암호를 생성하는 것을 특징으로 하는 장치.The one-time secret password generation module generates the one-time secret password by inputting the registered secret hash value and time stamp as a seed value to a random number function.
- 제 24 항에 있어서,The method of claim 24,상기 인증 처리 모듈은, 휴대용 일회용 비밀 암호 발생기에서 생성된 일회용 비밀 암호와 상기 사용자 장치에 저장된 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를, 상기 사용자 장치로부터 수신하는 것을 특징으로 하는 장치.The authentication processing module may receive from the user device a user authentication key generated by inputting a one-time secret password generated by a portable one-time secret password generator and a secret hash value stored in the user device as a seed value in a hash function. Device.
- 제 27 항에 있어서,The method of claim 27,상기 휴대용 일회용 비밀 암호 발생기는, 상기 등록된 비밀 해쉬값과 동일한 비밀 해쉬값을 저장하고,The portable disposable secret password generator stores a secret hash value equal to the registered secret hash value,상기 휴대용 일회용 비밀 암호 발생기에서 생성된 일회용 비밀 암호는, 해당 휴대용 일회용 비밀 암호 발생기에 저장된 비밀 해쉬값 및 타임 스탬프를 난수 함수에 시드 값으로 입력하여 생성된 것이며,The one-time secret password generated by the portable one-time secret password generator is generated by inputting a secret hash value and a time stamp stored in the portable one-time secret password generator as a seed value to the random number function,상기 일회용 비밀 암호 생성 모듈은, 상기 등록된 비밀 해쉬값 및 타임 스탬프를 난수 함수에 시드 값으로 입력하여 일회용 비밀 암호를 생성하는 것을 특징으로 하는 장치.The one-time secret password generation module generates a one-time secret password by inputting the registered secret hash value and time stamp as a seed value to a random number function.
- 제 24 항에 있어서,The method of claim 24,상기 인증 처리 모듈은,The authentication processing module,상기 사용자 장치의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성된 디바이스 인증키를 상기 사용자 장치로부터 수신하여 등록하고, 인증시마다 상기 사용자 장치로부터 수신되는 디바이스 인증키와 상기 등록된 디바이스 인증키를 비교하는 것을 특징으로 하는 장치.Receive and register a device authentication key generated by inputting unique information of the user device into a hash function as a seed value from the user device, and compare the device authentication key received from the user device with the registered device authentication key every time authentication is performed. Device characterized in that.
- 제 29 항에 있어서,The method of claim 29,상기 인증 처리 모듈은,The authentication processing module,타임스탬프와, 상기 디바이스 인증키 그리고 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 프로그램 인증키를 상기 사용자 장치로부터 수신하여 등록하고, 인증시마다 상기 사용자 장치로부터 수신되는 프로그램 인증키와 상기 등록된 프로그램 인증키를 비교하는 것을 특징으로 하는 장치.A program authentication key generated by inputting a time stamp, the device authentication key, and the secret hash value into a hash function as a seed value from the user device, and registering the program authentication key received from the user device every time; And compare the registered program authentication key.
- 인증 서버와 통신하는 장치에 있어서,A device for communicating with an authentication server,하나 이상의 프로세서;One or more processors;메모리; 및Memory; And상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, A program stored in the memory and configured to be executed by the one or more processors,상기 프로그램은,The program,사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고, 상기 인증 서버로 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈;A secret hash value generation module for generating and storing a secret hash value by inputting a secret divisor input from a user into a hash function as a seed value, and transmitting and registering the secret hash value to the authentication server;사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고, 상기 인증 서버로 상기 사용자 인증키를 전송하여 등록하는 사용자 인증키 생성 모듈;A user authentication key generation module for generating a user authentication key by inputting a personal password inputted from a user and the secret hash value into a hash function as a seed value, and transmitting and registering the user authentication key to the authentication server;상기 인증 서버에서 발급한 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및A one-time secret password input module for receiving a one-time secret password issued by the authentication server; And상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 그 일회용 인증키를 상기 인증 서버로 전송하며, 그 전송한 일회용 인증키와 상기 인증 서버에서 생성한 일회용 인증키의 비교 결과를 상기 인증 서버로부터 수신하는 일회용 인증키 생성 모듈;을 포함하는 장치.The one-time secret password input from the one-time secret password input module and the user authentication key is input to the hash function as a seed value to generate a one-time authentication key and transmit the one-time authentication key to the authentication server, the one-time authentication key transmitted And a one-time authentication key generation module for receiving a comparison result of the one-time authentication key generated by the authentication server from the authentication server.
- 제 31 항에 있어서,The method of claim 31, wherein장치의 고유 정보를 수집한 후 그 고유 정보를 해쉬 함수에 시드 값으로 입력하여 디바이스 인증키를 생성하여 저장하고, 그 디바이스 인증키를 상기 인증 서버로 전송하여 등록하는 디바이스 인증키 생성 모듈;을 더 포함하는 장치.A device authentication key generation module which collects the unique information of the device and inputs the unique information as a seed value to the hash function to generate and store a device authentication key, and transmits and registers the device authentication key to the authentication server. Containing device.
- 제 32 항에 있어서,33. The method of claim 32,상기 디바이스 인증키 생성 모듈은,The device authentication key generation module,상기 프로그램의 실행시마다 디바이스 인증키를 생성하여 기 저장된 디바이스 인증키와 비교하고, 일치하지 않는 경우 상기 프로그램을 삭제하는 것을 특징으로 하는 장치.Each time the program is executed, a device authentication key is generated and compared with a previously stored device authentication key, and if it does not match, the device is deleted.
- 제 33 항에 있어서,The method of claim 33, wherein타임스탬프를 생성한 후 그 타임스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 프로그램 인증키를 생성하여 저장하고, 그 프로그램 인증키를 상기 인증 서버로 전송하여 등록하는 프로그램 인증키 생성 모듈;을 더 포함하는 장치.After generating a timestamp, the timestamp, the secret hash value, and the device authentication key are input to the hash function as a seed value to generate and store a program authentication key, and transmit the program authentication key to the authentication server for registration. And a program authentication key generation module.
- 제 34 항에 있어서,The method of claim 34, wherein상기 인증 서버로부터 본인 인증 알림 메시지를 수신함에 따라 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 인증 서버로 전송하는 사전 인증 요청 모듈;을 더 포함하고,And a pre-authentication request module for transmitting a pre-authentication request including the device authentication key and the program authentication key to the authentication server in response to receiving the user authentication notification message from the authentication server.상기 일회용 비밀 암호는,The disposable secret password,상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키의 비교 결과, 모두 일치할 경우 상기 인증 서버에서 발급되는 것을 특징으로 하는 장치.A device authentication key and a program authentication key included in the pre-authentication request and a device authentication key and a program authentication key pre-registered in the authentication server as a result of the comparison, if both match, characterized in that issued by the authentication server .
- 제 35 항에 있어서,36. The method of claim 35 wherein상기 사전 인증 요청 모듈은,The pre-authentication request module,상기 인증 서버가 서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 인증 서버로부터 상기 본인 인증 알림 메시지를 수신하는 것을 특징으로 하는 장치.The authentication server receives the user authentication notification message from the authentication server as the authentication server receives the identification information of the user from the service server.
- 제 34 항에 있어서,The method of claim 34, wherein상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고,And a change module configured to transmit a secret divisor change request including the device authentication key and the program authentication key to the authentication server.상기 변경 모듈은,The change module,상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키가 생성되도록 하는 것을 특징으로 하는 장치.The device authentication key and the program authentication key included in the secret divisor change request match the device authentication key and the program authentication key previously registered in the authentication server, and the one-time authentication key generation module generates a matching response of the one-time authentication key. When receiving, the apparatus characterized in that the new secret hash value, a new user authentication key and a new program authentication key is generated by controlling the secret hash value generation module, the user authentication key generation module and the program authentication key generation module. .
- 제 34 항에 있어서,The method of claim 34, wherein상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고,And a change module configured to transmit a personal password change request including the device authentication key and the program authentication key to the authentication server.상기 변경 모듈은,The change module,상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 사용자 인증키 생성 모듈을 제어하여 새로운 사용자 인증키가 생성되도록 하는 것을 특징으로 하는 장치.The device authentication key and the program authentication key included in the personal password change request match with the device authentication key and the program authentication key previously registered in the authentication server, and the one-time authentication key generation module matches the one-time authentication key. When receiving, the apparatus characterized in that the new user authentication key is generated by controlling the user authentication key generation module.
- 제 34 항에 있어서,The method of claim 34, wherein상기 프로그램의 재설치시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈에서 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 인증 서버로 전송하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 재설치 등록 완료 응답을 수신하는 변경 모듈;을 더 포함하는 것을 특징으로 하는 장치.When the program is reinstalled, the secret hash value, the user authentication key, the device authentication key, and the program authentication are controlled by the secret hash value generation module, the user authentication key generation module, the device authentication key generation module, and the program authentication key generation module. After the key is generated, a reinstallation registration message including the user authentication key, the device authentication key, and the program authentication key is transmitted to the authentication server, and the user authentication key and the device authentication key included in the reinstallation registration message are the authentication server. A change module that matches a user authentication key and a device authentication key registered in advance, and receives a reinstallation registration completion response from the authentication server when the one-time authentication key generation module receives a matching response of the one-time authentication key. Apparatus comprising a.
- 제 34 항에 있어서,The method of claim 34, wherein상기 장치의 변경시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 상기 인증 서버로 전송하며, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 디바이스 변경 등록 완료 응답을 수신하는 변경 모듈;을 더 포함하는 것을 특징으로 하는 장치.When the device is changed, the secret hash value, the user authentication key, the device authentication key and the program authentication are controlled by controlling the secret hash value generation module, the user authentication key generation module, the device authentication key generation module, and the program authentication key generation module. After generating the key, a device change registration message including the user authentication key, the device authentication key, and the program authentication key is transmitted to the authentication server, and the user authentication key included in the device change registration message is written to the authentication server. And a change module that matches the registered user authentication key and receives a device change registration completion response from the authentication server when receiving the matching response of the one time authentication key in the one time authentication key generation module. Device.
- 제 31 항에 있어서,The method of claim 31, wherein상기 일회용 비밀 암호는,The disposable secret password,상기 인증 서버에서 상기 비밀 해쉬값을 이용하여 생성된 것을 특징으로 하는 장치.And generate the secret hash value in the authentication server.
- 제 41 항에 있어서,42. The method of claim 41 wherein상기 일회용 비밀 암호는, The disposable secret password,타임스탬프 및 상기 비밀 해쉬값을 이용하여 생성되는 것을 특징으로 하는 장치.And generate using a timestamp and the secret hash value.
- 사용자 장치와 통신하는 장치에 있어서,A device for communicating with a user device,하나 이상의 프로세서; One or more processors;메모리; 및Memory; And상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, A program stored in the memory and configured to be executed by the one or more processors,상기 프로그램은,The program,사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 생성된 비밀 해쉬값을 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈;A secret hash value registration module configured to receive and register a secret hash value generated by inputting a secret divisor input from a user as a seed value from a user device, from the user device;사용자의 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를 상기 사용자 장치로부터 수신하여 등록하는 사용자 인증키 등록 모듈;A user authentication key registration module for receiving and registering a user authentication key generated by inputting a user's personal password and the secret hash value into a hash function as a seed value from the user device;일회용 비밀 암호를 생성하여 상기 사용자에게 전송하는 일회용 비밀 암호 생성 모듈; 및A one-time secret password generation module for generating a one-time secret password and transmitting it to the user; And상기 사용자 장치로부터 일회용 인증키를 수신하면, 그 수신된 일회용 인증키와, 상기 등록된 사용자 인증키 및 상기 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 일회용 인증키를 비교하여, 그 비교 결과를 상기 사용자 장치로 전송하는 일회용 인증키 비교 모듈;을 포함하는 장치.When the one-time authentication key is received from the user device, the received one-time authentication key is compared with the one-time authentication key generated by inputting the registered user authentication key and the one-time secret password as a seed value to a hash function, and comparing the same. And a one-time authentication key comparison module for transmitting a result to the user device.
- 제 43 항에 있어서,The method of claim 43,상기 사용자 장치의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성한 디바이스 인증키를 상기 사용자 장치로부터 수신하여 등록하는 디바이스 인증키 등록 모듈;을 더 포함하는 장치.And a device authentication key registration module configured to receive and register a device authentication key generated by inputting unique information of the user device into a hash function as a seed value from the user device.
- 제 44 항에 있어서,The method of claim 44,타임스탬프를 생성한 후 그 타임스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 생성한 프로그램 인증키를 상기 사용자 장치로부터 수신하여 등록하는 프로그램 인증키 등록 모듈;을 더 포함하는 장치.And a program authentication key registration module for receiving and registering a program authentication key generated by generating a timestamp, inputting the timestamp, the secret hash value, and the device authentication key as a seed value to a hash function from the user device. Containing device.
- 제 45 항에 있어서,The method of claim 45,상기 사용자 장치로 본인 인증 알림 메시지를 전송하고 이에 대한 응답으로 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 사용자 장치로부터 수신하는 사전 인증 요청 수신 모듈;을 더 포함하고,A pre-authentication request receiving module which transmits a user authentication notification message to the user device and receives a pre-authentication request including the device authentication key and the program authentication key from the user device in response thereto;상기 일회용 비밀 암호 생성 모듈은, The one-time secret password generation module,상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 비교하여, 모두 일치할 경우 상기 일회용 비밀 암호를 생성하는 것을 특징으로 하는 장치.And comparing the device authentication key and the program authentication key included in the pre-authentication request with the pre-registered device authentication key and the program authentication key and generating the one-time secret password if they all match.
- 제 46 항에 있어서,The method of claim 46,상기 사전 인증 요청 수신 모듈은,The pre-authentication request receiving module,서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 본인 인증 알림 메시지를 상기 사용자 장치로 전송하는 것을 특징으로 하는 장치.And transmitting the identity authentication notification message to the user device in response to receiving the identification information of the user from a service server.
- 제 45 항에 있어서,The method of claim 45,상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고,And a change registration module configured to receive a secret divisor change request from the user device including the device authentication key and the program authentication key.상기 변경 등록 모듈은,The change registration module,상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키를 수신하여 갱신하는 것을 특징으로 하는 장치.When the device authentication key and the program authentication key included in the secret divisor change request match the pre-registered device authentication key and the program authentication key, and the result of comparing the one-time authentication key in the one-time authentication key comparison module matches, And receive and update a new secret hash value, a new user authentication key, and a new program authentication key from the user device.
- 제 45 항에 있어서,The method of claim 45,상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고,And a change registration module configured to receive a personal password change request from the user device including the device authentication key and the program authentication key.상기 변경 등록 모듈은,The change registration module,상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 사용자 인증키를 수신하여 갱신하는 것을 특징으로 하는 장치.When the device authentication key and the program authentication key included in the personal password change request and the pre-registered device authentication key and program authentication key match, and the result of comparing the one-time authentication key in the one-time authentication key comparison module, And receive and update a new user authentication key from the user device.
- 제 45 항에 있어서,The method of claim 45,상기 사용자 장치에서 프로그램 재설치시, 해당 사용자 장치에서 생성된 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 사용자 장치로부터 수신하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함하는 것을 특징으로 하는 장치.When the program is reinstalled in the user device, a reinstallation registration message including a secret hash value, a user authentication key, a device authentication key, and a program authentication key generated in the user device is received from the user device, and the message is included in the reinstallation registration message. A change registration module for updating a program authentication key when the user authentication key and the device authentication key match the pre-registered user authentication key and the device authentication key, and when the one-time authentication key comparison module compares the one-time authentication key. The apparatus further comprises.
- 제 45 항에 있어서,The method of claim 45,상기 사용자 장치의 변경시, 변경 후 사용자 장치로부터 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 수신하고, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 디바이스 인증키 및 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함하는 것을 특징으로 하는 장치.When the user device is changed, a device change registration message including a secret hash value, a user authentication key, a device authentication key, and a program authentication key is received from the user device after the change, and the user authentication key included in the device change registration message is changed. And a change registration module for updating the device authentication key and the program authentication key when the matching with the user authentication key previously registered in the authentication server and matching with the result of the one-time authentication key comparison in the one-time authentication key comparison module. Device characterized in that.
- 제 43 항에 있어서,The method of claim 43,상기 일회용 비밀 암호 생성 모듈은, The one-time secret password generation module,상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성하는 것을 특징으로 하는 장치.And generate a one-time secret password using the secret hash value.
- 제 52 항에 있어서,The method of claim 52, wherein상기 일회용 비밀 암호 생성 모듈은, The one-time secret password generation module,타임스탬프 및 상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성하는 것을 특징으로 하는 장치.And generate a one-time secret password using a timestamp and the secret hash value.
- 마스터 서버 및 서비스 서버와 통신하는 장치에 있어서,A device for communicating with a master server and a service server,하나 이상의 프로세서;One or more processors;메모리; 및Memory; And상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 마스터 프로그램 및 서비스 프로그램을 포함하고, A master program and a service program stored in the memory and configured to be executed by the one or more processors,상기 마스터 프로그램은,The master program,사용자로부터 입력된 서로 다른 서비스 비밀 제수를 이용하여 서로 다른 복수의 서비스 비밀 해쉬값을 생성하여 저장하고,Generate and store a plurality of different service secret hash values using different service secret divisors input from the user,상기 서비스 프로그램은,The service program,상기 복수의 서비스 비밀 해쉬값 중 선택된 서비스 비밀 해쉬값과, 개인 비밀번호를 이용하여 서비스 사용자 인증키를 생성하고, 상기 서비스 사용자 인증키를 인증용 정보로서 상기 서비스 서버에 전송하여 등록하며,A service user authentication key is generated using a selected service secret hash value among the plurality of service secret hash values and a personal password, and the service user authentication key is transmitted to the service server as authentication information and registered;상기 마스터 프로그램은,The master program,상기 서비스 프로그램으로부터 수신된 고유 코드를 상기 복수의 서비스 비밀 해쉬값 중 상기 선택된 서비스 비밀 해쉬값에 매핑하여 저장하는, 장치.And store the unique code received from the service program by mapping it to the selected service secret hash value among the plurality of service secret hash values.
- 제 54 항에 있어서,The method of claim 54, wherein상기 서비스 프로그램은, 상기 사용자의 인증시,The service program, upon authentication of the user,개인 비밀번호 및 상기 서비스 서버에서 발급된 일회용 비밀 암호를 입력받고, Input a personal password and a one-time secret password issued by the service server,상기 고유 코드를 상기 마스터 프로그램으로 전송하여 서비스 비밀 해쉬값을 요청하고 이에 대한 응답으로 상기 마스터 프로그램으로부터 상기 고유 코드에 대응하는 서비스 비밀 해쉬값을 수신하며,Transmitting the unique code to the master program to request a service secret hash value and receiving a service secret hash value corresponding to the unique code from the master program in response thereto;상기 수신된 서비스 비밀 해쉬값 및, 상기 입력된 개인 비밀번호를 이용하여 서비스 사용자 인증키를 생성하고, 그 서비스 사용자 인증키 및 상기 일회용 비밀 암호를 이용하여 생성한 일회용 인증키를 포함하는 인증 요청을 상기 서비스 서버로 전송하며, 상기 서비스 서버로부터 자체 생성한 일회용 인증키와 상기 인증 요청에 포함된 일회용 인증키의 비교 결과에 따른 인증 응답을 수신하는, 장치.Generating a service user authentication key using the received service secret hash value and the input personal password, and requesting an authentication request including the service user authentication key and the one-time authentication key generated using the one-time secret password. Transmitting to the service server, and receiving an authentication response according to a result of comparing the one-time authentication key generated by the service server with the one-time authentication key included in the authentication request.
- 제 55 항에 있어서,The method of claim 55,상기 마스터 프로그램은,The master program,장치의 고유 정보를 이용하여 마스터 디바이스 인증키를 생성하고 상기 복수의 서비스 비밀 해쉬값 각각을 그 마스터 디바이스 인증키와 함께 암호화하며, Generate a master device authentication key using the unique information of the device and encrypt each of the plurality of service secret hash values together with the master device authentication key,상기 서비스 프로그램으로부터 서비스 비밀 해쉬값의 요청 수신시, 서비스 비밀 해쉬값 및 마스터 디바이스 인증키를 복호화한 후 복호화된 마스터 디바이스 인증키를 검증하는, 장치.Upon receipt of a request for a service secret hash value from the service program, decrypting the service secret hash value and the master device authentication key and then verifying the decrypted master device authentication key.
- 제 55 항에 있어서,The method of claim 55,상기 서비스 프로그램은,The service program,장치의 고유 정보를 이용하여 서비스 디바이스 인증키를 생성하여 저장하고, 상기 서비스 디바이스 인증키와, 상기 선택된 서비스 비밀 해쉬값 및 타임 스탬프를 이용하여 서비스 프로그램 인증키를 생성하여 저장하며, 상기 서비스 디바이스 인증키 및 상기 서비스 프로그램 인증키를 인증용 정보로서 더 상기 서비스 서버로 전송하여 등록하고, Generate and store a service device authentication key using the unique information of the device, generate and store a service program authentication key using the service device authentication key and the selected service secret hash value and time stamp, and authenticate the service device. Transmits and registers a key and the service program authentication key to the service server as authentication information,상기 사용자의 인증시,Upon authentication of the user,상기 저장된 디바이스 인증키 및 상기 저장된 서비스 프로그램 인증키를 포함하는 사전 인증 요청을 상기 서비스 서버로 전송하고, Transmitting a pre-authentication request including the stored device authentication key and the stored service program authentication key to the service server,상기 일회용 비밀 암호는, 상기 서비스 서버에 등록된 디바이스 인증키 및 서비스 프로그램 인증키와, 상기 사전 인증 요청에 포함된 디바이스 인증키 및 서비스 프로그램 인증키가 일치할 경우 발급되는, 장치.The one-time secret password is issued when the device authentication key and the service program authentication key registered in the service server and the device authentication key and the service program authentication key included in the pre-authentication request match.
- 제 54 항에 있어서,The method of claim 54, wherein상기 서비스 프로그램은, 상기 사용자의 인증시,The service program, upon authentication of the user,상기 고유 코드를 상기 마스터 프로그램으로 전송하여 이에 대한 응답으로 상기 마스터 프로그램으로부터 상기 고유 코드에 대응하는 서비스 비밀 해쉬값을 수신하며,Transmitting the unique code to the master program and receiving a service secret hash value corresponding to the unique code from the master program in response thereto;상기 수신된 서비스 비밀 해쉬값 및 사용자로부터 입력된 개인 비밀번호를 이용하여 서비스 사용자 인증키를 생성하여 그 서비스 사용자 인증키를 포함하는 인증 요청을 상기 서비스 서버로 전송하며, 상기 서비스 서버로부터 기 등록되어 있는 서비스 사용자 인증키와 상기 인증 요청에 포함된 서비스 사용자 인증키의 비교 결과에 따른 인증 응답을 수신하는, 장치.A service user authentication key is generated using the received service secret hash value and a personal password input from a user, and an authentication request including the service user authentication key is transmitted to the service server. And receive an authentication response according to a result of comparing a service user authentication key with a service user authentication key included in the authentication request.
- 제 54 항에 있어서,The method of claim 54, wherein상기 마스터 프로그램은,The master program,상기 복수의 서비스 비밀 해쉬값 각각에 대한 닉네임을 입력받아 저장하고,Receives and stores nicknames for each of the plurality of service secret hash values,상기 서비스 프로그램은,The service program,상기 마스터 프로그램으로부터 수신된 닉네임들에 기초하여 서비스 비밀 해쉬값을 선택받는, 장치.Receiving a service secret hash value based on nicknames received from the master program.
- 제 54 항에 있어서,The method of claim 54, wherein상기 마스터 프로그램은, The master program,사용자로부터 입력된 마스터 비밀 제수를 이용하여 마스터 비밀 해쉬값을 생성하고, 개인 비밀번호 및 상기 마스터 비밀 해쉬값을 이용하여 마스터 사용자 인증키를 생성하며, 상기 마스터 사용자 인증키를 인증용 정보로서 상기 마스터 서버에 전송하여 등록하고,A master secret hash value is generated using a master secret divisor input from a user, a master user authentication key is generated using a personal password and the master secret hash value, and the master server is used as authentication information. Register to send to,서비스 비밀 해쉬값의 생성 또는 변경시,When creating or changing a service secret hash value,상기 마스터 사용자 인증키를 이용한 인증 성공시에 서비스 비밀 해쉬값의 생성 또는 변경을 가능하게 하는, 장치.And to generate or change a service secret hash value upon successful authentication using the master user authentication key.
- 제 60 항에 있어서,The method of claim 60,상기 마스터 프로그램은, 서비스 비밀 해쉬값의 생성 또는 변경시,When the master program generates or changes a service secret hash value,상기 마스터 사용자 인증키 및 상기 마스터 서버에서 발급된 일회용 비밀 암호를 이용한 인증 성공시에 서비스 비밀 해쉬값의 생성 또는 변경을 가능하게 하는, 장치.And generate or change a service secret hash value upon successful authentication using the master user authentication key and a one-time secret password issued by the master server.
- 제 60 항에 있어서,The method of claim 60,상기 마스터 프로그램은,The master program,사용자 장치의 고유 정보를 이용하여 마스터 디바이스 인증키를 생성하여 저장하고, 상기 마스터 디바이스 인증키와, 상기 마스터 비밀 해쉬값 및 타임 스탬프를 이용하여 마스터 프로그램 인증키를 생성하여 저장하며, 상기 마스터 디바이스 인증키 및 상기 마스터 프로그램 인증키를 인증용 정보로서 더 상기 마스터 서버에 전송하여 등록하고,Generate and store a master device authentication key using the unique information of the user device, and generate and store a master program authentication key using the master device authentication key, the master secret hash value, and a time stamp, and authenticate the master device. Transmits and registers a key and the master program authentication key to the master server as authentication information,서비스 비밀 해쉬값의 생성 또는 변경시,When creating or changing a service secret hash value,상기 마스터 디바이스 인증키 및 상기 마스터 프로그램 인증키를 이용하여 사전 인증을 수행하고 상기 마스터 사용자 인증키를 이용하여 최종 인증을 수행하는, 장치.Performing pre-authentication using the master device authentication key and the master program authentication key, and performing final authentication using the master user authentication key.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140120165A KR101571126B1 (en) | 2014-09-11 | 2014-09-11 | Apparatus and method for user authentication |
KR10-2014-0120165 | 2014-09-11 | ||
KR1020150052631A KR20160122556A (en) | 2015-04-14 | 2015-04-14 | Apparatus and method for otp authentication |
KR10-2015-0052631 | 2015-04-14 | ||
KR1020150064749A KR20160131744A (en) | 2015-05-08 | 2015-05-08 | Apparatus and method for user authentication |
KR10-2015-0064749 | 2015-05-08 | ||
KR10-2015-0127141 | 2015-09-08 | ||
KR1020150127141A KR101746598B1 (en) | 2015-09-08 | 2015-09-08 | Apparatus for user authentication |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016039568A1 true WO2016039568A1 (en) | 2016-03-17 |
Family
ID=55459273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/009523 WO2016039568A1 (en) | 2014-09-11 | 2015-09-10 | Device and method for user authentication |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016039568A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10965451B2 (en) * | 2018-10-30 | 2021-03-30 | Canon Kabushiki Kaisha | Authentication method, authentication device, authentication target device and image forming apparatus |
CN114900342A (en) * | 2022-04-25 | 2022-08-12 | 矩阵时光数字科技有限公司 | Distributor authentication method based on key distribution system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100610872B1 (en) * | 2004-05-07 | 2006-08-08 | 주식회사 케이티프리텔 | Method and apparatus for authenticating user service of Wi-Fi terminal |
KR100610317B1 (en) * | 2004-01-06 | 2006-08-09 | 삼성전자주식회사 | The authentication apparatus and method for the devices which constitute a home network |
KR20080032810A (en) * | 2006-10-11 | 2008-04-16 | 엔에이치엔(주) | Security authentication system and method |
KR20090015281A (en) * | 2007-08-08 | 2009-02-12 | 엘아이지넥스원 주식회사 | Device for generating user authentication key of application software, and (generating) method therefor, and system for authenticating user using the said key, and (authenticating) method therefor |
KR20100101887A (en) * | 2009-03-10 | 2010-09-20 | 삼성전자주식회사 | Method and system for authenticating in communication system |
-
2015
- 2015-09-10 WO PCT/KR2015/009523 patent/WO2016039568A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100610317B1 (en) * | 2004-01-06 | 2006-08-09 | 삼성전자주식회사 | The authentication apparatus and method for the devices which constitute a home network |
KR100610872B1 (en) * | 2004-05-07 | 2006-08-08 | 주식회사 케이티프리텔 | Method and apparatus for authenticating user service of Wi-Fi terminal |
KR20080032810A (en) * | 2006-10-11 | 2008-04-16 | 엔에이치엔(주) | Security authentication system and method |
KR20090015281A (en) * | 2007-08-08 | 2009-02-12 | 엘아이지넥스원 주식회사 | Device for generating user authentication key of application software, and (generating) method therefor, and system for authenticating user using the said key, and (authenticating) method therefor |
KR20100101887A (en) * | 2009-03-10 | 2010-09-20 | 삼성전자주식회사 | Method and system for authenticating in communication system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10965451B2 (en) * | 2018-10-30 | 2021-03-30 | Canon Kabushiki Kaisha | Authentication method, authentication device, authentication target device and image forming apparatus |
CN114900342A (en) * | 2022-04-25 | 2022-08-12 | 矩阵时光数字科技有限公司 | Distributor authentication method based on key distribution system |
CN114900342B (en) * | 2022-04-25 | 2024-04-12 | 矩阵时光数字科技有限公司 | Distribution machine authentication method based on key distribution system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016126052A2 (en) | Authentication method and system | |
WO2018086515A1 (en) | Verification construction method and device capable of offline verification of safety information tag | |
WO2011149214A2 (en) | Three-factor user authentication method for generating otp using iris information and secure mutual authentication system using otp authentication module of wireless communication terminal | |
WO2020235782A1 (en) | Method for authenticating personal identify in distributed environment | |
WO2015137745A1 (en) | System and method of encrypting folder in device | |
WO2021025482A1 (en) | Electronic device and method for generating attestation certificate based on fused key | |
WO2016137277A1 (en) | Electronic device providing electronic payment function and operating method thereof | |
WO2013067935A1 (en) | Method and system for authenticating user's identity and equipment used therein | |
WO2011079753A1 (en) | Authentication method, authentication trade system and authentication apparatus | |
WO2021075867A1 (en) | Method for storing and recovering key for blockchain-based system, and device therefor | |
WO2017099342A1 (en) | Method, apparatus, and system for providing temporary account information | |
WO2018082482A1 (en) | Network sharing method, and method and system for accessing network | |
WO2019132555A1 (en) | Electronic device for transmitting and receiving message including emoji and method for controlling electronic device | |
WO2018034491A1 (en) | A primary device, an accessory device, and methods for processing operations on the primary device and the accessory device | |
WO2017084337A1 (en) | Identity verification method, apparatus and system | |
WO2020105892A1 (en) | Method by which device shares digital key | |
WO2023106759A1 (en) | Device and method for hybrid photo-printing-kiosk-type offline easy payment comprising qr code scanning and self-selection-type web mediation control | |
WO2017188497A1 (en) | User authentication method having strengthened integrity and security | |
WO2016039568A1 (en) | Device and method for user authentication | |
WO2021066271A1 (en) | Mobile communication terminal for performing personal authentication, personal authentication system, and personal authentication method using mobile communication terminal | |
WO2019194428A1 (en) | Electronic device sharing key with external electronic device and operating method for electronic device | |
WO2015081763A1 (en) | Virtual device authorization method and device | |
WO2021187733A1 (en) | Electronic device and control method thereof | |
WO2018110775A1 (en) | Electronic device authentication managing apparatus | |
WO2020149500A1 (en) | Method and apparatus for registering shared key |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15839502 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15839502 Country of ref document: EP Kind code of ref document: A1 |