KR102153666B1 - System for preventing hacking according to key logging of authentication section and MITM and method thereof - Google Patents
System for preventing hacking according to key logging of authentication section and MITM and method thereof Download PDFInfo
- Publication number
- KR102153666B1 KR102153666B1 KR1020190061231A KR20190061231A KR102153666B1 KR 102153666 B1 KR102153666 B1 KR 102153666B1 KR 1020190061231 A KR1020190061231 A KR 1020190061231A KR 20190061231 A KR20190061231 A KR 20190061231A KR 102153666 B1 KR102153666 B1 KR 102153666B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- key
- terminal
- value
- input value
- 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
-
- 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/31—User authentication
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
본 발명은 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법에 관한 것으로서, 특히 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성하고, 상기 생성된 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법에 관한 것이다.The present invention relates to a system and method for preventing hacking according to key logging of authentication section and MITM. In particular, a terminal shuffles a preset key table shared with the server using a server key provided from a server, and the shuffled Creates various types of keyboards such as circular rings and cylinders based on the key table, provides user input values according to user input on the generated keyboard and the server key to the server, and provides them from the terminal in the server The present invention relates to a system and method for preventing hacking according to key logging and MITM for providing authentication to the terminal by determining whether or not the user input value is matched with the previously stored password based on the server key.
키로깅(Keylogging, 또는 키 스트로크 로깅(Keystroke logging))은 사용자가 키보드로 PC에 입력하는 내용을 몰래 가로채어 기록하는 행위를 나타낸다. 이러한 키로깅 방법으로는 하드웨어, 소프트웨어 등을 활용한 방법에서부터 전자적, 음향기술 등을 활용한 기법까지 다양한 키로깅 방법이 존재한다.Keylogging (or keystroke logging) refers to the act of intercepting and recording what a user enters into a PC with a keyboard. As such keylogging methods, there are various keylogging methods ranging from methods using hardware and software to techniques using electronic and sound technologies.
이러한 키로깅에 따른 해킹을 방지하기 위해 단순히 키패드의 순서를 무작위로 배열하는 방법 등이 이용되고 있으나, 여전히 사용자의 좌/우/뒤에서 해당 키패드에 입력되는 입력값을 확인할 수 있고, 또한 한장의 스크린샷과 마우스 클릭 이벤트 만으로 키 정보 유출의 가능성이 존재하고 있다.In order to prevent hacking according to such keylogging, a method of simply arranging the sequence of the keypad at random is used, but it is still possible to check the input value input to the corresponding keypad from the left/right/back of the user, and also a single screen. There is a possibility of key information leakage only through shot and mouse click events.
중간자 공격(Man-in-the-middle Attack: MITM)은 장치(PC/전화)와 웹서버 사이에서 데이터 전송이 이루어지는 동안, 기술과 도구를 사용하여 공격자는 두 사이에 자신을 배치하고 데이터를 가로채는 방식이다. 대표적인 중간자 공격은 스니핑(Sniffing), 패킹 주입(Packet Injection), 세션 하이재킹(Session Hijacking), SSL 스트리핑(SSL Stripping) 등이 있다. 이러한 중간자 공격은 SSLStrip과 Port Redirect를 이용하여 사용자가 Https 보안 연결이 된 것으로 속여 중간에 계정의 키를 탈취할 수도 있다.Man-in-the-middle Attack (MITM) is where data is transmitted between a device (PC/phone) and a web server, while using technology and tools, an attacker places himself between the two and intercepts data. This is the way. Typical man-in-the-middle attacks include sniffing, packing injection, session hijacking, and SSL stripping. This man-in-the-middle attack uses SSLStrip and Port Redirect to trick a user into having a secure Https connection and steal the account key in the middle.
본 발명의 목적은 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성하고, 상기 생성된 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법을 제공하는 데 있다.An object of the present invention is to shuffle a preset key table shared with the server by using a server key provided from a server in a terminal, and generate various types of keyboards such as circular rings and cylinders based on the shuffled key table. , A user input value according to a user input on the generated keyboard and the server key are provided to the server, and whether the server matches an existing stored password based on the user input value provided from the terminal and the server key. It is to provide a hacking prevention system and method according to key logging and MITM of an authentication section that provides authentication to the terminal by determining whether to authenticate.
본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법은 미리 설정된 이벤트가 발생할 때, 단말에 의해, 키패드 형식, 입력 형식 및 단말의 식별 정보를 서버에 전송하는 단계; 상기 서버에 의해, 상기 입력 형식을 근거로 미리 설정된 크기로 구성되는 서버 키를 생성하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 서버 키를 근거로 상기 입력 형식에 대응하여 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계; 상기 단말에 의해, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하는 단계; 상기 단말에 의해, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하는 단계; 상기 단말에 의해, 상기 단말의 일측에 표시되는 키보드에 대해서 사용자 입력에 따른 입력값을 수신하는 단계; 상기 단말에 의해, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 단계; 상기 단말에 의해, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 단계; 상기 서버에 의해, 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하는 단계; 상기 서버에 의해, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하는 단계; 상기 서버에 의해, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하는 단계; 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때, 상기 서버에 의해, 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하는 단계; 상기 단말에 의해, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하는 단계; 및 상기 단말에 의해, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 단계를 포함할 수 있다.The method for preventing hacking according to the key logging of the authentication section and the MITM according to an embodiment of the present invention includes, by a terminal, transmitting a keypad format, an input format, and identification information of the terminal to a server when a preset event occurs; Generating, by the server, a server key having a preset size based on the input format; Shuffling, by the terminal, a key table previously stored in the terminal in response to the input format based on the server key transmitted from the server; Generating, by the terminal, a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format, and the input format; Displaying, by the terminal, the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user; Receiving, by the terminal, an input value according to a user input for a keyboard displayed on one side of the terminal; Generating, by the terminal, a shift-calculated user input value by performing a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard; Transmitting, by the terminal, data obtained by combining the generated shifted user input value and the server key and identification information of the terminal to the server; Separating, by the server, the server key and the shifted user input value from the data transmitted from the terminal; By the server, the preset shift operation is performed based on a value that is sequentially sorted after being shuffled using a password registered in advance in the server, the server key, and the server key in response to the received terminal identification information. Performing a shift operation to generate a comparison target input value; Determining, by the server, whether or not the generated shifted comparison target input value and the separated shifted user input value match; Transmitting, by the server, information indicating that authentication was successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match as a result of the determination; Receiving, by the terminal, information indicating that authentication transmitted from the server was successful; Outputting, by the terminal, information indicating that the received authentication was successful; And performing, by the terminal, an additional function according to success of authentication by interworking with the server.
본 발명과 관련된 일 예로서 상기 이벤트는, 상기 단말에 표시되는 특정 영역이 마우스 또는 사용자 입력에 따라 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 버튼이 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드 상의 미리 설정된 키가 선택되는 경우 및 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 상기 단말의 화면 일측에 표시되는 특정 영역 또는 특정 버튼이 사용자 입력에 따라 선택되는 경우 중 어느 하나를 포함하며, 상기 키패드 형식은, 상기 단말에 표시될 키패드의 모양으로 원형링 및 원통형 중 어느 하나를 포함하며, 상기 입력 형식은, 숫자 형식, 문자 형식, 특수문자 형식 및 이들의 조합 형식 중 어느 하나를 포함할 수 있다.As an example related to the present invention, the event is, when a specific area displayed on the terminal is selected according to a mouse or user input, when a button of a mouse is selected while a screen for password input is displayed on the terminal , When a preset key on the keyboard is selected while the screen for password input is displayed on the terminal, and a specific area displayed on one side of the screen of the terminal while the screen for password input is displayed on the terminal, or A specific button is selected according to a user input, and the keypad format includes any one of a circular ring and a cylindrical shape as a shape of a keypad to be displayed on the terminal, and the input format is a number format, It may include any one of a character format, a special character format, and a combination format thereof.
본 발명과 관련된 일 예로서 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계는, N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로 키값을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하는 과정; 및 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위만큼 시프트하는 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는 과정을 포함하며, 상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.As an example related to the present invention, the shuffling of the key table previously stored in the terminal includes a row including a key value and a key value for an n×m type sub-key table selected from an N×M type key table. The column containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one adjacent to the column containing the key value Sequentially selecting one of the diagonal ranges of the other columns and matrix-type key tables by the size of the server key; And shuffling the key table using the server key according to a plurality of sub-shuffle methods shifting by a preset unit in a preset direction based on the plurality of sequentially selected ranges, wherein the N and M is the same or different natural number, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m may be the same or different.
본 발명과 관련된 일 예로서 상기 키보드를 생성하는 단계는, 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터를 기준으로 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬하는 과정; 및 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성하는 과정을 포함할 수 있다.As an example related to the present invention, generating the keyboard includes: sequentially sorting values included in the shuffled key table based on a preset indicator corresponding to the shuffled key table; And generating a keyboard composed of the sequentially arranged values by sequentially arranging the sequentially arranged values on a circular ring or cylindrical keyboard corresponding to the keypad type.
본 발명과 관련된 일 예로서 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버에 의해, 인증이 실패하였음을 나타내는 정보를 상기 단말에 전송하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하는 단계; 및 상기 단말에 의해, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력하는 단계를 더 포함할 수 있다.As an example related to the present invention, when the determination result, when the shift-calculated comparison target input value and the shift-calculated user input value do not match, information indicating that authentication has failed is transmitted to the terminal by the server. Step to do; Receiving, by the terminal, information indicating that authentication transmitted from the server has failed; And outputting, by the terminal, information indicating that the received authentication has failed.
본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템은 미리 설정된 이벤트가 발생할 때, 키패드 형식, 입력 형식 및 단말의 식별 정보를 상기 서버에 전송하고, 상기 전송에 응답하여 상기 서버로부터 전송되는 서버 키를 수신하고, 상기 서버 키를 근거로 상기 입력 형식에 대응하여 단말에 미리 저장된 키 테이블을 셔플하고, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하고, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하고, 사용자 입력에 따른 입력값을 수신하고, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하고, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 상기 단말; 및 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하고, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하고, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하고, 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 서버를 포함할 수 있다.The key logging of the authentication section and the hacking prevention system according to the MITM according to the embodiment of the present invention transmits the keypad format, input format and terminal identification information to the server when a preset event occurs, and in response to the transmission, the Receiving a server key transmitted from a server, shuffling a key table previously stored in the terminal corresponding to the input format based on the server key, and circular ring based on the shuffled key table, the keypad format, and the input format Alternatively, to generate a cylindrical keyboard, display the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user, receive an input value according to a user input, and the received input value, the Data obtained by performing a preset shift operation based on a server key and values arranged in a sequence corresponding to the keyboard to generate a shifted user input value, and combining the generated shifted user input value and the server key And the terminal transmitting identification information of the terminal to the server. And separating the server key and the shifted user input value from the data transmitted from the terminal, and using a password previously registered in the server, the server key, and the server key in response to the received terminal identification information. After being shuffled, the preset shift operation is performed on the basis of the sequentially sorted values to generate a shifted comparison target input value, and the generated shifted comparison target input value and the separated shifted user A server that determines whether the input values match or not, and transmits, to the terminal, information indicating that authentication is successful when the shift-calculated comparison target input value and the shift-calculated user input value match. I can.
본 발명과 관련된 일 예로서 상기 단말은, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하고, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행할 수 있다.As an example related to the present invention, the terminal receives information indicating that the authentication was successful transmitted from the server, outputs information indicating that the received authentication was successful, and interlocks with the server to determine the authentication success. Additional functions can be performed.
본 발명은 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공함으로써, 키로깅과 중간자 공격에 따른 해킹을 방지할 수 있는 효과가 있다.The present invention shuffles a preset key table shared with the server using a server key provided from a server in a terminal, and generates various types of dynamic keyboards such as circular rings and cylinders based on the shuffled key table, A user input value according to a user input on the generated dynamic keyboard and the server key are provided to the server, and the server key validity and previously stored based on the user input value provided from the terminal and the server key in the server It is possible to prevent hacking due to keylogging and man-in-the-middle attacks by determining whether the password matches or not and providing the authentication status to the terminal.
도 1은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 단말의 구성을 나타낸 블록도이다.
도 3 내지 도 5는 본 발명의 실시예에 따른 키 테이블의 예를 나타낸 도이다.
도 6은 본 발명의 실시예에 따른 원통형 셔플 방식의 예를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 복수의 인디케이터로 구성되는 원형링의 예를 나타낸 도이다.
도 8은 본 발명의 실시예에 따른 복수의 인디케이터로 구성되는 원통형의 예를 나타낸 도이다.
도 9 내지 도 10은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 셔플 과정의 예를 나타낸 도이다.
도 12는 본 발명의 실시예에 따른 원형링 형태의 키보드의 예를 나타낸 도이다.
도 13은 본 발명의 실시예에 따른 시프트 연산된 사용자 입력값의 생성 예를 나타낸 도이다.1 is a block diagram showing the configuration of a hacking prevention system according to the key logging of an authentication section and MITM according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a terminal according to an embodiment of the present invention.
3 to 5 are diagrams showing an example of a key table according to an embodiment of the present invention.
6 is a diagram showing an example of a cylindrical shuffle method according to an embodiment of the present invention.
7 is a diagram showing an example of a circular ring composed of a plurality of indicators according to an embodiment of the present invention.
8 is a diagram showing an example of a cylinder composed of a plurality of indicators according to an embodiment of the present invention.
9 to 10 are flowcharts illustrating a method for preventing hacking according to the key logging of an authentication section and MITM according to an embodiment of the present invention.
11 is a diagram showing an example of a shuffle process according to an embodiment of the present invention.
12 is a diagram showing an example of a keyboard in the form of a circular ring according to an embodiment of the present invention.
13 is a diagram illustrating an example of generating a user input value subjected to a shift operation according to an embodiment of the present invention.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are used only to describe specific embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as generally understood by those of ordinary skill in the technical field to which the present invention belongs, unless otherwise defined in the present invention, and is excessively comprehensive. It should not be construed as a human meaning or an excessively reduced meaning. In addition, when a technical term used in the present invention is an incorrect technical term that does not accurately express the spirit of the present invention, it should be replaced with a technical term that can be correctly understood by those skilled in the art. In addition, general terms used in the present invention should be interpreted as defined in the dictionary or according to the context before and after, and should not be interpreted as an excessively reduced meaning.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.In addition, the singular expression used in the present invention includes a plurality of expressions unless the context clearly indicates otherwise. In the present invention, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the invention, and some components or some steps may not be included. It should be construed that it may or may further include additional components or steps.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe the constituent elements, but the constituent elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of the reference numerals, and redundant descriptions thereof will be omitted.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the present invention, when it is determined that a detailed description of a related known technology may obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easily understanding the spirit of the present invention and should not be construed as limiting the spirit of the present invention by the accompanying drawings.
도 1은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템(10)의 구성을 나타낸 블록도이다.1 is a block diagram showing the configuration of a
도 1에 도시한 바와 같이, 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템(10)은 단말(100) 및 서버(200)로 구성된다. 도 1에 도시된 해킹 방지 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 해킹 방지 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 해킹 방지 시스템(10)이 구현될 수도 있다.As shown in FIG. 1, the
상기 단말(100)은 스마트 폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal), 디지털 사이니지 장치, POS기기, ATM, KIOSK 등과 같은 다양한 단말기에 적용될 수 있다.The
도 2에 도시한 바와 같이, 상기 단말(100)은 통신부(110), 저장부(120), 표시부(130), 음성 출력부(140) 및 제어부(150)로 구성된다. 도 2에 도시된 단말(100)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 단말(100)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 단말(100)이 구현될 수도 있다.As shown in FIG. 2, the
상기 통신부(110)는 유/무선 통신망을 통해 내부의 임의의 구성 요소 또는 외부의 임의의 적어도 하나의 단말기와 통신 연결한다. 이때, 상기 외부의 임의의 단말기는 상기 서버(200) 등을 포함할 수 있다. 여기서, 무선 인터넷 기술로는 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS) 등이 있으며, 상기 통신부(110)는 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 데이터를 송수신하게 된다. 또한, 근거리 통신 기술로는 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct) 등이 포함될 수 있다. 또한, 유선 통신 기술로는 전력선 통신(Power Line Communication: PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.The
또한, 상기 통신부(110)는 유니버설 시리얼 버스(Universal Serial Bus: USB)를 통해 임의의 단말과 정보를 상호 전송할 수 있다.In addition, the
또한, 상기 통신부(110)는 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 상기 서버(200) 등과 무선 신호를 송수신한다.In addition, the
또한, 상기 통신부(110)는 상기 제어부(150)의 제어에 의해, 상기 서버(200)로부터 전송되는 키 테이블, 서버 키(server key) 등을 수신한다.In addition, the
상기 저장부(120)는 다양한 사용자 인터페이스(User Interface: UI), 그래픽 사용자 인터페이스(Graphic User Interface: GUI) 등을 저장한다.The
또한, 상기 저장부(120)는 상기 단말(100)이 동작하는데 필요한 데이터와 프로그램 등을 저장한다.In addition, the
즉, 상기 저장부(120)는 상기 단말(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 단말(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한, 이러한 응용 프로그램 중 적어도 일부는 단말(100)의 기본적인 기능을 위하여 출고 당시부터 단말(100) 상에 존재할 수 있다. 한편, 응용 프로그램은 상기 저장부(120)에 저장되고, 단말(100)에 설치되어, 제어부(150)에 의하여 상기 단말(100)의 동작(또는 기능)을 수행하도록 구동될 수 있다.That is, the
또한, 상기 저장부(120)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory: RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory: ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다. 또한, 단말(100)은 인터넷(internet)상에서 저장부(120)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영하거나, 또는 상기 웹 스토리지와 관련되어 동작할 수도 있다.In addition, the
또한, 상기 저장부(120)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등을 저장한다.In addition, the
상기 표시부(또는 디스플레이부)(130)는 상기 제어부(150)의 제어에 의해 상기 저장부(120)에 저장된 사용자 인터페이스 및/또는 그래픽 사용자 인터페이스를 이용하여 다양한 메뉴 화면 등과 같은 다양한 콘텐츠를 표시할 수 있다. 여기서, 상기 표시부(130)에 표시되는 콘텐츠는 다양한 텍스트 또는 이미지 데이터(각종 정보 데이터 포함)와 아이콘, 리스트 메뉴, 콤보 박스 등의 데이터를 포함하는 메뉴 화면 등을 포함한다. 또한, 상기 표시부(130)는 터치 스크린 일 수 있다.The display unit (or display unit) 130 may display various contents such as various menu screens using a user interface and/or a graphic user interface stored in the
또한, 상기 표시부(130)는 액정 디스플레이(Liquid Crystal Display: LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display: TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode: OLED), 플렉시블 디스플레이(Flexible Display), 3차원 디스플레이(3D Display), 전자잉크 디스플레이(e-ink display), LED(Light Emitting Diode) 중에서 적어도 하나를 포함할 수 있다.In addition, the
또한, 상기 표시부(130)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등을 표시한다.In addition, the
상기 음성 출력부(140)는 상기 제어부(150)에 의해 소정 신호 처리된 신호에 포함된 음성 정보를 출력한다. 여기서, 상기 음성 출력부(140)에는 리시버(receiver), 스피커(speaker), 버저(buzzer) 등이 포함될 수 있다.The
또한, 상기 음성 출력부(140)는 상기 제어부(150)에 의해 생성된 안내 음성을 출력한다.In addition, the
또한, 상기 음성 출력부(140)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등에 대응하는 음성 정보(또는 음향 효과)를 출력한다.In addition, the
상기 제어부(controller, 또는 MCU(microcontroller unit)(150)는 상기 단말(100)의 전반적인 제어 기능을 실행한다.The controller or microcontroller unit (MCU) 150 executes an overall control function of the terminal 100.
또한, 상기 제어부(150)는 상기 저장부(120)에 저장된 프로그램 및 데이터를 이용하여 단말(100)의 전반적인 제어 기능을 실행한다. 상기 제어부(150)는 RAM, ROM, CPU, GPU, 버스를 포함할 수 있으며, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다. CPU는 상기 저장부(120)에 액세스하여, 상기 저장부(120)에 저장된 O/S를 이용하여 부팅을 수행할 수 있으며, 상기 저장부(120)에 저장된 각종 프로그램, 콘텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.In addition, the
또한, 상기 제어부(150)는 상기 서버(200)와의 연동에 의해, 상기 서버(200)에서 제공하는 전용 앱 및/또는 웹 사이트를 통해 해당 서버(200)에서 제공하는 서비스(또는 콘텐츠)를 제공받기 위한 사용자로 회원 가입하며, 개인 정보 등을 상기 서버(200)에 등록한다.In addition, the
또한, 상기 제어부(150)는 해당 단말(100)의 사용자가 가입한 SNS 계정 정보를 이용하여 상기 서버(200)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 카카오 스토리 등과 관련한 정보일 수 있다. 이때, 콘텐츠를 제작하는 사용자와 콘텐츠를 이용하는 사용자에 따라, 상기 전용 앱은 서로 다른 사용자 인터페이스로 구성될 수 있다.In addition, the
또한, 회원 가입 절차 수행 시, 상기 제어부(150)는 본인 인증 수단(예를 들어 이동 전화, 신용카드, 아이핀 등 포함)을 통한 인증 기능을 완료해야 상기 서버(200)에 대한 회원 가입 절차를 정상적으로 완료할 수 있다.In addition, when performing the membership registration procedure, the
또한, 회원 가입이 완료된 후, 상기 제어부(150)는 상기 서버(200)에서 제공하는 서비스를 이용하기 위해서, 상기 서버(200)로부터 제공되는 전용 앱(또는 애플리케이션/응용 프로그램/특정 앱)을 해당 단말(100)에 설치한다. 이때, 상기 전용 앱은 상기 서버(200)에서 제공되는 서비스(또는 콘텐츠)를 제공받기 위한 앱일 수 있다.In addition, after membership registration is complete, the
또한, 비밀번호 입력 등을 위해서 미리 설정된 이벤트가 발생하는 경우, 상기 제어부(150)는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송한다. 여기서, 상기 이벤트는 표시부(130)에 표시되는 특정 영역이 마우스(미도시) 또는 사용자 입력(또는 터치)에 따라 클릭(또는 선택/터치)되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 좌측 버튼/우측 버튼/휠 버튼 중 어느 하나의 버튼이 클릭(또는 선택)되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드(미도시) 상의 미리 설정된 키(또는 복수의 키 조합)가 클릭/선택되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 표시부(130)의 화면 일측에 표시되는 특정 영역 또는 특정 버튼(또는 특정 메뉴/항목)이 사용자 입력(또는 터치)에 따라 선택(또는 터치)되는 경우 등을 포함한다. 또한, 상기 키패드 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 표시부(130)에 표시될 키패드의 모양(또는 키패드와 관련한 사용자 인터페이스/그래픽 사용자 인터페이스)으로 원형링, 원통형(또는 슬롯머신의 원통 릴) 등을 포함한다. 또한, 상기 입력 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 키패드에 표시될 숫자, 문자, 특수문자(또는 기호) 등의 형식을 지정하기 위한 것으로, 숫자 형식, 문자 형식, 특수문자 형식, 이들의 조합 형식 등을 포함한다. 또한, 상기 단말(100)의 식별 정보는 MDN(Mobile Directory Number), 모바일 IP, 모바일 MAC, Sim(subscriber identity module: 가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.In addition, when a preset event occurs for inputting a password, the
또한, 상기 제어부(150)는 앞서 전송된 키패드 형식, 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 서버 키를 상기 통신부(110)를 통해 수신한다.In addition, the
또한, 상기 제어부(150)는 상기 수신된 서버 키를 근거로 상기 입력 형식에 대응하여 상기 저장부(120)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 도 3에 도시된 바와 같은 4×4 형태의 숫자만으로 이루어진 키 테이블, 도 4에 도시된 바와 같은 6×6 형태의 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블(예를 들어 도 5에 도시된 바와 같은 숫자와 영문 소문자의 조합으로 이루어진 키 테이블) 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.In addition, the
즉, 상기 제어부(150)는 상기 입력 형식에 대응하여 상기 저장부(120)에 미리 저장된 키 테이블에서 상기 수신된 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.That is, the
또한, 원통형(또는 슬롯머신의 원통 릴)의 경우, 도 6에 도시된 바와 같이, 상기 제어부(150)는 복수의 인덱스(610)(예를 들어 1, 2, 3, 4)에 대해서 앞선 미리 순서가 설정된 셔플 방식에 따라 각각 셔플을 수행한다.In addition, in the case of a cylindrical (or cylindrical reel of a slot machine), as shown in FIG. 6, the
즉, 상기 제어부(150)는 인덱스 1에 포함된 0 ~ 9까지의 숫자에 대해서 미리 순서가 설정된 제 1 셔플 방식에 따라 셔플을 수행하고, 인덱스 2에 포함된 A ~ M까지의 영문 대문자에 대해서 미리 순서가 설정된 제 2 셔플 방식에 따라 셔플을 수행하고, 인덱스 3에 포함된 N ~ Z까지의 영문 대문자에 대해서 미리 순서가 설정된 제 3 셔플 방식에 따라 셔플을 수행하고, 인덱스 4에 포함된 복수의 특수문자(예를 들어 !, @, #, $, %, ^, &, *, (, ), <, >, ?)에 대해서 미리 순서가 설정된 제 4 셔플 방식에 따라 셔플을 수행한다.That is, the
또한, 상기 원통형의 경우, 상기 도 6에 도시된 셔플된 키 테이블 중에서 특정 부분(620)이 사용자 입력을 위한 화면으로 상기 표시부(130)에 표시되며, 사용자 제어에 따라 상기 원통이 상/하 또는 좌/우로 회전함에 따라 상기 셔플된 키 테이블 중 다른 부분이 사용자 입력을 위한 화면으로 상기 표시부(130)에 표시될 수 있다.In addition, in the case of the cylinder, a
이와 같이, 상기 제어부(150)는 상기 저장부(120)에 저장된 키 테이블을 대상으로 상기 서버 키에 대응하여 미리 순서가 설정된 복수의 서브 셔플 방식에 따라 순차로 서브 셔플을 수행하여, 최종적으로 셔플된 키 테이블을 생성할 수 있다.In this way, the
또한, 상기 제어부(150)는 상기 셔플된 키 테이블, 상기 키패드 형식, 상기 입력 형식 등을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성한다.In addition, the
즉, 상기 제어부(150)는 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터(또는 상기 N×M 행렬에서 미리 설정된 기준 위치)를 기준으로 상기 셔플된 키 테이블에 포함된 값(예를 들어 숫자, 문자, 특수문자 또는 이들 간의 조합)을 순차로 정렬한다.That is, the
또한, 상기 제어부(150)는 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬(또는 배치)하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성한다.In addition, the
또한, 상기 제어부(150)는 사용자로부터 비밀번호 등에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 표시부(130)의 일측에 표시한다.In addition, the
또한, 상기 제어부(150)는 상기 표시부(130)의 일측에 표시되는 키보드에 대해서 사용자 입력(또는 사용자 터치/제어)에 따른 입력값을 수신한다. 여기서, 상기 입력값은 숫자, 문자, 특수문자 및 이들의 조합에 따른 적어도 하나 이상의 데이터(또는 키(key))로 구성될 수 있다.In addition, the
또한, 원통형(또는 슬롯머신의 원통 릴)의 경우, 상기 표시부(130)의 일측에 표시되는 원통형의 키보드에서 일정 방향으로 회전하는 원통 내의 특정 영역이 사용자의 손가락이나 마우스에 의해 포커스된 영역(또는 부분)에서 상기 원통의 회전 방향인 일정 방향과 다른 방향으로의 방향 전환이 일어나는 경우, 상기 제어부(150)는 해당 손가락이나 마우스에 의해 포커스된 영역에 대응하는 값을 입력값으로 수신할 수 있다.In addition, in the case of a cylinder (or a cylinder reel of a slot machine), a specific area in the cylinder rotating in a certain direction in the cylindrical keyboard displayed on one side of the
예를 들어, 상기 표시부(130)의 일측에서 원통형 키보드가 위에서 아래쪽으로 회전하도록 설정되어 있고, 상기 제 1 인덱스에 대응하는 숫자 '3'이 터치된(또는 포커스된) 상태에서 사용자 터치에 따라 상기 위에서 아래쪽으로의 회전 방향과 다른 좌측에서 우측으로의 방향 전환(또는 아래쪽에서 위쪽으로의 방향 전환)이 발생할 때, 상기 제어부(150)는 상기 방향 전환이 발생한 시점에 대응하여 터치된 상태의 숫자 '3'을 제 1 입력값으로 수신한다.For example, a cylindrical keyboard is set to rotate from top to bottom on one side of the
또한, 연속하여 상기 제 2 인덱스에 대응하는 영문 대문자 'E'가 터치된 상태에서 사용자 터치에 따라 상기 위에서 아래쪽으로의 회전 방향과 다른 좌측에서 우측으로의 방향 전환(또는 아래쪽에서 위쪽으로의 방향 전환)이 발생할 때, 상기 제어부(150)는 상기 방향 전환이 발생한 시점에 대응하여 터치된 상태의 영문 대문자 'E'를 제 2 입력값으로 수신한다.In addition, in a state in which the English capital letter'E' corresponding to the second index is continuously touched, a direction change from left to right different from the direction of rotation from top to bottom according to the user's touch (or change from bottom to top) When) occurs, the
이와 같이, 상기 제어부(150)는 상기 표시부(130)에 표시되는 원통형 키보드에서 일정 영역이 터치된 상태(또는 포커스된 상태)에서 상기 원통형 키보드가 회전하는 미리 설정된 방향과 다른 방향으로의 방향 전환이 발생하는 경우, 해당 방향 전환이 발생하는 시점에서 터치된 상태(또는 포커스된 상태)의 일정 영역에 대응하는 숫자, 문자, 특수문자 등을 입력값으로 수신할 수 있다.In this way, the
또한, 본 발명의 실시예에서는 상기 인디케이터가 1개인 경우에 한해 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 인디케이터는 복수일 수도 있다.In addition, in the embodiment of the present invention, only one indicator is described, but the present invention is not limited thereto, and the number of indicators may be plural.
즉, 도 7에 도시된 바와 같이, 원형링의 키보드에 대해서, 상기 제어부(150)는 복수의 인디케이터(예를 들어 a, b, c, d)를 포함할 수 있다.That is, as shown in FIG. 7, for a circular ring keyboard, the
예를 들어, 상기 도 7에 도시된 바와 같이, 원형링의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 7에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 상기 a 인디케이터에 대응하는 6, b 인디케이터에 대응하는 4, c 인디케이터에 대응하는 9 및 d 인디케이터에 대응하는 1에 해당하는 '6491'을 입력값으로 수신할 수 있다.For example, as shown in FIG. 7, in a state in which an input value is received through a circular ring keyboard, when the state is set to the state illustrated in FIG. 7 according to a user's touch, the
다른 예를 들어, 상기 도 7에 도시된 바와 같이, 원형링의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 7에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 미리 설정된 a 인디케이터에 대응하는 6과 d 인디케이터에 대응하는 1에 해당하는 '61'을 입력값으로 수신할 수도 있다.For another example, as shown in FIG. 7, in a state in which an input value is received through a circular ring keyboard, when the state is set to the state illustrated in FIG. 7 according to a user touch, the
또한, 도 8에 도시된 바와 같이, 원통형의 키보드에 대해서, 상기 제어부(150)는 복수의 인디케이터(예를 들어 a, b, c, d, e, f)를 포함할 수 있다.In addition, as shown in FIG. 8, for a cylindrical keyboard, the
예를 들어, 상기 도 8에 도시된 바와 같이, 원통형의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 8에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 미리 설정된 a-d 라인 상에서 제 1 인덱스의 숫자 '2'가 선택된 상태에서 상기 원통형 키보드가 회전하는 제 1 방향(예를 들어 위에서 아래쪽 방향)과 반대되는 제 2 방향(예를 들어 아래쪽에서 위쪽 방향)으로의 방향 전환이 발생할 때 상기 선택된 제 1 인덱스의 숫자 '2'를 제 1 입력값으로 수신하고, 제 2 인덱스의 영문 대문자 'C'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 2 인덱스의 영문 대문자 'C'를 제 2 입력값으로 수신하고, 제 3 인덱스의 영문 대문자 'P'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 3 인덱스의 영문 대문자 'P'를 제 3 입력값으로 수신하고, 제 4 인덱스의 특수문자 '#'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 4 인덱스의 특수문자 '#'를 제 4 입력값으로 수신하여, 상기 수신된 제 1 입력값 내지 제 4 입력값을 근거로 전체 입력값(예를 들어 2CP#)을 수신할 수 있다.For example, as shown in FIG. 8, in a state in which an input value is received through a cylindrical keyboard, when the state is set to the state illustrated in FIG. 8 according to a user touch, the
이와 같이, 상기 단말(100)에 표시되는 키보드 및 그에 따른 입력값을 다른 사용자가 어깨너머로 보거나 감시를 하더라도, 어느 인디케이터를 기준으로 입력값을 수신하는지 등을 확인할 수 없게 된다.In this way, even if the keyboard displayed on the terminal 100 and the corresponding input value are viewed or monitored by another user over the shoulder, it is impossible to check which indicator the input value is received based on.
또한, 이와 같이, 상기 단말(100)에서 표시되는 키보드에 복수의 인디케이터가 포함된 경우, 상기 단말(100)은 상기 복수의 인디케이터 중에서 미리 설정된 적어도 하나의 인디케이터에 대응하는 적어도 하나의 값을 입력값으로 수신할 수 있다.In addition, as described above, when a plurality of indicators are included in the keyboard displayed on the terminal 100, the terminal 100 inputs at least one value corresponding to at least one preset indicator among the plurality of indicators. You can receive it.
또한, 상기 제어부(150)는 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값(또는 사용자 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 상기 입력값에 따라 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.In addition, the
또한, 상기 제어부(150)는 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송한다.In addition, the
이때, 상기 제어부(150)는 상기 서버 키에 포함된 복수의 숫자, 문자, 특수문자 등을 미리 설정된 비트수(예를 들어 4비트, 8비트 등 포함)의 0과 1의 조합으로 구성되는 2진수로 각각 변환하고, 상기 2진수로 변환된 서버 키와 상기 생성된 시프트 연산된 사용자 입력값을 조합하여 바이너리 형태의 상기 데이터를 생성할 수도 있다. 또한, 상기 제어부(150)는 상기 생성된 바이너리 형태의 데이터, 상기 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송할 수도 있다.At this time, the
여기서, 상기 제어부(150)는 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 미리 설정된 암호화 방식을 통해 암호화하여, 암호화된 디지털 데이터를 생성한다. 또한, 상기 제어부(150)는 상기 생성된 디지털 데이터를 상기 통신부(110)를 통해 상기 서버(200)에 전송할 수도 있다. 이때, 상기 암호화 방식은 다양한 대칭키 암호화 방식, 비대칭키 암호화 방식 등을 포함할 수 있다.Here, the
상기 서버(200)에서 생성된 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 제어부(150)는 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 상기 통신부(110)를 통해 수신한다.When the shift-calculated comparison target input value generated by the
또한, 상기 제어부(150)는 상기 수신된 인증이 실패하였음을 나타내는 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the
또한, 상기 서버(200)에서 생성된 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 제어부(150)는 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 상기 통신부(110)를 통해 수신한다.In addition, when the shift-calculated comparison target input value generated by the
또한, 상기 제어부(150)는 상기 수신된 인증이 성공하였음을 나타내는 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the
또한, 상기 제어부(150)는 상기 서버(200)와 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, the
또한, 상기 제어부(150)는 추가 기능 수행에 따른 결과 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the
본 발명의 실시예에서는 상기 단말(100)에서 웹 사이트 형태로 상기 서버(200)에서 제공하는 서비스(또는 콘텐츠/인증 기능 수행) 기능 등을 제공하는 것을 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 웹 사이트 이외에도 상기 서버(200)에서 제공하는 전용 앱(또는 특정 앱) 등을 통해 상기 서비스 기능 등을 제공할 수도 있다.In the embodiment of the present invention, it is described that the terminal 100 provides a service (or content/authentication function execution) function provided by the
상기 서버(200)는 상기 단말(100) 등과 통신한다.The
또한, 상기 서버(200)는 상기 단말(100)을 구성하는 상기 통신부(110), 상기 저장부(120), 상기 표시부(130), 상기 음성 출력부(140), 상기 제어부(150)에 대응하는 각 구성 요소를 포함하여 구성할 수 있다.In addition, the
또한, 상기 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 가입 절차 등을 수행한다.In addition, the
또한, 상기 서버(200)는 상기 단말(100) 등의 사용자와 관련한 개인 정보를 등록한다. 이때, 상기 서버(200)는 해당 개인 정보 등을 DB 서버(미도시)에 등록(또는 관리)할 수 있다.In addition, the
또한, 상기 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 관리 기능을 수행한다.In addition, the
또한, 상기 서버(200)는 해당 서버(200)에서 관리하는 다양한 서비스(또는 콘텐츠) 등을 제공하는 전용 앱 및/또는 웹 사이트를 상기 단말(100) 등에 제공한다.In addition, the
또한, 상기 서버(200)는 상기 단말(100)로부터 전송되는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 수신한다.In addition, the
또한, 상기 서버(200)는 상기 입력 형식을 근거로 고윳값을 가지며, 미리 설정된 크기로 구성되는 서버 키를 생성한다.In addition, the
이때, 상기 서버(200)는 미리 설정된 단위(또는 크기)의 숫자 범위, 문자 범위, 특수문자 범위 및 이들 간의 조합 중에서 상기 입력 형식을 근거로 랜덤하게 어느 하나를 선택하고, 상기 랜덤하게 선택된 어느 하나를 상기 서버 키로 생성할 수도 있다. 여기서, 상기 서버(200)는 입력 형식별로 미리 설정된 단위의 숫자 범위, 미리 설정된 단위의 문자 범위, 미리 설정된 단위의 특수문자 범위, 미리 설정된 단위의 숫자와 문자와 특수문자의 조합에 의한 범위 등을 관리할 수 있다.At this time, the
또한, 상기 서버(200)는 상기 생성된 서버 키를 상기 단말(100)에 전송한다.In addition, the
또한, 상기 서버(200)는 상기 단말(100)로부터 전송되는 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 단말(100)의 식별 정보 등을 수신한다.In addition, the
여기서, 상기 서버(200)에서 상기 단말(100)로부터 전송되는 암호화된 디지털 데이터를 수신하는 경우, 상기 서버(200)는 상기 수신된 암호화된 디지털 데이터를 미리 설정된 복호화 방식을 통해 복호화하여, 상기 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 상기 단말(100)의 식별 정보 등을 확인한다.Here, when the
또한, 상기 서버(200)는 상기 수신된 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리한다. 이때, 상기 서버 키가 2진수로 변환되어 상기 데이터에 포함된 경우, 상기 서버(200)는 미리 설정된 데이터 프레임 형태에 따라 미리 설정된 비트의 수를 상기 서버 키로 확인하고, 나머지 비트의 수를 상기 t시프트 연산된 사용자 입력값으로 확인할 수 있다.In addition, the
또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키, 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값 등을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.In addition, the
즉, 상기 서버(200)는 상기 생성된 서버 키를 근거로 상기 수신된 입력 형식에 대응하여 해당 서버(200)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.That is, the
이와 같이, 상기 서버(200)는 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.In this way, the
또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키 및 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다.In addition, the
이와 같이, 상기 서버(200)는 상기 단말(100)에서 사용자 입력에 따른 입력값에 대해서 상기 서버 키와 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 이용하여 상기 단말(100) 및 상기 서버(200)에서 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 방식을 적용하여, 상기 서버(200)에 미리 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호에 대해서 상기 서버 키와 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 이용하여 상기 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값을 생성할 수 있다.In this way, the
또한, 상기 서버(200)는 상기 생성된(또는 산출된) 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단(또는 확인)한다.Further, the
즉, 상기 서버(200)는 상기 서버(200)에 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호를 근거로 생성된 시프트 연산된 비교 대상 입력값과 상기 단말(100)에서 사용자 입력에 따른 입력값을 근거로 생성된 시프트 연산된 사용자 입력값이 일치하는지 여부를 판단한다.That is, the
상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 단말(100)에 전송한다.If the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value do not match, the
또한, 상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 단말(100)에 전송한다.In addition, when the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value match, the
또한, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 상기 단말(100)과 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, when the shift-calculated comparison target input value and the shift-calculated user input value match, the
또한, 상기 서버(200)는 추가 기능 수행 결과를 상기 단말(100)에 제공한다.In addition, the
이와 같이, 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공할 수 있다.In this way, the terminal shuffles the preset key table shared with the server using the server key provided from the server, and generates various types of dynamic keyboards such as circular rings and cylinders based on the shuffled key table, A user input value according to a user input on the generated dynamic keyboard and the server key are provided to the server, and the server key validity and previously stored based on the user input value provided from the terminal and the server key in the server It is possible to determine whether or not to match the password and provide the terminal with authentication.
이하에서는, 본 발명에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 도 1 내지 도 13을 참조하여 상세히 설명한다.Hereinafter, a key logging of an authentication section and a hacking prevention method according to the MITM according to the present invention will be described in detail with reference to FIGS. 1 to 13.
도 9 내지 도 10은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 나타낸 흐름도이다.9 to 10 are flowcharts illustrating a method for preventing hacking according to the key logging of an authentication section and MITM according to an embodiment of the present invention.
먼저, 비밀번호 입력 등을 위해서 미리 설정된 이벤트가 발생하는 경우, 단말(100)은 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 서버(200)에 전송한다. 여기서, 상기 이벤트는 단말(100)에 표시되는 특정 영역이 마우스(미도시) 또는 사용자 입력(또는 터치)에 따라 클릭(또는 선택/터치)되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 좌측 버튼/우측 버튼/휠 버튼 중 어느 하나의 버튼이 클릭(또는 선택)되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드(미도시) 상의 미리 설정된 키(또는 복수의 키 조합)가 클릭/선택되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 단말(100)의 화면 일측에 표시되는 특정 영역 또는 특정 버튼(또는 특정 메뉴/항목)이 사용자 입력(또는 터치)에 따라 선택(또는 터치)되는 경우 등을 포함한다. 또한, 상기 키패드 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 단말(100)에 표시될 키패드의 모양(또는 키패드와 관련한 사용자 인터페이스/그래픽 사용자 인터페이스)으로 원형링, 원통형(또는 슬롯머신의 원통 릴) 등을 포함한다. 또한, 상기 입력 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 키패드에 표시될 숫자, 문자, 특수문자(또는 기호) 등의 형식을 지정하기 위한 것으로, 숫자 형식, 문자 형식, 특수문자 형식, 이들의 조합 형식 등을 포함한다. 또한, 상기 단말(100)의 식별 정보는 MDN, 모바일 IP, 모바일 MAC, Sim(가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.First, when a preset event occurs for inputting a password or the like, the terminal 100 transmits a keypad format, an input format, and identification information of the terminal 100 to the
일 예로, 제 1 단말(100)에서 ABCD 은행에서 운영하는 웹 사이트에 접속하여 계좌 이체를 수행하기 위해서 비밀번호를 입력하고자 할 때, 상기 제 1 단말은 원형링과 관련한 제 1 키패드 형식, 숫자 형식의 제 1 입력 형식, 제 1 단말의 식별 정보 등을 상기 서버(200)에 전송한다.As an example, when the
다른 일 예로, 제 2 단말(100)에서 ZZZ 웹 사이트에 접속하여 비밀번호를 입력하고자 할 때, 상기 제 2 단말은 원통형과 관련한 제 2 키패드 형식, 숫자와 문자와 특수문자의 조합 형식의 제 2 입력 형식, 제 2 단말의 식별 정보 등을 상기 서버(200)에 전송한다(S910).As another example, when accessing the ZZZ web site from the
이후, 상기 서버(200)는 상기 단말(100)로부터 전송되는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
또한, 상기 서버(200)는 상기 입력 형식을 근거로 고윳값을 가지며, 미리 설정된 크기로 구성되는 서버 키를 생성한다.In addition, the
이때, 상기 서버(200)는 미리 설정된 단위(또는 크기)의 숫자 범위, 문자 범위, 특수문자 범위 및 이들 간의 조합 중에서 상기 입력 형식을 근거로 랜덤하게 어느 하나를 선택하고, 상기 랜덤하게 선택된 어느 하나를 상기 서버 키로 생성할 수도 있다. 여기서, 상기 서버(200)는 입력 형식별로 미리 설정된 단위의 숫자 범위, 미리 설정된 단위의 문자 범위, 미리 설정된 단위의 특수문자 범위, 미리 설정된 단위의 숫자와 문자와 특수문자의 조합에 의한 범위 등을 관리할 수 있다.At this time, the
또한, 상기 서버(200)는 상기 생성된 서버 키를 상기 단말(100)에 전송한다.In addition, the
일 예로, 상기 서버(200)는 상기 제 1 단말로부터 전송되는 제 1 키패드 형식(예를 들어 원형링), 제 1 입력 형식(예를 들어 숫자 형식), 제 1 단말의 식별 정보 등을 수신한다.For example, the
또한, 상기 서버(200)는 상기 수신된 제 1 입력 형식(예를 들어 숫자 형식 포함)을 근거로 미리 설정된 4자리 단위의 숫자 범위(예를 들어 0000, 0001, 0002, ~ , 9999) 중에서 랜덤하게 어느 하나의 숫자(예를 들어 3795)를 선택하고, 상기 선택된 어느 하나의 숫자(예를 들어 3795)를 제 1 서버 키로 생성(또는 설정)한다.In addition, the
또한, 상기 서버(200)는 상기 생성된 제 1 서버 키(예를 들어 3795)를 상기 제 1 단말에 전송한다.In addition, the
다른 일 예로, 상기 서버(200)는 상기 제 2 단말로부터 전송되는 제 2 키패드 형식, 제 2 입력 형식, 제 2 단말의 식별 정보 등을 수신한다.As another example, the
또한, 상기 서버(200)는 상기 수신된 제 2 입력 형식(예를 들어 숫자와 문자와 특수문자의 조합 형식 포함)을 근거로 미리 설정된 4자리 단위의 숫자와 문자와 특수문자의 조합의 범위 중에서 랜덤하게 어느 하나(예를 들어 5AD#)를 선택하고, 상기 선택된 어느 하나(예를 들어 5AD#)를 제 2 서버 키로 생성한다.In addition, the
또한, 상기 서버(200)는 상기 생성된 제 2 서버 키(예를 들어 5AD#)를 상기 제 2 단말에 전송한다(S920).In addition, the
이후, 상기 단말(100)은 앞서 전송된 키패드 형식, 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 서버 키를 수신한다.Thereafter, the terminal 100 receives a server key transmitted from the
또한, 상기 단말(100)은 상기 수신된 서버 키를 근거로 상기 입력 형식에 대응하여 해당 단말(100)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.In addition, the terminal 100 shuffles the key table previously stored (or registered) in the terminal 100 in response to the input format based on the received server key. Here, the key table may be stored (or managed/maintained) in the terminal 100 and the
즉, 상기 단말(100)은 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 수신된 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.That is, the terminal 100 includes a first key value (or first identifier), a second key value, a third key value, etc. included in the received server key of a preset size from a key table stored in advance corresponding to the input format. A final shuffled key table is generated (or prepared) by sequentially shuffling according to a pre-set shuffle method. Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value (or identifier), a column including a key value, and a key value. A row containing and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one or more other columns adjacent to the column containing the key value, and Select one of the diagonals in the matrix-type key table (e.g., including diagonals from 1 o'clock to 7 o'clock, diagonals from 11 o'clock to 5 o'clock, etc.) by the size of the server key And, based on the plurality of ranges selected in sequence, shift by a preset unit (or size) in a preset direction (including, for example, up/down/left/right, etc.) It is configured in a plurality of sub-shuffle methods that perform symmetric left/right exchange), and is used to shuffle the key table using the server key according to the plurality of sub-shuffle methods sequentially selected.
일 예로, 상기 제 1 단말은 앞서 전송된 제 1 키패드 형식, 제 1 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 제 1 서버 키(예를 들어 3795)를 수신한다.As an example, the first terminal receives a first server key (eg, 3795) transmitted from the
또한, 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 제 1 입력 형식에 대응하여 미리 저장된 4×4 형태의 제 1 키 테이블 중에서 제1행부터 제3행 및 제1열부터 제3열로 구성되는 3×3 형태의 제 1 서브 키 테이블을 선택하고, 상기 선택된 제 1 서브 키 테이블을 대상으로 4자리 단위의 상기 제 1 서버 키(예를 들어 3795)에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 1 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자)(예를 들어 3)이 포함된 제 2 행과 상기 제 2 행에 인접한 제 1 행을 미리 설정된 아래 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 1차로 상기 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 1차로 셔플된 제 1 서브 키 테이블(1110)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal includes a first key table of a 4×4 format stored in advance corresponding to the first input format, from the first row to the third row and the first column to the third column. Selecting the configured 3×3 type first sub-key table, and using a pre-set shuffle method for the first server key (for example, 3795) in 4-digit units for the selected first sub-key table. The included first sub-shuffle method (for example, a second row containing the first key value (or first identifier) (for example, 3) included in the first server key and a first row adjacent to the second row The first sub-key table is shuffled first according to a shuffle method that shifts by one size in a preset downward direction) to create a first sub-key table 1110 shuffled first as shown in FIG. 11. do. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.
또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 1차로 셔플된 제 1 서브 키 테이블(1110)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 2 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 두 번째 키값(예를 들어 7)이 포함된 제 2 열과 상기 제 2 열에 인접한 제 1 열을 미리 설정된 좌측 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 2차로 상기 1차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 2차로 셔플된 제 1 서브 키 테이블(1120)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal is included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the first sub-key table 1110 shuffled first. Second sub-shuffle method (for example, shifting the second column containing the second key value (for example, 7) included in the first server key and the first column adjacent to the second column by one size in a preset left direction The first sub-key table shuffled secondarily is shuffled according to the shuffle method) to generate the secondly shuffled first sub-key table 1120 as shown in FIG. 11. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.
또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 2차로 셔플된 제 1 서브 키 테이블(1120)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 3 서브 셔플 방식(예를 들어 상기 3×3 행렬 형태의 제 1 서브 키 테이블에서 1시 방향에서 7시 방향으로의 대각선을 기준으로 좌/우 대칭 교환하는 셔플 방식)에 따라 3차로 상기 2차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 3차로 셔플된 제 1 서브 키 테이블(1130)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal is included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the secondly shuffled first sub-key table 1120. According to a third sub-shuffle method (for example, a shuffle method in which a left/right symmetrical exchange is performed based on a diagonal line from 1 o'clock to 7 o'clock in the first sub-key table of the 3×3 matrix type) The first sub-key table shuffled by the difference is shuffled to generate the first sub-key table 1130 shuffled in the third order as shown in FIG. 11. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.
또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 3차로 셔플된 제 1 서브 키 테이블(1130)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 4 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 네 번째 키값(예를 들어 5)이 포함된 제 1 열을 미리 설정된 우측 방향으로 2크기만큼 시프트하는 셔플 방식)에 따라 4차로 상기 3차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같이 최종 셔플된 제 1 키 테이블(11140)을 생성한다. 여기서, 상기 최종 셔플된 제 1 키 테이블(1140)은 상기 3차로 셔플된 제 1 서브 키 테이블을 4차로 셔플한 값과 상기 제 1 키 테이블 중에서 그 값(또는 상태)이 유지 중인(또는 셔플이 수행되지 않은) 제 4 행 및 제 4 열에 포함된 값으로 구성된다(S930).In addition, as shown in FIG. 11, the first terminal included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the thirdly shuffled first sub-key table 1130. According to the fourth sub-shuffle method (for example, a shuffle method in which the first column containing the fourth key value (for example, 5) included in the first server key is shifted by two sizes in a preset right direction) The third shuffled first sub-key table is shuffled to generate a final shuffled first key table 11140 as shown in FIG. 11. Here, in the final shuffled first key table 1140, the value (or state) of the third shuffled first sub key table 4 and the first key table is being maintained (or shuffled It is composed of the values included in the fourth row and the fourth column (S930).
이후, 상기 단말(100)은 상기 셔플된 키 테이블, 상기 키패드 형식, 상기 입력 형식 등을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성한다.Thereafter, the terminal 100 generates various types of keyboards such as circular rings and cylinders based on the shuffled key table, the keypad format, and the input format.
즉, 상기 단말(100)은 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터(또는 상기 N×M 행렬에서 미리 설정된 기준 위치)를 기준으로 상기 셔플된 키 테이블에 포함된 값(예를 들어 숫자, 문자, 특수문자 또는 이들 간의 조합)을 순차로 정렬하고, 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬(또는 배치)하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성한다.That is, the terminal 100 is based on a preset indicator (or a preset reference position in the N×M matrix) corresponding to the shuffled key table, based on a value (for example, a number, Characters, special characters, or a combination thereof) are arranged in sequence, and the sequentially arranged values are sequentially arranged (or placed) on a circular ring or cylindrical keyboard corresponding to the keypad type, and the values are arranged in the sequence. Create a keyboard consisting of.
또한, 상기 단말(100)은 사용자로부터 비밀번호 등에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말(100)의 일측에 표시한다.In addition, the terminal 100 displays the generated keyboard on one side of the terminal 100 in order to receive an input value corresponding to a password or the like from a user.
일 예로, 상기 제 1 단말은 상기 제 1 입력 형식(예를 들어 숫자 형식)과 관련한 4×4 형태의 제 1 키 테이블에 대응하여 미리 설정된 제 1 인디케이터(예를 들어 4×4 형태의 최종 셔플된 키 테이블에서 2×2 위치/지점)를 기준으로(또는 시작 포인트로)하여 상기 도 15의 최종 셔플된 제 1 키 테이블에 포함된 복수의 숫자를 순차로 정렬(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)하고, 상기 순차로 정렬된 값을 상기 제 1 키패드 형식(예를 들어 원형링)에 대응하는 원형링의 키보드에 순차로 배치하여, 도 12에 도시된 바와 같이, 상기 최종 셔플된 제 1 키 테이블과 상기 제 1 키패드 형식(예를 들어 원형링)으로 형성되는 제 1 키보드(1200)를 생성한다. 이때, 상기 최종 셔플된 키 테이블에 포함된 복수의 숫자를 순차로 정렬할 때, 상기 제 1 단말은 상기 최종 셔플된 키 테이블 내에서 값이 포함된 경우에 대해서만(또는 값이 포함되지 않은 경우 건너뜀) 상기 제 1 인디케이터를 기준으로 정렬할 수 있다.For example, the first terminal corresponds to a first key table in a 4x4 format related to the first input format (e.g., a number format). A plurality of numbers included in the final shuffled first key table of FIG. 15 are sequentially sorted based on (or as a starting point) a 2×2 position/point in the key table (e.g., 6, 3, 2, 8, 5, 9, 1, 7, 4, 0), and the sequentially arranged values are sequentially arranged on the keyboard of the circular ring corresponding to the first keypad type (for example, circular ring), As shown in FIG. 12, the first key table that has been shuffled and the
또한, 상기 제 1 단말은 상기 생성된 제 1 키보드를 상기 제 1 단말의 화면의 일측에 표시한다(S940).In addition, the first terminal displays the generated first keyboard on one side of the screen of the first terminal (S940).
이후, 상기 단말(100)은 상기 단말(100)의 일측에 표시되는 키보드에 대해서 사용자 입력(또는 사용자 터치/제어)에 따른 입력값을 수신한다. 여기서, 상기 입력값은 숫자, 문자, 특수문자 및 이들의 조합에 따른 적어도 하나 이상의 데이터(또는 키(key))로 구성될 수 있다.Thereafter, the terminal 100 receives an input value according to a user input (or user touch/control) with respect to a keyboard displayed on one side of the terminal 100. Here, the input value may be composed of at least one data (or key) according to numbers, letters, special characters, and combinations thereof.
일 예로, 상기 제 1 단말의 일측에 표시되는 제 1 키보드 상에서 사용자 입력에 따른 제 1 입력값(예를 들어 3905)을 수신한다(S950).For example, a first input value (eg, 3905) according to a user input is received on a first keyboard displayed on one side of the first terminal (S950).
이후, 상기 단말(100)은 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값(또는 사용자 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 상기 입력값에 따라 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.Thereafter, the terminal 100 in advance based on the received input value, the server key, and a value arranged in sequence corresponding to the keyboard (or a value sequentially arranged in the shuffled key table). A set shift operation is performed to generate (or calculate) a shifted user input value (or user input value). Here, the shift operation may be a shift operation in a predetermined direction (eg, right direction, left direction, etc.) according to the input value.
또한, 상기 단말(100)은 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 상기 서버(200)에 전송한다. 이때, 상기 단말(100)은 상기 서버 키에 포함된 복수의 숫자, 문자, 특수문자 등을 미리 설정된 비트수(예를 들어 4비트)의 0과 1의 조합으로 구성되는 2진수로 각각 변환하고, 상기 2진수로 변환된 서버 키와 상기 생성된 시프트 연산된 사용자 입력값을 조합하여 바이너리 형태의 상기 데이터를 생성할 수도 있다.In addition, the terminal 100 transmits data (or packets) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, identification information of the terminal 100, etc. to the
여기서, 상기 단말(100)은 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 미리 설정된 암호화 방식을 통해 암호화하여, 암호화된 디지털 데이터를 생성하고, 상기 생성된 디지털 데이터를 상기 서버(200)에 전송할 수도 있다. 이때, 상기 암호화 방식은 다양한 대칭키 암호화 방식, 비대칭키 암호화 방식 등을 포함할 수 있다.Here, the terminal 100 uses a preset encryption method for data (or packet) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, and identification information of the terminal 100. Through encryption, encrypted digital data may be generated, and the generated digital data may be transmitted to the
일 예로, 도 13에 도시된 바와 같이, 상기 제 1 단말은 상기 순차로 정렬된 값(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)에 따른 총 10 비트에 대해서 초기값(예를 들어 0)이 미리 설정된 상태(1310)에서, 상기 제 1 입력값(예를 들어 3905)에 포함된 첫 번째 입력값에 대응하는 '3'과 관련한 9번째 비트를 제외한 나머지 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 9번째 비트의 값을 '0'으로 유지하고 나머지 비트의 값을 '0'에서 '1'로 치환(또는 변경/변환/수정)하고, 라운드 로빈 방식으로 상기 제 1 서버 키(예를 들어 3795)에 포함된 첫 번째 값에 대응하는 '3'만큼 우측 시프트 연산을 수행하여 제 1 결과값(예를 들어 1111011111)(1320)을 산출한다.As an example, as shown in FIG. 13, the first terminal has a total of 10 according to the sequentially sorted values (eg, 6, 3, 2, 8, 5, 9, 1, 7, 4, 0). In a
또한, 상기 제 1 단말은 상기 제 1 결과값(예를 들어 1111011111)(1320)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 두 번째 입력값에 대응하는 '9'와 관련한 5번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 5번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 두 번째 값에 대응하는 '7'만큼 우측 시프트 연산을 수행하여 제 2 결과값(예를 들어 1001111111)(1330)을 산출한다.In addition, the first terminal relates to '9' corresponding to the second input value included in the first input value (eg 3905) with respect to the first result value (for example, 1111011111) (1320). Performs a preset NOT operation on the 5th bit, replaces the value of the 5th bit from '1' to '0', maintains the value of the remaining bit, and maintains the first server key (e.g. 3795) A second result value (eg 1001111111) 1330 is calculated by performing a right shift operation by '7' corresponding to the second value included in.
또한, 상기 제 1 단말은 상기 제 2 결과값(예를 들어 1001111111)(1330)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 세 번째 입력값에 대응하는 '0'과 관련한 1번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 1번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 세 번째 값에 대응하는 '9'만큼 우측 시프트 연산을 수행하여 제 3 결과값(예를 들어 0011111101)(1340)을 산출한다.In addition, the first terminal relates to '0' corresponding to the third input value included in the first input value (eg, 3905) with respect to the second result value (for example, 1001111111) (1330). By performing a pre-set NOT operation on the first bit, the value of the first bit is substituted from '1' to '0', the value of the remaining bit is maintained as it is, and the first server key (eg 3795) A third result value (for example, 0011111101) 1340 is calculated by performing a right shift operation by '9' corresponding to the third value included in.
또한, 상기 제 1 단말은 상기 제 3 결과값(예를 들어 0011111101)(1340)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 네 번째 입력값에 대응하는 '5'와 관련한 6번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 6번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 네 번째 값에 대응하는 '5'만큼 우측 시프트 연산을 수행하여 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)(1350)을 최종적으로 산출한다.In addition, with respect to the third result value (for example, 0011111101) (1340), the first terminal relates to '5' corresponding to the fourth input value included in the first input value (for example, 3905). By performing a preset NOT operation on the 6th bit, the value of the 6th bit is replaced from '1' to '0', and the value of the remaining bit is maintained as it is, and the first server key (for example, 3795) A user input value (for example, 1110100110) 1350 subjected to the first shift operation is finally calculated by performing a right shift operation by '5' corresponding to the fourth value included in.
또한, 상기 제 1 단말은 상기 제 1 서버 키(예를 들어 3795) 및 상기 산출된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)을 조합하여 제 1 데이터(예를 들어 37951110100110)를 생성한다. 이때, 상기 제 1 단말은 상기 제 1 서버 키인 3795를 각각 4비트의 2진수로 변환하여 0011011110010101를 생성하고, 상기 생성된 값(0011011110010101)을 상기 산출된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)과 조합하여 제 2 데이터(예를 들어 00110111100101011110100110)를 생성할 수도 있다.In addition, the first terminal generates first data (for example, 37951110100110) by combining the first server key (for example, 3795) and the calculated user input value (for example, 1110100110) do. In this case, the first terminal converts the
또한, 상기 제 1 단말은 상기 생성된 제 1 데이터(예를 들어 37951110100110)(또는 제 2 데이터), 상기 제 1 단말의 식별 정보 등을 미리 설정된 공개키 암호화 방식을 통해 암호화하여 암호화된 제 1 데이터를 생성하고, 상기 생성된 암호화된 제 1 데이터를 상기 서버(200)에 전송한다(S960).In addition, the first terminal encrypts the generated first data (for example, 37951110100110) (or second data), identification information of the first terminal, etc. through a preset public key encryption method, and the encrypted first data And transmits the generated encrypted first data to the server 200 (S960).
이후, 상기 서버(200)는 상기 단말(100)로부터 전송되는 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 단말(100)의 식별 정보 등을 수신한다.Thereafter, the
여기서, 상기 서버(200)에서 상기 단말(100)로부터 전송되는 암호화된 디지털 데이터를 수신하는 경우, 상기 서버(200)는 상기 수신된 암호화된 디지털 데이터를 미리 설정된 복호화 방식을 통해 복호화하여, 상기 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 상기 단말(100)의 식별 정보 등을 확인한다.Here, when the
또한, 상기 서버(200)는 상기 수신된 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리한다. 이때, 상기 서버 키가 2진수로 변환되어 상기 데이터에 포함된 경우, 상기 서버(200)는 미리 설정된 데이터 프레임 형태에 따라 미리 설정된 비트의 수를 상기 서버 키로 확인하고, 나머지 비트의 수를 상기 시프트 연산된 사용자 입력값으로 확인할 수 있다.In addition, the
일 예로, 상기 서버(200)는 상기 제 1 단말로부터 전송되는 상기 암호화된 제 1 데이터를 수신하고, 상기 수신된 암호화된 제 1 데이터를 미리 설정된 공개키 복호화 방식을 통해 복호화하여 상기 제 1 데이터(예를 들어 37951110100110), 상기 제 1 단말의 식별 정보 등을 확인한다.For example, the
또한, 상기 서버(200)는 상기 제 1 데이터 중에서 미리 설정된 앞 4자리의 숫자와 나머지 10자리의 숫자를 각각 분리하여, 상기 제 1 서버 키(예를 들어 3795)와 상기 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)을 확인(또는 분리)한다(S970).In addition, the
이후, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키, 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값 등을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.Thereafter, the
즉, 상기 서버(200)는 상기 생성된 서버 키를 근거로 상기 수신된 입력 형식에 대응하여 해당 서버(200)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.That is, the
이와 같이, 상기 서버(200)는 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.In this way, the
또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키 및 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다.In addition, the
일 예로, 상기 서버(200)는 상기 제 1 입력 형식에 대응하여 해당 서버(200)에 미리 저장된 4×4 형태의 제 1 키 테이블 중에서 제1행부터 제3행 및 제1열부터 제3열로 구성되는 3×3 형태의 제 11 서브 키 테이블을 선택하고, 상기 선택된 제 11 서브 키 테이블을 대상으로 4자리 단위의 상기 제 1 서버 키(예를 들어 3795)에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 1 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자)(예를 들어 3)이 포함된 제 2 행과 상기 제 2 행에 인접한 제 1 행을 미리 설정된 아래 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 1차로 상기 제 1 서브 키 테이블을 셔플하여, 1차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.As an example, the
또한, 상기 서버(200)는 상기 1차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 2 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 두 번째 키값(예를 들어 7)이 포함된 제 2 열과 상기 제 2 열에 인접한 제 1 열을 미리 설정된 좌측 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 2차로 상기 1차로 셔플된 제 11 서브 키 테이블을 셔플하여, 2차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, the
또한, 상기 서버(200)는 상기 2차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 3 서브 셔플 방식(예를 들어 상기 3×3 행렬 형태의 제 11 서브 키 테이블에서 1시 방향에서 7시 방향으로의 대각선을 좌/우 대칭 교환하는 셔플 방식)에 따라 3차로 상기 2차로 셔플된 제 11 서브 키 테이블을 셔플하여, 3차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, the
또한, 상기 서버(200)는 상기 3차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 4 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 네 번째 키값(예를 들어 5)이 포함된 제 1 열을 미리 설정된 우측 방향으로 2크기만큼 시프트하는 셔플 방식)에 따라 4차로 상기 3차로 셔플된 제 11 키 테이블을 셔플하여, 최종 셔플된 제 1 키 테이블을 생성한다.In addition, the
또한, 상기 서버(200)는 상기 순차로 정렬된 값(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)에 따른 총 10 비트에 대해서 초기값(예를 들어 0)이 미리 설정된 상태에서, 상기 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 제 1 비밀번호(예를 들어 3905)에 포함된 첫 번째 입력값에 대응하는 '3'과 관련한 9번째 비트를 제외한 나머지 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 9번째 비트의 값을 '0'으로 유지하고 나머지 비트의 값을 '0'에서 '1'로 치환하고, 라운드 로빈 방식으로 상기 제 1 서버 키(예를 들어 3795)에 포함된 첫 번째 값에 대응하는 '3'만큼 우측 시프트 연산을 수행하여 제 11 결과값(예를 들어 1111011111)을 산출한다.In addition, the
또한, 상기 서버(200)는 상기 제 11 결과값(예를 들어 1111011111)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 두 번째 입력값에 대응하는 '9'와 관련한 5번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 5번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 두 번째 값에 대응하는 '7'만큼 우측 시프트 연산을 수행하여 제 12 결과값(예를 들어 1001111111)을 산출한다.In addition, for the eleventh result value (for example, 1111011111), the
또한, 상기 서버(200)는 상기 제 12 결과값(예를 들어 1001111111)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 세 번째 입력값에 대응하는 '0'과 관련한 1번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 1번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 세 번째 값에 대응하는 '9'만큼 우측 시프트 연산을 수행하여 제 13 결과값(예를 들어 0011111101)을 산출한다.In addition, the
또한, 상기 서버(200)는 상기 제 13 결과값(예를 들어 0011111101)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 네 번째 입력값에 대응하는 '5'와 관련한 6번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 6번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 네 번째 값에 대응하는 '5'만큼 우측 시프트 연산을 수행하여 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)을 최종적으로 산출한다(S980).In addition, the
이후, 상기 서버(200)는 상기 생성된(또는 산출된) 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단(또는 확인)한다.Thereafter, the
즉, 상기 서버(200)는 상기 서버(200)에 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호를 근거로 생성된 시프트 연산된 비교 대상 입력값과 상기 단말(100)에서 사용자 입력에 따른 입력값을 근거로 생성된 시프트 연산된 사용자 입력값이 일치하는지 여부를 판단한다.That is, the
일 예로, 상기 서버(200)는 상기 산출된 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)과 상기 분리된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)이 일치하는지 여부를 판단한다(S990).For example, the
상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 단말(100)에 전송한다.If the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value do not match, the
또한, 상기 단말(100)은 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신한다.In addition, the terminal 100 receives information indicating that authentication has failed from the
또한, 상기 단말(100)은 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력한다.In addition, the terminal 100 outputs information indicating that the received authentication has failed.
일 예로, 상기 산출된 제 1 시프트 연산된 비교 대상 입력값과 상기 분리된 제 1 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 제 1 단말에 전송한다.As an example, when the calculated first shift-operated comparison target input value and the separated first shift-operated user input value do not match, the
또한, 상기 제 1 단말은 앞서 전송된 제 1 데이터(예를 들어 37951110100110) 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력한다(S1000).In addition, the first terminal receives information indicating that authentication has failed from the
또한, 상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 단말(100)에 전송한다.In addition, when the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value match, the
또한, 상기 단말(100)은 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신한다.In addition, the terminal 100 receives information indicating that authentication was successful, transmitted from the
또한, 상기 단말(100)은 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력한다.In addition, the terminal 100 outputs information indicating that the received authentication was successful.
또한, 상기 단말(100)은 상기 서버(200)와 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, the terminal 100 interworks with the
일 예로, 상기 산출된 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)과 상기 분리된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)이 일치할 때, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 제 1 단말에 전송한다.For example, when the calculated first shift-calculated comparison target input value (for example, 1110100110) and the separated first shift-calculated user input value (for example, 1110100110) match, the
또한, 상기 제 1 단말은 상기 앞서 전송된 제 1 데이터(예를 들어 37951110100110) 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력한다.In addition, the first terminal receives information indicating that authentication was successful, transmitted from the
또한, 상기 제 1 단말은 인증 성공에 따라 상기 서버(200)와 연동하여, 상기 ABCD 은행에서 운영 중인 웹 사이트를 통해 홍길동과 관련한 계좌로의 계좌 이체 기능을 수행하고, 계좌 이체 수행 결과를 출력한다(S1010).In addition, the first terminal interlocks with the
본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하여, 키로깅과 중간자 공격에 따른 해킹을 방지할 수 있다.As described above, the embodiment of the present invention shuffles a preset key table shared with the server using a server key provided from a server in the terminal, and based on the shuffled key table, a circular ring, a cylinder, etc. It generates various types of dynamic keyboards, provides a user input value and the server key according to the user input on the generated dynamic keyboard to the server, and the server provides the user input value and the server key provided from the terminal. Based on the validity of the server key and whether it matches the existing stored password, the authentication status is provided to the terminal, thereby preventing hacking due to key logging and man-in-the-middle attacks.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above contents may be modified and modified without departing from the essential characteristics of the present invention by those of ordinary skill in the technical field to which the present invention belongs. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.
10: 인증구간의 키로깅과 MITM에 따른 해킹 방지
100: 단말 200: 서버
110: 통신부 120: 저장부
130: 표시부 140: 음성 출력부
150: 제어부10: Key logging of authentication section and prevention of hacking according to MITM
100: terminal 200: server
110: communication unit 120: storage unit
130: display unit 140: audio output unit
150: control unit
Claims (7)
상기 서버에 의해, 상기 입력 형식을 근거로 미리 설정된 크기로 구성되는 서버 키를 생성하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 서버 키를 근거로 상기 입력 형식에 대응하여 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계;
상기 단말에 의해, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하는 단계;
상기 단말에 의해, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하는 단계;
상기 단말에 의해, 상기 단말의 일측에 표시되는 키보드에 대해서 사용자 입력에 따른 입력값을 수신하는 단계;
상기 단말에 의해, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 단계;
상기 단말에 의해, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 단계;
상기 서버에 의해, 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하는 단계;
상기 서버에 의해, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하는 단계;
상기 서버에 의해, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하는 단계;
상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때, 상기 서버에 의해, 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하는 단계;
상기 단말에 의해, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하는 단계; 및
상기 단말에 의해, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 단계를 포함하고,
상기 단말에 미리 저장된 키 테이블을 셔플하는 단계는,
N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플하여 복수 단계에 걸쳐 셔플 기능을 수행하는 단계;
를 포함하고,
여기에서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 대상으로, 키값을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위 만큼 시프트하고,
상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다른 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.When a preset event occurs, transmitting, by the terminal, a keypad format, an input format, and identification information of the terminal to a server;
Generating, by the server, a server key having a preset size based on the input format;
Shuffling, by the terminal, a key table previously stored in the terminal in response to the input format based on the server key transmitted from the server;
Generating, by the terminal, a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format, and the input format;
Displaying, by the terminal, the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user;
Receiving, by the terminal, an input value according to a user input for a keyboard displayed on one side of the terminal;
Generating, by the terminal, a shift-calculated user input value by performing a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard;
Transmitting, by the terminal, data obtained by combining the generated shifted user input value and the server key and identification information of the terminal to the server;
Separating, by the server, the server key and the shifted user input value from the data transmitted from the terminal;
By the server, the preset shift operation is performed based on a value that is sequentially sorted after being shuffled using a password registered in advance in the server, the server key, and the server key in response to the received terminal identification information. Performing a shift operation to generate a comparison target input value;
Determining, by the server, whether or not the generated shifted comparison target input value and the separated shifted user input value match;
Transmitting, by the server, information indicating that authentication was successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match as a result of the determination;
Receiving, by the terminal, information indicating that authentication transmitted from the server was successful;
Outputting, by the terminal, information indicating that the received authentication was successful; And
By the terminal, interlocking with the server, including the step of performing an additional function according to the authentication success,
The step of shuffling the key table previously stored in the terminal,
The n×m type subkey table selected from the N×M type key tables is sequentially shuffled according to a pre-set shuffle method using the values included in the received server key to perform a shuffle function over multiple steps. Performing;
Including,
Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, and includes a row including a key value, and a column including a key value. ), the row containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, and one or more adjacent columns containing the key value One range of diagonal lines in the key table in the form of another column and matrix is sequentially selected by the size of the server key, and shifted by a preset unit in a preset direction based on each of the plurality of ranges selected in sequence,
The authentication section, characterized in that N and M are the same or different natural numbers, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m are the same or different Hacking prevention method according to keylogging and MITM.
상기 이벤트는,
상기 단말에 표시되는 특정 영역이 마우스 또는 사용자 입력에 따라 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 버튼이 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드 상의 미리 설정된 키가 선택되는 경우 및 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 상기 단말의 화면 일측에 표시되는 특정 영역 또는 특정 버튼이 사용자 입력에 따라 선택되는 경우 중 어느 하나를 포함하며,
상기 키패드 형식은,
상기 단말에 표시될 키패드의 모양으로 원형링 및 원통형 중 어느 하나를 포함하며,
상기 입력 형식은,
숫자 형식, 문자 형식, 특수문자 형식 및 이들의 조합 형식 중 어느 하나를 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.The method of claim 1,
The above event is:
When a specific area displayed on the terminal is selected according to a mouse or user input, when the button of the mouse is selected while the screen for password input is displayed on the terminal, a screen for password input is displayed on the terminal Among the cases in which a preset key on the keyboard is selected in the current state, and a specific area displayed on one side of the screen of the terminal or a specific button is selected according to the user input while the screen for password input is displayed on the terminal. Includes any one,
The keypad format is:
The shape of the keypad to be displayed on the terminal includes any one of a circular ring and a cylindrical shape,
The above input format is:
A method for preventing hacking according to MITM and key logging of an authentication section, comprising any one of a number format, a character format, a special character format, and a combination format thereof.
상기 키보드를 생성하는 단계는,
상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터를 기준으로 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬하는 과정; 및
상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성하는 과정을 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.The method of claim 1,
Generating the keyboard,
Sequentially sorting values included in the shuffled key table based on a preset indicator corresponding to the shuffled key table; And
And generating a keyboard composed of the sequentially arranged values by sequentially arranging the sequentially arranged values on a circular ring or cylindrical keyboard corresponding to the keypad type. Hacking prevention method according to logging and MITM.
상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버에 의해, 인증이 실패하였음을 나타내는 정보를 상기 단말에 전송하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하는 단계; 및
상기 단말에 의해, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력하는 단계를 더 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.The method of claim 1,
Transmitting, by the server, information indicating that authentication has failed to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value do not match as a result of the determination;
Receiving, by the terminal, information indicating that authentication transmitted from the server has failed; And
And outputting, by the terminal, information indicating that the received authentication has failed.
상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하고, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하고, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하고, 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 서버를 포함하고,
상기 단말은,
N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플하여 복수 단계에 걸쳐 셔플 기능을 수행하고,
여기에서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 대상으로, 키값을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위 만큼 시프트하고, 상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다른 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템.When a preset event occurs, a keypad format, an input format, and identification information of a terminal are transmitted to the server, and in response to the transmission, a server key transmitted from the server is received, and the input format is responded to the input format based on the server key. In order to shuffle the key table previously stored in the terminal, generate a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format and the input format, and receive an input value corresponding to the password from the user, the Display the generated keyboard on one side of the terminal, receive an input value according to a user input, and perform a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard. The terminal for generating a shift-calculated user input value by performing, and transmitting data obtained by combining the generated shift-calculated user input value and the server key and identification information of the terminal to the server; And
Separating the server key and the shifted user input value from the data transmitted from the terminal, and using a password previously registered in the server, the server key, and the server key in response to the identification information of the received terminal. After being shuffled, the preset shift operation is performed on the basis of the sequentially sorted values to generate a shifted comparison target input value, and the generated shifted comparison target input value and the separated shifted user input A server that determines whether the values match or not, and transmits information indicating that authentication is successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match,
The terminal,
The n×m type subkey table selected from the N×M type key tables is sequentially shuffled according to a pre-set shuffle method using the values included in the received server key to perform a shuffle function over multiple steps. Perform,
Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value, and a column including a key value. ), the row containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, and one or more adjacent columns containing the key value One range of diagonal lines in the key table in the form of another column and matrix is sequentially selected by the size of the server key, and shifted by a preset unit in a preset direction based on each of the plurality of ranges selected in sequence, The authentication section, characterized in that N and M are the same or different natural numbers, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m are the same or different Hacking prevention system according to keylogging and MITM.
상기 단말은,
상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하고, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템.The method of claim 6,
The terminal,
Authentication characterized in that it receives information indicating that the authentication was successful transmitted from the server, outputs information indicating that the received authentication was successful, and performs an additional function according to authentication success by interworking with the server Hacking prevention system according to section key logging and MITM.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190061231A KR102153666B1 (en) | 2019-05-24 | 2019-05-24 | System for preventing hacking according to key logging of authentication section and MITM and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190061231A KR102153666B1 (en) | 2019-05-24 | 2019-05-24 | System for preventing hacking according to key logging of authentication section and MITM and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102153666B1 true KR102153666B1 (en) | 2020-09-09 |
Family
ID=72469150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190061231A KR102153666B1 (en) | 2019-05-24 | 2019-05-24 | System for preventing hacking according to key logging of authentication section and MITM and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102153666B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120047075A (en) * | 2010-11-03 | 2012-05-11 | 한국전자통신연구원 | Apparatus and method for input user password |
KR101621002B1 (en) * | 2015-09-02 | 2016-05-13 | 주식회사 베이스인 네트웍스 | Method for providing log in service using image array |
KR101648779B1 (en) * | 2015-04-02 | 2016-08-17 | (주)케이스마텍 | Method for secure text input in information terminal |
KR20180067082A (en) | 2016-12-12 | 2018-06-20 | 조선대학교산학협력단 | Method and apparatus for authenication using dial virtual keypad |
-
2019
- 2019-05-24 KR KR1020190061231A patent/KR102153666B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120047075A (en) * | 2010-11-03 | 2012-05-11 | 한국전자통신연구원 | Apparatus and method for input user password |
KR101648779B1 (en) * | 2015-04-02 | 2016-08-17 | (주)케이스마텍 | Method for secure text input in information terminal |
KR101621002B1 (en) * | 2015-09-02 | 2016-05-13 | 주식회사 베이스인 네트웍스 | Method for providing log in service using image array |
KR20180067082A (en) | 2016-12-12 | 2018-06-20 | 조선대학교산학협력단 | Method and apparatus for authenication using dial virtual keypad |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341387A (en) | For the electronic stamp system and its control method strengthened safely | |
EP3443724B1 (en) | Web service picture passwords | |
JP6713548B2 (en) | One-time dynamic position authentication method and system, and one-time dynamic password change method | |
EP3535680A1 (en) | Method for securing a transaction performed from a non-secure terminal | |
EP2953323A9 (en) | System and method of securing instant messaging sessions | |
CN108769027B (en) | Secure communication method, device, mobile terminal and storage medium | |
KR102023101B1 (en) | Apparatus for preventing forgery of original data and method thereof | |
US11042624B2 (en) | Wireless injection of passwords | |
CN104885403A (en) | Method for producing dynamic data structures for authentication and/or password identification | |
US9659189B2 (en) | Systems and methods of safeguarding user information while interacting with online service providers | |
KR102055625B1 (en) | Authentication server device, program, and authentication method | |
JP2010231510A (en) | User authentication system, user authentication method, authentication server program and client program | |
US20170300677A1 (en) | Security Mode Prompt Method and Apparatus | |
JP2019522277A (en) | Terminal device password unlocking method, apparatus, and terminal device | |
EP2973182B1 (en) | Methods and apparatus for securing user input in a mobile device | |
KR101085490B1 (en) | User password input system for protecting the user's privacy against a shoulder-surfing attack and user password input method for protecting the user's privacy against a shoulder-surfing attack | |
CN107666395A (en) | One population file management method, user terminal, group chat system | |
JP2012181716A (en) | Authentication method using color password and system | |
KR102153666B1 (en) | System for preventing hacking according to key logging of authentication section and MITM and method thereof | |
CN101277183A (en) | Input method and system for logging information as well as method for implementing system | |
KR102025659B1 (en) | Smart watch and security input system thereof | |
US11010466B2 (en) | Keyboard injection of passwords | |
CN111679781A (en) | Verification processing method, device, equipment and medium | |
CN106385684B (en) | Method and device for sharing wireless network and method and device for accessing wireless network | |
CN108549808B (en) | Password management method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |