KR100827187B1 - Security authentication system and method - Google Patents
Security authentication system and method Download PDFInfo
- Publication number
- KR100827187B1 KR100827187B1 KR1020060098783A KR20060098783A KR100827187B1 KR 100827187 B1 KR100827187 B1 KR 100827187B1 KR 1020060098783 A KR1020060098783 A KR 1020060098783A KR 20060098783 A KR20060098783 A KR 20060098783A KR 100827187 B1 KR100827187 B1 KR 100827187B1
- Authority
- KR
- South Korea
- Prior art keywords
- authentication
- server
- key
- message
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims description 2
- 102100025250 C-X-C motif chemokine 14 Human genes 0.000 description 41
- 101000858068 Homo sapiens C-X-C motif chemokine 14 Proteins 0.000 description 41
- 230000006870 function Effects 0.000 description 41
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 보안 인증 시스템 및 방법에 관한 것으로서, 이 시스템은, 서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 사용자 식별 부호, 사용자 식별 부호에 대한 비밀키, 클라이언트 키 및 서버 키에 기초하여 서버 인증 메시지를 생성하고 서버 인증 메시지와 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 사용자 단말기로 전송하는 인증 서버를 포함한다. 본 발명에 의하면, 해킹 툴이 사용자 단말기에 설치되어 있더라도 사용자 패스워드를 가로챌 수 없으며, 사용자 인증 정보를 가로채더라도 사용자 패스워드를 추출할 수 없다.The present invention relates to a security authentication system and method, comprising: a key generation server for generating and transmitting a server key to a user terminal, and receiving a user identification code, a client key, and a client authentication message from the user terminal, Authentication that generates a server authentication message based on the secret key, client key, and server key for the user identification code, compares the server authentication message with the client authentication message, and sends an authentication success message or authentication failure message to the user terminal according to the comparison result. Include a server. According to the present invention, even if the hacking tool is installed in the user terminal, the user password cannot be intercepted, and even if the user authentication information is intercepted, the user password cannot be extracted.
보안 인증 시스템, 사용자 패스워드, 해시 함수, 인증 메시지, 클라이언트 키, 서버 키 Security authentication system, user password, hash function, authentication message, client key, server key
Description
도 1은 본 발명의 실시예에 따른 보안 인증 시스템을 설명하기 위한 블록도이다.1 is a block diagram illustrating a security authentication system according to an embodiment of the present invention.
도 2는 도 1의 키 생성 서버가 서버 키를 생성하는 방법을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a method of generating a server key by the key generation server of FIG. 1.
도 3은 본 발명의 실시예에 따른 보안 인증 시스템 중 사용자 단말기의 동작을 설명하기 위한 흐름도이다.3 is a flowchart illustrating an operation of a user terminal in a security authentication system according to an embodiment of the present invention.
도 4 및 도 5는 본 발명의 실시예에 따른 보안 인증 시스템 중 서버 측 동작을 설명하기 위한 흐름도이다.4 and 5 are flowcharts illustrating a server side operation of a security authentication system according to an embodiment of the present invention.
<도면 부호의 설명><Description of Drawing>
100: 웹 서버, 200: 통신망,100: web server, 200: network,
300: 사용자 단말기, 310: 응용 프로그램300: user terminal, 310: application
320: 암호화 모듈, 400: 고객 정보 데이터베이스,320: encryption module, 400: customer information database,
500: 인증 서버, 600: 키 생성 서버,500: authentication server, 600: key generation server,
700: 키 저장 서버700: key storage server
본 발명은 보안 인증 시스템 및 방법에 관한 것으로, 보다 상세하게는 사용자 정보의 유출을 방지하며 사용자 인증을 수행할 수 있는 보안 인증 시스템 및 방법에 관한 것이다.The present invention relates to a security authentication system and method, and more particularly, to a security authentication system and method that can prevent the leakage of user information and perform user authentication.
인터넷은 현대 생활에 없어서는 안 될 필수품이 되고 있으며, 전자 상거래, 인터넷 뱅킹, 온라인 게임 등과 같은 인터넷 서비스의 이용도 일반화되고 있다. 이러한 인터넷 서비스를 이용하려면 일반적으로 사용자는 해당 서비스의 회원으로 가입하여야 하고, 사용자 인증을 거쳐 해당 서비스를 이용할 수 있다. 사용자 인증은 사용자가 사용자 단말기의 웹 브라우저에 사용자 ID(identification) 및 패스워드를 입력하여 서버로 전송한 후 서버가 이를 확인하는 과정으로 이루어진다.The Internet has become an indispensable necessity in modern life, and the use of Internet services such as e-commerce, internet banking, and online games has become commonplace. In order to use such an Internet service, a user generally needs to register as a member of the corresponding service and can use the service after user authentication. User authentication is a process in which a user enters a user ID and password in a web browser of a user terminal and transmits the same to a server, and then the server verifies this.
타인의 사용자 단말기에 해킹 툴을 몰래 설치한 후, 사용자 ID 및 패스워드를 추출하여 도용하는 범죄가 증가하고 있다. 해킹 툴의 한 예로서, 브라우저 헬퍼 오브젝트(browser helper object, BHO)가 있다. 이것은 원래 웹 브라우저의 기능을 확장시켜 주기 위하여 개발된 것으로서, 웹 브라우저가 자체적으로 제공하지 못하는 기능을 지원한다. 그런데 원래 목적과 달리 스파이웨어나 애드웨어 또는 해킹 등에 이용되는 경우가 많으며, 특히 사용자 인증 과정에서 사용자 단말기로부터 서버로 전송되는 사용자 인증 정보를 가로채는 방법으로 해킹에 이용된다.There is an increasing number of crimes in which a hacking tool is secretly installed in another user's user terminal and then extracted and stolen a user ID and password. An example of a hacking tool is a browser helper object (BHO). It was originally developed to extend the functionality of web browsers and supports features that web browsers do not provide themselves. However, unlike the original purpose, it is often used for spyware, adware or hacking, and in particular, it is used for hacking by intercepting user authentication information transmitted from the user terminal to the server during the user authentication process.
해킹을 방지하기 위하여 여러 가지 보안 프로그램이 개발되고 있다. 보안 프로그램은 해킹 툴을 사용자 단말기에서 찾아내어 삭제하거나 사용자 인증 정보를 암호화하는 등의 방식으로 해킹을 방지한다. 그러나 해킹 기법 및 툴이 점차 다양 해지고 지능화되어 사용자 패스워드를 추출하는 것이 어렵지 않은 실정이다. 게다가 브라우저 헬퍼 오브젝트는 정상적인 코드 또는 프로그램으로 인식될 수 있으므로 보안 프로그램이 동작하여도 사용자 인증 정보가 가로채이는 것을 막기 어렵다.Various security programs are being developed to prevent hacking. The security program prevents hacking by finding and deleting a hacking tool from the user terminal or encrypting user authentication information. However, hacking techniques and tools are becoming more diverse and intelligent, so it is not difficult to extract user passwords. In addition, browser helper objects can be recognized as normal code or programs, making it difficult to prevent user authentication information from being intercepted even when a security program is running.
따라서 본 발명이 이루고자 하는 기술적 과제는 해킹 툴이 사용자 단말기에 설치되어 사용자 단말기와 서버 사이에서 송수신되는 사용자 인증 정보를 가로채더라도 사용자 패스워드가 노출되지 않도록 사용자 인증을 수행할 수 있는 보안 인증 시스템 및 방법을 제공하는 것이다.Therefore, the technical problem to be achieved by the present invention is a security authentication system and method that can be performed so that the user password is not exposed even if the hacking tool is installed on the user terminal to intercept user authentication information transmitted and received between the user terminal and the server To provide.
이러한 기술적 과제를 이루기 위한 본 발명의 한 실시예에 따른 보안 인증 시스템은 서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하고 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 인증 서버를 포함하며, 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성된다.Security authentication system according to an embodiment of the present invention for achieving the technical problem is a key generation server for generating a server key to transmit to the user terminal, and receives a user identification code, a client key and a client authentication message from the user terminal A server authentication message is generated based on a user identification code, a secret key for the user identification code, the client key, and the server key, and the server authentication message is compared with the client authentication message. And an authentication server for transmitting a failure message to the user terminal, wherein the client authentication message is generated based on the user identification code, the user password, the client key, and the server key.
상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가질 수 있다.The client key is generated at the user terminal whenever the client authentication message is generated and may have a value different from a previously generated value.
상기 사용자 단말기로부터 상기 클라이언트 키를 받아 기억하는 키 저장 서버를 더 포함할 수 있다.The apparatus may further include a key storage server configured to receive and store the client key from the user terminal.
상기 인증 서버는 상기 사용자 단말기로부터 전송된 상기 클라이언트 키가 상기 키 저장 서버에 기억되어 있는 클라이언트 저장 키 중 어느 하나와 동일한 값을 가지면 상기 인증 실패 메시지를 상기 사용자 단말기에 전송할 수 있다.The authentication server may transmit the authentication failure message to the user terminal if the client key transmitted from the user terminal has the same value as any one of the client storage keys stored in the key storage server.
상기 인증 서버는 상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송할 수 있다.The authentication server may transmit the authentication failure message to the user terminal when determining that the client key is reused.
상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가질 수 있다.The server key is generated every predetermined time, is valid for a predetermined period of time, and may have a value different from a previously generated value.
상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 각 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교할 수 있다.The authentication server calculates the server authentication message based on each valid server key until the server authentication message has the same value as the client authentication message or user authentication is completed for the valid server key. An authentication message may be compared with the client authentication message.
상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기에 전송하고, 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송할 수 있다.The authentication server transmits the authentication success message to the user terminal when the server authentication message has the same value as the client authentication message, and the server authentication message is transmitted to the client until the user authentication is completed for the valid server key. If the authentication message does not have the same value as the authentication message, the authentication failure message may be transmitted.
상기 인증 서버는 상기 사용자 단말기로부터 상기 서버 키를 수신하며, 상기 수신된 서버 키가 상기 키 생성 서버에 저장되어 있는 상기 유효 서버 키에 속하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송할 수 있다.The authentication server may receive the server key from the user terminal, and transmit the authentication failure message to the user terminal if the received server key does not belong to the valid server key stored in the key generation server.
상기 서버 키는 유효 기간을 가지며, 상기 인증 서버는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송할 수 있다.The server key has a validity period, and the authentication server may transmit the authentication failure message to the user terminal if it is determined that the validity period has passed with respect to the server key.
상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성된 상기 비밀키를 기억하는 사용자 정보 데이터베이스를 더 포함할 수 있다.The apparatus may further include a user information database storing the secret key generated by applying a predetermined hash function to the user password.
상기 인증 서버는 상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않을 수 있다.The authentication server may record the user authentication history for the user identification code and may not allow the user authentication for the user identification code if the user authentication fails more than a predetermined number of times in succession.
상기 사용자 단말기는 상기 사용자 패스워드에 제1 해시 함수를 적용하여 상기 비밀키를 생성하고, 상기 사용자 식별 부호에 제2 해시 함수를 적용하여 제1 해시 값을 생성하며, 상기 비밀키, 상기 제1 해시 값 및 상기 서버 키에 기초한 제1 변수에 제3 해시 함수를 적용하여 제2 해시 값을 생성하고, 상기 비밀키, 상기 클라이언트 키 및 상기 제2 해시 값에 기초한 제2 변수에 제4 해시 함수를 적용하여 상기 클라이언트 인증 메시지를 생성할 수 있다.The user terminal generates the secret key by applying a first hash function to the user password, and generates a first hash value by applying a second hash function to the user identification code, the secret key, the first hash. A second hash value is generated by applying a third hash function to a first variable based on a value and the server key, and a fourth hash function is applied to a second variable based on the secret key, the client key, and the second hash value. Apply to generate the client authentication message.
본 발명의 다른 태양에 따른 보안 인증 방법은, 서버 키를 사용자 단말기로 전송하는 단계, 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 수신하는 단계, 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀 키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하는 단계, 상기 클라이언트 인증 메시지와 상기 서버 인증 메시지를 비교하는 단계, 그리고 상기 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계를 포함하며, 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성된다.According to another aspect of the present invention, there is provided a security authentication method, comprising: transmitting a server key to a user terminal, receiving a user identification code, a client key, and a client authentication message from the user terminal, the user identification code, and the user identification code. Generating a server authentication message based on the secret key, the client key, and the server key, comparing the client authentication message with the server authentication message, and an authentication success message or an authentication failure message according to the comparison result And transmitting to the user terminal, wherein the client authentication message is generated based on the user identification code, the user password, the client key, and the server key.
본 발명의 다른 태양에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법 중 어느 하나를 컴퓨터에 실행시키기 위한 프로그램을 기록한다.A computer readable medium according to another aspect of the present invention records a program for causing a computer to execute any of the above methods.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.
먼저, 도 1 및 도 2를 참고하여 본 발명의 실시예에 따른 보안 인증 시스템에 대하여 상세하게 설명한다.First, a security authentication system according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 and 2.
도 1은 본 발명의 실시예에 따른 보안 인증 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 키 생성 서버가 서버 키를 생성하는 방식을 설명하기 위한 개념도이다.1 is a block diagram illustrating a security authentication system according to an exemplary embodiment of the present invention, and FIG. 2 is a conceptual diagram illustrating a method of generating a server key by the key generation server of FIG. 1.
도 1을 참고하면, 본 발명의 실시예에 따른 보안 인증 시스템은 웹 서버(100), 인증 서버(500), 사용자 정보 데이터베이스(400), 키 생성 서버(600), 키 저장 서버(700), 그리고 통신망(200)을 통하여 웹 서버(100) 및 인증 서버(500)와 연결되어 있는 복수의 사용자 단말기(300)를 포함한다.Referring to FIG. 1, a security authentication system according to an embodiment of the present invention includes a
사용자 단말기(300)는 인터넷 서비스를 제공하는 인터넷 서비스 시스템(도시하지 않음), 웹 서버(100) 및 인증 서버(500)와 교신하는 장치로서, 통신망(200)을 통하여 이들에 접속하여 정보를 주고받는다. 사용자 단말기(300)는 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant, PDA), 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 단말기로 이루어질 수 있다.The
한편 인터넷 서비스를 제공받고자 하는 사용자는 자신의 이름, 주민등록번호, 사용자 식별 부호(ID), 패스워드(PW) 등의 개인 정보를 사용자 단말기(300)에 입력하여 인터넷 서비스 제공자에게 제출하고 소정 절차를 거쳐서 회원이 되며, 회원이 되면 인터넷 서비스를 이용할 수 있게 된다.On the other hand, a user who wants to receive the Internet service inputs his or her personal information such as his / her name, social security number, user identification code (ID), and password (PW) to the
사용자 단말기(300)는 응용 프로그램(310) 및 암호화 모듈(320)을 포함한다.The
응용 프로그램(310)은 사용자 단말기(300)에 설치되며, 사용자의 조작에 따라 통신망(200)을 통하여 서비스 시스템에 접속하여 다양한 기능을 수행할 수 있다. 응용 프로그램(310)의 한 예로서, 마이크로소프트(Microsoft)사의 인터넷 익스플로러(Internet Explorer)와 같은 웹 브라우저를 들 수 있으나 이에 한정되지 않으며 인터넷 서비스 시스템, 웹 서버(100) 및 인증 서버(700)와 통신을 수행할 수 있는 것이라면 어느 것이든지 상관없다.The
응용 프로그램(310)은 웹 서버(100)로부터 전송된 데이터에 기초하여 로그인 페이지를 표시하고, 인증 서버(500)로부터 인증 성공 메시지 또는 인증 실패 메시지를 받아 이를 사용자 단말기(300)에 표시한다.The
암호화 모듈(320)은 사용자가 사용자 단말기(300)에 입력한 사용자 식별 부 호(ID) 및 패스워드(PW), 자신이 생성한 클라이언트 키(CR), 그리고 웹 서버(100)로부터의 서버 키(SR)에 기초하여 클라이언트 인증 메시지(BMAC)를 생성한다. 그리고 생성된 클라이언트 인증 메시지(BMAC), 사용자 식별 부호(ID) 및 클라이언트 키(CR)를 포함하는 사용자 인증 정보를 인증 서버(500)로 전송한다. 또한 필요에 따라 서버 키(SR)를 더 포함하는 사용자 인증 정보를 인증 서버(500)로 전송할 수도 있다. 한편 이와 달리 응용 프로그램(310)이 사용자 인증 정보를 인증 서버(500)로 전송할 수도 있다.The
암호화 모듈(320)은 응용 프로그램(310)과 유기적으로 사용될 수 있도록 액티브엑스(activeX)로 구현될 수 있으며, 또한 응용 프로그램(310)에 포함되도록 구현될 수 있다.The
암호화 모듈(320) 또는 응용 프로그램(310)은 SGML(standard generalized markup language)에 근거하여 작성된 웹 프로그래밍 언어 HTML(hypertext markup language) 및 XML(extensible markup language) 등을 통하여 웹 서버(100) 및 인증 서버(500)와 통신을 할 수 있으며, 사용자 인증 정보는 폼 태그(form tag)의 형태로 전송될 수 있다.The
그러면 한 예로서, 암호화 모듈(320)이 클라이언트 인증 메시지(BMAC)를 생성하는 것에 대하여 자세하게 설명한다.As an example, the
우선 암호화 모듈(320)은 패스워드(PW)에 함수 D를 적용하여 비밀키(KEY)를 생성한다.First, the
여기서, 함수 D는 단방향이고, 충돌 회피성을 가지고 있는 함수로서, 일례로서 데이터 암호화 규격(data encryption standard, DES) 알고리즘을 구현해 놓은 crypt() 함수를 들 수 있다. 함수 D는 충돌 회피 해시 함수(collision resistant hash function)일 수도 있다.Here, the function D is a unidirectional and collision avoidance function, for example, the crypt () function that implements a data encryption standard (DES) algorithm. Function D may be a collision resistant hash function.
해시 함수는 요약 함수 또는 메시지 다이제스트 함수(message digest function)라고도 하는데, 주어진 원문에서 고정된 길이의 의사난수를 생성하는 함수를 말한다. 해시 함수는 한쪽 방향으로 계산이 빠르고 용이하게 되지만 역방향으로는 계산이 이론적으로 불가능하다. 즉, 해시 함수가 입력 값을 받아 출력 값을 계산하는 것은 빠르고 용이하지만, 출력 값으로부터 입력 값을 계산해내는 것은 이론적으로 매우 어렵다. 충돌 회피 해시 함수는 동일한 출력 값을 내는 서로 다른 두 입력 값을 찾기가 계산적으로 불가능한 성질을 갖는 해시 함수를 의미한다.A hash function, also called a summary function or message digest function, is a function that generates pseudorandom numbers of fixed length in a given text. Hash functions are quick and easy to compute in one direction, but theoretically impossible in the reverse direction. That is, it is fast and easy for a hash function to take an input value and calculate an output value, but it is theoretically very difficult to calculate an input value from an output value. The collision avoidance hash function is a hash function that is computationally impossible to find two different input values that produce the same output value.
암호화 모듈(320)은 사용자 식별 부호(ID)에 해시 함수 H1을 적용하여 해시 값(HV1)을 산출한다.The
해시 함수 H1은, 예를 들면, 일반적으로 잘 알려진 MD(message digest algorithm) 계열, SHA(secure hash algorithm) 계열, RIPEMD(race integrity primitives evaluation message digest) 계열 등의 해시 함수일 수 있으나 이에 한정되지 않으며 이들과 다른 형태의 해시 함수일 수도 있다.The hash function H1 may be, for example, a hash function such as a well-known message digest algorithm (MD) series, a secure hash algorithm (SHA) series, or a race integrity primitives evaluation message digest (RIPEMD) series, but is not limited thereto. It can also be a different hash function.
암호화 모듈(320)은 이전에 생성된 값과 서로 다른 값을 가지는 클라이언트 키(CR)를 생성한다. 또한 각 사용자 단말기(300)의 암호화 모듈(320)은 각 사용자 단말기(300)마다 서로 다른 값을 가지는 클라이언트 키(CR)를 생성한다. 즉, 클라이언트 키(CR)는 생성될 때마다 유일한 값을 가진다. 한 예로서, 암호화 모듈(320)은 공간과 시간의 조합으로 이루어지는 범용 단일 식별자(universal unique identifier, UUID)를 클라이언트 키(CR)로 사용할 수 있다. 이외에도 암호화 모듈(320)은 random() 함수를 이용하여 클라이언트 키(CR)를 생성할 수도 있는데, 이때 사용자 식별 부호(ID)와 마이크로 초 단위의 시간을 이용한 값을 random() 함수의 변수인 seed에 대입하여 random() 함수에 적용시키면 유일한 클라이언트 키(CR)를 생성할 수 있다.The
암호화 모듈(320)은 [수학식 1]에서 생성된 비밀키(KEY)와 [수학식 2]에서 생성된 해시 값(HV1)을 배타적 논리합(XOR) 연산을 하고 그 결과에 서버 키(SR)를 덧붙인 후 해시 함수 H2를 적용하여 해시 값(HV2)을 산출한다.The
여기서, 해시 함수 H2는 앞서 설명한 해시 함수 H1과 동일할 수도 있고 다를 수도 있다.Here, the hash function H2 may be the same as or different from the hash function H1 described above.
암호화 모듈(320)은 [수학식 1]에서 생성된 비밀키(KEY)와 클라이언트 키(CR)를 배타적 논리합(XOR) 연산을 하고 그 결과에 [수학식 3]의 해시 값(HV2)을 덧붙인 후 해시 함수 H3을 적용하여 클라이언트 인증 메시지(BMAC)를 생성한다.The
여기서 해시 함수 H3은 앞서 설명한 해시 함수 H1, H2와 동일할 수도 있고 다를 수도 있다.Here, the hash function H3 may be the same as or different from the hash functions H1 and H2 described above.
한편, 암호화 모듈(320)은 지금까지 설명한 계산 방법 이외에도 다양한 방법으로 클라이언트 인증 메시지(BMAC)를 생성할 수 있다.Meanwhile, the
통신망(200)은 구내 정보 통신망(local area network, LAN), 도시권 통신망(metropolitan area network, MAN), 광역 통신망(wide area network, WAN), 인터넷 등을 가리지 않고, 통신 방식도 유선, 무선을 가리지 않으며 어떠한 통신 방식이라도 상관없다.The
웹 서버(100)는 사용자 단말기(300)의 요청에 따라 로그인 페이지를 포함하는 인터넷 서비스 관련 웹 페이지를 사용자 단말기(300)에 제공하여 사용자 단말기(300)가 로그인 페이지 및 인터넷 서비스 관련 페이지를 표시하도록 하고, 키 생성 서버(600)로부터의 서버 키(SR)를 사용자 단말기(300)에 전달한다. 또한 웹 서버(100)는 사용자 단말기(300)에 암호화 모듈(320)이 설치되어 있지 않으면 사용자 단말기(300)에 암호화 모듈(320)을 설치할 수 있으며, 사용자 단말기(300)에 설치되어 있는 암호화 모듈(320)이 구 버전이면 새로운 버전으로 암호화 모듈(320)을 갱신할 수 있다.The
사용자 정보 데이터베이스(400)는 웹 서버(100) 및 인증 서버(500)에 연결되어 있으며, 사용자 정보를 기억한다. 사용자 정보는 사용자 식별 부호(ID), 비밀 키(KEY), 사용자 이름, 주민등록번호, 주소, 유무선 전화번호, 전자우편 주소 등을 포함한다. 여기서 비밀키(KEY)는 [수학식 1]과 동일한 방식으로 사용자 패스워드(PW)를 암호화한 것으로서, 사용자 정보 데이터베이스(400)는 보안을 위하여 사용자 패스워드(PW)를 직접 기억하지 않는 것이 좋다.The
사용자 정보 데이터베이스(400)는 웹 서버(100) 및 인증 서버(500)로부터의 요청에 따라 사용자 정보를 웹 서버(100) 및 인증 서버(500)에 제공한다.The
키 생성 서버(600)는 이전에 생성된 값과 서로 다른 값을 가지는 서버 키(SR)를 소정 시간마다 생성한다. 즉, 서버 키(SR)는 생성될 때마다 유일한 값을 가진다. 예를 들면, 서버 키(SR)는 정수 i를 해시 함수 H4에 적용한 해시 값을 가질 수 있다.The
여기서 정수 i는 소정 시간마다 증가하거나 감소하며, 초기 값은 임의로 정할 수 있다. 또한 해시 함수 H4는 앞서 설명한 해시 함수 H1, H2, H3과 동일할 수도 있고 다를 수도 있다.Herein, the integer i increases or decreases every predetermined time, and an initial value may be arbitrarily determined. In addition, the hash function H4 may be the same as or different from the hash functions H1, H2, and H3 described above.
한편, 소정 시간마다 생성된 각 서버 키(SR)는 소정 기간 동안 유효하며, 키 생성 서버(600)는 유효한 서버 키(SR)를 기억한다. 도 2를 참고하면, 제1 시점(T1)에서 생성된 제1 서버 키(SR1)는 제1 기간(P1) 동안 유효하고, 제2 시점(T2)에서 생성된 제2 서버 키(SR2)는 제2 기간(P2) 동안 유효하며, 이와 같이 반복하여 n 번째 시점(Tn)에서 생성된 n 번째 서버 키(SRn)는 n 번째 기간(Pn) 동안 유효하 다. 그러나 (n+1) 번째 시점(Tn+1)에서 (n+1) 번째 서버 키(SRn+1)가 생성되면 제1 기간(P1)이 지나므로 제1 서버 키(SR1)는 더 이상 유효하지 않게 된다. 이와 같은 방식으로 키 생성 서버(600)는 계속해서 서버 키(SR)를 생성하고 기억한다. 여기서 각 시점 사이의 길이는 동일할 수 있고, 각 기간의 길이도 동일할 수 있다. 그러나 서로 다를 수도 있다. 이하에서는 키 생성 서버(600)가 다음과 같은 임의의 시간 (Tn≤t<Tn+1) 동안 기억하고 있는 서버 키(SR)를 유효 서버 키(SRj)라 한다(j=1, 2, ..., n).On the other hand, each server key SR generated every predetermined time is valid for a predetermined period, and the
예를 들어 소정 시간은 1분으로 설정될 수 있으며, 소정 기간은 해당 서버 키(SR)가 생성된 시점부터 30분이 지난 시점까지의 사이로 설정될 수 있다. 이 경우 임의의 시간에서 유효 서버 키(SRj)의 수효(n)는 30이다. 물론 소정 시간 및 소정 기간은 필요에 따라 이와 다르게 설정될 수 있다.For example, the predetermined time may be set to 1 minute, and the predetermined time period may be set from the time when the corresponding server key SR is generated to the time point 30 minutes later. In this case, the number n of valid server keys SRj is 30 at any time. Of course, the predetermined time and the predetermined period may be set differently as necessary.
키 생성 서버(600)는 웹 서버(100) 및 인증 서버(500)에 연결되어 있으며, 웹 서버(100)의 요청에 따라 가장 최근에 생성된 서버 키(SR)를 웹 서버(100)에 전송하여 각 사용자 단말기(300)로 전달되도록 한다. 또한 키 생성 서버(600)는 인증 서버(500)의 요청에 따라 유효 서버 키(SRj)를 인증 서버(500)에 전송하거나 서버 키(SR)가 유효 서버 키(SRj)에 속하는지 알려 줄 수 있다.The
키 저장 서버(700)는 인증 서버(500)에 연결되어 있으며, 복수의 클라이언트 저장 키(CSR)를 기억한다. 인증 서버(500)의 요청에 따라 키 저장 서버(700)는 각 사용자 단말기(300)로부터 전송된 클라이언트 키(CR)가 이미 사용된 것인지 여부를 인증 서버(500)에 알리고, 사용되지 않은 것이라면 이를 기억한다.The
즉, 키 저장 서버(700)는 전송된 클라이언트 키(CR)와 키 저장 서버(700)에 기억되어 있는 클라이언트 저장 키(CSR)를 비교하여 클라이언트 키(CR)가 클라이언트 저장 키(CSR) 중 어느 하나와 동일하면 클라이언트 키(CR)가 이미 사용된 것이라고 판단하고, 그렇지 않으면 사용되지 않은 것으로 판단한다. 클라이언트 키(CR)가 이미 사용된 것이라면 사용자 인증에 실패한다. 클라이언트 키(CR)가 사용되지 않은 것이라면 키 저장 서버(700)는 클라이언트 키(CR)를 클라이언트 저장 키(CSR)로서 기억하고, 적어도 이때의 유효 서버 키(SRj)가 모두 유효하지 않게 될 때까지 이를 유지한다.That is, the
키 저장 서버(700)는 클라이언트 저장 키(CSR)를 기억하는 기억 장치(도시하지 않음)를 포함한다. 예를 들어, 클라이언트 저장 키(CSR)가 유지될 시간을 30분으로 설정하고 사용자 인증을 위한 초당 조회 수(queries per second, QPS)의 최대치, 즉 전체 사용자 단말기(300)로부터 1초 동안 전송되는 클라이언트 키(CR)의 최대 수효를 1,000으로 가정하면 30분 동안 기억하고 유지해야 할 총 클라이언트 저장 키(CSR)는 1,000×30×60=1,800,000개이다. 클라이언트 저장 키(CSR)의 크기가 16바이트이고, 클라이언트 저장 키(CSR)가 기억되는 순간의 시간을 위하여 4바이트가 할당된다면 하나의 클라이언트 저장 키(CSR)의 기억을 위하여 20바이트가 필요하다. 따라서 기억 장치는 적어도 36M바이트의 기억 공간을 필요로 한다.The
인증 서버(500)는 사용자 단말기(300)로부터 사용자 인증 요청, 즉 사용자 인증 정보를 받으면 사용자 인증을 수행한다.The
인증 서버(500)는 클라이언트 키(CR)가 이미 사용된 것인지 여부에 따라 인 증 실패 메시지를 사용자 단말기에 전송하거나 서버 인증 메시지(BMAC')를 생성한다. 또한 인증 서버(500)는 사용자 단말기(300)가 서버 키(SR)를 인증 서버(500)로 전송하는지 여부에 따라 방식을 달리하여 사용자 인증을 수행한다. 한편 인증 서버(500)는 사용자 식별 부호(ID)에 대한 사용자 인증 이력을 기록해 두고 일정한 시간 동안 연속하여 소정 횟수 이상 사용자 인증에 실패하면 해당 사용자 식별 부호(ID)에 대한 사용자 인증을 허용하지 않을 수 있다.The
인증 서버(500)는 사용자 단말기(300)의 암호화 모듈(320)이 클라이언트 인증 메시지(BMAC)를 생성하는 것과 유사한 방법으로 서버 인증 메시지(BMAC')를 생성한다. 즉, 인증 서버(500)는 사용자 단말기(300)로부터의 사용자 식별 부호(ID)를 [수학식 2]의 해시 함수 H1에 적용하여 해시 값(HV1)을 산출한다. 그리고 사용자 식별 부호(ID)에 대응하는 비밀키(KEY)를 사용자 정보 데이터베이스(400)로부터 읽어들이고, 키 생성 서버(600)로부터 유효 서버 키(SRj)를 받은 후, 이들(KEY, HV1, SRj)과 [수학식 3]의 해시 함수 H2를 이용하여 해시 값(HV2)을 산출한다[여기서 유효 서버 키(SRj)를 서버 키(SR)로 두고 계산함]. 그러나 사용자 단말기(300)로부터 서버 키(SR)를 수신하는 경우는 유효 서버 키(SRj) 대신 서버 키(SR)를 사용하여 해시 값(HV2)을 산출한다. 그러고 비밀키(KEY), 클라이언트 키(CR) 및 해시 값(HV2)과 [수학식 4]의 해시 함수 H3을 이용하여 서버 인증 메시지(BMAC')를 생성한다. 인증 서버(500)는 생성된 서버 인증 메시지(BMAC')와 사용자 단말기(300)로부터의 클라이언트 인증 메시지(BMAC)를 비교하고 그 결과에 기초하여 인증 성공/실패 메시지를 생성하여 사용자 단말기(300)에 전송한다.The
한편 키 생성 서버(600) 및 키 저장 서버(700)가 인증 서버(500)와 분리되어 있는 것으로 설명하였으나, 인증 서버(500)에 포함되어 구현될 수도 있다.Meanwhile, the
그러면 본 발명의 실시예에 따른 보안 인증 시스템의 동작을 도 3 내지 도 5를 참고하여 좀 더 상세하게 설명한다.The operation of the security authentication system according to an embodiment of the present invention will now be described in more detail with reference to FIGS. 3 to 5.
도 3은 본 발명의 실시예에 따른 보안 인증 시스템 중 사용자 단말기의 동작을 설명하기 위한 흐름도이고, 도 4 및 도 5는 본 발명의 실시예에 따른 보안 인증 시스템 중 서버 측 동작을 설명하기 위한 흐름도이다.3 is a flowchart illustrating an operation of a user terminal in a security authentication system according to an embodiment of the present invention, and FIGS. 4 and 5 are flowcharts for explaining a server side operation in a security authentication system according to an embodiment of the present invention. to be.
도 3 및 도 4를 참고하면, 사용자가 인터넷 서비스 시스템을 이용하기 위하여 사용자 단말기(300)를 통하여 웹 서버(100)에 접속하면(S805), 웹 서버(100)는 로그인 페이지를 전송하고(S905), 사용자 단말기(300)는 이를 받아 화면에 로그인 페이지를 표시한다(S810).3 and 4, when the user accesses the
사용자 단말기(300)에 암호화 모듈(320)이 설치되어 있는지 검사하여(S815, S910) 암호화 모듈(320)이 사용자 단말기(300)에 설치되어 있지 않으면 웹 서버(100)는 암호화 모듈(320)을 사용자 단말기(300)로 전송하고(S915), 사용자 단말기(300)는 이를 다운로드받아 설치한다(S820).If the
단계(S820)에서 암호화 모듈(320)을 설치한 후 또는 암호화 모듈(320)이 사용자 단말기(300)에 이미 설치되어 있으면 웹 서버(100)는 키 생성 서버(600)에 서버 키(SR)를 요청하고, 키 생성 서버(600)로부터 서버 키(SR)를 받아 이를 사용자 단말기(300)로 전송하며(S920), 사용자 단말기(300)는 서버 키(SR)를 수신한다(S825).After installing the
사용자가 사용자 인증을 위하여 사용자 단말기(300)에 사용자 식별 부호(ID) 및 패스워드(PW)를 입력하면(S830), 암호화 모듈(320)은 클라이언트 키(CR)를 생성하고, 이와 함께 사용자 식별 부호(ID), 패스워드(PW) 및 서버 키(SR)를 이용하여 클라이언트 인증 메시지(BMAC)를 생성한(S835) 후, 사용자 인증 정보를 인증 서버(500)로 전송한다.When the user inputs the user identification code (ID) and the password (PW) to the
인증 서버(500)는 사용자 인증 정보를 수신하면(S925) 수신한 사용자 식별 부호(ID)에 대하여 일정한 시간 동안 사용자 인증에 연속하여 실패한 횟수가 소정 횟수(N) 이상인지 판단한다(S930). 판단 결과 연속 실패 횟수가 소정 횟수(N) 이상이면 정상 사용자가 아니라고 판단하여 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 그렇지 않으면 클라이언트 키(CR)를 키 저장 서버(700)에 전송하여 클라이언트 키(CR)의 재사용 여부를 문의한다(S935). 인증 실패 메시지를 전송하는 경우 필요에 따라 더 이상 사용자 인증을 허용하지 않는다는 인증 불허 메시지를 함께 전송할 수도 있다.When receiving the user authentication information (S925), the
그러고 단계(S935)에서 문의 결과 인증 서버(500)는 키 저장 서버(700)로부터 클라이언트 키(CR)가 사용된 것이라고 응답을 받으면 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 그렇지 않으면 키 생성 서버(600)로부터 유효 서버 키(SRj)를 요청하여 수신하고, 사용자 정보 데이터베이스(400)로부터 비밀키(KEY)를 읽어들인다.In step S935, when the query
그런 후 인증 서버(500)는 사용자 식별 부호(ID), 클라이언트 키(CR), 유효 서버 키(SRj) 및 비밀키(KEY)를 이용하여 서버 인증 메시지(BMAC')를 생성한 다(S945). 생성된 서버 인증 메시지(BMAC')와 사용자 단말기(300)로부터의 클라이언트 인증 메시지(BMAC)를 비교하여 두 메시지(BMAC, BMAC')의 동일 여부를 판단한다(S950). 두 메시지(BMAC, BMAC')가 동일하지 않으면 다른 유효 서버 키(SRj)에 대하여 다시 서버 인증 메시지(BMAC')를 계산하고(S945) 두 메시지(BMAC, BMAC')를 비교하여 동일 여부를 판단한다(S950). 이러한 과정은 두 메시지(BMAC, BMAC')가 동일하다고 판단되거나 모든 유효 서버 키(SR)에 대한 판단이 완료될 때까지 반복된다(S940). 그 결과 인증 서버(500)는 두 메시지(BMAC, BMAC')가 동일하다고 판단하면 인증 성공 메시지를 사용자 단말기(300) 및 인터넷 서비스 시스템에 전송하고(S955), 모든 유효 서버 키(SR)에 대하여 두 메시지(BMAC, BMAC')가 동일하지 않다고 판단하면 인증 실패 메시지를 사용자 단말기(300)에 전송한다(S960).Thereafter, the
따라서 이러한 방식에 의하면 인증 서버(500)는 한 번의 사용자 인증 요청에 대하여 여러 번 서버 인증 메시지(BMAC')를 계산할 수도 있으며, 최대한으로 유효 서버 키(SRj)의 수효만큼 계산할 수 있다.Therefore, according to this method, the
이와 달리, 도 5를 참고하면, 사용자 단말기(300)가 인증 서버(500)로 서버 키(SR)를 전송하는 경우에는 인증 서버(500)가 서버 인증 메시지(BMAC')를 한번 계산함으로써 사용자 인증을 완료할 수 있다. 즉, 인증 서버(500)는 사용자 단말기(300)로부터의 서버 키(SR)가 키 생성 서버(600)가 기억하고 있는 유효 서버 키(SRj)에 속하는지 판단하여(S965) 속하지 않으면 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 속하면 이 서버 키(SR)에 대하여 서버 인증 메시지(BMAC')를 생성한다(S970). 그러고 두 메시지(BMAC, BMAC')가 동일한지를 판단 하여(S975) 동일하면 인증 성공 메시지를 사용자 단말기(300)에 전송하고, 동일하지 않으면 인증 실패 메시지를 전송한다. 따라서 이러한 경우에는 인증 서버(500)의 계산량을 1회로 줄일 수 있다. 이러한 내용을 제외한 도 5의 사용자 인증 방식은 도 4에 도시한 것과 동일하므로 도 4와 동일한 도면 부호를 붙이고 이에 대한 설명은 생략한다.In contrast, referring to FIG. 5, when the
그러면 본 발명의 실시예에 따른 보안 인증 시스템의 안전성에 대하여 상세하게 설명한다.Next, the security of the security authentication system according to an embodiment of the present invention will be described in detail.
사용자 단말기(300)에 해킹 툴이 설치되어 있어서 사용자 단말기(300)가 인증 서버(500)로 사용자 인증 정보를 전송할 때 그리고 인증 서버(500)가 인증 성공/실패 메시지를 사용자 단말기(300)로 전송할 때 해킹 툴이 이들을 가로챌 수 있는 것으로 가정한다.The hacking tool is installed in the
먼저, 가장 단순하게 공격자가 해킹 툴을 이용하여 사용자 인증 정보 중 사용자 식별 부호(ID)만을 알아내었다고 하자. 이러한 공격자는 사용자 식별 부호(ID)에 대한 사용자 패스워드(PW)를 알아내기 위하여 사서에 있는 단어를 닥치는 대로 입력하는 사서 공격(dictionary attack)을 할 수 있다. 그런데 이 경우 사용자 단말기(300)에서 입력된 단어에 기초하여 사용자 인증 정보를 생성하고 인증 서버(500)로 전송해보아야 인증 결과를 알 수 있다. 임의로 입력된 단어에 의하면 사용자 인증에 실패할 수밖에 없고, 사용자 인증에 연속하여 실패한 횟수가 소정 횟수(N) 이상이 되면 인증 서버(500)는 사용자 인증을 허용하지 않는다. 따라서 사용자 식별 부호(ID)를 알아내었다고 하더라도 사용자 패스워드(PW)를 알아낼 수 는 없다.First, let's say the attacker simply finds the user identification code (ID) of the user authentication information using the hacking tool. Such an attacker can make a dictionary attack by randomly entering a word in a librarian to find a user password (PW) for the user identification code (ID). However, in this case, the authentication result may be known only by generating user authentication information based on the word input from the
다음으로, 공격자가 암호화 모듈(320)과 인증 서버(500) 사이의 인터페이스를 알아내어 사용자 식별 부호(ID), 클라이언트 키(CR), 서버 키(SR) 및 클라이언트 인증 메시지(BMAC)와 이들에 대하여 사용자 인증에 성공했음을 알아내었다고 가정하자. 그러면 공격자는 성공한 사용자 인증 정보를 인증 서버(500)로 전송하여 사용자 인증을 시도하는 스니핑 공격(sniffing attack)을 할 수 있다. 그러나 해당 클라이언트 키(CR)가 키 저장 서버(700)에 기억되어 있는 동안에 재사용되면 사용자 인증에 성공할 수 없고, 그 후에는 해당 클라이언트 키(CR)의 재사용 여부를 판단할 수 없지만 해당 서버 키(SR)가 유효하지 않게 되어 성공한 클라이언트 인증 메시지(BMAC)와 서버 인증 메시지(BMAC')가 서로 달라지게 되므로 사용자 인증에 성공할 수 없다. 따라서 공격자는 인증에 성공한 사용자 인증 정보를 알아내더라도 이 정보를 이용하여 사용자 패스워드(PW)를 알아낼 수 없을 뿐만 아니라 다시 사용자 인증을 받을 수도 없다.Next, the attacker finds out the interface between the
마지막으로, 공격자가 리버스 엔지니어링(reverse engineering)을 통해 암호화 모듈(320)의 클라이언트 인증 메시지(BMAC) 계산 방법을 알아내었고, 인증에 성공한 사용자 인증 정보를 알아내었다고 하자. 그러나 리버스 엔지니어링을 통해도 해시 함수의 특성상 비밀키(KEY) 및 사용자 패스워드(PW)를 알아낼 수는 없다. 이러한 공격자는 인증 서버(500)에 사용자 인증 정보를 전송하여 인증 성공 여부를 물어볼 필요가 없으며, 개인용 컴퓨터 내에서 별도의 프로그램을 사용하여 사용자 패스워드(PW)를 찾을 때까지 모든 가능한 문자의 조합에 대하여 반복하여 입력해보 는 전수 공격(brute-force attack)을 할 수 있다. 즉, 공격자는 전수 공격을 통하여 성공한 클라이언트 인증 메시지(BMAC)와 동일한 값을 산출해내는 문자 조합을 발견함으로써 사용자 패스워드(PW)를 추출할 수 있다.Finally, let's say that the attacker found a method for calculating the client authentication message (BMAC) of the
이러한 공격에 대한 안전성은 사용자 패스워드(PW)의 길이에 달려있다. 예를 들어, 사용자 패스워드(PW)의 문자열 길이를 13자로 하고 키보드에서 입력 가능한 문자 94자를 사용자 패스워드(PW)용 문자로 허용하면 가능한 문자 조합은 9413개이고, 이 수를 달리 표현하면 4.47×1025이다. 개인용 컴퓨터 펜티엄4 3.2GHz에서 하나의 클라이언트 인증 메시지(BMAC)를 계산하는 데 1.9×10-5초가 소요되므로 이보다 1000배 빠른 컴퓨터 1000대가 동원된다면 모든 가능한 문자 조합에 대하여 클라이언트 인증 메시지(BMAC)를 계산하는 데 8.5×1014초가 소요된다. 이는 대략 2700만년이 되므로 이러한 방법에 의하더라도 사용자 패스워드(PW)를 추출하는 것은 확률적으로 불가능하다. 따라서 사용자 패스워드(PW)의 길이를 충분히 길게 하면 이러한 공격에 의하여 사용자 패스워드(PW)가 노출될 수 없다.The safety against such an attack depends on the length of the user password (PW). For example, if the length of the user password (PW) is 13 characters and 94 characters that can be input from the keyboard are allowed as the characters for the user password (PW), there are 94 13 possible character combinations, which is 4.47 × 10. 25 is. Personal Computer Pentium 4 It takes 1.9 × 10 -5 seconds to calculate one Client Authentication Message (BMAC) at 3.2 GHz, so if 1000 computers are 1000 times faster than this, the Client Authentication Message (BMAC) is calculated for all possible character combinations. This takes 8.5 × 10 14 seconds. This is approximately 27 million years old, so even with this method it is impossible to extract the user password (PW). Therefore, if the length of the user password PW is sufficiently long, the user password PW cannot be exposed by such an attack.
이와 같이 본 발명의 보안 인증 시스템에 의하면 해킹 툴에 의하여 사용자 인증 정보가 가로채이더라도 사용자 패스워드(PW)를 추출할 수 없다.As described above, according to the security authentication system of the present invention, even if the user authentication information is intercepted by the hacking tool, the user password PW cannot be extracted.
본 실시예에 따른 보안 인증 시스템은 로그인 페이지에 보안 접속 버튼을 배치하여 사용자가 선택할 수 있도록 함으로써 본 실시예에 따른 보안 인증을 선택적으로 수행할 수 있다.The security authentication system according to the present embodiment can selectively perform the security authentication according to the present embodiment by arranging a security access button on the login page so that a user can select it.
한편 키보드에 입력된 사용자 식별 부호(ID) 및 패스워드(PW)가 암호화 모듈(320)에 안전하게 전달될 수 있도록 사용자 단말기(300)는 별도의 키보드 보안 프로그램을 구비할 수 있다.On the other hand, the
본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. 이 매체는 지금까지 설명한 보안 인증 방법을 실행시키기 위한 프로그램을 기록한다. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, CD 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 자기-광 매체, 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치 등이 있다. 또는 이러한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the invention include a computer readable medium containing program instructions for performing various computer-implemented operations. This medium records a program for executing the security authentication method described so far. The media may include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of such media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CDs and DVDs, floppy disks and program commands such as magnetic-optical media, ROM, RAM, flash memory, and the like. Hardware devices configured to store and perform such operations. Alternatively, the medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
본 발명의 실시예에 따른 보안 인증 시스템 및 방법은 전자 상거래, 인터넷 뱅킹, 인터넷 포탈, 인터넷 게임 등과 같은 인터넷 서비스에 적용될 수 있다.Security authentication system and method according to an embodiment of the present invention can be applied to Internet services, such as electronic commerce, Internet banking, Internet portal, Internet games.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the preferred embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.
이와 같이, 본 발명에 의하면, 사용자 단말기에서 사용자 식별 부호, 사용자 패스워드, 클라이언트 키 및 서버 키를 이용하여 클라이언트 인증 메시지를 생성하고 인증 서버에서 이와 유사한 방법으로 서버 인증 메시지를 생성한 후 클라이언트 인증 메시지와 서버 인증 메시지를 비교하여 사용자 인증을 수행함으로써 해킹 툴이 사용자 단말기에 설치되어 있더라도 사용자 패스워드를 가로챌 수 없으며, 사용자 인증 정보를 가로채더라도 사용자 패스워드를 추출할 수 없다.As described above, according to the present invention, a client authentication message is generated using a user identification code, a user password, a client key, and a server key in a user terminal, and a server authentication message is generated in a similar manner in an authentication server. By comparing the server authentication messages and performing user authentication, even if the hacking tool is installed in the user terminal, the user password cannot be intercepted, and even if the user authentication information is intercepted, the user password cannot be extracted.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060098783A KR100827187B1 (en) | 2006-10-11 | 2006-10-11 | Security authentication system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060098783A KR100827187B1 (en) | 2006-10-11 | 2006-10-11 | Security authentication system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080032810A KR20080032810A (en) | 2008-04-16 |
KR100827187B1 true KR100827187B1 (en) | 2008-05-02 |
Family
ID=39573179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060098783A Active KR100827187B1 (en) | 2006-10-11 | 2006-10-11 | Security authentication system and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100827187B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190097083A (en) * | 2016-12-30 | 2019-08-20 | 로베르트 보쉬 게엠베하 | Back-calculation fuzzy extractor and method for authentication |
KR20240136602A (en) | 2023-03-07 | 2024-09-19 | 국립안동대학교 산학협력단 | Method and apparatus of controlling account lockout |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016039568A1 (en) * | 2014-09-11 | 2016-03-17 | 임용훈 | Device and method for user authentication |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010093453A (en) * | 2000-03-29 | 2001-10-29 | 윤종용 | System for authentication using a password and method thereof |
JP2004282295A (en) | 2003-03-14 | 2004-10-07 | Sangaku Renkei Kiko Kyushu:Kk | One-time id generating method, authentication method, authentication system, server, client, and program |
KR20050000481A (en) * | 2003-06-27 | 2005-01-05 | 주식회사 케이티 | Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same |
KR20050042695A (en) * | 2003-11-04 | 2005-05-10 | 한국전자통신연구원 | Authentication system and method |
-
2006
- 2006-10-11 KR KR1020060098783A patent/KR100827187B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010093453A (en) * | 2000-03-29 | 2001-10-29 | 윤종용 | System for authentication using a password and method thereof |
JP2004282295A (en) | 2003-03-14 | 2004-10-07 | Sangaku Renkei Kiko Kyushu:Kk | One-time id generating method, authentication method, authentication system, server, client, and program |
KR20050000481A (en) * | 2003-06-27 | 2005-01-05 | 주식회사 케이티 | Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same |
KR20050042695A (en) * | 2003-11-04 | 2005-05-10 | 한국전자통신연구원 | Authentication system and method |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190097083A (en) * | 2016-12-30 | 2019-08-20 | 로베르트 보쉬 게엠베하 | Back-calculation fuzzy extractor and method for authentication |
KR102554982B1 (en) * | 2016-12-30 | 2023-07-14 | 로베르트 보쉬 게엠베하 | Inverse computational fuzzy extractor and method for authentication |
KR20240136602A (en) | 2023-03-07 | 2024-09-19 | 국립안동대학교 산학협력단 | Method and apparatus of controlling account lockout |
Also Published As
Publication number | Publication date |
---|---|
KR20080032810A (en) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10425405B2 (en) | Secure authentication systems and methods | |
JP6882254B2 (en) | Safety verification methods based on biological characteristics, client terminals, and servers | |
US11741218B2 (en) | System and method for improving the security of stored passwords for an organization | |
Bojinov et al. | Kamouflage: Loss-resistant password management | |
KR100915589B1 (en) | Security authentication system and method | |
KR101086451B1 (en) | Client screen tamper defense device and method | |
CN110493202A (en) | Log in generation and the verification method, device and server of token | |
Zhao et al. | All your browser-saved passwords could belong to us: A security analysis and a cloud-based new design | |
CN108737326B (en) | Method, system, device and electronic equipment for token verification | |
KR100951094B1 (en) | Privacy preservation methods and systems, computer readable storage media | |
US20030070074A1 (en) | Method and system for authentication | |
JP2008269610A (en) | Protecting sensitive data intended for remote application | |
JP2017507552A (en) | Method and apparatus for providing client-side score-based authentication | |
US12184798B2 (en) | Dynamic value appended to cookie data for fraud detection and step-up authentication | |
US20070074038A1 (en) | Method, apparatus and program storage device for providing a secure password manager | |
US20100241865A1 (en) | One-Time Password System Capable of Defending Against Phishing Attacks | |
KR100827187B1 (en) | Security authentication system and method | |
US20090044284A1 (en) | System and Method of Generating and Providing a Set of Randomly Selected Substitute Characters in Place of a User Entered Key Phrase | |
KR100785275B1 (en) | Method and system for providing contents using coupon | |
KR101388935B1 (en) | Two channel based user authentication apparatus and method | |
US11502840B2 (en) | Password management system and method | |
EP1331753A2 (en) | Method and apparatus for simultaneously establishing user identity and group membership | |
KR20190049177A (en) | Web browser based FIDO authentication method and apparatus | |
JP2017079419A (en) | Server authentication system, terminal, server, server authentication method, program | |
WO2018079708A2 (en) | Transmission/reception system, transmission device, reception device, method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20061011 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20071017 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20080414 |
|
PG1501 | Laying open of application | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20080425 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20080425 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20110411 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20110411 Start annual number: 4 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130329 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20130329 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160329 Year of fee payment: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20160329 Start annual number: 9 End annual number: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170328 Year of fee payment: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20170328 Start annual number: 10 End annual number: 10 |
|
FPAY | Annual fee payment |
Payment date: 20190401 Year of fee payment: 12 |
|
PR1001 | Payment of annual fee |
Payment date: 20190401 Start annual number: 12 End annual number: 12 |
|
PR1001 | Payment of annual fee |
Payment date: 20200402 Start annual number: 13 End annual number: 13 |
|
PR1001 | Payment of annual fee |
Payment date: 20210325 Start annual number: 14 End annual number: 14 |
|
PR1001 | Payment of annual fee |
Payment date: 20240327 Start annual number: 17 End annual number: 17 |