KR100827187B1 - Security authentication system and method - Google Patents

Security authentication system and method Download PDF

Info

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
Application number
KR1020060098783A
Other languages
Korean (ko)
Other versions
KR20080032810A (en
Inventor
송민철
신기빈
이찬규
Original Assignee
엔에이치엔(주)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 엔에이치엔(주) filed Critical 엔에이치엔(주)
Priority to KR1020060098783A priority Critical patent/KR100827187B1/en
Publication of KR20080032810A publication Critical patent/KR20080032810A/en
Application granted granted Critical
Publication of KR100827187B1 publication Critical patent/KR100827187B1/en

Links

Images

Abstract

본 발명은 보안 인증 시스템 및 방법에 관한 것으로서, 이 시스템은, 서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 사용자 식별 부호, 사용자 식별 부호에 대한 비밀키, 클라이언트 키 및 서버 키에 기초하여 서버 인증 메시지를 생성하고 서버 인증 메시지와 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 사용자 단말기로 전송하는 인증 서버를 포함한다. The present invention relates to a security authentication system and method, the system includes a key for generating a server key and transmits it to the user terminal generates a server and from the user terminal receives the user identification, client key, and client authentication message identifying a user code, authentication is based on a secret key, client key, and the server key for the user identification code to generate a server certificate message, and transmits an authentication success message or authentication failure message according to the comparison result by comparing the server authentication message and the client authentication message to the user terminal It includes server. 본 발명에 의하면, 해킹 툴이 사용자 단말기에 설치되어 있더라도 사용자 패스워드를 가로챌 수 없으며, 사용자 인증 정보를 가로채더라도 사용자 패스워드를 추출할 수 없다. According to the present invention, even if the hacking tool is installed in the user terminal it can not intercept the user password, even if the intercepted user authentication information is not able to extract the user's password.
보안 인증 시스템, 사용자 패스워드, 해시 함수, 인증 메시지, 클라이언트 키, 서버 키 Security authentication system, user passwords, hash functions, message authentication, client key, server key

Description

보안 인증 시스템 및 방법 {SECURITY AUTHENTICATION SYSTEM AND METHOD} Security authentication system and method {SECURITY AUTHENTICATION SYSTEM AND METHOD}

도 1은 본 발명의 실시예에 따른 보안 인증 시스템을 설명하기 위한 블록도이다. Figure 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 key server of Figure 1 generates a server key.

도 3은 본 발명의 실시예에 따른 보안 인증 시스템 중 사용자 단말기의 동작을 설명하기 위한 흐름도이다. Figure 3 is a flow chart showing the operation of the user terminal of the security authentication system according to an embodiment of the present invention.

도 4 및 도 5는 본 발명의 실시예에 따른 보안 인증 시스템 중 서버 측 동작을 설명하기 위한 흐름도이다. 4 and 5 are a flow chart showing the server-side operation of the security authentication system according to an embodiment of the present invention.

<도면 부호의 설명> <Description of reference numerals>

100: 웹 서버, 200: 통신망, 100: web server, 200: networks,

300: 사용자 단말기, 310: 응용 프로그램 300: user terminal 310: Application

320: 암호화 모듈, 400: 고객 정보 데이터베이스, 320: Encryption module, 400: customer information database,

500: 인증 서버, 600: 키 생성 서버, 500: authentication server 600: key generating server,

700: 키 저장 서버 700: Key Storage Server

본 발명은 보안 인증 시스템 및 방법에 관한 것으로, 보다 상세하게는 사용자 정보의 유출을 방지하며 사용자 인증을 수행할 수 있는 보안 인증 시스템 및 방법에 관한 것이다. The present invention relates to that, more specifically, the security authentication system and method that prevents the leakage of user information, and to perform user authentication of the security authentication system and method.

인터넷은 현대 생활에 없어서는 안 될 필수품이 되고 있으며, 전자 상거래, 인터넷 뱅킹, 온라인 게임 등과 같은 인터넷 서비스의 이용도 일반화되고 있다. The Internet has become a commodity should be an integral part of modern life, it is also becoming more common use of the Internet services such as e-commerce, online banking, online games. 이러한 인터넷 서비스를 이용하려면 일반적으로 사용자는 해당 서비스의 회원으로 가입하여야 하고, 사용자 인증을 거쳐 해당 서비스를 이용할 수 있다. To use these Internet services typically the user may be a member of that service, and can authenticate users through access to the service. 사용자 인증은 사용자가 사용자 단말기의 웹 브라우저에 사용자 ID(identification) 및 패스워드를 입력하여 서버로 전송한 후 서버가 이를 확인하는 과정으로 이루어진다. User authentication is performed by the process of the user and the server verify this, then by entering the user ID (identification) and password for the Web browser of the user terminal transmitting to the server.

타인의 사용자 단말기에 해킹 툴을 몰래 설치한 후, 사용자 ID 및 패스워드를 추출하여 도용하는 범죄가 증가하고 있다. And then secretly installed hacking tools to other user terminals, it increases the criminal to steal extracts the user ID and the password. 해킹 툴의 한 예로서, 브라우저 헬퍼 오브젝트(browser helper object, BHO)가 있다. As an example of hacking tools, a browser helper object (browser helper object, BHO). 이것은 원래 웹 브라우저의 기능을 확장시켜 주기 위하여 개발된 것으로서, 웹 브라우저가 자체적으로 제공하지 못하는 기능을 지원한다. It was developed to give as to extend the functionality of the original Web browser, and supports web browsers do not provide their own. 그런데 원래 목적과 달리 스파이웨어나 애드웨어 또는 해킹 등에 이용되는 경우가 많으며, 특히 사용자 인증 과정에서 사용자 단말기로부터 서버로 전송되는 사용자 인증 정보를 가로채는 방법으로 해킹에 이용된다. But unlike the original purpose it is used often to be used for spyware or adware or hacking, particularly the user authentication information transmitted from the user authentication process to the server from a user terminal to hack intercept method.

해킹을 방지하기 위하여 여러 가지 보안 프로그램이 개발되고 있다. There are various security programs being developed to prevent hacking. 보안 프로그램은 해킹 툴을 사용자 단말기에서 찾아내어 삭제하거나 사용자 인증 정보를 암호화하는 등의 방식으로 해킹을 방지한다. Security programs to prevent hacking methods such as hacking and removing the tool from the user terminal or encrypt user credentials. 그러나 해킹 기법 및 툴이 점차 다양 해지고 지능화되어 사용자 패스워드를 추출하는 것이 어렵지 않은 실정이다. However, the techniques and hacking tools are becoming increasingly diverse intelligent a situation is not hard to extract the user's password. 게다가 브라우저 헬퍼 오브젝트는 정상적인 코드 또는 프로그램으로 인식될 수 있으므로 보안 프로그램이 동작하여도 사용자 인증 정보가 가로채이는 것을 막기 어렵다. In addition, the browser helper object can be recognized as a normal code or a program even if a security program operation is difficult to prevent the user authentication information is horizontally chaeyineun.

따라서 본 발명이 이루고자 하는 기술적 과제는 해킹 툴이 사용자 단말기에 설치되어 사용자 단말기와 서버 사이에서 송수신되는 사용자 인증 정보를 가로채더라도 사용자 패스워드가 노출되지 않도록 사용자 인증을 수행할 수 있는 보안 인증 시스템 및 방법을 제공하는 것이다. Therefore, the technical problem is hacking tools are installed in the user terminal even if the intercepted user authentication information that is transmitted and received between the user terminal and the server in the user password to perform user authentication from exposure security authentication system and method THE INVENTION The present invention to provide.

이러한 기술적 과제를 이루기 위한 본 발명의 한 실시예에 따른 보안 인증 시스템은 서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하고 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 인증 서버를 포함하며, 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성된다. Secure authentication according to an embodiment of the present invention to achieve such a technical problem the system generates a server key from said key generating server, and the user terminal transmitting to the user terminal receives the user identification, client key, and client authentication message user identification code, the user's secret key to the identification code, the client key and said server key based on the generated server authentication message and the server authentication message and the comparing the client certificate message authentication in accordance with the comparison result success message or the authentication a failure message comprising the authentication server sending to the user terminal, the client authentication message is generated based on the user identification code, user password, the client key and said server key.

상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가질 수 있다. The client key is generated in the user terminal each time the client authentication message generated may have a value different from the value previously generated.

상기 사용자 단말기로부터 상기 클라이언트 키를 받아 기억하는 키 저장 서버를 더 포함할 수 있다. From the user terminal receiving the client key it may further include a key storage for storing the server.

상기 인증 서버는 상기 사용자 단말기로부터 전송된 상기 클라이언트 키가 상기 키 저장 서버에 기억되어 있는 클라이언트 저장 키 중 어느 하나와 동일한 값을 가지면 상기 인증 실패 메시지를 상기 사용자 단말기에 전송할 수 있다. The authentication server may be transferred has the same value with any one of the said client key transmitted from the client terminal user storage key stored in the key storage server, the authentication failure message to the user terminal.

상기 인증 서버는 상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송할 수 있다. The authentication server determines that the client key to the re-use may send the authentication failure message to the user terminal.

상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가질 수 있다. The server key is generated every predetermined period of time may have a value different from the value previously generated is valid for a period of time.

상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 각 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교할 수 있다. The authentication server then calculates the server authentication message based on each of the available server key until the server authentication messages to be of the same value as the client authentication message or the user authentication is completed for the effective server key the server It may compare the authentication message and the client certificate message.

상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기에 전송하고, 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송할 수 있다. The authentication server is the server authentication message is the client certificate message has the same value that the server authentication message, the client until the user authentication is completed for the authentication success message to the valid server key transfer, and in the user terminal, It does not have the same value as the authentication message may send the authentication failure message.

상기 인증 서버는 상기 사용자 단말기로부터 상기 서버 키를 수신하며, 상기 수신된 서버 키가 상기 키 생성 서버에 저장되어 있는 상기 유효 서버 키에 속하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송할 수 있다. The authentication server may be sent if the server receives the key from the user terminal, and not in the valid key server in the received server key is stored in the key generation server of the authentication failure message to the user terminal.

상기 서버 키는 유효 기간을 가지며, 상기 인증 서버는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송할 수 있다. The key server has a valid period, the authentication server determines that the valid period for the last key in the server may send the authentication failure message to the user terminal.

상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성된 상기 비밀키를 기억하는 사용자 정보 데이터베이스를 더 포함할 수 있다. A user information database for storing the generated secret key by applying a predetermined hash function to the user password may be further included.

상기 인증 서버는 상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않을 수 있다. The authentication server may not be recorded when the user authentication by the user authentication failure history with continuous over a predetermined number of times permitted for the user authentication with the user identification codes for the user identification code.

상기 사용자 단말기는 상기 사용자 패스워드에 제1 해시 함수를 적용하여 상기 비밀키를 생성하고, 상기 사용자 식별 부호에 제2 해시 함수를 적용하여 제1 해시 값을 생성하며, 상기 비밀키, 상기 제1 해시 값 및 상기 서버 키에 기초한 제1 변수에 제3 해시 함수를 적용하여 제2 해시 값을 생성하고, 상기 비밀키, 상기 클라이언트 키 및 상기 제2 해시 값에 기초한 제2 변수에 제4 해시 함수를 적용하여 상기 클라이언트 인증 메시지를 생성할 수 있다. The user terminal is first applying a hash function to generate the secret key, generating a first hash value by applying a second hash function on the user identification code, the secret key, the first hash to the user password value and a fourth hash function to a second variable based on a third applying a hash function to generate a second hash value, the secret key, and the client key and the second hash value to the first variable based on said server key applied may generate the client certificate message.

본 발명의 다른 태양에 따른 보안 인증 방법은, 서버 키를 사용자 단말기로 전송하는 단계, 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 수신하는 단계, 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀 키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하는 단계, 상기 클라이언트 인증 메시지와 상기 서버 인증 메시지를 비교하는 단계, 그리고 상기 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계를 포함하며, 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성된다. Security authentication method according to another aspect of the present invention is the step of sending the server key to the user terminal, the method comprising: receiving a user identification, client key, and client authentication message from the user terminal, identifying the user code, the user identification code secret for the key, the client key, and generating the server authentication message based on the server's key, the client certificate message and comparing the server authentication message, and the comparison authentication success message or authentication failure according to the message a comprises the step of transmitting to the user terminal, the client authentication message is generated based on the user identification code, user password, the client key and said server key.

본 발명의 다른 태양에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법 중 어느 하나를 컴퓨터에 실행시키기 위한 프로그램을 기록한다. The computer readable medium according to another aspect of the present invention records a program for executing any of the methods described above to a computer.

그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. This will be described in detail so that the invention can be easily implemented by those of ordinary skill, in which with respect to the embodiment of the present invention with reference to the accompanying drawings.

먼저, 도 1 및 도 2를 참고하여 본 발명의 실시예에 따른 보안 인증 시스템에 대하여 상세하게 설명한다. First, a detailed description will be given of the security authentication system according to an embodiment of the present invention will be described with reference to Figs.

도 1은 본 발명의 실시예에 따른 보안 인증 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 키 생성 서버가 서버 키를 생성하는 방식을 설명하기 위한 개념도이다. 1 is a block diagram illustrating a security authentication system according to an embodiment of the invention, Figure 2 is a conceptual diagram illustrating a manner in which the key generating server of Figure 1 generates a server key.

도 1을 참고하면, 본 발명의 실시예에 따른 보안 인증 시스템은 웹 서버(100), 인증 서버(500), 사용자 정보 데이터베이스(400), 키 생성 서버(600), 키 저장 서버(700), 그리고 통신망(200)을 통하여 웹 서버(100) 및 인증 서버(500)와 연결되어 있는 복수의 사용자 단말기(300)를 포함한다. Referring to Figure 1, the security authentication system according to an embodiment of the present invention, the web server 100, the authentication server 500, user information database 400, the key generating server 600, a key storage server 700, and it includes a communication network 200, web server 100 and the authentication server, a plurality of user terminals 300 that are connected to the 500 through the.

사용자 단말기(300)는 인터넷 서비스를 제공하는 인터넷 서비스 시스템(도시하지 않음), 웹 서버(100) 및 인증 서버(500)와 교신하는 장치로서, 통신망(200)을 통하여 이들에 접속하여 정보를 주고받는다. User terminal 300, the Internet service system for providing an Internet service (not shown), a device for communicating with the Web server 100 and authentication server 500, and connected to these via a communication network 200 for communicating information receive. 사용자 단말기(300)는 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant, PDA), 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 단말기로 이루어질 수 있다. The user terminal 300 is a desktop computer as well as a laptop computer, a workstation, a palmtop (palmtop) computer, a personal digital assistant (personal digital assistant, PDA), operation by having a memory means is equipped with a microprocessor, such as a web pad ability the can be done with a device.

한편 인터넷 서비스를 제공받고자 하는 사용자는 자신의 이름, 주민등록번호, 사용자 식별 부호(ID), 패스워드(PW) 등의 개인 정보를 사용자 단말기(300)에 입력하여 인터넷 서비스 제공자에게 제출하고 소정 절차를 거쳐서 회원이 되며, 회원이 되면 인터넷 서비스를 이용할 수 있게 된다. The member user seeking provides Internet service to enter personal information such as his name, social security number, a user identification code (ID), a password (PW) to the user terminal 300 is presented to an Internet service provider and via the predetermined procedure this is, if the members are able to use Internet services.

사용자 단말기(300)는 응용 프로그램(310) 및 암호화 모듈(320)을 포함한다. The user terminal 300 includes the application 310 and the encryption module 320.

응용 프로그램(310)은 사용자 단말기(300)에 설치되며, 사용자의 조작에 따라 통신망(200)을 통하여 서비스 시스템에 접속하여 다양한 기능을 수행할 수 있다. Application 310 is installed in the user terminal 300, and via a communication network 200 in accordance with an operation of the user connected to the service system, to perform various functions. 응용 프로그램(310)의 한 예로서, 마이크로소프트(Microsoft)사의 인터넷 익스플로러(Internet Explorer)와 같은 웹 브라우저를 들 수 있으나 이에 한정되지 않으며 인터넷 서비스 시스템, 웹 서버(100) 및 인증 서버(700)와 통신을 수행할 수 있는 것이라면 어느 것이든지 상관없다. As an example of the application (310), and Microsoft (Microsoft) 's Internet Explorer (Internet Explorer) include a web browser, such as, but not limited to Internet service system, web server 100 and the authentication server (700) as long as they can communicate not matter which one.

응용 프로그램(310)은 웹 서버(100)로부터 전송된 데이터에 기초하여 로그인 페이지를 표시하고, 인증 서버(500)로부터 인증 성공 메시지 또는 인증 실패 메시지를 받아 이를 사용자 단말기(300)에 표시한다. Application 310 receives an authentication success message or authentication failure message from the login page, and the authentication server 500 based on the data sent from the web server 100 and displays it to the user terminal 300.

암호화 모듈(320)은 사용자가 사용자 단말기(300)에 입력한 사용자 식별 부 호(ID) 및 패스워드(PW), 자신이 생성한 클라이언트 키(CR), 그리고 웹 서버(100)로부터의 서버 키(SR)에 기초하여 클라이언트 인증 메시지(BMAC)를 생성한다. Server key from the encryption module 320, a user identifying part number (ID) and password (PW), the client key (CR), and a web server 100 that it generates a user input to the user terminal 300 ( based on the SR) to generate a message authentication client (BMAC). 그리고 생성된 클라이언트 인증 메시지(BMAC), 사용자 식별 부호(ID) 및 클라이언트 키(CR)를 포함하는 사용자 인증 정보를 인증 서버(500)로 전송한다. And it transmits the generated message authentication client (BMAC), user authentication information including a user identification code (ID) and a client key (CR) to the authentication server (500). 또한 필요에 따라 서버 키(SR)를 더 포함하는 사용자 인증 정보를 인증 서버(500)로 전송할 수도 있다. In addition, as needed, it may send the user authentication information further includes a key server (SR) to the authentication server (500). 한편 이와 달리 응용 프로그램(310)이 사용자 인증 정보를 인증 서버(500)로 전송할 수도 있다. The contrast may be application 310 transmits the user authentication information to the authentication server 500.

암호화 모듈(320)은 응용 프로그램(310)과 유기적으로 사용될 수 있도록 액티브엑스(activeX)로 구현될 수 있으며, 또한 응용 프로그램(310)에 포함되도록 구현될 수 있다. Encryption module 320 may be implemented as Active X (activeX) to be used as organic and application 310, it may also be implemented to include an application 310. The

암호화 모듈(320) 또는 응용 프로그램(310)은 SGML(standard generalized markup language)에 근거하여 작성된 웹 프로그래밍 언어 HTML(hypertext markup language) 및 XML(extensible markup language) 등을 통하여 웹 서버(100) 및 인증 서버(500)와 통신을 할 수 있으며, 사용자 인증 정보는 폼 태그(form tag)의 형태로 전송될 수 있다. Encryption module 320 or the application 310 SGML (standard generalized markup language) and created a web programming language HTML (hypertext markup language) and XML (extensible markup language), such as web server 100 and the authentication server through the grounds to the to the 500 and the communication and the user authentication information it may be transmitted in the form of a tag form (form tag).

그러면 한 예로서, 암호화 모듈(320)이 클라이언트 인증 메시지(BMAC)를 생성하는 것에 대하여 자세하게 설명한다. Then, as one example, encryption module 320 will be described in detail with respect to generating a message authentication client (BMAC).

우선 암호화 모듈(320)은 패스워드(PW)에 함수 D를 적용하여 비밀키(KEY)를 생성한다. First encryption module 320 generates the secret key (KEY) by applying the function D to the password (PW).

KEY=D(PW) KEY = D (PW)

여기서, 함수 D는 단방향이고, 충돌 회피성을 가지고 있는 함수로서, 일례로서 데이터 암호화 규격(data encryption standard, DES) 알고리즘을 구현해 놓은 crypt() 함수를 들 수 있다. Here, D is a one-way function, and a function with collision avoidance property, there may be mentioned the crypt () function sewn implement the Data Encryption Standard (data encryption standard, DES) algorithm as an example. 함수 D는 충돌 회피 해시 함수(collision resistant hash function)일 수도 있다. Function D may be a collision-resistant hash function (collision resistant hash function).

해시 함수는 요약 함수 또는 메시지 다이제스트 함수(message digest function)라고도 하는데, 주어진 원문에서 고정된 길이의 의사난수를 생성하는 함수를 말한다. A hash function is also known as summation function or a message digest function (message digest function), it refers to a function that generates a pseudo-random number of fixed length in a given original text. 해시 함수는 한쪽 방향으로 계산이 빠르고 용이하게 되지만 역방향으로는 계산이 이론적으로 불가능하다. A hash function is the reverse direction, but it is quick and easy calculation in one direction is theoretically possible, this calculation. 즉, 해시 함수가 입력 값을 받아 출력 값을 계산하는 것은 빠르고 용이하지만, 출력 값으로부터 입력 값을 계산해내는 것은 이론적으로 매우 어렵다. That is, the hash function is to take the input value to calculate the output value quickly and easily, but that it calculates the input value from the output value is very difficult in theory. 충돌 회피 해시 함수는 동일한 출력 값을 내는 서로 다른 두 입력 값을 찾기가 계산적으로 불가능한 성질을 갖는 해시 함수를 의미한다. Collision-resistant hash function refers to the hash function having the properties as impossible to find two different inputs that the same output value computationally.

암호화 모듈(320)은 사용자 식별 부호(ID)에 해시 함수 H1을 적용하여 해시 값(HV1)을 산출한다. Encryption module 320 by applying the hash function H1 to the user identifying code (ID) and calculates a hash value (HV1).

HV1=H1(ID) HV1 = H1 (ID)

해시 함수 H1은, 예를 들면, 일반적으로 잘 알려진 MD(message digest algorithm) 계열, SHA(secure hash algorithm) 계열, RIPEMD(race integrity primitives evaluation message digest) 계열 등의 해시 함수일 수 있으나 이에 한정되지 않으며 이들과 다른 형태의 해시 함수일 수도 있다. The hash function H1 may be, for example, generally well known MD (message digest algorithm) series, SHA (secure hash algorithm) series, RIPEMD (race integrity primitives evaluation message digest) be a hash function of the like family, but is not limited to these and other forms may be a function of the hash.

암호화 모듈(320)은 이전에 생성된 값과 서로 다른 값을 가지는 클라이언트 키(CR)를 생성한다. Encryption module 320 generates the client key (CR) with a previous value, and different values ​​created. 또한 각 사용자 단말기(300)의 암호화 모듈(320)은 각 사용자 단말기(300)마다 서로 다른 값을 가지는 클라이언트 키(CR)를 생성한다. In addition, the encryption module 320 for each user terminal 300 generates a client key (CR) has a different value for each user terminal 300. 즉, 클라이언트 키(CR)는 생성될 때마다 유일한 값을 가진다. That is, the client key (CR) has a unique value each time it is generated. 한 예로서, 암호화 모듈(320)은 공간과 시간의 조합으로 이루어지는 범용 단일 식별자(universal unique identifier, UUID)를 클라이언트 키(CR)로 사용할 수 있다. As an example, the encryption module 320 may be a universal unique identifier (universal unique identifier, UUID) comprising a combination of space and time as a client key (CR). 이외에도 암호화 모듈(320)은 random() 함수를 이용하여 클라이언트 키(CR)를 생성할 수도 있는데, 이때 사용자 식별 부호(ID)와 마이크로 초 단위의 시간을 이용한 값을 random() 함수의 변수인 seed에 대입하여 random() 함수에 적용시키면 유일한 클라이언트 키(CR)를 생성할 수 있다. In addition to the encryption module 320 using the random () function, there may be generated a client key (CR), wherein the values ​​using the user identification code (ID) and time of microseconds variable of the random () function seed by substituting the client may generate a unique key (CR) applying to the random () function.

암호화 모듈(320)은 [수학식 1]에서 생성된 비밀키(KEY)와 [수학식 2]에서 생성된 해시 값(HV1)을 배타적 논리합(XOR) 연산을 하고 그 결과에 서버 키(SR)를 덧붙인 후 해시 함수 H2를 적용하여 해시 값(HV2)을 산출한다. Encryption module 320 Equation 1 the secret key (KEY) and Equation (2) server key (SR) to the exclusive-OR (XOR) operation of the hash value (HV1) produced in and with the results generated by the to apply a hash function H2 after appending calculates a hash value (HV2).

HV2=H2(KEY XOR HV1, SR) HV2 = H2 (KEY XOR HV1, SR)

여기서, 해시 함수 H2는 앞서 설명한 해시 함수 H1과 동일할 수도 있고 다를 수도 있다. Here, the hash function H2 may be different and may be the same as the hash function H1 described above.

암호화 모듈(320)은 [수학식 1]에서 생성된 비밀키(KEY)와 클라이언트 키(CR)를 배타적 논리합(XOR) 연산을 하고 그 결과에 [수학식 3]의 해시 값(HV2)을 덧붙인 후 해시 함수 H3을 적용하여 클라이언트 인증 메시지(BMAC)를 생성한다. Encryption module 320 appending to Equation 1 the secret key (KEY) and the client key (CR) to the exclusive-OR (XOR) operation, and the hash value of the resulting formula 3] (HV2) produced in then to apply the hash function H3 to generate a message authentication client (BMAC).

BMAC=H3(KEY XOR CR, HV2) BMAC = H3 (KEY XOR CR, HV2)

여기서 해시 함수 H3은 앞서 설명한 해시 함수 H1, H2와 동일할 수도 있고 다를 수도 있다. Where the hash function H3 is also described above may be the same as the hash function H1, H2 or different.

한편, 암호화 모듈(320)은 지금까지 설명한 계산 방법 이외에도 다양한 방법으로 클라이언트 인증 메시지(BMAC)를 생성할 수 있다. Meanwhile, the encryption module 320 in addition to the calculation method described so far can generate the client certificate message (BMAC) in a variety of ways.

통신망(200)은 구내 정보 통신망(local area network, LAN), 도시권 통신망(metropolitan area network, MAN), 광역 통신망(wide area network, WAN), 인터넷 등을 가리지 않고, 통신 방식도 유선, 무선을 가리지 않으며 어떠한 통신 방식이라도 상관없다. Network 200 does not cover a local area network (local area network, LAN), metropolitan area network (metropolitan area network, MAN), wide area network (wide area network, WAN), the Internet etc. and the communication system also cover the wire, radio It does not matter any communication.

웹 서버(100)는 사용자 단말기(300)의 요청에 따라 로그인 페이지를 포함하는 인터넷 서비스 관련 웹 페이지를 사용자 단말기(300)에 제공하여 사용자 단말기(300)가 로그인 페이지 및 인터넷 서비스 관련 페이지를 표시하도록 하고, 키 생성 서버(600)로부터의 서버 키(SR)를 사용자 단말기(300)에 전달한다. Web server 100 to provide Internet services web page containing the Login page, at the request of the user terminal 300 to the user terminal 300. The user terminal 300 to display the login page, and Internet services-related pages and passes the key server (SR) from the key generating server 600 to the user terminal 300. 또한 웹 서버(100)는 사용자 단말기(300)에 암호화 모듈(320)이 설치되어 있지 않으면 사용자 단말기(300)에 암호화 모듈(320)을 설치할 수 있으며, 사용자 단말기(300)에 설치되어 있는 암호화 모듈(320)이 구 버전이면 새로운 버전으로 암호화 모듈(320)을 갱신할 수 있다. In addition, the web server 100 the encryption module 320 is not installed, and can install the encryption module 320 in the user terminal 300, the encryption that is installed on the user terminal 300 in the module in the user terminal 300, 320 If the old version can update the cryptographic module 320 to a new version.

사용자 정보 데이터베이스(400)는 웹 서버(100) 및 인증 서버(500)에 연결되어 있으며, 사용자 정보를 기억한다. User information database (400) is connected to the web server 100 and authentication server 500 stores user information. 사용자 정보는 사용자 식별 부호(ID), 비밀 키(KEY), 사용자 이름, 주민등록번호, 주소, 유무선 전화번호, 전자우편 주소 등을 포함한다. User information includes user identification (ID), a secret key (KEY), user name, social security number, address, wired and wireless telephone number, e-mail address. 여기서 비밀키(KEY)는 [수학식 1]과 동일한 방식으로 사용자 패스워드(PW)를 암호화한 것으로서, 사용자 정보 데이터베이스(400)는 보안을 위하여 사용자 패스워드(PW)를 직접 기억하지 않는 것이 좋다. Wherein the secret key (KEY) is encrypted as the user password (PW) in the same manner as in Equation 1, the user information database 400 is preferably, for security that does not store the user's password (PW) directly.

사용자 정보 데이터베이스(400)는 웹 서버(100) 및 인증 서버(500)로부터의 요청에 따라 사용자 정보를 웹 서버(100) 및 인증 서버(500)에 제공한다. A user information database 400 and provides the user information according to a request from the Web server 100 and authentication server 500 to the Web server 100 and authentication server 500.

키 생성 서버(600)는 이전에 생성된 값과 서로 다른 값을 가지는 서버 키(SR)를 소정 시간마다 생성한다. Key generating server 600 generates a server key (SR) with a previous value, and different values ​​generated in each predetermined time. 즉, 서버 키(SR)는 생성될 때마다 유일한 값을 가진다. That is, the key server (SR) has a unique value each time it is generated. 예를 들면, 서버 키(SR)는 정수 i를 해시 함수 H4에 적용한 해시 값을 가질 수 있다. For example, the key server (SR) may have a hashed value of the integer i is applied to the hash function H4.

SR=H4(i) SR = H4 (i)

여기서 정수 i는 소정 시간마다 증가하거나 감소하며, 초기 값은 임의로 정할 수 있다. Where i is an integer, and increased or decreased every given time, the initial value may be set arbitrarily. 또한 해시 함수 H4는 앞서 설명한 해시 함수 H1, H2, H3과 동일할 수도 있고 다를 수도 있다. In addition, the hash function H4 may be different and may be the same as previously described hash functions H1, H2, H3.

한편, 소정 시간마다 생성된 각 서버 키(SR)는 소정 기간 동안 유효하며, 키 생성 서버(600)는 유효한 서버 키(SR)를 기억한다. On the other hand, each key server (SR) generated at predetermined time intervals is valid for a period of time, the key generation server 600 stores the effective key server (SR). 도 2를 참고하면, 제1 시점(T1)에서 생성된 제1 서버 키(SR1)는 제1 기간(P1) 동안 유효하고, 제2 시점(T2)에서 생성된 제2 서버 키(SR2)는 제2 기간(P2) 동안 유효하며, 이와 같이 반복하여 n 번째 시점(Tn)에서 생성된 n 번째 서버 키(SRn)는 n 번째 기간(Pn) 동안 유효하 다. Referring to FIG. 2, the first point in time (T1) is a first server key (SR1) is a second server key (SR2) a during the first period (P1) is valid, generates at a second time (T2) generated by the a second period (P2) is valid and, in this manner iteration n-th time (Tn) of the n-th server key (SRn) for generating in and is valid for the n-th period (Pn). 그러나 (n+1) 번째 시점(Tn+1)에서 (n+1) 번째 서버 키(SRn+1)가 생성되면 제1 기간(P1)이 지나므로 제1 서버 키(SR1)는 더 이상 유효하지 않게 된다. However, (n + 1) th point, so the first period (P1) is passed when the (Tn + 1) at the (n + 1) th server key (SRn + 1) is created, the first server key (SR1) is no longer available It is not. 이와 같은 방식으로 키 생성 서버(600)는 계속해서 서버 키(SR)를 생성하고 기억한다. In this way key generation server 600 will continue to generate a key server (SR) and stored. 여기서 각 시점 사이의 길이는 동일할 수 있고, 각 기간의 길이도 동일할 수 있다. The distance between each point in time may be the same, may be the same length in each period. 그러나 서로 다를 수도 있다. However, there may be different from each other. 이하에서는 키 생성 서버(600)가 다음과 같은 임의의 시간 (Tn≤t<Tn+1) 동안 기억하고 있는 서버 키(SR)를 유효 서버 키(SRj)라 한다(j=1, 2, ..., n). Hereinafter, the key generating server 600 is called following a certain time, such as (Tn≤t <Tn + 1) key server (SR) a valid key server (SRj) which stores for (j = 1, 2,. .., n).

예를 들어 소정 시간은 1분으로 설정될 수 있으며, 소정 기간은 해당 서버 키(SR)가 생성된 시점부터 30분이 지난 시점까지의 사이로 설정될 수 있다. For example, the predetermined time may be set to one minute, the predetermined period may be set between the point from which the key that server (SR) generated by the last 30 minutes of the time. 이 경우 임의의 시간에서 유효 서버 키(SRj)의 수효(n)는 30이다. In this case, a suhyo (n) 30 of the effective key server (SRj) at any time. 물론 소정 시간 및 소정 기간은 필요에 따라 이와 다르게 설정될 수 있다. Of course, the predetermined time and the predetermined period may be set as needed, alternatively.

키 생성 서버(600)는 웹 서버(100) 및 인증 서버(500)에 연결되어 있으며, 웹 서버(100)의 요청에 따라 가장 최근에 생성된 서버 키(SR)를 웹 서버(100)에 전송하여 각 사용자 단말기(300)로 전달되도록 한다. Key generating server 600 transmits the server key (SR) generated in the most recent at the request of the web server 100 and the authentication is connected to the server 500, web server 100 to the Web server 100 and it should be delivered to each user terminal 300. 또한 키 생성 서버(600)는 인증 서버(500)의 요청에 따라 유효 서버 키(SRj)를 인증 서버(500)에 전송하거나 서버 키(SR)가 유효 서버 키(SRj)에 속하는지 알려 줄 수 있다. In addition, the key generation server 600 can inform that the transmission or server key (SR) a valid server key (SRj) at the request of the authentication server 500 to the authentication server 500 in the effective server key (SRj) have.

키 저장 서버(700)는 인증 서버(500)에 연결되어 있으며, 복수의 클라이언트 저장 키(CSR)를 기억한다. Key storage server 700 is connected to the authentication server 500, and stores the plurality of client storage key (CSR). 인증 서버(500)의 요청에 따라 키 저장 서버(700)는 각 사용자 단말기(300)로부터 전송된 클라이언트 키(CR)가 이미 사용된 것인지 여부를 인증 서버(500)에 알리고, 사용되지 않은 것이라면 이를 기억한다. Key storage server 700 at the request of the authentication server 500 is informed as to whether the client key (CR) sent from each user station 300 already in the authentication server 500, if it is not used it remember.

즉, 키 저장 서버(700)는 전송된 클라이언트 키(CR)와 키 저장 서버(700)에 기억되어 있는 클라이언트 저장 키(CSR)를 비교하여 클라이언트 키(CR)가 클라이언트 저장 키(CSR) 중 어느 하나와 동일하면 클라이언트 키(CR)가 이미 사용된 것이라고 판단하고, 그렇지 않으면 사용되지 않은 것으로 판단한다. That is, any of the key storage server 700 to the client key (CR), the client storage key (CSR) comparing the client storage key (CSR) which is stored in the transmitted client key (CR) and the key storage server 700 If the same as the one determined by the client keys (CR) that has already been used, otherwise it is determined as not being used. 클라이언트 키(CR)가 이미 사용된 것이라면 사용자 인증에 실패한다. If a client key (CR) has already been used and the user authentication fails. 클라이언트 키(CR)가 사용되지 않은 것이라면 키 저장 서버(700)는 클라이언트 키(CR)를 클라이언트 저장 키(CSR)로서 기억하고, 적어도 이때의 유효 서버 키(SRj)가 모두 유효하지 않게 될 때까지 이를 유지한다. If the client key (CR) unused key storage server 700 until a memory, and at least this time the valid server key (SRj) the client key (CR) as a client, storage key (CSR) no longer are valid it maintains.

키 저장 서버(700)는 클라이언트 저장 키(CSR)를 기억하는 기억 장치(도시하지 않음)를 포함한다. Key Storage server 700 includes a storage device (not shown) for storing the client storage key (CSR). 예를 들어, 클라이언트 저장 키(CSR)가 유지될 시간을 30분으로 설정하고 사용자 인증을 위한 초당 조회 수(queries per second, QPS)의 최대치, 즉 전체 사용자 단말기(300)로부터 1초 동안 전송되는 클라이언트 키(CR)의 최대 수효를 1,000으로 가정하면 30분 동안 기억하고 유지해야 할 총 클라이언트 저장 키(CSR)는 1,000×30×60=1,800,000개이다. For example, client storage key (CSR) sets the time to be kept to 30 minutes and can be viewed per second for user authentication to be transmitted for one second from the maximum value, that is, the entire user terminal 300 in the (queries per second, QPS) assuming the maximum number of the client key (CR) with a total of 1,000 clients save to remember and maintain for 30 minutes key (CSR) is 1,000 × 30 × 60 = 1,800,000 dog. 클라이언트 저장 키(CSR)의 크기가 16바이트이고, 클라이언트 저장 키(CSR)가 기억되는 순간의 시간을 위하여 4바이트가 할당된다면 하나의 클라이언트 저장 키(CSR)의 기억을 위하여 20바이트가 필요하다. The size of the client storage key (CSR) 16 bytes, if four bytes are assigned to the time instant to which the client storage key (CSR) memory of 20 bytes is needed for the storage of a client storage key (CSR). 따라서 기억 장치는 적어도 36M바이트의 기억 공간을 필요로 한다. Therefore the storage device needs a storage area of ​​at least 36M bytes.

인증 서버(500)는 사용자 단말기(300)로부터 사용자 인증 요청, 즉 사용자 인증 정보를 받으면 사용자 인증을 수행한다. Authentication server 500 is a user authentication request from the user terminal 300, that receives the user authentication information and performs user authentication.

인증 서버(500)는 클라이언트 키(CR)가 이미 사용된 것인지 여부에 따라 인 증 실패 메시지를 사용자 단말기에 전송하거나 서버 인증 메시지(BMAC')를 생성한다. The authentication server (500) generates a client key (CR) is already an authentication failure message, depending on whether you want to use the transmission to the user terminal or server authentication, message (BMAC '). 또한 인증 서버(500)는 사용자 단말기(300)가 서버 키(SR)를 인증 서버(500)로 전송하는지 여부에 따라 방식을 달리하여 사용자 인증을 수행한다. In addition, the authentication server 500 with different ways depending on whether the user terminal 300 transmits a key server (SR) to the authentication server 500 performs user authentication. 한편 인증 서버(500)는 사용자 식별 부호(ID)에 대한 사용자 인증 이력을 기록해 두고 일정한 시간 동안 연속하여 소정 횟수 이상 사용자 인증에 실패하면 해당 사용자 식별 부호(ID)에 대한 사용자 인증을 허용하지 않을 수 있다. The authentication server 500 may write down the user authentication history for a user identification code (ID) when continuously for a certain period of time for failures in the predetermined number of times or more user authentication may not allow the user authentication for the user identification code (ID) have.

인증 서버(500)는 사용자 단말기(300)의 암호화 모듈(320)이 클라이언트 인증 메시지(BMAC)를 생성하는 것과 유사한 방법으로 서버 인증 메시지(BMAC')를 생성한다. Authentication server 500 generates a server authentication message (BMAC ') in a manner similar to that encryption module 320 of the user terminal 300 is to generate a message authentication client (BMAC). 즉, 인증 서버(500)는 사용자 단말기(300)로부터의 사용자 식별 부호(ID)를 [수학식 2]의 해시 함수 H1에 적용하여 해시 값(HV1)을 산출한다. That is, the authentication server 500 by applying a user identification code (ID) from a user terminal 300 to the hash function H1 of Equation (2) calculates a hash value (HV1). 그리고 사용자 식별 부호(ID)에 대응하는 비밀키(KEY)를 사용자 정보 데이터베이스(400)로부터 읽어들이고, 키 생성 서버(600)로부터 유효 서버 키(SRj)를 받은 후, 이들(KEY, HV1, SRj)과 [수학식 3]의 해시 함수 H2를 이용하여 해시 값(HV2)을 산출한다[여기서 유효 서버 키(SRj)를 서버 키(SR)로 두고 계산함]. And it reads the secret key (KEY) corresponding to the user identification code (ID) from the user information database 400, and then from the key generating server 600 receives the valid server key (SRj), these (KEY, HV1, SRj ) and using a hash function H2 of [equation 3] and calculates the hash value (HV2) [where valid with the key server (SRj) to the server key (SR) calculated. 그러나 사용자 단말기(300)로부터 서버 키(SR)를 수신하는 경우는 유효 서버 키(SRj) 대신 서버 키(SR)를 사용하여 해시 값(HV2)을 산출한다. However, when receiving a key server (SR) from the user terminal 300 by using the server instead of the valid key (SRj) key server (SR) is calculated as a hash value (HV2). 그러고 비밀키(KEY), 클라이언트 키(CR) 및 해시 값(HV2)과 [수학식 4]의 해시 함수 H3을 이용하여 서버 인증 메시지(BMAC')를 생성한다. And then it generates a secret key (KEY), the client key (CR) and the hash value (HV2) and the authentication server a message using a hash function H3 for Equation 4] (BMAC '). 인증 서버(500)는 생성된 서버 인증 메시지(BMAC')와 사용자 단말기(300)로부터의 클라이언트 인증 메시지(BMAC)를 비교하고 그 결과에 기초하여 인증 성공/실패 메시지를 생성하여 사용자 단말기(300)에 전송한다. Authentication server 500 is generated server authentication message (BMAC ') and compares the client certificate message (BMAC) from the user terminal 300 and user terminal 300 generates an authentication success / failure message on the basis of the result and transferred to.

한편 키 생성 서버(600) 및 키 저장 서버(700)가 인증 서버(500)와 분리되어 있는 것으로 설명하였으나, 인증 서버(500)에 포함되어 구현될 수도 있다. On the other hand it has been described as key generating server 600 and the key storage server 700, which is separate from the authentication server 500 may be implemented is included in the authentication server (500).

그러면 본 발명의 실시예에 따른 보안 인증 시스템의 동작을 도 3 내지 도 5를 참고하여 좀 더 상세하게 설명한다. Then, with reference to Figures 3 to 5 the operation of the security authentication system according to an embodiment of the present invention will be described in more detail.

도 3은 본 발명의 실시예에 따른 보안 인증 시스템 중 사용자 단말기의 동작을 설명하기 위한 흐름도이고, 도 4 및 도 5는 본 발명의 실시예에 따른 보안 인증 시스템 중 서버 측 동작을 설명하기 위한 흐름도이다. Figure 3 is a flow chart showing the server-side operation of the security authentication system according to an embodiment of a flow chart showing the operation of the user terminal of the security authentication system according to an embodiment of the present invention, 4 and 5 the present invention to be.

도 3 및 도 4를 참고하면, 사용자가 인터넷 서비스 시스템을 이용하기 위하여 사용자 단말기(300)를 통하여 웹 서버(100)에 접속하면(S805), 웹 서버(100)는 로그인 페이지를 전송하고(S905), 사용자 단말기(300)는 이를 받아 화면에 로그인 페이지를 표시한다(S810). 3 and referring to Figure 4, when the user through the user terminal 300 to access the Internet service system connected to a Web server 100 (S805), the Web server 100 sends the login page (S905 ), the user terminal 300 receives this login page display on the screen (S810).

사용자 단말기(300)에 암호화 모듈(320)이 설치되어 있는지 검사하여(S815, S910) 암호화 모듈(320)이 사용자 단말기(300)에 설치되어 있지 않으면 웹 서버(100)는 암호화 모듈(320)을 사용자 단말기(300)로 전송하고(S915), 사용자 단말기(300)는 이를 다운로드받아 설치한다(S820). By checking whether the encryption module 320 to the user terminal (300) is installed (S815, S910) encryption module 320 if it is not installed on the user terminal 300, the web server 100, an encryption module 320 transmitted to the user terminal 300, and (S915), the user terminal 300 will download and install them (S820).

단계(S820)에서 암호화 모듈(320)을 설치한 후 또는 암호화 모듈(320)이 사용자 단말기(300)에 이미 설치되어 있으면 웹 서버(100)는 키 생성 서버(600)에 서버 키(SR)를 요청하고, 키 생성 서버(600)로부터 서버 키(SR)를 받아 이를 사용자 단말기(300)로 전송하며(S920), 사용자 단말기(300)는 서버 키(SR)를 수신한다(S825). If the step (S820) or the encryption module 320, and then install the encryption module 320 in is already installed on the user terminal 300, the Web server 100 is the server key (SR) to the key generation server 600 request and receive the key server (SR) from the key generating server 600 and transmits it to the user terminal 300 (S920), the user terminal 300 receives a key server (SR) (S825).

사용자가 사용자 인증을 위하여 사용자 단말기(300)에 사용자 식별 부호(ID) 및 패스워드(PW)를 입력하면(S830), 암호화 모듈(320)은 클라이언트 키(CR)를 생성하고, 이와 함께 사용자 식별 부호(ID), 패스워드(PW) 및 서버 키(SR)를 이용하여 클라이언트 인증 메시지(BMAC)를 생성한(S835) 후, 사용자 인증 정보를 인증 서버(500)로 전송한다. When a user enters a user identification code (ID) and password (PW) to the user terminal 300 for user authentication (S830), the encryption module 320 is the user identification code with it create a client key (CR), and (ID), and it transmits the password (PW) and a key server (SR) client authentication message (BMAC) a (S835) then, the user authentication information to the authentication server 500 generates the using.

인증 서버(500)는 사용자 인증 정보를 수신하면(S925) 수신한 사용자 식별 부호(ID)에 대하여 일정한 시간 동안 사용자 인증에 연속하여 실패한 횟수가 소정 횟수(N) 이상인지 판단한다(S930). Authentication server 500 determines whether upon receiving the user authentication information is the user authentication failed, the number of times in succession for a period of time with respect to (S925) the received user identification code (ID) over a predetermined number of times (N) (S930). 판단 결과 연속 실패 횟수가 소정 횟수(N) 이상이면 정상 사용자가 아니라고 판단하여 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 그렇지 않으면 클라이언트 키(CR)를 키 저장 서버(700)에 전송하여 클라이언트 키(CR)의 재사용 여부를 문의한다(S935). The transmission and (S960), otherwise store the client key (CR) key server 700, the determination result consecutive failures has a predetermined number of times (N) or more if the authentication failure is judged not a normal user message to the user terminal 300 transmitted by contact and reuse of whether the client key (CR) (S935). 인증 실패 메시지를 전송하는 경우 필요에 따라 더 이상 사용자 인증을 허용하지 않는다는 인증 불허 메시지를 함께 전송할 수도 있다. If you are sending an authentication failure message may send an authentication message does not allow longer allows user authentication if necessary together.

그러고 단계(S935)에서 문의 결과 인증 서버(500)는 키 저장 서버(700)로부터 클라이언트 키(CR)가 사용된 것이라고 응답을 받으면 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 그렇지 않으면 키 생성 서버(600)로부터 유효 서버 키(SRj)를 요청하여 수신하고, 사용자 정보 데이터베이스(400)로부터 비밀키(KEY)를 읽어들인다. Then in step (S935) inquiry results the authentication server (500) key to save transmission and (S960) an authentication failure message receives a response that the client keys (CR) used by the server 700 to the user terminal (300), otherwise If the received request to the server is valid key (SRj) from the key generation server 600, and reads the secret key (kEY) from the user information database 400.

그런 후 인증 서버(500)는 사용자 식별 부호(ID), 클라이언트 키(CR), 유효 서버 키(SRj) 및 비밀키(KEY)를 이용하여 서버 인증 메시지(BMAC')를 생성한 다(S945). Then the authentication server 500 is the user identification code (ID), the client key (CR), effective server key (SRj) and is generated by the server authentication message (BMAC ') using the secret key (KEY) (S945) . 생성된 서버 인증 메시지(BMAC')와 사용자 단말기(300)로부터의 클라이언트 인증 메시지(BMAC)를 비교하여 두 메시지(BMAC, BMAC')의 동일 여부를 판단한다(S950). It is determined whether or not the same (both BMAC message, BMAC) compares the client authentication message (BMAC) from the user terminal 300, the generated server authentication message (BMAC) (S950). 두 메시지(BMAC, BMAC')가 동일하지 않으면 다른 유효 서버 키(SRj)에 대하여 다시 서버 인증 메시지(BMAC')를 계산하고(S945) 두 메시지(BMAC, BMAC')를 비교하여 동일 여부를 판단한다(S950). Determined by the same whether or not to compare the two messages (BMAC, BMAC ") calculating a (back server certificate message BMAC) with respect to the effective server key (SRj) other are not the same, and (S945) the two messages (BMAC, BMAC") and (S950). 이러한 과정은 두 메시지(BMAC, BMAC')가 동일하다고 판단되거나 모든 유효 서버 키(SR)에 대한 판단이 완료될 때까지 반복된다(S940). This process is both messages (BMAC, BMAC ') is determined to be the same, or are repeated until a determination is valid for all key server (SR) is completed (S940). 그 결과 인증 서버(500)는 두 메시지(BMAC, BMAC')가 동일하다고 판단하면 인증 성공 메시지를 사용자 단말기(300) 및 인터넷 서비스 시스템에 전송하고(S955), 모든 유효 서버 키(SR)에 대하여 두 메시지(BMAC, BMAC')가 동일하지 않다고 판단하면 인증 실패 메시지를 사용자 단말기(300)에 전송한다(S960). As a result, the authentication server (500) the two messages (BMAC, BMAC ') that it is determined to be the same, and transmits an authentication success message to the user terminal 300 and the Internet service system (S955), for all valid server key (SR) If determined that they have the same two messages (BMAC, BMAC ') transmits an authentication fail message to the user terminal (300) (S960).

따라서 이러한 방식에 의하면 인증 서버(500)는 한 번의 사용자 인증 요청에 대하여 여러 번 서버 인증 메시지(BMAC')를 계산할 수도 있으며, 최대한으로 유효 서버 키(SRj)의 수효만큼 계산할 수 있다. Thus, according to this way, the authentication server 500 may calculate the number of times the server certificate message (BMAC ') with respect to a single user authentication requests can be calculated as the maximum number of the active server key (SRj).

이와 달리, 도 5를 참고하면, 사용자 단말기(300)가 인증 서버(500)로 서버 키(SR)를 전송하는 경우에는 인증 서버(500)가 서버 인증 메시지(BMAC')를 한번 계산함으로써 사용자 인증을 완료할 수 있다. Alternatively, Referring to FIG 5, the user terminal 300 is authenticated by sending a server 500 in the server key (SR), the user authentication by computing an authentication server 500, the server authentication message (BMAC ') once the can be completed. 즉, 인증 서버(500)는 사용자 단말기(300)로부터의 서버 키(SR)가 키 생성 서버(600)가 기억하고 있는 유효 서버 키(SRj)에 속하는지 판단하여(S965) 속하지 않으면 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 속하면 이 서버 키(SR)에 대하여 서버 인증 메시지(BMAC')를 생성한다(S970). That is, the authentication server 500 to determine if it is in the server key (SR) The key generating server 600 is stored and valid server key (SRj) that from the user terminal (300) (S965), the authentication failure message if not part the server generates an authentication message (BMAC ') with respect to the key server (SR), and if transmission in (S960), the user terminal (300) (S970). 그러고 두 메시지(BMAC, BMAC')가 동일한지를 판단 하여(S975) 동일하면 인증 성공 메시지를 사용자 단말기(300)에 전송하고, 동일하지 않으면 인증 실패 메시지를 전송한다. Then, if the two messages (BMAC, BMAC ') is to determine whether the same (S975) if they are identical, and transmits an authentication success message to the user terminal 300, not the same, transmits an authentication failure message. 따라서 이러한 경우에는 인증 서버(500)의 계산량을 1회로 줄일 수 있다. Therefore, such a case can reduce the amount of computation of the authentication server 500 once. 이러한 내용을 제외한 도 5의 사용자 인증 방식은 도 4에 도시한 것과 동일하므로 도 4와 동일한 도면 부호를 붙이고 이에 대한 설명은 생략한다. The user authentication method of FIG. 5, except for such additional information, designated by the same reference numerals as Figure is the same as shown in Figure 44 and the description thereof will be omitted.

그러면 본 발명의 실시예에 따른 보안 인증 시스템의 안전성에 대하여 상세하게 설명한다. This will be described in detail with respect to the safety of the security authentication system according to an embodiment of the present invention.

사용자 단말기(300)에 해킹 툴이 설치되어 있어서 사용자 단말기(300)가 인증 서버(500)로 사용자 인증 정보를 전송할 때 그리고 인증 서버(500)가 인증 성공/실패 메시지를 사용자 단말기(300)로 전송할 때 해킹 툴이 이들을 가로챌 수 있는 것으로 가정한다. In hacking tools on the user terminal 300 is installed, the user terminal 300 is a and the authentication server (500) when transmitting user authentication information to the authentication server (500) to transfer the authentication success / failure message to the user terminal (300) when it is assumed that the tool hack to intercept them.

먼저, 가장 단순하게 공격자가 해킹 툴을 이용하여 사용자 인증 정보 중 사용자 식별 부호(ID)만을 알아내었다고 하자. First, let's eotdago my best attacker simply using hacking tools out only user identification (ID) of the credential. 이러한 공격자는 사용자 식별 부호(ID)에 대한 사용자 패스워드(PW)를 알아내기 위하여 사서에 있는 단어를 닥치는 대로 입력하는 사서 공격(dictionary attack)을 할 수 있다. The attacker can attack the librarian to enter random words in the Librarian (dictionary attack) to find out a user's password (PW) for user identification (ID). 그런데 이 경우 사용자 단말기(300)에서 입력된 단어에 기초하여 사용자 인증 정보를 생성하고 인증 서버(500)로 전송해보아야 인증 결과를 알 수 있다. However, in this case on the basis of the input word from the user terminal 300 generates a credential and should by sending to the authentication server 500 can know the authentication result. 임의로 입력된 단어에 의하면 사용자 인증에 실패할 수밖에 없고, 사용자 인증에 연속하여 실패한 횟수가 소정 횟수(N) 이상이 되면 인증 서버(500)는 사용자 인증을 허용하지 않는다. According to an optionally input word no choice but to the user authentication fails, if the number of times continuously on the user authentication has failed is the predetermined number of times (N) or more the authentication server 500 it does not allow the user authentication. 따라서 사용자 식별 부호(ID)를 알아내었다고 하더라도 사용자 패스워드(PW)를 알아낼 수 는 없다. Therefore, even if eotdago find out the user identification code (ID) I can not find out the user password (PW).

다음으로, 공격자가 암호화 모듈(320)과 인증 서버(500) 사이의 인터페이스를 알아내어 사용자 식별 부호(ID), 클라이언트 키(CR), 서버 키(SR) 및 클라이언트 인증 메시지(BMAC)와 이들에 대하여 사용자 인증에 성공했음을 알아내었다고 가정하자. Next, these and attacker encryption module 320 and authentication server 500 for taking out the interface, the user identification code (ID) between a client key (CR), the server key (SR) and client authentication message (BMAC) Suppose eotdago find out that for successful user authentication. 그러면 공격자는 성공한 사용자 인증 정보를 인증 서버(500)로 전송하여 사용자 인증을 시도하는 스니핑 공격(sniffing attack)을 할 수 있다. Then the attacker can sniff the attacks (sniffing attack), which attempts to authenticate the user by sending a successful user authentication information to the authentication server (500). 그러나 해당 클라이언트 키(CR)가 키 저장 서버(700)에 기억되어 있는 동안에 재사용되면 사용자 인증에 성공할 수 없고, 그 후에는 해당 클라이언트 키(CR)의 재사용 여부를 판단할 수 없지만 해당 서버 키(SR)가 유효하지 않게 되어 성공한 클라이언트 인증 메시지(BMAC)와 서버 인증 메시지(BMAC')가 서로 달라지게 되므로 사용자 인증에 성공할 수 없다. But when that client key (CR) is reused while stored in the key storage server 700 can not be successful in the user authentication, then, but to determine the re-check whether your client key (CR) that the server key (SR ) client authentication messages (BMAC) and server authentication, message (BMAC ') is not successful, valid varies with each other, so can not be successful in the user authentication. 따라서 공격자는 인증에 성공한 사용자 인증 정보를 알아내더라도 이 정보를 이용하여 사용자 패스워드(PW)를 알아낼 수 없을 뿐만 아니라 다시 사용자 인증을 받을 수도 없다. Therefore, the attacker uses this information naedeorado out the credentials successfully authenticate as a user can not figure out the password (PW), but may not be re-authenticate the user.

마지막으로, 공격자가 리버스 엔지니어링(reverse engineering)을 통해 암호화 모듈(320)의 클라이언트 인증 메시지(BMAC) 계산 방법을 알아내었고, 인증에 성공한 사용자 인증 정보를 알아내었다고 하자. Let Finally, eotdago my attacker was to find out the Client Authentication Message (BMAC) the calculation method of encryption module 320 through reverse engineering (reverse engineering), find out the credentials successfully authenticate. 그러나 리버스 엔지니어링을 통해도 해시 함수의 특성상 비밀키(KEY) 및 사용자 패스워드(PW)를 알아낼 수는 없다. However, it is not even able to figure out the nature of the secret key (KEY) and user password (PW) of the hash function through reverse engineering. 이러한 공격자는 인증 서버(500)에 사용자 인증 정보를 전송하여 인증 성공 여부를 물어볼 필요가 없으며, 개인용 컴퓨터 내에서 별도의 프로그램을 사용하여 사용자 패스워드(PW)를 찾을 때까지 모든 가능한 문자의 조합에 대하여 반복하여 입력해보 는 전수 공격(brute-force attack)을 할 수 있다. The attacker does not need to ask whether the authentication is successful and sends the user authentication information to the authentication server (500) in the personal computer for the combination of all the available characters using a separate program until it finds a user password (PW) repeated attacks can do is exhaustive (brute-force attack) try typing. 즉, 공격자는 전수 공격을 통하여 성공한 클라이언트 인증 메시지(BMAC)와 동일한 값을 산출해내는 문자 조합을 발견함으로써 사용자 패스워드(PW)를 추출할 수 있다. In other words, the attacker can extract the user's password (PW) by finding that the combination of characters to produce the same value as the client authentication message (BMAC) is successful through the transmission attacks.

이러한 공격에 대한 안전성은 사용자 패스워드(PW)의 길이에 달려있다. Safety for these attacks depends on the length of your password (PW). 예를 들어, 사용자 패스워드(PW)의 문자열 길이를 13자로 하고 키보드에서 입력 가능한 문자 94자를 사용자 패스워드(PW)용 문자로 허용하면 가능한 문자 조합은 94 13 개이고, 이 수를 달리 표현하면 4.47×10 25 이다. For example, the string length of the user password (PW) 13 characters and by allowing those possible text 94 input from the keyboard as a user password characters for (PW) possible combination of characters is 94 13 pieces, other words, the number of 4.47 × 10 25. 개인용 컴퓨터 펜티엄4 3.2GHz에서 하나의 클라이언트 인증 메시지(BMAC)를 계산하는 데 1.9×10 -5 초가 소요되므로 이보다 1000배 빠른 컴퓨터 1000대가 동원된다면 모든 가능한 문자 조합에 대하여 클라이언트 인증 메시지(BMAC)를 계산하는 데 8.5×10 14 초가 소요된다. Calculate the Client Authentication Message (BMAC) for all possible character combinations, so if one client authentication messages (BMAC) to 1.9 × 10 -5 seconds it takes to calculate the mobilization than 1000 times faster computer 1000 in exchange for personal computers Pentium 4 3.2GHz It takes 8.5 × 10 14 seconds to. 이는 대략 2700만년이 되므로 이러한 방법에 의하더라도 사용자 패스워드(PW)를 추출하는 것은 확률적으로 불가능하다. This is for extracting a user password (PW), even in this method, so the approximately 27 million years it is not probabilistically. 따라서 사용자 패스워드(PW)의 길이를 충분히 길게 하면 이러한 공격에 의하여 사용자 패스워드(PW)가 노출될 수 없다. Therefore, if long enough length of the user password (PW) can not be the user password (PW) are exposed by these attacks.

이와 같이 본 발명의 보안 인증 시스템에 의하면 해킹 툴에 의하여 사용자 인증 정보가 가로채이더라도 사용자 패스워드(PW)를 추출할 수 없다. As described above, according to the security authentication system of the present invention even if the credentials are intercepted by hacking tools can not extract the user password (PW).

본 실시예에 따른 보안 인증 시스템은 로그인 페이지에 보안 접속 버튼을 배치하여 사용자가 선택할 수 있도록 함으로써 본 실시예에 따른 보안 인증을 선택적으로 수행할 수 있다. Security authentication system according to the present embodiment may selectively perform secure authentication according to the present embodiment, by allowing a user to select to place a secure connection button on the login page.

한편 키보드에 입력된 사용자 식별 부호(ID) 및 패스워드(PW)가 암호화 모듈(320)에 안전하게 전달될 수 있도록 사용자 단말기(300)는 별도의 키보드 보안 프로그램을 구비할 수 있다. On the other hand so that the user entered on the keyboard the identification code (ID) and password (PW) can be safely delivered to the encryption module 320, the user terminal 300 may be provided with a separate keyboard security program.

본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. Embodiment of the invention includes a computer readable medium including program instructions to implement various operations embodied by a computer. 이 매체는 지금까지 설명한 보안 인증 방법을 실행시키기 위한 프로그램을 기록한다. This media is write a program for implementing a secure authentication methods described so far. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, CD 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 자기-광 매체, 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치 등이 있다. Examples of such media include hard disks, floppy disks, and magnetic magnetic media such as tape, CD, and optical media such as DVD, flop tikeol disk (floptical disk), and a self-program, such as an optical medium, ROM, RAM, flash memory command there is a hardware device or the like configured to store and execute. 또는 이러한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수 있다. Or such medium may be a transmission medium such as optical or metallic lines, wave guides, etc. including a carrier wave transmitting signals specifying the program instructions, data structures, 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. Examples of program instructions include both machine code, such as produced by a compiler, using an interpreter for a high-level language code that can be executed by a computer.

본 발명의 실시예에 따른 보안 인증 시스템 및 방법은 전자 상거래, 인터넷 뱅킹, 인터넷 포탈, 인터넷 게임 등과 같은 인터넷 서비스에 적용될 수 있다. Security authentication system and a method according to an embodiment of the present invention can be applied to the Internet services such as e-commerce, online banking, Internet portals, and internet games.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다. A preferred embodiment but will be described in detail for example the scope of the present invention of the present invention in the above is not rather various changes and modifications in the form of one of ordinary skill in the art using the basic concept of the invention as defined in the following claims is not limited thereto Furthermore, the present invention It belongs to the scope.

이와 같이, 본 발명에 의하면, 사용자 단말기에서 사용자 식별 부호, 사용자 패스워드, 클라이언트 키 및 서버 키를 이용하여 클라이언트 인증 메시지를 생성하고 인증 서버에서 이와 유사한 방법으로 서버 인증 메시지를 생성한 후 클라이언트 인증 메시지와 서버 인증 메시지를 비교하여 사용자 인증을 수행함으로써 해킹 툴이 사용자 단말기에 설치되어 있더라도 사용자 패스워드를 가로챌 수 없으며, 사용자 인증 정보를 가로채더라도 사용자 패스워드를 추출할 수 없다. As described above, according to the present invention, after the user terminal using the user identification code, user password, client key, and the server key to create a client certificate message, it generates a server certificate message in a manner similar to this in the authentication server, the client authentication message and by comparing the message authentication server to perform user authentication even if the hacking tool is installed in the user terminal it can not intercept the user password, even if the intercepted user authentication information can not extract the user's password.

Claims (25)

  1. 서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고 Key to generate the server key and transmits it to the user terminal generating server, and
    상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하고 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 인증 서버 The user terminal, the user identification code from a client key and client authentication message to receive the user identification code on the basis of the secret key, the client key and said server key for the user identification code generating the server authentication message and the server authentication message and the authentication server for sending an authentication success message or authentication failure message according to the comparison result by the comparison of client authentication message to the user terminal
    를 포함하며, It includes,
    상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성되는 The client authentication message is generated based on the user identification code, user password, the client key and said server key
    보안 인증 시스템. Security certification system.
  2. 제1항에서, In claim 1,
    상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가지는 보안 인증 시스템. The client key of the secure authentication systems having a value different from the value previously generated is generated on the user terminal each time the client authentication message generated.
  3. 제2항에서, In claim 2,
    상기 사용자 단말기로부터 상기 클라이언트 키를 받아 기억하는 키 저장 서버를 더 포함하는 보안 인증 시스템. Security authentication system further comprising a key storage for storing the server receiving the client's key from the user terminal.
  4. 제3항에서, In claim 3,
    상기 인증 서버는 상기 사용자 단말기로부터 전송된 상기 클라이언트 키가 상기 키 저장 서버에 기억되어 있는 클라이언트 저장 키 중 어느 하나와 동일한 값을 가지면 상기 인증 실패 메시지를 상기 사용자 단말기에 전송하는 보안 인증 시스템. The authentication server of the secure authentication system which has the same value with any one of the said client key transmitted from the client terminal user storage key stored in the key storage server transmits the authentication failure message to the user terminal.
  5. 제1항 내지 제3항 중 어느 한 항에서, In any one of the preceding claims,
    상기 인증 서버는 상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 보안 인증 시스템. The authentication server secure authentication system for transmitting the authentication failure message to the user terminal determines that the client key reused.
  6. 제1항 내지 제4항 중 어느 한 항에서, In any one of the preceding claims,
    상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가지는 적어도 하나의 유효 서버 키를 포함하는 보안 인증 시스템. The server key is generated every predetermined time security authentication system including at least one valid key server having a value different from the value previously generated it is valid and for a period of time.
  7. 제6항에서, In claim 6,
    상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하는 보안 인증 시스템. After the authentication server on the basis of the available server key repeatedly until the server authentication messages to be of the same value as the client authentication message or the user authentication is completed for the effective server key calculating the server certificate message, the server authentication secure authentication system for comparing the messages with the message client authentication.
  8. 제7항에서, In claim 7,
    상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기에 전송하고, 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송하는 보안 인증 시스템. The authentication server is the server authentication message is the client certificate message has the same value that the server authentication message, the client until the user authentication is completed for the authentication success message to the valid server key transfer, and in the user terminal, do not have the same value as the message authentication security authentication system for transmitting the authentication failure message.
  9. 제6항에서, In claim 6,
    상기 인증 서버는 상기 사용자 단말기로부터 상기 서버 키를 수신하며, 상기 수신된 서버 키가 유효하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송하는 보안 인증 시스템. The authentication server of the secure authentication systems, if the server receives the key from the user terminal, the received server key is not valid send the authentication failure message to the user terminal.
  10. 제1항 내지 제4항 중 어느 한 항에서, In any one of the preceding claims,
    상기 서버 키는 유효 기간을 가지며, 상기 인증 서버는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 보안 인증 시스템. The key server has a valid period, the authentication server of the secure authentication system for transmitting the authentication failure message to the user terminal determines that the last is the valid period for said server key.
  11. 제1항 내지 제4항 중 어느 한 항에서, In any one of the preceding claims,
    상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성된 상기 비밀키를 기억하는 사용자 정보 데이터베이스를 더 포함하는 보안 인증 시스템. Security authentication system further includes a user information database for storing the generated secret key by applying a predetermined hash function to the user password.
  12. 제1항 내지 제4항 중 어느 한 항에서, In any one of the preceding claims,
    상기 인증 서버는 상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않는 보안 인증 시스템. If the authentication server is recorded with a continuously more than a predetermined number of failed user authentication it does not allow users to authenticate to the secure user identification authentication system to authenticate the user history for the user identification.
  13. 제1항 내지 제4항 중 어느 한 항에서, In any one of the preceding claims,
    상기 사용자 단말기는 상기 사용자 패스워드에 제1 해시 함수를 적용하여 상기 비밀키를 생성하고, 상기 사용자 식별 부호에 제2 해시 함수를 적용하여 제1 해시 값을 생성하며, 상기 비밀키, 상기 제1 해시 값 및 상기 서버 키에 기초한 제1 변수에 제3 해시 함수를 적용하여 제2 해시 값을 생성하고, 상기 비밀키, 상기 클라이언트 키 및 상기 제2 해시 값에 기초한 제2 변수에 제4 해시 함수를 적용하여 상기 클라이언트 인증 메시지를 생성하는 보안 인증 시스템. The user terminal is first applying a hash function to generate the secret key, generating a first hash value by applying a second hash function on the user identification code, the secret key, the first hash to the user password value and a fourth hash function to a second variable based on a third applying a hash function to generate a second hash value, the secret key, and the client key and the second hash value to the first variable based on said server key apply security authentication system that generates the client certificate message.
  14. 서버 키를 사용자 단말기로 전송하는 단계, Sending a key server to the user terminal,
    상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 수신하는 단계, Receiving a user identification, client key, and client authentication message from the user terminal,
    상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀 키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하는 단계, Generating a server certificate message based on the user identification code, the secret key, the client key and the key server for the user identification code,
    상기 클라이언트 인증 메시지와 상기 서버 인증 메시지를 비교하는 단계, 그리고 Step of the client authentication message and compares the server authentication message, and
    상기 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계 Transmitting an authentication success message or authentication failure message to the user terminal according to the comparison result
    를 포함하며, It includes,
    상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성되는 The client authentication message is generated based on the user identification code, user password, the client key and said server key
    보안 인증 방법. Security authentication method.
  15. 제14항에서, In claim 14,
    상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가지는 보안 인증 방법. The client key of the secure authentication method having a value and the other values ​​previously generated is generated on the user terminal each time the client authentication message generated.
  16. 제15항에서, In claim 15,
    상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 단계를 더 포함하는 보안 인증 방법. If it is determined that the client is the key re-authentication security method further comprising the step of transmitting the authentication failure message to the user terminal.
  17. 제14항 내지 제16항 중 어느 한 항에서, In any one of claims 14 to 16,
    상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가지는 적어도 하나의 유효 서버 키를 포함하는 보안 인증 방법. The server key is generated every predetermined time security authentication method, comprising at least one valid key server having a value different from the value previously generated is valid and for a period of time.
  18. 제17항에서, In claim 17,
    상기 비교 단계는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하는 단계인 보안 인증 방법. The comparing step after calculating the server authentication message based on the valid server key repeatedly until the server authentication messages of the same value as the client authentication message or when user authentication is completed for the effective server key the server authentication security authentication method comprises comparing the messages with the message client authentication.
  19. 제18항에서, In claim 18,
    상기 인증 성공 메시지 또는 인증 실패 메시지 전송 단계는, The authentication success message or authentication failure message transmission step,
    상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기로 전송하는 단계, 그리고 Step in which the server certificate message has the same value as the client authentication message transmitted to the authentication success message to the user terminal, and
    상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송하는 단계 If until the user authentication is completed for the effective key server is the server certificate message has the same value as the client authentication message, and transmitting the authentication failure message
    를 포함하는 보안 인증 방법. Secure authentication methods, including the.
  20. 제17항에서, In claim 17,
    상기 사용자 단말기로부터 상기 서버 키를 수신하는 단계, 그리고 Receiving the key from the server, a user terminal, and
    상기 수신된 서버 키가 유효하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계 If the server receives the key is invalid and transmitting the authentication failure message to the user terminal
    를 더 포함하는 보안 인증 방법. The security authentication method further comprises.
  21. 제14항 내지 제16항 중 어느 한 항에서, In any one of claims 14 to 16,
    유효 기간을 가지는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 단계를 더 포함하는 보안 인증 방법. If it is determined that the said effective period of time with respect to the key server has a valid authentication security method further comprising the step of transmitting the authentication failure message to the user terminal.
  22. 제14항 내지 제16항 중 어느 한 항에서, In any one of claims 14 to 16,
    상기 비밀키는 상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성되는 보안 인증 방법. The private key of the secure authentication methods that are generated by applying a predetermined hash function to the user password.
  23. 제14항 내지 제16항 중 어느 한 항에서, In any one of claims 14 to 16,
    상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않는 단계를 더 포함하는 보안 인증 방법. If the record of the user authentication histories for the user identification code with the user authentication has failed successively over a predetermined number of security authentication method further comprises a step that does not allow the user authentication with the user identification code.
  24. 제14항 내지 제16항 중 어느 한 항에서, In any one of claims 14 to 16,
    상기 비밀키는 상기 사용자 패스워드에 제1 해시 함수를 적용하여 생성되고, 제1 해시 값은 상기 사용자 식별 부호에 제2 해시 함수를 적용하여 생성되며, 제2 해시 값은 상기 비밀키, 상기 제1 해시 값 및 상기 서버 키에 기초한 제1 변수에 제3 해시 함수를 적용하여 생성되고, 상기 클라이언트 인증 메시지는 상기 비밀키, 상기 클라이언트 키 및 상기 제2 해시 값에 기초한 제2 변수에 제4 해시 함수를 적용하여 생성되는 보안 인증 방법. The secret key is generated by applying a first hash function to the user password, the first hash value is generated by applying a second hash function on the user identification code, the second hash value of the secret key, the first hash value, and is generated by applying a third hash function to a first variable that is based on the server's key, the client certificate message, a fourth hash function to a second variable that is based on the private key, the client key and the second hash value, security authentication method that is generated by applying.
  25. 컴퓨터에 제14항 내지 제16항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체. Of claim 14 to 16 The computer readable medium storing a program for executing the method of any one of wherein the computer.
KR1020060098783A 2006-10-11 2006-10-11 Security authentication system and method KR100827187B1 (en)

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 KR100827187B1 (en) 2006-10-11 2006-10-11 Security authentication system and method

Country Status (1)

Country Link
KR (1) KR100827187B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016039568A1 (en) * 2014-09-11 2016-03-17 임용훈 Device and method for user authentication

Citations (4)

* Cited by examiner, † Cited by third party
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 Acs: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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 Acs: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

Also Published As

Publication number Publication date
KR20080032810A (en) 2008-04-16

Similar Documents

Publication Publication Date Title
US6987853B2 (en) Method and apparatus for generating a group of character sets that are both never repeating within certain period of time and difficult to guess
CN101803272B (en) Authentication system and method
Claessens et al. On the security of today’s online electronic banking systems
US10104064B2 (en) Secure authentication systems and methods
Huang et al. A generic framework for three-factor authentication: Preserving security and privacy in distributed systems
US6061790A (en) Network computer system with remote user data encipher methodology
US6996715B2 (en) Method for identification of a user&#39;s unique identifier without storing the identifier at the identification site
US7577987B2 (en) Operation modes for user authentication system based on random partial pattern recognition
US7644433B2 (en) Authentication system and method based upon random partial pattern recognition
CN100545852C (en) Authentication system and an authentication method
JP4790731B2 (en) Derived seed
US7957532B2 (en) Data protection for a mobile device
EP1043862B1 (en) Generation of repeatable cryptographic key based on varying parameters
US7073067B2 (en) Authentication system and method based upon random partial digitized path recognition
US20080077979A1 (en) Efficient method for providing secure remote access
Sun et al. oPass: A user authentication protocol resistant to password stealing and password reuse attacks
US5418854A (en) Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system
US20090265559A1 (en) User authentication by linking randomly-generated authentication secret with personalized secret
US7895436B2 (en) Authentication system and remotely-distributed storage system
US6301661B1 (en) Enhanced security for applications employing downloadable executable content
JP3605501B2 (en) Communication system, a message processing method and a computer system
JP5451785B2 (en) System and method for providing contactless authentication
ES2373489T3 (en) Procedure and system to authenticate a user through a mobile device.
Cao et al. Security analysis of the SASI protocol
US5751812A (en) Re-initialization of an iterated hash function secure password system over an insecure network connection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110411

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 12