KR20090039451A - Authentication method using secret keys derived from user password - Google Patents

Authentication method using secret keys derived from user password Download PDF

Info

Publication number
KR20090039451A
KR20090039451A KR1020070105106A KR20070105106A KR20090039451A KR 20090039451 A KR20090039451 A KR 20090039451A KR 1020070105106 A KR1020070105106 A KR 1020070105106A KR 20070105106 A KR20070105106 A KR 20070105106A KR 20090039451 A KR20090039451 A KR 20090039451A
Authority
KR
South Korea
Prior art keywords
authentication
terminal
opc
secret key
password
Prior art date
Application number
KR1020070105106A
Other languages
Korean (ko)
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 KR1020070105106A priority Critical patent/KR20090039451A/en
Publication of KR20090039451A publication Critical patent/KR20090039451A/en

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/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

An authentication method is provided to increase the security even though many users use by deriving the secret keys from the user password. An ID and a password(PW) for user authentication are inputted to a terminal(S200). The terminal produces the secret key K and OPc of 128 bit from the inputted password(S210). If the user ID is delivered to the certificate server(S220), an authentication server produces the secret key K and OPc of 128 bit from the password(PW) corresponding to the user ID(S230). The random number(RAND) and the authentication token(AUTN) are generated(S240). The generated random number(RAND) and authentication token(AUTN) are transmitted to the terminal(S250). The validity of the authentication token(AUTN) delivered from the certificate server is verified(S260). The response(RES) value is generated through the AKA conversion algorithm(S270). The generated response value is transmitted to the certificate server(S280). After inspecting the generated response value coincided with the response(RES) value delivered from the terminal(S290), the authentication success signal is transmitted to the terminal(S300).

Description

사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법{Authentication Method Using Secret Keys Derived From User Password}Authentication Method Using Secret Keys Derived From User Password}

본 발명은 단말기와 인증서버 간의 비밀키 기반의 인증 방법에 관한 것이다.The present invention relates to a secret key based authentication method between a terminal and an authentication server.

유럽의 이동통신 표준화 단체인 3GPP(3rd Generation Partnership Project)는 3G 이동통신 단말기의 망 접속인증 및 무선구간 암호화를 위한 암호화 키 생성을 위하여 AKA(Authentication and Key Agreement)라는 방식을 제안하였고, 상기 AKA 방식은 현재 WCDMA(wideband code division multiple access) 및 HSDPA(high speed downlink packet access) 단말기의 3G UMTS(Universal Mobile Telecommunications System) 망 접속인증에 사용되고 있으며, 일명 UMTS AKA라고 불리운다. 3GPP, the European standard for telecommunication standardization (3rd The Generation Partnership Project (AEA) has proposed an AKA (Authentication and Key Agreement) method for network access authentication and wireless section encryption of 3G mobile communication terminals, and the AKA method currently uses WCDMA (wideband code division multiple access). And it is used for 3G Universal Mobile Telecommunications System (UMTS) network access authentication of a high speed downlink packet access (HSDPA) terminal, also known as UMTS AKA.

상기 UMTS AKA 인증 방식은 단말기와 인증서버가 미리 식별 아이디(IMSI; International Mobile Station Identity)와 128비트 길이의 비밀키 2개(K, OPc)를 공유하고, 상기 단말기의 망 접속 시 상기 인증서버는 상기 식별 아이디(IMSI) 및 비밀키 2개를 이용하여 단말기에 대한 접속인증을 수행함과 동시에, 트래픽 암호화 를 위한 암호화 키를 생성하게 된다.In the UMTS AKA authentication method, a terminal and an authentication server share an IDID (International Mobile Station Identity) and two 128-bit secret keys (K, OPc), and the authentication server By using the identification ID (IMSI) and two secret keys to authenticate the access to the terminal, and generates an encryption key for traffic encryption.

한편 WCDMA, HSDPA 단말기는 상기 UMTS AKA 인증 방식을 이용하기 위해 UICC(Universal IC Card: 가입자 인증용 스마트카드)의 USIM(Universal Subscriber Identity Module) 애플리케이션에 UMTS AKA 인증 방식을 위한 아이디와 비밀키 2개(K, OPc) 값을 저장하여 스마트카드 기반의 인증이 이루어지게 함으로써 보안성을 좀더 강화하고, 카드 기반의 단말기 이동성을 보장하고 있다. On the other hand, WCDMA, HSDPA terminal has two ID and secret keys for the UMTS AKA authentication method to the Universal Subscriber Identity Module (USIM) application of the Universal IC Card (UICC) to use the UMTS AKA authentication method ( K and OPc) values are stored to allow smart card-based authentication to further enhance security and ensure card-based terminal mobility.

여기서 상기 UMTS AKA 인증 방식은 기본적으로 단말기와 인증서버 간에 서로 상대방에 대한 인증을 수행하는 상호인증 방식이므로, 상기 인증서버가 단말기에 대한 인증만을 수행했던 기존의 단방향 인증방식에 비해 보안성이 크게 향상되었다.Since the UMTS AKA authentication method is a mutual authentication method that basically authenticates each other between the terminal and the authentication server, the security is greatly improved compared to the conventional one-way authentication method in which the authentication server only authenticates the terminal. It became.

이러한 3G 이동통신 단말기의 UMTS 망 접속인증을 위한 UMTS AKA 인증 방식의 보안성과 안전성은 지난 몇 년간 유럽의 상용 휴대전화 서비스를 통해 입증되었으며, 근래 들어 다른 분야의 인증방식에도 확대 적용되고 있다. The security and safety of UMTS AKA authentication method for UMTS network access authentication of 3G mobile communication terminal has been proved through commercial mobile phone service in Europe for the last several years, and has recently been applied to other methods of authentication.

즉, 유럽 휴대전화 서비스의 UMTS 망 접속인증에 국한되지 않고, xDSL, WiFi, WiBro, Mobile WiMAX 등 범용의 인터넷 접속 서비스에 3GPP의 AKA 인증 방식을 도입하기 위하여, 상기 3GPP의 AKA 인증 방식을 EAP(Extensible Authentication Protocol) 인증방식으로 적용시킨 EAP-AKA가 IETF(인터넷국제표준화기구; Internet Engineering Task Force)에 의해 규격화 되었다.That is, in order to introduce 3GPP AKA authentication method to general Internet access services such as xDSL, WiFi, WiBro, and Mobile WiMAX, it is not limited to UMTS network access authentication of European mobile phone service. Extensible Authentication Protocol (Etensive Authentication Protocol) EAP-AKA has been standardized by the IETF (Internet Engineering Task Force).

상기 EAP-AKA는 국내에서는 와이브로 단말기의 망 접속에 이용되는 방식으로 채택되어 KT, SKT에서 상용 서비스 중이다. The EAP-AKA is adopted in a manner that is used for the network connection of the WiBro terminal in Korea, and commercial service is provided by KT and SKT.

상기와 같은 EAP-AKA도 3GPP의 UMTS AKA 인증 방식을 기반으로 하므로 아이디와 비밀키 방식을 사용하며 EAP-AKA에서 아이디는 Permanent Identity, 비밀키는 K, OPc로 통칭된다.Since EAP-AKA is also based on UMTS AKA authentication method of 3GPP, ID and secret key method are used. In EAP-AKA, ID is known as Permanent Identity, secret key is K and OPc.

한편 단말기가 WCDMA/HSDPA, xDSL, WiFi, WiBro, Mobile WiMAX 등의 IP 접속망에 접속인증 과정을 거쳐 접속한 후, 3GPP IMS(IP Multimedia Subsystem) 서비스를 제공받으려면 IMS 서비스망에 등록하는 과정이 추가적으로 필요한데, 이때 단말기는 Digest-AKA 라는 방식을 통하여 인증을 받고 IMS 서비스망에 등록이 된다.On the other hand, after the terminal connects to the IP access network such as WCDMA / HSDPA, xDSL, WiFi, WiBro, and Mobile WiMAX through authentication process, it is necessary to additionally register the IMS service network in order to receive 3GPP IMS (IP Multimedia Subsystem) service. At this time, the terminal is authenticated through the Digest-AKA method and registered in the IMS service network.

이와 같이 상기 단말기가 IMS 서비스망에 등록이 된 후에 제공받을 수 있는 서비스로는 대표적으로 VoIP, 화상전화 등이 있다. 여기서 상기 Digest-AKA는 HTTP 프로토콜에서 인증을 위해 사용되어 오던 HTTP-Digest-MD5를 수정하여, MD5 대신 AKA 알고리즘을 사용할 수 있도록 하여 HTTP 뿐만 아니라 SIP(Session Initiation Protocol) 프로토콜을 통한 인증이 가능하도록 발명된 규격이다.As such, the services that can be provided after the terminal is registered in the IMS service network include VoIP and video telephony. Here, the Digest-AKA modifies the HTTP-Digest-MD5, which has been used for authentication in the HTTP protocol, so that the AKA algorithm can be used instead of the MD5, so that the authentication can be performed through the SIP (Session Initiation Protocol) protocol as well as HTTP. Specification.

상기 HTTP-Digest-MD5와 Digest-AKA의 차이점을 살펴보면 HTTP-Digest-MD5는 인증 시 사용자가 아이디와 패스워드를 입력하는데 반해 Digest-AKA는 단말기 또는 UICC 카드에 미리 저장된 아이디와 128비트 길이의 비밀키 K와 OPc를 사용하여 인증한다.Looking at the difference between the HTTP-Digest-MD5 and Digest-AKA, HTTP-Digest-MD5 is the user enters the ID and password during authentication, whereas Digest-AKA is a pre-stored ID and 128-bit secret key in the terminal or UICC card Authenticate using K and OPc.

상기 Digest-AKA는 IMS AKA로도 불리며 IMS AKA의 아이디는 Private User Identity, 비밀키는 K, OPc라고 통칭된다. 이 Private User Identity와 비밀키(K, OPc)는 UICC 카드의 ISIM(IP multimedia Services Identity Module) 애플리케이션에 저장되는데, 상기 ISIM 애플리케이션은 앞서 설명한 USIM과 논리적으로는 서로 독립적이지만 물리적으로는 모두 하나의 스마트카드(UICC)에 탑재가 된다. The Digest-AKA is also called an IMS AKA, and the ID of the IMS AKA is collectively referred to as Private User Identity, and the private key is K and OPc. The Private User Identity and the private key (K, OPc) are stored in the IP multimedia Services Identity Module (ISIM) application of the UICC card, which is logically independent of the previously described USIM but physically all in one smart. It is mounted on the card (UICC).

상기와 같은 IMS AKA 인증과정을 통해 단말기가 IMS 망에 등록되면, AKA 연산으로 생성된 암호화 키를 통해 단말기와 IMS 서비스망 사이에 보안채널이 생성되며 단말기와 IMS 서비스망 사이의 신호 프로토콜(SIP)은 상기 AKA 연산으로 생성된 암호화 키를 통해 기밀성과 무결성을 보장받게 된다.When the terminal is registered in the IMS network through the IMS AKA authentication process as described above, a secure channel is generated between the terminal and the IMS service network using an encryption key generated by an AKA operation, and a signaling protocol (SIP) between the terminal and the IMS service network. Is guaranteed confidentiality and integrity through the encryption key generated by the AKA operation.

여기서 상기 IMS는 기본적으로 유럽 휴대전화 표준단체인 3GPP에서 만든 표준이므로, IMS 서비스망에 등록되는 단말기는 휴대전화라는 가정 하에, UICC 또는 휴대전화기의 메모리에 사전에 미리 저장되는 고정 길이의 비밀키 방식(IMS AKA)으로 인증 규격이 제정되었다. Here, the IMS is basically a standard made by 3GPP, a European mobile phone standard organization, so that a terminal registered in the IMS service network is a mobile phone, and a fixed length secret key method is stored in advance in a memory of a UICC or a mobile phone. Certification standard was established by (IMS AKA).

하지만 이후 국제전기통신연합 (ITU: International Telecommunications Union)과 유무선 통합망 표준화 단체 (TISPAN: Telecoms & Internet converged Services and Protocols for Advanced Network)에서 차세대네트워크(NGN: Next Generation Network) 표준 서비스 계층의 주요 구성 요소로 IMS 규격을 수용했기 때문에, 현재는 휴대전화 이외에도 일반 PC를 포함한 모든 IP 기반 단말기가 IMS 구조 하에서 서비스를 받을 수 있도록 개념이 확장되었다. However, the key components of the Next Generation Network (NGN) standard service layer at the International Telecommunications Union (ITU) and the Telecoms & Internet converged Services and Protocols for Advanced Network (TISPAN) Now that the IMS standard has been accepted, the concept has been extended so that not only mobile phones but all IP-based terminals, including general PCs, can receive services under the IMS structure.

현재 네이버폰, 스카이프 등 PC 기반의 소프트폰 VoIP/화상전화 서비스는 대부분 표준 IMS 기반이 아니고 업체 자체 규격을 사용하고 있으나, IMS가 통신업계 전반으로 확산됨에 따라 앞으로는 IMS 기반의 소프트폰이 널리 사용될 전망이다. Currently, PC-based soft phone VoIP / video phone services such as Naver Phone and Skype are not based on standard IMS but use their own standards, but IMS-based soft phones are expected to be widely used in the future as IMS spreads throughout the telecom industry. to be.

특히 3G 휴대전화는 향후 IMS 기반으로 음성/영상 서비스가 제공될 예정이기 때문에 PC기반 소프트폰이 3G 휴대전화와 음성/영상통화를 하기 위해서는 같은 IMS 기반이어야 정상적인 연동이 가능하다.In particular, since 3G mobile phones will be provided with voice / video services based on IMS in the future, in order for PC-based soft phones to make voice / video calls with 3G mobile phones, they must be connected to the same IMS.

이때 문제점은, 단말기가 IMS 망에 등록하고 서비스를 받기 위해서는 표준 상 인증 시에 비밀키 방식의 IMS AKA를 이용하여야 하나, 이를 위해서는 PC에 사용할 수 있는 UICC 카드 및 스마트카드 리더기 등의 장치가 필요하다는 점이다. (참고로 모든 3G 휴대전화에는 기본적으로 UICC를 장착할 수 있는 슬롯이 마련되어 있다.) In this case, the problem is that a terminal must use a secret key type IMS AKA for authentication in order to register and receive services in an IMS network, but for this purpose, a device such as a UICC card and a smart card reader that can be used in a PC is required. Is the point. (Note that all 3G phones come with a slot for UICC by default.)

이러한 문제점을 해결하기 위해 휴대전화가 아닌 PC 단말의 경우 인증을 위한 아이디(Private User Identity)와 비밀키(K, OPc) 값을 UICC 대신 PC의 하드디스크에 저장해 놓고 사용할 수 있으나, UICC 정도의 보안성을 유지하며 이를 구현하기는 용이하지 않다. In order to solve this problem, in the case of PC terminals other than mobile phones, private user identity and secret key (K, OPc) values can be stored and used on the PC's hard disk instead of UICC. It is not easy to implement and maintain the gender.

또한 위와 같이 비밀키를 PC의 하드디스크에 저장하여 사용하는 경우, 기존의 소프트폰은 대부분 아이디/패스워드 인증방식을 채택하여 어떤 PC에서든지 프로그램만 설치하면 본인의 아이디와 패스워드를 입력하여 서비스를 이용할 수 있는 데 반해, IMS 기반 소프트폰은 본인의 아이디(Private User Identity)와 비밀키(K, OPc) 값이 저장된 특정 PC에서만 사용이 가능하므로 사용자의 불편이 클 것으로 예상된다. In addition, when storing and using the secret key in the hard disk of the PC as described above, most of the existing softphone adopts the ID / password authentication method, you can use the service by entering your ID and password just install the program on any PC On the other hand, IMS-based softphones can only be used on certain PCs with their own user ID and private key (K, OPc) values.

또한 하나의 PC를 여러 명이 공동으로 사용하는 경우, 이렇게 하드디스크에 미리 특정 사용자를 위한 비밀키를 저장하는 방식은 더욱 큰 사용자 불편과 보안 문제를 발생시킬 수 있다.In addition, when several people share the same PC, storing the secret key for a specific user in advance on the hard disk may cause more user inconvenience and security problems.

이를 해결하기 위해 IMS 기반의 PC 소프트폰이 IMS 서비스망에 등록할 때에 는 비밀키 인증방식인 IMS AKA 대신 아이디/패스워드 인증 방식인 HTTP-Digest-MD5를 사용하게끔 추진하고 있는 경우(예: K사의 IMS 소프트폰)도 있다. In order to solve this problem, when IMS-based PC softphones are registered to the IMS service network, they are trying to use the ID / password authentication method HTTP-Digest-MD5 instead of the secret key authentication method IMS AKA (eg KMS IMS). Softphones).

하지만 이는 IMS 서비스망 등록시 IMS AKA를 사용해야 하는 3GPP 규격을 크게 벗어난 것일 뿐만 아니라, MD5는 AKA와는 달리 상호인증 및 채널 암호화 키 생성이 불가능하기 때문에 보안성도 크게 떨어지게 된다. However, this is not only a large deviation from the 3GPP specification, which requires the use of IMS AKA when registering an IMS service network, and unlike AKA, MD5 is not able to generate mutual authentication and channel encryption keys.

더욱 큰 문제점은, 원래 IMS 규격에서는 단말이 IMS 서비스망에 인증 후 등록이 되면 단말과 IMS 서비스망 간에 채널 암호화에 의한 신뢰관계가 형성되어 이후에 단말이 요청하는 서비스는 재등록 과정 없이 신속하게 제공되는 반면에, MD5를 통해 IMS 망에 등록을 하게 되면 보안 채널이 생성되지 않기 때문에 단말기가 IMS 서비스를 요청할 때마다(예: 전화를 한번 걸 때마다) IMS 서비스망에 등록하는 과정을 매번 거쳐야 하므로 인증서버에 부하를 증가시키고 서비스 제공 시 인증 및 망 등록에 걸리는 시간만큼 지연이 발생하게 된다.Even more seriously, in the original IMS standard, when a terminal is registered after authentication in an IMS service network, a trust relationship is formed between the terminal and the IMS service network by channel encryption, and then the service requested by the terminal is quickly provided without a re-registration process. On the other hand, when registering to IMS network through MD5, secure channel is not created. Therefore, every time a terminal requests IMS service (for example, each time a call is made), it must go through the process of registering to IMS service network every time. Increasing the load on the authentication server and delaying the time required for authentication and network registration during service provision.

[표 1]TABLE 1

인증방식Authentication method 사용되는 IDID used 비밀키Secret key UICC ApplicationUICC Application 용도Usage UMTS AKAUMTS AKA IMSIIMSI K & OPcK & OPc USIMUSIM WCDMA/ HSDPA 3G 휴대전화의 UMTS 망 접속 인증UMTS network access authentication of WCDMA / HSDPA 3G mobile phones EAP-AKAEAP-AKA Permanent IDPermanent ID K & OPcK & OPc WSIMWSIM IP 단말의 인터넷망 접속인증 (예: 와이브로 단말 접속인증)Internet terminal authentication of IP terminal (ex: WiBro terminal authentication) IMS AKAIMS AKA Private IDPrivate ID K & OPcK & OPc ISIMISIM IMS 서비스를 제공받기 위한 IMS 서비스망 등록 인증IMS service network registration certification to receive IMS service

정리하면, AKA는 표 1에서 볼 수 있듯이 3G 휴대전화의 망 접속인증, 와이브로 등 범용 IP 단말의 망 접속인증, IMS 단말기의 IMS 서비스망 등록 인증에 이용된다. 특히 3G 휴대전화의 UMTS 망 접속인증과 IMS 단말기의 IMS 서비스망 등록 시 에는 표준상 의무적으로 각각 UMTS AKA, IMS AKA 방식을 이용하여야 한다. 참고로 xDSL, WiFi, WiBro 등의 망에 접속하기 위한 IP 단말의 접속인증 방식은 표준상 EAP-MD5, EAP-TLS, EAP-TTLS, EAP-AKA 등 다양한 인증 방식 중에서 적당한 것을 골라 사용할 수 있는데, 국내 와이브로의 경우에는 KT, SKT 모두 현재 EAP-AKA를 사용하고 있다.In summary, as shown in Table 1, AKA is used for network connection authentication of 3G mobile phones, network connection authentication of general IP terminals such as WiBro, and IMS service network registration authentication of IMS terminals. In particular, UMTS AKA and IMS AKA methods must be used as a standard for UMTS network access authentication of 3G mobile phones and IMS service network registration of IMS terminals. For reference, the IP terminal's access authentication method for accessing a network such as xDSL, WiFi, or WiBro can be used by selecting an appropriate one among various authentication methods such as EAP-MD5, EAP-TLS, EAP-TTLS, and EAP-AKA. In Korea, KT and SKT currently use EAP-AKA.

도 1은 일반적인 기존 AKA 인증 과정을 나타낸 것으로서, 단말기가 인증서버로 ID(S100)를 전송하면, 상기 인증서버는 랜덤 값(RAND)을 생성하고, 해당 ID에 맞는 비밀키(K, OPc)를 이용하여 인증토큰(AUTN)을 생성하여(S110) 단말기로 전송한다(S120). 상기 인증토큰(AUTN)을 전송받은 단말기는 단말기 또는 UICC에 저장된 비밀키(K, OPc)를 이용하여 인증토큰(AUTN)의 적법성을 검증한 후(S130) 검증에 성공하면 응답(RES)을 생성하여(S140), 인증서버로 전송한다(S150). 1 illustrates a general existing AKA authentication process, when a terminal transmits an ID S100 to an authentication server, the authentication server generates a random value RAND and generates a secret key K and OPc corresponding to the ID. By using the authentication token (AUTN) is generated (S110) and transmitted to the terminal (S120). After receiving the authentication token (AUTN), the terminal verifies the legality of the authentication token (AUTN) by using the secret key (K, OPc) stored in the terminal or UICC (S130) and generates a response (RES) if the verification is successful. (S140), and transmits to the authentication server (S150).

이에 따라 인증서버는 전송된 응답(RES) 값이 맞는 지 비밀키(K, OPc)를 이용하여 검사한 후(S160) 단말기로 인증 결과를 전송한다(S170). 또한 단말기와 인증서버는 이러한 인증 과정에서 비밀키(K, OPc), 랜덤 값(RAND)을 이용하여 암호화 키(CK, IK)를 양측에서 각각 생성함으로써 인증 성공 이후 단말기와 망 사이의 채널 암호화에 사용한다. 이러한 기본적인 핵심 AKA 알고리즘은 UMTS AKA, EAP-AKA, IMS AKA 인증에 모두 공통적으로 적용된다.Accordingly, the authentication server checks whether the transmitted response (RES) value is correct using the secret keys (K, OPc) (S160) and transmits the authentication result to the terminal (S170). In addition, the terminal and the authentication server generate encryption keys (CK, IK) at both sides by using secret keys (K, OPc) and random values (RAND) in this authentication process, so that the terminal and the authentication server can encrypt the channel between the terminal and the network after the authentication is successful. use. This basic core AKA algorithm is commonly used for UMTS AKA, EAP-AKA, and IMS AKA authentication.

여기서 IMS 서비스망 등록 인증을 자세히 살펴보면, 휴대전화 같은 전용단말의 경우에는 전원을 켜면 UICC의 USIM에 저장된 아이디와 비밀키를 이용하여 자동으로 인증 과정을 거쳐 UMTS 접속망에 접속이 되어 IP를 할당받고, 곧바로 ISIM에 저장된 아이디와 비밀키를 이용하여 자동으로 인증 과정을 거쳐 IMS 서비스망에 등록이 되어, IMS 서비스를 제공받을 수 있는(예: 전화를 걸고 받을 수 있는) 준비가 완료된다. If you look closely at the IMS service network registration authentication, in case of a dedicated terminal such as a mobile phone, when the power is turned on, the ID and secret key stored in the UICC's USIM are automatically authenticated and connected to the UMTS access network, and an IP is assigned. Immediately, the ID and secret key stored in ISIM are automatically authenticated and registered in the IMS service network, ready to receive IMS services (eg, make and receive calls).

이와는 달리 유무선 랜 또는 와이브로를 통해 인터넷에 접속이 된 PC에서는 VoIP, 화상전화 등의 서비스를 이용할 때, 해당 소프트웨어를 실행하여 사용자의 아이디와 패스워드를 입력하여 인증을 받고 사용하는 것이 일반적이다. 하지만 IMS 기반의 서비스를 이용하려면 PC와 같은 단말기도 표준 규격상 패스워드가 아닌 비밀키 기반의 IMS AKA를 이용하여 IMS 서비스망에 등록을 해야 한다. On the other hand, in PCs connected to the Internet through wired / wireless LAN or WiBro, when using services such as VoIP and video telephony, it is common to execute the corresponding software and enter the user's ID and password for authentication and use. However, in order to use IMS-based services, terminals such as PCs also need to be registered in the IMS service network using IMS AKA based on secret keys rather than passwords.

즉, 여러 사람들이 함께 사용할 수 있는 공용 PC에서는 서비스 이용 시 사용자가 아이디와 패스워드를 입력하는 것이 바람직하지만, IMS 서비스를 받으려면 3GPP 표준 규격상 PC도 비밀키 기반의 IMS AKA를 통해 서비스망에 등록되어야 하는 문제점이 발생한다.In other words, in a public PC that can be used by several people, it is desirable for the user to enter ID and password when using the service.However, in order to receive IMS service, the PC must also be registered in the service network through IMS AKA based on the secret key in order to receive IMS service. The problem arises.

본 발명은 상기한 종래의 기술의 문제점을 해소하기 위해 제안된 것으로서, 사전 공유된 비밀키 대신 인증 시에 사용자로부터 입력 받은 패스워드로부터 AKA 연산에 필요한 비밀키(K, OPc)를 실시간으로 유도하여 단말기 및 인증서버간의 인증을 수행함으로써, 비밀키 방식인 AKA 인증을 사용자 패스워드 기반으로 하여 IMS 서비스를 이용할 수 있게 하는, 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법을 제공하고자 한다.The present invention has been proposed to solve the above-mentioned problems of the prior art, the terminal inducing the real-time secret key (K, OPc) required for AKA operation from the password input from the user at the time of authentication instead of the shared secret key in real time And by performing authentication between the authentication server, to provide a secret key-based authentication method derived from the user password to enable the IMS service based on the user password based AKA authentication.

본 발명에 따른 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법은 단말기와 인증서버 간의 비밀키 기반의 인증 방법으로서, a) 복수의 사용자별 아이디 및 소정의 길이의 패스워드가 함께 구축된 인증서버에 단말기가 접속되는 단계; b) 상기 단말기에 인증용 아이디(ID) 및 패스워드(PW)가 입력되는 단계; c) 상기 단말기는 입력된 패스워드로부터 비밀키를 유도하고, 입력된 사용자 아이디를 인증서버로 전송하는 단계; d) 상기 인증서버는 상기 단말기로부터 전송된 사용자 입력 아이디에 해당하는 패스워드로부터 비밀키를 유도하는 단계; 및 e) 상기 단말기 및 인증서버가 각각 유도한 비밀키를 이용하여 상호 비밀키 기반의 인증을 수행하는 단계를 포함한다.Secret key-based authentication method derived from a user password according to the present invention is a secret key-based authentication method between the terminal and the authentication server, a) a plurality of user IDs and passwords of a predetermined length with the terminal built on the authentication server Is connected; b) inputting an ID for authentication and a password for the terminal; c) the terminal deriving a secret key from the input password and transmitting the input user ID to the authentication server; d) deriving a secret key from a password corresponding to a user input ID transmitted from the terminal; And e) performing mutual secret key based authentication using a secret key derived by each of the terminal and the authentication server.

여기서 본 발명의 e)단계의 비밀키 기반의 인증 방법이 AKA(Authentication and Key Agreement) 방식인 경우에 상기 e)단계의 상호 비밀키 기반의 인증 방법은 1) 상기 인증서버는 소정의 길이의 랜덤 값(RAND)을 생성하고, 상기 d)단계에서 유도된 비밀키(K, OPc)를 이용하여 인증토큰(AUTN)을 생성하여, 상기 랜덤 값(RAND) 및 인증토큰(AUTN)을 상기 단말기로 전송하는 단계; 2) 상기 단말기는 c)단계에서 유도된 비밀키(K, OPc)와, 상기 인증서버로부터 전달받은 랜덤 값(RAND)을 이용하여 상기 인증서버로부터 전달된 상기 인증토큰(AUTN)의 적법성을 검증하는 단계; 3) 상기 단말기는 인증토큰(AUTN)의 검증에 성공하면, 상기 단말기가 유도한 비밀키(K, OPc)를 이용하여 응답 값(RES)을 생성하여 인증서버로 전송하는 단계; 및 4) 상기 인증서버는 d)단계에서 유도한 비밀키(K, OPc)를 이용하여 상기 3)단계에서 상기 단말기가 비밀키(K, OPc)로부터 상기 응답 값(RES)을 생성한 방법과 동일하게 응답 값(RES)을 생성하여, 상기 인증서버에 의해 생성된 응답 값(RES)이 단말기로부터 전달받은 응답 값(RES)과 서로 일치하는 지 검증하고, 일치하면 인증성공신호를 단말기로 전송하는 단계를 포함한다.In the case where the secret key based authentication method of step e) of the present invention is an AKA (Authentication and Key Agreement) method, the mutual secret key based authentication method of step e) is performed. A value RAND is generated and an authentication token AUTN is generated using the secret keys K and OPc derived in step d), and the random value RAND and authentication token AUTN are transmitted to the terminal. Transmitting; 2) The terminal verifies the legality of the authentication token (AUTN) delivered from the authentication server using the secret key (K, OPc) derived in step c) and the random value (RAND) received from the authentication server. Making; 3) if the terminal succeeds in verifying the authentication token (AUTN), generating a response value (RES) using a secret key (K, OPc) derived by the terminal and transmitting it to the authentication server; And 4) the authentication server generates the response value RES from the secret keys K and OPc in step 3) by using the secret keys K and OPc derived in step d). Similarly, by generating a response value RES, verifying that the response value RES generated by the authentication server is identical to the response value RES received from the terminal, and if it matches, transmits an authentication success signal to the terminal. It includes a step.

한편 본 발명은 상기 인증서버 및 단말기가 임의의 길이의 패스워드로부터 고정된 길이의 비밀키(K, OPc)를 각각 유도하기 위해 아래의 수학식 1을 이용한다Meanwhile, the present invention uses the following Equation 1 for the authentication server and the terminal to derive a fixed length private key (K, OPc) from a password of any length.

[수학식 1][Equation 1]

K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128)

OPc = Truncate( SHA-1(PW || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || "This is for OPc"), 128)

- Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수(Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left (MSB)

- SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어 내는 해쉬 함수SHA-1: A hash function that takes arbitrary length data as input and produces a 160-bit result.

- A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data

한편 본 발명은 상기 단말기 및 인증서버가 각각 임의의 길이의 패스워드로부터 고정된 길이의 비밀키(K, OPc)를 유도하기 위해 아래의 수학식 2를 이용하여 K와 OP 값을 먼저 유도한 후 K와 OP 값으로부터 OPc 값을 유도한다.Meanwhile, in the present invention, the terminal and the authentication server first derive K and OP values using Equation 2 below to derive a fixed length secret key (K, OPc) from a password of an arbitrary length, respectively. Derive OPc values from and OP values.

[수학식 2][Equation 2]

K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128)

OP = Truncate( SHA-1(PW || "This is for OP"), 128)OP = Truncate (SHA-1 (PW || "This is for OP"), 128)

OPc = AES(K, OP) ⓧ OPcOPc = AES (K, OP) ⓧ OPc

- Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수 (Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left side (MSB).

- SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result

- A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data

- AES(): Advanced Encryption Standard 함수AES (): Advanced Encryption Standard Function

- ⓧ : Exclusive OR 함수Ⓧ: Exclusive OR function

한편 본 발명은 상기 인증서버 및 단말기가 임의의 길이의 패스워드로부터 각각 비밀키(K, OPc)를 유도할 때에, 랜덤 값(RAND)을 이용하여 인증 시마다 매번 다르게 유도하기 위해 아래의 수학식 3을 이용한다.Meanwhile, in the present invention, when the authentication server and the terminal derive the secret keys K and OPc from passwords of arbitrary length, respectively, the following equation 3 is used to derive each time differently using a random value RAND. I use it.

[수학식 3][Equation 3]

K = Truncate( SHA-1(PW || RAND || "This is for K"), 128)K = Truncate (SHA-1 (PW || RAND || "This is for K"), 128)

OPc = Truncate( SHA-1(PW || RAND || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || RAND || "This is for OPc"), 128)

- Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수 (Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left side (MSB).

- SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result

- A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data

본 발명은 PC와 같이 제조 시부터 하드디스크에 사전에 공유된 고정길이의 비밀키가 저장되기 어렵고, 많은 사용자가 사용하여 하나의 공유된 비밀키만으로 사용이 곤란한 경우, 또는 비밀키의 저장 시 보안성이 문제되는 경우 고정길이 비밀키를 미리 하드웨어에 저장하는 대신 인증 시점에 사용자로부터 패스워드를 압력받아 인증을 수행함으로써 사용자 편의성을 증가시키고, 여러 사용자의 사용에 따른 보안성도 크게 향상할 수 있게 하는 효과를 발휘할 수 있다.The present invention is difficult to store a fixed-length secret key shared in advance in the hard disk from the time of manufacture, such as a PC, difficult to use only one shared secret key used by many users, or security when storing the secret key If the problem is a problem, instead of storing the fixed-length secret key in hardware in advance, the user can increase the user's convenience by pressing the password from the user at the time of authentication and greatly improve the security of the use of multiple users. Can exert.

이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 설명한다.Hereinafter, with reference to the accompanying drawings will be described specific details for the practice of the invention.

도 2는 본 발명에 따른 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법의 타이밍도이다.2 is a timing diagram of a secret key based authentication method derived from a user password according to the present invention.

우선 본 발명의 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법은 우선 복수의 사용자가 인증서버에 접속하여 회원가입 등의 공지된 절차에 의해 인증서버로부터 아이디 및 패스워드를 부여받은 상태를 전제로 한다.First, a secret key-based authentication method derived from a user password of the present invention presupposes a state in which a plurality of users are connected to an authentication server and have been given an ID and password from the authentication server by a known procedure such as membership registration.

즉, 인증서버는 복수의 사용자 별 아이디 및 패스워드가 구축되어 있고, 복수의 사용자는 개별 아이디 및 패스워드를 인지하고 있는 상태가 전제되어야 본 발명을 이용할 수 있는 상태가 된다.That is, in the authentication server, a plurality of user IDs and passwords are constructed, and a plurality of users assume a state of recognizing individual IDs and passwords in order to use the present invention.

이에 따라 복수의 사용자별 아이디 및 소정의 길이의 패스워드가 함께 구축된 인증서버에 단말기가 접속하면, 도 2에 도시된 바와 같이, 사용자가 단말기의 인증창에 인증용 아이디(ID)와 패스워드(PW)를 입력하고(S200), 단말기는 입력된 패스워드로부터 128비트의 비밀키 K와 OPc를 생성하며(S210), 함께 입력된 ID는 인증서버로 전송한다(S220). 이때 S210에서 생성되는 비밀키(K, OPc)는 AKA 인증토큰(AUTN) 값을 검증하는 단계인 후술하는 S260에서 처음 사용되므로, 반드시 S220 이전에 수행되어야 하는 것은 아니고 도 3의 S460과 같이 인증토큰(AUTN) 값을 검증하기 바로 직전에 수행되는 것도 가능하다.Accordingly, when the terminal connects to the authentication server in which a plurality of user IDs and passwords having a predetermined length are constructed, as shown in FIG. 2, the user authenticates the ID and password (PW) in the authentication window of the terminal. ) (S200), the terminal generates a 128-bit secret key K and OPc from the input password (S210), and the inputted ID is transmitted to the authentication server (S220). At this time, since the secret key (K, OPc) generated in S210 is used for the first time in S260 to be described later, which is a step of verifying the AKA authentication token (AUTN) value, the authentication token is not necessarily performed before S220, as in S460 of FIG. It can also be done just before verifying the (AUTN) value.

S220과 같이 사용자 아이디가 인증서버로 전달되면, 인증서버는 미리 저장하고 있던, 사용자 아이디에 해당하는 패스워드(PW)로부터 128비트 길이의 비밀키 K와 OPc를 생성한다(S230). 여기서 임의의 길이의 패스워드(PW)로부터 고정된 128비트 길이의 비밀키(K, OPc)를 생성하는 것은, 기본적으로는 다음 [수학식 1]과 같이 단방향 해쉬 함수를 사용하여 가능하다. When the user ID is transmitted to the authentication server as in S220, the authentication server generates a 128-bit secret key K and OPc from a password (PW) corresponding to the user ID previously stored (S230). Here, it is possible to generate a fixed 128-bit long secret key (K, OPc) from an arbitrary length password (PW) using a one-way hash function, as shown in Equation 1 below.

[수학식 1][Equation 1]

K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128)

OPc = Truncate( SHA-1(PW || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || "This is for OPc"), 128)

- Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수 (Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left side (MSB).

- SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result

- A || B : A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data

또는 다음과 같이 일단 SHA-1 해쉬 함수를 사용하여 사용자 입력 패스워드로부터 128비트의 K와 OP 값을 먼저 유도한 후, [수학식 2]를 이용하여 최종적으로 K와 OP 값으로부터 128 비트 OPc 값을 유도하는 것도 가능하다.Or, first derive 128-bit K and OP values from the user input password using the SHA-1 hash function as follows, and then use Equation 2 to finally obtain 128-bit OPc values from the K and OP values. It is also possible to induce.

[수학식 2][Equation 2]

K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128)

OP = Truncate( SHA-1(PW || "This is for OP"), 128)OP = Truncate (SHA-1 (PW || "This is for OP"), 128)

OPc = AES(K, OP) ⓧ OPcOPc = AES (K, OP) ⓧ OPc

- AES(): Advanced Encryption Standard 함수AES (): Advanced Encryption Standard Function

- ⓧ : Exclusive OR 함수Ⓧ: Exclusive OR function

위에서 제안된 2가지 방법 외에도, 임의의 길이의 데이터로부터 고정된 길이의 데이터를 유도하는 데에는 HMAC-SHA-1, HMAC-SHA-2, RSA PBKDF 등의 다양한 해쉬 함수 및 키 유도함수들이 사용될 수 있다.In addition to the two methods proposed above, a variety of hash and key derivation functions, such as HMAC-SHA-1, HMAC-SHA-2, RSA PBKDF, can be used to derive fixed length data from arbitrary length data. .

이어서 단말기로부터 아이디를 전달받고 사용자 전송 아이디에 해당하는 패스워드(PW)로부터 128비트 길이의 비밀키(K, OPc)를 생성한(S230) 인증서버는 별도 의 변환알고리즘(AKA 알고리즘)을 이용하여 랜덤 값(RAND) 및 인증토큰(AUTN)을 생성하여(S240) 단말기로 전송하는데(S250), 상기 인증토큰(AUTN)의 생성에는 상기 인증서버에서 유도된 상기 비밀키(K, OPc)와 상기 인증서버가 랜덤하게 생성한 랜덤 값(RAND)이 이용된다. 상기 인증토큰(AUTN)의 생성에 랜덤 값(RAND)이 사용되는 이유는 매번 인증 시마다 인증토큰(AUTN) 값을 서로 다르게 생성하기 위해서이다.Subsequently, the authentication server receiving the ID from the terminal and generating a 128-bit-long secret key (K, OPc) from the password (PW) corresponding to the user transmission ID (S230) uses a separate conversion algorithm (AKA algorithm) randomly. A value (RAND) and an authentication token (AUTN) are generated and transmitted (S240) to the terminal (S250). The generation of the authentication token (AUTN) includes the secret key (K, OPc) derived from the authentication server and the authentication. Random values RAND generated by the server are used. The reason why the random value RAND is used to generate the authentication token AUTN is to generate the authentication token AUTN differently for each authentication.

상기 인증서버로부터 랜덤 값(RAND) 및 인증토큰(AUTN)을 전달받은 단말기는 사용자가 입력한 패스워드(PW)로부터 유도된 비밀키(K, OPc)와 상기 인증서버로부터 전달받은 랜덤 값(RAND)을 이용하여, 상기 인증서버가 S240에서 인증토큰(AUTN)을 생성할 때와 동일한 변환알고리즘을 수행하여 상기 인증서버로부터 전달된 인증토큰(AUTN)의 적법성을 검증하고(S260), 검증에 성공하면 비밀키(K, OPc)를 이용하여 다시 AKA 변환알고리즘을 통해서 응답(RES) 값을 생성하여(S270), 이를 인증서버로 전송한다(S280). The terminal receiving the random value (RAND) and the authentication token (AUTN) from the authentication server, the secret key (K, OPc) derived from the password (PW) input by the user and the random value (RAND) received from the authentication server By using, the authentication server performs the same conversion algorithm as when generating the authentication token (AUTN) in S240 to verify the legitimacy of the authentication token (AUTN) transferred from the authentication server (S260), if the verification is successful Using a secret key (K, OPc) again generates a response (RES) value through the AKA conversion algorithm (S270), and transmits it to the authentication server (S280).

이에 따라 인증서버는 단말기로부터 전달받은 응답(RES) 값이 맞는 지 검사하기 위해서, S230에서 유도한 비밀키(K, OPc)를 이용하여 S270과 동일한 별도의 변환알고리즘을 이용하여 응답(RES) 값을 생성하여, 이를 S280에 의해 단말기로부터 전달받은 응답(RES) 값과 일치하는지 검사한 후(S290), 상호 일치하면 인증성공신호를 단말기로 전송한다(S300). Accordingly, in order to check whether the response value received from the terminal is correct, the authentication server uses a separate conversion algorithm identical to S270 using a secret key (K, OPc) derived in S230 to respond to the response (RES) value. After generating, and checking whether this matches the response (RES) value received from the terminal by the S280 (S290), if mutually matched and transmits the authentication success signal to the terminal (S300).

또한 단말기와 인증서버는 이러한 인증 과정에서, 인증서버가 생성하여 단말기에 전달한 랜덤 값 (RAND)과 각자의 비밀키(K, OPc)를 이용하여 암호화 키(CK, IK)를 생성함으로써, 인증 성공 이후의 트래픽 암호화에 사용한다. 참고로 상기 비 밀키(K, OPc)가 항상 일정해도 트래픽 암호화 키(CK, IK)의 생성에는 랜덤 값(RAND)이 이용되므로 매번 인증 시마다 다른 값으로 생성된다.In addition, the terminal and the authentication server generate an encryption key (CK, IK) by using the random value (RAND) and the secret key (K, OPc) generated by the authentication server and delivered to the terminal in this authentication process, authentication success Used for subsequent traffic encryption. For reference, even though the secret keys K and OPc are always constant, random values RAND are used to generate the traffic encryption keys CK and IK, and thus different values are generated for each authentication.

본 발명에서 단말기와 인증서버 양측이 서로 미리 약속된 방법을 이용하여 패스워드로부터 AKA 연산을 위한 비밀키(K, OPc)를 유도하는 단계만 제외하면, 상호인증 방법 및 트래픽 암호화 키(CK, IK) 생성 방법이 기존의 AKA 인증 방식과 동일하므로 기존에 설치된 시스템을 소폭 수정하는 것으로써 본 발명 내용을 구현할 수 있다. Except for the step of deriving the secret key (K, OPc) for the AKA operation from the password using a method previously promised by both the terminal and the authentication server in the present invention, the mutual authentication method and traffic encryption key (CK, IK) Since the generation method is the same as the existing AKA authentication method, the present invention can be implemented by slightly modifying an existing system.

또한 인증 시 패스워드로부터 유도되는 비밀키(K, OPc)는 사용자가 패스워드를 변경하지 않는 한 매번 인증 시마다 동일한 값으로 유도되며, 사용자가 어느 시점에 패스워드를 변경하게 되면 그 이후 인증부터는 새로운 패스워드에 따라 이전 비밀키(K, OPc)와는 다른 값으로 생성이 된다.In addition, the secret key (K, OPc) derived from the password at the time of authentication is derived to the same value every time unless the user changes the password.If the user changes the password at some point, the authentication will be based on the new password. It is generated with a different value from the previous secret keys (K, OPc).

도 3은 본 발명에 따른 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법에서 인증서버 및 단말기가 사용자 패스워드(PW)로부터 비밀키(K, OPc)를 유도하는 과정에서 랜덤 값 (RAND)을 활용하는 모습을 나타내는 타이밍도로서, 매번 인증 시마다 인증서버가 AKA 연산을 위해 임의적으로 생성하는 랜덤 값 (RAND)을 활용함으로써, 사용자 패스워드가 변경되지 않더라도 비밀키(K, OPc)의 값을 인증 시마다 매번 다르게 생성하여 보안성을 높일 수 있는 방법을 나타낸다. 아래의 수식은 그러한 방법들 중 하나의 예시를 나타내었다.3 illustrates a method of using a random value (RAND) in a process of deriving a secret key (K, OPc) from a user password (PW) by an authentication server and a terminal in a secret key-based authentication method derived from a user password according to the present invention. As a timing diagram showing the appearance, by utilizing random values (RAND) randomly generated by the authentication server for each AKA operation at each authentication, the values of the secret keys (K, OPc) are changed every time, even if the user password is not changed. Create and show how to increase security. The formula below shows an example of one of those methods.

우선 복수의 사용자별 아이디 및 소정의 길이의 패스워드가 함께 구축된 인증서버에 단말기가 접속하고, 사용자가 단말기를 이용하여 인증용 아이디(ID) 및 패스워드(PW)를 입력하게 되면(S400), 상기 단말기는 입력된 사용자 아이디를 인증서버로 전송하게 된다(S410).First, when a terminal is connected to an authentication server in which a plurality of user IDs and passwords having a predetermined length are constructed, and a user inputs an authentication ID (ID) and a password (PW) using the terminal (S400), The terminal transmits the input user ID to the authentication server (S410).

이어서 상기 인증서버는 임의의 랜덤 값(RAND)을 생성하고(S420), 상기 단말기로부터 전송된 사용자의 아이디에 해당하는 패스워드와 상기 랜덤 값(RAND)을 아래의 수학식 3에 적용하여 비밀키(K, OPc)를 유도하게 된다.(S430).Subsequently, the authentication server generates a random random value (RAND) (S420), and applies a password corresponding to the ID of the user transmitted from the terminal and the random value (RAND) to Equation 3 below to obtain a secret key ( K, OPc) will be induced (S430).

[수학식 3][Equation 3]

K = Truncate( SHA-1(PW || RAND || "This is for K"), 128)K = Truncate (SHA-1 (PW || RAND || "This is for K"), 128)

OPc = Truncate( SHA-1(PW || RAND || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || RAND || "This is for OPc"), 128)

이어서 상기 인증서버는 유도된 비밀키(K, OPc)를 이용하여 별도의 변환알고리즘을 이용하여 인증토큰(AUTN)을 생성하고(S440), 이를 랜덤 값(RAND)과 함께 단말기로 전송하고(S450), 상기 단말기는 사용자가 입력한 패스워드와 상기 인증서버로부터 전송된 상기 랜덤값(RAND)를 수학식 3에 적용하여 비밀키(K, OPc)를 유도한다.(S460) 이어서 상기 단말기는 상기 랜덤값(RAND)과 S460에서 유도된 상기 비밀키(K, OPc)를 이용하여, 상기 인증서버가 S440에서 인증토큰(AUTN)을 생성할 때와 동일한 변환알고리즘을 수행하여 상기 인증서버로부터 전달된 인증토큰(AUTN)의 적법성을 검증하고(S470), 검증에 성공하면 비밀키(K, OPc)를 이용하여 다시 변환알고리즘을 통해서 응답(RES) 값을 생성하여(S480), 이를 인증서버로 전송한다(S490).Subsequently, the authentication server generates an authentication token (AUTN) using a separate conversion algorithm using the derived private keys (K, OPc) (S440), and transmits it to the terminal together with the random value (RAND) (S450). The terminal derives the secret keys K and OPc by applying the password input by the user and the random value RAND transmitted from the authentication server to Equation 3 (S460). Using the value RAND and the secret keys K and OPc derived in S460, the authentication server performs the same conversion algorithm as when generating the authentication token AUTN in S440, and then the authentication transferred from the authentication server. The validity of the token (AUTN) is verified (S470), and if the verification is successful, a response (RES) value is generated through the conversion algorithm again using the secret keys (K, OPc) (S480), and transmitted to the authentication server. (S490).

이에 따라 인증서버는 단말기로부터 전달받은 응답(RES) 값이 맞는 지 검사하기 위해서 S430에서 유도한 비밀키(K, OPc)를 이용하여 S480과 동일한 별도의 변 환알고리즘을 이용하여 응답(RES) 값을 생성하여, 이를 S490에 의해 단말기로부터 전달받은 응답(RES) 값과 일치하는 지 검사한 후(S500), 상호 일치하면 인증성공신호를 단말기로 전송한다(S510).Accordingly, the authentication server uses the same conversion algorithm as that of S480 using the private key (K, OPc) derived from S430 to check whether the response (RES) received from the terminal is correct. After generating and checking whether this matches the response (RES) value received from the terminal by the S490 (S500), if the mutual match, and transmits an authentication success signal to the terminal (S510).

여기서 상기 S430과 같이 랜덤 값(RAND)을 이용하여 비밀키(K, OPc)를 유도하게 되면, 사용자가 패스워드(PW)를 변경하지 않더라도 단말기와 인증서버 양 측에서 유도되는 비밀키(K, OPc)의 값은 매번 인증 시마다 랜덤 값(RAND) 값에 따라 다르게 되므로 보안성을 더욱 강화할 수 있다.In this case, when the private key (K, OPc) is derived using the random value (RAND) as in S430, the secret key (K, OPc) derived from both the terminal and the authentication server even if the user does not change the password (PW). ) Value is different depending on the random value (RAND) value every time authentication can further enhance the security.

참고로 본 발명은 PC 단말기에서의 IMS AKA 인증을 실시예로 설명하였지만 모든 단말기에서의 비밀키 방식 인증에 적용이 가능하다. 즉, 사전에 정해진 고정 길이의 비밀키를 단말에 저장시키는 대신, 사용자로부터 인증 시에 입력되는 임의의 길이의 패스워드로부터 비밀키 방식의 인증방식에 사용되는 고정 길이의 비밀키를 실시간으로 유도하여 사용함으로써, 기존의 비밀키 인증 방식을 그대로 수행할 수 있는 방법을 제시한다. 단, 이때 사용자 패스워드로부터 비밀키를 유도하는 방법은 단말기와 인증서버가 서로 사전에 약속하여 동일한 방법을 사용하여야 한다.For reference, the present invention has been described as an embodiment of IMS AKA authentication in a PC terminal, but can be applied to secret key type authentication in all terminals. In other words, instead of storing the predetermined fixed length private key in the terminal, the fixed length secret key used in the secret key authentication method is derived from a password of an arbitrary length input at the time of authentication from the user and used in real time. By doing so, we propose a method that can perform the existing secret key authentication method as it is. However, in this case, the method of deriving the secret key from the user password should use the same method with the terminal and the authentication server promising each other in advance.

이상, 본 발명은 비록 한정된 구성과 도면에 의해 설명되었으나, 본 발명의 기술적 사상은 이러한 것에 한정되지 않으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해, 본 발명의 기술적 사상과 하기 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형 실시가 가능할 것이다. As mentioned above, although the present invention has been described by means of a limited configuration and drawings, the technical idea of the present invention is not limited to the above, and by those skilled in the art to which the present invention pertains, Various modifications and variations may be made without departing from the scope of the appended claims.

도 1은 일반적인 AKA 인증 과정을 나타내는 타이밍도.1 is a timing diagram showing a general AKA authentication process.

도 2는 본 발명에 따른 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법의 타이밍도.2 is a timing diagram of a secret key based authentication method derived from a user password according to the present invention;

도 3은 본 발명에 따른 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법에서 인증서버 및 단말기가 사용자 패스워드(PW)로부터 비밀키(K, OPc)를 유도하는 과정에서 랜덤 값 (RAND)을 활용하는 모습을 나타내는 타이밍도.3 illustrates a method of using a random value (RAND) in a process of deriving a secret key (K, OPc) from a user password (PW) by an authentication server and a terminal in a secret key-based authentication method derived from a user password according to the present invention. Timing diagram showing appearance.

Claims (5)

단말기와 인증서버 간의 비밀키 기반의 인증 방법으로서, As a secret key based authentication method between the terminal and the authentication server, a) 복수의 사용자별 아이디 및 소정의 길이의 패스워드가 함께 구축된 인증서버에 단말기가 접속되는 단계; a) connecting the terminal to an authentication server in which a plurality of user IDs and passwords of a predetermined length are established; b) 상기 단말기에 인증용 아이디(ID) 및 패스워드(PW)가 입력되는 단계;b) inputting an ID for authentication and a password for the terminal; c) 상기 단말기는 입력된 패스워드로부터 비밀키를 유도하고, 입력된 사용자 아이디를 인증서버로 전송하는 단계; c) the terminal deriving a secret key from the input password and transmitting the input user ID to the authentication server; d) 상기 인증서버는 상기 단말기로부터 전송된 사용자 입력 아이디에 해당하는 패스워드로부터 비밀키를 유도하는 단계; 및 d) deriving a secret key from a password corresponding to a user input ID transmitted from the terminal; And e) 상기 단말기 및 인증서버가 각각 유도한 비밀키를 이용하여 상호 비밀키 기반의 인증을 수행하는 단계를 포함한 것을 특징으로 하는 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법. e) a secret key-based authentication method derived from a user password, comprising performing mutual secret key-based authentication using a secret key derived by each of the terminal and the authentication server. 제1항에 있어서, The method of claim 1, 상기 e)단계의 비밀키 기반의 인증 방법이 AKA(Authentication and Key Agreement) 방식인 경우에 상기 e)단계의 상호 비밀키 기반의 인증 방법은When the secret key based authentication method of step e) is an AKA (Authentication and Key Agreement) method, the mutual secret key based authentication method of step e) 1) 상기 인증서버는 소정의 길이의 랜덤 값(RAND)을 생성하고, 상기 d)단계에서 유도된 비밀키(K, OPc)를 이용하여 인증토큰(AUTN)을 생성하여, 상기 랜덤 값(RAND) 및 인증토큰(AUTN)을 상기 단말기로 전송하는 단계; 1) The authentication server generates a random value RAND of a predetermined length, generates an authentication token AUTN using the secret keys K and OPc derived in step d), and generates the random value RAND. ) And transmitting an authentication token (AUTN) to the terminal; 2) 상기 단말기는 c)단계에서 유도된 비밀키(K, OPc)와, 상기 인증서버로부터 전달받은 랜덤 값(RAND)을 이용하여 상기 인증서버로부터 전달된 상기 인증토큰(AUTN)의 적법성을 검증하는 단계; 2) The terminal verifies the legality of the authentication token (AUTN) delivered from the authentication server using the secret key (K, OPc) derived in step c) and the random value (RAND) received from the authentication server. Making; 3) 상기 단말기는 인증토큰(AUTN)의 검증에 성공하면, 상기 단말기가 유도한 비밀키(K, OPc)를 이용하여 응답 값(RES)을 생성하여 인증서버로 전송하는 단계; 및 3) if the terminal succeeds in verifying the authentication token (AUTN), generating a response value (RES) using a secret key (K, OPc) derived by the terminal and transmitting it to the authentication server; And 4) 상기 인증서버는 d)단계에서 유도한 비밀키(K, OPc)를 이용하여 상기 3)단계에서 상기 단말기가 비밀키(K, OPc)로부터 상기 응답 값(RES)을 생성한 방법과 동일하게 응답 값(RES)을 생성하여, 상기 인증서버에 의해 생성된 응답 값(RES)이 단말기로부터 전달받은 응답 값(RES)과 서로 일치하는 지 검증하고, 일치하면 인증성공신호를 단말기로 전송하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법. 4) The authentication server is the same as the method in which the terminal generates the response value (RES) from the secret keys (K, OPc) in step 3) using the secret keys (K, OPc) derived in step d). Generating a response value RES, verifying whether the response value RES generated by the authentication server matches the response value RES received from the terminal, and transmitting the authentication success signal to the terminal. Secret key-based authentication method derived from the user password, characterized in that it comprises a step. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 인증서버 및 단말기가 임의의 길이의 패스워드로부터 고정된 길이의 비밀키(K, OPc)를 각각 유도하기 위해 아래의 [수학식 1]을 이용한 것을 특징으로 하는 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법.Based on a secret key derived from a user password, the authentication server and the terminal use Equation 1 below to derive a fixed length secret key (K, OPc) from a password of an arbitrary length. Authentication method. [수학식 1][Equation 1] K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128) OPc = Truncate( SHA-1(PW || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || "This is for OPc"), 128) - Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수(Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left (MSB) - SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result - A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 단말기 및 인증서버가 각각 임의의 길이의 패스워드로부터 고정된 길이의 비밀키(K, OPc)를 유도하기 위해 아래의 [수학식 2]를 이용하여 K와 OP 값을 먼저 유도한 후 K와 OP 값으로부터 OPc 값을 유도하는 것을 특징으로 하는 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법.In order for the terminal and the authentication server to derive a fixed length secret key (K, OPc) from a password of an arbitrary length, respectively, the K and OP values are first derived using Equation 2 below. Secret key-based authentication method derived from the user password, characterized in that to derive the OPc value from the value. [수학식 2][Equation 2] K = Truncate( SHA-1(PW || "This is for K"), 128)K = Truncate (SHA-1 (PW || "This is for K"), 128) OP = Truncate( SHA-1(PW || "This is for OP"), 128)OP = Truncate (SHA-1 (PW || "This is for OP"), 128) OPc = AES(K, OP) ⓧ OPcOPc = AES (K, OP) ⓧ OPc - Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수 (Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left side (MSB). - SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result - A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data - AES(): Advanced Encryption Standard 함수AES (): Advanced Encryption Standard Function - ⓧ : Exclusive OR 함수Ⓧ: Exclusive OR function 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 인증서버 및 단말기가 임의의 길이의 패스워드로부터 각각 비밀키(K, OPc)를 유도할 때에, 랜덤 값(RAND)을 이용하여 인증 시마다 매번 다르게 유도하기 위해 아래의 [수학식 3]을 이용한 것을 특징으로 하는 사용자 패스워드로부터 유도된 비밀키 기반의 인증 방법.When the authentication server and the terminal derive the secret keys K and OPc from passwords of arbitrary length, respectively, the following Equation 3 is used to derive different values every time authentication using a random value RAND. A secret key based authentication method derived from a user password. [수학식 3][Equation 3] K = Truncate( SHA-1(PW || RAND || "This is for K"), 128)K = Truncate (SHA-1 (PW || RAND || "This is for K"), 128) OPc = Truncate( SHA-1(PW || RAND || "This is for OPc"), 128)OPc = Truncate (SHA-1 (PW || RAND || "This is for OPc"), 128) - Truncate(A, n) : 데이터 A를 왼쪽(MSB)에서부터 n 비트 길이로 잘라내는 함수 (Truncation function)Truncate (A, n): A truncation function that truncates data A to n bits long from the left side (MSB). - SHA-1 : 임의의 길이 데이터를 입력으로 받아 160비트의 결과물을 만들어내는 해쉬 함수SHA-1: Hash function that takes arbitrary length data as input and produces a 160-bit result - A || B: A와 B 데이터를 연접하는 함수 (Concatenation function)-A || B: Concatenation function to concatenate A and B data
KR1020070105106A 2007-10-18 2007-10-18 Authentication method using secret keys derived from user password KR20090039451A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070105106A KR20090039451A (en) 2007-10-18 2007-10-18 Authentication method using secret keys derived from user password

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070105106A KR20090039451A (en) 2007-10-18 2007-10-18 Authentication method using secret keys derived from user password

Publications (1)

Publication Number Publication Date
KR20090039451A true KR20090039451A (en) 2009-04-22

Family

ID=40763333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070105106A KR20090039451A (en) 2007-10-18 2007-10-18 Authentication method using secret keys derived from user password

Country Status (1)

Country Link
KR (1) KR20090039451A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013005929A2 (en) * 2011-07-06 2013-01-10 삼성에스디에스(주) Method and apparatus for authenticating a recipient of a security token
WO2014058166A1 (en) * 2012-10-09 2014-04-17 삼성에스디에스 주식회사 Data transmitting apparatus and method, and recording medium having program recorded thereon for executing said method on computer
WO2020204505A1 (en) * 2019-03-29 2020-10-08 삼성전자 주식회사 Method for edge computing service and electronic device therefor
WO2023080355A1 (en) * 2021-11-02 2023-05-11 엘지전자 주식회사 Method and device for authenticating ue in wireless communication system
US11716246B2 (en) 2019-03-29 2023-08-01 Samsung Electronics Co., Ltd Device and method for providing edge computing service in wireless communication system
KR102658004B1 (en) * 2023-04-25 2024-04-15 손성근 Devices and methods of Data encryption and decryption

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013005929A2 (en) * 2011-07-06 2013-01-10 삼성에스디에스(주) Method and apparatus for authenticating a recipient of a security token
WO2013005929A3 (en) * 2011-07-06 2013-03-14 삼성에스디에스(주) Method and apparatus for authenticating a recipient of a security token
KR101350984B1 (en) * 2011-07-06 2014-01-13 삼성에스디에스 주식회사 Method and apparatus of authenticating secure token
WO2014058166A1 (en) * 2012-10-09 2014-04-17 삼성에스디에스 주식회사 Data transmitting apparatus and method, and recording medium having program recorded thereon for executing said method on computer
US9137223B2 (en) 2012-10-09 2015-09-15 Samsung Sds Co., Ltd. Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
WO2020204505A1 (en) * 2019-03-29 2020-10-08 삼성전자 주식회사 Method for edge computing service and electronic device therefor
US11716246B2 (en) 2019-03-29 2023-08-01 Samsung Electronics Co., Ltd Device and method for providing edge computing service in wireless communication system
WO2023080355A1 (en) * 2021-11-02 2023-05-11 엘지전자 주식회사 Method and device for authenticating ue in wireless communication system
KR102658004B1 (en) * 2023-04-25 2024-04-15 손성근 Devices and methods of Data encryption and decryption

Similar Documents

Publication Publication Date Title
US10284555B2 (en) User equipment credential system
US10411884B2 (en) Secure bootstrapping architecture method based on password-based digest authentication
US10038692B2 (en) Characteristics of security associations
US20100011220A1 (en) Authentication and key agreement method, authentication method, system and device
DK1348280T3 (en) Approval data communications
US8522025B2 (en) Authenticating an application
US8265593B2 (en) Method and system of communication using extended sequence number
US10902110B2 (en) Use of AKA methods and procedures for authentication of subscribers without access to SIM credentials
CN101194529B (en) Method for agreeing on a security key between at least one first and one second communications station for securing a communications link
KR101309426B1 (en) Method and system for recursive authentication in a mobile network
CN110049492A (en) The unified certification frame of heterogeneous network
KR20090039451A (en) Authentication method using secret keys derived from user password
US10595203B2 (en) Enhanced establishment of IMS session with secure media
US20150350899A1 (en) AUTHENTICATION METHOD OF VoLTE
CN1777102B (en) Device and method for software terminal accessing IP multimedia sub-system
WO2011035579A1 (en) Authentication method, system and terminal for wireless local area network authentication and privacy infrastructure (wapi) terminal accessing ip multimedia subsystem (ims) network
Dostalek et al. Strong password authentication with AKA authentication mechanism
KR102024376B1 (en) Method of bootstrapping of internet of thing device
WO2007124657A1 (en) A method, system and device for authenticating
WO2020037958A1 (en) Gba-based client registration and key sharing method, device, and system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application