KR101785382B1 - 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어 - Google Patents

클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어 Download PDF

Info

Publication number
KR101785382B1
KR101785382B1 KR1020150172151A KR20150172151A KR101785382B1 KR 101785382 B1 KR101785382 B1 KR 101785382B1 KR 1020150172151 A KR1020150172151 A KR 1020150172151A KR 20150172151 A KR20150172151 A KR 20150172151A KR 101785382 B1 KR101785382 B1 KR 101785382B1
Authority
KR
South Korea
Prior art keywords
client
key
server
identifier
peer
Prior art date
Application number
KR1020150172151A
Other languages
English (en)
Other versions
KR20170013141A (ko
Inventor
김태정
조광현
Original Assignee
주식회사 투아이피
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 투아이피 filed Critical 주식회사 투아이피
Priority to EP16776939.7A priority Critical patent/EP3282639B1/en
Priority to CN201680020615.8A priority patent/CN107438977A/zh
Priority to JP2018503451A priority patent/JP6510137B2/ja
Priority to PCT/KR2016/003763 priority patent/WO2016163836A1/ko
Priority to US15/560,158 priority patent/US20180083938A1/en
Publication of KR20170013141A publication Critical patent/KR20170013141A/ko
Application granted granted Critical
Publication of KR101785382B1 publication Critical patent/KR101785382B1/ko

Links

Images

Classifications

    • 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
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

클라이언트 인증 방법이 개시된다. 일 실시예는 클라이언트로부터 수신된 공개키(public key) 요청에 대응하여 공개키를 발급하고, 상기 클라이언트로 상기 공개키를 전송하며, 상기 클라이언트로부터 개인키를 수신하고, 상기 공개키 및 상기 개인키를 키-페어(key pair)로 매핑하고, 상기 클라이언트로부터 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 수신하고, 상기 식별자 생성 요청에 대응하여 상기 클라이언트에 대응하는 식별자를 생성하고, 상기 고유 정보를 이용하여 보안키를 생성하며, 상기 식별자 및 상기 보안키를 상기 클라이언트로 전송하고, 상기 클라이언트로부터 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 수신하고, 상기 인증 요청에 대응하여 상기 클라이언트를 인증하고, 인증 결과를 상기 클라이언트로 전송하는 단계를 포함한다.

Description

클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어{METHOD FOR AUTHENTICATING CLIENT, OPERATION METHOD OF CLIENT, SERVER ENABLING THE METHOD, AND COMMUNICATION SOFTWARE ENABLING THE OPERATION METHOD}
아래 실시예들은 클라이언트를 인증하는 서버 및 클라이언트의 동작에 관한 것이다.
최근 통화 및 메시징 솔루션이 증가한다. 개인 정보(예를 들어, 전화번호 또는 이메일 등)를 이용하여 사용자가 인증되거나 식별된 경우, 통화 및 메시징 솔루션은 사용자에게 제공될 수 있다. 통화 및 메시징 솔루션은 사용자가 인증되거나 가 식별된 경우, 사용자에게 제공되므로, 통화 및 메시징 솔루션에 가입되지 않은 사용자는 통화 및 메시징 솔루션을 이용하기 힘들다.
실시예들은 사용자의 개인 정보를 입력하지 않고 통신 가능한 식별자를 부여할 수 있는 보안 통신 플랫폼을 제공할 수 있다. 또한, 실시예들은 소프트웨어(또는 펌웨어)가 설치될 수 있는 디바이스 또는 장치에 식별자를 부여할 수 있는 보안 통신 플랫폼을 제공할 수 있다.
일 측에 따른 클라이언트 인증 방법은 클라이언트로부터 수신된 공개키(public key) 요청에 대응하여 공개키를 발급하고, 상기 클라이언트로 상기 공개키를 전송하는 단계; 상기 클라이언트로부터 개인키를 수신하고, 상기 공개키 및 상기 개인키를 키-페어(key pair)로 매핑하는 단계; 상기 클라이언트로부터 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 수신하는 단계; 상기 식별자 생성 요청에 대응하여 상기 클라이언트에 대응하는 식별자를 생성하고, 상기 고유 정보를 이용하여 보안키를 생성하며, 상기 식별자 및 상기 보안키를 상기 클라이언트로 전송하는 단계; 상기 클라이언트로부터 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 수신하는 단계; 및 상기 인증 요청에 대응하여 상기 클라이언트를 인증하고, 인증 결과를 상기 클라이언트로 전송하는 단계를 포함하고, 상기 클라이언트는 상기 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이한다.
상기 하나 이상의 고유 정보는, 상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함할 수 있다.
상기 보안키는, 상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성될 수 있다.
상기 식별자는, n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다.
상기 식별자는, 해시 인덱스(Hash Index)가 임베디드(embedded)될 수 있다.
상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시될 수 있고, 상기 클라이언트는 상기 다른 클라이언트와 상기 보안키를 이용하여 암호화된 패킷을 송수신할 수 있다.
상기 매핑된 키-페어는, 상기 서버 및 상기 클라이언트 중 하나 이상에 저장될 수 있다.
일 측에 따른 클라이언트의 동작 방법은 서버로 공개키 요청을 전송하는 단계; 상기 서버로부터 상기 공개키 요청에 대응하는 공개키를 수신하고, 개인키를 생성하는 단계; 상기 개인키를 서버로 전송하고, 상기 서버로부터 상기 공개키 및 상기 개인키에 대한 키-페어 생성 완료 정보를 수신하는 단계; 상기 서버로, 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계; 상기 서버로부터, 상기 식별자 생성 요청에 대응한 식별자 및 보안키를 수신하는 단계; 상기 서버로, 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하는 단계; 상기 서버로부터, 상기 인증 요청에 대응한 인증 결과를 수신하는 단계; 및 상기 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이하는 단계를 포함한다.
상기 하나 이상의 고유 정보는, 상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함할 수 있다.
상기 보안키는, 상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성될 수 있다.
상기 식별자는, n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다.
상기 식별자는, 해시 인덱스(Hash Index)가 임베디드(embedded)될 수 있다.
상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시될 수 있고, 상기 클라이언트는 상기 다른 클라이언트와 상기 보안키를 이용하여 암호화된 패킷을 송수신할 수 있다.
상기 공개키 및 상기 개인키의 키-페어는, 상기 서버 및 상기 클라이언트 중 하나 이상에 저장될 수 있다.
일 측에 따른 서버는 클라이언트와 통신하는 통신 인터페이스; 및 컨트롤러를 포함하고, 상기 컨트롤러는, 상기 클라이언트로부터 수신된 공개키(public key) 요청에 대응하여 공개키를 발급하고, 상기 통신 인터페이스를 이용하여 상기 클라이언트로 상기 공개키를 전송하며, 상기 통신 인터페이스를 이용하여 개인키를 수신하고, 상기 공개키 및 상기 개인키를 키-페어(key pair)로 매핑하고, 상기 통신 인터페이스를 이용하여 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 수신하고, 상기 식별자 생성 요청에 대응하여 상기 클라이언트에 대응하는 식별자를 생성하고, 상기 고유 정보를 이용하여 보안키를 생성하며, 상기 통신 인터페이스를 이용하여 상기 식별자 및 상기 보안키를 상기 클라이언트로 전송하고, 상기 통신 인터페이스를 이용하여 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 수신하고, 상기 인증 요청에 대응하여 상기 클라이언트를 인증하고, 상기 통신 인터페이스를 이용하여 인증 결과를 상기 클라이언트로 전송하고, 상기 클라이언트는, 상기 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이한다.
상기 하나 이상의 고유 정보는, 상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함할 수 있다.
상기 보안키는, 상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성될 수 있다.
상기 식별자는, n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다.
상기 식별자는, 해시 인덱스(Hash Index)가 임베디드(embedded)될 수 있다.
상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시될 수 있고, 상기 클라이언트는 상기 다른 클라이언트와 상기 보안키를 이용하여 암호화된 패킷을 송수신할 수 있다.
상기 매핑된 키-페어는, 상기 서버 및 상기 클라이언트 중 하나 이상에 저장될 수 있다.
클라이언트의 메모리에 저장되고 상기 클라이언트의 프로세서에 의해 실행되는 통신 소프트웨어는, 상기 클라이언트의 통신 인터페이스를 통해 서버로 공개키 요청을 전송하는 단계; 상기 서버로부터 상기 공개키 요청에 대응하는 공개키를 상기 통신 인터페이스를 통해 수신하고, 개인키를 생성하는 단계; 상기 개인키를 상기 통신 인터페이스를 통해 서버로 전송하고, 상기 서버로부터 상기 공개키 및 상기 개인키에 대한 키-페어 생성 메시지를 상기 통신 인터페이스를 통해 수신하는 단계; 상기 서버로 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 상기 통신 인터페이스를 통해 전송하는 단계; 상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 상기 통신 인터페이스를 통해 수신하는 단계; 상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 상기 통신 인터페이스를 통해 전송하는 단계; 상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 상기 통신 인터페이스를 통해 수신하는 단계; 및 상기 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이하는 단계를 실행한다.
실시예들은 사용자의 개인 정보를 입력하지 않고 통신 가능한 식별자를 부여할 수 있는 보안 통신 플랫폼을 제공할 수 있다. 또한, 실시예들은 소프트웨어(또는 펌웨어)가 설치될 수 있는 디바이스 또는 장치에 식별자를 부여할 수 있는 보안 통신 플랫폼을 제공할 수 있다.
도 1은 일 실시예에 따른 클라이언트 인증 방법을 설명하기 위한 흐름도이다.
도 2는 일 실시예에 따른 클라이언트의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 클라이언트를 설명하기 위한 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 클라이언트 인증 방법을 설명하기 위한 흐름도이다.
도 1을 참조하면, 클라이언트(110)는 서버로 공개키(public key) 요청을 전송할 수 있다(111). 서버(120)는 클라이언트(110)로부터 수신된 공개키 요청에 대응하여 공개키를 발급할 수 있다(121). 공개키의 사이즈는, 예를 들어, 64 바이트, 즉, 512 비트일 수 있다. 서버(120)는 클라이언트(110)로 공개키를 전송할 수 있다(122). 서버(120)와 클라이언트(110)는 암호화되지 않은 통신을 수행할 수 있다.
클라이언트(110)는 공개키를 저장하고, 개인키(private key)를 생성할 수 있다(112). 개인키의 사이즈는, 예를 들어, 64 바이트일 수 있다. 클라이언트(110)는 개인키를 서버(120)로 전송할 수 있다(113). 클라이언트(110)는 공개키를 이용하여 개인키를 암호화할 수 있고, 암호화된 개인키를 서버(120)로 전송할 수 있다. 서버(120)는 클라이언트(110)로부터 개인키를 수신할 수 있다. 서버(120)는 공개키를 가지고 있으므로, 공개키를 이용하여 암호화된 개인키를 복호(decryption)할 수 있다.
서버(120)는 공개키 및 개인키를 키-페어(key pair)로 매핑할 수 있다(123). 서버(120)는 매핑된 키-페어를 서버(120)에 저장할 수 있다(124). 서버(120)는 키-페어 생성 메시지를 클라이언트(110)에게 전송할 수 있다(125). 서버(120)는 개인키를 이용하여 키-페어 생성 메시지를 암호화할 수 있다.
클라이언트(110)는 키-페어 생성 메시지를 이용하여 키-페어의 생성을 확인할 수 있다. 클라이언트(110)는 키-페어를 저장할 수 있다(114). 예를 들어, 키-페어의 생성이 확인된 경우, 클라이언트(110)는 개인키 및 공개키를 키-페어로 매핑할 수 있고, 매핑된 키-페어를 클라이언트(110)에 저장할 수 있다.
도 1에 도시된 예의 경우, 키-페어는 클라이언트(110) 및 서버(120)에 저장될 수 있다. 그러나, 전술한 키-페어의 저장 위치는 일 실시예에 따른 예시적인 사항일 뿐, 키-페어의 저장 위치는 전술한 사항으로 한정되지 않는다. 예를 들어, 키-페어는 클라이언트(110) 및 서버(120) 중 어느 하나에 저장될 수 있다.
클라이언트(110)는 고유 정보를 포함하는 식별자 생성 요청을 서버(120)로 전송할 수 있다(115). 식별자 생성 요청은 개인키를 이용하여 암호화될 수 있다. 고유 정보는, 예를 들어, 클라이언트(110)의 물리적 장치 또는 운영체제(Operating System, OS)에 대응하는 장치 고유키 및 클라이언트(110)에서 실행되는 통신 소프트웨어에 대응하는 제조키 중 적어도 하나를 포함할 수 있다.
클라이언트(110)의 물리적 장치는, 예를 들어, CPU 및 MPU(Micro Processor Unit) 중 적어도 하나를 포함할 수 있다. 장치 고유키는 CPU의 식별 정보 또는 MPU의 식별 정보로부터 획득될 수 있다. 클라이언트(110)에 저장된 운영체제는 다른 운영체제와 구별되게 하는 고유 정보를 가질 수 있다. 이로 인해, 클라이언트(110)는 운영체제의 고유 정보로부터 장치 고유키를 획득할 수 있다.
제조키는 사이트키, 제조사키, 및 제품키를 포함할 수 있다. 사이트키는 사이트 정보에 대응한다. 사이트 정보는, 예를 들어, 사이트 IP 주소를 기초로 하는 정보를 나타낼 수 있다. 제조사키는 제조사 정보에 대응한다. 제조사 정보는, 예를 들어, 통신 소프트웨어를 제조하는 제조사의 식별 정보를 나타낼 수 있다. 제품키는 통신 소프트웨어의 버전 정보에 대응한다.
장치 고유키 및 제조키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 장치 고유키의 사이즈는 128 비트이고, 제조키의 사이즈는 208 비트일 수 있다. 마찬가지로, 사이트키, 제조사키, 및 제품키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 사이트키의 사이즈는 80비트일 수 있고, 제조사키의 사이즈는 64비트일 수 있으며, 제품키의 사이즈는 64비트일 수 있다.
제조키는 사이트키, 제조사키, 및 제품키의 순서대로 구성될 수 있다. 사이트키, 제조사키, 및 제품키의 순서는 예시적인 사항일 뿐, 사이트키, 제조사키, 및 제품키의 순서는 전술한 사항으로 한정되지 않는다.
서버(120)는 보안키를 생성한다. 일 실시예에 있어서, 서버(120)는 클라이언트(110)의 고유 정보에 대응하는 보안키를 생성할 수 있다. 예를 들어, 서버(120)가 클라이언트(110)로부터 장치 고유키 및 제조키를 수신한 경우, 서버(120)는 장치 고유키 및 제조키를 변형하여 보안키를 생성할 수 있다. 서버(120)는 128 비트의 장치 고유키 및 208 비트의 제조키를 기초로 256 비트의 보안키를 생성할 수 있다. 후술하겠지만, 보안키는 클라이언트와 다른 클라이언트 사이에 교환되는 패킷을 암호화하는데 사용될 수 있다.
서버(120)는 식별자를 생성한다. 식별자의 사이즈는, 예를 들어, 64 바이트일 수 있다. 이하, 식별자에 대해서 설명한다.
<식별자의 고유성>
서버(120)는 클라이언트(110)의 식별자 생성 요청이 있는 경우, 식별자를 랜덤하게 생성할 수 있고, 식별자를 클라이언트(110)에 할당할 수 있다. 식별자는 n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다. 예를 들어, 1 바이트의 구별 정보가 64개인 경우, 식별자는 64자리를 갖는 64^64개의 랜덤 값 중에서 어느 하나일 수 있다. 서버(120)는 64개의 구별 정보를 랜덤하게 배열하여 식별자를 생성할 수 있다. 서버(120)는 식별자가 다른 식별자와 중복되는지 확인할 수 있고, 중복되지 않는 경우, 식별자를 클라이언트(110)에 할당할 수 있다. 이로 인해, 식별자는 클라이언트(110)마다 유니크(unique)할 수 있다. 서버는 식별자를 이용하여 클라이언트(110)와 다른 클라이언트를 구별할 수 있다.
<식별자의 해시 인덱스>
식별자에는 해시 인덱스(Hash index)가 임베디드(embedded)될 수 있다. 해시 인덱스의 사이즈는, 예를 들어, 64 비트일 수 있다. 서버(120)는 변환 로직을 이용하여 식별자에 해시 인덱스를 임베디드할 수 있다. 예를 들어, 식별자의 사이즈가 64 바이트라 하자. 서버(120)는 첫 번째 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 특정 비트에 변환 로직이 적용되는 경우, 특정 비트는 다른 비트로 변경되거나 변경되지 않을 수 있다. 특정 비트가 제1 논리값을 갖는 경우, 특정 비트는 변환 로직에 의해 제2 논리값으로 변경되거나 제1 논리값을 유지할 수 있다. 특정 비트는, 예를 들어, 1개일 수 있다. 서버는 나머지 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 이로 인해, 식별자의 스트링(string) 중 일부는 변경될 수 있고, 해시 인덱스가 식별자에 임베디드될 수 있다. 예를 들어, 식별자가 ABCD의 스트링인 경우, ABCD는 변환 로직에 의해 AZDD가 될 수 있고, AZDD에 해시 인덱스가 임베디드될 수 있다.
서버(120)는 클라이언트(110)의 식별자 대신에 식별자로부터 획득되는 해시 인덱스를 이용하여 데이터베이스에 접근(access)할 수 있다. 서버(120)는 클라이언트(110)의 식별자에 기초하는 쿼리(query)를 데이터베이스로 전송하지 않고, 해시 인덱스에 기초하는 쿼리를 데이터베이스로 전송할 수 있다. 데이터베이스는 클라이언트(110)의 식별자의 스트링과 데이터베이스에 저장된 복수의 식별자의 스트링을 비교하지 않고, 해시 인덱스와 DB 인덱스를 비교할 수 있다. 이로 인해, 데이터베이스의 응답 속도 또는 데이터베이스를 검색하는 속도가 증가할 수 있다.
<해시 인덱스를 이용한 세션 validation check>
서버(120)는 클라이언트(110)에게 UDP 세션 유지를 위한 퀘스천(question)을 생성할 수 있다. 서버(120)는 퀘스천에 헤시 인덱스를 임베디드할 수 있다. 서버(120)는 퀘스천을 클라이언트(110)로 전송할 수 있다.
클라이언트(110)가 퀘스천을 수신하는 경우, 클라이언트(110)는 답(answer)을 생성할 수 있다. 여기서, 답이 퀘스천에 대응하는 경우, UDP 세션은 유지될 수 있고, 답이 퀘스천에 대응하지 못한 경우, UDP 세션은 유지되지 못하고 해제될 수 있다.
생성된 답에는 해시 인덱스가 임베디드된다. 클라이언트(110)는 해시 인덱스가 임베디드된 답을 서버(120)로 전송할 수 있다.
서버(120)는 클라이언트(110)의 답을 확인할 수 있다. 서버(120)는 답으로부터 해시 인덱스를 획득할 수 있다. 예를 들어, 서버(120)는 답에 포함된 바이트를 XOR 연산하여 해시 인덱스를 획득할 수 있다. UDP 세션 유지를 위해 서버(120)는 클라이언트(110)의 식별자를 확인할 수 있다. 서버(120)는 해시 인덱스를 획득하였으므로, 해시 인덱스를 이용하여 식별자가 저장된 데이터베이스에 접근할 수 있다. 데이터베이스는 해시 인덱스에 대응하는 식별자를 서버(120)로 전송할 수 있다. 이로 인해, 서버(120)는 클라이언트(110)로부터 식별자를 수신하지 않고, 해시 인덱스에 기초하는 쿼리에 대한 응답을 통해 클라이언트(110)를 식별할 수 있어, 보다 빠르게 클라이언트(110)를 식별할 수 있다. 이로 인해, UDP 세션의 validation이 보다 빠르게 확인될 수 있고, UDP 세션이 유지될 수 있다. 또한, 클라이언트(110)의 IP 주소가 변경되어도 서버(120)는 해시 인덱스를 이용하여 클라이언트(110)를 빠르게 식별할 수 있다. 이로 인해, 피투피 통신과 같이 IP가 변화하는 환경에서도 UDP 세션의 validation이 확인될 수 있고, UDP 세션이 유지될 수 있다.
서버(120)가 식별자 및 보안키를 생성한 경우(126), 서버(120)는 식별자 및 보안키를 클라이언트(110)로 전송한다(127). 식별자 및 보안키는 개인키를 이용하여 암호화될 수 있다.
클라이언트(110)는 식별자 및 보안키를 저장한다(116). 클라이언트(110)는 식별자 및 보안키를 포함하는 인증 요청을 서버(120)로 전송할 수 있다(116). 인증 요청은 개인키를 이용하여 암호화될 수 있다.
서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키를 확인할 수 있다. 보다 구체적으로, 서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키가 단계(125)에서 생성된 식별자 및 보안키와 동일한지 여부를 확인할 수 있다.
서버(120)는 클라이언트(110)로부터 수신된 식별자 및 보안키를 기초로 클라이언트(110)를 인증하고(128), 인증 결과를 클라이언트(110)로 전송한다(129). 인증 결과는 개인키를 이용하여 암호화될 수 있다.
클라이언트(110)는 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이할 수 있다. 서버는 다른 클라이언트를 인증할 수 있고, 다른 클라이언트는 통신 가능한 상태로 천이할 수 있다. 이로 인해, 클라이언트(110)에서 구동되는 통신 소프트웨어에는 다른 클라이언트의 목록이 표시될 수 있다. 클라이언트(110)와 다른 클라이언트는 피투피 통신 또는 다이렉트 통신이 가능한 동작 모드로 진입할 수 있다. 클라이언트(110)가 다른 클라이언트와 피투피 통신하는 경우, 클라이언트(110)는 보안키를 이용하여 패킷을 암호화할 수 있고, 암호화된 패킷을 다른 클라이언트에게 전송할 수 있다.
도 2는 일 실시예에 따른 클라이언트의 동작 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 서버(220)는 클라이언트(210)를 인증할 수 있다(221). 서버(220)는 위에서 설명한 인증 방법으로 클라이언트(210)를 인증할 수 있다. 인증 결과는 개인키를 이용하여 암호화될 수 있다. 서버(220)는 인증 결과를 클라이언트(210)에게 전송할 수 있다(222).
클라이언트(210)는 개인키를 이용하여 인증 결과를 복호할 수 있다. 클라이언트(210)가 인증된 경우, 클라이언트(210)는 통신 가능한 상태로 천이될 수 있다(211). 클라이언트(210)는 피투피 통신 가능한 상태로 천이될 수 있다.
서버(220)는 클라이언트(230)를 인증할 수 있다(223). 마찬가지로, 서버(220)는 위에서 설명한 인증 방법으로 클라이언트(230)를 인증할 수 있다. 서버(220)는 인증 결과를 클라이언트(230)에게 전송할 수 있다.
클라이언트(230)가 인증된 경우, 클라이언트(230)는 통신 가능한 상태로 천이될 수 있다. 클라이언트(230)는 피투피 통신 가능한 상태로 천이될 수 있다.
클라이언트(210)는 클라이언트(230)와 피투피 통신을 하기 위한 요청을 서버(220)로 전송할 수 있다. 서버(220)는 클라이언트(230)를 찾을 수 있고(find), 클라이언트(230)에게 클라이언트(210)의 피투피 통신 요청을 전송할 수 있다. 이에 따라, 클라이언트(210)와 클라이언트(230)는 직접 연결(direct connection)될 수 있고, 직접 통신(direct communication)할 수 있다. 즉, 클라이언트(210)와 클라이언트(230)는 피투피 통신할 수 있다. 이 경우, 클라이언트(210)와 클라이언트(230)는 보안키를 이용하여 암호화된 패킷을 송수신할 수 있다(212).
도 1을 통해 기술된 사항들은 도 2를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 3은 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 3을 참조하면, 서버(300)는 통신 인터페이스(310), 컨트롤러(320), 및 메모리(330)를 포함한다.
통신 인터페이스(310)는 클라이언트와 통신한다.
일 실시예에 따른 서버(300)는 클라이언트의 피어투피어 통신을 지원한다. 이하, 클라이언트의 피어투피어 통신을 지원하기 위한 서버(300)의 동작을 설명한다.
컨트롤러(320)는 클라이언트로부터 수신된 공개키 요청에 대응하여 공개키를 발급하고, 통신 인터페이스(310)는 클라이언트로 공개키를 전송한다.
통신 인터페이스(310)는 클라이언트로부터 개인키를 수신하고, 컨트롤러(320)는 공개키 및 개인키를 키-페어로 매핑한다. 일 실시예에 있어서, 컨트롤러(320)는 키-페어를 메모리(330)에 저장할 수 있다.
통신 인터페이스(310)는 키-페어 생성 메시지를 클라이언트로 전송하고, 클라이언트는 키-페어의 생성을 확인할 수 있다.
클라이언트는 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 서버(300)로 전송한다.
통시 인터페이스(310)는 식별자 생성 요청을 수신하고, 컨트롤러(320)는 식별자 생성 요청에 대응하여 클라이언트에 대응하는 식별자를 생성한다. 또한, 컨트롤러(320)는 식별자 생성 요청에 포함된 고유 정보를 이용하여 보안키를 생성한다. 통신 인터페이스(310)는 식별자 및 보안키를 클라이언트로 전송한다.
클라이언트는 식별자 및 보안키를 포함하는 인증 요청을 서버(300)로 전송하고, 통신 인터페이스(310)는 인증 요청을 수신한다.
컨트롤러(320)는 인증 요청에 대응하여 클라이언트를 인증하고, 통신 인터페이스(310)는 인증 결과를 클라이언트로 전송한다. 클라이언트가 인증된 경우, 클라이언트는 다른 클라이언트와 통신 가능한 상태로 천이한다. 클라이언트 및 다른 클라이언트가 인증된 경우, 클라이언트 및 다른 클라이언트는 서로 피투피 통신 또는 직접 통신이 가능한 동작 모드로 진입할 수 있다.
도 1 내지 도 2를 통해 기술된 사항들은 도 3을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 4는 일 실시예에 따른 클라이언트를 설명하기 위한 블록도이다.
도 4를 참조하면, 클라이언트(400)는 프로세서(410) 및 메모리(420)를 포함한다.
메모리(420)는 통신 소프트웨어를 저장하고, 프로세서(410)는 통신 소프트웨어를 실행한다. 통신 소프트웨어는 서버로 공개키 요청을 전송하기 위한 명령어, 개인키를 생성하기 위한 명령어, 개인키를 서버로 전송하기 위한 명령어, 서버로 고유 정보를 포함하는 식별자 생성 요청을 생성하고 전송하기 위한 명령어, 서버로 식별자 및 보안키를 포함하는 인증 요청을 생성하고 전송하기 위한 명령어, 및 인증 결과에 따라 다른 클라이언트와 통신 가능한 상태로 천이하기 위한 명령어를 포함한다. 이하, 통신 소프트웨어가 실행되는 경우를 설명한다.
통신 소프트웨어는 클라이언트(400)의 통신 인터페이스를 통해 서버로 공개키 요청을 전송한다. 통신 인터페이스는 클라이언트(400)의 무선 통신을 가능하게 할 수 있다. 예를 들어, 통신 인터페이스는 WWAN(Wireless Wide Area Network) 또는 WLAN(Wireless Local Area Network)을 위한 인터페이스를 포함할 수 있다. WWAN은 CDMA(Code Division Multiple Access) 네트워크 TDMA(Time Division Multiple Access) 네트워크, FDMA(Frequency Division Multiple Access) 네트워크, OFDMA(Orthogonal Frequency Division Multiple Access) 네트워크, 및/또는 SC-FDMA(Single-Carrier Frequency Division Multiple Access) 네트워크 중 어느 하나 또는 이들의 조합을 포함할 수 있다. WLAN은 IEEE 802.11x 네트워크를 포함할 수 있다. 또한, 통신 인터페이스는 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), 또는 Z-wave 등이 가능한 인터페이스를 포함할 수 있다.
통신 소프트웨어는 서버로부터 공개키 요청에 대응하는 공개키를 통신 인터페이스를 통해 수신하고, 개인키를 생성한다.
통신 소프트웨어는 개인키를 통신 인터페이스를 통해 서버로 전송하고, 서버로부터 공개키 및 개인키에 대한 키-페어 생성 메시지를 통신 인터페이스를 통해 수신한다.
통신 소프트웨어는 서버로 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 통신 인터페이스를 통해 전송한다.
통신 소프트웨어는 서버로부터 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 통신 인터페이스를 통해 수신한다.
통신 소프트웨어는 서버로 식별자 및 보안키를 포함하는 인증 요청을 통신 인터페이스를 통해 전송한다.
통신 소프트웨어는 서버로부터 인증 요청에 대응하는 인증 결과를 통신 인터페이스를 통해 수신한다.
통신 소프트웨어는 인증 결과에 따라 클라이언트(400)가 다른 클라이언트와 통신 가능한 상태로 천이하도록 클라이언트(400)를 제어한다. 이로 인해, 클라이언트(400)는 서버에 의해 인증된 다른 클라이언트와 피투피 통신 또는 직접 통신이 가능한 동작 모드로 진입할 수 있다.
도 1 내지 도 3을 통해 기술된 사항들은 도 4를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (22)

  1. 피어투피어 통신을 지원하는 서버의 클라이언트 인증 방법에 있어서,
    클라이언트로부터 수신된 공개키(public key) 요청에 대응하여 공개키를 발급하고, 상기 클라이언트로 상기 공개키를 전송하는 단계;
    상기 클라이언트로부터 개인키를 수신하고, 상기 공개키 및 상기 개인키를 키-페어(key pair)로 매핑하는 단계;
    상기 클라이언트로부터 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 수신하는 단계;
    상기 식별자 생성 요청에 대응하여 상기 클라이언트에 대응하는 식별자를 생성하고, 상기 고유 정보를 이용하여 보안키를 생성하며, 상기 식별자 및 상기 보안키를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트로부터 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 수신하는 단계; 및
    상기 인증 요청에 대응하여 상기 클라이언트를 인증하고, 인증 결과를 상기 클라이언트로 전송하는 단계
    를 포함하고,
    상기 클라이언트는 상기 서버에 의해 인증되는 경우, 통신 가능한 상태로 천이하고, 다른 클라이언트와 피어투피어 경로를 설정하며, 상기 피어투피어 경로를 통해 상기 보안키를 이용하여 암호화된 데이터를 상기 다른 클라이언트로 전송하 는,
    서버의 클라이언트 인증 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 고유 정보는,
    상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함하는,
    서버의 클라이언트 인증 방법.
  3. 제2항에 있어서,
    상기 보안키는,
    상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성되는,
    서버의 클라이언트 인증 방법.
  4. 제1항에 있어서,
    상기 식별자는,
    n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나인,
    서버의 클라이언트 인증 방법.
  5. 제1항에 있어서,
    상기 식별자는,
    해시 인덱스(Hash Index)가 임베디드(embedded)된,
    서버의 클라이언트 인증 방법.
  6. 제1항에 있어서,
    상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시되는,
    서버의 클라이언트 인증 방법.
  7. 제1항에 있어서,
    상기 매핑된 키-페어는,
    상기 서버 및 상기 클라이언트 중 하나 이상에 저장되는,
    서버의 클라이언트 인증 방법.
  8. 피어투피어 통신을 지원하는 클라이언트의 동작 방법에 있어서,
    서버로 공개키 요청을 전송하는 단계;
    상기 서버로부터 상기 공개키 요청에 대응하는 공개키를 수신하고, 개인키를 생성하는 단계;
    상기 개인키를 서버로 전송하고, 상기 서버로부터 상기 공개키 및 상기 개인키에 대한 키-페어 생성 완료 정보를 수신하는 단계;
    상기 서버로, 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 전송하는 단계;
    상기 서버로부터, 상기 식별자 생성 요청에 대응한 식별자 및 보안키를 수신하는 단계;
    상기 서버로, 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 전송하는 단계;
    상기 서버로부터, 상기 인증 요청에 대응한 인증 결과를 수신하는 단계;
    상기 서버에 의해 상기 클라이언트가 인증되는 경우, 통신 가능한 상태로 천이하는 단계; 및
    다른 클라이언트와 피어투피어 경로를 설정하고, 상기 피어투피어 경로를 통해 상기 보안키를 이용하여 암호화된 데이터를 상기 다른 클라이언트로 전송하는 단계
    를 포함하는,
    클라이언트의 동작 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 고유 정보는,
    상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함하는,
    클라이언트의 동작 방법.
  10. 제9항에 있어서,
    상기 보안키는,
    상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성되는,
    클라이언트의 동작 방법.
  11. 제8항에 있어서,
    상기 식별자는,
    n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나인,
    클라이언트의 동작 방법.
  12. 제8항에 있어서,
    상기 식별자는,
    해시 인덱스(Hash Index)가 임베디드(embedded)된 것인,
    클라이언트의 동작 방법.
  13. 제8항에 있어서,
    상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시되는,
    클라이언트의 동작 방법.
  14. 제8항에 있어서,
    상기 공개키 및 상기 개인키의 키-페어는,
    상기 서버 및 상기 클라이언트 중 하나 이상에 저장되는,
    클라이언트의 동작 방법.
  15. 피어투피어 통신을 지원하는 서버에 있어서,
    클라이언트와 통신하는 통신 인터페이스; 및
    컨트롤러
    를 포함하고,
    상기 컨트롤러는,
    상기 클라이언트로부터 수신된 공개키(public key) 요청에 대응하여 공개키를 발급하고, 상기 통신 인터페이스를 이용하여 상기 클라이언트로 상기 공개키를 전송하며,
    상기 통신 인터페이스를 이용하여 개인키를 수신하고, 상기 공개키 및 상기 개인키를 키-페어(key pair)로 맵핑하고,
    상기 통신 인터페이스를 이용하여 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 수신하고,
    상기 식별자 생성 요청에 대응하여 상기 클라이언트에 대응하는 식별자를 생성하고, 상기 고유 정보를 이용하여 보안키를 생성하며, 상기 통신 인터페이스를 이용하여 상기 식별자 및 상기 보안키를 상기 클라이언트로 전송하고,
    상기 통신 인터페이스를 이용하여 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 수신하고,
    상기 인증 요청에 대응하여 상기 클라이언트를 인증하고, 상기 통신 인터페이스를 이용하여 인증 결과를 상기 클라이언트로 전송하고,
    상기 클라이언트는,
    상기 서버에 의해 인증되는 경우, 통신 가능한 상태로 천이하고, 다른 클라이언트와 피어투피어 경로를 설정하며, 상기 피어투피어 경로를 통해 상기 보안키를 이용하여 암호화된 데이터를 상기 다른 클라이언트로 전송하는
    서버.
  16. 제15항에 있어서,
    상기 하나 이상의 고유 정보는,
    상기 클라이언트의 물리적 장치에 대응하는 장치 고유키 및 상기 클라이언트에서 구동되는 통신 소프트웨어에 대응하는 제조키를 포함하는,
    서버.
  17. 제16항에 있어서,
    상기 보안키는,
    상기 장치 고유키 및 제조키 중 적어도 하나에 대응하여 생성되는,
    서버.
  18. 제15항에 있어서,
    상기 식별자는,
    n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나인,
    서버.
  19. 제15항에 있어서,
    상기 식별자는,
    해시 인덱스(Hash Index)가 임베디드(embedded)된,
    서버.
  20. 제15항에 있어서,
    상기 클라이언트에서 구동되는 통신 소프트웨어에는 상기 서버의 인증을 받은 하나 이상의 다른 클라이언트의 목록이 표시되고, 상기 클라이언트는 상기 다른 클라이언트와 상기 보안키를 이용하여 암호화된 패킷을 송수신하는,
    서버.
  21. 제15항에 있어서,
    상기 매핑된 키-페어는,
    상기 서버 및 상기 클라이언트 중 하나 이상에 저장되는,
    서버.
  22. 클라이언트에 있어서,
    통신 소프트웨어를 저장하는 메모리; 및
    상기 통신 소프트웨어를 실행하는 프로세서
    를 포함하고,
    상기 통신 소프트웨어는,
    상기 클라이언트의 통신 인터페이스를 통해 서버로 공개키 요청을 전송하는 단계;
    상기 서버로부터 상기 공개키 요청에 대응하는 공개키를 상기 통신 인터페이스를 통해 수신하고, 개인키를 생성하는 단계;
    상기 개인키를 상기 통신 인터페이스를 통해 서버로 전송하고, 상기 서버로부터 상기 공개키 및 상기 개인키에 대한 키-페어 생성 완료 정보를 상기 통신 인터페이스를 통해 수신하는 단계;
    상기 서버로 상기 클라이언트의 하나 이상의 고유 정보를 포함하는 식별자 생성 요청을 상기 통신 인터페이스를 통해 전송하는 단계;
    상기 서버로부터 상기 식별자 생성 요청에 대응하는 식별자 및 고유 정보에 대응하는 보안키를 상기 통신 인터페이스를 통해 수신하는 단계;
    상기 서버로 상기 식별자 및 상기 보안키를 포함하는 인증 요청을 상기 통신 인터페이스를 통해 전송하는 단계;
    상기 서버로부터 상기 인증 요청에 대응하는 인증 결과를 상기 통신 인터페이스를 통해 수신하는 단계;
    상기 서버에 의해 상기 클라이언트가 인증되는 경우, 다른 클라이언트와 통신 가능한 상태로 천이하는 단계; 및
    다른 클라이언트와 피어투피어 경로를 설정하고, 상기 보안키를 이용하여 암호화된 데이터를 상기 피어투피어 경로를 통해 상기 다른 클라이언트로 전송하는 단계
    를 실행하는,
    클라이언트.
KR1020150172151A 2015-04-10 2015-12-04 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어 KR101785382B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP16776939.7A EP3282639B1 (en) 2015-04-10 2016-04-11 Method for operating server and client, server, and client apparatus
CN201680020615.8A CN107438977A (zh) 2015-04-10 2016-04-11 服务器和客户端的运行方法、服务器及客户端装置
JP2018503451A JP6510137B2 (ja) 2015-04-10 2016-04-11 サーバとクライアントの動作方法、サーバ、及びクライアント装置
PCT/KR2016/003763 WO2016163836A1 (ko) 2015-04-10 2016-04-11 서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치
US15/560,158 US20180083938A1 (en) 2015-04-10 2016-04-11 Method for operating server and client, server, and client apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150105571 2015-07-27
KR1020150105571 2015-07-27

Publications (2)

Publication Number Publication Date
KR20170013141A KR20170013141A (ko) 2017-02-06
KR101785382B1 true KR101785382B1 (ko) 2017-10-16

Family

ID=58108980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150172151A KR101785382B1 (ko) 2015-04-10 2015-12-04 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어

Country Status (1)

Country Link
KR (1) KR101785382B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102547745B1 (ko) * 2021-07-12 2023-06-26 주식회사 아이디스 사전 인증정보를 이용해 네트워크 응답속도를 개선한 영상 보안 시스템

Also Published As

Publication number Publication date
KR20170013141A (ko) 2017-02-06

Similar Documents

Publication Publication Date Title
US11722296B2 (en) Device securing communications using two post-quantum cryptography key encapsulation mechanisms
US10003966B2 (en) Key configuration method and apparatus
US10693848B2 (en) Installation of a terminal in a secure system
US11451614B2 (en) Cloud authenticated offline file sharing
JP5739072B2 (ja) 共有エフェメラル・キー・データのセットを用いるエクスチェンジを符号化するためのシステム及び方法
EP3205048B1 (en) Generating a symmetric encryption key
EP3065334A1 (en) Key configuration method, system and apparatus
US12003629B2 (en) Secure server digital signature generation for post-quantum cryptography key encapsulations
US10356090B2 (en) Method and system for establishing a secure communication channel
US10511596B2 (en) Mutual authentication
US10733309B2 (en) Security through authentication tokens
US20230361994A1 (en) System and Methods for Secure Communication Using Post-Quantum Cryptography
EP3282639B1 (en) Method for operating server and client, server, and client apparatus
CN105141629A (zh) 一种基于WPA/WPA2 PSK多密码提升公用Wi-Fi网络安全性的方法
KR101848300B1 (ko) IoT 디바이스의 통신 클라이언트의 동작 방법 및 상기 통신 클라이언트를 포함하는 IoT 디바이스
US11539671B1 (en) Authentication scheme in a virtual private network
US11240661B2 (en) Secure simultaneous authentication of equals anti-clogging mechanism
US20230308424A1 (en) Secure Session Resumption using Post-Quantum Cryptography
KR101785382B1 (ko) 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어
US11943201B2 (en) Authentication procedure in a virtual private network
CN111836260A (zh) 一种认证信息处理方法、终端和网络设备
KR20150135717A (ko) 모바일 멀티홉 네트워크에서 비밀키를 공유하는 장치 및 방법
Patalbansi Secure Authentication and Security System for Mobile Devices in Mobile Cloud Computing

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right