KR101134059B1 - Authentication method, system, server, and client - Google Patents

Authentication method, system, server, and client Download PDF

Info

Publication number
KR101134059B1
KR101134059B1 KR1020107011964A KR20107011964A KR101134059B1 KR 101134059 B1 KR101134059 B1 KR 101134059B1 KR 1020107011964 A KR1020107011964 A KR 1020107011964A KR 20107011964 A KR20107011964 A KR 20107011964A KR 101134059 B1 KR101134059 B1 KR 101134059B1
Authority
KR
South Korea
Prior art keywords
trigger message
random number
server
client
authentication
Prior art date
Application number
KR1020107011964A
Other languages
Korean (ko)
Other versions
KR20100071115A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20100071115A publication Critical patent/KR20100071115A/en
Application granted granted Critical
Publication of KR101134059B1 publication Critical patent/KR101134059B1/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/3271Cryptographic 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 challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

인증 방법을 개시한다. 본 방법은 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계, 서버가 트리거 메시지를 클라이언트에 발송하는 단계, 클라이언트가 트리거 메시지 난수를 추출하는 단계, 클라이언트가 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 다이제스트를 생성하고, 트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 인증하는 단계, 클라이언트가, 인증이 성공한 후에, 세션 ID를 포함하는 세션 요청을 트리거 메시지에 의해 지시된 서버에 발송하는 단계를 포함한다. 이에 대응하는 시스템, 서버 및 클라이언트를 제공한다. 본 발명에 의하면, DS 또는 DM 프로토콜에 기초하여 클라이언트와 서버를 통해 더 안전한 인증 처리가 가능하다. The authentication method is disclosed. The method uses the server to generate a trigger message using the trigger message random number, the server sends the trigger message to the client, the client extracts the trigger message random number, and after the client determines that the trigger message random number is valid. Generating a digest using the trigger message random number, and authenticating the trigger message generated using the trigger message random number, after the client has successfully authenticated, sends a session request including the session ID to the server indicated by the trigger message. Shipping to. It provides a corresponding system, server and client. According to the present invention, more secure authentication processing is possible through the client and the server based on the DS or DM protocol.

Description

인증 방법, 시스템, 서버 및 클라이언트{AUTHENTICATION METHOD, SYSTEM, SERVER, AND CLIENT}Authentication method, system, server, and client {AUTHENTICATION METHOD, SYSTEM, SERVER, AND CLIENT}

본 발명은 통신 기술 분야에 관한 것으로서, 구체적으로는 데이터 동기(DS: Data Synchronization) 프로토콜과 장치 관리(DM: Device Management) 프로토콜에 기초한 인증 방법, 시스템, 서버 및 클라이언트에 관한 것이다. TECHNICAL FIELD The present invention relates to the field of communications technologies, and in particular, to an authentication method, a system, a server, and a client based on a Data Synchronization (DS) protocol and a Device Management (DM) protocol.

삭제delete

삭제delete

SyncML(Synchronization Markup Language: 동기 표기 언어)은 다수의 플랫폼과 네트워크 사이에서 개인 정보(personal information)와 기업내 통합 데이터(intra-enterprise data)를 동기화시키기 위해 개발된 프로토콜이다. SyncML 프로토콜은 참여 엔티티들 사이의 일련의 조작을 정의하고, 이러한 조작을 행하기 위한 일련의 메시지 포맷을 정의한다. 이러한 SyncML에 기초하여, OMA(Open Mobile Alliance)는 DC 프로토콜과 DM 프로토콜을 개발하고 있다. SyncML (Synchronization Markup Language) is a protocol developed to synchronize personal information and intra-enterprise data between multiple platforms and networks. The SyncML protocol defines a set of operations between participating entities and a set of message formats for performing these operations. Based on this SyncML, the Open Mobile Alliance (OMA) is developing the DC protocol and DM protocol.

DS 프로토콜은 다수의 플랫폼 및 네트워크 사이에서 개인 정보와 기업내 통합 데이터를 동기화할 수 있다. DS 프로토콜은 일반적으로 모바일 장치 또는 애플리케이션과 네트워크 사이에서의 데이터 동기화, 또는 2개의 개인용 컴퓨터(PC) 사이에서의 데이터 동기화에 적용된다. The DS protocol can synchronize personal information and corporate integrated data across multiple platforms and networks. The DS protocol generally applies to data synchronization between a mobile device or application and a network, or data synchronization between two personal computers (PCs).

DM 프로토콜은 네트워크로부터 클라이언트(client)로 관리 지시(management instruction) 데이터를 다운로드하고, 클라이언트로 하여금 자신의 소프트웨어 및 하드웨어를 자동으로 업그레이드, 구성(configure) 및 진단(diagnose)하는 관리 지시를 실행하도록 하는, 비용 절감이 가능한 원격 관리 솔루션이다. DM 프로토콜은 조작자가 필요로 하는 서비스 정보와 클라이언트의 기능에 관한 정보를 클라이언트로부터 서버로 전달해서, 그외 다른 서비스의 조작을 지원한다. The DM protocol downloads management instruction data from the network to the client and allows the client to execute management instructions that automatically upgrade, configure, and diagnose its software and hardware. It is a remote management solution that can reduce costs. The DM protocol transfers service information required by an operator and information about the client's functions from the client to the server, and supports operation of other services.

유사한 보안 인증 메커니즘이 DS 프로토콜과 DM 프로토콜에 적용되어, 서버와 클라이언트를 효과적으로 인증할 수 있다. 이에 대해서 도 1에 나타낸다. Similar security authentication mechanisms can be applied to the DS and DM protocols to effectively authenticate servers and clients. This is shown in FIG.

단계 101: 서버는 세션(session)을 트리거하기 위해 클라이언트에게 트리거 메시지를 발송한다. Step 101: The server sends a trigger message to the client to trigger a session.

이 트리거 메시지에는 서버 난수(s_nonce)를 사용하여 만든 다이제스트(Digest)와 트리거 정보(TriggerInfo)가 포함된다. 트리거 메시지는 단문 메시지나 그외 Push 메시지에 포함될 수도 있다. This trigger message contains the digest created using the server random number (s_nonce) and the trigger information (TriggerInfo). The trigger message may be included in a short message or other push message.

s_nonce는 클라이언트에 의해 만들어지고 서버에 사용할 수 있는 난수(nonce)이다. s_nonce is a random number created by the client and available to the server.

단계 102: 클라이언트는 세션 요청을 서버에 발송한다. Step 102: The client sends a session request to the server.

클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 다이제스트(Digest) 정보를 생성하고, 트리거 메시지를 인증(authenticate)한다. 인증이 성공하면, 클라이언트는 서버에게 세션 요청을 발송해서 세션을 개시하도록 한다. After receiving the trigger message, the client uses the stored s_nonce to generate digest information and to authenticate the trigger message. If authentication succeeds, the client sends a session request to the server to initiate the session.

세션 요청(session request)에는, 세션 ID(SessionID)와 클라이언트의 인증 정보(Authenticate)가 포함된다. 인증 정보는 클라이언트 난수(c_nonce)를 사용해서 만든 다이제스트(Digest)이다. The session request includes a session ID and a client's authentication information. The authentication information is a digest made using the client random number (c_nonce).

c_nonce는 서버가 만들고 클라이언트에 사용할 수 있다. c_nonce is created by the server and available to clients.

단계 102에서, 클라이언트와 서버 사이에 세션 접속이 설정된다. In step 102, a session connection is established between a client and a server.

단계 103: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다. Step 103: The server returns a response containing the authentication result and the authentication request.

서버는, 클라이언트가 보낸 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 서버 인증 요청을 포함하는 응답을 회신한다. The server authenticates the client according to the authentication information sent by the client and returns a response including the authentication result and the server authentication request.

더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 서버의 인증 정보(즉, s_nonce를 사용하여 만든 Digest)가 포함된다. More specifically, this response includes the SessionID and the server's authentication information (ie, a Digest made using s_nonce) as a result of the server authenticating the client.

단계 104: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 104: The client returns a message containing the authentication result to the server.

클라이언트는, 서버가 보낸 인증 정보에 따라, 서버를 인증하고, 인증 결과를 포함하는 메시지를 서버에 회신한다. The client authenticates the server according to the authentication information sent by the server, and returns a message containing the authentication result to the server.

더 구체적으로 말하면, 이 메시지에는 클라이언트가 서버를 인증한 결과 및 그외 관련 정보가 포함된다. More specifically, this message includes the result of the client authenticating the server and other relevant information.

서버가 클라이언트에 대한 인증에 실패하거나, 클라이언트가 서버에 대한 인증이 실패하면, 예를 들어 패스워드가 정확하지 않거나 nonce 값이 정확하지 않은 경우, 서버 또는 클라이언트는 상대방에게 인증을 다시 행하라는 질의(challenge) 요청을 직접 발송할 수 있다. If the server fails to authenticate to the client, or if the client fails to authenticate to the server, for example if the password is incorrect or the nonce value is incorrect, the server or client will ask the other party to re-authenticate. ) You can send the request directly.

트리거 메시지에 사용된 s_nonce가 정확하지 않다는 것을 서버가 알고 있다면, 예를 들어 서버가 트리거 메시지를 반복해서 발송한 후에 클라이언트로부터 정상적인 응답을 받지 못한 경우, 서버는 s_nonce가 정확하지 않다고 판단해서, 디폴트 난수 값 "0x00000000"을 사용해서 트리거 메시지의 다이제스트(Digest)를 생성한다. s_nonce를 사용해서 생성한 Digest에 따라 트리거의 인증에 실패한 후에, 클라이언트는 디폴트 난수 값(default nonce)을 사용해서 Digest를 생성한 다음, 트리거 메시지를 다시 인증한다. 인증이 성공하면, 디폴트 난수 값이 서버 및 클라이언트를 인증하는 데에 사용되고, s_nonce 및 c_nonce를 갱신한다. 갱신 과정을 도 2에 나타낸다. If the server knows that the s_nonce used in the trigger message is incorrect, for example, if the server does not receive a normal response from the client after repeatedly sending a trigger message, the server determines that s_nonce is not correct, and thus the default random number. Create a digest of the trigger message with the value "0x00000000". After failing to authenticate the trigger according to the Digest created using s_nonce, the client generates a Digest using the default nonce and then authenticates the trigger message again. If authentication succeeds, a default random value is used to authenticate the server and client and update s_nonce and c_nonce. The update process is shown in FIG.

단계 201: 서버는 세션을 촉발하도록 클라이언트에게 트리거 메시지를 발송한다. Step 201: The server sends a trigger message to the client to trigger the session.

서버는, 이전의 s_nonce가 정확하지 않다고 판정한 후에, 디폴트 난수 값을 사용해서, 트리거 메시지를 생성한 후, 클라이언트에게 발송한다. 트리거 메시지에는 디폴트 난수 값을 사용해서 생성한 다이제스트(Digest)와 TriggerInfo가 포함된다. After the server determines that the previous s_nonce is incorrect, it generates a trigger message and sends it to the client using the default random value. The trigger message contains the digest and TriggerInfo created using the default random value.

단계 202: 클라이언트는 트리거 메시지가 실패했다고 인증하고, 디폴트 난수 값을 사용해서 재인증을 행한다. Step 202: The client authenticates that the trigger message has failed, and reauthenticates using the default random value.

클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 트리거 메시지를 인증한다. 소정의 이유 때문에 인증이 실패하면, 클라이언트는 디폴트 난수 값을 사용해서 트리거 메시지를 재인증한다. After receiving the trigger message, the client authenticates the trigger message using the stored s_nonce. If authentication fails for some reason, the client reauthenticates the trigger message using the default random value.

인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce가 정확하지 않았다는 것을 나타내고, 클라이언트는 세션 요청을 서버에 발송한다. If authentication succeeds, it indicates that the s_nonce previously used by the server was incorrect, and the client sends a session request to the server.

단계 203: 클라이언트는 세션 요청을 서버에 발송한다. Step 203: The client sends a session request to the server.

클라이언트는, 디폴트 난수 값을 사용해서 인증이 성공한 후에, 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. The client uses the default random value to send a session request to the server to initiate the session after authentication succeeds.

세션 요청에는 세션 ID(SessionID) 및 디폴트 난수 값을 사용해서 생성된 다이제스트(Digest)가 포함된다. The session request contains a digest created using the SessionID and the default random value.

단계 204: 서버는 인증 결과, 인증 요청 및 c_nonce를 갱신하기 위한 명령을 포함한 응답을 회신한다. Step 204: The server returns a response including the authentication result, the authentication request, and a command to update c_nonce.

서버는 디폴트 난수 값을 사용해서 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다. The server authenticates the client using the default random value and returns a response back to the client containing the authentication result and the authentication request.

더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, c_nonce를 갱신하기 위한 명령, 및 디폴트 난수 값을 사용해서 생성한 다이제스트(Digest)가 포함된다. More specifically, this response includes the client's authentication of the client, a command to update c_nonce, and a digest generated using the default random value.

단계 205: 클라이언트는 인증 결과와 c_nonce를 갱신하기 위한 명령을 포함하는 메시지를 서버에 회신한다. Step 205: The client returns a message to the server containing the authentication result and a command to update c_nonce.

클라이언트는 디폴트 난수 값을 사용해서 서버를 인증한다. 클라이언트는, 인증이 성공하면, c_nonce를 갱신한 후에, 인증 결과와 c_nonce를 갱신하기 위한 명령을 포함하는 메시지를 서버에 회신한다. The client authenticates the server using the default random value. If authentication succeeds, after updating c_nonce, the client returns a message to the server containing the authentication result and a command for updating c_nonce.

단계 206: 서버는 s_nonce의 갱신 결과를 클라이언트에 회신한다. Step 206: The server returns an update result of s_nonce to the client.

본 발명의 개발 과정에서, 본 발명자는 종래 기술에 다음과 같은 문제점이 있는 것을 알게 되었다. In the course of the development of the present invention, the inventors have found the following problems in the prior art.

디폴트 난수 값은 s_nonce가 정확하지 않은 경우에 인증을 행하기 위해 사용된다. 디폴트 난수 값은 공개된 고정불변의 값이며, 악의를 가진 서버가 디폴트 난수 값을 사용하는 메시지를 가로채서, 해당 메시지를 반복해서 발송함으로써 서버 또는 클라이언트를 공격할 수 있다. The default random value is used to authenticate if s_nonce is incorrect. The default random value is a fixed, constant value that is publicly available. A malicious server can attack a server or client by intercepting a message that uses the default random value and sending the message repeatedly.

종래에는, 하나의 세션에 2개의 난수 값: s_nonce 및 c_nonce가 사용되고 있는데, 이들은 각각 서버 및 클라이언트에 의해 생성 및 갱신되기 때문에, 클라이언트와 서버의 관리 부담이 크다. Conventionally, two random number values: s_nonce and c_nonce are used in one session, which are generated and updated by the server and the client, respectively, and thus the burden of managing the client and the server is high.

본 발명의 실시예는 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜에 기초하여 클라이언트와 서버 간에 수행되는 인증 처리를 최적하기 위한 DS 프로토콜 또는 DM 프로토콜에 기초한 인증 방법, 시스템, 서버, 및 클라이언트를 제공한다. An embodiment of the present invention provides an authentication method based on a DS protocol or a DM protocol for optimizing authentication processing performed between a client and a server based on a data synchronization (DS) protocol or a device management (DM) protocol. Provides a system, server, and client.

본 발명의 실시예에 따른, DS 또는 DM 프로토콜에 기초한 인증 방법은, According to an embodiment of the present invention, the authentication method based on the DS or DM protocol,

서버가 트리거 메시지 난수(Trigger message nonce)를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 트리거 메시지 난수를 추출할 수 있도록 하는 단계;The server generating a trigger message using a trigger message nonce and sending the generated trigger message to the client, so that the client can extract the trigger message random number;

트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 다이제스트를 생성하고, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하는 단계; 및After determining that the trigger message random number is valid, generating a digest using the trigger message random number, and authenticating the generated trigger message using the trigger message random number; And

인증이 성공한 후에, 트리거 메시지에 의해 지시된 서버에게 세션 ID를 포함하는 세션 요청을 발송하는 단계를 포함한다. After the authentication succeeds, sending a session request including the session ID to the server indicated by the trigger message.

본 발명의 실시예에 따른, DS 또는 DM 프로토콜에 기초한 다른 인증 방법은, According to an embodiment of the present invention, another authentication method based on a DS or DM protocol is provided.

클라이언트가 서버 난수에 대하여 갱신이 필요하다고 판정하는 단계;Determining, by the client, that an update is needed for the server random number;

새로운 서버 난수를 생성하고, 생성한 새로운 서버 난수를 세션 요청에 추가하며, 세션 요청에 서버에 발송함으로써, 서버로 하여금 새로운 서버 난수를 포함하는 세션 요청을 수신한 후에, 새로운 서버 난수를 사용해서, 저장된 서버 난수를 갱신하도록 하는 단계를 포함한다. By generating a new server random number, adding the new server random number generated to the session request, and sending it to the server in the session request, after the server receives the session request containing the new server random number, using the new server random number, And updating the stored server random number.

삭제delete

삭제delete

삭제delete

삭제delete

본 발명의 실시예에 따라, DS 및 DM 프로토콜에 기초한 다른 인증 방법은, According to an embodiment of the present invention, another authentication method based on the DS and DM protocols is

클라이언트가 디폴트 난수를 사용해서 생성된 세션 요청을 서버에 발송하는 단계;The client sending a session request generated to the server using the default random number;

서버가 세션 요청을 수신한 후에 세션 요청을 인증하기 위해 디폴트 난수를 사용할 필요가 있다고 판정되면, 디폴트 난수를 사용해서 세션 요청을 인증하며, 세션 요청에 대한 인증이 성공한 후에, 클라이언트에게, 인증 결과, 디폴트 난수를 사용해서 생성된 인증 요청, 및 클라이언트 난수를 갱신하라는 명령을 포함하는 응답을 회신하는 단계;If the server determines that it is necessary to use the default random number to authenticate the session request after receiving the session request, the server uses the default random number to authenticate the session request, and after successful authentication of the session request, to the client, the authentication result, Returning a response including an authentication request generated using the default random number and a command to update the client random number;

클라이언트가 상기 응답을 수신하고, 상기 응답을 인증하기 위해서 디폴트 난수를 사용할 필요가 있다고 판정되면, 디폴트 난수를 사용해서 상기 응답을 인증하고, 클라이언트가 상기 응답에 대한 인증이 성공한 후에, 인증 결과 및 서버 난수를 갱신하라는 명령을 포함하는 응답을 서버에게 회신하는 단계를 포함한다. If the client receives the response and determines that it needs to use a default random number to authenticate the response, it authenticates the response using the default random number, and after the client succeeds in authenticating the response, the authentication result and the server Returning a response to the server that includes a command to update the random number.

본 발명의 실시예에 따라, DS 및 DM 프로토콜에 기초한 다른 인증 방법은, According to an embodiment of the present invention, another authentication method based on the DS and DM protocols is

클라이언트가 서버에 의해 발송되고, 디폴트 난수, 세션 ID, 또는 트리거 메시지 ID를 사용해서 생성되는 트리거 메시지를 수신하는 단계;Receiving a trigger message sent by the client by the server and generated using a default random number, session ID, or trigger message ID;

클라이언트가, 트리거 메시지를 수신한 후에, 서버 난수를 사용해서 트리거 메시지를 인증하고, 클라이언트가, 트리거 메시지에 대한 인증이 실패한 경우, 디폴트 난수, 세션 ID, 또는 트리거 메시지 ID를 사용해서, 트리거 메시지를 인증하며, 클라이언트가, 인증이 성공한 후에, 클라이언트 난수의 사용에 의해 세션 요청을 생성하고, 클라이언트가, 세션 요청을 서버에 발송함으로써, 서버로 하여금 클라이언트 난수를 사용해서 클라이언트를 인증하도록 하는 단계를 포함한다. After the client receives the trigger message, the server uses the server random number to authenticate the trigger message, and if the client fails to authenticate the trigger message, the client uses the default random number, session ID, or trigger message ID to generate the trigger message. Authenticating, the client generating a session request by using the client random number after authentication succeeds, and causing the client to authenticate the client using the client random number by sending the session request to the server. do.

삭제delete

삭제delete

삭제delete

본 발명의 실시예에 따른 서버는, Server according to an embodiment of the present invention,

트리거 메시지 난수를 사용해서 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 생성하도록 된 제1 생성 유닛; 및A first generating unit configured to generate a trigger message that is compatible with a Data Synchronization (DS) protocol or a Device Management (DM) protocol using a trigger message random number; And

트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 클라이언트에게 발송함으로써, 클라이언트로 하여금 트리거 메시지를 추출하도록 하고, 트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 트리거 메시지에 대한 인증이 성공한 후에, 트리거 메시지에 의해 지시되는 서버에게 세션 요청을 발송하도록 된 발송 유닛을 포함한다. By sending a trigger message generated using a trigger message random number to the client, causing the client to extract the trigger message, and after determining that the trigger message random number is valid, authenticating the generated trigger message using the trigger message random number, And after the authentication for the trigger message succeeds, a sending unit configured to send a session request to the server indicated by the trigger message.

본 발명의 실시예에 따른 클라이언트는, A client according to an embodiment of the present invention,

트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및A receiving unit, generated by the server using a trigger message random number, adapted to receive a trigger message that is compatible with a Data Synchronization (DS) protocol or a Device Management (DM) protocol; And

트리거 메시지 난수를 추출하고, 트리거 메시지 안수를 사용해서 다이제스트를 생성해서, 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 인증이 성공한 후에, 트리거 메시지에 의해 지시되는 서버에 세션 요청을 발송하도록 된 제1 인증 유닛을 포함한다. Extract the trigger message random number, generate a digest using the trigger message ordinal number, and after the trigger message random number is determined to be valid, use the trigger message random number to authenticate the generated trigger message, and after authentication is successful, And a first authentication unit adapted to send the session request to the server indicated by the.

삭제delete

삭제delete

삭제delete

본 발명의 실시예에 따른 다른 클라이언트는, Another client according to an embodiment of the present invention,

디폴트 트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및A receiving unit, generated by the server using a default trigger message random number, adapted to receive a trigger message that is compatible with a Data Synchronization (DS) protocol or a Device Management (DM) protocol; And

트리거 메시지를 수신한 후에, 서버 난수를 사용해서 트리거 메시지를 인증하고, 인증이 실패하면, 디폴트 난수를 사용해서 트리거 메시지를 재인증하고, 인증이 성공하면, 클라이언트 난수를 사용해서 세션 요청을 생성하며, 생성한 세션 요청을 서버에 발송해서, 서버로 하여금 클라이언트 난수를 사용해서 클라이언트를 인증하도록 하는 생성 유닛을 포함한다. After receiving the trigger message, the server random number is used to authenticate the trigger message, if authentication fails, the default random number is used to reauthenticate the trigger message, and if authentication is successful, the client random number is used to generate the session request. And a generating unit for sending the generated session request to the server, which causes the server to authenticate the client using the client random number.

이상의 기술적 해결 방안은 시스템의 안전성을 효과적으로 향상시킨다. The above technical solutions effectively improve the safety of the system.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

이러한 본 발명의 기술적 해결 방안에 의하면, 서버와 클라이언트는 종래의 s_nonce 및 c_nonce 대신에, 세션 프로세스에서 난수 값(nonce)을 공유해서, 클라이언트와 서버 사이에서의 인증을 수행함으로써, 시스템의 부담을 효과적으로 경감시킬 수 있다. According to the technical solution of the present invention, instead of the conventional s_nonce and c_nonce, the server and the client share a random number in the session process to perform authentication between the client and the server, thereby effectively burdening the system. I can alleviate it.

도 1은 종래의 인증 방법을 나타내는 플로차트이다.
도 2는 종래의 인증을 위해 디폴트 난수 값을 사용하고 s_nonce 및 c_nonce를 갱신하는 것을 나타내는 플로차트이다.
도 3은 본 발명의 제1 실시예에 따른 인증 방법의 플로차트이다.
도 4는 난수 값을 추가한 이후의 메시지 포맷의 구조를 나타낸다.
도 5는 본 발명의 제1 실시예에서, s_nonce가 정확하지 않은 경우의 인증 방법을 나타내는 플로차트이다.
도 6은 본 발명의 제2 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 7은 본 발명의 제4 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 8은 본 발명의 제5 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 9는 본 발명의 제6 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 10은 본 발명의 제7 실시예에 따라 신규의 s_nonce를 포함하는 상태 응답 메시지 포맷을 나타낸다.
도 11은 본 발명의 제8 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 12는 본 발명의 제9 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 13은 본 발명의 제10 실시예에 따른 인증 방법을 나타내는 플로차트이다.
도 14는 본 발명의 제1 실시예에 따른 인증 시스템의 구조를 나타낸다.
도 15는 본 발명의 제1 실시예에 따른 클라이언트의 구조를 나타낸다.
도 16은 본 발명의 제2 실시예에 따른 클라이언트의 구조를 나타낸다.
도 17은 본 발명의 제2 실시예에 따른 인증 시스템의 구조를 나타낸다.
1 is a flowchart showing a conventional authentication method.
2 is a flow chart illustrating using default random number values and updating s_nonce and c_nonce for conventional authentication.
3 is a flowchart of an authentication method according to the first embodiment of the present invention.
4 shows the structure of a message format after adding a random number value.
FIG. 5 is a flowchart showing an authentication method when s_nonce is incorrect in the first embodiment of the present invention.
6 is a flowchart showing an authentication method according to the second embodiment of the present invention.
7 is a flowchart showing an authentication method according to the fourth embodiment of the present invention.
8 is a flowchart showing an authentication method according to the fifth embodiment of the present invention.
9 is a flowchart showing an authentication method according to the sixth embodiment of the present invention.
10 shows a status response message format including a new s_nonce according to the seventh embodiment of the present invention.
11 is a flowchart showing an authentication method according to the eighth embodiment of the present invention.
12 is a flowchart showing an authentication method according to the ninth embodiment of the present invention.
13 is a flowchart showing an authentication method according to the tenth embodiment of the present invention.
14 shows a structure of an authentication system according to a first embodiment of the present invention.
15 shows a structure of a client according to the first embodiment of the present invention.
16 shows the structure of a client according to a second embodiment of the present invention.
17 shows the structure of an authentication system according to a second embodiment of the present invention.

본 발명의 실시예는, 데이터 동기화(DS: Data Synchronization) 프로토콜과 장치 관리(DM: Device Management) 프로토콜에 기초하여, 클라이언트와 서버 사이에서 수행되는 인증 처리 과정(authentication process)을 최적화할 수 있는 인증 방법, 시스템, 서버 및 클라이언트를 제공한다. Embodiments of the present invention provide an authentication that can optimize an authentication process performed between a client and a server based on a data synchronization protocol (DS) and a device management (DM) protocol. Provides methods, systems, servers, and clients.

앞서 언급한 세션에서 메시지 인증에 적용되는 보안 메커니즘은 애플리케이션 계층(application layer) 보안 메커니즘이다. The security mechanism applied to message authentication in the aforementioned session is an application layer security mechanism.

본 발명의 제1 실시예에 따른 인증 방법에서, 서버는 트리거 메시지에 대한 난수(nonce)를 생성하는데, 이 난수는 s_nonce(서버 난수) 및 c_nonce(클라이언트 난수)와는 다른 것이며, 트리거 메시지에 사용할 수 있는 것이다. 이 난수를 트리거 메시지 난수라고 칭할 수 있다. 서버는 이 난수를 사용해서 인증 정보를 생성하고, 새로운 난수와 인증 정보를 트리거 메시지와 함께 클라이언트에 발송한다. 클라이언트는 이 새로운 난수를 사용해서 트리거 메시지를 인증한다. In the authentication method according to the first embodiment of the present invention, the server generates a random number for the trigger message, which is different from s_nonce (server random number) and c_nonce (client random number), and can be used for the trigger message. It is. This random number may be referred to as a trigger message random number. The server uses this random number to generate authentication information and sends a new random number and authentication information to the client along with a trigger message. The client uses this new random number to authenticate the trigger message.

도 3에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다. As shown in FIG. 3, the authentication method according to the first embodiment of the present invention includes the following steps.

단계 301: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지는 트리거 메시지 난수(Trigger message nonce)를 포함한다. Step 301: The server sends a trigger message to the client. This message contains a trigger message nonce.

서버는, 트리거 메시지를 발송하기 전에, 트리거 메시지 난수를 생성하고, 생성한 난수를 사용해서, 다이제스트(Digest)를 생성한 후, Digest를 사용해서 트리거 메시지를 생성한다. Before sending a trigger message, the server generates a trigger message random number, uses the generated random number to generate a digest, and then uses Digest to generate a trigger message.

본 실시예에서, 트리거 메시지 난수를 이용하는 방법이 3가지 있다. In this embodiment, there are three ways to use the trigger message random number.

(1) 서버는, 트리거 메시지를 생성하면, 자신의 시스템 시간(Ts)을 트리거 메시지 난수로서 사용해서, Ts를 트리거 메시지에 추가한다. 이후, 클라이언트는, 트리거 메시지를 수신한 후, 시스템 시간(Ts)을 로컬 시간(Tc)와 비교해서 난수의 유효성을 판정할 수 있다. 난수에 대하여, 그 유효성은 일반적으로 난수의 적시성(freshness)이라고 부른다. 적시성이 있는 난수(fresh nonce)는 유효한 것이며, 적시성이 없는 난수는 유효하지 않은 것이다. (1) When the server generates a trigger message, it adds Ts to the trigger message by using its system time Ts as the trigger message random number. Thereafter, after receiving the trigger message, the client may compare the system time Ts with the local time Tc to determine the validity of the random number. For random numbers, its validity is generally called the freshness of random numbers. Fresh nonce is valid and random without it is invalid.

클라이언트는, 트리거 메시지를 수신한 후에, Ts와 Tc의 차이 값, 즉 |Ts-Tc|을 계산한다. |Ts-Tc|가 미리 정한 임계값 "Diff"보다 작다면, 트리거 메시지 난수는 유효한 것이다. |Ts-Tc|가 미리 정한 임계값 "Diff"보다 작지 않다면, 트리거 메시지 난수는 유효하지 않은 것이다. After receiving the trigger message, the client calculates the difference value of Ts and Tc, that is, | Ts-Tc |. If | Ts-Tc | is less than the predetermined threshold "Diff", the trigger message random number is valid. If | Ts-Tc | is not less than the predetermined threshold "Diff", the trigger message random number is invalid.

임계값 Diff는 통상적으로 클라이언트측에 설정되며, 네트어크 상태에 따라 결정되는 경험(empiric) 값이 될 수 있다. 모바일 네트워크 자체는 안정적이지 않기 때문에, 트리거 메시지에 전송 지연이 생길 수 있다. 임계값을 너무 작게 하면, 트리거 메시지 난수가 유효하지 않게 될 가능성이 높아지고, 임계값을 너무 크게 하면, 악의를 가진 서버가 트리거 메시지를 가로채서 해당 메시지를 클라이언트에게 반복해서 발송하는 경우, 클라이언트는 메시지가 유효한 정보라고 간주하고, |Ts-Tc|이 임계 범위 내에 포함되는 동안에는 이러한 메시지를 취급할 것이다. The threshold Diff is typically set on the client side and can be an empirical value determined by the network condition. Since the mobile network itself is not stable, there may be a delay in the transmission of trigger messages. If you make the threshold too small, you increase the likelihood that the trigger message random number will not be valid. If you make the threshold too large, the client will send a message if the malicious server intercepts the trigger message and repeatedly sends the message to the client. Is considered valid information and will handle this message while | Ts-Tc | is within the threshold range.

(2) 서버는, 트리거 메시지를 생성하기 전에, 소정의 규칙에 따라 먼저 트리거 메시지에 대한 세션 ID를 생성한다. 이 규칙은 현재의 세션 ID로부터 이전의 세션 ID를 도출하는 데에 사용될 수 있다. 세션 ID는 트리거 메시지 난수로서 작용한다. 서버는 이 난수를 사용해서 Digest를 생성하고, Digest를 사용해서 트리거 메시지를 생성한다. (2) Before generating the trigger message, the server first generates a session ID for the trigger message according to a predetermined rule. This rule can be used to derive the previous session ID from the current session ID. The session ID acts as a trigger message random number. The server uses this random number to create a Digest and uses Digest to generate a trigger message.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 의해 촉발될 세션의 세션 ID를 추출하고, 추출한 세션 ID, 서버 ID, 서버 패스워드, 및 기타 트리거 메시지의 필드를 사용해서, 메시지를 인증하기 위한 다이제스트(Digest)를 생성한다. 클라이언트는, 인증에 성공한 후, 세션 ID에 대응하는 세션을 설정하기 위한 세션 요청을 발송한다. 서버는 세션 요청으로부터 세션 ID를 추출해서 세션을 식별한다. After the client receives the trigger message, the client extracts the session ID of the session to be triggered by the trigger message and uses the extracted session ID, server ID, server password, and other fields of the trigger message to digest the message. Create (Digest). After successful authentication, the client sends a session request for establishing a session corresponding to the session ID. The server identifies the session by extracting the session ID from the session request.

또한, 클라이언트가 트리거 메시지에 의해 트리거될 세션의 세션 ID를 추출한 후, 클라이언트는 세션 ID의 부호화 규칙에 따라 세션 ID의 적시성을 추론(infer)할 수 있다. 또는, 클라이언트가 사용된 세션 ID를 저장하고, 트리거 메시지의 세션 ID를 저장된 세션 ID와 비교해서, 적시성을 판정할 수 있다. In addition, after the client extracts the session ID of the session to be triggered by the trigger message, the client may infer timeliness of the session ID according to the encoding rule of the session ID. Alternatively, the client may store the session ID used and compare the session ID of the trigger message with the stored session ID to determine timeliness.

이러한 방법에서, 세션 ID는 트리거 메시지 ID(통지 ID: NotificationID)로 대체해도 된다. 이러한 트리거 메시지 ID는 클라이언트에 의해 회신된 트리거 메시지 처리 결과를 트리거 메시지와 연관시킨다. In this way, the session ID may be replaced with a trigger message ID (Notification ID: NotificationID). This trigger message ID associates the trigger message processing result returned by the client with the trigger message.

(3) 서버는, 트리거 메시지를 생성할 때에, 각각의 트리거 메시지에 번호를 매기고, 이 번호를 전용의 트리거 메시지 난수로서 사용한다. 서버는 난수를 사용해서 다이제스트(Digest)를 생성하고, 다이제스트를 사용해서 트리거 메시지를 생성한다. (3) When generating a trigger message, the server numbers each trigger message and uses this number as a dedicated trigger message random number. The server generates a digest using a random number, and generates a trigger message using the digest.

번호를 매기는 넘버링은 오름차순 또는 내림차순으로 할 수 있다. 클라이언트는, 트리거 메시지를 수신한 후에, 메시지에 포함된 난수를 저장된 난수와 비교한다. 번호가 오름차순으로 된 경우, 새로운 난수가 더 크면, 난수는 유효한 것이다. 그렇지 않고 난수가 작으면, 난수는 유효하지 않은 것이다. 번호가 내림차순으로 된 경우, 새로운 난수가 더 작으면, 난수는 유효한 것이며, 그렇지 않으면 유효하지 않은 것이다. Numbering can be in ascending or descending order. After receiving the trigger message, the client compares the random number included in the message with the stored random number. If the numbers are in ascending order, if the new random number is larger, the random number is valid. Otherwise, if the random number is small, the random number is invalid. If the number is in descending order, the new random number is smaller, the random number is valid, otherwise it is invalid.

클라이언트는, 새로운 난수가 유효하고 서버에 대한 인증이 성공했다고 판정되면, 새로운 난수를 저장하고, 다음의 트리거 메시지 난수와의 비교에 사용한다. If the client determines that the new random number is valid and authentication to the server is successful, the client stores the new random number and uses it for comparison with the next trigger message random number.

본 방법에서, 악의를 가진 서버가 트리거 메시지를 가로채서 클라이언트에게 메시지를 반복해서 발송하는 방식으로 클라이언트를 공격하면, 이러한 트리거 메시지에 의해 사용된 난수가 기록되어 있기 때문에, 모든 악의 있는 메시지는 유효하지 않은 것으로 판정되어, 악의를 가진 서버로부터의 공격을 방지할 수 있다. In this method, if the malicious server attacks the client by intercepting the trigger message and sending the message repeatedly to the client, all malicious messages are invalid because the random number used by the trigger message is recorded. It can be determined that it is not, and the attack from the malicious server can be prevented.

또한, 모바일 네트워크가 불안정해서, 나중에 발송된 메시지가 클라이언트에게 먼저 도달하게 되면, 여러 세션에 사용될, 서버가 발송한 트리거 메시지가 클라이언트에게 변경된 순서로 도달할 수 있게 되기 때문에, 클라이언트는 유효한 메시지를 유효하지 않은 메시지로 잘못 판정하게 된다. In addition, if the mobile network becomes unstable and later sent messages arrive at the client first, the client can validate valid messages because trigger messages sent by the server, which will be used for multiple sessions, can arrive at the client in the changed order. You will be mistaken for a message you haven't.

예를 들어, 서버가 3개의 다른 세션에 대해 3개의 트리거 메시지를 연속해서 발송한 경우, 3개의 트리거 메시지에 의해 사용된 트리거 메시지 난수는 각각 30, 31, 32이다. 그러나, 모바일 네트워크가 불안정해서, 클라이언트가 난수가 32인 트리거 메시지를 먼저 접수한다. 따라서, 클라이언트는 이 메시지가 유효한 것으로 판정하고 이 난수를 기록한다. 다른 2개의 트리거 메시지가 클라이언트에 도달하면, 클라이언트는 이들 난수를 기록되어 있는 난수와 비교하게 되는데, 이들 난수는 기록된 난수보다 작은 값을 갖기 때문에, 클라이언트는 메시지가 유효하지 않다고 잘못 판정한다. For example, if the server sent three trigger messages in succession for three different sessions, the trigger message random numbers used by the three trigger messages are 30, 31, and 32, respectively. However, the mobile network is unstable, so the client first receives a trigger message with a random number of 32. Thus, the client determines that this message is valid and records this random number. When the other two trigger messages arrive at the client, the client compares these random numbers with the recorded random numbers, because these random numbers have a value less than the recorded random numbers, so the client incorrectly determines that the message is invalid.

이러한 문제에 대해서, 본 발명의 실시예는 다음과 같은 3가지 해결 방안을 제시한다. For this problem, the embodiment of the present invention proposes the following three solutions.

해결 방안 1: 클라이언트는 모든 트리거 메시지 난수 값 또는 가장 최근에 접수한 트리거 메시지 난수를 저장하고, 유효한 것으로 판정된 트리거 메시지 난수를 저장된 난수와 비교한다. 트리거 메시지 난수가 저장된 난수와 동일하지 않으면, 클라이언트는 해당 난수가 유효한 것으로 판정하고 그 난수를 저장한다. Solution 1: The client stores all trigger message random values or the most recently received trigger message random number and compares the trigger message random number determined to be valid with the stored random number. If the trigger message random number is not equal to the stored random number, the client determines that the random number is valid and stores the random number.

저장 공간이 제한되어 있으면, 저장 공간을 설정하고, 저장된 난수 값의 양이 상한에 도달하면, 저장된 최소의 난수를 삭제한다. If the storage space is limited, the storage space is set, and when the amount of stored random numbers reaches the upper limit, the minimum stored random number is deleted.

해결 방안 2: 트리거 메시지 난수 값이 오름차순으로 번호가 매겨진 경우, 클라이언트는 접수한 최대의 난수와 현재의 최대값 보다 작고 접수된 적이 없었던 모든 또는 일부의 난수 값을 저장하고, 유효하다고 판정한 트리거 메시지 난수를 저장된 난수 값과 비교해서, 해당 난수가 저장된 난수 값과 동일하지 않으면, 해당 난수가 유효하다고 판정하고 저장한다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 클라이언트는 접수한 최소의 난수와 현재의 최소값 보다 작고 접수되지 않았던 모든 또는 일부의 난수 값을 저장하고, 유효하다고 판정한 트리거 메시지 난수를 저장된 난수 값과 비교해서, 해당 난수가 저장된 난수 값과 동일하지 않으면, 해당 난수가 유효하다고 판정하고 저장한다. Solution 2: If the trigger message random values are numbered in ascending order, the client stores the maximum number of random numbers received and all or some random values less than the current maximum value and never received, and the trigger message is determined to be valid. The random number is compared with the stored random number, and if the random number is not equal to the stored random value, the random number is determined to be valid and stored. If the trigger message random values are numbered in descending order, the client stores the minimum random number received and all or some random values less than the current minimum and not received, and the trigger message random number determined to be valid is stored with the stored random value. In comparison, if the random number is not equal to the stored random number value, the random number is determined to be valid and stored.

예를 들어, 초기값을 1이라 하고, 번호 매기는 방식을 오름차순으로 하며, 클라이언트가 이들 트리거 메시지 난수 값 1, 2, 4, 5, 및 7을 차례로 수신하는 것으로 가정한다. 이 경우, 클라이언트는 최대값 난수 "7"과, 7보다 작고 접수된 적이 없었던 난수 값 "3", "6"을 기록한다. 클라이언트는, 트리거 메시지 난수 "6"을 수신하면, "6"을 최대값 난수 "7"과 비교한다. 6은 7보다 작기 때문에, 이 난수는 유효하지 않은 것이다. 이어서, 클라이언트는 "6"을 "3" 및 "6"과 비교하고 동일한 값이 있다는 것을 알아낸다. 클라이언트는 이 트리거 메시지 난수가 유효하다고 판정하고, 기록된 "6"을 삭제한다. 번호 매기는 방식이 내림차순이 경우에는, 판단 방식이 유사하기 때문에, 반복해서 설명하지는 않는다. For example, assume that the initial value is 1, the numbering method is in ascending order, and the client receives these trigger message random values 1, 2, 4, 5, and 7 in order. In this case, the client records the maximum random number " 7 " and the random number values " 3 " and " 6 " When the client receives the trigger message random number "6", it compares "6" with the maximum random number "7". Since 6 is less than 7, this random number is invalid. The client then compares "6" with "3" and "6" and finds that there is the same value. The client determines that this trigger message random number is valid and deletes the recorded "6". If the numbering method is in descending order, the judgment method is similar, and thus the description is not repeated.

해결 방안 3: 트리거 메시지 난수 값이 오름차순으로 번호가 매겨진 경우, 클라이언트는 최대값 난수를 저장하고, 저장된 최대값 난수보다 작은 난수를 갖는 모든 트리거 메시지를 유효한 것으로 간주한다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 클라이언트는 최대값 난수를 저장하고, 저장된 최대값 난수보다 큰 난수를 갖는 모든 트리거 메시지를 유효하지 않은 것으로 간주한다. 서버가 소정의 기간 내에 클라이언트로부터 응답을 수신하지 못하면, 서버는 넘버링 규칙(numbering rule)에 따라 새로운 난수를 생성하고, 이 새로운 난수를 포함하는 트리거 메시지를 발송한다. Solution 3: If the trigger message random number is numbered in ascending order, the client stores the maximum random number and considers all trigger messages with a random number less than the stored maximum random number to be valid. If the trigger message random value is numbered in descending order, the client stores the maximum random number and considers all trigger messages with a random number greater than the stored maximum random number to be invalid. If the server does not receive a response from the client within a predetermined period of time, the server generates a new random number according to the numbering rule and sends a trigger message containing the new random number.

상기 설명한 것은 본 발명의 실시예에 따라 트리거 메시지 난수를 사용하는 방법이다. What has been described above is a method of using a trigger message random number according to an embodiment of the present invention.

시스템 시간 또는 트리거 메시지 번호가 트리거 메시지 난수로서 사용된다면, 트리거 메시지 난수는 트리거 메시지의 메시지 본문 또는 메시지 헤더에 포함될 수 있다. 메시지 헤더를 예로 들면, 도 4에 나타낸 바와 같이, 난수가 추가된 메시지 포맷에는, 다이제스트(Digest), 트리거 메시지 헤더(trigger-hdr), 및 트리거 메시지 본문(trigger-body)이 포함된다. If a system time or trigger message number is used as the trigger message random number, the trigger message random number may be included in the message body or message header of the trigger message. Taking the message header as an example, as shown in FIG. 4, the message format to which the random number is added includes a digest, a trigger message header (trigger-hdr), and a trigger message body (trigger-body).

트리거 헤더(trigger-hdr)에는, 버전(version), 사용자 쌍방향 모드(ui-mode), 세션 개시자(session initiator), 난수, 보류 필드(future-use), 서버 식별자 길이(length-identifier) 및 서버 식별자가 포함된다. The trigger-hdr includes a version, user ui-mode, session initiator, random number, future-use, server identifier length, and Server identifier is included.

또한, 본 발명의 실시예는 트리거 메시지 난수를 사용해서 다이제스트(Digest)를 생성하는 2가지 방법을 제공한다. In addition, embodiments of the present invention provide two methods of generating a digest using a trigger message random number.

방법 1: H=MD5 해싱 함수이고, b64=Base64 부호화 함수라고 한다. 다이제스트(Digest)는 다음과 같이 표현될 수 있다. Method 1: H = MD5 hashing function, b64 = Base64 coding function. Digest can be expressed as follows.

Digest= H(B64(H(server-identifier:password)):nonce:B64(H(trigger)))Digest = H (B64 (H (server-identifier: password)): nonce: B64 (H (trigger)))

서버 식별자(server-identifier) 필드는 서버 식별자이며, 패스워드(password) 필드는 서버 패스워드이고, 난수(nonce) 필드는 트리거 메시지 난수[즉, 시스템 시간(Ts), 세션 ID 또는 트리거 메시지 번호]이며, 트리거(trigger) 필드는 트리거 메시지의 트리거 헤더(trigger-hdr) 또는 트리거 본문(trigger-body)을 포함한다. The server-identifier field is the server identifier, the password field is the server password, the random field is the trigger message random number (ie system time (Ts), session ID or trigger message number), The trigger field includes a trigger header (trigger-hdr) or trigger body (trigger-body) of a trigger message.

클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지에 트리거 메시지 난수가 포함되어 있다고 판정한 후, 클라이언트 관리 트리(management tree)에서 서버에 대응하는 패스워드를 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자(server-identifier), 난수, 및 트리거(Trigger)를 사용해서, 다이제스트(Digest)를 생성하고, 생성한 다이제스트를 메시지에 포함된 다이제스트와 비교한다. 비교 결과, 2개의 다이제스트가 동일하면, 인증이 성공한 것이고, 동일하지 않으면 인증이 실패한 것이다. The client receives the trigger message, determines that the trigger message includes a trigger message random number, and then retrieves a password corresponding to the server from the client management tree. The client uses the found password, server-identifier in the trigger message, a random number, and a trigger to generate a digest and compare the generated digest with the digest contained in the message. As a result of the comparison, if the two digests are the same, authentication is successful, and if they are not the same, authentication fails.

방법 2: H=MD5 해싱 함수이고, b64=Base64 부호화 함수라고 한다. Method 2: H = MD5 hashing function, b64 = Base64 coding function.

트리거 메시지 난수는 메시지 헤더 또는 메시지 본문에 포함되기 때문에, 난수는 트리거 메시지의 트리거 헤더 필드와 트리거 본문 필드 중의 일부가 될 수 있다. 따라서, 다이제스트를 계산하기 위해, 트리거 헤더 필드와 트리거 본문 필드만을 사용하면 된다. 다이제스트는 다음과 같이 표현될 수 있다. Since the trigger message random number is included in the message header or the message body, the random number can be part of the trigger header field and the trigger body field of the trigger message. Therefore, only the trigger header field and the trigger body field need to be used to calculate the digest. The digest can be expressed as

Digest = H(B64(H(server-identifier:password)):B64(H(trigger)))Digest = H (B64 (H (server-identifier: password)): B64 (H (trigger)))

서버 식별자(server-identifier) 필드는 서버 식별자이며, 패스워드(password) 필드는 서버 패스워드이고, 트리거(trigger) 필드는 트리거 메시지의 트리거 헤더 또는 트리거 본문을 포함한다. The server-identifier field is a server identifier, the password field is a server password, and the trigger field includes a trigger header or a trigger body of a trigger message.

클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지에 트리거 메시지 난수가 포함되어 있다고 판정한 후, 클라이언트 관리 트리(management tree)에서 서버에 대응하는 패스워드를 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 생성한 다이제스트를 메시지에 포함된 다이제스트와 비교한다. 비교 결과, 2개의 다이제스트가 동일하면, 인증이 성공한 것이고, 동일하지 않으면 인증이 실패한 것이다. The client receives the trigger message, determines that the trigger message includes a trigger message random number, and then retrieves a password corresponding to the server from the client management tree. The client uses the found password, the server identifier in the trigger message, and the trigger to generate a digest and compare the generated digest with the digest contained in the message. As a result of the comparison, if the two digests are the same, authentication is successful, and if they are not the same, authentication fails.

단계 302: 클라이언트는 정보가 유효하다고 판정하고, 정보를 성공적으로 인증한 후, 세션 요청을 서버에 발송한다. Step 302: The client determines that the information is valid, and after successfully authenticating the information, sends a session request to the server.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 이 판단 방법은 앞서 설명하였다. 트리거 메시지 난수가 유효하다고 판정하면, 클라이언트는 서버에 대응하는 패스워드를 클라이언트 관리 트리에서 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다. After receiving the trigger message, the client determines whether the trigger message random number included in the trigger message is valid. This determination method has been described above. If the trigger message random number is determined to be valid, the client retrieves the password corresponding to the server from the client management tree. The client uses the found password, the server identifier in the trigger message, and the trigger to generate a digest and authenticate the trigger message. A detailed authentication method is described in step 301. The authentication method of the client depends on how the digest is created.

클라이언트는, 인증이 성공한 후, 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. After successful authentication, the client sends a session request to the server to start the session.

이 세션 요청에는, 세션 ID(SessionID)와, This session request includes a session ID (SessionID),

c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. Contains authentication information, including digests created using c_nonce.

이 단계에서, 클라이언트와 서버 사이에 세션 접속이 확립된다. At this stage, a session connection is established between the client and the server.

단계 303: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다. Step 303: The server returns a response containing the authentication result and the authentication request.

서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다. The server authenticates the client according to the authentication information sent by the client, and returns a response including the authentication result and the authentication request to the client.

더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 s_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, this response includes authentication information that includes the SessionID and the digest generated using s_nonce as a result of the server authenticating the client.

단계 304: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 304: The client returns a message containing the authentication result to the server.

클라이언트는, 서버가 발송한 인증 정보에 따라, 서버를 인증하고, 인증 결과를 포함하는 메시지를 서버에 회신한다. The client authenticates the server according to the authentication information sent by the server, and returns a message containing the authentication result to the server.

더 구체적으로 말해서, 이 메시지에는 클라이언트가 서버를 인증한 결과와 그외 관련 정보가 포함된다. More specifically, this message contains the result of the client authenticating the server and other relevant information.

또한, 트리거 메시지 난수 값이 오름차순으로 넘버링된 경우, 트리거 메시지가 증가하면, 난수 값은 더 커진다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 트리거 메시지가 증가하면, 난수 값은 0에 도달할 때까지 감소한다. 이러한 경우, 난수를 조정할 필요가 있는데, 예를 들면 카운트의 시작점을 조정할 필요가 있다. 본 발명의 실시예는 필요에 따라 난수 값을 조정하는 여러 방법을 제공한다. In addition, when the trigger message random number values are numbered in ascending order, as the trigger message increases, the random number value becomes larger. If the trigger message random number values are numbered in descending order, as the trigger message increases, the random number value decreases until it reaches zero. In this case, it is necessary to adjust the random number, for example, it is necessary to adjust the starting point of the count. Embodiments of the present invention provide several ways to adjust random number values as needed.

방법 1: 서버는 클라이언트측의 계정 패스워드(account password)를 주기적으로 갱신한다. 서버와 클라이언트는, 서버가 클라이언트의 계정 패스워드를 갱신하면, 난수 값을 자동으로 리셋시킬 수 있다. Method 1: The server periodically updates the account password on the client side. The server and client can automatically reset the random value when the server updates the client's account password.

방법 2: 난수를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 서버는 난수를 리셋하라는 명령을 하달한다. 이 명령은 경고(Alert) 명령이 될 수 있다. 예를 들면, Method 2: When a random number needs to be adjusted (for example, when a predetermined time is reached or when the count reaches a predetermined value), the server issues a command to reset the random number. This command can be an Alert command. For example,

<Alert><Alert>

<CmdID>1</CmdID><CmdID> 1 </ CmdID>

<Data>1227</Data> <!- 난수 카운트 대체 --><Data> 1227 </ Data> <!-Random count replacement->

</Alert></ Alert>

서버는, 난수를 조정한 후에, 클라이언트에 계정 패스워드를 변경하라는 명령을 하달함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다. After adjusting the random number, the server can issue a command to the client to change the account password, thereby preventing interception of the message and attack by the malicious server.

방법 3: 서버는 클라이언트의 관리 트리를 직접 조작할 수 있기 때문에, 클라이언트 관리 트리에서의 계정 정보에 노드(node)를 추가할 수 있으며, 노드를 사용하여, 클라이언트에 의해 수신해서 보존한 난수 값을 저장할 수 있다. 노드는 다음과 같이 될 수 있다:Method 3: Because the server can directly manipulate the client's management tree, it can add nodes to account information in the client management tree, and use the node to retrieve random values received and stored by the client. Can be stored. Nodes can be:

<X>/AppAuth/<X>/SNAAuthCount<X> / AppAuth / <X> / SNAAuthCount

이후, 노드를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 서버는 교체(Replace) 명령을 노드에 하달한다. 명령의 예는 다음과 같다: Then, when the node needs to be adjusted (e.g., when a predetermined time has been reached or when the count has reached a predetermined value), the server issues a Replace command to the node. An example of the command is:

<Replace><Replace>

<CmdID>4</CmdID><CmdID> 4 </ CmdID>

<Item><Item>

<Target><Target>

<LocURI>./DMAcc/serverA/AppAuth/1/SNAAuthCount</LocURI><LocURI> ./ DMAcc / serverA / AppAuth / 1 / SNAAuthCount </ LocURI>

</Target></ Target>

<Data>1</Data><Data> 1 </ Data>

</Item></ Item>

</Replace></ Replace>

서버는, 난수를 조정한 후에, 클라이언트의 계정 패스워드를 변경하라는 명령을 하달함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다. After adjusting the random number, the server can issue a command to change the client's account password, thereby preventing the interception of the message and the attack by the malicious server.

방법 4: 노드를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 클라이언트는 교체(Replace) 요청을 서버에 발송한다. 클라이언트가 서버로부터 승인(acknowledgement)을 수신한 후에, 양 당사자는 난수를 조정한다. 조정이 완료되면, 서버는 클라이언트의 계정 패스워드를 갱신함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다. Method 4: When a node needs to be adjusted (eg, when a predetermined time has been reached or when the count has reached a predetermined value), the client sends a replace request to the server. After the client receives an acknowledgment from the server, both parties adjust the random number. Once the mediation is complete, the server can update the client's account password to prevent interception of messages and attacks by malicious servers.

본 발명의 제1 실시예에 따른 인증 방법에서는, s_nonce 및 c_nonce와 다르며, 트리거 메시지에 이용할 수 있는 난수를 제공한다. 새로운 세션이 개시되면, 서버는 트리거 메시지에 의해 전용으로 사용될 난수를 생성해서 세션을 트리거한다. 클라이언트는 난수를 사용해서 트리거 메시지를 인증한다. 서버가 저장한 s_nonce가 정확하지 않더라도, 클라이언트를 세션을 개시할 수 있다. 이 경우, s_nonce 및 c_nonce가 정확하지 않다면, s_nonce 또는 c_nonce는 상호작용(interaction)을 통해 갱신을 행함으로써 인증을 실현할 수 있다. The authentication method according to the first embodiment of the present invention is different from s_nonce and c_nonce, and provides a random number that can be used in a trigger message. When a new session is initiated, the server triggers the session by generating a random number to be dedicated by the trigger message. The client uses a random number to authenticate the trigger message. Even if the server saved s_nonce is not correct, the client can start a session. In this case, if s_nonce and c_nonce are not correct, s_nonce or c_nonce can be authenticated by updating through an interaction.

정확하지 않은 s_nonce를 예로 들면, 도 5에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다. Taking the incorrect s_nonce as an example, as shown in Fig. 5, the authentication method according to the first embodiment of the present invention includes the following steps.

단계 501: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 트리거 메시지 난수가 포함되어 있다. Step 501: The server sends a trigger message to the client. This message contains a trigger message random number.

서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 이 난수를 사용해서 다이제스트를 생성한 후, 이 다이제스트를 사용해서 트리거 메시지를 생성한다. Before sending, the server generates a trigger message random number, generates a digest using this random number, and then uses the digest to generate a trigger message.

단계 502: 클라이언트는 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하고, 메시지가 성공했음을 인증한 후, 세션 요청을 서버에 발송한다. Step 502: The client determines that the trigger message random number included in the trigger message is valid, authenticates that the message is successful, and then sends a session request to the server.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판정되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다. After receiving the trigger message, the client determines whether the trigger message random number included in the trigger message is valid. The determination method is as described above. If the trigger message random number is determined to be valid, the client searches the client management tree to find a password corresponding to the server. The client uses the found password, the server identifier in the trigger message, and the trigger to generate a digest and authenticate the trigger message. A detailed authentication method is described in step 301. The authentication method of the client depends on how the digest is created.

인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. After authentication succeeds, the client sends a session request to the server to initiate the session.

세션 요청에는, SessionID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. The session request includes authentication information including a SessionID and a digest generated using c_nonce.

단계 502에서, 클라이언트와 서버 사이에 세션 접속이 확립된다. In step 502, a session connection is established between a client and a server.

단계 503: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다. Step 503: The server returns a response containing the authentication result and the authentication request.

서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다. The server authenticates the client according to the authentication information sent by the client, and returns a response including the authentication result and the authentication request to the client.

더 구체적으로 말하면, 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 s_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, the response includes authentication information including the digest generated by the server as a result of authenticating the client, using the SessionID, and s_nonce.

단계 504: 클라이언트를 저장된 s_nonce를 사용해서 서버를 인증하지만, 인증은 실패한다. Step 504: The client authenticates the server using the stored s_nonce but authentication fails.

단계 505: 클라이언트는 질의(Challenge) 메시지와 s_nonce 갱신 메시지를 서버에 발송한다. Step 505: The client sends a challenge message and an s_nonce update message to the server.

단계 506: 서버는 새로운 s_nonce를 사용해서 인증 정보를 생성하고, 인증 요청을 클라이언트에게 다시 발송한다. Step 506: The server generates authentication information using the new s_nonce and sends an authentication request back to the client.

서버는, 갱신 메시지를 수신한 후에, 클라이언트가 지시한 대로, 저장된 s_nonce를 갱신하고, 갱신한 s_nonce를 사용해서 새로운 인증 요청을 생성하며, 갱신 결과와 새로운 인증 요청을 서버에 발송한다. After receiving the update message, the server updates the stored s_nonce as instructed by the client, generates a new authentication request using the updated s_nonce, and sends the update result and the new authentication request to the server.

단계 507: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 507: The client returns a message containing the authentication result to the server.

클라이언트는, 서버가 발송하고 갱신된 s_nonce를 사용하여 생성한 인증 요청에 따라, 서버를 인증한 후, 인증 결과를 포함하는 메시지를 서버에 회신한다. The client authenticates the server according to the authentication request sent by the server and generated using the updated s_nonce, and then returns a message containing the authentication result to the server.

더 구체적으로 말하면, 이 메시지에는 클라이언트가 서버를 인증한 결과 및 기타 관련 정보가 포함된다. More specifically, this message includes the result of the client authenticating the server and other relevant information.

본 발명의 제1 실시예에 따른 인증 방법에서, 새로운 세션이 개시되었으면, 서버는 트리거 메시지에 전용으로 사용할 수 있는 난수를 생성해서 세션을 트리거한다. 본 발명의 제2 실시예에 따른 인증 방법에서는, 서버가 s_nonce를 정확하지 않은 것으로 간주할 때에만, 세션을 트리거하기 위해 트리거 메시지에 전용으로 사용할 수 있는 난수를 생성한다. In the authentication method according to the first embodiment of the present invention, when a new session is started, the server generates a random number that can be used exclusively in the trigger message to trigger the session. In the authentication method according to the second embodiment of the present invention, only when the server considers s_nonce to be incorrect, it generates a random number that can be used exclusively in a trigger message to trigger a session.

도 6에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다. As shown in Fig. 6, the authentication method according to the second embodiment of the present invention includes the following steps.

단계 601: 서버는 트리거 메시지를 클라이언트에게 발송한다. 이 메시지에는 s_nonce가 포함된다. Step 601: The server sends a trigger message to the client. This message contains s_nonce.

단계 602: 서버는 인증이 실패했음을 알게 된다. Step 602: The server knows that authentication failed.

만일 서버가 특정의 기간 내에 클라이언트가 회신하는 메시지를 받지 못하면, 서버는 인증이 실패했다고 간주한다. If the server does not receive a message returned by the client within a certain period of time, the server assumes that authentication has failed.

단계 603: 서버는 새로운 트리거 메시지를 클라이언트에게 발송한다. 이 메시지에는 트리거 메시지 난수가 포함된다. Step 603: The server sends a new trigger message to the client. This message contains a trigger message random number.

서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 이 난수를 사용해서 다이제스트를 생성한 후, 다이제스트를 사용해서 트리거 메시지를 생성한다. Before sending, the server generates a trigger message random number, generates a digest using this random number, and then uses the digest to generate a trigger message.

단계 604: 클라이언트는 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하고, 메시지가 성공적이라고 인증한 후, 세션 요청을 서버에 발송한다. Step 604: The client determines that the trigger message random number included in the trigger message is valid, and after authenticating that the message is successful, sends a session request to the server.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단함으로써 s_nonce를 사용해서 인증을 할지 아니면 트리거 메시지를 사용해서 인증을 할지 여부를 결정한다. After receiving the trigger message, the client determines whether to authenticate using s_nonce or the trigger message by determining whether the trigger message uses a trigger message random number.

판단 방법은 다음과 같다. 클라이언트는 트리거 메시지가 난수 필드(nonce field)를 포함하는지 여부를 판단함으로써, 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 트리거 메시지가 난수 필드를 포함하면, 트리거 메시지는 트리거 메시지 난수를 사용하는 것이다. 이와 달리, 클라이언트는 트리거 메시지 내의 버전 필드(version field) 정보를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 이것은 메시지가 트리거 메시지 난수를 사용하는지 여부를, 메시지 버전이 나타내기 때문이다. The judgment method is as follows. The client determines whether the trigger message uses a trigger message random number by determining whether the trigger message includes a nonce field. If the trigger message contains a random field, the trigger message is to use the trigger message random number. Alternatively, the client determines whether the trigger message uses a trigger message random number by determining the version field information in the trigger message. This is because the message version indicates whether the message uses a trigger message random number.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지 내에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판단되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는, 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다. After receiving the trigger message, the client determines whether the trigger message random number included in the trigger message is valid. The determination method is as described above. If the trigger message random number is determined to be valid, the client searches the client management tree to find a password corresponding to the server. The client uses the found password, the server identifier in the trigger message, and the trigger to generate a digest and authenticate the trigger message. A detailed authentication method is described in step 301. The authentication method of the client depends on how the digest is created.

인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. After authentication succeeds, the client sends a session request to the server to initiate the session.

세션 요청에는, SessionID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. The session request includes authentication information including a SessionID and a digest generated using c_nonce.

단계 604에서, 클라이언트와 서버 간에 세션 접속이 확립된다. In step 604, a session connection is established between the client and server.

단계 605: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다. Step 605: The server returns a response containing the authentication result and the authentication request.

단계 605는 단계 503과 유사하기 때문에, 중복해서 설명하지는 않는다. Since step 605 is similar to step 503, it is not redundantly described.

단계 606: 클라이언트는 저장된 s_nonce를 사용해서 서버를 인증하지만, 인증이 실패한다. Step 606: The client authenticates the server using the stored s_nonce, but authentication fails.

단계 607: 클라이언트는 질의(Challenge) 및 새로운 s_nonce를 포함하는 메시지를 서버에 발송한다. Step 607: The client sends a message containing a challenge and a new s_nonce to the server.

단계 608: 서버는 갱신 결과와 새로운 인증 요청을 클라이언트에 회신한다. Step 608: The server returns an update result and a new authentication request to the client.

단계 608은 단계 506과 유사하기 때문에, 더 설명하지는 않는다. Since step 608 is similar to step 506, it is not described further.

단계 609: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 609: The client returns a message containing the authentication result to the server.

단계 609는 단계 507과 유사하기 때문에, 더 설명하지는 않는다. Since step 609 is similar to step 507, it is not described further.

본 발명의 제2 실시예에 따른 인증 방법에서, 서버가 s_nonce가 정확하지 않다고 간주하면, 서버는 세션을 트리거하기 위한 트리거 메시지에 전용으로 사용될 수 있는 난수를 생성한다. 클라이언트는 본 발명의 제1 실시예의 인증 방법에 따라 트리거 메시지를 처리한다. 본 발명의 제3 실시예에 따른 인증 방법에서, 클라이언트는 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하는지 여부를 판단함으로써, s_nonce를 갱신할지 여부를 결정할 수 있다. 트리거 메시지가 트리거 메시지에 전용으로 사용할 수 있는 난수를 사용한다면, 클라이언트는 s_nonce를 직접 갱신함으로써, 세션에서의 인증을 위해, 갱신된 s_nonce를 직접 사용할 수 있다. In the authentication method according to the second embodiment of the present invention, if the server considers that s_nonce is not correct, the server generates a random number that can be used exclusively in the trigger message for triggering the session. The client processes the trigger message according to the authentication method of the first embodiment of the present invention. In the authentication method according to the third embodiment of the present invention, the client may determine whether to update the s_nonce by determining whether the trigger message uses a random number available exclusively for the trigger message. If the trigger message uses a random number that can be dedicated to the trigger message, the client can directly use the updated s_nonce for authentication in the session by updating s_nonce directly.

본 발명의 제1 및 제2 실시예에 따른 인증 방법에서, 인증이 실패하면, 인증을 실현하는 데에 디폴트 난수를 필요로 하지 않기 때문에, 시스템의 보안성을 향상시킬 수 있다. In the authentication methods according to the first and second embodiments of the present invention, if authentication fails, the default random number is not required to realize the authentication, so that the security of the system can be improved.

본 발명의 제3 실시예에 따른 인증 방법에서, s_nonce 및 c_nonce는 종래 기술에 따라 갱신되고, 이에 따라 서버 패스워드와 클라이언트 패스워드가 갱신된다. 갱신된 서버 패스워드는 디폴트 난수를 사용함으로써 생성된 서버 다이제스트가 상이하게 됨으로써, 클라이언트에 대한 메시지 리플레이 공격을 방지할 수 있다. 갱신된 클라이언트 패스워드에 의하면 디폴트 난수를 사용함으로써 생성된 클라이언트 다이제스트가 상이하게 됨으로써, 서버에 대한 메시지 리플레이(replay) 공격을 방지하여, 시스템의 안전성을 높일 수 있다. In the authentication method according to the third embodiment of the present invention, s_nonce and c_nonce are updated according to the prior art, so that the server password and the client password are updated. The updated server password may be different from the server digest generated by using the default random number, thereby preventing a message replay attack against the client. According to the updated client password, the client digest generated by using the default random number is different, thereby preventing the message replay attack on the server, thereby increasing the safety of the system.

본 발명의 제4 실시예에 따른 인증 방법에서는, 단계들간의 관련성이 강화되어, 다음 단계의 인증에 이전 단계가 사용되기 때문에, 시스템의 안전성을 높일 수 있다. 도 7에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다. In the authentication method according to the fourth embodiment of the present invention, the relevance between the steps is enhanced, so that the safety of the system can be increased because the previous step is used for the authentication of the next step. As shown in Fig. 7, the authentication method includes the following steps.

단계 701: 클라이언트는 세션을 트리거하기 위한 트리거 메시지를 수신하고 메시지를 인증한다. Step 701: The client receives a trigger message for authenticating the session and authenticates the message.

단계 702: 클라이언트는 트리거 메시지가 실패한 것으로 인증하고, 디폴트 난수를 사용해서 재인증한다. Step 702: The client authenticates that the trigger message has failed and reauthenticates using the default random number.

단계 703: 클라이언트는 세션 요청을 서버에 발송한다. 이 세션 요청은 디폴트 난수를 사용하여 생성된다. Step 703: The client sends a session request to the server. This session request is generated using the default random number.

디폴트 난수를 사용해서 행해진 인증이 성공하면, 클라이언트는 트리거 메시지에 의해 지시된 서버에게 세션 요청을 발송한다. 세션이 애플리케이션 계층 보안 메커니즘을 사용하면, 메시지는 디폴트 난수를 사용하여 생성된 인증 정보를 포함하며, 처리 과정은 단계 704로 진행한다. 디폴트 난수를 사용하여 행해진 인증이 실패하면, 클라이언트는 어떠한 세션도 개시하지 않고 트리거 메시지를 무시하고, 처리 과정을 종료한다. If authentication performed using the default random number succeeds, the client sends a session request to the server indicated by the trigger message. If the session uses an application layer security mechanism, the message includes authentication information generated using the default random number, and processing proceeds to step 704. If authentication performed using the default random number fails, the client does not initiate any session, ignores the trigger message, and terminates the process.

단계 704: 서버는 클라이언트가 발송한 세션 요청을 인증한다. Step 704: The server authenticates the session request sent by the client.

서버는 세션 요청을 다음과 같은 2가지 방법으로 인증한다. The server authenticates the session request in two ways:

방법 1: 서버는 c_nonce를 사용해서 인증을 위한 인증 정보를 생성하고, 인증이 성공하면, 종래 기술에 따라 정상적인 처리 과정을 수행한다. 인증이 실패하면, 서버는 디폴트 난수를 사용해서 인증 정보를 생성하고 인증을 다시 수행한다. 인증이 성공하면, 서버는 디폴트 난수를 사용해서 서버 인증 요청을 생성하고, 처리 과정을 단계 705로 진행시킨다. Method 1: The server generates authentication information for authentication using c_nonce, and if authentication succeeds, performs a normal process according to the prior art. If authentication fails, the server generates authentication information using the default random number and performs authentication again. If authentication succeeds, the server generates a server authentication request using the default random number and proceeds to step 705.

방법 2: 서버는, 세션이 애플리케이션 계층 보안 메커니즘을 사용하는 것으로 서버가 판정하면, 디폴트 난수를 사용하여 생성한 트리거 메시지를 클라이언트에 발송하고, 트리거 메시지는 세션 요청을 트리거하기 위한 트리거 메시지이며, 서버는 디폴트 난수를 사용해서 세션 요청을 인증한다. 인증이 성공한 후, 단계 705로 진행한다. Method 2: If the server determines that the session uses an application layer security mechanism, it sends a trigger message generated to the client using a default random number, which is a trigger message to trigger a session request. Authenticates the session request using the default random number. After the authentication succeeds, the flow proceeds to step 705.

세션 요청이 트리거 메시지에 의해 트리거되는지 여부를 판단하는 방법은 다음과 같다: 각각의 세션 요청은 고유의(unique) 세션 ID를 갖는다. 세션 요청에 포함된 세션 ID를 트리거 메시지에 포함된 세션 ID와 비교한다. 이들 세션 ID가 동일하면, 세션이 트리거 메시지에 의해 트리거됨을 나타낸다. The method of determining whether a session request is triggered by a trigger message is as follows: Each session request has a unique session ID. Compare the session ID included in the session request with the session ID included in the trigger message. If these session IDs are the same, it indicates that the session is triggered by a trigger message.

서버가 디폴트 난수를 사용하여 생성된 트리거 메시지를 클라이언트에게 발송하였는지 여부와 트리거 메시지가 세션 요청을 트리거하기 위한 트리거 메시지인지 여부를 판단하는 단계는, 세션 요청이 디폴트 난수에 의해 성공적으로 인증된 후에 행해질 수 있다. 판단이 성공하면, 단계 705로 진행한다. Determining whether the server has sent a trigger message generated using the default random number to the client and whether the trigger message is a trigger message to trigger a session request can be performed after the session request has been successfully authenticated by the default random number. Can be. If the determination is successful, the flow proceeds to step 705.

단계 704의 목적은, 디폴트 난수를 사용하여 생성되고 세션을 트리거하도록 구성된 트리거 메시지가 서버에 의해 클라이언트로 발송되지 않았지만, 클라이언트가 발송하고 디폴트 난수에 의해 생성된 세션 요청을 서버가 수신한 경우, 이 메시지는 정상이 아니거나 안전하지 않다는 것을 나타내며, 악의적인 제3자가 발송된 악의적인 메시지일 가능성이 있으므로, 폐기할 수 있다. 따라서, 이 단계는 시스템의 안전성을 향상시킨다. The purpose of step 704 is that if a trigger message generated using the default random number and configured to trigger a session has not been sent by the server to the client, but the server has received a session request sent by the client and generated by the default random number, The message indicates that it is not normal or insecure and may be a malicious message sent by a malicious third party and may be discarded. Thus, this step improves the safety of the system.

단계 705: 서버는 응답 메시지를 클라이언트에 회신한다. Step 705: The server returns a response message to the client.

서버는 인증 결과, 인증 요청, 및 c_nonce를 갱신하기 위한 명령을 포함하는 응답을 클라이언트에게 회신한다. The server returns a response to the client that includes the authentication result, the authentication request, and a command to update c_nonce.

단계 706: 클라이언트는 서버가 발송한 응답에 대한 인증을 행한다. Step 706: The client authenticates the response sent by the server.

세션이 애플리케이션 계층 보안 메커니즘을 사용하면, 클라이언트는 디폴트 난수를 사용해서 서버에 대한 인증을 행한다. 인증 방법은 다음과 같다. 클라이언트는 s_nonce를 사용해서 인증에 사용하기 위한 인증 정보를 생성하고, 인증이 성공하면, 종래 기술에 따라 정상적인 처리 과정을 수행한다. 인증이 실패하면, 클라이언트는 디폴트 난수를 사용하여 인증 정보를 생성하고 인증을 다시 수행한다. 인증이 성공하면, 클라이언트는 c_nonce를 갱신하고 단계 707로 진행한다. If the session uses an application layer security mechanism, the client authenticates to the server using the default random number. The authentication method is as follows. The client uses s_nonce to generate authentication information for use in authentication. If authentication succeeds, the client performs a normal process according to the prior art. If authentication fails, the client generates authentication information using the default random number and performs authentication again. If authentication succeeds, the client updates c_nonce and proceeds to step 707.

단계 706의 다른 방법으로서, 세션이 애플리케이션 계층 보안 메커니즘을 사용한다면, 클라이언트는 디폴트 난수를 사용해서 생성된 세션 요청을 서버에 발송하고, 클라언트는 디폴트 난수를 사용해서 서버가 발송한 응답에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 c_nonce를 갱신하고, 단계 707로 진행한다. As another method of step 706, if the session uses an application layer security mechanism, the client sends a session request generated using the default random number to the server, and the client authenticates to the response sent by the server using the default random number. Is done. After authentication succeeds, the client updates c_nonce and proceeds to step 707.

클라이언트가 디폴트 난수를 사용해서 생성한 세션 요청을 서버에 발송하였는지 여부를 판단하는 단계는, 디폴트 난수를 사용해서 인증을 수행한 후에 행해도 된다. 인증이 성공하면, 판정이 이루어진다. 판정이 성공하면, 단계 707로 진행한다. The step of determining whether the client sends the session request generated using the default random number to the server may be performed after authentication is performed using the default random number. If authentication succeeds, a determination is made. If the determination is successful, the flow proceeds to step 707.

단계 707: 클라이언트는 응답을 서버에 회신한다. Step 707: The client returns a response to the server.

클라이언트는 인증 결과, c_nonce 갱신 결과, 및 s_nonce를 갱신하기 위한 명령을 포함하는 응답을 서버에 회신한다. The client returns a response to the server that includes the authentication result, the c_nonce update result, and a command to update s_nonce.

단계 708: 서버는 s_nonce 갱신 결과를 클라이언트에 회신한다. Step 708: The server returns a result of the s_nonce update to the client.

이러한 단계를 완료한 후에, 리플레이 공격을 방지하기 위해, 서버 패스워드를 갱신하거나, 서버 패스워드 및 클라이언트 패스워드 모두를 갱신할 수 있다. After completing these steps, you can update the server password, or both the server password and the client password, to prevent replay attacks.

이러한 단계들에서, 세션 ID를 난수로 사용해도 되며, 트리거 메시지 ID를 디폴트 난수 대신에 난수로서 사용해도 된다. 이에 의해, 불변의 공개적 난수를 회피해서, 안정성을 더 놓일 수 있다. In these steps, the session ID may be used as a random number, or the trigger message ID may be used as a random number instead of the default random number. Thereby, the constant open random number can be avoided and stability can be further improved.

본 발명의 제3 및 제4 실시예에 따른 인증 방법은 시스템의 안전성을 효과적으로 향상시킬 수 있다. The authentication method according to the third and fourth embodiments of the present invention can effectively improve the safety of the system.

종래, s_nonce가 정확하지 않고 갱신될 필요가 있으면, 도 2의 단계 203 및 204에 나타낸 바와 같이, 갱신을 수행하기 위해 명령을 4회 교환할 필요가 있다. 왜냐하면, 디폴트 난수는 갱신되기 전에 사용될 필요가 있어서, 위험이 크다. 모바일 네트워크에서 메시지가 여러 번 교환되면, 네트워크가 부하가 커진다. Conventionally, if s_nonce is not accurate and needs to be updated, as shown in steps 203 and 204 of FIG. Because the default random number needs to be used before being updated, the risk is high. When messages are exchanged multiple times in a mobile network, the network becomes overloaded.

본 발명의 인증 방법의 실시예에서, 클라이언트가 발송한 세션 요청에 새로운 s_nonce를 부가하는 해결 방안을 제시한다. 이렇게 함으로써, 서버는 s_nonce를 직접 갱신할 수 있고, 새로운 s_nonce를 사용해서 인증을 행함으로써, 신호 상호작용의 횟수와 디폴트 난수를 사용하는 횟수를 감소시켜, 시스템의 안전성을 강화하고, 네트워크의 부하를 경감시킬 수 있다. In an embodiment of the authentication method of the present invention, a solution for adding a new s_nonce to a session request sent by a client is presented. By doing this, the server can directly update s_nonce and authenticate with the new s_nonce, reducing the number of signal interactions and the use of default random numbers, enhancing the security of the system and reducing the load on the network. I can alleviate it.

도 8에 나타낸 바와 같이, 본 발명의 제5 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다. As shown in FIG. 8, the authentication method according to the fifth embodiment of the present invention includes the following steps.

단계 801: 클라이언트는 s_nonce를 갱신할 필요가 있다고 판단한다. Step 801: The client determines that it needs to update s_nonce.

클라이언트는 s_nonce가 만료되었다고 판정하거나, 서버에 저장된 s_nonce가 클라이언트에 저장된 것과 상이하다는 것을 알게 되면, s_nonce를 갱신하여야 한다고 판단한다. If the client determines that s_nonce has expired or finds that s_nonce stored in the server is different from that stored in the client, it determines that s_nonce should be updated.

클라이언트는 서버에 저장된 s_nonce가 클라이언트에 저장된 것과 다르다는 것을 다음과 같은 방식으로 판단한다. The client determines that the s_nonce stored on the server is different from the one stored on the client in the following way.

클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 트리거 메시지를 인증한다. 소정의 이유 때문에 인증이 실패하면, 클라이언트는 디폴트 난수를 이용하거나 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서, 다이제스트를 생성하고 트리거 메시지에 대한 인증을 다시 시도한다. After receiving the trigger message, the client authenticates the trigger message using the stored s_nonce. If authentication fails for some reason, the client uses the default random number or uses the session ID or trigger message ID as a random number to generate a digest and retry authentication of the trigger message.

인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce는 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다. If authentication succeeds, the s_nonce previously used by the server is incorrect and indicates that the s_nonce stored on the server is different from that stored on the client.

단계 802: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다. Step 802: The client sends a session request containing the update information to the server.

클라이언트는, s_nonce를 갱신할 필요가 있다고 판단한 후에, 새로운 s_nonce를 생성하고, 이 s_nonce를 세션 요청에 추가한 후, 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다. After the client determines that it needs to update s_nonce, it creates a new s_nonce, adds this s_nonce to the session request, and then sends the session request to the server, asking the server to initiate a session and update s_nonce. .

세션 요청에는, SessionID, 새롭게 생성한 s_nonce, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. 이러한 세션 요청에서, 디폴트 난수, 세션 ID 또는 트리거 메시지 ID를 난수로 사용해서 다이제스트를 생성할 수 있다. The session request includes authentication information including a SessionID, a newly created s_nonce, and a digest created using c_nonce. In this session request, a digest can be created using the default random number, session ID, or trigger message ID as a random number.

새롭게 생성한 s_nonce는 세션 요청(SyncML)의 SyncHdr 또는 SyncBody에 포함될 수 있다. The newly generated s_nonce may be included in SyncHdr or SyncBody of the session request (SyncML).

포함 방법을 아래에 설명한다. 새롭게 생성한 s_nonce가 SyncHdr에 포함되는 것으로 가정한다. The inclusion method is described below. It is assumed that the newly created s_nonce is included in SyncHdr.

s_nonce를 포함시키기 위해, SyncHdr을 다음과 같이 변경한다. To include s_nonce, change SyncHdr to

SyncHdr (VerDTD, VerProto, SessionID, MsgID, Target, Source, RespURI?, NoResp?, Cred?, Chal?, Meta?)>SyncHdr (VerDTD, VerProto, SessionID, MsgID, Target, Source, RespURI ?, NoResp ?, Cred ?, Chal ?, Meta?)>

s_nonce를 포함하는 SyncML 메시지는 다음과 같다:A SyncML message containing s_nonce looks like this:

<SyncML xmlns='SYNCML:SYNCML1.2'><SyncML xmlns = 'SYNCML: SYNCML1.2'>

<SyncHdr><SyncHdr>

......

<Chal><Chal>

<Meta><Meta>

<NextNonce xmlns='Syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce><NextNonce xmlns = 'Syncml: metinf'> LG3iZQhhdmKNHg == </ NextNonce>

</Meta></ Meta>

</Chal></ Chal>

</SyncHdr></ SyncHdr>

<SyncBody><SyncBody>

......

</SyncBody></ SyncBody>

</SyncML></ SyncML>

단계 803: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다. Step 803: The server returns a response including the authentication result, the update result, and the authentication request.

서버는, 세션 요청을 수신한 후에, c_nonce를 사용해서 클라이언트에 대한 인증을 행하고, 세션 요청에 포함된 갱신이 완료된 s_nonce를 사용해서 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 명령, 및 인증 요청을 포함하는 응답을 클라이언트에게 회신한다. 서버는 c_nonce를 사용해서 세션 요청을 인증하는 것이 바람직하다. 인증이 성공한 후, 서버는 s_nonce를 갱신함으로써, 서버에 저장된 s_nonce와 클라이언트에 저장된 것 간의 동기화를 유지할 수 있다. After receiving the session request, the server authenticates the client using c_nonce and updates the stored s_nonce using the s_nonce in which the update included in the session request is completed. After authentication succeeds and the update is completed, the server generates an authentication request using the updated s_nonce and returns a response to the client that includes the authentication result, the update command, and the authentication request. The server preferably uses c_nonce to authenticate session requests. After successful authentication, the server can update s_nonce to maintain synchronization between the s_nonce stored on the server and the one stored on the client.

더 구체적으로 말하면, 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 갱신된 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, the response includes authentication information including a result generated by the server authenticating the client, an update result of s_nonce, and a digest generated using the updated s_nonce.

단계 804: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 804: The client returns a message containing the authentication result to the server.

클라이언트는 갱신된 s_nonce를 사용해서 서버에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다. The client authenticates to the server using the updated s_nonce. After authentication succeeds, the client returns the authentication result to the server.

또한, 본 발명의 제5 실시예에 따른 인증 방법은 본 발명의 제2 실시예에 따른 인증 방법에 적용함으로써, 신호 상호작용의 횟수를 감소시킬 수 있다. In addition, the authentication method according to the fifth embodiment of the present invention can be applied to the authentication method according to the second embodiment of the present invention, thereby reducing the number of signal interactions.

도 9에 나타낸 바와 같이, 본 발명의 제6 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다: As shown in Fig. 9, the authentication method according to the sixth embodiment of the present invention includes the following steps:

단계 901: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 s_nonce가 포함된다. Step 901: The server sends a trigger message to the client. This message contains s_nonce.

단계 902: 서버는 인증이 실패한 것으로 판단한다. Step 902: The server determines that authentication failed.

예를 들어, 서버가 특정 기간 내에 클라이언트로부터 세션 요청을 받지 못하면, 서버는 인증이 실패한 것으로 간주한다. For example, if a server does not receive a session request from a client within a certain period of time, the server considers the authentication failed.

단계 903: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 트리거 메시지 난수가 포함된다. Step 903: The server sends a trigger message to the client. This message contains a trigger message random number.

서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 생성한 난수를 사용해서 다이제스트를 생성하고, 다이제스트를 사용해서 트리거 메시지를 생성한다. Before sending, the server generates a trigger message random number, generates a digest using the generated random number, and generates a trigger message using the digest.

클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지가 트리거 메시지에 전용으로 사용될 수 있는 난수를 사용하는지 여부를 판단하고, s_nonce를 갱신할 필요가 있다고 결정한다. 그 결과, 클라이언트는 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하고, s_nonce를 갱신할 필요가 있다는 것을 알게 된다. After receiving the trigger message, the client determines whether the trigger message uses a random number that can be used exclusively for the trigger message, and determines that the s_nonce needs to be updated. As a result, the client knows that the trigger message needs to update the s_nonce using a random number that is available exclusively for the trigger message.

트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하는지 여부를 판단하는 방법은 다음과 같다: 클라이언트는 트리거 메시지가 난수 필드를 포함하는지 여부를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 즉, 트리거 메시지가 난수 필드를 포함하면, 트리거 메시지는 트리거 메시지 난수를 사용하는 것이다. 이와 달리, 클라이언트는 트리거 메시지 내의 버전 필드 정보를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 버전 필드는 메시지가 트리거 메시지 난수를 사용하는지 여부에 대하여 나타내기 때문이다. The method for determining whether a trigger message uses a random number available exclusively for the trigger message is as follows: The client determines whether the trigger message uses a trigger message random number by determining whether the trigger message includes a random number field. do. That is, if the trigger message includes a random number field, the trigger message is to use the trigger message random number. Alternatively, the client determines whether the trigger message uses the trigger message random number by determining the version field information in the trigger message. This is because the version field indicates whether the message uses a trigger message random number.

클라이언트는, 트리거 메시지가 트리거 메시지 난수가 아닌 다른 것을 사용하는 것을 발견하면, s_nonce를 갱신할 필요가 없다는 것을 나타내기 때문에, 일반적인 처리 과정을 수행한다. If the client finds that the trigger message uses something other than the trigger message random number, it indicates that there is no need to update s_nonce, so it performs the normal processing.

단계 905: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다. Step 905: The client sends a session request containing the update information to the server.

클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 트리거 메시지 난수를 사용한다고 판정하면, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판정되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는, 발견한 패스워드, 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다. When the client receives the trigger message and determines that the trigger message uses a trigger message random number that is available exclusively for the trigger message, the client determines whether the trigger message random number included in the trigger message is valid. The determination method is as described above. If the trigger message random number is determined to be valid, the client searches the client management tree to find a password corresponding to the server. The client uses the found password, server identifier, and trigger to generate a digest and authenticate the trigger message. A detailed authentication method is described in step 301. The authentication method of the client depends on how the digest is created.

트리거 메시지에 대한 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성하고, 생성한 s_nonce를 세션 요청에 추가하며, 갱신 정보가 포함된 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다. After successful authentication of the trigger message, the client creates a new s_nonce, adds the generated s_nonce to the session request, and sends a session request containing update information to the server, which causes the server to initiate a session and update the s_nonce. Ask.

세션 요청에는, SessionID, 갱신된 s_nonce, 및 c_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. The session request includes authentication information including a SessionID, an updated s_nonce, and a digest generated using c_nonce.

새롭게 생성한 s_nonce는 세션 요청의 SyncHdr 또는 SyncBody에 포함될 수 있다. The newly created s_nonce may be included in SyncHdr or SyncBody of the session request.

단계 906: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다. Step 906: The server returns a response including the authentication result, the update result, and the authentication request.

서버는, 세션 요청을 수신한 후, c_nonce를 사용해서 클라이언트에 대한 인증을 행하며, 세션 요청에 포함된, 갱신된 s_nonce를 사용해서 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다. After receiving the session request, the server authenticates the client using c_nonce and updates the stored s_nonce using the updated s_nonce included in the session request. After authentication succeeds and the update is completed, the server generates an authentication request using the updated s_nonce and returns a response back to the client that includes the authentication result, the update result, and the authentication request.

더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 및 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, the response includes authentication information including a result of the server authenticating the client, an update result of s_nonce, and a digest generated using s_nonce.

단계 907: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 907: The client returns a message containing the authentication result to the server.

클라이언트는 갱신된 s_nonce를 사용해서 서버에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다. The client authenticates to the server using the updated s_nonce. After authentication succeeds, the client returns the authentication result to the server.

더 구체적으로 말하면, 이 메시지에는 서버를 인증한 결과 및 기타 관련 정보가 포함된다. More specifically, this message includes the result of authenticating the server and other relevant information.

종래, 클라이언트가 서버에 대한 인증이 성공한 후에 세션을 개시하지 않은 경우도 있었다. 이 경우, 클라이언트는 s_nonce가 만료되었거나 정확하지 않아서 갱신할 필요가 있다고 판단한다면, s_nonce를 갱신하거나 s_nonce를 효과적으로 유지하는 것이 불가능하다. Conventionally, the client has not started a session after successful authentication with the server. In this case, if the client determines that s_nonce has expired or is not correct, it is impossible to update s_nonce or maintain s_nonce effectively.

따라서, 본 발명의 제7 실시예에 따른 인증 방법은 대응하는 해결 방안을 제공한다. Thus, the authentication method according to the seventh embodiment of the present invention provides a corresponding solution.

본 발명의 제7 실시예에 따른 인증 방법에서, 클라이언트가 서버에 대한 인증을 성공하고 세션을 개시하지 않는 것으로 결정한 후에, 클라이언트는 상태(state) 응답을 서버에 발송한다. 클라이언트가, s_nonce가 만료되었거나 서버에 저장된 s_nonce와 불일치하다고 판정하면, 클라이언트는 새로운 s_nonce를 생성하고, 생성한 새로운 s_nonce를 상태 응답에 추가한다. 클라이언트는 c_nonce, 클라이언트의 사용자명(username)과 패스워드, 및 응답 메시지 본문을 사용해서, 다이제스트를 계산한다. 따라서, 상태 응답을 수신한 후에, 서버는 c_nonce, 클라이언트의 사용자명과 패스워드, 및 응답 메시지 본문을 사용해서 계산한 다이제스트에 따라 정보를 인증할 수 있다. 인증이 성공한 후, 서버는 상태 응답에 포함된 새로운 s_nonce에 따라, 저장된 s_nonce를 갱신한다. In the authentication method according to the seventh embodiment of the present invention, after the client determines that the authentication with the server is successful and does not start the session, the client sends a state response to the server. If the client determines that s_nonce has expired or is inconsistent with the s_nonce stored on the server, the client creates a new s_nonce and adds the new s_nonce to the status response. The client computes the digest using c_nonce, the client's username and password, and the response message body. Thus, after receiving the status response, the server can authenticate the information according to the digest computed using c_nonce, the username and password of the client, and the response message body. After authentication succeeds, the server updates the stored s_nonce according to the new s_nonce included in the status response.

도 10에 나타낸 바와 같이, 새로운 s_nonce를 갖는 상태 응답에는, 다이제스트, 통지 헤더(notification-hdr), 및 통지 본문(notification-body)이 포함된다. As shown in FIG. 10, the status response with the new s_nonce includes a digest, a notification header (notification-hdr), and a notification-body.

통지 헤더는, 버전, 상태 코드(state-code), 통지 ID, 새로운 난수(Next-nonce), 보류(future-use), 세션 ID(SessionID), 인증 ID의 길이(length-authname) 및 인증 ID(authname)가 포함된다. The notification header includes the version, state-code, notification ID, new next-nonce, future-use, session ID (SessionID), length of authentication ID (length-authname), and authentication ID. (authname) is included.

NextNonce는 새로운 s_nonce(서버 난수)이다. NextNonce is a new s_nonce (server random number).

종래, s_nonce가 정확하지 않으면, s_nonce와 c_nonce를 다시 사용하지 않으며, 클라이언트와 서버는 디폴트 난수를 사용해서 인증 정보를 생성한다. 따라서, 악의의 서버가 임의의 메시지를 가로채서 서버 또는 클라이언트를 공격할 수 있다. Conventionally, if s_nonce is not correct, s_nonce and c_nonce are not used again, and the client and server generate authentication information using the default random number. Thus, a malicious server can intercept arbitrary messages and attack the server or client.

s_nonce는 c_nonce와 다르며, 이들은 서버 및 클라이언트에 의해 각각 생성되고, 상대편에 대해 사용할 수 있다. 따라서, 이들 중 하나에 오류가 생겨도, 다른 쪽은 영향을 받지 않는다. 본 발명의 제8 및 제9 실시예에 따른 인증 방법에서, s_nonce에 오류가 있는 경우, s_nonce를 별도로 갱신하는 해결 방안을 제공한다. s_nonce is different from c_nonce, which is generated by the server and the client respectively, and can be used for the other side. Thus, if one of them fails, the other is not affected. In the authentication methods according to the eighth and ninth embodiments of the present invention, when there is an error in s_nonce, a solution for separately updating s_nonce is provided.

s_nonce에 오류가 있는 경우는 다음과 같다: 클라이언트가, s-nonce가 만료되었거나 서버에 저장된 s_nonce에 오류가 있다고, 예를 들어 클라이언트가, 서버에 저장된 s_nonce가 클라이언트에 저장된 s_nonce와 불일치 또는 비동기적이라고 판단한 경우이다. An error in s_nonce is as follows: The client has either an s-nonce expired or an error in the s_nonce stored on the server. This is the case.

서버에 저장된 s_nonce와 클라이언트에 저장된 s_nonce 간의 일치성 및 동기를 판단하는 방법은 다음과 같이 할 수 있다: 서버는 s_nonce를 사용해서 트리거 메시지를 발송한 후에, 서버가 특정의 기간 내에 클라이언트로부터 응답을 받지 못하거나; 또는 클라이언트가, 서버가 발송한 트리거 메시지에 디폴트 난수를 사용해서 생성한 다이제스트가 포함된 것을 발견하거나; 또는 클라이언트가, 서버에 의해 발송된 트리거 메시지에서 사용되는 난수가 없는 것을 발견한 경우이다. To determine the consistency and synchronization between s_nonce stored on the server and s_nonce stored on the client, you can do the following: After the server sends a trigger message using s_nonce, the server does not receive a response from the client within a specific period of time. Not; Or the client finds that the trigger message sent by the server contains a digest generated using the default random number; Or if the client finds that there is no random number used in the trigger message sent by the server.

s_nonce의 에러를 발견하고 서버에 대한 인증이 성공한 후에, 클라이언트는 세션 요청을 개시한다. 세션 요청에서, 클라이언트를 인증하기 위한 인증 정보는 c_nonce를 사용해서 생성되거나, 기본적인 인증 모드(즉, 사용자명과 패스워드)가 적용되고, s_nonce가 추가로 갱신된다. After discovering an error in s_nonce and authenticating to the server, the client initiates a session request. In the session request, authentication information for authenticating the client is generated using c_nonce, or the default authentication mode (ie username and password) is applied, and s_nonce is further updated.

본 발명의 제7 실시예와 제8 실시예의 인증 방법에 따라 s_nonce를 갱신하는 2가지 방법을 제공한다. According to the authentication method of the seventh and eighth embodiments of the present invention, two methods for updating s_nonce are provided.

제8 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성한다. 도 11에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다:In an eighth embodiment, the server generates a trigger message using the default random number. As shown in FIG. 11, the authentication method includes the following steps:

단계 1101: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다. Step 1101: The server sends a trigger message to the client to trigger the session.

이전의 s_nonce가 정확하지 않다고 판정한 후에, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성한 후 클라이언트에 발송한다. 이 트리거 메시지에는, 디폴트 난수를 사용해서 생성한 다이제스트, 트리거 정보, 및 기타 관련 정보가 포함된다. After determining that the previous s_nonce is incorrect, the server generates a trigger message using the default random number and sends it to the client. This trigger message contains digests generated using default random numbers, trigger information, and other related information.

단계 1102: 클라이언트는 트리거 메시지에 대한 인증에 실패하고, 디폴트 난수를 사용해서 재인증을 행한다. Step 1102: The client fails to authenticate the trigger message and re-authenticate using the default random number.

트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유 때문에 인증에 실패하면, 클라이언트는 디폴트 난수를 사용해서 다이제스트를 생성하고 트리거 메시지를 재인증한다. After receiving the trigger message, the client uses the stored s_nonce to create a digest and authenticate the trigger message. If authentication fails for some reason, the client generates a digest using the default random number and reauthenticates the trigger message.

인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce가 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다. If authentication succeeds, the s_nonce previously used by the server is incorrect and indicates that the s_nonce stored on the server is different from that stored on the client.

단계 1103: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다. Step 1103: The client sends a session request including update information to the server.

디폴트 난수를 사용해서 트리거 메시지에 대한 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성해서 세션 요청에 추가하고, 갱신 정보를 포함하는 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다.After successful authentication of the trigger message using the default random number, the client creates a new s_nonce, adds it to the session request, and sends a session request to the server that contains the update information, allowing the server to initiate the session and update the s_nonce. Ask.

이 세션 요청에는 세션 ID, 갱신된 s_nonce, 및 c_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. This session request contains authentication information including the session ID, updated s_nonce, and digest generated using c_nonce.

이상의 단계에서, 세션 ID는 난수로서 작용하거나, 트리거 메시지 ID가 디폴트 난수 대신에 난수로서 사용될 수 있어서, 고정 불변의 공공의 난수를 피하고 더 높은 안전성을 달성할 수 있다. In the above step, the session ID may act as a random number, or the trigger message ID may be used as a random number instead of the default random number, thereby avoiding fixed constant public random numbers and achieving higher safety.

세션 요청에 갱신된 s_nonce를 추가하는 방법은 기본적으로 제3 실시예 및 제4 실시예와 동일하기 때문에, 중복해서 설명하지는 않는다. Since the method of adding the updated s_nonce to the session request is basically the same as that of the third and fourth embodiments, the description thereof will not be repeated.

단계 1104: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다. Step 1104: The server returns a response including the authentication result, the update result, and the authentication request.

세션 요청을 수신한 후, 서버는 c_nonce를 사용해서 클라이언트에 대한 인증을 행하고, 세션 요청의 갱신된 s_nonce를 사용해서, 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다. After receiving the session request, the server authenticates the client with c_nonce and updates the stored s_nonce using the updated s_nonce of the session request. After authentication succeeds and the update is completed, the server generates an authentication request using the updated s_nonce and returns a response back to the client that includes the authentication result, the update result, and the authentication request.

더 구체적으로, 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 및 갱신된 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, the response includes authentication information including a result of the server authenticating the client, an update result of s_nonce, and a digest generated using the updated s_nonce.

단계 1105: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다. Step 1105: The client returns a message containing the authentication result to the server.

클라이언트는 갱신된 s_nonce를 사용해서 서버를 인증한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다. The client uses the updated s_nonce to authenticate the server. After authentication succeeds, the client returns the authentication result to the server.

제9 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성하지만, 세션 요청에는 갱신 정보가 포함되지 않는다. 도 12에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다: In the ninth embodiment, the server generates a trigger message using the default random number, but the session request does not include update information. As shown in FIG. 12, the authentication method includes the following steps:

단계 1201: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다. Step 1201: The server sends a trigger message to the client to trigger the session.

이전의 s_nonce가 정확하지 않다고 판정한 후, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성해서 클라이언트에게 발송한다. 트리거 메시지에는 디폴트 난수를 사용해서 생성한 다이제스트, 트리거 정보, 및 기타 관련 정보가 포함된다. After determining that the previous s_nonce is incorrect, the server generates a trigger message using the default random number and sends it to the client. Trigger messages include digests created using default random numbers, trigger information, and other related information.

단계 1202: 클라이언트는 트리거 메시지에 대한 인증이 실패하고, 디폴트 난수를 사용해서 재인증을 행한다. Step 1202: The client fails to authenticate the trigger message and re-authenticates using the default random number.

트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유 때문에 인증에 실패한 경우, 클라이언트는 디폴트 난수를 사용해서 다이제스트를 생성하고 트리거 메시지를 재인증한다. After receiving the trigger message, the client uses the stored s_nonce to create a digest and authenticate the trigger message. If authentication fails for some reason, the client generates a digest using the default random number and reauthenticates the trigger message.

인증이 성공하면, 서버가 이전에 사용한 s_nonce가 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다. If authentication succeeds, the s_nonce previously used by the server is incorrect and indicates that the s_nonce stored on the server is different from that stored on the client.

단계 1203: 클라이언트를 정보에 대한 인증에 성공한 후, 세션 요청을 서버에 발송한다. Step 1203: After authenticating the client with the information, send a session request to the server.

인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. After authentication succeeds, the client sends a session request to the server to initiate the session.

세션 요청에는, 세션 ID, c_nonc를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. The session request includes authentication information including the digest generated using the session ID, c_nonc.

단계 1203에서는, 클라이언트와 서버 사이에 세션 접속이 확립된다. In step 1203, a session connection is established between the client and the server.

단계 1204: 서버는 인증 결과 및 인증 요청을 포함하는 응답을 회신한다. Step 1204: The server returns a response containing the authentication result and the authentication request.

클라이언트가 발송한 인증 정보에 따라, 서버는 클라이언트를 인증한다. 인증이 성공한 후, 서버는 디폴트 난수를 사용해서 인증 정보를 생성하고, 인증 결과 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다. According to the authentication information sent by the client, the server authenticates the client. After authentication succeeds, the server generates authentication information using the default random number and returns a response back to the client that includes the authentication result and the authentication request.

더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, 세션 ID, 디폴트 난수를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. More specifically, the response includes authentication information including the digest generated by the server as a result of authenticating the client using the session ID and the default random number.

단계 1205: 클라이언트는 갱신 명령 및 인증 결과를 서버에 회신한다. Step 1205: The client returns an update command and an authentication result to the server.

클라이언트는 디폴트 난수를 사용해서 서버를 인증한다. 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성하고, s_nonce를 갱신하기 위한 명령을 서버에 발송한다. The client authenticates the server using the default random number. After authentication succeeds, the client creates a new s_nonce and sends a command to the server to update the s_nonce.

단계 1206: 서버는 갱신 결과를 클라이언트에 회신한다. Step 1206: The server returns an update result to the client.

갱신 메시지를 수신한 후, 서버는 저장된 s_nonce를 클라이언트의 지시에 따라 갱신하고, 갱신 결과를 클라이언트에 회신한다. After receiving the update message, the server updates the stored s_nonce according to the client's instructions and returns the update result to the client.

상기 단계에서, 세션 ID를 난수로서 사용하거나, 디폴트 난수 대신에 트리거 메시지 ID를 난수로서 사용함으로써, 불변의 공공의 난수를 피하고 안전성을 향상시킬 수 있다. In this step, by using the session ID as a random number or by using the trigger message ID as a random number instead of the default random number, it is possible to avoid constant public random numbers and improve safety.

이 경우, 서버 패스워드를 갱신하여 시스템의 신뢰성을 향상시킬 수 있다. In this case, the server password can be updated to improve the reliability of the system.

다른 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성하지만, 세션 요청에는 디폴트 난수가 포함되지 않는다. 인증 방법은 다음과 같은 단계를 포함한다. In another embodiment, the server generates a trigger message using the default random number, but the session request does not include the default random number. The authentication method includes the following steps.

이전의 s_nonce가 정확하지 않다고 판정한 후, 서버는 디폴트 난수를 사용하거나 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 트리거 메시지를 생성하고, 이 메시지를 클라이언트에 발송한다. 트리거 메시지에는, 디폴트 난수, 세션 ID 또는 트리거 메시지 ID를 사용해서 생성한 다이제스트, 트리거 정보 및 기타 관련 정보가 포함된다. After determining that the previous s_nonce is incorrect, the server generates a trigger message using the default random number or using the session ID or trigger message ID as a random number, and sends this message to the client. The trigger message includes a digest generated using a default random number, session ID, or trigger message ID, trigger information, and other related information.

트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유에 의해 인증이 실패하면, 클라이언트는 디폴트 난수를 사용하거나, 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 다이제스트를 생성하고, 트리거 메시지에 대한 재인증을 행한다. 인증이 성공하면, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. 세션 요청에는, 세션 ID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. After receiving the trigger message, the client uses the stored s_nonce to create a digest and authenticate the trigger message. If authentication fails for some reason, the client uses the default random number or generates a digest using the session ID or trigger message ID as a random number and reauthenticates the trigger message. If authentication succeeds, the client sends a session request to the server to initiate the session. The session request includes authentication information including a session ID and a digest generated using c_nonce.

서버는 c_nonce를 사용해서 세션 요청을 인증한다. 인증이 실패하면, 서버는 질의 메시지를 발송해서 c_nonce를 갱신하고 재인증을 요청한다. 인증이 성공하면, 서버는 s_nonce를 사용해서 생성한 인증 요청을 발송하고, 클라이언트는 s_nonce를 사용해서 인증을 행한다. 인증이 실패하면, 클라이언트는 질의 메시지를 발송해서 s_nonce를 갱신하고 재인증을 요청할 수 있다. 인증이 성공한 후, 클라이언트를 결과를 회신한다. The server uses c_nonce to authenticate session requests. If authentication fails, the server sends a query message to update c_nonce and request reauthentication. If authentication succeeds, the server sends an authentication request generated using s_nonce, and the client authenticates using s_nonce. If authentication fails, the client can send a query message to update s_nonce and request reauthentication. After authentication succeeds, the client returns a result.

또한, 이러한 단계에서, 클라이언트는 갱신된 s_nonce를 세션 요청에 추가하고, 이러한 요청을 서버에 발송할 수 있다. 서버가 발송한 인증 요청은 새로운 s_nonce를 사용한다. Also at this stage, the client can add the updated s_nonce to the session request and send this request to the server. Authentication requests sent by the server use the new s_nonce.

앞서 설명한 바와 같이, s_nonce에 에러가 있으면, s_nonce에 대해서만 갱신을 행하고, c_nonce는 갱신하지 않는다. 시스템이 s_nonce의 에러를 취급하는 경우, 시스템이 디폴트 난수를 사용하거나, 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 인증을 행하는 경우에도, c_nonce에 대해서는 갱신을 할 필요가 없기 때문에, 디폴트 난수를 사용하는 횟수 또는 세션 ID 또는 트리거 메시지 ID를 난수로서 사용하는 횟수를 감소시켜, 시스템의 안전성을 향상시킬 수 있다. As described above, if there is an error in s_nonce, only the s_nonce is updated and the c_nonce is not updated. If the system handles an s_nonce error, use the default random number, because the c_nonce does not need to be updated, even if the system uses the default random number or authenticates using the session ID or trigger message ID as a random number. By reducing the number of times of use or the number of times of using the session ID or the trigger message ID as random numbers, the safety of the system can be improved.

종래, 세션에 사용된 s_nonce 및 c_nonce는 각각 클라이언트와 서버에 의해 생성 및 갱신되기 때문에, 클라이언트와 서버의 관리 부하가 더 과중하게 된다. Conventionally, since s_nonce and c_nonce used in the session are generated and updated by the client and the server, respectively, the management load of the client and the server becomes heavier.

본 발명의 제10 실시예에서는, 종래의 s_nonce 및 c_nonce를 교체하기 위해 세션에 하나의 난수가 사용되고, 클라이언트와 서버 사이에서 인증을 수행한다. 전송 계층(transmission layer) 보안 메커니즘 또는 애플리케이션 계층 보안 메커니즘에 의해 해당 세션이 안전하게 되기 때문에, 해당 난수를 클라이언트와 서버 간의 인증을 구현하는 데에 사용할 수 있다. In the tenth embodiment of the present invention, one random number is used in the session to replace the conventional s_nonce and c_nonce, and authentication is performed between the client and the server. Because the session is secured by a transmission layer security mechanism or an application layer security mechanism, the random number can be used to implement authentication between the client and server.

서버 또는 클라이언트가 난수를 생성할 수 있다. 서버가 난수를 생성한다고 가정하고, 본 발명의 제10 실시예의 인증 방법에 대하여 설명한다. The server or client can generate random numbers. Assuming that the server generates a random number, the authentication method of the tenth embodiment of the present invention will be described.

제10 실시예에 따라, 난수를 갱신하는 두 가지 방법을 제공한다. According to a tenth embodiment, two methods for updating random numbers are provided.

방법 1: 서버는 난수를 갱신한다. Method 1: The server updates random numbers

먼저, 서버는 난수 갱신 명령(NextNonce)을 하달한다. 난수 갱신 명령은 새로운 난수를 포함한다. First, the server issues a random update command (NextNonce). The random number update command includes a new random number.

난수 갱신 명령을 수신한 후, 클라이언트는 난수 갱신 명령에 포함된 새로운 난수를 사용해서, 저장된 난수를 갱신한다. After receiving the random number update command, the client updates the stored random number using the new random number included in the random number update command.

갱신 명령은 인증 메시지에 포함될 수 있다. 즉, 이 메시지는 갱신 명령 및 서버 인증 정보를 포함한다. 갱신 명령은 다른 관리 메시지에 포함될 수도 있다. 즉, 이 메시지는 서버 인증 정보를 포함하지 않는다. 갱신 명령이 인증 메시지에 포함된 경우, 클라이언트는, 해당 메시지를 수신한 후, 난수 갱신 명령에 따라 난수를 갱신하고, 갱신한 난수를 사용해서 다이제스트를 생성하고 정보를 인증한다. 인증이 성공한다. 이 경우, 악의의 서버가 메시지를 가로챘다면, 악의의 서버는 클라이언트에 대하여 언제라도 리플레이 공격을 시작할 수 있다. 이러한 공격을 방지하기 위하여, 난수 갱신 명령이 인증 메시지에 포함되어 있다면, 클라이언트는 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 정보를 인증한다. 클라이언트는, 메시지를 수신한 후, 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 인증을 행한다. 인증이 성공한 후, 클라이언트는 난수 갱신 명령에 따라, 저장된 난수를 갱신한다. 다른 관리 메시지가 난수 갱신 명령을 포함하고 있다면, 새로운 난수를 포함하는 메시지와 인증 정보를 포함하는 다른 메시지는 개별적으로 상대편으로 발송되기 때문에, 리플레이 공격의 위험이 없다. The update command may be included in the authentication message. In other words, this message includes an update command and server authentication information. The update command may be included in other management messages. That is, this message does not contain server authentication information. When the update command is included in the authentication message, the client, after receiving the message, updates the random number according to the random number update command, generates a digest using the updated random number, and authenticates the information. Authentication succeeds In this case, if the malicious server intercepts the message, the malicious server can launch a replay attack on the client at any time. To prevent this attack, if a random number update command is included in the authentication message, the client authenticates the information using a digest generated using an unupdated random number. After receiving the message, the client authenticates using the digest generated using the non-updated random number. After authentication succeeds, the client updates the stored random number according to the random number update command. If another management message contains a random number update command, there is no risk of a replay attack because the message containing the new random number and the other message containing the authentication information are sent to the other side separately.

도 13에 나타낸 바와 같이, 이 응답이 난수 갱신 명령에 포함된다고 가정하면, 다음과 같은 처리 과정이 행해진다. As shown in Fig. 13, assuming that this response is included in the random number update command, the following processing is performed.

단계 1301: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다. Step 1301: The server sends a trigger message to the client to trigger the session.

트리거 메시지에는, 공유 난수(shared nonce)를 사용해서 생성된 다이제스트 및 트리거 정보가 포함된다. The trigger message contains digest and trigger information generated using a shared nonce.

공유 난수는 서버에 의해 생성되며 서버 및 클라이언트에 모두 사용될 수 있다. Shared random numbers are generated by the server and can be used by both servers and clients.

실제로, 본 단계에서의 공유 난수는 트리거 메시지 난수 또는 디폴트 난수가 될 수 있다. 서버는 난수를 사용하지 않는 경우도 있지만, 서버 ID 및 패스워드를 사용해서 세션을 트리거하기 위한 트리거 메시지를 생성하기 때문에, 클라이언트는 서버 ID 및 패스워드를 사용해서 다이제스트를 생성함으로써 트리거 메시지를 인증할 수 있다. In practice, the shared random number in this step may be a trigger message random number or a default random number. Although the server may not use a random number, the server ID and password are used to generate a trigger message to trigger the session, so the client can authenticate the trigger message by generating a digest using the server ID and password. .

단계 1302: 클라이언트는 세션 요청을 서버에 발송한다. Step 1302: The client sends a session request to the server.

클라이언트는, 트리거 메시지를 수신한 후, 저장된 s_nonce를 사용해서 다이제스트르 생성하고 트리거 메시지를 인증한다. 인증이 성공하면, 클라이언트를 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. After receiving the trigger message, the client uses the stored s_nonce to generate a digest and authenticate the trigger message. If authentication succeeds, the client sends a session request to the server to initiate the session.

세션 요청에는, 세션 ID, 공유 난수를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다. The session request includes authentication information including a session ID and a digest generated using a shared random number.

본 단계에서, 클라이언트와 서버 사이에 세션 접속이 확립된다. In this step, a session connection is established between the client and the server.

단계 1303: 서버는 인증 결과 및 인증 요청을 포함하는 응답을 회신하는데, 이 응답에는 난수 갱신 명령이 포함된다. Step 1303: The server returns a response containing the authentication result and the authentication request, the response including a random number update command.

서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트에 대한 인증을 행한다. 인증이 성공하면, 서버는 공유 난수를 갱신하여야 한다고 판단하면, 새로운 공유 난수를 생성하고, 인증 결과 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다. 이 응답에는 난수 갱신 명령이 포함된다. The server authenticates the client in accordance with the authentication information sent by the client. If authentication succeeds, the server determines that it must update the shared random number, generates a new shared random number, and returns a response including the authentication result and the authentication request to the client. This response contains a random number update command.

더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, 세션 ID, 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 포함하는 인증 정보, 및 새로운 난수를 포함하는 난수 갱신 명령이 포함된다. More specifically, the response includes a session ID, authentication information including a digest generated using a random number that has not been updated, as a result of the server authenticating the client, and a random number update command containing the new random number.

단계 1304: 클라이언트는, 응답을 수신한 후, 갱신되지 않은 난수를 사용해서 메시지를 인증한다. Step 1304: After receiving the response, the client authenticates the message using the random number that is not updated.

단계 1305: 인증이 성공하고, 클라이언트는 난수 갱신 명령에 포함된 새로운 난수를 사용해서, 난수 갱신 명령에 지시된 대로, 저장된 공유 난수를 갱신한다. Step 1305: If authentication succeeds, the client uses the new random number included in the random number update command to update the stored shared random number, as indicated in the random number update command.

단계 1306: 클라이언트는 인증 결과 및 갱신 결과를 포함하는 메시지를 서버에 회신한다. Step 1306: The client returns a message containing the authentication result and the update result to the server.

더 구체적으로 말하면, 이 메시지에는, 클라이언트가 서버를 인증한 결과, 공유 난수를 갱신한 결과 및 기타 관련 정보가 포함된다.More specifically, this message includes the result of the client authenticating the server, the result of updating the shared random number, and other relevant information.

서버 및 클라이언트는 공유 난수의 유효성 주기(validity period)를 상이하게 규정할 수 있다. 공유 난수가 유효하다고 서버가 판정하면, 공유 난수의 유효성 주기가 클라이언트에 대해 만료될 수 있다. 따라서, 클라이언트에 대한 공유 난수의 유효성을 유지하기 위해, 본 발명의 제10 실시예는, 클라이언트가 서버에 대하여 공유 난수의 갱신을 요청하는 해결 방안을 제공한다. The server and client can define different validity periods of shared random numbers. If the server determines that the shared random number is valid, the validity period of the shared random number may expire for the client. Therefore, in order to maintain the validity of the shared random number for the client, the tenth embodiment of the present invention provides a solution in which the client requests the server to update the shared random number.

클라이언트는 장치 관리(DM) 명령 중에서 경고(Alert) 명령을 사용해서 서버에 대해 공유 난수를 갱신하도록 요청한다. 서버가 명령을 이해할 수 있도록 하기 위해, 해당 명령에 경고 타입이 추가된다. 경고 타입은 서버에게 난수를 갱신하라는 요청의 표시이다. The client requests the server to update the shared random number using an Alert command among the device management (DM) commands. In order for the server to understand the command, a warning type is added to the command. The warning type is an indication of a request to the server to update a random number.

클라이언트는, 난수를 갱신하여야 한다고 판단되면, 공유 난수를 갱신하는 요청을 경고 명령을 통해 서버에 발송한다. 이 요청은 인증 메시지 또는 다른 관리 메시지에 포함될 수 있다. 서버는, 이러한 요청을 수신하면, 구체적인 상황에 따라, 난수를 갱신할지 여부를 결정한다. If the client determines that it needs to update the random number, it sends a request to the server through a warning command to update the shared random number. This request may be included in an authentication message or other management message. When the server receives such a request, the server determines whether to update the random number according to a specific situation.

경고(Alert)의 타입은 org.openmobilealliance.NextNonce로서 정의될 수 있다. The type of alert may be defined as org.openmobilealliance.NextNonce.

아래의 예는 경고 타입 메시지를 나타낸다. The following example shows a warning type message.

<Alert><Alert>

<CmdID>2</CmdID><CmdID> 2 </ CmdID>

<Data>1226</Data><!-- Generic Alert --><Data> 1226 </ Data> <!-Generic Alert->

<Item><Item>

<Meta><Meta>

<Type xmlns="syncml:metinf"><Type xmlns = "syncml: metinf">

org.openmobilealliance.NextNonceorg.openmobilealliance.NextNonce

</Type></ Type>

</Meta></ Meta>

<Data/><Data />

</Item></ Item>

</Alert></ Alert>

클라이언트가 난수를 갱신하는 방법은 서버가 난수를 갱신하는 방법과 유사하기 때문에, 중복해서 설명하지는 않는다. The way in which the client updates the random number is similar to the way in which the server updates the random number, so it is not repeated.

방법 2: 서버와 클라이언트는 난수를 공동으로 갱신한다. Method 2: The server and the client update the random number jointly.

서버와 클라이언트는 모두 공유 난수를 갱신할 필요가 있다고 판정되면, 갱신을 위한 새로운 난수를 생성할 수 있다. If both the server and the client determine that they need to update the shared random number, they can generate a new random number for the update.

난수는 NextNonce(난수 갱신) 명령을 통해 갱신될 수 있다. 갱신의 예를 아래에 나타낸다. Random numbers can be updated with the NextNonce command. An example of the update is shown below.

<Chal><Chal>

<Meta><Meta>

<NextNonce xmlns='syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce><NextNonce xmlns = 'syncml: metinf'> LG3iZQhhdmKNHg == </ NextNonce>

</Meta></ Meta>

</Chal></ Chal>

NextNonce 명령은 세션 처리 과정 중의 메시지 내에 포함될 수 있다. 예를 들어, 클라이언트는 NextNonce 명령을 세션 요청에 추가해서 서버에 발송함으로써, 서버로 하여금 공유 난수를 갱신하라고 요청하거나, NextNonce 명령을 다른 메시지에 추가할 수 있다. NextNonce commands can be included in messages during session processing. For example, a client can send a NextNonce command to the server in addition to the session request, requesting the server to update the shared random number, or adding the NextNonce command to another message.

서버 또는 클라이언트 중의 어느 것이라도 공유 난수를 갱신하면, 갱신 명령이 인증 메시지 내에 포함되어 있는 경우, 상대편이 메시지를 수신한 후에, 상대편은 먼저 난수를 갱신하고 나서, 갱신한 난수를 사용해서 다이제스트를 생성하고 정보를 인증한다. 인증이 성공한다. 이 경우, 악의의 서버가 메시지를 가로챘다면, 악의의 서버는 클 라이언트에 대하여 언제라도 리플레이 공격을 시작할 수 있다. 이러한 공격을 방지하기 위하여, NextNonce 명령이 인증 메시지에 포함되어 있다면, 상대편은 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 정보를 인증한다. 상대편은, 인증이 성공한 후, NextNonce 명령에 따라, 저장된 난수를 갱신한다. 다른 관리 메시지가 난수 갱신 명령을 포함하고 있다면, 새로운 난수를 포함하는 메시지 및 인증 정보를 포함하는 다른 메시지가 상대편으로 별도로 발송되기 때문에, 리플레이 공격의 위험이 없다. If either the server or the client updates the shared random number, and the update command is included in the authentication message, after the other side receives the message, the other side first updates the random number and then generates a digest using the updated random number. And verify the information. Authentication succeeds In this case, if the malicious server intercepts the message, the malicious server can launch a replay attack on the client at any time. To prevent this attack, if the NextNonce command is included in the authentication message, the other side authenticates the information using a digest generated using an unupdated random number. After the other party successfully authenticates, the other party updates the stored random number according to the NextNonce command. If the other management message includes a random number update command, there is no risk of a replay attack because a message containing the new random number and another message containing authentication information are sent separately to the other side.

본 발명의 제10 실시예에서, 서버와 클라이언트는 공유 난수를 사용해서 인증을 행한다. 이 경우, 공유 난수에 에러가 있다면, 이 에러는 앞서 설명한 방법들을 사용해서 처리할 수 있다. 본 발명의 제5 실시예에서의 단계 803에서, 메시지는 새로운 난수, 및 새로운 난수를 사용해서 생성된 다이제스트를 포함한다. 이 경우, 악의의 서버가 메시지를 가로챈다면, 악의의 서버는 메시지를 서버 또는 클라이언트에게 반복해서 발송함으로써 리플레이 공격을 시작할 수 있다. 서버 또는 클라이언트는 메시지를 식별할 수 없기 때문에, 해당 메시지를 유효한 것이라고 판단하고, 대응하는 동작을 수행한다. 이러한 공격을 방지하기 위해, 갱신되지 않은 난수를 사용해서 다이제스트를 생성할 수 있다. 이렇게 함으로써, 서버는, 메시지를 수신한 후에, 갱신되지 않은 난수를 사용해서 다이제스트를 계산하고 메시지 발송자, 즉 클라이언트를 인증할 수 있으며, 이후 NextNonce 명령에 따라, 저장된 난수를 갱신한다. In the tenth embodiment of the present invention, the server and the client authenticate using the shared random number. In this case, if there is an error in the shared random number, this error can be handled using the methods described above. In step 803 in the fifth embodiment of the present invention, the message includes a new random number and a digest generated using the new random number. In this case, if the malicious server intercepts the message, the malicious server may initiate a replay attack by repeatedly sending the message to the server or client. Since the server or client cannot identify the message, it determines that the message is valid and performs the corresponding operation. To prevent such attacks, digests can be created using random numbers that are not updated. By doing so, after receiving the message, the server can use the unupdated random number to calculate the digest and authenticate the message sender, i.e. the client, and then update the stored random number according to the NextNonce command.

본 발명의 제10 실시예는 시스템의 부하를 효과적으로 경감시킨다. The tenth embodiment of the present invention effectively reduces the load on the system.

도 14에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 시스템은, 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하며, 생성한 트리거 메시지를 발송하도록 된 서버(1410); 및As shown in Fig. 14, the authentication system according to the first embodiment of the present invention includes a server 1410 configured to generate a trigger message using a trigger message random number and to send the generated trigger message; And

트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 수신하고, 트리거 메시지 난수를 사용하여, 생성한 트리거 메시지를 인증, 즉 트리거 메시지의 유효성을 검증하도록 된 클라이언트(1420)를 포함한다. Client 1420 configured to receive a trigger message generated using the trigger message random number and to authenticate the trigger message generated using the trigger message random number, ie, validate the trigger message.

서버(1410)는, The server 1410

트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 된 제1 생성 유닛(1412); A first generating unit 1412 configured to generate a trigger message using the trigger message random number;

트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 발송하는 발송 유닛(1411); A sending unit 1411 for sending a trigger message generated using the trigger message random number;

서버 난수를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송하도록 된 제2 생성 유닛(1417);A second generating unit 1417, adapted to generate a trigger message using the server random number and to send the generated trigger message to the client;

서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공한 것으로 판정된 후에, 제1 생성 유닛(1412)으로 하여금 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 제어하는 판단 유닛(1413); A judging unit 1413 for controlling the first generating unit 1412 to generate a trigger message using the trigger message random number after it is determined that authentication for the trigger message generated using the server random number is successful;

제1 생성 유닛(1412)이 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 경우의 서버의 시스템 시간을 판정하고, 트리거 메시지 난수를 사용해서 생성한 트리거 메시지에 시스템 시간을 추가하도록 된 시간 유닛(1414);The time unit 1414 is configured to determine the system time of the server when the first generating unit 1412 generates the trigger message using the trigger message random number, and add the system time to the trigger message generated using the trigger message random number. );

트리거 메시지 난수를 사용해서 제1 생성 유닛(1412)이 생성한 트리거 메시지에 대해 넘버링을 행하고 번호를 트리거 메시지 난수로서 사용하도록 된 넘버링 유닛(1415);A numbering unit 1415, adapted to number the trigger message generated by the first generation unit 1412 using the trigger message random number and to use the number as the trigger message random number;

넘버링 유닛(1415)에 의해 생성된 트리거 메시지 난수를 필요에 따라 리셋하도록 된 난수 리셋 유닛(1416); 및A random number reset unit 1416, adapted to reset the trigger message random number generated by the numbering unit 1415 as needed; And

트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용함으로써, 클라이언트가 트리거 메시지를 수신한 후에 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하고, 인증이 성공한 후에 세션 ID에 대응하는 세션의 설정을 요청하는 세션 요청을 발송하도록 된 세션 ID-난수(sesssion ID-to-nonce) 유닛(1418)을 포함한다. By using the session ID of the session triggered by the trigger message as the trigger message random number, the client uses the trigger message random number to authenticate the trigger message after receiving the trigger message, and establishes a session corresponding to the session ID after successful authentication. And a session ID-to-nonce unit 1418, which is configured to send a session request requesting the request.

넘버링 유닛(1415)은, The numbering unit 1415 is,

트리거 메시지를 사용해서 생성한 트리거 메시지를 오름차순으로 번호를 매기는 오름차순 넘버링 유닛(14151); 및An ascending numbering unit 14151 for numbering, in ascending order, the trigger message generated using the trigger message; And

트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 내림차순으로 번호를 매기는 내림차순 넘버링 유닛(13152)을 더 포함한다. It further includes a descending numbering unit 13152 for numbering, in descending order, the trigger message generated using the trigger message random number.

클라이언트(1420)는, Client 1420,

트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 수신하도록 된 수신 유닛(1421); A receiving unit 1421 configured to receive a trigger message generated using the trigger message random number;

트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 인증하기 위해, 즉 트리거 메시지 난수를 사용해서 생성한 트리거 메시지의 유효성을 검증하기 위해, 트리거 메시지 난수를 사용하도록 된 제1 인증 유닛(1422);A first authentication unit 1422 adapted to use the trigger message random number to authenticate the trigger message generated using the trigger message random number, that is, to validate the trigger message generated using the trigger message random number;

트리거 메시지를 수신한 후, 트리거 메시지를 인증하기 위해 서버 난수를 사용하며, 인증이 실패하면, 트리거 메시지 난수를 사용해서 트리거 메시지에 대한 재인증을 행하도록 된 제2 인증 유닛(1425);A second authentication unit 1425 configured to use the server random number to authenticate the trigger message after receiving the trigger message, and to reauthenticate the trigger message using the trigger message random number if authentication fails;

수신 유닛(1421)이 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신하면, 클라이언트의 로컬 시간(local time)을 판정하고, 로컬 시간과 시스템 시간 간의 차이 값의 절대값을 미리 정해진 임계값과 비교해서, 절대값이 미리 정해진 임계값보다 작으면, 트리거 메시지 난수는 유효하다고 판정하며, 제1 인증 유닛(1422)으로 하여금 트리거 메시지 난수를 사용해서, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하도록 제어하는 제1 유효성 판단 유닛(1423)When the receiving unit 1421 receives the trigger message generated using the trigger message random number, it determines the local time of the client and compares the absolute value of the difference value between the local time and the system time with a predetermined threshold. Thus, if the absolute value is smaller than the predetermined threshold, it is determined that the trigger message random number is valid, and the first authentication unit 1422 authenticates the trigger message generated using the trigger message random number using the trigger message random number. First validity determining unit 1423 that controls

수신 유닛(1421)이 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신한 후에, 저장된 트리거 메시지 난수에 따라, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정되면, 트리거 메시지에 포함된 트리거 메시지 난수를 저장하며, 제1 인증 유닛(1422)으로 하여금 트리거 메시지 난수를 사용해서, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하도록 제어하는 제2 유효성 판단 유닛(1424); 및After the receiving unit 1421 receives the trigger message generated using the trigger message random number, and according to the stored trigger message random number, it is determined that the trigger message random number included in the trigger message is valid, the trigger message random number included in the trigger message A second validity determining unit 1424 which controls the first authentication unit 1422 to authenticate the trigger message generated using the trigger message random number, using the trigger message random number; And

트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용하고, 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하며, 인증이 성공한 후에 세션 ID에 대응하는 세션의 설정을 요청하는 세션 요청을 발송하도록 된 세션 ID-난수 유닛(1428)을 포함한다. Use the session ID of the session triggered by the trigger message as the trigger message random number, use the trigger message random number to authenticate the trigger message, and send a session request requesting the establishment of a session corresponding to the session ID after successful authentication. Session ID-random number unit 1428.

제2 유효성 판단 유닛(1424)은, The second validity determination unit 1424

클라이언트에 저장된 트리거 메시지 난수를 트리거 메시지에 포함된 트리거 메시지 난수와 비교해서, 트리거 메시지에 포함된 트리거 메시지 난수가 클라이언트에 저장된 최대의 트리거 메시지 난수보다 큰 경우, 또는 클라이언트가 수신해서 저장했던 트리거 메시지 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하지 않는 경우, 또는 클라이언트가 수신하지 않았던 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하는 경우에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하도록 된 제1 넘버링 판단 유닛(14241); 및Compare the trigger message random number stored in the client to the trigger message random number contained in the trigger message, if the trigger message random number contained in the trigger message is greater than the maximum trigger message random number stored in the client, or the trigger message random number received and stored by the client. If the value does not include the trigger message random number included in the trigger message, or if the random value that the client did not receive includes the trigger message random number included in the trigger message, the trigger message random number included in the trigger message is valid. A first numbering determination unit 14241 adapted to determine; And

클라이언트에 저장된 트리거 메시지 난수를 트리거 메시지에 포함된 트리거 메시지 난수와 비교해서, 트리거 메시지에 포함된 트리거 메시지 난수가 클라이언트에 저장된 최소의 트리거 메시지 난수보다 작은 경우, 또는 클라이언트가 수신해서 저장했던 트리거 메시지 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하지 않는 경우, 또는 클라이언트가 수신하지 않았던 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하는 경우에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하도록 된 제2 넘버링 판단 유닛(14242)을 포함한다. Compare the trigger message random number stored in the client to the trigger message random number contained in the trigger message, if the trigger message random number contained in the trigger message is less than the minimum trigger message random number stored in the client, or the trigger message random number received and stored by the client. If the value does not include the trigger message random number included in the trigger message, or if the random value that the client did not receive includes the trigger message random number included in the trigger message, the trigger message random number included in the trigger message is valid. The second numbering determination unit 14242, which is to be determined, is included.

제1 실시예에 따른 인증 시스템의 동작 방식은 본 발명의 제1 및 제2 실시예에 따른 인증 방법의 동작 방식과 유사하기 때문에, 중복해서 설명하지는 않는다. Since the operation method of the authentication system according to the first embodiment is similar to the operation method of the authentication methods according to the first and second embodiments of the present invention, the description thereof will not be repeated.

본 발명의 제1 실시예에 따른 인증 시스템에 의하면, 인증이 실패한 경우, 인증을 수행하기 위해 디폴트 난수를 필요로 하지 않기 때문에, 시스템의 안전성을 향상시킬 수 있다. According to the authentication system according to the first embodiment of the present invention, when authentication fails, the default random number is not required to perform authentication, so that the security of the system can be improved.

본 발명의 제1 실시예에 따른 서버는 기본적으로 본 발명의 제1 실시예에 따른 인증 시스템 내의 서버와 동일하기 때문에, 중복해서 설명하지 않는다. Since the server according to the first embodiment of the present invention is basically the same as the server in the authentication system according to the first embodiment of the present invention, description thereof will not be repeated.

도 15에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 클라이언트는, As shown in FIG. 15, the client according to the first embodiment of the present invention

서버가 발송한 트리거 메시지를 수신하도록 된 수신 유닛(1501);A receiving unit 1501 configured to receive a trigger message sent by the server;

트리거 메시지를 수신한 후에, 서버 난수를 갱신할 필요가 있다고 판정되면, 새로운 서버 난수를 생성하고, 새로운 서버 난수를 세션 요청에 추가하며, 세션 요청을 서버에 발송함으로써, 서버가, 새로운 서버 난수를 포함하는 세션 요청을 수신한 후에, 새로운 서버 난수를 사용해서, 저장된 서버 난수를 갱신할 수 있도록 하는 제1 생성 유닛(1512); 및After receiving the trigger message, if it is determined that the server random number needs to be updated, the server generates a new server random number, adds a new server random number to the session request, and sends the session request to the server, thereby generating a new server random number. A first generating unit 1512 for updating the stored server random number using the new server random number after receiving the including session request; And

세션을 개시하지 않는 것으로 결정하고, 트리거 메시지를 수신한 후에, 서버 난수를 갱신할 필요가 있다고 판정한 경우, 새로운 서버 난수를 생성하고, 새로운 서버 난수를 상태 응답에 추가하며, 상태 응답을 서버에 발송함으로써, 서버가, 새로운 서버 난수를 포함하는 상태 응답을 수신한 후에, 저장된 서버 난수를 갱신할 수 있도록 하는 제2 생성 유닛(1503)을 포함한다. If you decide not to start a session, and after receiving the trigger message, determine that you need to update the server random number, generate a new server random number, add the new server random number to the status response, and send the status response to the server. By sending, the server includes a second generating unit 1503 that enables the server to update the stored server random number after receiving a status response that includes the new server random number.

본 발명의 제1 실시예에 따른 클라이언트의 동작 방식은 본 발명의 제4~제6 실시예에 따른 인증 방법 중의 클라이언트의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다. Since the operation method of the client according to the first embodiment of the present invention is similar to the operation method of the client in the authentication methods according to the fourth to sixth embodiments of the present invention, the description thereof will not be repeated.

본 발명의 제1 실시예에 따른 클라이언트에 의하면, s_nonce를 갱신할 필요가 있을 때에, 세션 요청에 갱신 명령이 직접 포함되도록 함으로써, 신호 상호작용의 횟수를 감소시키고, 시스템의 부하를 경감시키며, 디폴트 난수를 사용해서 인증을 수행하는 횟수를 감소시키고, 시스템의 안전성을 향상시킬 수 있다. According to the client according to the first embodiment of the present invention, when the s_nonce needs to be updated, the update request is directly included in the session request, thereby reducing the number of signal interactions, reducing the load on the system, and defaulting. The random number can be used to reduce the number of authentications performed and to improve the safety of the system.

도 16에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 클라이언트(1600)는, As shown in FIG. 16, the client 1600 according to the second embodiment of the present invention

서버가 발송한 트리거 메시지를 수신하도록 된 수신 유닛(1601);A receiving unit 1601 configured to receive a trigger message sent by the server;

트리거 메시지를 수신한 후에 서버 난수를 사용해서 트리거 메시지를 인증하며, 인증이 실패하면, 디폴트 난수를 사용해서 트리거 메시지를 인증하고, 인증이 성공하면, 클라이언트 난수를 사용해서 세션 요청을 생성하고, 세션 요청을 서버에 발송해서, 서버가 클라이언트 난수를 사용해서 클라이언트를 인증할 수 있도록 하는 생성 유닛(1602); 및After receiving the trigger message, the server random number is used to authenticate the trigger message; if authentication fails, the default random number is used to authenticate the trigger message; if authentication is successful, the client random number is used to generate the session request, and the session A generating unit 1602, which sends a request to the server so that the server can authenticate the client using the client random number; And

서버 난수를 새로운 서버 난수로 갱신한 후에, 서버의 패스워드 및 클라이언트의 패스워드를 변경하도록 된 패스워드 변경 유닛(1603)을 포함한다. After updating the server random number to the new server random number, the password changing unit 1603 is configured to change the server password and the client password.

본 발명의 제2 실시예에 따른 클라이언트의 동작 방식은 본 발명의 제7 및 제8 실시예에 따른 인증 방법 중의 클라이언트의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다. Since the operation method of the client according to the second embodiment of the present invention is similar to the operation method of the client in the authentication methods according to the seventh and eighth embodiments of the present invention, it will not be repeated.

본 발명의 제2 실시예에 따른 클라이언트에 의하면, s_nonce를 갱신할 필요가 있을 때, s_nonce만을 갱신하고, c_nonce는 갱신하지 않는다. 시스템이 s_nonce의 에러를 처리할 때에 인증을 위해 디폴트 난수를 사용하는 경우에도, c_nonce는 갱신할 필요가 없기 때문에, 클라이언트는 c_nonce를 사용해서 세션 요청을 생성함으로써, 디폴트 난수의 사용 횟수를 감소시키고, 시스템의 안전성을 향상시킬 수 있다. According to the client according to the second embodiment of the present invention, when s_nonce needs to be updated, only s_nonce is updated, and c_nonce is not updated. Even if the system uses the default random number for authentication when dealing with errors in s_nonce, c_nonce does not need to be updated, so clients can use c_nonce to generate session requests, reducing the number of default random numbers used, It can improve the safety of the system.

도 17에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 인증 시스템은 서버(1710)와 클라이언트(1720)를 포함한다. As shown in FIG. 17, the authentication system according to the second embodiment of the present invention includes a server 1710 and a client 1720.

서버(1710)는, Server 1710,

서버 및 클라이언트에 의해 공유되는 난수를 사용해서 트리거 메시지를 생성하며, 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 트리거 메시지를 수신한 후에, 공유 난수를 사용해서 트리거 메시지를 인증할 수 있도록 하는 트리거 유닛(1711);A trigger unit that generates a trigger message using a random number shared by the server and the client, and sends the trigger message to the client so that the client can use the shared random number to authenticate the trigger message after receiving the trigger message. 1711);

공유 난수를 사용해서 생성한 세션 요청을 클라이언트로부터 수신하도록 된 수신 유닛(1712);A receiving unit 1712, adapted to receive from the client a session request generated using the shared random number;

공유 난수를 사용해서 세션 요청을 인증하도록 된 인증 유닛(1713);An authentication unit 1713 configured to authenticate the session request using the shared random number;

세션 요청에 대한 인증이 성공한 후에, 공유 난수를 사용해서 응답을 생성하고, 이 응답을 클라이언트에 발송함으로써, 클라이언트가 응답을 수신한 후에, 공유 난수를 사용해서 응답을 인증하도록 하는 생성 유닛(1714);A generation unit 1714 that, after successful authentication of the session request, generates a response using the shared random number and sends the response to the client so that after the client receives the response, the client uses the shared random number to authenticate the response. ;

공유 난수를 생성하고, 공유 난수를 갱신할 필요가 있으면, 새로운 공유 난수를 생성하며, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 클라이언트에 발송함으로써, 클라이언트가 난수 갱신 메시지를 수신한 후에 새로운 공유 난수를 사용해서 공유 난수를 갱신할 수 있도록 하는 갱신 유닛(1715); 및If you need to generate a shared random number, update the shared random number, create a new shared random number, and send a random update message containing the new shared random number to the client, so that the new shared random number is received after the client receives the random number update message. An update unit 1715, which enables use to update the shared random number; And

공유 난수를 갱신할 필요가 있다고 판정되면, 난수 갱신 요청을 클라이언트에 발송함으로써, 클라이언트가 난수 갱신 요청을 수신하고 난수를 갱신하기로 결정한 후에, 새로운 공유 난수를 생성하고, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 발송할 수 있도록 하는 요청 유닛(1716)을 포함한다. If it is determined that the shared random number needs to be updated, by sending a random number update request to the client, after the client receives the random number update request and decides to update the random number, generate a new shared random number and include a new shared random number. A requesting unit 1716 to send the update message.

클라이언트(1720)는, Client 1720 is,

서버가 발송하고, 서버 및 클라이언트에 의해 공유되는 난수를 사용하여 생성된 트리거 메시지를 수신하도록 된 수신 유닛(1721);A receiving unit 1721 configured to receive a trigger message sent by the server and generated using a random number shared by the server and the client;

트리거 메시지를 수신한 후에, 공유 난수를 사용해서 트리거 메시지를 인증하도록 된 제1 인증 유닛(1722);After receiving the trigger message, a first authentication unit 1722 configured to authenticate the trigger message using the shared random number;

인증이 성공한 후에, 공유 난수를 사용해서 세션 요청을 생성하고, 세션 요청을 서버에 발송함으로써, 서버가 세션 요청을 수신한 후에, 공유 난수를 사용해서 세션 요청을 인증, 즉 세션 요청의 유효성을 검증하도록 하는 생성 유닛(1723);After successful authentication, use the shared random number to generate a session request and send the session request to the server, after the server receives the session request, use the shared random number to authenticate the session request, that is, validate the session request. Generating unit 1723 to cause;

공유 난수를 사용해서 서버가 생성한 응답을 수신한 후에, 공유 난수를 사용해서 응답을 인증하도록 된 제2 인증 유닛(1724); A second authentication unit 1724 configured to authenticate the response using the shared random number after receiving the response generated by the server using the shared random number;

공유 난수를 생성하고, 공유 난수를 갱신할 필요가 있으면, 새로운 공유 난수를 생성하고, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 서버에 발송함으로써, 서버가 난수 갱신 메시지를 수신한 후에, 새로운 공유 난수를 사용해서 공유 ㄴ나수를 갱신하도록 하는 갱신 유닛(1725); 및If a shared random number needs to be generated and the shared random number needs to be updated, a new shared random number is generated after the server receives the random number update message by generating a new shared random number and sending a random number update message containing the new shared random number to the server. An update unit 1725 for updating the shared number of times using; And

공유 난수를 갱신할 필요가 있다고 판정된 경우, 난수 갱신 요청을 서버에 발송함으로써, 서버가 난수 갱신 요청을 수신하고 난수를 갱신하기로 결정한 후에, 새로운 공유 난수를 생성하며, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 발송하도록 하는 요청 유닛(1726)을 포함한다. If it is determined that the shared random number needs to be updated, by sending a random number update request to the server, after the server receives the random number update request and decides to update the random number, it generates a new shared random number and includes the new shared random number. Request unit 1726 for sending a random number update message.

본 발명의 제2 실시예에 따른 인증 시스템의 동작 방식은 본 발명의 제9 실시예에 따른 인증 방법의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다. Since the operation method of the authentication system according to the second embodiment of the present invention is similar to the operation method of the authentication method according to the ninth embodiment of the present invention, description thereof will not be repeated.

본 발명의 제2 실시예에 따른 인증 시스템에 의하면, 서버와 클라이언트는 종래의 s_nonce 및 c_nonce 대신에, 세션 처리 과정 중의 난수를 공유해서, 클라이언트와 서버 간의 인증을 수행함으로써, 시스템의 부하를 효과적으로 경감시킬 수 있다. According to the authentication system according to the second embodiment of the present invention, instead of the conventional s_nonce and c_nonce, the server and the client share a random number during the session processing, and effectively reduce the load on the system by performing authentication between the client and the server. You can.

본 발명의 제2 실시예에 따른 서버와 본 발명의 제3 실시예에 따른 클라이언트는, 기본적으로 본 발명의 제2 실시예에 따른 인증 시스템의 서버 및 클라이언트와 동일하기 때문에, 중복해서 설명하지 않는다. The server according to the second embodiment of the present invention and the client according to the third embodiment of the present invention are basically the same as those of the server and the client of the authentication system according to the second embodiment of the present invention. .

당업자라면, 앞서 설명한 실시예들의 단계들 중의 일부 또는 모두는 컴퓨터 프로그램에 의해 지시되는 하드웨어로 구현될 수 있다는 것을 이해할 수 있을 것이다. 이러한 프로그램은 컴퓨터로 판독가능한 기억 매체에 기억될 수 있다. 기억 매체로는, 판독전용 메모리(ROM), 자기 디스크, 또는 콤팩트 디스크(CD)가 될 수 있다. Those skilled in the art will appreciate that some or all of the steps of the embodiments described above may be implemented in hardware dictated by a computer program. Such a program can be stored in a computer-readable storage medium. The storage medium may be a read-only memory (ROM), a magnetic disk, or a compact disk (CD).

이상의 설명은 DS 프로토콜 또는 DM 프로토콜에 기초한 인증 방법, 시스템, 서버 및 클라이언트이다. 본 발명에 대하여 몇 개의 실시예를 들어 설명하였지만, 본 발명은 이러한 실시예에 한정되지 않는다. 당업자라면, 본 발명의 범위를 벗어남이 없이 다양한 변경 및 변경이 가능하다는 것을 알 수 있을 것이다. 본 발명의 특허청구의 범위 또는 그 등가의 범위로 규정된 보호 범위에 속하는 변형 및 변경을 포함한다. The above description is an authentication method, system, server and client based on DS protocol or DM protocol. While the present invention has been described with reference to several embodiments, the present invention is not limited to these embodiments. Those skilled in the art will appreciate that various modifications and changes can be made without departing from the scope of the present invention. It includes modifications and variations that fall within the scope of protection defined by the claims of the present invention or equivalents thereof.

Claims (36)

데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜에 기초한 인증 방법으로서,
서버가 트리거 메시지 난수(trigger message nonce)를 사용해서 트리거 메시지(Trigger message)를 생성하는 단계;
상기 서버가 트리거 메시지를 클라이언트에 발송하는 단계;
상기 클라이언트가 트리거 메시지 난수를 추출(extract)하는 단계;
상기 클라이언트가, 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 다이제스트(digest)를 생성하고, 트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 인증(authenticate)하는 단계; 및
상기 클라이언트가, 인증이 성공한 후에, 세션(session) ID를 포함하는 세션 요청(session request)을, 트리거 메시지에 의해 지시된 서버에 발송하는 단계
를 포함하는 것을 특징으로 하는 인증 방법.
An authentication method based on the Data Synchronization (DS) protocol or the Device Management (DM) protocol.
Generating, by the server, a trigger message using a trigger message nonce;
Sending, by the server, a trigger message to a client;
Extracting, by the client, a trigger message random number;
After the client determines that the trigger message random number is valid, generating a digest using the trigger message random number, and authenticating the trigger message generated using the trigger message random number; And
After the client successfully authenticates, sending a session request including a session ID to the server indicated by the trigger message.
Authentication method comprising a.
제1항에 있어서,
상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계를 수행하기 전에,
상기 서버가 서버 난수(server nonce)를 사용해서 트리거 메시지를 생성하는 단계;
상기 서버가 서버 난수를 사용해서 생성한 트리거 메시지를 상기 클라이언트에 발송하는 단계; 및
상기 서버가, 서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공적이라고 판정된 후에, 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계를 포함하는 인증 방법.
The method of claim 1,
Before the server performs the step of generating a trigger message using the trigger message random number,
The server generating a trigger message using a server nonce;
Sending, by the server, a trigger message generated using a server random number to the client; And
After the server determines that authentication for the trigger message generated using the server random number is successful, generating a trigger message using the trigger message random number.
제1항 또는 제2항에 있어서,
상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
상기 서버가 상기 서버의 시스템 시간(system time)을 트리거 메시지 난수로서 사용하고, 상기 서버의 시스템 시간을 트리거 메시지 난수를 사용해서 생성된 트리거 메시지 내에 포함시키는 단계;
상기 클라이언트가, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신한 후에, 상기 클라이언트의 로컬 시간(local time)을 트리거 메시지 난수와 비교함으로써, 트리거 메시지 난수가 유효한지 여부를 판정하는 단계;
상기 클라이언트가, 트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 다이제스트(digest)를 생성하고, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를, 상기 다이제스트를 사용해서 인증하는 단계를 포함하는, 인증 방법.
The method according to claim 1 or 2,
The server generating a trigger message using the trigger message random number may include:
The server using the system time of the server as a trigger message random number and including the system time of the server in a trigger message generated using the trigger message random number;
After the client receives the trigger message generated using the trigger message random number, determining whether the trigger message random number is valid by comparing the client's local time with a trigger message random number;
After the client determines that the trigger message random number is valid, generating a digest using the trigger message random number, and authenticating the trigger message generated using the trigger message random number using the digest. Authentication method.
제1항 또는 제2항에 있어서,
상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
상기 서버가 트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용하는 단계;
상기 클라이언트가, 트리거 메시지를 수신하면, 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하는 단계; 및
상기 클라이언트가, 인증이 성공한 후에, 세션 ID에 대응하는 세션의 설정(setup)을 요청하는 세션 요청(session request)을 발송하는 단계를 포함하는, 인증 방법.
The method according to claim 1 or 2,
The server generating a trigger message using the trigger message random number may include:
The server using the session ID of the session triggered by the trigger message as a trigger message random number;
When the client receives a trigger message, authenticating the trigger message using a trigger message random number; And
Sending, by the client, after a successful authentication, a session request requesting setup of a session corresponding to a session ID.
제1항 또는 제2항에 있어서,
상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
상기 서버가 트리거 메시지 난수를 트리거 메시지의 메시지 헤더(message header) 또는 메시지 본문(message body)에 포함시키고, 트리거 메시지 난수, 트리거 메시지의 메시지 헤더 및 메시지 본문을 사용해서 다이제스트를 생성하고, 생성한 다이제스트를 사용해서 트리거 메시지를 생성하는 단계; 또는
상기 서버가 트리거 메시지 난수를 트리거 메시지의 메시지 헤더 또는 메시지 본문에 포함시키며, 트리거 메시지의 메시지 헤더 및 메시지 본문을 사용해서 다이제스트를 생성하고, 생성한 다이제스트를 사용해서 트리거 메시지를 생성하는 단계를 포함하는, 인증 방법.
The method according to claim 1 or 2,
The server generating a trigger message using the trigger message random number may include:
The server includes the trigger message random number in the message header or message body of the trigger message, generates a digest using the trigger message random number, the message header of the trigger message, and the message body, and generates the generated digest. Generating a trigger message using; or
The server including a trigger message random number in the message header or message body of the trigger message, generating a digest using the message header and the message body of the trigger message, and generating a trigger message using the generated digest. , Authentication method.
트리거 메시지 난수(Trigger message nonce)를 사용해서 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 생성하도록 된 제1 생성 유닛; 및
상기 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 클라이언트에게 발송함으로써, 클라이언트로 하여금 트리거 메시지를 추출하도록 하고, 트리거 메시지 난수가 유효하다고 판정한 후에, 상기 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 상기 트리거 메시지에 대한 인증이 성공한 후에, 상기 트리거 메시지에 의해 지시되는 서버에게 세션 요청을 발송하도록 된 발송 유닛
을 포함하는 것을 특징으로 하는 서버.
A first generating unit configured to generate a trigger message that is compatible with a Data Synchronization (DS) protocol or a Device Management (DM) protocol using a trigger message nonce; And
Sending a trigger message generated using the trigger message random number to the client, causing the client to extract the trigger message, and after determining that the trigger message random number is valid, authenticating the trigger message generated using the trigger message random number. A sending unit configured to send a session request to the server indicated by the trigger message after authentication of the trigger message is successful.
Server comprising a.
제6항에 있어서,
서버 난수(server nonce)를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 서버 난수를 사용해서 생성된 트리거 메시지를 인증할 수 있도록 하는 제2 생성 유닛; 및
서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공한 것으로 판정된 후에, 상기 제1 생성 유닛으로 하여금 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 제어하는 판단 유닛을 더 포함하는 서버.
The method of claim 6,
A second generating unit for generating a trigger message using a server nonce and sending the generated trigger message to the client, thereby enabling the client to authenticate the trigger message generated using the server random number; And
And a judging unit for controlling the first generating unit to generate a trigger message using the trigger message random number after it is determined that authentication for the trigger message generated using the server random number is successful.
트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및
상기 트리거 메시지 난수를 추출하고, 트리거 메시지 난수를 사용해서 다이제스트를 생성해서, 상기 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 인증이 성공한 후에, 상기 트리거 메시지에 의해 지시되는 서버에 세션 요청을 발송하도록 된 제1 인증 유닛
을 포함하는 것을 특징으로 하는 클라이언트.
A receiving unit, generated by the server using a trigger message random number, adapted to receive a trigger message that is compatible with a Data Synchronization (DS) protocol or a Device Management (DM) protocol; And
Extracting the trigger message random number, generating a digest using the trigger message random number, after determining that the trigger message random number is valid, authenticating a trigger message generated using the trigger message random number, and after authentication is successful, A first authentication unit, adapted to send a session request to the server indicated by the trigger message
Client comprising a.
제8항에 있어서,
상기 트리거 메시지를 수신한 후, 트리거 메시지를 인증하기 위해 서버 난수를 사용하며, 인증이 실패하면, 트리거 메시지 난수를 사용해서 트리거 메시지에 대한 재인증을 행하도록 된 제2 인증 유닛을 더 포함하는 클라이언트.
The method of claim 8,
After receiving the trigger message, a client further comprising a second authentication unit configured to use a server random number to authenticate the trigger message and, if authentication fails, to reauthenticate the trigger message using the trigger message random number. .
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020107011964A 2007-11-08 2008-04-09 Authentication method, system, server, and client KR101134059B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN200710170309.5 2007-11-08
CN200710170309 2007-11-08
CN2007101954623A CN101431413B (en) 2007-11-08 2007-11-27 Method, system, server and terminal for authentication
CN200710195462.3 2007-11-27
PCT/CN2008/070686 WO2009059496A1 (en) 2007-11-08 2008-04-09 A method, system, server and terminal for processing an authentication

Publications (2)

Publication Number Publication Date
KR20100071115A KR20100071115A (en) 2010-06-28
KR101134059B1 true KR101134059B1 (en) 2012-05-09

Family

ID=40646594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107011964A KR101134059B1 (en) 2007-11-08 2008-04-09 Authentication method, system, server, and client

Country Status (8)

Country Link
US (2) US8392717B2 (en)
EP (3) EP2579502B1 (en)
JP (1) JP5209731B2 (en)
KR (1) KR101134059B1 (en)
CN (2) CN101431413B (en)
ES (1) ES2426946T3 (en)
RU (1) RU2446593C2 (en)
WO (1) WO2009059496A1 (en)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8776214B1 (en) 2009-08-12 2014-07-08 Amazon Technologies, Inc. Authentication manager
KR101676305B1 (en) * 2009-09-01 2016-11-15 엘지전자 주식회사 System and method of networking device certification
WO2012005739A1 (en) * 2010-07-09 2012-01-12 Hewlett-Packard Development Company, L.P. Responses to server challenges included in a hypertext transfer protocol header
WO2012110694A1 (en) * 2011-02-14 2012-08-23 Nokia Corporation Seamless wi-fi subscription remediation
US9171162B2 (en) 2011-03-29 2015-10-27 Microsoft Technology Licensing, Llc Random file request for software attestation
CN102231678A (en) * 2011-06-27 2011-11-02 华为终端有限公司 Method, device and system for equipment management
US11444936B2 (en) 2011-07-29 2022-09-13 Amazon Technologies, Inc. Managing security credentials
US10362019B2 (en) 2011-07-29 2019-07-23 Amazon Technologies, Inc. Managing security credentials
US9767262B1 (en) 2011-07-29 2017-09-19 Amazon Technologies, Inc. Managing security credentials
RU2014116253A (en) 2011-10-28 2015-10-27 Нек Корпорейшн PROTECTED STARTING METHOD COMMUNICATION DEVICE TYPE
US8984276B2 (en) 2012-01-10 2015-03-17 Jpmorgan Chase Bank, N.A. System and method for device registration and authentication
US8863250B2 (en) 2012-02-01 2014-10-14 Amazon Technologies, Inc. Logout from multiple network sites
US8955065B2 (en) * 2012-02-01 2015-02-10 Amazon Technologies, Inc. Recovery of managed security credentials
CN107451472B (en) 2012-03-08 2021-06-04 阿里巴巴集团控股有限公司 Form verification method, device and system
BR112015018905B1 (en) 2013-02-07 2022-02-22 Apple Inc Voice activation feature operation method, computer readable storage media and electronic device
US8966599B1 (en) * 2013-03-14 2015-02-24 Amazon Technologies, Inc. Automatic token renewal for device authentication
US10475018B1 (en) 2013-11-29 2019-11-12 Amazon Technologies, Inc. Updating account data for multiple account providers
CN104954327B (en) * 2014-03-27 2019-02-22 东华软件股份公司 Server and method, terminal and method and system for terminal connection control
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
KR101655439B1 (en) * 2015-03-26 2016-09-20 세종대학교산학협력단 Method for authenticating of computing device and apparatus executing the method
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US10671428B2 (en) * 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
WO2017064361A1 (en) * 2015-10-16 2017-04-20 Nokia Technologies Oy Message authentication
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US9967248B1 (en) * 2015-12-28 2018-05-08 Amazon Technologies Inc. System for authenticating and processing service requests
CN106100889A (en) * 2016-07-01 2016-11-09 浪潮(北京)电子信息产业有限公司 The Enhancement Method of a kind of snmp protocol safety and device
CN106411953A (en) * 2016-11-30 2017-02-15 深圳前海弘稼科技有限公司 Planting box login method and device
CN108337210B (en) * 2017-01-19 2021-05-18 钉钉控股(开曼)有限公司 Equipment configuration method, device and system
KR102228744B1 (en) * 2017-03-07 2021-03-16 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. Data message authentication based on random numbers
US10659464B2 (en) * 2017-05-10 2020-05-19 Microsoft Technology Licensing, Llc Securely authenticating a bot user
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. Low-latency intelligent automated assistant
FR3071373B1 (en) * 2017-09-21 2021-01-22 Onoff Telecom PROCEDURE FOR VERIFYING THE VALIDITY OF A USER'S TELEPHONE LINE
US20200367025A1 (en) * 2017-10-24 2020-11-19 Irad Deutsch Combination system and method
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US20210056053A1 (en) * 2019-08-19 2021-02-25 Cryptography Research, Inc. Application authentication and data encryption without stored pre-shared keys
JP7279668B2 (en) * 2020-03-12 2023-05-23 トヨタ自動車株式会社 Automotive controller
KR102519202B1 (en) * 2020-03-30 2023-04-05 한양대학교 산학협력단 Secure system
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
EP4191940A4 (en) * 2020-08-13 2023-09-27 Huawei Technologies Co., Ltd. In-vehicle network secure communication method, apparatus and device
CN112260997B (en) * 2020-09-23 2023-05-26 曙光信息产业(北京)有限公司 Data access method, device, computer equipment and storage medium
CN112367329B (en) * 2020-11-17 2023-05-02 北京知道创宇信息技术股份有限公司 Communication connection authentication method, device, computer equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115464A1 (en) 2001-12-19 2003-06-19 Nyang Dae Hun Method of designing password-based authentication and key exchange protocol using zero-knowledge interactive proof
US20040111615A1 (en) 2002-12-10 2004-06-10 Dae Hun Nyang Authentication method using symmetric authenticated key exchange and asymmetric authenticated key exchange
US20050120248A1 (en) 1999-04-09 2005-06-02 General Instrument Corporation Internet protocol telephony security architecture

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740361A (en) * 1996-06-03 1998-04-14 Compuserve Incorporated System for remote pass-phrase authentication
US6064736A (en) * 1997-09-15 2000-05-16 International Business Machines Corporation Systems, methods and computer program products that use an encrypted session for additional password verification
US6148405A (en) * 1997-11-10 2000-11-14 Phone.Com, Inc. Method and system for secure lightweight transactions in wireless data networks
US6065120A (en) * 1997-12-09 2000-05-16 Phone.Com, Inc. Method and system for self-provisioning a rendezvous to ensure secure access to information in a database from multiple devices
GB9922665D0 (en) * 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
US7024695B1 (en) * 1999-12-30 2006-04-04 Intel Corporation Method and apparatus for secure remote system management
US20020196935A1 (en) * 2001-02-25 2002-12-26 Storymail, Inc. Common security protocol structure and mechanism and system and method for using
AU2001292955A1 (en) * 2000-09-22 2002-04-02 General Instrument Corporation Internet protocol telephony security architecture
US7421733B2 (en) * 2002-02-06 2008-09-02 Hewlett-Packard Development Company, L.P. System and method for providing multi-class processing of login requests
JP4186512B2 (en) * 2002-05-20 2008-11-26 ソニー株式会社 Service providing system, device terminal and processing method thereof, authentication device and method, service providing device and method, and program
US7574599B1 (en) * 2002-10-11 2009-08-11 Verizon Laboratories Inc. Robust authentication and key agreement protocol for next-generation wireless networks
US7573301B2 (en) * 2002-12-02 2009-08-11 Silverbrook Research Pty Ltd Temperature based filter for an on-chip system clock
JP4392510B2 (en) * 2003-06-09 2010-01-06 財団法人生産技術研究奨励会 Authentication apparatus and authentication method
KR100548354B1 (en) * 2003-06-14 2006-02-02 엘지전자 주식회사 Client authentication method in synchronization protocol
JP2007534042A (en) 2003-10-08 2007-11-22 ステファン・ヨズ・エングベアウ Method and system for establishing communication using privacy enhancement technology
US7549048B2 (en) * 2004-03-19 2009-06-16 Microsoft Corporation Efficient and secure authentication of computing systems
US7437771B2 (en) * 2004-04-19 2008-10-14 Woodcock Washburn Llp Rendering protected digital content within a network of computing devices or the like
US20060174103A1 (en) * 2004-09-16 2006-08-03 Nokia Corporation System and method for integrating PKI and XML-based security mechanisms in SyncML
US7690026B2 (en) * 2005-08-22 2010-03-30 Microsoft Corporation Distributed single sign-on service
KR101209071B1 (en) * 2006-09-19 2012-12-06 엘지전자 주식회사 Device management system and method of controlling the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120248A1 (en) 1999-04-09 2005-06-02 General Instrument Corporation Internet protocol telephony security architecture
US20030115464A1 (en) 2001-12-19 2003-06-19 Nyang Dae Hun Method of designing password-based authentication and key exchange protocol using zero-knowledge interactive proof
US20040111615A1 (en) 2002-12-10 2004-06-10 Dae Hun Nyang Authentication method using symmetric authenticated key exchange and asymmetric authenticated key exchange

Also Published As

Publication number Publication date
CN102333100A (en) 2012-01-25
US8245048B2 (en) 2012-08-14
EP2579502A2 (en) 2013-04-10
EP2579503B1 (en) 2015-09-02
RU2446593C2 (en) 2012-03-27
CN101431413A (en) 2009-05-13
EP2209253A4 (en) 2011-11-30
KR20100071115A (en) 2010-06-28
CN102333100B (en) 2013-11-06
EP2579503A3 (en) 2013-10-09
US20100217997A1 (en) 2010-08-26
RU2010123182A (en) 2011-12-20
JP5209731B2 (en) 2013-06-12
EP2209253A1 (en) 2010-07-21
WO2009059496A1 (en) 2009-05-14
EP2209253B1 (en) 2013-06-19
EP2579502B1 (en) 2015-09-02
JP2011504261A (en) 2011-02-03
US20120030472A1 (en) 2012-02-02
ES2426946T3 (en) 2013-10-25
EP2579503A2 (en) 2013-04-10
EP2579502A3 (en) 2013-10-16
CN101431413B (en) 2012-04-25
US8392717B2 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
KR101134059B1 (en) Authentication method, system, server, and client
US8438616B2 (en) Method for terminal configuration and management and terminal device
KR101209071B1 (en) Device management system and method of controlling the same
Durham et al. The COPS (common open policy service) protocol
JP6086987B2 (en) Restricted certificate enrollment for unknown devices in hotspot networks
EP1869822B1 (en) Method and device for multi-session establishment
US9635024B2 (en) Methods for facilitating improved user authentication using persistent data and devices thereof
US11888894B2 (en) Methods, systems, and computer readable media for mitigating network function (NF) update and deregister attacks
US10791119B1 (en) Methods for temporal password injection and devices thereof
JP2024506915A (en) Zero trust authentication
KR20210126319A (en) Apparatus and method for managing key
CN114938278B (en) Zero-trust access control method and device
WO2023016451A1 (en) Update method, network side device, terminal, and computer readable storage medium
CN114079573B (en) Router access method and router
TW202306356A (en) Network slice admission control
CN117118606A (en) Token-based access verification method, token-based access verification system and storage medium
Boyle et al. RFC2748: The COPS (Common Open Policy Service) Protocol
KR20150056141A (en) Method for user authentication management

Legal Events

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

Payment date: 20150302

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160309

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180316

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 8