KR101134059B1 - 인증 방법, 시스템, 서버 및 클라이언트 - Google Patents

인증 방법, 시스템, 서버 및 클라이언트 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
English (en)
Other versions
KR20100071115A (ko
Inventor
샤오챤 차이
홍타오 가오
게펭 리
린이 티앙
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20100071115A publication Critical patent/KR20100071115A/ko
Application granted granted Critical
Publication of KR101134059B1 publication Critical patent/KR101134059B1/ko

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 프로토콜에 기초하여 클라이언트와 서버를 통해 더 안전한 인증 처리가 가능하다.

Description

인증 방법, 시스템, 서버 및 클라이언트{AUTHENTICATION METHOD, SYSTEM, SERVER, AND CLIENT}
본 발명은 통신 기술 분야에 관한 것으로서, 구체적으로는 데이터 동기(DS: Data Synchronization) 프로토콜과 장치 관리(DM: Device Management) 프로토콜에 기초한 인증 방법, 시스템, 서버 및 클라이언트에 관한 것이다.
삭제
삭제
SyncML(Synchronization Markup Language: 동기 표기 언어)은 다수의 플랫폼과 네트워크 사이에서 개인 정보(personal information)와 기업내 통합 데이터(intra-enterprise data)를 동기화시키기 위해 개발된 프로토콜이다. SyncML 프로토콜은 참여 엔티티들 사이의 일련의 조작을 정의하고, 이러한 조작을 행하기 위한 일련의 메시지 포맷을 정의한다. 이러한 SyncML에 기초하여, OMA(Open Mobile Alliance)는 DC 프로토콜과 DM 프로토콜을 개발하고 있다.
DS 프로토콜은 다수의 플랫폼 및 네트워크 사이에서 개인 정보와 기업내 통합 데이터를 동기화할 수 있다. DS 프로토콜은 일반적으로 모바일 장치 또는 애플리케이션과 네트워크 사이에서의 데이터 동기화, 또는 2개의 개인용 컴퓨터(PC) 사이에서의 데이터 동기화에 적용된다.
DM 프로토콜은 네트워크로부터 클라이언트(client)로 관리 지시(management instruction) 데이터를 다운로드하고, 클라이언트로 하여금 자신의 소프트웨어 및 하드웨어를 자동으로 업그레이드, 구성(configure) 및 진단(diagnose)하는 관리 지시를 실행하도록 하는, 비용 절감이 가능한 원격 관리 솔루션이다. DM 프로토콜은 조작자가 필요로 하는 서비스 정보와 클라이언트의 기능에 관한 정보를 클라이언트로부터 서버로 전달해서, 그외 다른 서비스의 조작을 지원한다.
유사한 보안 인증 메커니즘이 DS 프로토콜과 DM 프로토콜에 적용되어, 서버와 클라이언트를 효과적으로 인증할 수 있다. 이에 대해서 도 1에 나타낸다.
단계 101: 서버는 세션(session)을 트리거하기 위해 클라이언트에게 트리거 메시지를 발송한다.
이 트리거 메시지에는 서버 난수(s_nonce)를 사용하여 만든 다이제스트(Digest)와 트리거 정보(TriggerInfo)가 포함된다. 트리거 메시지는 단문 메시지나 그외 Push 메시지에 포함될 수도 있다.
s_nonce는 클라이언트에 의해 만들어지고 서버에 사용할 수 있는 난수(nonce)이다.
단계 102: 클라이언트는 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 다이제스트(Digest) 정보를 생성하고, 트리거 메시지를 인증(authenticate)한다. 인증이 성공하면, 클라이언트는 서버에게 세션 요청을 발송해서 세션을 개시하도록 한다.
세션 요청(session request)에는, 세션 ID(SessionID)와 클라이언트의 인증 정보(Authenticate)가 포함된다. 인증 정보는 클라이언트 난수(c_nonce)를 사용해서 만든 다이제스트(Digest)이다.
c_nonce는 서버가 만들고 클라이언트에 사용할 수 있다.
단계 102에서, 클라이언트와 서버 사이에 세션 접속이 설정된다.
단계 103: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다.
서버는, 클라이언트가 보낸 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 서버 인증 요청을 포함하는 응답을 회신한다.
더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 서버의 인증 정보(즉, s_nonce를 사용하여 만든 Digest)가 포함된다.
단계 104: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는, 서버가 보낸 인증 정보에 따라, 서버를 인증하고, 인증 결과를 포함하는 메시지를 서버에 회신한다.
더 구체적으로 말하면, 이 메시지에는 클라이언트가 서버를 인증한 결과 및 그외 관련 정보가 포함된다.
서버가 클라이언트에 대한 인증에 실패하거나, 클라이언트가 서버에 대한 인증이 실패하면, 예를 들어 패스워드가 정확하지 않거나 nonce 값이 정확하지 않은 경우, 서버 또는 클라이언트는 상대방에게 인증을 다시 행하라는 질의(challenge) 요청을 직접 발송할 수 있다.
트리거 메시지에 사용된 s_nonce가 정확하지 않다는 것을 서버가 알고 있다면, 예를 들어 서버가 트리거 메시지를 반복해서 발송한 후에 클라이언트로부터 정상적인 응답을 받지 못한 경우, 서버는 s_nonce가 정확하지 않다고 판단해서, 디폴트 난수 값 "0x00000000"을 사용해서 트리거 메시지의 다이제스트(Digest)를 생성한다. s_nonce를 사용해서 생성한 Digest에 따라 트리거의 인증에 실패한 후에, 클라이언트는 디폴트 난수 값(default nonce)을 사용해서 Digest를 생성한 다음, 트리거 메시지를 다시 인증한다. 인증이 성공하면, 디폴트 난수 값이 서버 및 클라이언트를 인증하는 데에 사용되고, s_nonce 및 c_nonce를 갱신한다. 갱신 과정을 도 2에 나타낸다.
단계 201: 서버는 세션을 촉발하도록 클라이언트에게 트리거 메시지를 발송한다.
서버는, 이전의 s_nonce가 정확하지 않다고 판정한 후에, 디폴트 난수 값을 사용해서, 트리거 메시지를 생성한 후, 클라이언트에게 발송한다. 트리거 메시지에는 디폴트 난수 값을 사용해서 생성한 다이제스트(Digest)와 TriggerInfo가 포함된다.
단계 202: 클라이언트는 트리거 메시지가 실패했다고 인증하고, 디폴트 난수 값을 사용해서 재인증을 행한다.
클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 트리거 메시지를 인증한다. 소정의 이유 때문에 인증이 실패하면, 클라이언트는 디폴트 난수 값을 사용해서 트리거 메시지를 재인증한다.
인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce가 정확하지 않았다는 것을 나타내고, 클라이언트는 세션 요청을 서버에 발송한다.
단계 203: 클라이언트는 세션 요청을 서버에 발송한다.
클라이언트는, 디폴트 난수 값을 사용해서 인증이 성공한 후에, 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
세션 요청에는 세션 ID(SessionID) 및 디폴트 난수 값을 사용해서 생성된 다이제스트(Digest)가 포함된다.
단계 204: 서버는 인증 결과, 인증 요청 및 c_nonce를 갱신하기 위한 명령을 포함한 응답을 회신한다.
서버는 디폴트 난수 값을 사용해서 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, c_nonce를 갱신하기 위한 명령, 및 디폴트 난수 값을 사용해서 생성한 다이제스트(Digest)가 포함된다.
단계 205: 클라이언트는 인증 결과와 c_nonce를 갱신하기 위한 명령을 포함하는 메시지를 서버에 회신한다.
클라이언트는 디폴트 난수 값을 사용해서 서버를 인증한다. 클라이언트는, 인증이 성공하면, c_nonce를 갱신한 후에, 인증 결과와 c_nonce를 갱신하기 위한 명령을 포함하는 메시지를 서버에 회신한다.
단계 206: 서버는 s_nonce의 갱신 결과를 클라이언트에 회신한다.
본 발명의 개발 과정에서, 본 발명자는 종래 기술에 다음과 같은 문제점이 있는 것을 알게 되었다.
디폴트 난수 값은 s_nonce가 정확하지 않은 경우에 인증을 행하기 위해 사용된다. 디폴트 난수 값은 공개된 고정불변의 값이며, 악의를 가진 서버가 디폴트 난수 값을 사용하는 메시지를 가로채서, 해당 메시지를 반복해서 발송함으로써 서버 또는 클라이언트를 공격할 수 있다.
종래에는, 하나의 세션에 2개의 난수 값: s_nonce 및 c_nonce가 사용되고 있는데, 이들은 각각 서버 및 클라이언트에 의해 생성 및 갱신되기 때문에, 클라이언트와 서버의 관리 부담이 크다.
본 발명의 실시예는 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜에 기초하여 클라이언트와 서버 간에 수행되는 인증 처리를 최적하기 위한 DS 프로토콜 또는 DM 프로토콜에 기초한 인증 방법, 시스템, 서버, 및 클라이언트를 제공한다.
본 발명의 실시예에 따른, DS 또는 DM 프로토콜에 기초한 인증 방법은,
서버가 트리거 메시지 난수(Trigger message nonce)를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 트리거 메시지 난수를 추출할 수 있도록 하는 단계;
트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 다이제스트를 생성하고, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하는 단계; 및
인증이 성공한 후에, 트리거 메시지에 의해 지시된 서버에게 세션 ID를 포함하는 세션 요청을 발송하는 단계를 포함한다.
본 발명의 실시예에 따른, DS 또는 DM 프로토콜에 기초한 다른 인증 방법은,
클라이언트가 서버 난수에 대하여 갱신이 필요하다고 판정하는 단계;
새로운 서버 난수를 생성하고, 생성한 새로운 서버 난수를 세션 요청에 추가하며, 세션 요청에 서버에 발송함으로써, 서버로 하여금 새로운 서버 난수를 포함하는 세션 요청을 수신한 후에, 새로운 서버 난수를 사용해서, 저장된 서버 난수를 갱신하도록 하는 단계를 포함한다.
삭제
삭제
삭제
삭제
본 발명의 실시예에 따라, DS 및 DM 프로토콜에 기초한 다른 인증 방법은,
클라이언트가 디폴트 난수를 사용해서 생성된 세션 요청을 서버에 발송하는 단계;
서버가 세션 요청을 수신한 후에 세션 요청을 인증하기 위해 디폴트 난수를 사용할 필요가 있다고 판정되면, 디폴트 난수를 사용해서 세션 요청을 인증하며, 세션 요청에 대한 인증이 성공한 후에, 클라이언트에게, 인증 결과, 디폴트 난수를 사용해서 생성된 인증 요청, 및 클라이언트 난수를 갱신하라는 명령을 포함하는 응답을 회신하는 단계;
클라이언트가 상기 응답을 수신하고, 상기 응답을 인증하기 위해서 디폴트 난수를 사용할 필요가 있다고 판정되면, 디폴트 난수를 사용해서 상기 응답을 인증하고, 클라이언트가 상기 응답에 대한 인증이 성공한 후에, 인증 결과 및 서버 난수를 갱신하라는 명령을 포함하는 응답을 서버에게 회신하는 단계를 포함한다.
본 발명의 실시예에 따라, DS 및 DM 프로토콜에 기초한 다른 인증 방법은,
클라이언트가 서버에 의해 발송되고, 디폴트 난수, 세션 ID, 또는 트리거 메시지 ID를 사용해서 생성되는 트리거 메시지를 수신하는 단계;
클라이언트가, 트리거 메시지를 수신한 후에, 서버 난수를 사용해서 트리거 메시지를 인증하고, 클라이언트가, 트리거 메시지에 대한 인증이 실패한 경우, 디폴트 난수, 세션 ID, 또는 트리거 메시지 ID를 사용해서, 트리거 메시지를 인증하며, 클라이언트가, 인증이 성공한 후에, 클라이언트 난수의 사용에 의해 세션 요청을 생성하고, 클라이언트가, 세션 요청을 서버에 발송함으로써, 서버로 하여금 클라이언트 난수를 사용해서 클라이언트를 인증하도록 하는 단계를 포함한다.
삭제
삭제
삭제
본 발명의 실시예에 따른 서버는,
트리거 메시지 난수를 사용해서 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 생성하도록 된 제1 생성 유닛; 및
트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 클라이언트에게 발송함으로써, 클라이언트로 하여금 트리거 메시지를 추출하도록 하고, 트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 트리거 메시지에 대한 인증이 성공한 후에, 트리거 메시지에 의해 지시되는 서버에게 세션 요청을 발송하도록 된 발송 유닛을 포함한다.
본 발명의 실시예에 따른 클라이언트는,
트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및
트리거 메시지 난수를 추출하고, 트리거 메시지 안수를 사용해서 다이제스트를 생성해서, 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 인증이 성공한 후에, 트리거 메시지에 의해 지시되는 서버에 세션 요청을 발송하도록 된 제1 인증 유닛을 포함한다.
삭제
삭제
삭제
본 발명의 실시예에 따른 다른 클라이언트는,
디폴트 트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및
트리거 메시지를 수신한 후에, 서버 난수를 사용해서 트리거 메시지를 인증하고, 인증이 실패하면, 디폴트 난수를 사용해서 트리거 메시지를 재인증하고, 인증이 성공하면, 클라이언트 난수를 사용해서 세션 요청을 생성하며, 생성한 세션 요청을 서버에 발송해서, 서버로 하여금 클라이언트 난수를 사용해서 클라이언트를 인증하도록 하는 생성 유닛을 포함한다.
이상의 기술적 해결 방안은 시스템의 안전성을 효과적으로 향상시킨다.
삭제
삭제
삭제
삭제
삭제
삭제
이러한 본 발명의 기술적 해결 방안에 의하면, 서버와 클라이언트는 종래의 s_nonce 및 c_nonce 대신에, 세션 프로세스에서 난수 값(nonce)을 공유해서, 클라이언트와 서버 사이에서의 인증을 수행함으로써, 시스템의 부담을 효과적으로 경감시킬 수 있다.
도 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 실시예에 따른 인증 시스템의 구조를 나타낸다.
본 발명의 실시예는, 데이터 동기화(DS: Data Synchronization) 프로토콜과 장치 관리(DM: Device Management) 프로토콜에 기초하여, 클라이언트와 서버 사이에서 수행되는 인증 처리 과정(authentication process)을 최적화할 수 있는 인증 방법, 시스템, 서버 및 클라이언트를 제공한다.
앞서 언급한 세션에서 메시지 인증에 적용되는 보안 메커니즘은 애플리케이션 계층(application layer) 보안 메커니즘이다.
본 발명의 제1 실시예에 따른 인증 방법에서, 서버는 트리거 메시지에 대한 난수(nonce)를 생성하는데, 이 난수는 s_nonce(서버 난수) 및 c_nonce(클라이언트 난수)와는 다른 것이며, 트리거 메시지에 사용할 수 있는 것이다. 이 난수를 트리거 메시지 난수라고 칭할 수 있다. 서버는 이 난수를 사용해서 인증 정보를 생성하고, 새로운 난수와 인증 정보를 트리거 메시지와 함께 클라이언트에 발송한다. 클라이언트는 이 새로운 난수를 사용해서 트리거 메시지를 인증한다.
도 3에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다.
단계 301: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지는 트리거 메시지 난수(Trigger message nonce)를 포함한다.
서버는, 트리거 메시지를 발송하기 전에, 트리거 메시지 난수를 생성하고, 생성한 난수를 사용해서, 다이제스트(Digest)를 생성한 후, Digest를 사용해서 트리거 메시지를 생성한다.
본 실시예에서, 트리거 메시지 난수를 이용하는 방법이 3가지 있다.
(1) 서버는, 트리거 메시지를 생성하면, 자신의 시스템 시간(Ts)을 트리거 메시지 난수로서 사용해서, Ts를 트리거 메시지에 추가한다. 이후, 클라이언트는, 트리거 메시지를 수신한 후, 시스템 시간(Ts)을 로컬 시간(Tc)와 비교해서 난수의 유효성을 판정할 수 있다. 난수에 대하여, 그 유효성은 일반적으로 난수의 적시성(freshness)이라고 부른다. 적시성이 있는 난수(fresh nonce)는 유효한 것이며, 적시성이 없는 난수는 유효하지 않은 것이다.
클라이언트는, 트리거 메시지를 수신한 후에, Ts와 Tc의 차이 값, 즉 |Ts-Tc|을 계산한다. |Ts-Tc|가 미리 정한 임계값 "Diff"보다 작다면, 트리거 메시지 난수는 유효한 것이다. |Ts-Tc|가 미리 정한 임계값 "Diff"보다 작지 않다면, 트리거 메시지 난수는 유효하지 않은 것이다.
임계값 Diff는 통상적으로 클라이언트측에 설정되며, 네트어크 상태에 따라 결정되는 경험(empiric) 값이 될 수 있다. 모바일 네트워크 자체는 안정적이지 않기 때문에, 트리거 메시지에 전송 지연이 생길 수 있다. 임계값을 너무 작게 하면, 트리거 메시지 난수가 유효하지 않게 될 가능성이 높아지고, 임계값을 너무 크게 하면, 악의를 가진 서버가 트리거 메시지를 가로채서 해당 메시지를 클라이언트에게 반복해서 발송하는 경우, 클라이언트는 메시지가 유효한 정보라고 간주하고, |Ts-Tc|이 임계 범위 내에 포함되는 동안에는 이러한 메시지를 취급할 것이다.
(2) 서버는, 트리거 메시지를 생성하기 전에, 소정의 규칙에 따라 먼저 트리거 메시지에 대한 세션 ID를 생성한다. 이 규칙은 현재의 세션 ID로부터 이전의 세션 ID를 도출하는 데에 사용될 수 있다. 세션 ID는 트리거 메시지 난수로서 작용한다. 서버는 이 난수를 사용해서 Digest를 생성하고, Digest를 사용해서 트리거 메시지를 생성한다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 의해 촉발될 세션의 세션 ID를 추출하고, 추출한 세션 ID, 서버 ID, 서버 패스워드, 및 기타 트리거 메시지의 필드를 사용해서, 메시지를 인증하기 위한 다이제스트(Digest)를 생성한다. 클라이언트는, 인증에 성공한 후, 세션 ID에 대응하는 세션을 설정하기 위한 세션 요청을 발송한다. 서버는 세션 요청으로부터 세션 ID를 추출해서 세션을 식별한다.
또한, 클라이언트가 트리거 메시지에 의해 트리거될 세션의 세션 ID를 추출한 후, 클라이언트는 세션 ID의 부호화 규칙에 따라 세션 ID의 적시성을 추론(infer)할 수 있다. 또는, 클라이언트가 사용된 세션 ID를 저장하고, 트리거 메시지의 세션 ID를 저장된 세션 ID와 비교해서, 적시성을 판정할 수 있다.
이러한 방법에서, 세션 ID는 트리거 메시지 ID(통지 ID: NotificationID)로 대체해도 된다. 이러한 트리거 메시지 ID는 클라이언트에 의해 회신된 트리거 메시지 처리 결과를 트리거 메시지와 연관시킨다.
(3) 서버는, 트리거 메시지를 생성할 때에, 각각의 트리거 메시지에 번호를 매기고, 이 번호를 전용의 트리거 메시지 난수로서 사용한다. 서버는 난수를 사용해서 다이제스트(Digest)를 생성하고, 다이제스트를 사용해서 트리거 메시지를 생성한다.
번호를 매기는 넘버링은 오름차순 또는 내림차순으로 할 수 있다. 클라이언트는, 트리거 메시지를 수신한 후에, 메시지에 포함된 난수를 저장된 난수와 비교한다. 번호가 오름차순으로 된 경우, 새로운 난수가 더 크면, 난수는 유효한 것이다. 그렇지 않고 난수가 작으면, 난수는 유효하지 않은 것이다. 번호가 내림차순으로 된 경우, 새로운 난수가 더 작으면, 난수는 유효한 것이며, 그렇지 않으면 유효하지 않은 것이다.
클라이언트는, 새로운 난수가 유효하고 서버에 대한 인증이 성공했다고 판정되면, 새로운 난수를 저장하고, 다음의 트리거 메시지 난수와의 비교에 사용한다.
본 방법에서, 악의를 가진 서버가 트리거 메시지를 가로채서 클라이언트에게 메시지를 반복해서 발송하는 방식으로 클라이언트를 공격하면, 이러한 트리거 메시지에 의해 사용된 난수가 기록되어 있기 때문에, 모든 악의 있는 메시지는 유효하지 않은 것으로 판정되어, 악의를 가진 서버로부터의 공격을 방지할 수 있다.
또한, 모바일 네트워크가 불안정해서, 나중에 발송된 메시지가 클라이언트에게 먼저 도달하게 되면, 여러 세션에 사용될, 서버가 발송한 트리거 메시지가 클라이언트에게 변경된 순서로 도달할 수 있게 되기 때문에, 클라이언트는 유효한 메시지를 유효하지 않은 메시지로 잘못 판정하게 된다.
예를 들어, 서버가 3개의 다른 세션에 대해 3개의 트리거 메시지를 연속해서 발송한 경우, 3개의 트리거 메시지에 의해 사용된 트리거 메시지 난수는 각각 30, 31, 32이다. 그러나, 모바일 네트워크가 불안정해서, 클라이언트가 난수가 32인 트리거 메시지를 먼저 접수한다. 따라서, 클라이언트는 이 메시지가 유효한 것으로 판정하고 이 난수를 기록한다. 다른 2개의 트리거 메시지가 클라이언트에 도달하면, 클라이언트는 이들 난수를 기록되어 있는 난수와 비교하게 되는데, 이들 난수는 기록된 난수보다 작은 값을 갖기 때문에, 클라이언트는 메시지가 유효하지 않다고 잘못 판정한다.
이러한 문제에 대해서, 본 발명의 실시예는 다음과 같은 3가지 해결 방안을 제시한다.
해결 방안 1: 클라이언트는 모든 트리거 메시지 난수 값 또는 가장 최근에 접수한 트리거 메시지 난수를 저장하고, 유효한 것으로 판정된 트리거 메시지 난수를 저장된 난수와 비교한다. 트리거 메시지 난수가 저장된 난수와 동일하지 않으면, 클라이언트는 해당 난수가 유효한 것으로 판정하고 그 난수를 저장한다.
저장 공간이 제한되어 있으면, 저장 공간을 설정하고, 저장된 난수 값의 양이 상한에 도달하면, 저장된 최소의 난수를 삭제한다.
해결 방안 2: 트리거 메시지 난수 값이 오름차순으로 번호가 매겨진 경우, 클라이언트는 접수한 최대의 난수와 현재의 최대값 보다 작고 접수된 적이 없었던 모든 또는 일부의 난수 값을 저장하고, 유효하다고 판정한 트리거 메시지 난수를 저장된 난수 값과 비교해서, 해당 난수가 저장된 난수 값과 동일하지 않으면, 해당 난수가 유효하다고 판정하고 저장한다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 클라이언트는 접수한 최소의 난수와 현재의 최소값 보다 작고 접수되지 않았던 모든 또는 일부의 난수 값을 저장하고, 유효하다고 판정한 트리거 메시지 난수를 저장된 난수 값과 비교해서, 해당 난수가 저장된 난수 값과 동일하지 않으면, 해당 난수가 유효하다고 판정하고 저장한다.
예를 들어, 초기값을 1이라 하고, 번호 매기는 방식을 오름차순으로 하며, 클라이언트가 이들 트리거 메시지 난수 값 1, 2, 4, 5, 및 7을 차례로 수신하는 것으로 가정한다. 이 경우, 클라이언트는 최대값 난수 "7"과, 7보다 작고 접수된 적이 없었던 난수 값 "3", "6"을 기록한다. 클라이언트는, 트리거 메시지 난수 "6"을 수신하면, "6"을 최대값 난수 "7"과 비교한다. 6은 7보다 작기 때문에, 이 난수는 유효하지 않은 것이다. 이어서, 클라이언트는 "6"을 "3" 및 "6"과 비교하고 동일한 값이 있다는 것을 알아낸다. 클라이언트는 이 트리거 메시지 난수가 유효하다고 판정하고, 기록된 "6"을 삭제한다. 번호 매기는 방식이 내림차순이 경우에는, 판단 방식이 유사하기 때문에, 반복해서 설명하지는 않는다.
해결 방안 3: 트리거 메시지 난수 값이 오름차순으로 번호가 매겨진 경우, 클라이언트는 최대값 난수를 저장하고, 저장된 최대값 난수보다 작은 난수를 갖는 모든 트리거 메시지를 유효한 것으로 간주한다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 클라이언트는 최대값 난수를 저장하고, 저장된 최대값 난수보다 큰 난수를 갖는 모든 트리거 메시지를 유효하지 않은 것으로 간주한다. 서버가 소정의 기간 내에 클라이언트로부터 응답을 수신하지 못하면, 서버는 넘버링 규칙(numbering rule)에 따라 새로운 난수를 생성하고, 이 새로운 난수를 포함하는 트리거 메시지를 발송한다.
상기 설명한 것은 본 발명의 실시예에 따라 트리거 메시지 난수를 사용하는 방법이다.
시스템 시간 또는 트리거 메시지 번호가 트리거 메시지 난수로서 사용된다면, 트리거 메시지 난수는 트리거 메시지의 메시지 본문 또는 메시지 헤더에 포함될 수 있다. 메시지 헤더를 예로 들면, 도 4에 나타낸 바와 같이, 난수가 추가된 메시지 포맷에는, 다이제스트(Digest), 트리거 메시지 헤더(trigger-hdr), 및 트리거 메시지 본문(trigger-body)이 포함된다.
트리거 헤더(trigger-hdr)에는, 버전(version), 사용자 쌍방향 모드(ui-mode), 세션 개시자(session initiator), 난수, 보류 필드(future-use), 서버 식별자 길이(length-identifier) 및 서버 식별자가 포함된다.
또한, 본 발명의 실시예는 트리거 메시지 난수를 사용해서 다이제스트(Digest)를 생성하는 2가지 방법을 제공한다.
방법 1: H=MD5 해싱 함수이고, b64=Base64 부호화 함수라고 한다. 다이제스트(Digest)는 다음과 같이 표현될 수 있다.
Digest= H(B64(H(server-identifier:password)):nonce:B64(H(trigger)))
서버 식별자(server-identifier) 필드는 서버 식별자이며, 패스워드(password) 필드는 서버 패스워드이고, 난수(nonce) 필드는 트리거 메시지 난수[즉, 시스템 시간(Ts), 세션 ID 또는 트리거 메시지 번호]이며, 트리거(trigger) 필드는 트리거 메시지의 트리거 헤더(trigger-hdr) 또는 트리거 본문(trigger-body)을 포함한다.
클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지에 트리거 메시지 난수가 포함되어 있다고 판정한 후, 클라이언트 관리 트리(management tree)에서 서버에 대응하는 패스워드를 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자(server-identifier), 난수, 및 트리거(Trigger)를 사용해서, 다이제스트(Digest)를 생성하고, 생성한 다이제스트를 메시지에 포함된 다이제스트와 비교한다. 비교 결과, 2개의 다이제스트가 동일하면, 인증이 성공한 것이고, 동일하지 않으면 인증이 실패한 것이다.
방법 2: H=MD5 해싱 함수이고, b64=Base64 부호화 함수라고 한다.
트리거 메시지 난수는 메시지 헤더 또는 메시지 본문에 포함되기 때문에, 난수는 트리거 메시지의 트리거 헤더 필드와 트리거 본문 필드 중의 일부가 될 수 있다. 따라서, 다이제스트를 계산하기 위해, 트리거 헤더 필드와 트리거 본문 필드만을 사용하면 된다. 다이제스트는 다음과 같이 표현될 수 있다.
Digest = H(B64(H(server-identifier:password)):B64(H(trigger)))
서버 식별자(server-identifier) 필드는 서버 식별자이며, 패스워드(password) 필드는 서버 패스워드이고, 트리거(trigger) 필드는 트리거 메시지의 트리거 헤더 또는 트리거 본문을 포함한다.
클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지에 트리거 메시지 난수가 포함되어 있다고 판정한 후, 클라이언트 관리 트리(management tree)에서 서버에 대응하는 패스워드를 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 생성한 다이제스트를 메시지에 포함된 다이제스트와 비교한다. 비교 결과, 2개의 다이제스트가 동일하면, 인증이 성공한 것이고, 동일하지 않으면 인증이 실패한 것이다.
단계 302: 클라이언트는 정보가 유효하다고 판정하고, 정보를 성공적으로 인증한 후, 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 이 판단 방법은 앞서 설명하였다. 트리거 메시지 난수가 유효하다고 판정하면, 클라이언트는 서버에 대응하는 패스워드를 클라이언트 관리 트리에서 검색한다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다.
클라이언트는, 인증이 성공한 후, 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
이 세션 요청에는, 세션 ID(SessionID)와,
c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
이 단계에서, 클라이언트와 서버 사이에 세션 접속이 확립된다.
단계 303: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다.
서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 s_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
단계 304: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는, 서버가 발송한 인증 정보에 따라, 서버를 인증하고, 인증 결과를 포함하는 메시지를 서버에 회신한다.
더 구체적으로 말해서, 이 메시지에는 클라이언트가 서버를 인증한 결과와 그외 관련 정보가 포함된다.
또한, 트리거 메시지 난수 값이 오름차순으로 넘버링된 경우, 트리거 메시지가 증가하면, 난수 값은 더 커진다. 트리거 메시지 난수 값이 내림차순으로 번호가 매겨진 경우, 트리거 메시지가 증가하면, 난수 값은 0에 도달할 때까지 감소한다. 이러한 경우, 난수를 조정할 필요가 있는데, 예를 들면 카운트의 시작점을 조정할 필요가 있다. 본 발명의 실시예는 필요에 따라 난수 값을 조정하는 여러 방법을 제공한다.
방법 1: 서버는 클라이언트측의 계정 패스워드(account password)를 주기적으로 갱신한다. 서버와 클라이언트는, 서버가 클라이언트의 계정 패스워드를 갱신하면, 난수 값을 자동으로 리셋시킬 수 있다.
방법 2: 난수를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 서버는 난수를 리셋하라는 명령을 하달한다. 이 명령은 경고(Alert) 명령이 될 수 있다. 예를 들면,
<Alert>
<CmdID>1</CmdID>
<Data>1227</Data> <!- 난수 카운트 대체 -->
</Alert>
서버는, 난수를 조정한 후에, 클라이언트에 계정 패스워드를 변경하라는 명령을 하달함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다.
방법 3: 서버는 클라이언트의 관리 트리를 직접 조작할 수 있기 때문에, 클라이언트 관리 트리에서의 계정 정보에 노드(node)를 추가할 수 있으며, 노드를 사용하여, 클라이언트에 의해 수신해서 보존한 난수 값을 저장할 수 있다. 노드는 다음과 같이 될 수 있다:
<X>/AppAuth/<X>/SNAAuthCount
이후, 노드를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 서버는 교체(Replace) 명령을 노드에 하달한다. 명령의 예는 다음과 같다:
<Replace>
<CmdID>4</CmdID>
<Item>
<Target>
<LocURI>./DMAcc/serverA/AppAuth/1/SNAAuthCount</LocURI>
</Target>
<Data>1</Data>
</Item>
</Replace>
서버는, 난수를 조정한 후에, 클라이언트의 계정 패스워드를 변경하라는 명령을 하달함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다.
방법 4: 노드를 조정할 필요가 있을 때(예를 들어, 미리 정한 시간에 도달한 경우 또는 카운트가 미리 정한 값에 도달한 경우), 클라이언트는 교체(Replace) 요청을 서버에 발송한다. 클라이언트가 서버로부터 승인(acknowledgement)을 수신한 후에, 양 당사자는 난수를 조정한다. 조정이 완료되면, 서버는 클라이언트의 계정 패스워드를 갱신함으로써, 메시지의 가로채기와 악의적인 서버에 의한 공격을 방지할 수 있다.
본 발명의 제1 실시예에 따른 인증 방법에서는, s_nonce 및 c_nonce와 다르며, 트리거 메시지에 이용할 수 있는 난수를 제공한다. 새로운 세션이 개시되면, 서버는 트리거 메시지에 의해 전용으로 사용될 난수를 생성해서 세션을 트리거한다. 클라이언트는 난수를 사용해서 트리거 메시지를 인증한다. 서버가 저장한 s_nonce가 정확하지 않더라도, 클라이언트를 세션을 개시할 수 있다. 이 경우, s_nonce 및 c_nonce가 정확하지 않다면, s_nonce 또는 c_nonce는 상호작용(interaction)을 통해 갱신을 행함으로써 인증을 실현할 수 있다.
정확하지 않은 s_nonce를 예로 들면, 도 5에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다.
단계 501: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 트리거 메시지 난수가 포함되어 있다.
서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 이 난수를 사용해서 다이제스트를 생성한 후, 이 다이제스트를 사용해서 트리거 메시지를 생성한다.
단계 502: 클라이언트는 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하고, 메시지가 성공했음을 인증한 후, 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판정되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다.
인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
세션 요청에는, SessionID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
단계 502에서, 클라이언트와 서버 사이에 세션 접속이 확립된다.
단계 503: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다.
서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트를 인증하고, 인증 결과와 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로 말하면, 응답에는, 서버가 클라이언트를 인증한 결과, SessionID, 및 s_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
단계 504: 클라이언트를 저장된 s_nonce를 사용해서 서버를 인증하지만, 인증은 실패한다.
단계 505: 클라이언트는 질의(Challenge) 메시지와 s_nonce 갱신 메시지를 서버에 발송한다.
단계 506: 서버는 새로운 s_nonce를 사용해서 인증 정보를 생성하고, 인증 요청을 클라이언트에게 다시 발송한다.
서버는, 갱신 메시지를 수신한 후에, 클라이언트가 지시한 대로, 저장된 s_nonce를 갱신하고, 갱신한 s_nonce를 사용해서 새로운 인증 요청을 생성하며, 갱신 결과와 새로운 인증 요청을 서버에 발송한다.
단계 507: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는, 서버가 발송하고 갱신된 s_nonce를 사용하여 생성한 인증 요청에 따라, 서버를 인증한 후, 인증 결과를 포함하는 메시지를 서버에 회신한다.
더 구체적으로 말하면, 이 메시지에는 클라이언트가 서버를 인증한 결과 및 기타 관련 정보가 포함된다.
본 발명의 제1 실시예에 따른 인증 방법에서, 새로운 세션이 개시되었으면, 서버는 트리거 메시지에 전용으로 사용할 수 있는 난수를 생성해서 세션을 트리거한다. 본 발명의 제2 실시예에 따른 인증 방법에서는, 서버가 s_nonce를 정확하지 않은 것으로 간주할 때에만, 세션을 트리거하기 위해 트리거 메시지에 전용으로 사용할 수 있는 난수를 생성한다.
도 6에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다.
단계 601: 서버는 트리거 메시지를 클라이언트에게 발송한다. 이 메시지에는 s_nonce가 포함된다.
단계 602: 서버는 인증이 실패했음을 알게 된다.
만일 서버가 특정의 기간 내에 클라이언트가 회신하는 메시지를 받지 못하면, 서버는 인증이 실패했다고 간주한다.
단계 603: 서버는 새로운 트리거 메시지를 클라이언트에게 발송한다. 이 메시지에는 트리거 메시지 난수가 포함된다.
서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 이 난수를 사용해서 다이제스트를 생성한 후, 다이제스트를 사용해서 트리거 메시지를 생성한다.
단계 604: 클라이언트는 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하고, 메시지가 성공적이라고 인증한 후, 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단함으로써 s_nonce를 사용해서 인증을 할지 아니면 트리거 메시지를 사용해서 인증을 할지 여부를 결정한다.
판단 방법은 다음과 같다. 클라이언트는 트리거 메시지가 난수 필드(nonce field)를 포함하는지 여부를 판단함으로써, 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 트리거 메시지가 난수 필드를 포함하면, 트리거 메시지는 트리거 메시지 난수를 사용하는 것이다. 이와 달리, 클라이언트는 트리거 메시지 내의 버전 필드(version field) 정보를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 이것은 메시지가 트리거 메시지 난수를 사용하는지 여부를, 메시지 버전이 나타내기 때문이다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지 내에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판단되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는, 발견한 패스워드, 트리거 메시지 내의 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다.
인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
세션 요청에는, SessionID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
단계 604에서, 클라이언트와 서버 간에 세션 접속이 확립된다.
단계 605: 서버는 인증 결과와 인증 요청을 포함하는 응답을 회신한다.
단계 605는 단계 503과 유사하기 때문에, 중복해서 설명하지는 않는다.
단계 606: 클라이언트는 저장된 s_nonce를 사용해서 서버를 인증하지만, 인증이 실패한다.
단계 607: 클라이언트는 질의(Challenge) 및 새로운 s_nonce를 포함하는 메시지를 서버에 발송한다.
단계 608: 서버는 갱신 결과와 새로운 인증 요청을 클라이언트에 회신한다.
단계 608은 단계 506과 유사하기 때문에, 더 설명하지는 않는다.
단계 609: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
단계 609는 단계 507과 유사하기 때문에, 더 설명하지는 않는다.
본 발명의 제2 실시예에 따른 인증 방법에서, 서버가 s_nonce가 정확하지 않다고 간주하면, 서버는 세션을 트리거하기 위한 트리거 메시지에 전용으로 사용될 수 있는 난수를 생성한다. 클라이언트는 본 발명의 제1 실시예의 인증 방법에 따라 트리거 메시지를 처리한다. 본 발명의 제3 실시예에 따른 인증 방법에서, 클라이언트는 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하는지 여부를 판단함으로써, s_nonce를 갱신할지 여부를 결정할 수 있다. 트리거 메시지가 트리거 메시지에 전용으로 사용할 수 있는 난수를 사용한다면, 클라이언트는 s_nonce를 직접 갱신함으로써, 세션에서의 인증을 위해, 갱신된 s_nonce를 직접 사용할 수 있다.
본 발명의 제1 및 제2 실시예에 따른 인증 방법에서, 인증이 실패하면, 인증을 실현하는 데에 디폴트 난수를 필요로 하지 않기 때문에, 시스템의 보안성을 향상시킬 수 있다.
본 발명의 제3 실시예에 따른 인증 방법에서, s_nonce 및 c_nonce는 종래 기술에 따라 갱신되고, 이에 따라 서버 패스워드와 클라이언트 패스워드가 갱신된다. 갱신된 서버 패스워드는 디폴트 난수를 사용함으로써 생성된 서버 다이제스트가 상이하게 됨으로써, 클라이언트에 대한 메시지 리플레이 공격을 방지할 수 있다. 갱신된 클라이언트 패스워드에 의하면 디폴트 난수를 사용함으로써 생성된 클라이언트 다이제스트가 상이하게 됨으로써, 서버에 대한 메시지 리플레이(replay) 공격을 방지하여, 시스템의 안전성을 높일 수 있다.
본 발명의 제4 실시예에 따른 인증 방법에서는, 단계들간의 관련성이 강화되어, 다음 단계의 인증에 이전 단계가 사용되기 때문에, 시스템의 안전성을 높일 수 있다. 도 7에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다.
단계 701: 클라이언트는 세션을 트리거하기 위한 트리거 메시지를 수신하고 메시지를 인증한다.
단계 702: 클라이언트는 트리거 메시지가 실패한 것으로 인증하고, 디폴트 난수를 사용해서 재인증한다.
단계 703: 클라이언트는 세션 요청을 서버에 발송한다. 이 세션 요청은 디폴트 난수를 사용하여 생성된다.
디폴트 난수를 사용해서 행해진 인증이 성공하면, 클라이언트는 트리거 메시지에 의해 지시된 서버에게 세션 요청을 발송한다. 세션이 애플리케이션 계층 보안 메커니즘을 사용하면, 메시지는 디폴트 난수를 사용하여 생성된 인증 정보를 포함하며, 처리 과정은 단계 704로 진행한다. 디폴트 난수를 사용하여 행해진 인증이 실패하면, 클라이언트는 어떠한 세션도 개시하지 않고 트리거 메시지를 무시하고, 처리 과정을 종료한다.
단계 704: 서버는 클라이언트가 발송한 세션 요청을 인증한다.
서버는 세션 요청을 다음과 같은 2가지 방법으로 인증한다.
방법 1: 서버는 c_nonce를 사용해서 인증을 위한 인증 정보를 생성하고, 인증이 성공하면, 종래 기술에 따라 정상적인 처리 과정을 수행한다. 인증이 실패하면, 서버는 디폴트 난수를 사용해서 인증 정보를 생성하고 인증을 다시 수행한다. 인증이 성공하면, 서버는 디폴트 난수를 사용해서 서버 인증 요청을 생성하고, 처리 과정을 단계 705로 진행시킨다.
방법 2: 서버는, 세션이 애플리케이션 계층 보안 메커니즘을 사용하는 것으로 서버가 판정하면, 디폴트 난수를 사용하여 생성한 트리거 메시지를 클라이언트에 발송하고, 트리거 메시지는 세션 요청을 트리거하기 위한 트리거 메시지이며, 서버는 디폴트 난수를 사용해서 세션 요청을 인증한다. 인증이 성공한 후, 단계 705로 진행한다.
세션 요청이 트리거 메시지에 의해 트리거되는지 여부를 판단하는 방법은 다음과 같다: 각각의 세션 요청은 고유의(unique) 세션 ID를 갖는다. 세션 요청에 포함된 세션 ID를 트리거 메시지에 포함된 세션 ID와 비교한다. 이들 세션 ID가 동일하면, 세션이 트리거 메시지에 의해 트리거됨을 나타낸다.
서버가 디폴트 난수를 사용하여 생성된 트리거 메시지를 클라이언트에게 발송하였는지 여부와 트리거 메시지가 세션 요청을 트리거하기 위한 트리거 메시지인지 여부를 판단하는 단계는, 세션 요청이 디폴트 난수에 의해 성공적으로 인증된 후에 행해질 수 있다. 판단이 성공하면, 단계 705로 진행한다.
단계 704의 목적은, 디폴트 난수를 사용하여 생성되고 세션을 트리거하도록 구성된 트리거 메시지가 서버에 의해 클라이언트로 발송되지 않았지만, 클라이언트가 발송하고 디폴트 난수에 의해 생성된 세션 요청을 서버가 수신한 경우, 이 메시지는 정상이 아니거나 안전하지 않다는 것을 나타내며, 악의적인 제3자가 발송된 악의적인 메시지일 가능성이 있으므로, 폐기할 수 있다. 따라서, 이 단계는 시스템의 안전성을 향상시킨다.
단계 705: 서버는 응답 메시지를 클라이언트에 회신한다.
서버는 인증 결과, 인증 요청, 및 c_nonce를 갱신하기 위한 명령을 포함하는 응답을 클라이언트에게 회신한다.
단계 706: 클라이언트는 서버가 발송한 응답에 대한 인증을 행한다.
세션이 애플리케이션 계층 보안 메커니즘을 사용하면, 클라이언트는 디폴트 난수를 사용해서 서버에 대한 인증을 행한다. 인증 방법은 다음과 같다. 클라이언트는 s_nonce를 사용해서 인증에 사용하기 위한 인증 정보를 생성하고, 인증이 성공하면, 종래 기술에 따라 정상적인 처리 과정을 수행한다. 인증이 실패하면, 클라이언트는 디폴트 난수를 사용하여 인증 정보를 생성하고 인증을 다시 수행한다. 인증이 성공하면, 클라이언트는 c_nonce를 갱신하고 단계 707로 진행한다.
단계 706의 다른 방법으로서, 세션이 애플리케이션 계층 보안 메커니즘을 사용한다면, 클라이언트는 디폴트 난수를 사용해서 생성된 세션 요청을 서버에 발송하고, 클라언트는 디폴트 난수를 사용해서 서버가 발송한 응답에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 c_nonce를 갱신하고, 단계 707로 진행한다.
클라이언트가 디폴트 난수를 사용해서 생성한 세션 요청을 서버에 발송하였는지 여부를 판단하는 단계는, 디폴트 난수를 사용해서 인증을 수행한 후에 행해도 된다. 인증이 성공하면, 판정이 이루어진다. 판정이 성공하면, 단계 707로 진행한다.
단계 707: 클라이언트는 응답을 서버에 회신한다.
클라이언트는 인증 결과, c_nonce 갱신 결과, 및 s_nonce를 갱신하기 위한 명령을 포함하는 응답을 서버에 회신한다.
단계 708: 서버는 s_nonce 갱신 결과를 클라이언트에 회신한다.
이러한 단계를 완료한 후에, 리플레이 공격을 방지하기 위해, 서버 패스워드를 갱신하거나, 서버 패스워드 및 클라이언트 패스워드 모두를 갱신할 수 있다.
이러한 단계들에서, 세션 ID를 난수로 사용해도 되며, 트리거 메시지 ID를 디폴트 난수 대신에 난수로서 사용해도 된다. 이에 의해, 불변의 공개적 난수를 회피해서, 안정성을 더 놓일 수 있다.
본 발명의 제3 및 제4 실시예에 따른 인증 방법은 시스템의 안전성을 효과적으로 향상시킬 수 있다.
종래, s_nonce가 정확하지 않고 갱신될 필요가 있으면, 도 2의 단계 203 및 204에 나타낸 바와 같이, 갱신을 수행하기 위해 명령을 4회 교환할 필요가 있다. 왜냐하면, 디폴트 난수는 갱신되기 전에 사용될 필요가 있어서, 위험이 크다. 모바일 네트워크에서 메시지가 여러 번 교환되면, 네트워크가 부하가 커진다.
본 발명의 인증 방법의 실시예에서, 클라이언트가 발송한 세션 요청에 새로운 s_nonce를 부가하는 해결 방안을 제시한다. 이렇게 함으로써, 서버는 s_nonce를 직접 갱신할 수 있고, 새로운 s_nonce를 사용해서 인증을 행함으로써, 신호 상호작용의 횟수와 디폴트 난수를 사용하는 횟수를 감소시켜, 시스템의 안전성을 강화하고, 네트워크의 부하를 경감시킬 수 있다.
도 8에 나타낸 바와 같이, 본 발명의 제5 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다.
단계 801: 클라이언트는 s_nonce를 갱신할 필요가 있다고 판단한다.
클라이언트는 s_nonce가 만료되었다고 판정하거나, 서버에 저장된 s_nonce가 클라이언트에 저장된 것과 상이하다는 것을 알게 되면, s_nonce를 갱신하여야 한다고 판단한다.
클라이언트는 서버에 저장된 s_nonce가 클라이언트에 저장된 것과 다르다는 것을 다음과 같은 방식으로 판단한다.
클라이언트는, 트리거 메시지를 수신한 후에, 저장된 s_nonce를 사용해서 트리거 메시지를 인증한다. 소정의 이유 때문에 인증이 실패하면, 클라이언트는 디폴트 난수를 이용하거나 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서, 다이제스트를 생성하고 트리거 메시지에 대한 인증을 다시 시도한다.
인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce는 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다.
단계 802: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다.
클라이언트는, s_nonce를 갱신할 필요가 있다고 판단한 후에, 새로운 s_nonce를 생성하고, 이 s_nonce를 세션 요청에 추가한 후, 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다.
세션 요청에는, SessionID, 새롭게 생성한 s_nonce, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다. 이러한 세션 요청에서, 디폴트 난수, 세션 ID 또는 트리거 메시지 ID를 난수로 사용해서 다이제스트를 생성할 수 있다.
새롭게 생성한 s_nonce는 세션 요청(SyncML)의 SyncHdr 또는 SyncBody에 포함될 수 있다.
포함 방법을 아래에 설명한다. 새롭게 생성한 s_nonce가 SyncHdr에 포함되는 것으로 가정한다.
s_nonce를 포함시키기 위해, SyncHdr을 다음과 같이 변경한다.
SyncHdr (VerDTD, VerProto, SessionID, MsgID, Target, Source, RespURI?, NoResp?, Cred?, Chal?, Meta?)>
s_nonce를 포함하는 SyncML 메시지는 다음과 같다:
<SyncML xmlns='SYNCML:SYNCML1.2'>
<SyncHdr>
...
<Chal>
<Meta>
<NextNonce xmlns='Syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce>
</Meta>
</Chal>
</SyncHdr>
<SyncBody>
...
</SyncBody>
</SyncML>
단계 803: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다.
서버는, 세션 요청을 수신한 후에, c_nonce를 사용해서 클라이언트에 대한 인증을 행하고, 세션 요청에 포함된 갱신이 완료된 s_nonce를 사용해서 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 명령, 및 인증 요청을 포함하는 응답을 클라이언트에게 회신한다. 서버는 c_nonce를 사용해서 세션 요청을 인증하는 것이 바람직하다. 인증이 성공한 후, 서버는 s_nonce를 갱신함으로써, 서버에 저장된 s_nonce와 클라이언트에 저장된 것 간의 동기화를 유지할 수 있다.
더 구체적으로 말하면, 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 갱신된 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
단계 804: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는 갱신된 s_nonce를 사용해서 서버에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다.
또한, 본 발명의 제5 실시예에 따른 인증 방법은 본 발명의 제2 실시예에 따른 인증 방법에 적용함으로써, 신호 상호작용의 횟수를 감소시킬 수 있다.
도 9에 나타낸 바와 같이, 본 발명의 제6 실시예에 따른 인증 방법은 다음과 같은 단계를 포함한다:
단계 901: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 s_nonce가 포함된다.
단계 902: 서버는 인증이 실패한 것으로 판단한다.
예를 들어, 서버가 특정 기간 내에 클라이언트로부터 세션 요청을 받지 못하면, 서버는 인증이 실패한 것으로 간주한다.
단계 903: 서버는 트리거 메시지를 클라이언트에 발송한다. 이 메시지에는 트리거 메시지 난수가 포함된다.
서버는, 발송을 행하기 전에, 트리거 메시지 난수를 생성하고, 생성한 난수를 사용해서 다이제스트를 생성하고, 다이제스트를 사용해서 트리거 메시지를 생성한다.
클라이언트는, 트리거 메시지를 수신한 후에, 트리거 메시지가 트리거 메시지에 전용으로 사용될 수 있는 난수를 사용하는지 여부를 판단하고, s_nonce를 갱신할 필요가 있다고 결정한다. 그 결과, 클라이언트는 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하고, s_nonce를 갱신할 필요가 있다는 것을 알게 된다.
트리거 메시지가 트리거 메시지에 전용으로 사용가능한 난수를 사용하는지 여부를 판단하는 방법은 다음과 같다: 클라이언트는 트리거 메시지가 난수 필드를 포함하는지 여부를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 즉, 트리거 메시지가 난수 필드를 포함하면, 트리거 메시지는 트리거 메시지 난수를 사용하는 것이다. 이와 달리, 클라이언트는 트리거 메시지 내의 버전 필드 정보를 판단함으로써 트리거 메시지가 트리거 메시지 난수를 사용하는지 여부를 판단한다. 버전 필드는 메시지가 트리거 메시지 난수를 사용하는지 여부에 대하여 나타내기 때문이다.
클라이언트는, 트리거 메시지가 트리거 메시지 난수가 아닌 다른 것을 사용하는 것을 발견하면, s_nonce를 갱신할 필요가 없다는 것을 나타내기 때문에, 일반적인 처리 과정을 수행한다.
단계 905: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신하고, 트리거 메시지가 트리거 메시지에 전용으로 사용가능한 트리거 메시지 난수를 사용한다고 판정하면, 트리거 메시지에 포함된 트리거 메시지 난수가 유효한지 여부를 판단한다. 판단 방법은 앞서 설명한 것과 같다. 트리거 메시지 난수가 유효하다고 판정되면, 클라이언트는 클라이언트 관리 트리를 검색해서 서버에 대응하는 패스워드를 찾는다. 클라이언트는, 발견한 패스워드, 서버 식별자, 및 트리거를 사용해서, 다이제스트를 생성하고, 트리거 메시지를 인증한다. 상세한 인증 방법에 대해서는 단계 301에 설명되어 있다. 클라이언트의 인증 방법은 다이제스트를 생성하는 방법에 따라 달라진다.
트리거 메시지에 대한 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성하고, 생성한 s_nonce를 세션 요청에 추가하며, 갱신 정보가 포함된 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다.
세션 요청에는, SessionID, 갱신된 s_nonce, 및 c_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
새롭게 생성한 s_nonce는 세션 요청의 SyncHdr 또는 SyncBody에 포함될 수 있다.
단계 906: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다.
서버는, 세션 요청을 수신한 후, c_nonce를 사용해서 클라이언트에 대한 인증을 행하며, 세션 요청에 포함된, 갱신된 s_nonce를 사용해서 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로 말하면, 이 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 및 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
단계 907: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는 갱신된 s_nonce를 사용해서 서버에 대한 인증을 행한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다.
더 구체적으로 말하면, 이 메시지에는 서버를 인증한 결과 및 기타 관련 정보가 포함된다.
종래, 클라이언트가 서버에 대한 인증이 성공한 후에 세션을 개시하지 않은 경우도 있었다. 이 경우, 클라이언트는 s_nonce가 만료되었거나 정확하지 않아서 갱신할 필요가 있다고 판단한다면, s_nonce를 갱신하거나 s_nonce를 효과적으로 유지하는 것이 불가능하다.
따라서, 본 발명의 제7 실시예에 따른 인증 방법은 대응하는 해결 방안을 제공한다.
본 발명의 제7 실시예에 따른 인증 방법에서, 클라이언트가 서버에 대한 인증을 성공하고 세션을 개시하지 않는 것으로 결정한 후에, 클라이언트는 상태(state) 응답을 서버에 발송한다. 클라이언트가, s_nonce가 만료되었거나 서버에 저장된 s_nonce와 불일치하다고 판정하면, 클라이언트는 새로운 s_nonce를 생성하고, 생성한 새로운 s_nonce를 상태 응답에 추가한다. 클라이언트는 c_nonce, 클라이언트의 사용자명(username)과 패스워드, 및 응답 메시지 본문을 사용해서, 다이제스트를 계산한다. 따라서, 상태 응답을 수신한 후에, 서버는 c_nonce, 클라이언트의 사용자명과 패스워드, 및 응답 메시지 본문을 사용해서 계산한 다이제스트에 따라 정보를 인증할 수 있다. 인증이 성공한 후, 서버는 상태 응답에 포함된 새로운 s_nonce에 따라, 저장된 s_nonce를 갱신한다.
도 10에 나타낸 바와 같이, 새로운 s_nonce를 갖는 상태 응답에는, 다이제스트, 통지 헤더(notification-hdr), 및 통지 본문(notification-body)이 포함된다.
통지 헤더는, 버전, 상태 코드(state-code), 통지 ID, 새로운 난수(Next-nonce), 보류(future-use), 세션 ID(SessionID), 인증 ID의 길이(length-authname) 및 인증 ID(authname)가 포함된다.
NextNonce는 새로운 s_nonce(서버 난수)이다.
종래, s_nonce가 정확하지 않으면, s_nonce와 c_nonce를 다시 사용하지 않으며, 클라이언트와 서버는 디폴트 난수를 사용해서 인증 정보를 생성한다. 따라서, 악의의 서버가 임의의 메시지를 가로채서 서버 또는 클라이언트를 공격할 수 있다.
s_nonce는 c_nonce와 다르며, 이들은 서버 및 클라이언트에 의해 각각 생성되고, 상대편에 대해 사용할 수 있다. 따라서, 이들 중 하나에 오류가 생겨도, 다른 쪽은 영향을 받지 않는다. 본 발명의 제8 및 제9 실시예에 따른 인증 방법에서, s_nonce에 오류가 있는 경우, s_nonce를 별도로 갱신하는 해결 방안을 제공한다.
s_nonce에 오류가 있는 경우는 다음과 같다: 클라이언트가, s-nonce가 만료되었거나 서버에 저장된 s_nonce에 오류가 있다고, 예를 들어 클라이언트가, 서버에 저장된 s_nonce가 클라이언트에 저장된 s_nonce와 불일치 또는 비동기적이라고 판단한 경우이다.
서버에 저장된 s_nonce와 클라이언트에 저장된 s_nonce 간의 일치성 및 동기를 판단하는 방법은 다음과 같이 할 수 있다: 서버는 s_nonce를 사용해서 트리거 메시지를 발송한 후에, 서버가 특정의 기간 내에 클라이언트로부터 응답을 받지 못하거나; 또는 클라이언트가, 서버가 발송한 트리거 메시지에 디폴트 난수를 사용해서 생성한 다이제스트가 포함된 것을 발견하거나; 또는 클라이언트가, 서버에 의해 발송된 트리거 메시지에서 사용되는 난수가 없는 것을 발견한 경우이다.
s_nonce의 에러를 발견하고 서버에 대한 인증이 성공한 후에, 클라이언트는 세션 요청을 개시한다. 세션 요청에서, 클라이언트를 인증하기 위한 인증 정보는 c_nonce를 사용해서 생성되거나, 기본적인 인증 모드(즉, 사용자명과 패스워드)가 적용되고, s_nonce가 추가로 갱신된다.
본 발명의 제7 실시예와 제8 실시예의 인증 방법에 따라 s_nonce를 갱신하는 2가지 방법을 제공한다.
제8 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성한다. 도 11에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다:
단계 1101: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다.
이전의 s_nonce가 정확하지 않다고 판정한 후에, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성한 후 클라이언트에 발송한다. 이 트리거 메시지에는, 디폴트 난수를 사용해서 생성한 다이제스트, 트리거 정보, 및 기타 관련 정보가 포함된다.
단계 1102: 클라이언트는 트리거 메시지에 대한 인증에 실패하고, 디폴트 난수를 사용해서 재인증을 행한다.
트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유 때문에 인증에 실패하면, 클라이언트는 디폴트 난수를 사용해서 다이제스트를 생성하고 트리거 메시지를 재인증한다.
인증이 성공하면, 서버에 의해 이전에 사용된 s_nonce가 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다.
단계 1103: 클라이언트는 갱신 정보를 포함하는 세션 요청을 서버에 발송한다.
디폴트 난수를 사용해서 트리거 메시지에 대한 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성해서 세션 요청에 추가하고, 갱신 정보를 포함하는 세션 요청을 서버에 발송함으로써, 서버로 하여금 세션을 개시하고 s_nonce를 갱신하도록 요청한다.
이 세션 요청에는 세션 ID, 갱신된 s_nonce, 및 c_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
이상의 단계에서, 세션 ID는 난수로서 작용하거나, 트리거 메시지 ID가 디폴트 난수 대신에 난수로서 사용될 수 있어서, 고정 불변의 공공의 난수를 피하고 더 높은 안전성을 달성할 수 있다.
세션 요청에 갱신된 s_nonce를 추가하는 방법은 기본적으로 제3 실시예 및 제4 실시예와 동일하기 때문에, 중복해서 설명하지는 않는다.
단계 1104: 서버는 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 회신한다.
세션 요청을 수신한 후, 서버는 c_nonce를 사용해서 클라이언트에 대한 인증을 행하고, 세션 요청의 갱신된 s_nonce를 사용해서, 저장된 s_nonce를 갱신한다. 인증이 성공하고 갱신이 완료된 후, 서버는 갱신된 s_nonce를 사용해서 인증 요청을 생성하고, 인증 결과, 갱신 결과, 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로, 응답에는, 서버가 클라이언트를 인증한 결과, s_nonce의 갱신 결과, 및 갱신된 s_nonce를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
단계 1105: 클라이언트는 인증 결과를 포함하는 메시지를 서버에 회신한다.
클라이언트는 갱신된 s_nonce를 사용해서 서버를 인증한다. 인증이 성공한 후, 클라이언트는 인증 결과를 서버에 회신한다.
제9 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성하지만, 세션 요청에는 갱신 정보가 포함되지 않는다. 도 12에 나타낸 바와 같이, 인증 방법은 다음과 같은 단계를 포함한다:
단계 1201: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다.
이전의 s_nonce가 정확하지 않다고 판정한 후, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성해서 클라이언트에게 발송한다. 트리거 메시지에는 디폴트 난수를 사용해서 생성한 다이제스트, 트리거 정보, 및 기타 관련 정보가 포함된다.
단계 1202: 클라이언트는 트리거 메시지에 대한 인증이 실패하고, 디폴트 난수를 사용해서 재인증을 행한다.
트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유 때문에 인증에 실패한 경우, 클라이언트는 디폴트 난수를 사용해서 다이제스트를 생성하고 트리거 메시지를 재인증한다.
인증이 성공하면, 서버가 이전에 사용한 s_nonce가 정확하지 않으며, 서버에 저장된 s_nonce는 클라이언트에 저장된 것과 상이하다는 것을 나타낸다.
단계 1203: 클라이언트를 정보에 대한 인증에 성공한 후, 세션 요청을 서버에 발송한다.
인증이 성공한 후, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
세션 요청에는, 세션 ID, c_nonc를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
단계 1203에서는, 클라이언트와 서버 사이에 세션 접속이 확립된다.
단계 1204: 서버는 인증 결과 및 인증 요청을 포함하는 응답을 회신한다.
클라이언트가 발송한 인증 정보에 따라, 서버는 클라이언트를 인증한다. 인증이 성공한 후, 서버는 디폴트 난수를 사용해서 인증 정보를 생성하고, 인증 결과 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다.
더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, 세션 ID, 디폴트 난수를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
단계 1205: 클라이언트는 갱신 명령 및 인증 결과를 서버에 회신한다.
클라이언트는 디폴트 난수를 사용해서 서버를 인증한다. 인증이 성공한 후, 클라이언트는 새로운 s_nonce를 생성하고, s_nonce를 갱신하기 위한 명령을 서버에 발송한다.
단계 1206: 서버는 갱신 결과를 클라이언트에 회신한다.
갱신 메시지를 수신한 후, 서버는 저장된 s_nonce를 클라이언트의 지시에 따라 갱신하고, 갱신 결과를 클라이언트에 회신한다.
상기 단계에서, 세션 ID를 난수로서 사용하거나, 디폴트 난수 대신에 트리거 메시지 ID를 난수로서 사용함으로써, 불변의 공공의 난수를 피하고 안전성을 향상시킬 수 있다.
이 경우, 서버 패스워드를 갱신하여 시스템의 신뢰성을 향상시킬 수 있다.
다른 실시예에서, 서버는 디폴트 난수를 사용해서 트리거 메시지를 생성하지만, 세션 요청에는 디폴트 난수가 포함되지 않는다. 인증 방법은 다음과 같은 단계를 포함한다.
이전의 s_nonce가 정확하지 않다고 판정한 후, 서버는 디폴트 난수를 사용하거나 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 트리거 메시지를 생성하고, 이 메시지를 클라이언트에 발송한다. 트리거 메시지에는, 디폴트 난수, 세션 ID 또는 트리거 메시지 ID를 사용해서 생성한 다이제스트, 트리거 정보 및 기타 관련 정보가 포함된다.
트리거 메시지를 수신한 후, 클라이언트는 저장된 s_nonce를 사용해서 다이제스트를 생성하고 트리거 메시지를 인증한다. 소정의 이유에 의해 인증이 실패하면, 클라이언트는 디폴트 난수를 사용하거나, 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 다이제스트를 생성하고, 트리거 메시지에 대한 재인증을 행한다. 인증이 성공하면, 클라이언트는 세션 요청을 서버에 발송해서 세션을 개시하도록 한다. 세션 요청에는, 세션 ID, 및 c_nonce를 사용해서 생성한 다이제스트를 포함하는 인증 정보가 포함된다.
서버는 c_nonce를 사용해서 세션 요청을 인증한다. 인증이 실패하면, 서버는 질의 메시지를 발송해서 c_nonce를 갱신하고 재인증을 요청한다. 인증이 성공하면, 서버는 s_nonce를 사용해서 생성한 인증 요청을 발송하고, 클라이언트는 s_nonce를 사용해서 인증을 행한다. 인증이 실패하면, 클라이언트는 질의 메시지를 발송해서 s_nonce를 갱신하고 재인증을 요청할 수 있다. 인증이 성공한 후, 클라이언트를 결과를 회신한다.
또한, 이러한 단계에서, 클라이언트는 갱신된 s_nonce를 세션 요청에 추가하고, 이러한 요청을 서버에 발송할 수 있다. 서버가 발송한 인증 요청은 새로운 s_nonce를 사용한다.
앞서 설명한 바와 같이, s_nonce에 에러가 있으면, s_nonce에 대해서만 갱신을 행하고, c_nonce는 갱신하지 않는다. 시스템이 s_nonce의 에러를 취급하는 경우, 시스템이 디폴트 난수를 사용하거나, 세션 ID 또는 트리거 메시지 ID를 난수로서 사용해서 인증을 행하는 경우에도, c_nonce에 대해서는 갱신을 할 필요가 없기 때문에, 디폴트 난수를 사용하는 횟수 또는 세션 ID 또는 트리거 메시지 ID를 난수로서 사용하는 횟수를 감소시켜, 시스템의 안전성을 향상시킬 수 있다.
종래, 세션에 사용된 s_nonce 및 c_nonce는 각각 클라이언트와 서버에 의해 생성 및 갱신되기 때문에, 클라이언트와 서버의 관리 부하가 더 과중하게 된다.
본 발명의 제10 실시예에서는, 종래의 s_nonce 및 c_nonce를 교체하기 위해 세션에 하나의 난수가 사용되고, 클라이언트와 서버 사이에서 인증을 수행한다. 전송 계층(transmission layer) 보안 메커니즘 또는 애플리케이션 계층 보안 메커니즘에 의해 해당 세션이 안전하게 되기 때문에, 해당 난수를 클라이언트와 서버 간의 인증을 구현하는 데에 사용할 수 있다.
서버 또는 클라이언트가 난수를 생성할 수 있다. 서버가 난수를 생성한다고 가정하고, 본 발명의 제10 실시예의 인증 방법에 대하여 설명한다.
제10 실시예에 따라, 난수를 갱신하는 두 가지 방법을 제공한다.
방법 1: 서버는 난수를 갱신한다.
먼저, 서버는 난수 갱신 명령(NextNonce)을 하달한다. 난수 갱신 명령은 새로운 난수를 포함한다.
난수 갱신 명령을 수신한 후, 클라이언트는 난수 갱신 명령에 포함된 새로운 난수를 사용해서, 저장된 난수를 갱신한다.
갱신 명령은 인증 메시지에 포함될 수 있다. 즉, 이 메시지는 갱신 명령 및 서버 인증 정보를 포함한다. 갱신 명령은 다른 관리 메시지에 포함될 수도 있다. 즉, 이 메시지는 서버 인증 정보를 포함하지 않는다. 갱신 명령이 인증 메시지에 포함된 경우, 클라이언트는, 해당 메시지를 수신한 후, 난수 갱신 명령에 따라 난수를 갱신하고, 갱신한 난수를 사용해서 다이제스트를 생성하고 정보를 인증한다. 인증이 성공한다. 이 경우, 악의의 서버가 메시지를 가로챘다면, 악의의 서버는 클라이언트에 대하여 언제라도 리플레이 공격을 시작할 수 있다. 이러한 공격을 방지하기 위하여, 난수 갱신 명령이 인증 메시지에 포함되어 있다면, 클라이언트는 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 정보를 인증한다. 클라이언트는, 메시지를 수신한 후, 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 인증을 행한다. 인증이 성공한 후, 클라이언트는 난수 갱신 명령에 따라, 저장된 난수를 갱신한다. 다른 관리 메시지가 난수 갱신 명령을 포함하고 있다면, 새로운 난수를 포함하는 메시지와 인증 정보를 포함하는 다른 메시지는 개별적으로 상대편으로 발송되기 때문에, 리플레이 공격의 위험이 없다.
도 13에 나타낸 바와 같이, 이 응답이 난수 갱신 명령에 포함된다고 가정하면, 다음과 같은 처리 과정이 행해진다.
단계 1301: 서버는 트리거 메시지를 클라이언트에 발송해서 세션을 트리거한다.
트리거 메시지에는, 공유 난수(shared nonce)를 사용해서 생성된 다이제스트 및 트리거 정보가 포함된다.
공유 난수는 서버에 의해 생성되며 서버 및 클라이언트에 모두 사용될 수 있다.
실제로, 본 단계에서의 공유 난수는 트리거 메시지 난수 또는 디폴트 난수가 될 수 있다. 서버는 난수를 사용하지 않는 경우도 있지만, 서버 ID 및 패스워드를 사용해서 세션을 트리거하기 위한 트리거 메시지를 생성하기 때문에, 클라이언트는 서버 ID 및 패스워드를 사용해서 다이제스트를 생성함으로써 트리거 메시지를 인증할 수 있다.
단계 1302: 클라이언트는 세션 요청을 서버에 발송한다.
클라이언트는, 트리거 메시지를 수신한 후, 저장된 s_nonce를 사용해서 다이제스트르 생성하고 트리거 메시지를 인증한다. 인증이 성공하면, 클라이언트를 세션 요청을 서버에 발송해서 세션을 개시하도록 한다.
세션 요청에는, 세션 ID, 공유 난수를 사용해서 생성된 다이제스트를 포함하는 인증 정보가 포함된다.
본 단계에서, 클라이언트와 서버 사이에 세션 접속이 확립된다.
단계 1303: 서버는 인증 결과 및 인증 요청을 포함하는 응답을 회신하는데, 이 응답에는 난수 갱신 명령이 포함된다.
서버는, 클라이언트가 발송한 인증 정보에 따라, 클라이언트에 대한 인증을 행한다. 인증이 성공하면, 서버는 공유 난수를 갱신하여야 한다고 판단하면, 새로운 공유 난수를 생성하고, 인증 결과 및 인증 요청을 포함하는 응답을 클라이언트에 회신한다. 이 응답에는 난수 갱신 명령이 포함된다.
더 구체적으로 말하면, 이 응답에는 서버가 클라이언트를 인증한 결과, 세션 ID, 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 포함하는 인증 정보, 및 새로운 난수를 포함하는 난수 갱신 명령이 포함된다.
단계 1304: 클라이언트는, 응답을 수신한 후, 갱신되지 않은 난수를 사용해서 메시지를 인증한다.
단계 1305: 인증이 성공하고, 클라이언트는 난수 갱신 명령에 포함된 새로운 난수를 사용해서, 난수 갱신 명령에 지시된 대로, 저장된 공유 난수를 갱신한다.
단계 1306: 클라이언트는 인증 결과 및 갱신 결과를 포함하는 메시지를 서버에 회신한다.
더 구체적으로 말하면, 이 메시지에는, 클라이언트가 서버를 인증한 결과, 공유 난수를 갱신한 결과 및 기타 관련 정보가 포함된다.
서버 및 클라이언트는 공유 난수의 유효성 주기(validity period)를 상이하게 규정할 수 있다. 공유 난수가 유효하다고 서버가 판정하면, 공유 난수의 유효성 주기가 클라이언트에 대해 만료될 수 있다. 따라서, 클라이언트에 대한 공유 난수의 유효성을 유지하기 위해, 본 발명의 제10 실시예는, 클라이언트가 서버에 대하여 공유 난수의 갱신을 요청하는 해결 방안을 제공한다.
클라이언트는 장치 관리(DM) 명령 중에서 경고(Alert) 명령을 사용해서 서버에 대해 공유 난수를 갱신하도록 요청한다. 서버가 명령을 이해할 수 있도록 하기 위해, 해당 명령에 경고 타입이 추가된다. 경고 타입은 서버에게 난수를 갱신하라는 요청의 표시이다.
클라이언트는, 난수를 갱신하여야 한다고 판단되면, 공유 난수를 갱신하는 요청을 경고 명령을 통해 서버에 발송한다. 이 요청은 인증 메시지 또는 다른 관리 메시지에 포함될 수 있다. 서버는, 이러한 요청을 수신하면, 구체적인 상황에 따라, 난수를 갱신할지 여부를 결정한다.
경고(Alert)의 타입은 org.openmobilealliance.NextNonce로서 정의될 수 있다.
아래의 예는 경고 타입 메시지를 나타낸다.
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data><!-- Generic Alert -->
<Item>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.NextNonce
</Type>
</Meta>
<Data/>
</Item>
</Alert>
클라이언트가 난수를 갱신하는 방법은 서버가 난수를 갱신하는 방법과 유사하기 때문에, 중복해서 설명하지는 않는다.
방법 2: 서버와 클라이언트는 난수를 공동으로 갱신한다.
서버와 클라이언트는 모두 공유 난수를 갱신할 필요가 있다고 판정되면, 갱신을 위한 새로운 난수를 생성할 수 있다.
난수는 NextNonce(난수 갱신) 명령을 통해 갱신될 수 있다. 갱신의 예를 아래에 나타낸다.
<Chal>
<Meta>
<NextNonce xmlns='syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce>
</Meta>
</Chal>
NextNonce 명령은 세션 처리 과정 중의 메시지 내에 포함될 수 있다. 예를 들어, 클라이언트는 NextNonce 명령을 세션 요청에 추가해서 서버에 발송함으로써, 서버로 하여금 공유 난수를 갱신하라고 요청하거나, NextNonce 명령을 다른 메시지에 추가할 수 있다.
서버 또는 클라이언트 중의 어느 것이라도 공유 난수를 갱신하면, 갱신 명령이 인증 메시지 내에 포함되어 있는 경우, 상대편이 메시지를 수신한 후에, 상대편은 먼저 난수를 갱신하고 나서, 갱신한 난수를 사용해서 다이제스트를 생성하고 정보를 인증한다. 인증이 성공한다. 이 경우, 악의의 서버가 메시지를 가로챘다면, 악의의 서버는 클 라이언트에 대하여 언제라도 리플레이 공격을 시작할 수 있다. 이러한 공격을 방지하기 위하여, NextNonce 명령이 인증 메시지에 포함되어 있다면, 상대편은 갱신되지 않은 난수를 사용해서 생성된 다이제스트를 사용하여 정보를 인증한다. 상대편은, 인증이 성공한 후, NextNonce 명령에 따라, 저장된 난수를 갱신한다. 다른 관리 메시지가 난수 갱신 명령을 포함하고 있다면, 새로운 난수를 포함하는 메시지 및 인증 정보를 포함하는 다른 메시지가 상대편으로 별도로 발송되기 때문에, 리플레이 공격의 위험이 없다.
본 발명의 제10 실시예에서, 서버와 클라이언트는 공유 난수를 사용해서 인증을 행한다. 이 경우, 공유 난수에 에러가 있다면, 이 에러는 앞서 설명한 방법들을 사용해서 처리할 수 있다. 본 발명의 제5 실시예에서의 단계 803에서, 메시지는 새로운 난수, 및 새로운 난수를 사용해서 생성된 다이제스트를 포함한다. 이 경우, 악의의 서버가 메시지를 가로챈다면, 악의의 서버는 메시지를 서버 또는 클라이언트에게 반복해서 발송함으로써 리플레이 공격을 시작할 수 있다. 서버 또는 클라이언트는 메시지를 식별할 수 없기 때문에, 해당 메시지를 유효한 것이라고 판단하고, 대응하는 동작을 수행한다. 이러한 공격을 방지하기 위해, 갱신되지 않은 난수를 사용해서 다이제스트를 생성할 수 있다. 이렇게 함으로써, 서버는, 메시지를 수신한 후에, 갱신되지 않은 난수를 사용해서 다이제스트를 계산하고 메시지 발송자, 즉 클라이언트를 인증할 수 있으며, 이후 NextNonce 명령에 따라, 저장된 난수를 갱신한다.
본 발명의 제10 실시예는 시스템의 부하를 효과적으로 경감시킨다.
도 14에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 인증 시스템은, 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하며, 생성한 트리거 메시지를 발송하도록 된 서버(1410); 및
트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 수신하고, 트리거 메시지 난수를 사용하여, 생성한 트리거 메시지를 인증, 즉 트리거 메시지의 유효성을 검증하도록 된 클라이언트(1420)를 포함한다.
서버(1410)는,
트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 된 제1 생성 유닛(1412);
트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 발송하는 발송 유닛(1411);
서버 난수를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송하도록 된 제2 생성 유닛(1417);
서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공한 것으로 판정된 후에, 제1 생성 유닛(1412)으로 하여금 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 제어하는 판단 유닛(1413);
제1 생성 유닛(1412)이 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 경우의 서버의 시스템 시간을 판정하고, 트리거 메시지 난수를 사용해서 생성한 트리거 메시지에 시스템 시간을 추가하도록 된 시간 유닛(1414);
트리거 메시지 난수를 사용해서 제1 생성 유닛(1412)이 생성한 트리거 메시지에 대해 넘버링을 행하고 번호를 트리거 메시지 난수로서 사용하도록 된 넘버링 유닛(1415);
넘버링 유닛(1415)에 의해 생성된 트리거 메시지 난수를 필요에 따라 리셋하도록 된 난수 리셋 유닛(1416); 및
트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용함으로써, 클라이언트가 트리거 메시지를 수신한 후에 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하고, 인증이 성공한 후에 세션 ID에 대응하는 세션의 설정을 요청하는 세션 요청을 발송하도록 된 세션 ID-난수(sesssion ID-to-nonce) 유닛(1418)을 포함한다.
넘버링 유닛(1415)은,
트리거 메시지를 사용해서 생성한 트리거 메시지를 오름차순으로 번호를 매기는 오름차순 넘버링 유닛(14151); 및
트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 내림차순으로 번호를 매기는 내림차순 넘버링 유닛(13152)을 더 포함한다.
클라이언트(1420)는,
트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 수신하도록 된 수신 유닛(1421);
트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 인증하기 위해, 즉 트리거 메시지 난수를 사용해서 생성한 트리거 메시지의 유효성을 검증하기 위해, 트리거 메시지 난수를 사용하도록 된 제1 인증 유닛(1422);
트리거 메시지를 수신한 후, 트리거 메시지를 인증하기 위해 서버 난수를 사용하며, 인증이 실패하면, 트리거 메시지 난수를 사용해서 트리거 메시지에 대한 재인증을 행하도록 된 제2 인증 유닛(1425);
수신 유닛(1421)이 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신하면, 클라이언트의 로컬 시간(local time)을 판정하고, 로컬 시간과 시스템 시간 간의 차이 값의 절대값을 미리 정해진 임계값과 비교해서, 절대값이 미리 정해진 임계값보다 작으면, 트리거 메시지 난수는 유효하다고 판정하며, 제1 인증 유닛(1422)으로 하여금 트리거 메시지 난수를 사용해서, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하도록 제어하는 제1 유효성 판단 유닛(1423)
수신 유닛(1421)이 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신한 후에, 저장된 트리거 메시지 난수에 따라, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정되면, 트리거 메시지에 포함된 트리거 메시지 난수를 저장하며, 제1 인증 유닛(1422)으로 하여금 트리거 메시지 난수를 사용해서, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하도록 제어하는 제2 유효성 판단 유닛(1424); 및
트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용하고, 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하며, 인증이 성공한 후에 세션 ID에 대응하는 세션의 설정을 요청하는 세션 요청을 발송하도록 된 세션 ID-난수 유닛(1428)을 포함한다.
제2 유효성 판단 유닛(1424)은,
클라이언트에 저장된 트리거 메시지 난수를 트리거 메시지에 포함된 트리거 메시지 난수와 비교해서, 트리거 메시지에 포함된 트리거 메시지 난수가 클라이언트에 저장된 최대의 트리거 메시지 난수보다 큰 경우, 또는 클라이언트가 수신해서 저장했던 트리거 메시지 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하지 않는 경우, 또는 클라이언트가 수신하지 않았던 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하는 경우에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하도록 된 제1 넘버링 판단 유닛(14241); 및
클라이언트에 저장된 트리거 메시지 난수를 트리거 메시지에 포함된 트리거 메시지 난수와 비교해서, 트리거 메시지에 포함된 트리거 메시지 난수가 클라이언트에 저장된 최소의 트리거 메시지 난수보다 작은 경우, 또는 클라이언트가 수신해서 저장했던 트리거 메시지 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하지 않는 경우, 또는 클라이언트가 수신하지 않았던 난수 값이 트리거 메시지에 포함된 트리거 메시지 난수를 포함하는 경우에, 트리거 메시지에 포함된 트리거 메시지 난수가 유효하다고 판정하도록 된 제2 넘버링 판단 유닛(14242)을 포함한다.
제1 실시예에 따른 인증 시스템의 동작 방식은 본 발명의 제1 및 제2 실시예에 따른 인증 방법의 동작 방식과 유사하기 때문에, 중복해서 설명하지는 않는다.
본 발명의 제1 실시예에 따른 인증 시스템에 의하면, 인증이 실패한 경우, 인증을 수행하기 위해 디폴트 난수를 필요로 하지 않기 때문에, 시스템의 안전성을 향상시킬 수 있다.
본 발명의 제1 실시예에 따른 서버는 기본적으로 본 발명의 제1 실시예에 따른 인증 시스템 내의 서버와 동일하기 때문에, 중복해서 설명하지 않는다.
도 15에 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 클라이언트는,
서버가 발송한 트리거 메시지를 수신하도록 된 수신 유닛(1501);
트리거 메시지를 수신한 후에, 서버 난수를 갱신할 필요가 있다고 판정되면, 새로운 서버 난수를 생성하고, 새로운 서버 난수를 세션 요청에 추가하며, 세션 요청을 서버에 발송함으로써, 서버가, 새로운 서버 난수를 포함하는 세션 요청을 수신한 후에, 새로운 서버 난수를 사용해서, 저장된 서버 난수를 갱신할 수 있도록 하는 제1 생성 유닛(1512); 및
세션을 개시하지 않는 것으로 결정하고, 트리거 메시지를 수신한 후에, 서버 난수를 갱신할 필요가 있다고 판정한 경우, 새로운 서버 난수를 생성하고, 새로운 서버 난수를 상태 응답에 추가하며, 상태 응답을 서버에 발송함으로써, 서버가, 새로운 서버 난수를 포함하는 상태 응답을 수신한 후에, 저장된 서버 난수를 갱신할 수 있도록 하는 제2 생성 유닛(1503)을 포함한다.
본 발명의 제1 실시예에 따른 클라이언트의 동작 방식은 본 발명의 제4~제6 실시예에 따른 인증 방법 중의 클라이언트의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다.
본 발명의 제1 실시예에 따른 클라이언트에 의하면, s_nonce를 갱신할 필요가 있을 때에, 세션 요청에 갱신 명령이 직접 포함되도록 함으로써, 신호 상호작용의 횟수를 감소시키고, 시스템의 부하를 경감시키며, 디폴트 난수를 사용해서 인증을 수행하는 횟수를 감소시키고, 시스템의 안전성을 향상시킬 수 있다.
도 16에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 클라이언트(1600)는,
서버가 발송한 트리거 메시지를 수신하도록 된 수신 유닛(1601);
트리거 메시지를 수신한 후에 서버 난수를 사용해서 트리거 메시지를 인증하며, 인증이 실패하면, 디폴트 난수를 사용해서 트리거 메시지를 인증하고, 인증이 성공하면, 클라이언트 난수를 사용해서 세션 요청을 생성하고, 세션 요청을 서버에 발송해서, 서버가 클라이언트 난수를 사용해서 클라이언트를 인증할 수 있도록 하는 생성 유닛(1602); 및
서버 난수를 새로운 서버 난수로 갱신한 후에, 서버의 패스워드 및 클라이언트의 패스워드를 변경하도록 된 패스워드 변경 유닛(1603)을 포함한다.
본 발명의 제2 실시예에 따른 클라이언트의 동작 방식은 본 발명의 제7 및 제8 실시예에 따른 인증 방법 중의 클라이언트의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다.
본 발명의 제2 실시예에 따른 클라이언트에 의하면, s_nonce를 갱신할 필요가 있을 때, s_nonce만을 갱신하고, c_nonce는 갱신하지 않는다. 시스템이 s_nonce의 에러를 처리할 때에 인증을 위해 디폴트 난수를 사용하는 경우에도, c_nonce는 갱신할 필요가 없기 때문에, 클라이언트는 c_nonce를 사용해서 세션 요청을 생성함으로써, 디폴트 난수의 사용 횟수를 감소시키고, 시스템의 안전성을 향상시킬 수 있다.
도 17에 나타낸 바와 같이, 본 발명의 제2 실시예에 따른 인증 시스템은 서버(1710)와 클라이언트(1720)를 포함한다.
서버(1710)는,
서버 및 클라이언트에 의해 공유되는 난수를 사용해서 트리거 메시지를 생성하며, 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 트리거 메시지를 수신한 후에, 공유 난수를 사용해서 트리거 메시지를 인증할 수 있도록 하는 트리거 유닛(1711);
공유 난수를 사용해서 생성한 세션 요청을 클라이언트로부터 수신하도록 된 수신 유닛(1712);
공유 난수를 사용해서 세션 요청을 인증하도록 된 인증 유닛(1713);
세션 요청에 대한 인증이 성공한 후에, 공유 난수를 사용해서 응답을 생성하고, 이 응답을 클라이언트에 발송함으로써, 클라이언트가 응답을 수신한 후에, 공유 난수를 사용해서 응답을 인증하도록 하는 생성 유닛(1714);
공유 난수를 생성하고, 공유 난수를 갱신할 필요가 있으면, 새로운 공유 난수를 생성하며, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 클라이언트에 발송함으로써, 클라이언트가 난수 갱신 메시지를 수신한 후에 새로운 공유 난수를 사용해서 공유 난수를 갱신할 수 있도록 하는 갱신 유닛(1715); 및
공유 난수를 갱신할 필요가 있다고 판정되면, 난수 갱신 요청을 클라이언트에 발송함으로써, 클라이언트가 난수 갱신 요청을 수신하고 난수를 갱신하기로 결정한 후에, 새로운 공유 난수를 생성하고, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 발송할 수 있도록 하는 요청 유닛(1716)을 포함한다.
클라이언트(1720)는,
서버가 발송하고, 서버 및 클라이언트에 의해 공유되는 난수를 사용하여 생성된 트리거 메시지를 수신하도록 된 수신 유닛(1721);
트리거 메시지를 수신한 후에, 공유 난수를 사용해서 트리거 메시지를 인증하도록 된 제1 인증 유닛(1722);
인증이 성공한 후에, 공유 난수를 사용해서 세션 요청을 생성하고, 세션 요청을 서버에 발송함으로써, 서버가 세션 요청을 수신한 후에, 공유 난수를 사용해서 세션 요청을 인증, 즉 세션 요청의 유효성을 검증하도록 하는 생성 유닛(1723);
공유 난수를 사용해서 서버가 생성한 응답을 수신한 후에, 공유 난수를 사용해서 응답을 인증하도록 된 제2 인증 유닛(1724);
공유 난수를 생성하고, 공유 난수를 갱신할 필요가 있으면, 새로운 공유 난수를 생성하고, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 서버에 발송함으로써, 서버가 난수 갱신 메시지를 수신한 후에, 새로운 공유 난수를 사용해서 공유 ㄴ나수를 갱신하도록 하는 갱신 유닛(1725); 및
공유 난수를 갱신할 필요가 있다고 판정된 경우, 난수 갱신 요청을 서버에 발송함으로써, 서버가 난수 갱신 요청을 수신하고 난수를 갱신하기로 결정한 후에, 새로운 공유 난수를 생성하며, 새로운 공유 난수를 포함하는 난수 갱신 메시지를 발송하도록 하는 요청 유닛(1726)을 포함한다.
본 발명의 제2 실시예에 따른 인증 시스템의 동작 방식은 본 발명의 제9 실시예에 따른 인증 방법의 동작 방식과 유사하기 때문에, 중복해서 설명하지 않는다.
본 발명의 제2 실시예에 따른 인증 시스템에 의하면, 서버와 클라이언트는 종래의 s_nonce 및 c_nonce 대신에, 세션 처리 과정 중의 난수를 공유해서, 클라이언트와 서버 간의 인증을 수행함으로써, 시스템의 부하를 효과적으로 경감시킬 수 있다.
본 발명의 제2 실시예에 따른 서버와 본 발명의 제3 실시예에 따른 클라이언트는, 기본적으로 본 발명의 제2 실시예에 따른 인증 시스템의 서버 및 클라이언트와 동일하기 때문에, 중복해서 설명하지 않는다.
당업자라면, 앞서 설명한 실시예들의 단계들 중의 일부 또는 모두는 컴퓨터 프로그램에 의해 지시되는 하드웨어로 구현될 수 있다는 것을 이해할 수 있을 것이다. 이러한 프로그램은 컴퓨터로 판독가능한 기억 매체에 기억될 수 있다. 기억 매체로는, 판독전용 메모리(ROM), 자기 디스크, 또는 콤팩트 디스크(CD)가 될 수 있다.
이상의 설명은 DS 프로토콜 또는 DM 프로토콜에 기초한 인증 방법, 시스템, 서버 및 클라이언트이다. 본 발명에 대하여 몇 개의 실시예를 들어 설명하였지만, 본 발명은 이러한 실시예에 한정되지 않는다. 당업자라면, 본 발명의 범위를 벗어남이 없이 다양한 변경 및 변경이 가능하다는 것을 알 수 있을 것이다. 본 발명의 특허청구의 범위 또는 그 등가의 범위로 규정된 보호 범위에 속하는 변형 및 변경을 포함한다.

Claims (36)

  1. 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜에 기초한 인증 방법으로서,
    서버가 트리거 메시지 난수(trigger message nonce)를 사용해서 트리거 메시지(Trigger message)를 생성하는 단계;
    상기 서버가 트리거 메시지를 클라이언트에 발송하는 단계;
    상기 클라이언트가 트리거 메시지 난수를 추출(extract)하는 단계;
    상기 클라이언트가, 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 다이제스트(digest)를 생성하고, 트리거 메시지 난수를 사용해서 생성한 트리거 메시지를 인증(authenticate)하는 단계; 및
    상기 클라이언트가, 인증이 성공한 후에, 세션(session) ID를 포함하는 세션 요청(session request)을, 트리거 메시지에 의해 지시된 서버에 발송하는 단계
    를 포함하는 것을 특징으로 하는 인증 방법.
  2. 제1항에 있어서,
    상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계를 수행하기 전에,
    상기 서버가 서버 난수(server nonce)를 사용해서 트리거 메시지를 생성하는 단계;
    상기 서버가 서버 난수를 사용해서 생성한 트리거 메시지를 상기 클라이언트에 발송하는 단계; 및
    상기 서버가, 서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공적이라고 판정된 후에, 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계를 포함하는 인증 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
    상기 서버가 상기 서버의 시스템 시간(system time)을 트리거 메시지 난수로서 사용하고, 상기 서버의 시스템 시간을 트리거 메시지 난수를 사용해서 생성된 트리거 메시지 내에 포함시키는 단계;
    상기 클라이언트가, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 수신한 후에, 상기 클라이언트의 로컬 시간(local time)을 트리거 메시지 난수와 비교함으로써, 트리거 메시지 난수가 유효한지 여부를 판정하는 단계;
    상기 클라이언트가, 트리거 메시지 난수가 유효하다고 판정한 후에, 트리거 메시지 난수를 사용해서 다이제스트(digest)를 생성하고, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를, 상기 다이제스트를 사용해서 인증하는 단계를 포함하는, 인증 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
    상기 서버가 트리거 메시지에 의해 트리거된 세션의 세션 ID를 트리거 메시지 난수로서 사용하는 단계;
    상기 클라이언트가, 트리거 메시지를 수신하면, 트리거 메시지 난수를 사용해서 트리거 메시지를 인증하는 단계; 및
    상기 클라이언트가, 인증이 성공한 후에, 세션 ID에 대응하는 세션의 설정(setup)을 요청하는 세션 요청(session request)을 발송하는 단계를 포함하는, 인증 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 서버가 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하는 단계는,
    상기 서버가 트리거 메시지 난수를 트리거 메시지의 메시지 헤더(message header) 또는 메시지 본문(message body)에 포함시키고, 트리거 메시지 난수, 트리거 메시지의 메시지 헤더 및 메시지 본문을 사용해서 다이제스트를 생성하고, 생성한 다이제스트를 사용해서 트리거 메시지를 생성하는 단계; 또는
    상기 서버가 트리거 메시지 난수를 트리거 메시지의 메시지 헤더 또는 메시지 본문에 포함시키며, 트리거 메시지의 메시지 헤더 및 메시지 본문을 사용해서 다이제스트를 생성하고, 생성한 다이제스트를 사용해서 트리거 메시지를 생성하는 단계를 포함하는, 인증 방법.
  6. 트리거 메시지 난수(Trigger message nonce)를 사용해서 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 생성하도록 된 제1 생성 유닛; 및
    상기 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 클라이언트에게 발송함으로써, 클라이언트로 하여금 트리거 메시지를 추출하도록 하고, 트리거 메시지 난수가 유효하다고 판정한 후에, 상기 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 상기 트리거 메시지에 대한 인증이 성공한 후에, 상기 트리거 메시지에 의해 지시되는 서버에게 세션 요청을 발송하도록 된 발송 유닛
    을 포함하는 것을 특징으로 하는 서버.
  7. 제6항에 있어서,
    서버 난수(server nonce)를 사용해서 트리거 메시지를 생성하고, 생성한 트리거 메시지를 클라이언트에 발송함으로써, 클라이언트가 서버 난수를 사용해서 생성된 트리거 메시지를 인증할 수 있도록 하는 제2 생성 유닛; 및
    서버 난수를 사용해서 생성한 트리거 메시지에 대한 인증이 성공한 것으로 판정된 후에, 상기 제1 생성 유닛으로 하여금 트리거 메시지 난수를 사용해서 트리거 메시지를 생성하도록 제어하는 판단 유닛을 더 포함하는 서버.
  8. 트리거 메시지 난수를 사용해서 서버에 의해 생성되며, 데이터 동기(DS: Data Synchronization) 프로토콜 또는 장치 관리(DM: Device Management) 프로토콜과 호환되는 트리거 메시지를 수신하도록 된 수신 유닛; 및
    상기 트리거 메시지 난수를 추출하고, 트리거 메시지 난수를 사용해서 다이제스트를 생성해서, 상기 트리거 메시지 난수가 유효하다고 판정된 후에, 트리거 메시지 난수를 사용해서 생성된 트리거 메시지를 인증하며, 인증이 성공한 후에, 상기 트리거 메시지에 의해 지시되는 서버에 세션 요청을 발송하도록 된 제1 인증 유닛
    을 포함하는 것을 특징으로 하는 클라이언트.
  9. 제8항에 있어서,
    상기 트리거 메시지를 수신한 후, 트리거 메시지를 인증하기 위해 서버 난수를 사용하며, 인증이 실패하면, 트리거 메시지 난수를 사용해서 트리거 메시지에 대한 재인증을 행하도록 된 제2 인증 유닛을 더 포함하는 클라이언트.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020107011964A 2007-11-08 2008-04-09 인증 방법, 시스템, 서버 및 클라이언트 KR101134059B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN200710170309 2007-11-08
CN200710170309.5 2007-11-08
CN200710195462.3 2007-11-27
CN2007101954623A CN101431413B (zh) 2007-11-08 2007-11-27 进行认证的方法、系统、服务器及终端
PCT/CN2008/070686 WO2009059496A1 (fr) 2007-11-08 2008-04-09 Procédé, système, serveur et terminal pour mettre en œuvre une authentification

Publications (2)

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

Family

ID=40646594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107011964A KR101134059B1 (ko) 2007-11-08 2008-04-09 인증 방법, 시스템, 서버 및 클라이언트

Country Status (8)

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

Families Citing this family (61)

* 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 (ko) * 2009-09-01 2016-11-15 엘지전자 주식회사 네트워크상에서의 디바이스 인증 시스템 및 인증 방법
US9356951B2 (en) 2010-07-09 2016-05-31 Hewlett Packard Enterprise Development Lp Responses to server challenges included in a hypertext transfer protocol header
EP2676464B1 (en) * 2011-02-14 2020-03-25 Nokia Technologies Oy Seamless wi-fi subscription remediation
US9171162B2 (en) 2011-03-29 2015-10-27 Microsoft Technology Licensing, Llc Random file request for software attestation
CN102231678A (zh) * 2011-06-27 2011-11-02 华为终端有限公司 设备管理的方法、装置和系统
US11444936B2 (en) 2011-07-29 2022-09-13 Amazon Technologies, Inc. Managing security credentials
US9767262B1 (en) 2011-07-29 2017-09-19 Amazon Technologies, Inc. Managing security credentials
US10362019B2 (en) 2011-07-29 2019-07-23 Amazon Technologies, Inc. Managing security credentials
JP2014531165A (ja) 2011-10-28 2014-11-20 日本電気株式会社 Mtcデバイストリガリングのためのセキュアな方法
US8984276B2 (en) 2012-01-10 2015-03-17 Jpmorgan Chase Bank, N.A. System and method for device registration and authentication
US8955065B2 (en) * 2012-02-01 2015-02-10 Amazon Technologies, Inc. Recovery of managed security credentials
US8863250B2 (en) 2012-02-01 2014-10-14 Amazon Technologies, Inc. Logout from multiple network sites
CN103312664B (zh) 2012-03-08 2017-06-09 阿里巴巴集团控股有限公司 表单验证方法、装置和系统
CN113470641B (zh) 2013-02-07 2023-12-15 苹果公司 数字助理的语音触发器
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 (zh) * 2014-03-27 2019-02-22 东华软件股份公司 用于终端连接控制的服务器及方法、终端及方法、和系统
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
KR101655439B1 (ko) * 2015-03-26 2016-09-20 세종대학교산학협력단 컴퓨팅 장치의 인증 방법 및 이를 수행하기 위한 장치
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) * 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US11057772B2 (en) * 2015-10-16 2021-07-06 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 (zh) * 2016-07-01 2016-11-09 浪潮(北京)电子信息产业有限公司 一种snmp协议安全的增强方法及装置
CN106411953A (zh) * 2016-11-30 2017-02-15 深圳前海弘稼科技有限公司 一种种植箱登录方法及装置
CN108337210B (zh) * 2017-01-19 2021-05-18 钉钉控股(开曼)有限公司 设备配置方法及装置、系统
US20210203650A1 (en) * 2017-03-07 2021-07-01 Hewlett-Packard Development Company, L.P. Data message authentication based on a random number
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
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
FR3071373B1 (fr) * 2017-09-21 2021-01-22 Onoff Telecom Procede de verification de la validite d’une ligne telephonique d’un utilisateur
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
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
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
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
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 (ja) * 2020-03-12 2023-05-23 トヨタ自動車株式会社 車載用制御装置
KR102519202B1 (ko) * 2020-03-30 2023-04-05 한양대학교 산학협력단 보안 시스템
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. METHOD, APPARATUS AND DEVICE FOR SECURE COMMUNICATION IN A VEHICLE NETWORK
CN112260997B (zh) * 2020-09-23 2023-05-26 曙光信息产业(北京)有限公司 数据访问方法、装置、计算机设备和存储介质
CN112367329B (zh) * 2020-11-17 2023-05-02 北京知道创宇信息技术股份有限公司 通信连接认证方法、装置、计算机设备及存储介质

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
CN1285202C (zh) * 2000-09-22 2006-11-15 通用器材公司 网际协议电话安全体系结构
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 (ja) * 2002-05-20 2008-11-26 ソニー株式会社 サービス提供システム、機器端末およびその処理方法、認証装置および方法、サービス提供装置および方法、並びにプログラム
US7574599B1 (en) * 2002-10-11 2009-08-11 Verizon Laboratories Inc. Robust authentication and key agreement protocol for next-generation wireless networks
CA2508141C (en) * 2002-12-02 2009-11-03 Silverbrook Research Pty Ltd Dead nozzle compensation
JP4392510B2 (ja) * 2003-06-09 2010-01-06 財団法人生産技術研究奨励会 認証装置及び認証方法
KR100548354B1 (ko) * 2003-06-14 2006-02-02 엘지전자 주식회사 동기화 프로토콜에서의 사용자 인증 방법
CA2541824A1 (en) 2003-10-08 2005-04-14 Stephan J. Engberg Method and system for establishing a communication using privacy enhancing techniques
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 (ko) * 2006-09-19 2012-12-06 엘지전자 주식회사 디바이스 관리시스템 및 그 제어방법

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
EP2579503A2 (en) 2013-04-10
EP2579502A2 (en) 2013-04-10
US8392717B2 (en) 2013-03-05
EP2209253A1 (en) 2010-07-21
EP2579502A3 (en) 2013-10-16
CN101431413B (zh) 2012-04-25
EP2579503B1 (en) 2015-09-02
EP2209253B1 (en) 2013-06-19
US20120030472A1 (en) 2012-02-02
JP2011504261A (ja) 2011-02-03
ES2426946T3 (es) 2013-10-25
EP2579502B1 (en) 2015-09-02
EP2579503A3 (en) 2013-10-09
KR20100071115A (ko) 2010-06-28
RU2010123182A (ru) 2011-12-20
JP5209731B2 (ja) 2013-06-12
CN102333100A (zh) 2012-01-25
EP2209253A4 (en) 2011-11-30
WO2009059496A1 (fr) 2009-05-14
CN101431413A (zh) 2009-05-13
US20100217997A1 (en) 2010-08-26
US8245048B2 (en) 2012-08-14
RU2446593C2 (ru) 2012-03-27
CN102333100B (zh) 2013-11-06

Similar Documents

Publication Publication Date Title
KR101134059B1 (ko) 인증 방법, 시스템, 서버 및 클라이언트
US8438616B2 (en) Method for terminal configuration and management and terminal device
KR101209071B1 (ko) 디바이스 관리시스템 및 그 제어방법
Durham et al. The COPS (common open policy service) protocol
JP6086987B2 (ja) ホットスポットネットワークにおける未知のデバイスに対する制限付き証明書登録
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
JP2024506915A (ja) ゼロ信頼認証
WO2023016451A1 (zh) 更新方法、网络侧设备、终端和计算机可读存储介质
US10791119B1 (en) Methods for temporal password injection and devices thereof
KR20210126319A (ko) 키 관리 장치 및 방법
CN114938278B (zh) 一种零信任访问控制方法及装置
TW202306356A (zh) 網路切片允入控制
CN114079573B (zh) 一种路由器访问方法以及路由器
KR20150056141A (ko) 사용자 인증 관리 방법
CN117118606A (zh) 基于Token的访问验证方法、系统及存储介质
Boyle et al. RFC2748: The COPS (Common Open Policy Service) Protocol

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