KR20200022258A - Device and method to process password input from user - Google Patents
Device and method to process password input from user Download PDFInfo
- Publication number
- KR20200022258A KR20200022258A KR1020180098165A KR20180098165A KR20200022258A KR 20200022258 A KR20200022258 A KR 20200022258A KR 1020180098165 A KR1020180098165 A KR 1020180098165A KR 20180098165 A KR20180098165 A KR 20180098165A KR 20200022258 A KR20200022258 A KR 20200022258A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- random number
- input values
- password
- storage medium
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of 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
- H04L9/3226—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 using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
본 발명은 네트워크 시스템에 관한 것으로, 좀 더 구체적으로는 사용자로부터 입력되는 비밀번호를 처리하기 위한 장치들 및 방법들에 관한 것이다.The present invention relates to a network system, and more particularly to apparatuses and methods for processing a password input from a user.
최근 데이터 통신망의 발달로 인하여 많은 사람들이 인터넷을 이용하며, 이에 따라 인터넷을 이용한 다양한 서비스들이 제공되고 있다. 이러한 서비스들 중 일부는 사용자 인증을 위해 비밀번호를 요구하며, 따라서 사용자가 입력한 비밀번호가 해킹 등의 공격으로부터 유출되지 않도록 하기 위해 비밀번호에 대한 높은 보안성이 요구된다. 예를 들면, 이러한 요구에 따라 사용자가 입력한 비밀번호는 암호화되어 전송될 수 있다.Recently, due to the development of a data communication network, many people use the Internet, and thus, various services using the Internet are provided. Some of these services require passwords for user authentication, and therefore, high security of passwords is required to prevent passwords entered by users from being leaked from attacks such as hacking. For example, according to such a request, a password input by a user may be encrypted and transmitted.
비밀번호에 대한 보안성을 더 향상시키기 위해, 가상 키패드가 제공될 수 있다. 가상 키패드의 배열은 그것이 생성될 때마다 변하며, 사용자가 가상 키패드의 버튼들을 비밀번호로서 선택할 때 비밀번호와 연관된 데이터가 결정(혹은 생성)된다. 비밀번호와 연관된 데이터는 추가적으로 암호화될 수 있으며, 비밀번호와 연관된 데이터 혹은 추가적으로 암호화된 데이터는 비밀번호를 대체하여 전송될 수 있다. 가상 키패드의 배열이 그것이 생성될 때마다 변하는 것은, 비밀번호와 연관된 데이터가 비밀번호 자체보다 더 향상된 보안성을 가짐을 의미할 수 있다.To further improve security for passwords, a virtual keypad may be provided. The arrangement of the virtual keypad changes each time it is created, and the data associated with the password is determined (or generated) when the user selects the buttons of the virtual keypad as the password. The data associated with the password may be further encrypted, and the data associated with the password or additionally encrypted data may be transmitted in place of the password. Changing the arrangement of the virtual keypad each time it is created may mean that the data associated with the password has more security than the password itself.
위 기재된 내용은 오직 본 발명의 기술적 사상들에 대한 배경 기술의 이해를 돕기 위한 것이며, 따라서 그것은 본 발명의 기술 분야의 당업자에게 알려진 선행 기술에 해당하는 내용으로 이해될 수 없다.The above description is only to assist in understanding the background art of the technical idea of the present invention, and thus it cannot be understood as the content corresponding to the prior art known to those skilled in the art.
본 발명의 실시 예들은 사용자에 의해 입력된 비밀번호 및 비밀번호와 연관된 데이터에 대한 향상된 보안성을 제공하는 장치 및 방법을 제공하기 위한 것이다.Embodiments of the present invention provide an apparatus and method for providing improved security for a password input by a user and data associated with the password.
본 발명의 실시 예에 따른 사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기는, 디스플레이 장치; 저장 매체; 및 상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 컨트롤러를 포함한다. 상기 컨트롤러는, 랜덤 넘버를 제공하도록 구성되는 랜덤 넘버 생성기; 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고, 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하도록 구성되는 가상 키패드 드라이버; 및 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 로컬 컨트롤러를 포함한다.A user terminal for processing a password input from a user according to an embodiment of the present invention, a display device; Storage media; And a controller configured to control the display device and the storage medium. The controller includes a random number generator configured to provide a random number; Displaying a virtual keypad including a plurality of button regions on the display device, changing the arrangement of the virtual keypad according to the random number, and selecting the plurality of button regions as the password; A virtual keypad driver configured to determine input values respectively corresponding to button areas; And a local controller configured to distribute and store first data based on the random number and second data based on the input values in an external server and the storage medium.
상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되, 상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고, 상기 제 2 데이터는 상기 암호화된 입력값들을 포함할 수 있다.The local controller includes an encryptor configured to encrypt the random number and to encrypt the input values, wherein the first data includes the encrypted random number and the second data includes the encrypted input values. Can be.
상기 암호화기는 상기 랜덤 넘버 및 상기 입력값들을 RSA 알고리즘을 통해 암호화하도록 구성될 수 있다.The encryptor may be configured to encrypt the random number and the input values via an RSA algorithm.
본 발명의 다른 실시 예에 따른 사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기는, 디스플레이 장치; 저장 매체; 및 상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 프로세서를 포함한다. 상기 프로세서는, 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 제 1 커맨드 신호에 응답하여 생성되는 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고; 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하고; 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성된다.A user terminal for processing a password input from a user according to another embodiment of the present invention, a display device; Storage media; And a processor configured to control the display device and the storage medium. The processor is configured to: display a virtual keypad including a plurality of button regions on the display device, and change an arrangement of the virtual keypad according to a random number generated in response to a first command signal; Determine input values respectively corresponding to the selected button regions in response to user inputs for selecting the plurality of button regions with the password; And distribute first and second data based on the random number and second data based on the input values to an external server and the storage medium.
상기 사용자 단말기는 네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되, 상기 프로세서는 상기 제 1 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 저장 매체에 저장하도록 구성될 수 있다.The user terminal further comprises a communicator configured to communicate with the external server via a network, wherein the processor is configured to store the first data in the external server through the communicator and store the second data in the storage medium. Can be configured.
상기 프로세서는, 제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 저장 매체로부터 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성될 수 있다.The processor is configured to access the external server in response to a second command signal to obtain the first data; The random number may be restored based on the obtained first data and the input values may be restored based on the second data read from the storage medium.
상기 프로세서는, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하도록 구성될 수 있다.The processor may be configured to recover the password according to the restored random number and the restored input values.
상기 프로세서는 상기 획득된 제 1 데이터를 복호화하고 상기 독출된 제 2 데이터를 복호화하도록 구성되고, 상기 복호화된 제 1 데이터는 상기 복원된 랜덤 넘버를 포함하고, 상기 복호화된 제 2 데이터는 상기 복원된 입력값들을 포함할 수 있다.The processor is configured to decode the obtained first data and to decode the read second data, wherein the decoded first data includes the reconstructed random number, and the decoded second data is decoded. May contain input values.
상기 사용자 단말기는 네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되, 상기 프로세서는 상기 제 1 데이터를 상기 저장 매체에 저장하고 상기 제 2 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하도록 구성될 수 있다.The user terminal further comprises a communicator configured to communicate with the external server via a network, wherein the processor is configured to store the first data in the storage medium and store the second data in the external server via the communicator. Can be configured.
본 발명의 다른 일면은 사용자로부터 입력되는 비밀번호를 처리하기 위한 방법에 관한 것이다. 상기 방법은, 제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계; 복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계; 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계; 및 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 내부 저장 매체에 분산 저장하는 단계를 포함한다.Another aspect of the invention relates to a method for processing a password input from a user. The method includes generating a random number in response to a first command signal; Displaying a virtual keypad including a plurality of button regions on a display device, wherein the arrangement of the virtual keypad is changed according to the random number; Determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as the password; And distributing and storing the first data based on the random number and the second data based on the input values in an external server and an internal storage medium.
상기 분산 저장하는 단계는, 상기 제 1 데이터를 네트워크를 통해 상기 외부 서버에 저장하는 단계; 및 상기 제 2 데이터를 상기 내부 저장 매체에 저장하는 단계를 포함할 수 있다.The distributed storage may include: storing the first data on the external server through a network; And storing the second data in the internal storage medium.
상기 방법은, 제 2 커맨드 신호에 응답하여, 상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계; 상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계; 및 상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함할 수 있다.The method includes: in response to a second command signal, accessing the external server via the network to obtain the first data; Restoring the random number based on the obtained first data; Reading the second data from the storage medium; And restoring the input values based on the read second data.
상기 방법은, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하는 단계를 더 포함할 수 있다.The method may further include restoring the password according to the restored random number and the restored input values.
본 발명의 또 다른 일면은 사용자 단말기에 프로그램 코드들을 제공하는 클라이언트 서버에 관한 것이다. 상기 클라이언트 서버는, 통신기; 상기 통신기를 통해 사용자 단말기와 통신하도록 구성되는 프로세서; 및 상기 사용자 단말기에 의해 실행될 프로그램 코드들을 저장하는 데이터베이스를 포함한다. 상기 프로그램 코드들은, 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 사용자 단말기의 디스플레이 장치에 표시하되, 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하기 위한 제 1 명령어들; 상기 복수의 버튼 영역들을 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하기 위한 제 2 명령어들; 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 상기 사용자 단말기의 외부 서버 및 상기 사용자 단말기의 내부 저장 매체에 분산 저장하기 위한 제 3 명령어들을 포함한다.Another aspect of the invention relates to a client server for providing program codes to a user terminal. The client server includes a communicator; A processor configured to communicate with a user terminal via the communicator; And a database for storing program codes to be executed by the user terminal. The program codes may include: first instructions for displaying a virtual keypad including a plurality of button areas on a display device of the user terminal, and for changing an arrangement of the virtual keypad according to a random number; Second instructions for determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as a password; And third instructions for distributing and storing the first data based on the random number and the second data based on the input values in an external server of the user terminal and an internal storage medium of the user terminal.
상기 제 3 명령어들은, 상기 제 1 데이터를 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 내부 저장 매체에 저장하기 위한 명령어들을 포함할 수 있다.The third instructions may include instructions for storing the first data on the external server and storing the second data on the internal storage medium.
상기 프로그램 코드들은, 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고; 상기 저장 매체로부터 상기 제 2 데이터를 독출하고; 상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하기 위한 제 4 명령어들을 더 포함할 수 있다.The program codes access the external server to obtain the first data; Restore the random number based on the obtained first data; Read the second data from the storage medium; The apparatus may further include fourth instructions for restoring the input values based on the read second data.
상기 프로그램 코드들은, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하기 위한 제 5 명령어들을 더 포함할 수 있다.The program codes may further include fifth instructions for recovering the password according to the restored random number and the restored input values.
본 발명의 실시 예들에 따르면, 사용자에 의해 입력된 비밀번호 및 비밀번호와 연관된 데이터에 대한 향상된 보안성을 제공하는 장치 및 방법이 제공된다.According to embodiments of the present invention, an apparatus and method for providing improved security for a password input by a user and data associated with the password are provided.
도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.
도 3은 사용자 단말기에 디스플레이되는 가상 키패드를 포함하는 화면의 실시 예를 보여주는 도면이다.
도 4는 가상 키패드의 문자 버튼들에 각각 대응하는 입력값들을 보여주는 테이블이다.
도 5는 랜덤 넘버와 입력값 세트를 저장하는 방법을 설명하기 위한 블록도이다.
도 6은 본 발명의 실시 예에 따라 사용자 단말기에서 사용자로부터 입력되는 비밀번호를 처리하는 방법을 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 비밀번호를 제공하는 제공하는 방법을 보여주는 순서도이다.
도 8은 본 발명의 다른 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.
도 9는 도 8의 사용자 단말기와 통신할 수 있는 클라이언트 서버를 보여주는 블록도이다.1 is a block diagram illustrating a network system according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a user terminal according to an exemplary embodiment of the present invention.
3 is a diagram illustrating an embodiment of a screen including a virtual keypad displayed on a user terminal.
4 is a table showing input values corresponding to character buttons of a virtual keypad, respectively.
5 is a block diagram illustrating a method of storing a random number and an input value set.
6 is a flowchart illustrating a method of processing a password input from a user in a user terminal according to an exemplary embodiment of the present invention.
7 is a flowchart illustrating a method of providing a password according to an embodiment of the present invention.
8 is a block diagram illustrating a user terminal according to another exemplary embodiment.
9 is a block diagram illustrating a client server capable of communicating with the user terminal of FIG. 8.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that in the following description, only parts necessary for understanding the operation according to the present invention will be described, and descriptions of other parts will be omitted so as not to obscure the gist of the present invention. In addition, the present invention is not limited to the embodiments described herein and may be embodied in other forms. However, the embodiments described herein are provided to explain in detail enough to easily implement the technical idea of the present invention to those skilled in the art.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 본 발명을 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. "X, Y, 및 Z 중 적어도 어느 하나", 그리고 "X, Y, 및 Z로 구성된 그룹으로부터 선택된 적어도 어느 하나"는 X 하나, Y 하나, Z 하나, 또는 X, Y, 및 Z 중 둘 또는 그 이상의 어떤 조합 (예를 들면, XYZ, XYY, YZ, ZZ) 으로 해석될 수 있다. 여기에서, "및/또는"은 해당 구성들 중 하나 또는 그 이상의 모든 조합을 포함한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "indirectly connected" with another element in between. . The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, except to exclude other components unless otherwise stated. "At least one of X, Y, and Z" and "at least one selected from the group consisting of X, Y, and Z" is X one, Y one, Z one, or two of X, Y, and Z or Any combination of the above (eg, XYZ, XYY, YZ, ZZ) can be interpreted. Here, "and / or" includes all combinations of one or more of the configurations.
도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.1 is a block diagram illustrating a network system according to an exemplary embodiment of the present invention.
도 1을 참조하면, 네트워크 시스템(1)은 네트워크(5), 사용자 단말기(10), 웹 서버(20), 및 저장 서버(30)를 포함한다.Referring to FIG. 1, the
네트워크 시스템(1)은 여기에 설명된 본 발명의 실시 예들에 따른 다양한 방법들을 수행하도록 동작하는 복수의 장치들, 서버들, 및/또는 소프트웨어 구성들을 포함할 수 있다. 도 1에 도시된 장치들 및/또는 서버들은 다른 방식들로 구성될 수 있으며, 장치들 및/또는 서버들에 의해 제공되는 동작들 및 서비스들은 여기에 설명된 실시 예들을 위해 결합되거나 분리될 수 있으며, 더 많은 수 혹은 더 적은 수의 장치들 및/또는 서버들에 의해 수행될 수 있다. 하나 또는 그 이상의 장치들 및/또는 서버들은 동일 혹은 상이한 기업체들에 의해 구동 및/또는 유지될 수 있다.The
네트워크(5)는 사용자 단말기(10), 웹 서버(20), 및 저장 서버(30)와 같은 네트워크 시스템(1) 내 다양한 구성 요소들을 연결한다. 네트워크(5)는 공용 네트워크(public network), 적어도 하나의 사설 네트워크(private network), 유선 네트워크, 무선 네트워크, 다른 적절한 타입의 네트워크, 및 그것들의 조합들 중 적어도 하나를 포함할 수 있다.The
사용자 단말기(10)는 네트워크(5)를 통해 웹 서버(20) 및 저장 서버(30)와 통신할 수 있다. 사용자 단말기(10)는 웹 서버(20)에 액세스하여 사용자 아이디를 등록하고 웹 서버(20)가 제공하는 서비스들을 이용하기 위한 동작들을 수행하도록 구성된다.The
실시 예들에서, 사용자 단말기(110)는 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone) 등과 같이 정보를 유선 및/또는 무선 환경에서 송수신할 수 있는 컴퓨터 장치일 수 있다.In embodiments, the
웹 서버(20)는 네트워크(5)를 통해 사용자 단말기(10)와 통신하여 다양한 서비스들을 제공할 수 있다. 웹 서버(20)는 서비스들 중 일부를 제공하기 전에, 사용자 인증을 위한 데이터를 사용자 단말기(10)에 요청할 수 있다. 사용자 단말기(10)는 사용자가 비밀번호를 입력할 때 입력된 비밀번호를 처리하고, 처리된 데이터를 비밀번호와 연관된 데이터로서 웹 서버(20)에 전송할 수 있다. 웹 서버(20)는 전송된 데이터를 이용하여 사용자 인증을 수행할 수 있다.The
사용자가 입력하는 비밀번호에 대한 보안성을 향상시키기 위해, 사용자 단말기(10)는 가상 키패드를 사용자 인터페이스로서 제공할 수 있다. 사용자 단말기(10)는 가상 키패드를 호출하는 커맨드 신호가 내부적으로 생성될 때, 생성된 커맨드 신호에 응답하여 랜덤 넘버를 생성하고, 생성된 랜덤 넘버에 따라 변하는 배열을 갖는 가상 키패드를 생성 및 디스플레이할 수 있다. 사용자 단말기(10)는 가상 키패드에 포함된 버튼 영역들을 선택하는 사용자 입력들을 비밀번호로서 수신할 때, 선택된 버튼들에 각각 할당된 입력값들을 결정할 수 있다. 랜덤 넘버 및 입력값들은 비밀번호와 연관된 데이터로서 제공될 수 있다.In order to improve the security of the password entered by the user, the
랜덤 넘버 및 입력값들은 다양한 방식들에 따라 더 처리될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버 및 입력값들은 암호화될 수 있다. 예를 들면, 웹 서버(20)가 디지털 서명된 공인인증서를 요청하는 경우, 랜덤 넘버와 입력값들을 이용하여 공인인증서에 디지털 서명하고 디지털 서명된 공인인증서를 웹 서버(20)에 전송할 수 있다.The random number and input values may be further processed in various ways, and embodiments of the present invention are not limited thereto. For example, random numbers and input values can be encrypted. For example, when the
저장 서버(30)는 네트워크(5)를 통해 사용자 단말기와 통신할 수 있다. 저장 서버(30)는 사용자 단말기(10)가 액세스하여 데이터를 저장할 수 있는 저장 공간을 제공한다.The
도 2는 본 발명의 실시 예에 따른 사용자 단말기를 보여주는 블록도이다. 도 3은 사용자 단말기에 디스플레이되는 가상 키패드를 포함하는 화면의 실시 예를 보여주는 도면이다. 도 4는 가상 키패드의 문자 버튼들에 각각 대응하는 입력값들을 보여주는 테이블이다. 도 5는 랜덤 넘버와 입력값 세트를 저장하는 방법을 설명하기 위한 블록도이다.2 is a block diagram illustrating a user terminal according to an exemplary embodiment of the present invention. 3 is a diagram illustrating an embodiment of a screen including a virtual keypad displayed on a user terminal. 4 is a table showing input values corresponding to character buttons of a virtual keypad, respectively. 5 is a block diagram illustrating a method of storing a random number and an input value set.
도 2를 참조하면, 사용자 단말기(100)는 제 1 내지 제 3 인터페이스들(101, 102, 103), 컨트롤러(110), 디스플레이 장치(120), 저장 매체(130), 및 통신기(140)를 포함할 수 있다.Referring to FIG. 2, the
컨트롤러(110)는 제 1 내지 제 3 인터페이스들(101~103)을 통해 디스플레이 장치(120), 저장 매체(130), 및 통신기(140)와 각각 통신할 수 있다. 실시 예들에서, 제 1 내지 제 3 인터페이스들(101~103)은 사용자 단말기(100)에 포함된 시스템 버스의 구성 요소들로서 제공될 수 있다. 제 1 인터페이스(101)는 컨트롤러(110)와 디스플레이 장치(120) 사이의 통신 인터페이스를 제공한다. 제 2 인터페이스(102)는 컨트롤러(110)와 저장 매체(130) 사이의 통신 인터페이스를 제공한다. 제 3 인터페이스(103)는 컨트롤러(110)와 통신기(140) 사이의 통신 인터페이스를 제공한다.The
컨트롤러(110)는 로컬 컨트롤러(111), 랜덤 넘버 생성기(112), 및 가상 키패드 드라이버(113)를 포함한다. 로컬 컨트롤러(111)는 채널(CH)을 통해 사용자 단말기(100) 내 다른 구성 요소들과 통신할 수 있다. 로컬 컨트롤러(111)는 채널(CH)을 통해 수신되는 커맨드 신호들에 응답하여 동작할 수 있다. 로컬 컨트롤러(111)는 채널(CH)을 통해 가상 키패드를 호출하는 제 1 커맨드 신호가 수신될 때, 제 1 제어 신호(CTRL1)를 출력하여 랜덤 넘버를 출력하도록 랜덤 넘버 생성기(112)를 제어할 수 있다. 로컬 컨트롤러(110)는 제 2 제어 신호(CTRL2)를 출력하여 가상 키패드를 생성하도록 가상 키패드 드라이버(113)를 제어할 수 있다.The
랜덤 넘버 생성기(112)는 제 1 제어 신호(CTRL1)에 응답하여 랜덤 넘버를 생성하도록 구성된다. 도 2에서, 랜덤 넘버 생성기(112)는 컨트롤러(110)에 포함되는 것으로 도시된다. 그러나 이는 예시적인 것으로, 랜덤 넘버 생성기(112)는 컨트롤러(110)의 외부에 배치되어 사용자 단말기(100)의 다른 구성 요소에 포함될 수 있다.The
랜덤 넘버는 다양한 방식들에 따라 생성될 수 있다. 예를 들면, 랜덤 넘버는 타임 스탬프일 수 있다. 다른 예로서, 랜덤 넘버는 타임 스탬프를 입력값으로 이용하여 연산된 출력값일 수 있다. 랜덤 넘버 생성기(112)는 생성된 랜덤 넘버(RD)를 가상 키패드 드라이버(113)에 전송한다.The random number may be generated in various ways. For example, the random number may be a time stamp. As another example, the random number may be an output value calculated using the time stamp as an input value. The
가상 키패드 드라이버(113)는, 제 2 제어 신호(CTRL2)에 응답하여, 랜덤 넘버(RD)에 따라 가상 키패드를 생성하고 생성된 가상 키패드를 제 1 인터페이스(101)를 통해 디스플레이 장치(120)에 디스플레이하도록 구성된다. 가상 키패드 드라이버(113)는 수신되는 랜덤 넘버(RD)에 따라 가상 키패드의 배열을 변경한다.In response to the second control signal CTRL2, the
도 2와 함께 도 3을 참조하면, 사용자 단말기(100)에 디스플레이되는 화면은 비밀번호 표시 영역(210) 및 가상 키패드(220)를 포함한다. 가상 키패드(220)는 비밀번호 입력 영역(230)을 포함하며, 비밀번호 입력 영역(230)은 복수의 버튼 영역들을 포함한다. 버튼 영역들 각각은 문자(221)로 채워지거나, 비활성(inactive) 심볼(222)로 제공될 수 있다. 비밀번호 입력 영역(230)의 버튼 영역을 선택하는 사용자 입력이 수신될 때마다, 비밀번호 표시 영역(210)에 선택된 버튼 영역에 대응하는 문자(221)가 표시될 수 있다. 또는, 사용자가 아닌 다른 사람에 의해 비밀번호가 인식되는 것을 방지하기 위해, 선택된 버튼 영역에 대응하는 문자 대신 적절한 심볼이 비밀번호 표시 영역(210)에 표시될 수 있다. 비활성 심볼(222)로 제공되는 버튼 영역은 비밀번호로서 선택될 수 없을 수 있다. 도 3에서, 비활성 심볼(222)로 제공되는 버튼 영역들은 사선으로 패터닝되어 있다.Referring to FIG. 3 together with FIG. 2, the screen displayed on the
비밀번호 입력 영역(230)의 버튼 영역들에 채워지는 문자들(221) 및 비활성 심볼들(222)의 배열은 랜덤 넘버(RD)에 따라 변경된다. 문자들(221) 및 비활성 심볼들(222)의 배열은 다양한 방식들에 따라 결정될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버(RD)에 따라 비활성 심볼들(222)의 개수 및/또는 위치들이 결정되고, 나머지 버튼 영역들에 문자들(221)이 채워질 수 있다. 문자들(221)이 채워지는 버튼 영역들의 배열은 마찬가지로 랜덤 넘버(RD)에 따라 변경될 수 있다.The arrangement of the
가상 키패드(220)는 재배열(rearrange) 버튼(223), 엔터(enter) 버튼(224), 및 기타 필요한 버튼들을 더 포함할 수 있다. 재배열 버튼(223)을 선택하는 사용자 입력에 응답하여, 위 설명된 제 1 커맨드 신호가 재생성될 수 있다. 컨트롤러(110)는 재생성된 제 1 커맨드 신호에 응답하여 제 1 제어 신호(CTRL1)를 출력하며, 랜덤 넘버 생성기(112)는 제 1 제어 신호(CTRL1)에 응답하여 랜덤 넘버(RD)를 재생성할 수 있다. 가상 키패드 드라이버(113)는 재생성된 랜덤 넘버(RD)에 따라 상이한 배열을 갖는 비밀번호 입력 영역(230)을 포함하는 가상 키패드(220)를 제공한다. 엔터 버튼(224)을 선택하는 사용자 입력에 응답하여, 비밀번호 입력 영역(230)의 선택된 버튼 영역들의 문자들(221)이 비밀번호로 결정될 수 있다.The
가상 키패드 드라이버(113)는 가상 키패드(220)를 이용해 비밀번호를 선택하는 사용자 입력에 응답하여, 비밀번호 입력 영역(230)의 선택된 버튼 영역들에 각각 대응하는 입력값들을 입력값 세트(INVS)로서 로컬 컨트롤러(111)에 전송한다. 도 4를 참조하면, 비밀번호 입력 영역(230)에 포함된 제 1 내지 제 m 버튼 영역들(BTN1~BTNm)은 각각 제 1 내지 제 m 입력값들(INV1~INVm)에 대응한다(m은 1보다 크거나 같은 정수). 제 1 내지 제 m 버튼 영역들(BTN1~BTNm) 중 적어도 일부가 비밀번호로 선택될 때, 해당 입력값들이 특정될 수 있다. 가상 키패드 드라이버(113)는 특정된 입력값들을 입력값 세트(INVS)로서 출력할 수 있다.In response to a user input for selecting a password using the
다시 도 2를 참조하면, 로컬 컨트롤러(111)는 랜덤 넘버 생성기(112)에 의해 생성된 랜덤 넘버(RD) 및 가상 키패드 드라이버(113)에 의해 생성된 입력값 세트(INVS)를 수신한다.Referring back to FIG. 2, the
로컬 컨트롤러(111)는 랜덤 넘버(RD)에 기반하여 제 1 데이터를 생성하고, 입력값 세트(INVS)에 기반하여 제 2 데이터를 생성하고, 생성된 제 1 데이터 및 제 2 데이터를 저장 매체(130) 및 외부의 저장 서버(30, 도 1 참조)에 분산 저장하도록 구성된다. 로컬 컨트롤러(111)는 랜덤 넘버(RD) 및 입력값 세트(INVS)를, 예를 들면 RSA(Rivest Shamir Adleman) 알고리즘을 통해 암호화하도록 구성되는 암복호화기(114)를 포함할 수 있다. 그리고, 로컬 컨트롤러(111)는 암호화된 랜덤 넘버 및 암호화된 입력값 세트를 저장 매체(130) 및 저장 서버(30)에 분산 저장할 수 있다. 실시 예들에서, 도 5에 도시된 바와 같이, 로컬 컨트롤러(111)는 암복호화기(114)에 의해 암호화된 입력값 세트(EINVS)를 저장 매체(130)에 저장하고, 암복호화기(114)에 의해 암호화된 랜덤 넘버(ERD)를 네트워크(105)를 통해 저장 서버(30)에 저장할 수 있다. 로컬 컨트롤러(111)는 제 2 및 제 3 인터페이스들(102, 103)을 통해 저장 매체(130) 및 통신기(140)와 각각 통신한다. 로컬 컨트롤러(111)는 제 2 인터페이스(102)를 통해 암호화된 입력값 세트(EINVS)를 저장 매체(130)에 기입(write)하고, 제 3 인터페이스(103)를 통해 통신기(140)를 제어함으로써 암호화된 랜덤 넘버(ERD)를 저장 서버(30)에 저장할 수 있다.The
사용자 단말기(100)는 사용자로부터 비밀번호를 재차 입력받지 않고도 이전에 입력된 비밀번호 혹은 비밀번호와 연관된 데이터를 이용한 동작들이 요구될 수 있다. 예를 들면, 사용자 단말기(100)는 비밀번호를 수신하는 사용자 입력없이, 웹 서버(20)와 통신하여 사용자 인증을 위한 동작들을 수행할 수 있다. 이러한 경우, 비밀번호 혹은 비밀번호와 연관된 데이터의 복원이 요구된다.The
비밀번호 혹은 비밀번호와 연관된 데이터를 요청하는 제 2 커맨드 신호가 채널(CH)을 통해 컨트롤러(110)에 수신될 수 있다. 로컬 컨트롤러(111)는 분산 저장된 암호화된 랜덤 넘버와 암호화된 입력값 세트를 저장 매체(130) 및 저장 서버(30)로부터 획득할 수 있다. 실시 예들에서, 로컬 컨트롤러(111)는 제 2 인터페이스(102)를 통해 저장 매체(130)로부터 암호화된 입력값 세트를 독출하고, 제 3 인터페이스(103)를 통해 통신기(140)를 제어함으로써 저장 서버(30)로부터 암호화된 랜덤 넘버를 획득할 수 있다.A second command signal for requesting a password or data associated with the password may be received by the
암복호화기(114)는 암호화된 랜덤 넘버 및 암호화된 입력값 세트를, 예를 들면 RSA(Rivest Shamir Adleman) 알고리즘을 통해 복호화하여 랜덤 넘버 및 입력값 세트를 복원하도록 구성된다. 나아가, 로컬 컨트롤러(111)는 복원된 랜덤 넘버(RD) 및 복원된 입력값 세트(INVS)를 가상 키패드 드라이버(113)에 제공하고, 가상 키패드 드라이버(113)는 복원된 랜덤 넘버(RD) 및 복원된 입력값 세트(INVS)를 이용하여 비밀번호를 복원할 수 있다. 예를 들면, 가상 키패드 드라이버(113)는 복원된 입력값 세트(INVS)에 따라 비밀번호로서 선택되었던 비밀번호 입력 영역(230)의 버튼 영역들을 결정하고 복원된 랜덤 넘버(RD)에 따라 선택되었던 버튼 영역들에 대응하는 문자들을 결정함으로써, 비밀번호를 복원할 수 있다.The
복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다. 예를 들면, 복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 채널(CH)을 통해 연결된 사용자 단말기(100) 내 다른 구성 요소에 제공될 수 있다.The recovered random number RD and the restored input value set INVS or the recovered password may be provided as a feedback signal for the second command signal. For example, the restored random number RD and the restored input value set INVS or the restored password may be provided to other components in the
실시 예들에서, 로컬 컨트롤러(111), 랜덤 넘버 생성기(112), 가상 키패드 드라이버(113), 및 암복호화기(114) 각각은 하드웨어 모듈, 소프트웨어 모듈, 펌웨어 모듈, 및 그것들의 조합 중 적어도 하나로서 제공될 수 있다.In embodiments, each of the
본 발명의 실시 예에 따르면, 사용자 단말기(100)는 랜덤 넘버(RD)에 기반한 제 1 데이터(예를 들면, 암호화된 랜덤 넘버) 및 입력값 세트(INVS)에 기반한 제 2 데이터(예를 들면, 암호화된 입력값 세트)를 저장 매체(130) 및 외부의 저장 서버(30)에 분산 저장하도록 구성된다. 앞서 설명된 바와 같이, 가상 키패드(220, 도 3 참조)의 배열은 랜덤 넘버(RD)에 따라 변하므로 랜덤 넘버(RD) 없이 입력값 세트(INVS)를 이용하여 비밀번호를 복원하는 것은 매우 어렵다. 마찬가지로, 입력값 세트(INVS) 없이 랜덤 넘버(RD)를 이용하여 비밀번호를 복원하는 것은 매우 어렵다. 이에 따라, 저장 매체(130) 및 저장 서버(30) 중 어느 하나의 데이터가 유출되더라도, 저장 매체(130) 및 저장 서버(30) 모두의 데이터가 유출되지 않는 한 비밀번호는 안전하게 보호될 수 있다. 이는, 가상 키패드(220)를 통해 비밀번호를 입력받는 사용자 단말기(100)가 랜덤 넘버(RD) 및 입력값 세트(INVS)를 비밀번호와 연관된 데이터로서 제공하도록 구성된다는 점을 고려할 때, 가상 키패드(220)를 지원하는 사용자 단말기(100) 및 그것을 포함하는 네트워크 시스템(1)에 향상된 보안성을 제공함을 의미할 수 있다. 따라서, 사용자 비밀번호에 대해 향상된 보안성을 갖는 사용자 단말기(100) 및 그것을 포함하는 네트워크 시스템(1)이 제공될 수 있다.According to an embodiment of the present disclosure, the
도 6은 본 발명의 실시 예에 따라 사용자 단말기에서 사용자로부터 입력되는 비밀번호를 처리하는 방법을 보여주는 순서도이다.6 is a flowchart illustrating a method of processing a password input from a user in a user terminal according to an exemplary embodiment of the present invention.
도 1 및 도 6을 참조하면, S110단계에서, 가상 키패드를 호출하는 제 1 커맨드 신호에 응답하여, 랜덤 넘버가 생성된다. 예를 들면, 사용자 단말기(10)에 설치된 응용 어플리케이션은 가상 키패드(220, 도 3 참조)의 생성을 위해 제 1 커맨드 신호를 생성할 수 있다.1 and 6, in step S110, in response to the first command signal for calling the virtual keypad, a random number is generated. For example, an application installed in the
S120단계에서, 랜덤 넘버에 따라 가상 키패드(220)가 생성 및 디스플레이된다. 가상 키패드(220)의 배열은 랜덤 넘버에 따라 변경된다. In operation S120, the
S130단계에서, 다른 가상 키패드(220)가 요청되는지 여부가 판별된다. 만약 그렇다면, S110단계 내지 S120단계가 재수행된다. 예를 들면, 가상 키패드(220)의 재배열 버튼(223, 도 3 참조)을 선택하는 사용자 입력이 수신될 때, 제 1 커맨드 신호가 다시 생성되고, 생성된 제 1 커맨드 신호에 응답하여 S110단계 및 S120단계가 재수행될 수 있다. 만약 그렇지 않다면, S140단계가 수행된다.In step S130, it is determined whether another
S140단계에서, 가상 키패드(220)의 복수의 버튼 영역들을 비밀번호로서 선택하는 사용자 입력들이 감지된다. 예를 들면, 문자들(221, 도 3 참조)로 채워진 버튼 영역들 중 적어도 일부가 사용자 입력들에 의해 선택될 수 있으며, 비활성 심볼들(222, 도 3 참조)로 채워진 버튼 영역들은 선택될 수 없다. S150단계에서, 선택된 버튼 영역들에 각각 대응하는 입력값들이 결정된다.In operation S140, user inputs for selecting a plurality of button areas of the
S160단계에서, 랜덤 넘버와 입력값 세트 각각이 암호화된다. 예를 들면, RSA(Rivest Shamir Adleman) 알고리즘을 통해 랜덤 넘버와 입력값 세트가 암호화될 수 있다. S170단계에서, 암호화된 랜덤 넘버와 암호화된 입력값 세트가 내부 저장 매체(130, 도 2 참조) 및 외부 저장 서버(30)에 분산 저장된다. 실시 예들에서, 암호화된 입력값 세트는 내부 저장 매체(130)에 저장되고, 암호화된 랜덤 넘버는 외부 저장 서버(30)에 저장될 수 있다.In step S160, each of the random number and the input value set is encrypted. For example, a random number and a set of input values may be encrypted through a Rivest Shamir Adleman (RSA) algorithm. In operation S170, the encrypted random number and the encrypted input value set are distributed and stored in the internal storage medium 130 (see FIG. 2) and the
도 7은 본 발명의 실시 예에 따른 비밀번호를 제공하는 제공하는 방법을 보여주는 순서도이다.7 is a flowchart illustrating a method of providing a password according to an embodiment of the present invention.
도 1 및 도 7을 참조하면, S210단계에서, 비밀번호 혹은 비밀번호와 연관된 데이터를 요청하는 제 2 커맨드 신호에 응답하여, 외부 저장 서버(30)에 액세스하여 암호화된 랜덤 넘버를 획득한다. S220단계에서, 암호화된 입력값 세트가 내부 저장 매체(130, 도 2 참조)로부터 독출된다.1 and 7, in step S210, in response to a second command signal for requesting a password or data associated with a password, the
S230단계에서, 암호화된 랜덤 넘버와 암호화된 입력값 세트 각각이 복호화되어 랜덤 넘버 및 입력값 세트를 복원한다. 구현 례에 따라, 제 2 커맨드 신호에 대한 피드백 신호로서 복원된 랜덤 넘버 및 복원된 입력값 세트가 비밀번호와 연관된 데이터로서 제공될 수 있다.In operation S230, each of the encrypted random number and the encrypted input value set is decrypted to recover the random number and the input value set. According to an implementation example, a random number restored as a feedback signal for the second command signal and a restored set of input values may be provided as data associated with the password.
구현 례에 따라, 제 2 커맨드 신호에 대한 피드백 신호로서 비밀번호의 제공이 요구될 수 있다. 이러한 경우, S240단계가 더 수행될 수 있다. S240단계에서, 복호화된 랜덤 넘버와 복호화된 입력값 세트에 따라 비밀번호가 복원된다. 예를 들면, 복호화된 입력값 세트(INVS)에 따라 비밀번호로서 선택되었던 비밀번호 입력 영역(230, 도 3 참조)의 버튼 영역들이 결정되고 복호화된 랜덤 넘버(RD)에 따라 선택되었던 버튼 영역들에 대응하는 문자들(221, 도 3 참조)이 결정되어 비밀번호를 복원할 수 있다. 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다.According to an implementation example, provision of a password may be required as a feedback signal for the second command signal. In this case, step S240 may be further performed. In operation S240, the password is restored according to the decrypted random number and the decrypted input value set. For example, the button areas of the password input area 230 (refer to FIG. 3) that were selected as the password according to the decrypted input value set INVS are determined and correspond to the button areas that were selected according to the decrypted random number RD. The characters 221 (see FIG. 3) may be determined to restore the password. The recovered password may be provided as a feedback signal for the second command signal.
본 발명의 실시 예에 따르면, 랜덤 넘버에 기반한 제 1 데이터(예를 들면, 암호화된 랜덤 넘버) 및 입력값 세트에 기반한 제 2 데이터(예를 들면, 암호화된 입력값 세트)는 저장 매체(130) 및 외부의 저장 서버(30)에 분산 저장된다. 이에 따라, 저장 매체(130) 및 저장 서버(30) 중 어느 하나의 데이터가 유출되더라도, 저장 매체(130) 및 저장 서버(30) 모두의 데이터가 유출되지 않는 한 비밀번호는 안전하게 보호될 수 있다. 따라서, 사용자 비밀번호에 대해 향상된 보안성을 갖는 사용자 비밀번호의 처리 방법이 제공될 수 있다.According to an embodiment of the present invention, the first data (eg, encrypted random number) based on the random number and the second data (eg, encrypted input value set) based on the input value set are stored in the storage medium 130. ) And externally stored in the
도 8은 본 발명의 다른 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.8 is a block diagram illustrating a user terminal according to another exemplary embodiment.
도 8을 참조하면, 사용자 단말기(1000)는 통신기(1100), A/V(Audio/Video) 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 프로세서(1600), 및 시스템 메모리(1700)를 포함한다.Referring to FIG. 8, the
통신기(1100)는 이동 통신망 상에서 기지국, 외부의 서버, 및 외부의 단말 중 적어도 하나와 무선 신호를 송신하도록 구성된다. 이때, 무선 신호는 음성 호 신호, 화상 통화 호 신호, 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 타입들의 데이터를 포함할 수 있다. 또한, 통신기(1100)는 무선 인터넷에 접속하도록 구성된다. 나아가, 통신기(1100)는 근거리 통신을 수행하도록 구성되며, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), 지그비(ZigBee) 등의 근거리 통신 기술들이 이용될 수 있다. 통신기(1100)는 도 2를 참조하여 설명된 통신기(140)로서 제공될 수 있다.The
A/V 입력기(1200)는 오디오 신호 및 비디오 신호의 입력을 위한 것으로, 카메라를 포함할 수 있다. 카메라는 이미지 센서에 의해 얻어지는 이미지를 처리한다. 카메라에 의해 처리된 이미지는 시스템 메모리(1700)에 저장되거나 통신기(1100)를 통해 외부로 전송될 수 있다.The A /
사용자 인터페이스(1300)는 사용자 단말기(1000) 혹은 프로세서(1600)의 동작들을 제어하기 위한 사용자 입력을 수신한다. 사용자 인터페이스(1300)는 키 패드(key pad), 돔 스위치(dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치, 핑거 마우스 등을 포함할 수 있다. 특히, 터치 패드가 디스플레이 장치(1400)와 일체로 형성되는 경우, 이를 터치 스크린(touch screen)이라 부를 수 있다. 이러한 경우, 사용자 인터페이스(1300)는 디스플레이 장치(1400)에 의해 시각화될 수 있다.The
디스플레이 장치(1400)는 프로세서(1600)의 제어에 응답하여 동작한다. 디스플레이 장치(1400)는 사용자 단말기(1000) 혹은 프로세서(1600)에 의해 처리되는 정보를 표시한다. 예를 들면, 디스플레이 장치(1400)는 프로세서(1600)의 제어에 따라 이미지를 디스플레이할 수 있다. 디스플레이 장치(1400)가 터치 패드와 일체로 형성되어 터치 스크린을 구성하는 경우, 디스플레이 장치(1400)는 사용자 인터페이스(1300)를 시각화할 수 있다. 디스플레이 장치(1400)는 도 2의 디스플레이 장치(120)로서 제공될 수 있다.The
디스플레이 장치(1400)는 액정 디스플레이(liquid crystal display), 유기 발광 다이오드(organic light-emitting diode) 디스플레이, 플렉서블 디스플레이(flexible display) 등 다양한 타입의 디스플레이 장치들 중 적어도 하나를 포함할 수도 있다.The
불휘발성 저장 매체(1500)는 플래시 메모리(flash memory type), 하드 디스크 (hard disk type), 멀티미디어 카드(multimedia card) 등 중 적어도 하나일 수 있다. 불휘발성 저장 매체(1500)는 프로세서(1600)의 제어에 응답하여 데이터를 기입하고 독출하도록 구성된다. 불휘발성 저장 매체(1500)는 도 2의 저장 매체(130)로서 제공될 수 있다.The
통신기(1100), A/V(Audio/Video) 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 프로세서(1600), 및 시스템 메모리(1700)를 서로 연결하여 통신 인터페이스를 제공하는 시스템 버스가 더 제공될 수 있다. 이때, 시스템 버스는 도 2의 제 1 내지 제 3 인터페이스들(101~103)로서 제공될 수 있다.The
프로세서(1600)는 범용 혹은 전용 프로세서 중 어느 하나를 포함할 수 있으며, 통신기(1100), A/V 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 및 시스템 메모리(1700)의 동작들을 제어한다.The
프로세서(1600)는 실행될 때 다양한 기능들을 제공하는 명령어들을 포함하는 프로그램 코드들을 불휘발성 저장 매체(1500)로부터 시스템 메모리(1700)에 로딩하고, 로딩된 프로그램 코드들을 실행하도록 구성된다. 프로세서(1600)는 프로세서(1600)에 의해 실행될 때 도 2를 참조하여 설명된 컨트롤러(110)의 기능들을 수행하는 가상 키패드 모듈(1710)을 시스템 메모리(1700)에 로딩하고, 로딩된 가상 키패드 모듈(1710)을 실행할 수 있다. 예를 들면, 가상 키패드 모듈(1710)은, 프로세서(1600)에 의해 실행될 때, 로컬 컨트롤러(111)의 기능들을 수행하기 위한 명령어들, 랜덤 넘버 생성기(112)의 기능들을 수행하기 위한 명령어들, 그리고 가상 키패드 드라이버(113)의 기능들을 수행하기 위한 명령어들을 포함할 수 있다. 가상 키패드 모듈(1710)은, 프로세서(1600)에 의해 실행될 때, 가상 키패드를 추가적인 사용자 인터페이스로서 디스플레이 장치(140)에 디스플레이(혹은 시각화)하고, 사용자 인터페이스(1300)를 이용하여 가상 키패드의 버튼 영역들을 선택하는 사용자 입력들을 감지할 수 있다.The
실시 예들에서, 시스템 메모리(1700)는 프로세서(1600)의 워킹 메모리로서 제공될 수 있다. 도 8에서, 시스템 메모리(1700)는 프로세서(1600)와 분리된 구성 요소로서 도시되어 있으나, 이는 예시적인 것으로 시스템 메모리(1700)의 적어도 일부는 프로세서(1600) 내에 통합될 수 있다. 실시 예들에서, 시스템 메모리(1700)는 버퍼 메모리로서 제공될 수 있다.In embodiments, the
시스템 메모리(1700)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 및 다른 타입들의 컴퓨터에 의해 판독 가능한 저장 매체들 중 적어도 하나를 포함할 수 있다.The
도 9는 도 8의 사용자 단말기와 통신할 수 있는 클라이언트 서버를 보여주는 블록도이다.9 is a block diagram illustrating a client server capable of communicating with the user terminal of FIG. 8.
본 발명의 실시 예에 따르면, 도 8의 사용자 단말기(1000)에 의해 실행되는 프로그램 코드들은 클라이언트 서버(2000)로부터 제공될 수 있다. 도 9를 참조하면, 클라이언트 서버(2000)는 통신기(2100), 프로세서(2200), 및 데이터베이스(2300)를 포함할 수 있다. 통신기(2100)는 네트워크(5, 도 1 참조)를 통해 사용자 단말기(1000)와 통신할 수 있다. 데이터베이스(2300)는 사용자 단말기(1000) 및/또는 도 8의 프로세서(1600)에 의해 실행될 수 있는 프로그램 코드들, 예를 들면 도 8의 가상 키패드 모듈(1710) 혹은 가상 키패드 모듈(1710)을 포함하는 응용 어플리케이션을 저장할 수 있다. 프로세서(2200)는 사용자 단말기(1000)로부터의 요청에 응답하여, 데이터베이스(2300)에 저장된 프로그램 코드들을 통신기(2100)를 통해 사용자 단말기(1000)에 제공할 수 있다. 프로그램 코드들은 사용자 단말기(1000)에 설치되어 실행될 수 있다.According to an embodiment of the present disclosure, program codes executed by the
비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.Although specific embodiments and application examples have been described herein, these are provided only to aid a more general understanding of the present invention, and the present invention is not limited to the above embodiments, and has ordinary skill in the art to which the present invention pertains. Many modifications and variations are possible in this disclosure from this disclosure.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents and equivalents of the claims, as well as the appended claims, will belong to the scope of the present invention. .
10: 사용자 단말기
20: 웹 서버
30: 저장 서버
110: 컨트롤러
120: 디스플레이 장치
130: 저장 매체
140: 통신기10: user terminal
20: web server
30: storage server
110: controller
120: display device
130: storage medium
140: communicator
Claims (17)
디스플레이 장치;
저장 매체; 및
상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 컨트롤러를 포함하되,
상기 컨트롤러는,
랜덤 넘버를 제공하도록 구성되는 랜덤 넘버 생성기;
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고, 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하도록 구성되는 가상 키패드 드라이버; 및
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 로컬 컨트롤러를 포함하는 사용자 단말기.A user terminal for processing a password input from a user:
Display devices;
Storage media; And
A controller configured to control the display device and the storage medium,
The controller,
A random number generator configured to provide a random number;
Displaying a virtual keypad including a plurality of button regions on the display device, changing an arrangement of the virtual keypad according to the random number, and selecting the plurality of button regions as the password; A virtual keypad driver configured to determine input values respectively corresponding to button areas; And
And a local controller configured to distribute and store the first data based on the random number and the second data based on the input values in an external server and the storage medium.
상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되,
상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고,
상기 제 2 데이터는 상기 암호화된 입력값들을 포함하는 사용자 단말기.The method of claim 1,
The local controller comprises an encrypter configured to encrypt the random number and to encrypt the input values,
The first data includes the encrypted random number,
The second data comprises the encrypted input values.
상기 암호화기는 상기 랜덤 넘버 및 상기 입력값들을 RSA(Rivest Shamir Adleman) 알고리즘을 통해 암호화하도록 구성되는 사용자 단말기.The method of claim 2,
And the encryptor is configured to encrypt the random number and the input values through a Rivest Shamir Adleman (RSA) algorithm.
디스플레이 장치;
저장 매체; 및
상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 프로세서를 포함하되,
상기 프로세서는,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 제 1 커맨드 신호에 응답하여 생성되는 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하고;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 사용자 단말기.A user terminal for processing a password input from a user:
Display devices;
Storage media; And
A processor configured to control the display device and the storage medium,
The processor,
Displaying a virtual keypad including a plurality of button regions on the display device, wherein the arrangement of the virtual keypad is changed according to a random number generated in response to a first command signal;
Determine input values respectively corresponding to the selected button regions in response to user inputs for selecting the plurality of button regions with the password;
And distribute the first data based on the random number and the second data based on the input values to an external server and the storage medium.
네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되,
상기 프로세서는 상기 제 1 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 저장 매체에 저장하도록 구성되는 사용자 단말기.The method of claim 4, wherein
Further comprising a communicator configured to communicate with the external server via a network,
And the processor is configured to store the first data in the external server through the communicator and store the second data in the storage medium.
상기 프로세서는,
제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 저장 매체로부터 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성되는 사용자 단말기.The method of claim 5, wherein
The processor,
Access the external server in response to a second command signal to obtain the first data;
And restore the random number based on the obtained first data and restore the input values based on the second data read from the storage medium.
상기 프로세서는,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하도록 구성되는 사용자 단말기.The method of claim 6,
The processor,
And restore the password according to the restored random number and the restored input values.
상기 프로세서는 상기 획득된 제 1 데이터를 복호화하고 상기 독출된 제 2 데이터를 복호화하도록 구성되고,
상기 복호화된 제 1 데이터는 상기 복원된 랜덤 넘버를 포함하고,
상기 복호화된 제 2 데이터는 상기 복원된 입력값들을 포함하는 사용자 단말기.The method of claim 6,
The processor is configured to decode the obtained first data and to decode the read second data,
The decoded first data includes the reconstructed random number,
The decoded second data includes the restored input values.
네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되,
상기 프로세서는 상기 제 1 데이터를 상기 저장 매체에 저장하고 상기 제 2 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하도록 구성되는 사용자 단말기.The method of claim 4, wherein
Further comprising a communicator configured to communicate with the external server via a network,
And the processor is configured to store the first data in the storage medium and store the second data in the external server via the communicator.
제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계;
복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계; 및
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 내부 저장 매체에 분산 저장하는 단계를 포함하는 방법.A method for processing passwords input from a user:
Generating a random number in response to the first command signal;
Displaying a virtual keypad including a plurality of button regions on a display device, wherein the arrangement of the virtual keypad is changed according to the random number;
Determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as the password; And
Distributing and storing the first data based on the random number and the second data based on the input values in an external server and an internal storage medium.
상기 분산 저장하는 단계는,
상기 제 1 데이터를 네트워크를 통해 상기 외부 서버에 저장하는 단계; 및
상기 제 2 데이터를 상기 내부 저장 매체에 저장하는 단계를 포함하는 방법.The method of claim 10,
The distributed storage step,
Storing the first data on the external server via a network; And
Storing the second data on the internal storage medium.
제 2 커맨드 신호에 응답하여, 상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계;
상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계; 및
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함하는 방법.The method of claim 11,
In response to a second command signal, accessing the external server via the network to obtain the first data;
Restoring the random number based on the obtained first data;
Reading the second data from the storage medium; And
Restoring the input values based on the read second data.
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하는 단계를 더 포함하는 방법.The method of claim 12,
Restoring the password according to the restored random number and the restored input values.
상기 통신기를 통해 사용자 단말기와 통신하도록 구성되는 프로세서; 및
상기 사용자 단말기에 의해 실행될 프로그램 코드들을 저장하는 데이터베이스를 포함하되,
상기 프로그램 코드들은,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 사용자 단말기의 디스플레이 장치에 표시하되, 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하기 위한 제 1 명령어들;
상기 복수의 버튼 영역들을 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하기 위한 제 2 명령어들;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 상기 사용자 단말기의 외부 서버 및 상기 사용자 단말기의 내부 저장 매체에 분산 저장하기 위한 제 3 명령어들을 포함하는 클라이언트 서버.A communicator;
A processor configured to communicate with a user terminal via the communicator; And
A database storing program codes to be executed by the user terminal,
The program codes,
First instructions for displaying a virtual keypad including a plurality of button regions on a display device of the user terminal, and for changing an arrangement of the virtual keypad according to a random number;
Second instructions for determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as a password;
And third instructions for distributedly storing first data based on the random number and second data based on the input values in an external server of the user terminal and an internal storage medium of the user terminal.
상기 제 3 명령어들은,
상기 제 1 데이터를 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 내부 저장 매체에 저장하기 위한 명령어들을 포함하는 클라이언트 서버.The method of claim 14,
The third instructions,
Instructions for storing the first data on the external server and storing the second data on the internal storage medium.
상기 프로그램 코드들은,
상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고;
상기 저장 매체로부터 상기 제 2 데이터를 독출하고;
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하기 위한 제 4 명령어들을 더 포함하는 클라이언트 서버.The method of claim 15,
The program codes,
Access the external server to obtain the first data;
Restore the random number based on the obtained first data;
Read the second data from the storage medium;
And fourth instructions for restoring the input values based on the read second data.
상기 프로그램 코드들은,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하기 위한 제 5 명령어들을 더 포함하는 클라이언트 서버.
The method of claim 16,
The program codes,
And fifth instructions for restoring the password according to the restored random number and the restored input values.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180098165A KR102118476B1 (en) | 2018-08-22 | 2018-08-22 | Device and method to process password input from user |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180098165A KR102118476B1 (en) | 2018-08-22 | 2018-08-22 | Device and method to process password input from user |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200022258A true KR20200022258A (en) | 2020-03-03 |
KR102118476B1 KR102118476B1 (en) | 2020-06-03 |
Family
ID=69937975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180098165A KR102118476B1 (en) | 2018-08-22 | 2018-08-22 | Device and method to process password input from user |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102118476B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111324A (en) * | 2021-04-21 | 2021-07-13 | 北京京东方传感技术有限公司 | Identity verification method and terminal |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070010557A (en) * | 2005-07-19 | 2007-01-24 | 소프트포럼 주식회사 | Preventing method for hacking key input data |
KR101129894B1 (en) * | 2010-04-21 | 2012-03-28 | 루멘소프트 (주) | Method for preventing memory hacking usign image and system thereof |
-
2018
- 2018-08-22 KR KR1020180098165A patent/KR102118476B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070010557A (en) * | 2005-07-19 | 2007-01-24 | 소프트포럼 주식회사 | Preventing method for hacking key input data |
KR101129894B1 (en) * | 2010-04-21 | 2012-03-28 | 루멘소프트 (주) | Method for preventing memory hacking usign image and system thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111324A (en) * | 2021-04-21 | 2021-07-13 | 北京京东方传感技术有限公司 | Identity verification method and terminal |
Also Published As
Publication number | Publication date |
---|---|
KR102118476B1 (en) | 2020-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103718187B (en) | Input via the safety of touch screen | |
US10171428B2 (en) | Confidential data management method and device, and security authentication method and system | |
CN108769027B (en) | Secure communication method, device, mobile terminal and storage medium | |
EP3086587B1 (en) | Method and apparatus for transmitting and receiving encrypted message between terminals | |
AU2022204797B2 (en) | Raw sensor input encryption for passcode entry security | |
CN110704860A (en) | Longitudinal federal learning method, device and system for improving safety and storage medium | |
CN110347723A (en) | A kind of data query method, system and electronic equipment and storage medium | |
US20140324708A1 (en) | Raw sensor input encryption for passcode entry security | |
CN108809906B (en) | Data processing method, system and device | |
CN104954126B (en) | Sensitive operation verification method, device and system | |
CN106778295B (en) | File storage method, file display method, file storage device, file display device and terminal | |
CN105184183A (en) | Chatting record encryption method and mobile terminal | |
CN106503507A (en) | Method and mobile terminal that a kind of password shows | |
US8639941B2 (en) | Data security in mobile devices | |
CN112636916A (en) | Data processing method, data processing device, storage medium and electronic equipment | |
KR102118476B1 (en) | Device and method to process password input from user | |
CN105743860A (en) | Method and device for converting characters | |
CN110826097A (en) | Data processing method and electronic equipment | |
TWI599903B (en) | Encryption and decryption system and encryption and decryption method of electronic device | |
CN109145644A (en) | Private key obscures and digital signature generation method, device, smart machine | |
CN109905236B (en) | Anti-quantum computing Elgamal encryption and decryption method and system based on private key pool | |
CN115589286B (en) | Data encryption and decryption method and device, electronic equipment and storage medium | |
CN114389802B (en) | Information decryption method and device, electronic equipment and readable storage medium | |
CN111050316B (en) | Card locking method and device, computer readable storage medium and terminal equipment | |
CN115276966A (en) | Data encryption method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |