[go: up one dir, main page]

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
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
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
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key 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

보안 인증 시스템 및 방법 {SECURITY AUTHENTICATION SYSTEM AND METHOD}SECURITY AUTHENTICATION SYSTEM AND METHOD}

도 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 web server 100, an authentication server 500, a user information database 400, a key generation server 600, a key storage server 700, And a plurality of user terminals 300 connected to the web server 100 and the authentication server 500 through the communication network 200.

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

한편 인터넷 서비스를 제공받고자 하는 사용자는 자신의 이름, 주민등록번호, 사용자 식별 부호(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 user terminal 300 and submits it to the Internet service provider. If you become a member, you can use the Internet service.

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

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

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

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

암호화 모듈(320)은 응용 프로그램(310)과 유기적으로 사용될 수 있도록 액티브엑스(activeX)로 구현될 수 있으며, 또한 응용 프로그램(310)에 포함되도록 구현될 수 있다.The encryption module 320 may be implemented in ActiveX to be used organically with the application 310, and may be implemented to be included in the application 310.

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

그러면 한 예로서, 암호화 모듈(320)이 클라이언트 인증 메시지(BMAC)를 생성하는 것에 대하여 자세하게 설명한다.As an example, the encryption module 320 generates the client authentication message BMAC in detail.

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

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

여기서, 함수 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 encryption module 320 applies the hash function H1 to the user identification code ID to calculate the 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, 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 encryption module 320 generates a client key CR having a different value from the previously generated value. In addition, the encryption module 320 of each user terminal 300 generates a client key CR having a different value for each user terminal 300. That is, the client key CR has a unique value each time it is generated. As an example, the encryption module 320 may use a universal unique identifier (UUID) composed of a combination of space and time as the client key (CR). In addition, the encryption module 320 may generate a client key (CR) by using the random () function. In this case, a seed, which is a variable of the random () function, is converted into a value using a user identification code (ID) and time in microseconds. By applying to the random () function, you can generate a unique client key (CR).

암호화 모듈(320)은 [수학식 1]에서 생성된 비밀키(KEY)와 [수학식 2]에서 생성된 해시 값(HV1)을 배타적 논리합(XOR) 연산을 하고 그 결과에 서버 키(SR)를 덧붙인 후 해시 함수 H2를 적용하여 해시 값(HV2)을 산출한다.The encryption module 320 performs an exclusive OR (XOR) operation on the secret key KEY generated in [Equation 1] and the hash value HV1 generated in [Equation 2], and the server key SR in the result. Then, the hash function H2 is applied to calculate the hash value HV2.

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

여기서, 해시 함수 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 encryption module 320 performs an exclusive OR operation on the secret key KEY and the client key CR generated in Equation 1, and adds the hash value HV2 of Equation 3 to the result. After that, the hash function H3 is applied to generate a client authentication message (BMAC).

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

여기서 해시 함수 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 encryption module 320 may generate the client authentication message BMAC in various ways in addition to the calculation method described above.

통신망(200)은 구내 정보 통신망(local area network, LAN), 도시권 통신망(metropolitan area network, MAN), 광역 통신망(wide area network, WAN), 인터넷 등을 가리지 않고, 통신 방식도 유선, 무선을 가리지 않으며 어떠한 통신 방식이라도 상관없다.The communication network 200 does not select a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), the Internet, and the like. It doesn't matter what type of communication you have.

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

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

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

키 생성 서버(600)는 이전에 생성된 값과 서로 다른 값을 가지는 서버 키(SR)를 소정 시간마다 생성한다. 즉, 서버 키(SR)는 생성될 때마다 유일한 값을 가진다. 예를 들면, 서버 키(SR)는 정수 i를 해시 함수 H4에 적용한 해시 값을 가질 수 있다.The key generation server 600 generates a server key SR having a value different from a previously generated value every predetermined time. That is, the server key SR has a unique value each time it is generated. For example, the server key SR may have a hash value obtained by applying the integer i to the hash function H4.

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

여기서 정수 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 key generation server 600 stores the valid server key SR. Referring to FIG. 2, the first server key SR1 generated at the first time point T1 is valid for the first period P1, and the second server key SR2 generated at the second time point T2 may be used. Valid for the second period P2, and thus the n th server key SRn generated at the n th time point Tn is valid for the n th period Pn. However, when the (n + 1) th server key SRn + 1 is generated at the (n + 1) th time point (Tn + 1), the first server key SR1 is no longer valid since the first period P1 passes. You will not. In this manner, the key generation server 600 continuously generates and stores the server key SR. Here, the length between each time point may be the same, and the length of each period may be the same. But they can be different. Hereinafter, the server key SR stored in the key generation server 600 for a predetermined time (Tn ≦ t <Tn + 1) is referred to as a valid server key SRj (j = 1, 2,. .., n).

예를 들어 소정 시간은 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 key generation server 600 is connected to the web server 100 and the authentication server 500, and transmits the most recently generated server key SR to the web server 100 according to the request of the web server 100. To be delivered to each user terminal 300. In addition, the key generation server 600 may transmit a valid server key SRj to the authentication server 500 at the request of the authentication server 500, or may indicate whether the server key SR belongs to the valid server key SRj. have.

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

즉, 키 저장 서버(700)는 전송된 클라이언트 키(CR)와 키 저장 서버(700)에 기억되어 있는 클라이언트 저장 키(CSR)를 비교하여 클라이언트 키(CR)가 클라이언트 저장 키(CSR) 중 어느 하나와 동일하면 클라이언트 키(CR)가 이미 사용된 것이라고 판단하고, 그렇지 않으면 사용되지 않은 것으로 판단한다. 클라이언트 키(CR)가 이미 사용된 것이라면 사용자 인증에 실패한다. 클라이언트 키(CR)가 사용되지 않은 것이라면 키 저장 서버(700)는 클라이언트 키(CR)를 클라이언트 저장 키(CSR)로서 기억하고, 적어도 이때의 유효 서버 키(SRj)가 모두 유효하지 않게 될 때까지 이를 유지한다.That is, the key storage server 700 compares the transmitted client key CR with the client storage key CSR stored in the key storage server 700 so that the client key CR is selected from among the client storage keys CSR. If it is equal to one, it is determined that the client key CR is already used, otherwise it is determined that it is not used. If the client key (CR) has already been used, user authentication fails. If the client key CR is not used, the key storage server 700 stores the client key CR as the client storage key CSR, and at least until all valid server keys SRj become invalid. Keep this up.

키 저장 서버(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 key storage server 700 includes a storage device (not shown) that stores a client storage key CSR. For example, set the time for which the Client Stored Key (CSR) will be maintained to 30 minutes and the maximum number of queries per second (QPS) for user authentication, i.e., transmitted for one second from the entire user terminal 300. Assuming the maximum number of client keys (CR) is 1,000, the total client storage keys (CSRs) to be stored and maintained for 30 minutes are 1,000 x 30 x 60 = 1,800,000. If the size of the client storage key (CSR) is 16 bytes and 4 bytes are allocated for the time at which the client storage key (CSR) is stored, 20 bytes are required for storing one client storage key (CSR). Thus, the storage device requires at least 36M bytes of storage space.

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

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

인증 서버(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 authentication server 500 generates the server authentication message BMAC 'in a manner similar to the encryption module 320 of the user terminal 300 generating the client authentication message BMAC. That is, the authentication server 500 calculates the hash value HV1 by applying the user identification code ID from the user terminal 300 to the hash function H1 of [Equation 2]. After reading the secret key KEY corresponding to the user identification code ID from the user information database 400 and receiving the valid server key SRj from the key generation server 600, the KEY, HV1, SRj are received. ) And a hash function HV2 using the hash function H2 of [Equation 3] (where the valid server key SRj is set as the server key SR). However, when the server key SR is received from the user terminal 300, the hash value HV2 is calculated using the server key SR instead of the valid server key SRj. Then, the server authentication message BMAC 'is generated using the secret key KEY, the client key CR, the hash value HV2, and the hash function H3 of Equation 4. The authentication server 500 compares the generated server authentication message BMAC 'with the client authentication message BMAC from the user terminal 300 and generates an authentication success / failure message based on the result of the user terminal 300. To transmit.

한편 키 생성 서버(600) 및 키 저장 서버(700)가 인증 서버(500)와 분리되어 있는 것으로 설명하였으나, 인증 서버(500)에 포함되어 구현될 수도 있다.Meanwhile, the key generation server 600 and the key storage server 700 are described as being separated from the authentication server 500, but may be included in the authentication server 500 and implemented.

그러면 본 발명의 실시예에 따른 보안 인증 시스템의 동작을 도 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 web server 100 through the user terminal 300 to use the Internet service system (S805), the web server 100 transmits a login page (S905). ), The user terminal 300 receives this and displays a login page on the screen (S810).

사용자 단말기(300)에 암호화 모듈(320)이 설치되어 있는지 검사하여(S815, S910) 암호화 모듈(320)이 사용자 단말기(300)에 설치되어 있지 않으면 웹 서버(100)는 암호화 모듈(320)을 사용자 단말기(300)로 전송하고(S915), 사용자 단말기(300)는 이를 다운로드받아 설치한다(S820).If the encryption module 320 is installed in the user terminal 300 (S815 and S910), if the encryption module 320 is not installed in the user terminal 300, the web server 100 may determine the encryption module 320. The user terminal 300 is transmitted (S915), and the user terminal 300 downloads and installs it (S820).

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

사용자가 사용자 인증을 위하여 사용자 단말기(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 user terminal 300 for user authentication (S830), the encryption module 320 generates a client key (CR), together with the user identification code After generating the client authentication message BMAC using the ID, the password PW, and the server key SR (S835), the user authentication information is transmitted to the authentication server 500.

인증 서버(500)는 사용자 인증 정보를 수신하면(S925) 수신한 사용자 식별 부호(ID)에 대하여 일정한 시간 동안 사용자 인증에 연속하여 실패한 횟수가 소정 횟수(N) 이상인지 판단한다(S930). 판단 결과 연속 실패 횟수가 소정 횟수(N) 이상이면 정상 사용자가 아니라고 판단하여 인증 실패 메시지를 사용자 단말기(300)에 전송하고(S960), 그렇지 않으면 클라이언트 키(CR)를 키 저장 서버(700)에 전송하여 클라이언트 키(CR)의 재사용 여부를 문의한다(S935). 인증 실패 메시지를 전송하는 경우 필요에 따라 더 이상 사용자 인증을 허용하지 않는다는 인증 불허 메시지를 함께 전송할 수도 있다.When receiving the user authentication information (S925), the authentication server 500 determines whether the number of times of successively failing user authentication for a predetermined time with respect to the received user identification code (ID) is a predetermined number (N) or more (S930). If it is determined that the number of consecutive failures is equal to or greater than a predetermined number N, it is determined that the user is not a normal user, and an authentication failure message is transmitted to the user terminal 300 (S960). Otherwise, the client key CR is transmitted to the key storage server 700. Inquiry whether to reuse the client key (CR) (S935). If the authentication failure message is sent, an authentication disallowed message indicating that the user authentication is no longer allowed may also be transmitted.

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

그런 후 인증 서버(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 authentication server 500 generates a server authentication message BMAC 'using the user identification code (ID), the client key (CR), the valid server key (SRj), and the secret key (KEY) (S945). . The generated server authentication message BMAC 'and the client authentication message BMAC from the user terminal 300 are compared to determine whether the two messages BMAC and BMAC' are the same (S950). If the two messages (BMAC, BMAC ') are not the same, the server authentication message (BMAC') is calculated again for another valid server key (SRj) (S945), and the two messages (BMAC, BMAC ') are compared to determine whether they are the same. (S950). This process is repeated until it is determined that the two messages (BMAC, BMAC ') are the same or the determination of all valid server keys (SR) is completed (S940). As a result, when the authentication server 500 determines that the two messages (BMAC, BMAC ') are the same, the authentication server 500 transmits an authentication success message to the user terminal 300 and the Internet service system (S955), and for all valid server keys SR. If it is determined that the two messages (BMAC, BMAC ') is not the same, the authentication failure message is transmitted to the user terminal 300 (S960).

따라서 이러한 방식에 의하면 인증 서버(500)는 한 번의 사용자 인증 요청에 대하여 여러 번 서버 인증 메시지(BMAC')를 계산할 수도 있으며, 최대한으로 유효 서버 키(SRj)의 수효만큼 계산할 수 있다.Therefore, according to this method, the authentication server 500 may calculate the server authentication message BMAC 'several times for one user authentication request, and can calculate the maximum number of valid server keys SRj.

이와 달리, 도 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 user terminal 300 transmits the server key SR to the authentication server 500, the authentication server 500 calculates the server authentication message BMAC 'once to authenticate the user. You can complete That is, the authentication server 500 determines whether the server key SR from the user terminal 300 belongs to the valid server key SRj stored in the key generation server 600 (S965). Is transmitted to the user terminal 300 (S960), and if it belongs, a server authentication message BMAC 'is generated for this server key SR (S970). Then, it is determined whether the two messages BMAC and BMAC 'are the same (S975). If the message is identical, the authentication success message is transmitted to the user terminal 300. If not, the authentication failure message is transmitted. Therefore, in this case, the calculation amount of the authentication server 500 can be reduced by one. Except for this content, the user authentication method of FIG. 5 is the same as that shown in FIG. 4, and thus the same reference numerals as in FIG.

그러면 본 발명의 실시예에 따른 보안 인증 시스템의 안전성에 대하여 상세하게 설명한다.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 user terminal 300 so that the user terminal 300 transmits user authentication information to the authentication server 500 and the authentication server 500 transmits an authentication success / failure message to the user terminal 300. It is assumed that hacking tools can intercept them.

먼저, 가장 단순하게 공격자가 해킹 툴을 이용하여 사용자 인증 정보 중 사용자 식별 부호(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 user terminal 300 and transmitting the user authentication information to the authentication server 500. According to the word input arbitrarily, the user authentication has no choice but to fail. If the number of consecutive failures of the user authentication exceeds the predetermined number N, the authentication server 500 does not allow user authentication. Therefore, even if the user identification code (ID) is found, the user password (PW) cannot be obtained.

다음으로, 공격자가 암호화 모듈(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 encryption module 320 and the authentication server 500 to identify the user identification code (ID), client key (CR), server key (SR), and client authentication message (BMAC). Suppose you find out that user authentication was successful. The attacker may then send a successful user authentication information to the authentication server 500 to perform a sniffing attack that attempts user authentication. However, if the client key (CR) is reused while it is stored in the key storage server 700, user authentication cannot succeed, and after that, it is not possible to determine whether to reuse the client key (CR), but the corresponding server key (SR). ) Is not valid and the successful client authentication message (BMAC) and server authentication message (BMAC ') are different from each other. Therefore, user authentication cannot be successful. Therefore, even if the attacker finds the user authentication information that has been successfully authenticated, the attacker cannot use this information to find out the user password (PW) and cannot receive user authentication again.

마지막으로, 공격자가 리버스 엔지니어링(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 encryption module 320 through reverse engineering, and found the user authentication information that succeeded in authentication. However, reverse engineering does not allow you to determine the secret key (KEY) and user password (PW) due to the nature of the hash function. Such an attacker does not need to send the user authentication information to the authentication server 500 to ask whether the authentication succeeds, and for every possible combination of characters until a user password (PW) is found using a separate program in the personal computer. You can do brute-force attacks by repeatedly typing them. That is, the attacker can extract the user password PW by finding a character combination that yields the same value as the successful client authentication message BMAC through the whole attack.

이러한 공격에 대한 안전성은 사용자 패스워드(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 user terminal 300 may be provided with a separate keyboard security program so that the user identification code (ID) and password (PW) input to the keyboard can be securely transmitted to the encryption module 320.

본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. 이 매체는 지금까지 설명한 보안 인증 방법을 실행시키기 위한 프로그램을 기록한다. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, 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)

서버 키를 생성하여 사용자 단말기로 전송하는 키 생성 서버, 그리고A key generation server for generating a server key and transmitting it to a user terminal; and 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 받아 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하고 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하여 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 인증 서버Receives a user identification code, a client key, and a client authentication message from the user terminal, generates a server authentication message based on the user identification code, a secret key for the user identification code, the client key, and the server key; An authentication server comparing the client authentication message with the client authentication message and transmitting an authentication success message or an authentication failure message to the user terminal according to a comparison result; 를 포함하며,Including; 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성되는The client authentication message is generated based on the user identification code, the user password, the client key and the server key. 보안 인증 시스템.Security authentication system. 제1항에서,In claim 1, 상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가지는 보안 인증 시스템.The client key is generated in the user terminal whenever the client authentication message is generated and has a value different from a previously generated value. 제2항에서,In claim 2, 상기 사용자 단말기로부터 상기 클라이언트 키를 받아 기억하는 키 저장 서버를 더 포함하는 보안 인증 시스템.And a key storage server that receives and stores the client key from the user terminal. 제3항에서,In claim 3, 상기 인증 서버는 상기 사용자 단말기로부터 전송된 상기 클라이언트 키가 상기 키 저장 서버에 기억되어 있는 클라이언트 저장 키 중 어느 하나와 동일한 값을 가지면 상기 인증 실패 메시지를 상기 사용자 단말기에 전송하는 보안 인증 시스템.And the authentication server transmits 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. 제1항 내지 제3항 중 어느 한 항에서,The method according to any one of claims 1 to 3, 상기 인증 서버는 상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 보안 인증 시스템.And the authentication server transmits the authentication failure message to the user terminal when determining that the client key is reused. 제1항 내지 제4항 중 어느 한 항에서,The method according to any one of claims 1 to 4, 상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가지는 적어도 하나의 유효 서버 키를 포함하는 보안 인증 시스템.And the server key includes at least one valid server key that is generated every predetermined time and is valid for a predetermined period of time and has a different value from a previously generated value. 제6항에서,In claim 6, 상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하는 보안 인증 시스템.The authentication server calculates the server authentication message based on the valid server key until the server authentication message has the same value as the client authentication message or until user authentication is completed for the valid server key. Secure authentication system for comparing a message with said client authentication message. 제7항에서,In claim 7, 상기 인증 서버는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기에 전송하고, 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송하는 보안 인증 시스템.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 security authentication system for transmitting the authentication failure message. 제6항에서,In claim 6, 상기 인증 서버는 상기 사용자 단말기로부터 상기 서버 키를 수신하며, 상기 수신된 서버 키가 유효하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송하는 보안 인증 시스템.And the authentication server receives the server key from the user terminal, and transmits the authentication failure message to the user terminal if the received server key is invalid. 제1항 내지 제4항 중 어느 한 항에서,The method according to any one of claims 1 to 4, 상기 서버 키는 유효 기간을 가지며, 상기 인증 서버는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 보안 인증 시스템.And the server key has a validity period, and the authentication server transmits the authentication failure message to the user terminal when it is determined that the validity period has passed with respect to the server key. 제1항 내지 제4항 중 어느 한 항에서,The method according to any one of claims 1 to 4, 상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성된 상기 비밀키를 기억하는 사용자 정보 데이터베이스를 더 포함하는 보안 인증 시스템.And a user information database for storing the secret key generated by applying a predetermined hash function to the user password. 제1항 내지 제4항 중 어느 한 항에서,The method according to any one of claims 1 to 4, 상기 인증 서버는 상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않는 보안 인증 시스템.And the authentication server records a user authentication history for the user identification code and does not allow user authentication for the user identification code if the user authentication fails for a predetermined number of consecutive times. 제1항 내지 제4항 중 어느 한 항에서,The method according to any one of claims 1 to 4, 상기 사용자 단말기는 상기 사용자 패스워드에 제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. A security authentication system that generates the client authentication message by applying. 서버 키를 사용자 단말기로 전송하는 단계,Transmitting the server key to the user terminal, 상기 사용자 단말기로부터 사용자 식별 부호, 클라이언트 키 및 클라이언트 인증 메시지를 수신하는 단계,Receiving a user identification code, a client key, and a client authentication message from the user terminal, 상기 사용자 식별 부호, 상기 사용자 식별 부호에 대한 비밀 키, 상기 클라이언트 키 및 상기 서버 키에 기초하여 서버 인증 메시지를 생성하는 단계,Generating a server authentication message based on the user identification code, the secret key for the user identification code, the client key and the server key; 상기 클라이언트 인증 메시지와 상기 서버 인증 메시지를 비교하는 단계, 그리고Comparing the client authentication message with the server authentication message, and 상기 비교 결과에 따라 인증 성공 메시지 또는 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계Transmitting an authentication success message or authentication failure message to the user terminal according to the comparison result; 를 포함하며,Including; 상기 클라이언트 인증 메시지는 상기 사용자 식별 부호, 사용자 패스워드, 상기 클라이언트 키 및 상기 서버 키에 기초하여 생성되는The client authentication message is generated based on the user identification code, the user password, the client key and the server key. 보안 인증 방법.Security authentication method. 제14항에서,The method of claim 14, 상기 클라이언트 키는 상기 클라이언트 인증 메시지가 생성될 때마다 상기 사용자 단말기에서 생성되며 이전에 생성된 값과 다른 값을 가지는 보안 인증 방법.The client key is generated in the user terminal whenever the client authentication message is generated and has a value different from a previously generated value. 제15항에서,The method of claim 15, 상기 클라이언트 키가 재사용된 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 단계를 더 포함하는 보안 인증 방법.And transmitting the authentication failure message to the user terminal if it is determined that the client key has been reused. 제14항 내지 제16항 중 어느 한 항에서,The method according to any one of claims 14 to 16, 상기 서버 키는 소정 시간마다 생성되어 소정 기간 동안 유효하며 이전에 생성된 값과 다른 값을 가지는 적어도 하나의 유효 서버 키를 포함하는 보안 인증 방법.And at least one valid server key generated every predetermined time and valid for a predetermined period of time and having a value different from a previously generated value. 제17항에서,The method of claim 17, 상기 비교 단계는 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지거나 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 유효 서버 키에 기초하여 상기 서버 인증 메시지를 산출한 후 상기 서버 인증 메시지와 상기 클라이언트 인증 메시지를 비교하는 단계인 보안 인증 방법.In the comparing step, the server authentication message is calculated based on the valid server key until the server authentication message has the same value as the client authentication message or until user authentication is completed for the valid server key. And comparing the client authentication message with a message. 제18항에서,The method of claim 18, 상기 인증 성공 메시지 또는 인증 실패 메시지 전송 단계는,The authentication success message or authentication failure message transmission step, 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지면 상기 인증 성공 메시지를 상기 사용자 단말기로 전송하는 단계, 그리고Transmitting the authentication success message to the user terminal if the server authentication message has the same value as the client authentication message, and 상기 유효 서버 키에 대하여 사용자 인증이 완료될 때까지 상기 서버 인증 메시지가 상기 클라이언트 인증 메시지와 동일한 값을 가지지 않으면 상기 인증 실패 메시지를 전송하는 단계Transmitting the authentication failure message if the server authentication message does not have the same value as the client authentication message until user authentication is completed for the valid server key. 를 포함하는 보안 인증 방법.Security authentication method comprising a. 제17항에서,The method of claim 17, 상기 사용자 단말기로부터 상기 서버 키를 수신하는 단계, 그리고Receiving the server key from the user terminal, and 상기 수신된 서버 키가 유효하지 않으면 상기 인증 실패 메시지를 상기 사용자 단말기로 전송하는 단계Transmitting the authentication failure message to the user terminal if the received server key is invalid; 를 더 포함하는 보안 인증 방법.Security authentication method further comprising. 제14항 내지 제16항 중 어느 한 항에서,The method according to any one of claims 14 to 16, 유효 기간을 가지는 상기 서버 키에 대하여 상기 유효 기간이 지난 것으로 판단하면 상기 사용자 단말기로 상기 인증 실패 메시지를 전송하는 단계를 더 포함하는 보안 인증 방법.And transmitting the authentication failure message to the user terminal if it is determined that the valid period has expired with respect to the server key having a validity period. 제14항 내지 제16항 중 어느 한 항에서,The method according to any one of claims 14 to 16, 상기 비밀키는 상기 사용자 패스워드에 소정 해시 함수를 적용하여 생성되는 보안 인증 방법.The secret key is generated by applying a predetermined hash function to the user password. 제14항 내지 제16항 중 어느 한 항에서,The method according to any one of claims 14 to 16, 상기 사용자 식별 부호에 대한 사용자 인증 이력을 기록해 두고 연속하여 소정 횟수 이상 사용자 인증에 실패하면 상기 사용자 식별 부호에 대한 사용자 인증을 허용하지 않는 단계를 더 포함하는 보안 인증 방법.And recording a user authentication history with respect to the user identification code and disallowing user authentication with respect to the user identification code if the user authentication fails more than a predetermined number of times in a row. 제14항 내지 제16항 중 어느 한 항에서,The method according to 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, a first hash value is generated by applying a second hash function to the user identification code, and the second hash value is the secret key, the first hash value. Generated by applying a third hash function to a first variable based on a hash value and the server key, wherein the client authentication message is a fourth hash function on a second variable based on the secret key, the client key and the second hash value Security authentication method generated by applying. 컴퓨터에 제14항 내지 제16항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.A computer readable medium having recorded thereon a program for causing a computer to execute the method of claim 14.
KR1020060098783A 2006-10-11 2006-10-11 Security authentication system and method Active 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 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)

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

* 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 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

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 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)

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