KR101771992B1 - 서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치 - Google Patents

서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치 Download PDF

Info

Publication number
KR101771992B1
KR101771992B1 KR1020160041490A KR20160041490A KR101771992B1 KR 101771992 B1 KR101771992 B1 KR 101771992B1 KR 1020160041490 A KR1020160041490 A KR 1020160041490A KR 20160041490 A KR20160041490 A KR 20160041490A KR 101771992 B1 KR101771992 B1 KR 101771992B1
Authority
KR
South Korea
Prior art keywords
client
identifier
server
key
contact
Prior art date
Application number
KR1020160041490A
Other languages
English (en)
Other versions
KR20160121416A (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 JP2018503451A priority Critical patent/JP6510137B2/ja
Priority to EP16776939.7A priority patent/EP3282639B1/en
Priority to CN201680020615.8A priority patent/CN107438977A/zh
Priority to PCT/KR2016/003763 priority patent/WO2016163836A1/ko
Priority to US15/560,158 priority patent/US20180083938A1/en
Publication of KR20160121416A publication Critical patent/KR20160121416A/ko
Application granted granted Critical
Publication of KR101771992B1 publication Critical patent/KR101771992B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W4/003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/16Communication-related supplementary services, e.g. call-transfer or call-hold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

클라이언트의 동작 방법이 개시된다. 일 실시예는 연락처를 추가하기 위한 연락처 요청 데이터 및 상기 클라이언트의 식별자를 서버로 전송하고, 상기 연락처 요청 데이터에 대응하여 생성된 키를 상기 서버로부터 수신하며 - 상기 키는 상기 클라이언트의 식별자와 맵핑됨 -, 상대 클라이언트가 상기 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행하고, 상기 서버로부터, 상기 상대 클라이언트의 식별자를 수신하고, 상기 상대 클라이언트의 식별자를 연락처 레지스트리(registry)에 등록하는 단계를 포함한다.

Description

서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치{OPERATION METHOD OF SERVER AND CLIENT, SERVER ENABLING THE OPERATION METHOD, AND CLIENT APPARATUS ENABLING THE OPERATION METHOD}
아래 실시예들은 서버 및 클라이언트의 동작에 관한 것이다.
현재의 통신 방식은 사용자의 개인 정보(예를 들어, 전화번호 또는 이메일 등)를 이용하여 사용자가 인증되거나 식별된 경우, 사용자에게 통신 서비스를 제공한다.
관련 선행기술로 한국 공개특허공보 제10-2015-0035143호(발명의 명칭: 이동통신 서비스 제공 방법 및 이를 위한 장치, 출원인: 에스케이 텔레콤)가 있다. 상기 한국 공개특허공보에는 이동성 관리 장치로부터 사용자 장치에 대한 위치 등록 요청을 수신하고, 상기 사용자 장치의 가입자 프로파일 정보를 참조하여, 특정 이동통신 서비스 가입 여부를 확인하며, 상기 사용자 장치가 특정 이동통신 서비스에 가입되어 있는 경우, 상기 사용자 장치에 대하여 등록된 액세스 포인트 네임(Access Point Name) 정보를 특정 이동통신 서비스용으로 갱신하고, 상기 갱신된 엑세스 포인트 네임 정보를 포함하는 가입자 프로파일 정보를 상기 이동성 관리 장치로 제공하는 가입자 정보 관리 장치가 개시된다.
일 측에 따른 클라이언트의 동작 방법은 연락처를 추가하기 위한 연락처 요청 데이터 및 상기 클라이언트의 식별자를 서버로 전송하는 단계; 상기 연락처 요청 데이터에 대응하여 생성된 키를 상기 서버로부터 수신하는 단계 - 상기 키는 상기 클라이언트의 식별자와 맵핑됨 -; 상대 클라이언트가 상기 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행하는 단계; 상기 서버로부터, 상기 상대 클라이언트의 식별자를 수신하는 단계; 및 상기 상대 클라이언트의 식별자를 연락처 레지스트리(registry)에 등록하는 단계를 포함하고, 상기 서버는 상기 상대 클라이언트로부터 상기 상대 클라이언트의 식별자 및 상기 키를 수신하고, 상기 상대 클라이언트의 식별자를 상기 클라이언트로 전송한다.
상기 미리 정해진 키 전달 프로세스를 수행하는 단계는, 상기 키에 대응하는 시각적 코드를 생성하여 표시하는 단계를 포함할 수 있다.
상기 클라이언트의 식별자, 상기 상대 클라이언트의 식별자, 제3자의 식별자, 및 상기 상대 클라이언트와 상기 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 서버로 전송하는 단계를 더 포함할 수 있다.
상기 친구 연결 요청 데이터는, 상기 상대 클라이언트 및 상기 제3자로 전송될 수 있고, 상기 상대 클라이언트 및 상기 제3자가 상기 친구 연결 요청 데이터에 대한 승인 입력을 한 경우, 상기 상대 클라이언트의 식별자는 상기 제3자로 전송될 수 있고, 상기 제3자의 식별자는 상기 상대 클라이언트로 전송될 수 있다.
상기 클라이언트와 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 서버로부터 수신하는 단계; 상기 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 상기 서버로 전송하는 단계; 상기 친구 연결 요청 데이터에 대한 승인 입력을 하고, 상기 제3자가 상기 친구 연결 요청 데이터에 대한 승인 입력을 한 경우, 상기 서버로부터 상기 제3자의 식별자를 수신하는 단계; 및 상기 제3자의 식별자를 연락처 레지스트리에 등록하는 단계를 더 포함할 수 있다.
상기 상대 클라이언트의 식별자가 상기 연락처 레지스트리에서 삭제된 경우, 상기 상대 클라이언트의 연락처 레지스트리에 등록된 상기 클라이언트의 식별자에 대한 통신 연결을 디스에이블(disable)하기 위한 디스에이블 요청 데이터를 상기 서버로 전송하는 단계를 더 포함할 수 있다.
상기 디스에이블 요청 데이터에 대응하는, 상기 상대 클라이언트로 전송되는 식별자 제어 명령은, 상기 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 클라이언트의 식별자가 시각적으로 표시되지 않기 위한 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함할 수 있다.
상기 서버로부터 상기 상대 클라이언트의 식별자를 제어하기 위한 식별자 제어 명령을 수신하는 단계를 더 포함할 수 있다.
상기 식별자 제어 명령은, 상기 상대 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 상대 클라이언트의 식별자가 시각적으로 표시되지 않기 위한 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함할 수 있다.
상기 연락처 레지스트리에 등록된 적어도 하나의 식별자를 포함하는 연락처 데이터를 상기 서버에 백업하기 위한 연락처 저장 요청 데이터를 상기 서버로 전송하는 단계; 상기 연락처 저장 요청 데이터에 대응하여 생성된 식별 코드 및 암호키를 상기 서버로부터 수신하는 단계; 상기 암호키를 이용하여 연락처 데이터를 암호화하는 단계; 및 상기 식별 코드 및 상기 암호키로 암호화된 연락처 데이터를 상기 서버로 전송하는 단계를 더 포함할 수 있고, 상기 식별 코드 및 상기 암호화된 연락처 데이터는 상기 서버 내에서 맵핑되어 저장될 수 있다.
상기 상대 클라이언트의 업데이트된 상태 정보를 상기 서버로부터 수신하는 단계를 더 포함할 수 있고, 상기 업데이트된 상태 정보는, 상기 상대 클라이언트가 통신 세션을 통해 연결 가능함을 나타낼 수 있다.
다른 일 측에 따른 클라이언트의 동작 방법은 상대 클라이언트의 식별자와 맵핑되는 키를 획득하는 단계; 상기 키 및 상기 클라이언트의 식별자를 서버로 전송하는 단계; 상기 서버로부터 상기 상대 클라이언트의 식별자를 수신하는 단계; 및 상기 상대 클라이언트의 식별자를 연락처 레지스트리에 등록하는 단계를 포함하고, 상기 키는, 상기 상대 클라이언트가 연락처를 추가하기 위한 연락처 요청 데이터 및 상기 상대 클라이언트의 식별자를 서버로 전송한 경우, 상기 서버에 의해 생성된다.
상기 키를 획득하는 단계는, 상기 상대 클라이언트에 의해 생성된 시각적 코드를 캡쳐하는 단계; 및 상기 시각적 코드를 디코딩하여 상기 키를 획득하는 단계를 포함할 수 있다.
일 측에 따른 서버의 동작 방법은 연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 상기 클라이언트로부터 수신하는 단계; 상기 연락처 요청 데이터에 대응하여 키를 생성하고, 상기 키를 상기 클라이언트의 식별자와 맵핑하는 단계; 상기 키를 상기 클라이언트로 전송하는 단계; 상기 클라이언트의 미리 정해진 키 전달 프로세스를 통해 상기 키를 획득한 상대 클라이언트로부터, 상기 키 및 상기 상대 클라이언트의 식별자를 수신하는 단계; 상기 키와 맵핑되는 식별자를 검색하는 단계; 및 검색 결과를 기초로, 상기 클라이언트 및 상기 상대 클라이언트의 연락처를 관리하는 단계를 포함한다.
상기 검색 결과에 상기 클라이언트의 식별자가 포함된 경우, 상기 키의 사용 가능 횟수를 기초로 상기 키가 유효한지 확인하는 단계를 더 포함할 수 있다.
상기 키가 유효한 경우, 상기 키의 사용 가능 횟수를 업데이트하고, 상기 키가 유효하지 않은 경우, 상기 클라이언트의 식별자를 전달할 수 없음을 나타내는 메시지를 상기 상대 클라이언트로 전송하는 단계를 포함할 수 있다.
상기 관리하는 단계는, 상기 클라이언트의 식별자를 상기 상대 클라이언트로 전송하고, 상기 상대 클라이언트의 식별자를 상기 클라이언트로 전송하는 단계를 포함할 수 있다.
상기 관리하는 단계는, 상기 클라이언트와 상기 상대 클라이언트 사이의 친구 연결을 기록하는 단계를 포함할 수 있다.
상기 클라이언트의 식별자, 상기 상대 클라이언트의 식별자, 제3자의 식별자, 및 상기 상대 클라이언트와 상기 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 클라이언트로부터 수신하는 단계; 상기 친구 연결 요청 데이터를 상기 제3자 및 상기 상대 클라이언트로 전송하는 단계; 상기 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 상기 제3자 및 상기 상대 클라이언트로부터 수신하는 단계; 및 상기 응답 데이터를 기초로, 상기 제3자 및 상기 상대 클라이언트의 연락처를 관리하는 단계를 더 포함할 수 있다.
상기 상대 클라이언트에 등록된 상기 클라이언트의 식별자에 대한 통신 연결을 디스에이블(disable)하기 위한 디스에이블 요청 데이터를 상기 클라이언트로부터 수신하는 단계; 상기 디스에이블 요청 데이터에 대응하는 연락처 제어 명령을 생성하는 단계; 및 상기 연락처 제어 명령을 상기 상대 클라이언트로 전송하는 단계를 더 포함할 수 있다.
상기 연락처 제어 명령은, 상기 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 상대 클라이언트가 상기 클라이언트의 식별자를 시각적으로 표시하지 않도록 하는 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함할 수 있다.
상기 클라이언트의 연락처 레지스트리에 등록된 적어도 하나의 식별자를 포함하는 연락처 데이터를 백업하기 위한 연락처 저장 요청 데이터를 상기 클라이언트로부터 수신하는 단계; 상기 연락처 저장 요청 데이터에 대응하여 식별 코드 및 상기 연락처 데이터를 암호화하는데 사용되는 암호키를 생성하는 단계; 상기 식별 코드 및 상기 암호키를 상기 클라이언트로 전송하는 단계; 상기 클라이언트로부터 상기 식별 코드 및 상기 암호키로 암호화된 연락처 데이터를 수신하는 단계; 및 상기 식별 코드 및 상기 암호화된 연락처 데이터를 맵핑하여 저장하는 단계를 더 포함할 수 있다.
상기 클라이언트와 다른 클라이언트로부터 상기 식별 코드 및 연락처 복원 요청 데이터를 수신하는 단계; 상기 식별 코드와 맵핑되는 연락처 데이터를 검색하는 단계; 검색 결과를 기초로, 상기 암호화된 연락처 데이터를 상기 다른 클라이언트로 전송하는 단계; 상기 다른 클라이언트로부터 상기 암호키로 복호화된 연락처 데이터를 등록하기 위한 등록 요청 데이터를 수신하는 단계; 및 상기 다른 식별자에 대응하여 상기 복호화된 연락처를 등록하는 단계를 포함할 수 있다.
상기 상대 클라이언트가 상기 서버에 접속하는 경우, 상기 상대 클라이언트의 상태 정보를 업데이트하는 단계; 및 상기 클라이언트에게 상기 업데이트된 상태 정보를 전송하는 단계를 더 포함할 수 있고, 상기 업데이트된 상태 정보는, 상기 상대 클라이언트가 통신 세션을 통해 연결 가능함을 나타낼 수 있다.
실시예들은 사용자의 개인 정보를 입력받지 않고 통신 가능한 식별자를 부여할 수 있는 보안 통신 플랫폼을 제공할 수 있다. 또한, 실시예들은 통신 소프트웨어(또는 펌웨어)에 식별자를 할당하여 전화번호 기반의 통신 서비스가 아닌 식별자 기반의 통신 서비스를 제공할 수 있다.
도 1은 일 실시예에 따른 클라이언트 및 서버의 동작을 설명하기 위한 흐름도이다.
도 2는 일 실시예에 따른 식별자 할당 및 클라이언트 인증을 위한 프로세스의 일례를 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 연락처 추가의 일례를 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 연락처 추가의 다른 일례를 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 연락처 디스에이블의 일례를 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 연락처 백업의 일례를 설명하기 위한 흐름도이다.
도 7은 일 실시예에 따른 연락처 복원의 일례를 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 보안 통화 동글의 일례를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.
도 10은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.
도 11은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.
도 12는 일 실시예에 따른 클라이언트 장치의 일례를 설명하기 위한 블록도이다.
도 13은 일 실시예에 따른 클라이언트 장치의 다른 일례를 설명하기 위한 블록도이다.
도 14는 일 실시예에 따른 서버의 일례를 설명하기 위한 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 클라이언트 및 서버의 동작을 설명하기 위한 흐름도이다.
클라이언트는, 예를 들어, 통신 서비스를 가능하게 하는 통신 어플리케이션일 수 있다. 통신 서비스는 다른 클라이언트와의 P2P(Peer To Peer) 통신을 포함할 수 있다.
클라이언트가 단말에 최초로 인스톨되어 실행되는 경우, 클라이언트는 식별자가 할당되어 있는지 확인한다(110). 예를 들어, 클라이언트는 메모리에 식별자가 저장되어 있는지 확인할 수 있다.
식별자가 할당된 경우, 클라이언트는 서버에 접속한다(120). 클라이언트는 서버에 접속하기 위해 자신의 식별자 및 IP(Internet Protocol) 주소를 서버로 전송할 수 있다.
클라이언트가 서버에 접속한 경우, 서버는 클라이언트의 상태 정보를 업데이트한다(130). 예를 들어, 서버는 클라이언트의 상태 정보를 "온라인 상태"로 변경할 수 있다. 달리 표현하면, 서버는 식별자에 대한 상태 정보를 "오프라인 상태"에서 "온라인 상태"로 변경할 수 있다. 서버는 클라이언트의 업데이트된 상태 정보를 다른 클라이언트로 전송할 수 있다. 다른 클라이언트는 클라이언트가 온라인 상태에 있다고 디스플레이에 표시할 수 있다. 다시 말해, 다른 클라이언트는 클라이언트의 식별자의 상태 정보가 온라인 상태라는 것을 디스플레이에 표시할 수 있다.
도 1에 도시되지 않았으나, 클라이언트의 실행이 종료되면(예를 들어, 사용자가 클라이언트의 실행을 중단시킨 경우 등), 클라이언트는 실행이 종료되었다는 것을 나타내는 종료 데이터를 서버로 전송할 수 있다. 여기서, 클라이언트는 종료 데이터와 함께 자신의 식별자를 서버로 전송할 수 있다.
서버는 종료 데이터를 수신하는 경우, 클라이언트의 상태 정보를 업데이트할 수 있다. 예를 들어, 서버는 클라이언트의 상태 정보를 "온라인 상태"에서 "오프라인 상태"로 변경할 수 있다. 서버는 클라이언트와 친구 연결된 다른 클라이언트로 클라이언트의 업데이트된 상태 정보를 전송할 수 있다. 이에 따라, 다른 클라이언트는 클라이언트가 오프라인 상태에 있다고 디스플레이에 표시할 수 있다.
종래의 통화 관련 어플리케이션과는 달리, 클라이언트는 사용자의 개인 정보의 입력 없이 사용자에게 통화와 같은 통신 서비스를 제공할 수 있다. 또한, 클라이언트는 사용자의 개인 정보를 이용한 사용자 인증 절차 없이 사용자에게 통화 서비스를 제공할 수 있다. 또한, 전화 번호가 있어야 통화를 할 수 있었던 기존의 통신 서비스와 달리, 클라이언트에 식별자가 할당되면, 사용자는 클라이언트를 통해 상대방과 통화를 하거나 또는 메시지를 주고 받을 수 있다. 여기서, 통화 패킷 등은 클라이언트와 다른 클라이언트 사이에 설정된 통신 세션(P2P 통신 세션)을 통해 송수신될 수 있다.
식별자가 할당되지 않은 경우, 클라이언트는 서버와 식별자 할당을 위한 프로세스를 수행한다(140). 또한, 도 1에 도시되지 않았으나, 클라이언트는 식별자를 할당 받은 후 클라이언트 인증을 위한 프로세스를 수행할 수 있다. 이하, 도 2를 참조하면서 식별자 할당 및 클라이언트 인증을 위한 프로세스를 설명한다.
<식별자 할당 및 클라이언트 인증>
도 2는 일 실시예에 따른 식별자 할당 및 클라이언트 인증을 위한 프로세스의 일례를 설명하기 위한 흐름도이다.
도 2를 참조하면, 클라이언트는 서버로 공개키(public key) 요청 데이터를 전송한다(211). 서버는 공개키를 발급한다(221). 공개키의 사이즈는, 예를 들어, 64 바이트, 즉, 512 비트일 수 있다. 서버는 클라이언트로 공개키를 전송한다(222).
클라이언트는 공개키를 저장하고, 개인키(private key)를 생성한다(212). 개인키의 사이즈는, 예를 들어, 64 바이트일 수 있다. 클라이언트는 개인키를 서버로 전송한다(213). 클라이언트는 공개키를 이용하여 개인키를 암호화할 수 있고, 암호화된 개인키를 서버로 전송할 수 있다. 서버는 공개키를 가지고 있으므로, 공개키를 이용하여 암호화된 개인키를 복호(decryption)할 수 있다.
서버는 공개키 및 개인키를 키-페어(key pair)로 맵핑한다(223). 서버는 매핑된 키-페어를 서버에 저장한다(224). 서버는 키-페어의 생성을 나타내는 메시지를 클라이언트에게 전송한다(225). 서버는 개인키를 이용하여 메시지를 암호화할 수 있다.
클라이언트는 메시지를 통해 키-페어의 생성을 확인할 수 있다. 이에 따라, 클라이언트는 개인키 및 공개키를 키-페어로 맵핑하고, 키-페어를 저장한다(214).
도 2에 도시된 예의 경우, 키-페어는 클라이언트 및 서버에 저장된다. 그러나, 키-페어가 저장되는 곳은 일 실시예에 따른 예시적인 사항일 뿐, 키-페어가 저장되는 곳은 전술한 사항으로 한정되지 않는다. 예를 들어, 키-페어는 클라이언트 및 서버 중 어느 하나에 저장될 수 있다.
클라이언트는 식별자 생성 요청 데이터를 서버로 전송한다(215). 식별자 생성 요청 데이터는 개인키를 이용하여 암호화될 수 있다. 또한, 클라이언트는 식별자 생성 요청 데이터와 함께 고유 정보를 서버로 전송할 수 있다. 구현에 따라, 고유 정보는 식별자 생성 요청 데이터에 포함될 수 있다.
고유 정보는, 예를 들어, 클라이언트의 물리적 장치 또는 운영체제(Operating System, OS)에 대응하는 장치 고유키 및 클라이언트에 대응하는 제조키 중 적어도 하나를 포함할 수 있다.
클라이언트의 물리적 장치는, 예를 들어, CPU 및 MPU(Micro Processor Unit) 중 적어도 하나를 포함할 수 있다. 장치 고유키는 CPU의 식별 정보 또는 MPU의 식별 정보로부터 획득될 수 있다. 클라이언트의 운영체제는 다른 운영체제와 구별되게 하는 고유 정보를 가질 수 있다. 이로 인해, 클라이언트는 운영체제의 고유 정보로부터 장치 고유키를 획득할 수 있다.
제조키는 사이트키, 제조사키, 및 제품키를 포함할 수 있다. 사이트키는 사이트 정보에 대응한다. 사이트 정보는, 예를 들어, 사이트 IP 주소를 기초로 하는 정보를 나타낼 수 있다. 제조사키는 제조사 정보에 대응한다. 제조사 정보는, 예를 들어, 클라이언트를 만든 제조사의 식별 정보를 나타낼 수 있다. 제품키는 클라이언트의 버전 정보에 대응한다.
장치 고유키 및 제조키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 장치 고유키의 사이즈는 128 비트이고, 제조키의 사이즈는 208 비트일 수 있다. 마찬가지로, 사이트키, 제조사키, 및 제품키는 미리 정해진 사이즈를 가질 수 있다. 예를 들어, 사이트키의 사이즈는 80비트일 수 있고, 제조사키의 사이즈는 64비트일 수 있으며, 제품키의 사이즈는 64비트일 수 있다.
제조키는 사이트키, 제조사키, 및 제품키의 순서대로 구성될 수 있다. 사이트키, 제조사키, 및 제품키의 순서는 예시적인 사항일 뿐, 사이트키, 제조사키, 및 제품키의 순서는 전술한 사항으로 한정되지 않는다.
서버는 식별자 생성 요청 데이터를 수신한 경우, 보안키 및 식별자를 생성한다(226). 일 실시예에 있어서, 서버는 클라이언트의 고유 정보에 대응하는 보안키를 생성할 수 있다. 예를 들어, 서버가 클라이언트로부터 장치 고유키 및 제조키를 수신한 경우, 서버는 장치 고유키 및 제조키를 변형하여 보안키를 생성할 수 있다. 서버는 128 비트의 장치 고유키 및 208 비트의 제조키를 기초로 256 비트의 보안키를 생성할 수 있다. 후술하겠지만, 클라이언트가 인증되는 경우, 클라이언트는 다른 클라이언트와 통신 세션을 설정하여 통신할 수 있다. 보안 통신을 위해 클라이언트는 보안키를 이용하여 패킷을 암호화할 수 있다. 즉, 보안키는 통신 세션을 통해 교환되는 패킷을 암호화하는데 사용될 수 있다.
서버는 식별자를 랜덤하게 생성할 수 있고, 클라이언트에 할당할 수 있다. 식별자는 n개의 구별 정보를 기초로 한 n자리의 랜덤 값(n^n) 중 어느 하나일 수 있다. 예를 들어, 1 바이트의 구별 정보가 64개인 경우, 식별자는 64자리를 갖는 64^64개의 랜덤 값 중에서 어느 하나일 수 있다. 서버는 64개의 구별 정보를 랜덤하게 배열하여 식별자를 생성할 수 있다. 서버는 식별자가 다른 식별자와 중복되는지 확인할 수 있고, 중복되지 않는 경우, 식별자를 클라이언트에 할당할 수 있다. 이로 인해, 식별자는 클라이언트마다 유니크(unique)할 수 있다.
식별자에는 해시 인덱스(Hash index)가 임베디드(embedded)될 수 있다. 해시 인덱스의 사이즈는, 예를 들어, 64 비트일 수 있다. 서버는 변환 로직을 이용하여 식별자에 해시 인덱스를 임베디드할 수 있다. 예를 들어, 식별자의 사이즈가 64 바이트라 하자. 서버는 첫 번째 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 경우에 따라, 특정 비트에 변환 로직이 적용되어도 특정 비트는 다른 비트로 변경되지 않을 수 있다. 특정 비트가 제1 논리값을 갖는 경우, 특정 비트는 변환 로직에 의해 제2 논리값으로 변경되거나 제1 논리값을 유지할 수 있다. 특정 비트는, 예를 들어, 1개일 수 있다. 서버는 나머지 바이트 내에 포함된 특정 비트에 변환 로직을 적용할 수 있다. 이로 인해, 식별자의 스트링(string) 중 일부는 변경될 수 있고, 해시 인덱스가 식별자에 임베디드될 수 있다. 예를 들어, 식별자가 ABCD의 스트링인 경우, ABCD는 변환 로직에 의해 AZDD가 될 수 있고, AZDD에 해시 인덱스가 임베디드될 수 있다.
서버가 식별자 및 보안키를 생성한 경우, 서버는 식별자 및 보안키를 클라이언트로 전송한다(227). 식별자 및 보안키는 개인키를 이용하여 암호화될 수 있다.
클라이언트는 개인키를 이용하여 식별자 및 보안키를 복호할 수 있다.
클라이언트는 식별자 및 보안키를 메모리에 저장할 수 있다(216).
여기까지, 식별자 할당을 위한 프로세스이다. 클라이언트는 식별자 기반의 통신을 할 수 있도록 인증 프로세스를 서버와 수행할 수 있다. 이하, 인증 프로세스를 설명한다.
클라이언트는 인증 요청 데이터를 서버로 전송한다(217). 또한, 클라이언트는 인증 요청 데이터와 함께 식별자 및 보안키를 서버로 전송할 수 있다. 인증 요청 데이터, 식별자, 및 보안키는 개인키를 이용하여 암호화될 수 있다. 구현에 따라, 식별자 및 보안키는 인증 요청 데이터에 포함될 수 있다.
서버는 클라이언트로부터 수신된 식별자 및 보안키를 확인할 수 있다. 보다 구체적으로, 서버는 클라이언트로부터 수신된 식별자 및 보안키가 단계(226)에서 생성된 식별자 및 보안키와 동일한지 여부를 확인할 수 있다.
서버는 클라이언트로부터 수신된 식별자 및 보안키를 기초로 클라이언트를 인증하고(228), 인증 결과 데이터를 클라이언트로 전송한다(229). 인증 결과 데이터는 개인키를 이용하여 암호화될 수 있다. 클라이언트가 인증되는 경우, 위에서 설명한 서버에 접속할 수 있고, 통신 서비스가 가능할 수 있다.
일 실시예에 따르면, 식별자는 클라이언트에 할당된 고유 정보이므로, 클라이언트가 단말에서 삭제되고, 단말에 새로운 클라이언트가 인스톨되는 경우, 새로운 클라이언트는 클라이언트의 식별자를 자신의 식별자로서 이용할 수 없다. 이에 따라, 새로운 클라이언트는 서버와 도 2의 식별자 할당 프로세스를 수행하여 자신의 식별자를 할당 받고, 서버와 인증 프로세스를 수행할 수 있다.
<연락처 추가>
도 3은 일 실시예에 따른 연락처 추가의 일례를 설명하기 위한 흐름도이다.
도 3을 참조하면, 클라이언트 A는 연락처를 추가하기 위한 연락처 요청 데이터 및 식별자 A를 서버로 전송한다(310). 식별자 A는 클라이언트 A에 할당된 식별자이다. 구현에 따라, 식별자 A는 연락처 요청 데이터에 포함되어 서버로 전송될 수 있다.
서버는 연락처 요청 데이터에 대응하여 키를 생성한다(311). 또한, 서버는 키와 식별자 A를 맵핑한다(312). 서버는 식별자 A를 키와 맵핑하여 저장할 수 있다. 서버는 키를 클라이언트 A로 전송한다(313).
클라이언트 A가 키를 수신하는 경우, 클라이언트 A는 클라이언트 B가 키를 획득하도록 키 전달 프로세스를 수행한다(314). 예를 들어, 클라이언트 A는 키를 인코딩하여 키에 대응하는 시각적 코드를 생성할 수 있고, 시각적 코드를 디스플레이에 표시할 수 있다. 시각적 코드는 클라이언트 B가 광학적 수단(예를 들어, 카메라)을 통해 정보를 얻을 수 있는 형태의 코드로, 예를 들어, 1D 바코드, 2D 바코드, 및/또는 3D 바코드일 수 있다. 2D 바코드는 QR(Quick Response) 코드, 데이터매트릭스 코드(DataMatrix code), 맥시 코드(Maxi Code) 등을 포함할 수 있다. 다른 일례로, 클라이언트 A는 서버를 통해 시각적 코드를 클라이언트 B로 전송할 수 있다.
클라이언트 B는 키 전달 프로세스를 통해 키를 획득한다(315). 예를 들어, 클라이언트 B는 클라이언트 A의 디스플레이에 표시된 시각적 코드를 캡쳐할 수 있고, 시각적 코드를 디코딩하여 키를 획득할 수 있다.
클라이언트 B는 키 및 식별자 B를 서버로 전송한다(316). 여기서, 식별자 B는 클라이언트 B에 할당된 식별자이다.
서버는 키와 맵핑되는 식별자를 검색한다(317). 도 3에 도시된 예에서, 식별자 A가 키와 맵핑되어 있으므로, 검색 결과에 식별자 A가 포함된다.
서버는 키가 유효한지 확인한다(318). 예를 들어, 서버는 키의 사용 가능 횟수를 기초로 키가 유효한지 확인할 수 있다.
일 실시예에 따르면, 키의 사용 가능 횟수는 클라이언트 A의 사용자에 의해 설정될 수 있다. 키의 사용 가능 횟수가 1로 설정된 경우, 해당 키는 1회성이다. 즉, 서버는 연락처 요청 데이터를 수신할 때마다 키를 생성한다. 이는, 보안 정도가 높음을 의미한다. 키의 사용 가능 횟수가 복수 회 설정된 경우, 해당 키는 클라이언트 A의 다른 요청이 없는 한 복수 회 사용된다. 이 경우, 서버는 클라이언트 A의 최초 연락처 요청 데이터를 수신할 때 키를 생성할 수 있고, 이후 연락처 요청 데이터를 수신할 때는 키를 생성하지 않을 수 있다. 또한, 키의 사용 가능 횟수는 무제한으로 설정될 수 있다. 이 경우, 클라이언트 A의 다른 요청이 없는 한 키는 영구적으로 사용된다. 이는, 보안 정도가 매우 낮음을 의미한다.
단계(318)에서, 키의 사용 가능 횟수가 0이면, 키는 유효하지 않다. 이는, 클라이언트 A가 사용 가능 횟수를 초과하여 연락처 요청 데이터를 전송한 것을 의미한다. 이 경우, 서버는 식별자 A를 클라이언트 B로 전송할 수 없음을 나타내는 실패 메시지를 클라이언트 B로 전송한다(319). 도 3에 도시되지 않았으나, 서버는 클라이언트 A에게 단계(310)을 다시 수행하라는 메시지를 전송할 수 있다. 클라이언트 A는 메시지에 따라 연락처 요청 데이터 및 식별자 A를 서버로 다시 전송할 수 있고, 서버는 키를 생성할 수 있다.
단계(318)에서, 키의 사용 가능 횟수가 0이 아니면, 키는 유효하다. 이 경우, 서버는 키의 사용 가능 횟수를 업데이트한다(320). 예를 들어, 서버는 사용 가능 횟수에서 1을 차감할 수 있다.
서버는 클라이언트 A 및 클라이언트 B의 연락처를 관리할 수 있다. 예를 들어, 서버는 키가 유효한 경우, 식별자 B를 클라이언트 A로 전송하고(321), 식별자 A를 클라이언트 B로 전송한다(322). 또한, 서버는 클라이언트 A 및 클라이언트 B 사이의 친구 연결을 기록할 수 있다. 달리 표현하면, 서버는 식별자 A 및 식별자 B 사이의 친구 연결을 기록할 수 있다.
클라이언트 A는 식별자 B를 수신하는 경우, 연락처 레지스트리에 식별자 B를 등록한다(323).
클라이언트 B는 식별자 A를 수신하는 경우, 연락처 레지스트리에 식별자 A를 등록한다(324).
도 4는 일 실시예에 따른 연락처 추가의 다른 일례를 설명하기 위한 흐름도이다.
식별자 B 및 식별자 C가 클라이언트 A의 연락처 레지스트리에 등록되어 있고, 식별자 B는 클라이언트 C의 연락처 레지스트리에 등록되어 있지 않으며, 식별자 C는 클라이언트 B의 연락처 레지스트리에 등록되어 있지 않다고 하자. 즉, 클라이언트 A는 클라이언트 B 및 C 각각과 친구로 연결되어 있고, 클라이언트 B 및 C는 서로 친구로 연결되어 있지 않다. 이 경우, 클라이언트 A는 클라이언트 B 및 C가 친구로 연결되도록 할 수 있다.
클라이언트 A는 연락처 목록에서 식별자 B를 선택할 수 있고, 식별자 B를 수신할 클라이언트 C를 선택할 수 있다. 또한, 클라이언트 A는 서버로 전송할 메시지를 생성할 수 있다. 여기서, 메시지는 클라이언트 A, B, 및 C 각각의 사용자의 이름을 포함할 수 있다. 이하, 도 4를 참조하면서, 연락처 추가의 다른 일례를 설명한다.
도 4를 참조하면, 클라이언트 A는 식별자 B가 클라이언트로 C로 전송되기 위한 친구 연결 요청 데이터를 서버로 전송한다(410). 달리 표현하면, 친구 연결 요청 데이터는 클라이언트 B와 클라이언트 C 사이의 친구 연결을 위한 클라이언트 A의 요청 데이터일 수 있다. 친구 연결 요청 데이터는 클라이언트 A가 생성한 메시지를 포함할 수 있다.
클라이언트 A는 친구 연결 요청 데이터와 함께 식별자 A, 식별자 B, 및 식별자 C를 서버로 전송할 수 있다. 구현에 따라, 식별자 A, 식별자 B, 및 식별자 C는 친구 연결 요청 데이터에 포함되어 서버로 전송될 수 있다.
서버는 친구 연결 요청 데이터를 클라이언트 B로 전송한다(411).
클라이언트 B는 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 서버로 전송한다(412). 응답 데이터는, 예를 들어, 클라이언트 B의 승인 입력 또는 거절 입력을 포함할 수 있다. 승인 입력은 식별자 B의 전송(여기서, 식별자 B의 수신 대상은 클라이언트 C임)에 대한 승인을 나타낼 수 있고, 거절 입력은 식별자 B의 전송에 대한 거절을 나타낼 수 있다. 달리 표현하면, 승인 입력은 클라이언트 B가 클라이언트 C와 친구 연결되는 것을 승인한 것을 나타낼 수 있고, 거절 입력은 클라이언트 B가 클라이언트 C와 친구 연결되는 것을 거절한 것을 나타낼 수 있다.
서버는 응답 데이터를 이용하여 클라이언트 B가 친구 연결 요청 데이터를 승인했는지 여부를 확인한다(413). 여기서, 클라이언트 B가 친구 연결 요청 데이터를 승인하지 않은 경우, 서버는 친구 연결 요청 데이터에 대한 거절 메시지를 클라이언트 A로 전송한다(414).
클라이언트 B가 친구 연결 요청 데이터를 승인한 경우, 서버는 친구 연결 요청 데이터를 클라이언트 C로 전송한다(415).
클라이언트 C는 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 서버로 전송한다(416). 응답 데이터는, 예를 들어, 클라이언트 C의 승인 입력 또는 거절 입력을 포함할 수 있다. 승인 입력은 식별자 C의 전송(여기서, 식별자 C의 수신 대상은 클라이언트 B임)에 대한 승인을 나타낼 수 있고, 거절 입력은 식별자 C의 전송에 대한 거절을 나타낼 수 있다. 달리 표현하면, 승인 입력은 클라이언트 C가 클라이언트 B와 친구 연결되는 것을 승인한 것을 나타낼 수 있고, 거절 입력은 클라이언트 C가 클라이언트 B와 친구 연결되는 것을 거절한 것을 나타낼 수 있다.
서버는 응답 데이터를 이용하여 클라이언트 C가 친구 연결 요청 데이터를 승인했는지 여부를 확인한다(417). 여기서, 클라이언트 C가 친구 연결 요청 데이터를 승인하지 않은 경우, 서버는 친구 연결 요청 데이터에 대한 거절 메시지를 클라이언트 A로 전송한다(418).
클라이언트 C가 친구 연결 요청 데이터를 승인한 경우, 서버는 클라이언트 B 및 C의 연락처를 관리할 수 있다. 예를 들어, 서버는 식별자 C를 클라이언트 B로 전송할 수 있고(419), 식별자 B를 클라이언트 C로 전송할 수 있다(420). 또한, 서버는 클라이언트 B 및 클라이언트 C 사이의 친구 연결을 기록할 수 있다.
클라이언트 B는 자신의 연락처 레지스트리에 식별자 C를 등록하고(421), 클라이언트 C는 자신의 연락처 레지스트리에 식별자 B를 등록한다(422).
도 4의 예의 경우, 단계(415)는 단계(413)의 결과에 의존한다. 즉, 도 4의 예의 경우, 서버가 클라이언트 C로 친구 연결 요청 데이터를 전송하는 것은 클라이언트 B가 친구 연결 요청 데이터를 승인하였는지에 의존한다. 이는, 일 실시예에 따른 예시적인 사항일 뿐, 단계(415)는 단계(413)의 결과에 의존하지 않고 수행될 수 있다. 예를 들어, 서버는 친구 연결 요청 데이터를 동시에 클라이언트 B 및 C에게 전송할 수 있다. 여기서, 서버는 둘 중 어느 하나로부터 거절 입력을 포함하는 응답 메시지를 수신하면, 클라이언트 B 및 C를 친구 연결하지 않을 수 있다. 클라이언트 B 및 C가 친구 연결 요청 데이터를 승인한 경우, 서버는 식별자 C를 클라이언트 B로 전송하고, 식별자 B를 클라이언트 C로 전송할 수 있다.
<연락처 디스에이블>
도 5는 일 실시예에 따른 연락처 디스에이블의 일례를 설명하기 위한 흐름도이다.
도 5를 참조하면, 클라이언트 A의 연락처 레지스트리에서 식별자 B가 삭제된 경우, 클라이언트 A는 디스에이블 요청 데이터를 서버로 전송한다(510). 여기서, 디스에이블 요청 데이터는 클라이언트 B의 연락처 레지스트리에 등록된 식별자 A에 대한 통신 연결(예를 들어, P2P 통신 연결)을 디스에이블하기 위한 데이터이다. 또한, 클라이언트 A는 디스에이블 요청 데이터와 함께 식별자 A 및 식별자 B를 서버로 전송할 수 있다. 구현에 따라, 식별자 A 및 식별자 B는 디스에이블 요청 데이터에 포함되어 서버로 전송될 수 있다.
서버는 디스에이블 요청 데이터를 수신하는 경우, 클라이언트 A와 클라이언트 B 사이의 친구 연결에 대한 기록을 삭제할 수 있다.
또한, 서버는 디스에이블 요청 데이터에 대응하는 식별자 제어 명령을 생성한다(511). 식별자 제어 명령은, 예를 들어, 식별자 A를 삭제하기 위한 제1 명령어, 식별자 A가 시각적으로 표시되지 않기 위한 제2 명령어, 및 클라이언트 A와 클라이언트 B 사이의 통신(예를 들어, P2P 통신)이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함할 수 있다.
서버는 식별자 제어 명령을 클라이언트 B로 전송한다(512).
클라이언트 B는 식별자 제어 명령에 따라 식별자 A를 제어한다(513). 예를 들어, 클라이언트 B는 제1 명령어에 따라 연락처 레지스트리에서 식별자 A를 삭제한다. 다른 일례로, 클라이언트 B는 제2 명령어에 따라 식별자 A를 표시하지 않는다. 이 경우, 연락처 목록에서 다른 식별자는 표시되나 식별자 A가 표시되지 않는다. 또 다른 일례로, 클라이언트 B는 제3 명령어에 따라 식별자 A의 상태 정보를 오프라인 상태로 정의할 수 있다. 이 경우, 클라이언트 A가 서버에 접속하여 온라인 상태에 있더라도, 클라이언트 B는 클라이언트 A가 오프라인 상태에 있다고 디스플레이에 표시할 수 있다. 연락처 목록에 식별자 A가 표시되나 오프라인 상태로 표시될 수 있다.
<연락처 백업(back up)>
도 6은 일 실시예에 따른 연락처 백업의 일례를 설명하기 위한 흐름도이다.
도 6을 참조하면, 클라이언트 A는 연락처 저장 요청 데이터를 서버로 전송한다(610). 여기서, 연락처 저장 요청 데이터는 클라이언트 A의 연락처 레지스트리에 등록된 적어도 하나의 식별자를 포함하는 연락처 데이터를 백업하기 위한 요청 데이터이다.
서버는 연락처 저장 요청 데이터에 대응하여 식별 코드 및 암호키를 생성한다(620). 서버는 식별 코드 및 암호키를 클라이언트 A로 전송한다(630).
클라이언트 A는 단말의 메모리에 식별 코드 및 암호키를 저장할 수 있다. 또한, 클라이언트 A는 식별 코드 및 암호키를 물리적 저장 장치에 저장할 수 있다. 물리적 저장 장치는, 예를 들어, 도 8의 보안 통화 동글을 포함할 수 있다. 또한, 클라이언트 A는 식별 코드 및 암호키 각각을 서로 다른 저장 장치에 저장할 수 있다. 예를 들어, 클라이언트 A는 식별 코드를 메모리에 저장하고, 암호키를 보안 통화 동글에 저장할 수 있다.
클라이언트 A는 암호키를 이용하여 연락처 데이터를 암호화할 수 있다(640).
클라이언트 A는 암호화된 연락처 데이터를 서버로 전송한다(650).
서버는 암호화된 연락처 데이터를 식별 코드와 맵핑하여 저장할 수 있다(660). 시스템 정책에 따라 서버는 암호키를 저장하지 않을 수 있다. 이로 인해, 서버가 해킹되어 암호화된 연락처 데이터가 유출되어도, 암호화된 연락처 데이터를 복호할 수 있는 암호키는 유출되지 않아 연락처 데이터는 안전할 수 있다.
<연락처 복원>
도 7은 일 실시예에 따른 연락처 복원의 일례를 설명하기 위한 흐름도이다.
도 6의 클라이언트 A가 단말에서 삭제될 수 있다. 이 경우, 클라이언트 A의 연락처 데이터는 삭제되지만, 식별 코드 및 암호키는 삭제되지 않을 수 있다. 이후, 새로운 클라이언트인 클라이언트 D가 단말에 설치될 수 있다. 여기서, 클라이언트 D의 식별자는 할당되지 않았으므로, 클라이언트 D는 위에서 설명한 도 2의 식별자 할당 프로세스 및 인증 프로세서를 서버와 수행할 수 있다.
단말의 사용자는 클라이언트 D를 통해 연락처를 복원할 수 있다. 이하, 도 7을 참조하면서 연락처 복원을 설명한다.
도 7을 참조하면, 클라이언트 D는 연락처 복원 요청 데이터를 서버로 전송한다(710). 여기서, 클라이언트 D는 연락처 복원 요청 데이터와 함께 식별 코드를 서버로 전송할 수 있다. 구현에 따라, 식별 코드는 연락처 복원 요청 데이터에 포함되어 서버로 전송될 수 있다.
서버는 식별 코드와 맵핑되는 연락처 데이터를 검색한다(720). 도 6의 클라이언트 A의 연락처 데이터가 식별 코드와 맵핑되므로, 검색 결과에 클라이언트 A의 연락처 데이터가 포함될 수 있다.
서버는 검색된 연락처 데이터를 클라이언트 D로 전송한다(730).
클라이언트 D는 암호키를 이용하여 연락처 데이터를 복호화할 수 있다(740).
클라이언트 D는 연락처 데이터를 저장한다(750). 이에 따라, 클라이언트 A가 삭제되어도 클라이언트 A의 연락처 데이터는 복원될 수 있다.
도 7에 도시되지 않았으나, 서버에는 클라이언트 D의 연락처에 대한 기록이 없다. 클라이언트 D는 연락처 등록 요청을 서버로 전송할 수 있다. 이 경우, 서버는 식별자 D를 식별자 A와 동일한 것으로 간주하여 연락처 등록 요청을 처리할 수 있다.
도 8은 일 실시예에 따른 보안 통화 동글의 일례를 설명하기 위한 도면이다.
도 8을 참조하면, 단말(800) 및 보안 통화 동글(810)의 일례가 도시된다.
보안 통화 동글(810)은 단말(800)의 입출력 인터페이스에 착탈 가능한 형태로 설계될 수 있다. 이러한 입출력 인터페이스는, 마이크로 USB 포트, Apple®의 라이트닝 포트 등이 있다. 또한, 보안 통화 동글(800)은 향후 개발되는 다양한 입출력 인터페이스에 호환되도록 설계될 수 있다.
보안 통화 동글(810)과 단말(800)은 물리적 접촉없이 근거리 무선 통신을 통해 연결될 수 있다. 근거리 무선 통신의 예로는 블루투스, NFC, 또는 Wi-Fi 등이 있다. 근거리 무선 통신은 전술한 예로 한정되지 않는다.
보안 통화 동글(810)은 일정 용량의 메모리를 포함할 수 있다. 메모리에는 클라이언트, 클라이언트의 연락처 레지스트리, 통화 기록, 또는 메시징 이력 중 적어도 하나 또는 이들의 조합이 저장될 수 있다.
보안 통화 동글(810)은 일정 용량의 배터리를 포함할 수 있다. 단말(800)의 배터리가 부족한 경우, 보안 통화 동글(810)은 일정 시간 이상의 통화가 가능할 정도의 전력을 단말(800)로 공급할 수 있다.
보안 통화 동글(810)이 단말(800)과 연결된 경우, 클라이언트가 디스플레이에 시각적으로 표시될 수 있다. 다른 일례로, 보안 통화 동글(810)이 단말(800)과 연결된 경우, 클라이언트가 실행될 수 있다.
보안 통화 동글(810)이 단말(800)과 연결된 경우, 도 3의 연락처 추가 기능이 실행될 수 있다.
식별자가 저장된 메모리를 포함하는 보안 통화 동글(810)이 배포될 수 있다. 단말(800)에 클라이언트가 설치되고, 보안 통화 동글(810)이 단말(800)에 연결되는 경우, 보안 통화에 필요한 식별자가 클라이언트에 할당될 수 있다.
도 9는 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.
도 9의 클라이언트는 도 3 내지 도 7의 클라이언트 A와 대응할 수 있다. 하지만, 도 9의 클라이언트가 이에 제한되는 것은 아니다.
도 9를 참조하면, 클라이언트는 연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 통신 인터페이스를 통해 서버로 전송한다(910).
클라이언트는 연락처 요청 데이터에 대응하여 생성된 키를 서버로부터 통신 인터페이스를 통해 수신한다(920). 여기서, 키는 클라이언트의 식별자와 맵핑된다.
클라이언트는 상대 클라이언트가 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행한다(930). 상대 클라이언트가 키를 획득한 경우, 상대 클라이언트는 키 및 자신의 식별자를 서버로 전송한다.
클라이언트는 서버로부터 상대 클라이언트의 식별자를 통신 인터페이스를 통해 수신한다(940).
클라이언트는 상대 클라이언트의 식별자를 연락처 레지스트리에 등록한다(950).
도 1 내지 도 8을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 10은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.
도 10을 참조하면, 클라이언트는 상대 클라이언트의 식별자와 맵핑되는 키를 획득한다(1010).
클라이언트는 키 및 클라이언트의 식별자를 통신 인터페이스를 통해 서버로 전송한다(1020).
클라이언트는 서버로부터 통신 인터페이스를 통해 상대 클라이언트의 식별자를 수신한다(1030).
클라이언트는 상대 클라이언트의 식별자를 연락처 레지스트리에 등록한다(1040).
도 1 내지 도 8을 통해 기술된 사항들은 도 10을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 11은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.
도 11을 참조하면, 서버는 연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 클라이언트로부터 수신한다(1110).
서버는 연락처 요청 데이터에 대응하여 키를 생성하고, 키를 상기 클라이언트의 식별자와 맵핑한다(1120).
서버는 키를 상기 클라이언트로 전송한다(1130).
서버는 클라이언트의 미리 정해진 키 전달 프로세스를 통해 키를 획득한 상대 클라이언트로부터, 키 및 상대 클라이언트의 식별자를 수신한다(1140)
서버는 키와 맵핑되는 식별자를 검색한다(1150).
서버는 검색 결과를 기초로, 클라이언트 및 상대 클라이언트의 연락처를 관리한다(1160).
도 1 내지 도 8을 통해 기술된 사항들은 도 11을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 12는 일 실시예에 따른 클라이언트 장치의 일례를 설명하기 위한 도면이다.
도 12을 참조하면, 클라이언트 장치(1200)는 컨트롤러(1210) 및 통신 인터페이스(1220)를 포함한다.
통신 인터페이스(1220)는 서버와 통신한다. 예를 들어, 통신 인터페이스는 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 등이 가능한 인터페이스를 포함할 수 있다.
컨트롤러(1210)는 연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 통신 인터페이스(1220)를 통해 서버로 전송한다. 여기서, 클라이언트는 클라이언트 장치(1200)에 저장된 통신 어플리케이션을 나타낼 수 있다.
컨트롤러(1210)는 연락처 요청 데이터에 대응하여 생성된 키를 통신 인터페이스(1220)를 통해 서버로부터 수신한다.
컨트롤러(1210)는 상대 클라이언트가 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행한다.
컨트롤러(1210)는 서버로부터 상대 클라이언트의 식별자를 통신 인터페이스(1212)를 통해 수신한다.
컨트롤러(1210)는 상대 클라이언트의 식별자를 연락처 레지스트리에 등록하한다.
도 1 내지 도 8을 통해 기술된 사항들은 도 12를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 13은 일 실시예에 따른 클라이언트 장치의 다른 일례를 설명하기 위한 블록도이다.
도 13을 참조하면, 클라이언트 장치(1300)는 컨트롤러(1310) 및 통신 인터페이스(1320)를 포함한다.
통신 인터페이스(1320)는 서버와 통신한다. 통신 인터페이스의 종류는 도 12를 통해 설명하였으므로, 자세한 설명을 생략한다.
컨트롤러(1310)는 상대 클라이언트의 식별자와 맵핑되는 키를 획득한다.
컨트롤러(1310)는 키 및 클라이언트의 식별자를 통신 인터페이스(1320)를 통해 서버로 전송한다.
컨트롤러(1310)는 서버로부터 상대 클라이언트의 식별자를 통신 인터페이스(1320)를 통해 수신한다.
컨트롤러(1310)는 상대 클라이언트의 식별자를 연락처 레지스트리에 등록한다.
도 1 내지 도 8을 통해 기술된 사항들은 도 13을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 14는 일 실시예에 따른 서버의 일례를 설명하기 위한 블록도이다.
도 14를 참조하면, 서버(1400)는 통신 인터페이스(1410) 및 컨트롤러(1420)를 포함한다.
통신 인터페이스(1410)는 클라이언트 및 상대 클라이언트와 통신한다.
컨트롤러(1420)는 연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 통신 인터페이스(1410)를 통해 클라이언트로부터 수신한다.
컨트롤러(1420)는 연락처 요청 데이터에 대응하여 키를 생성하고, 키를 상기 클라이언트의 식별자와 맵핑한다.
컨트롤러(1420)는 키를 통신 인터페이스(1410)를 통해 클라이언트로 전송한다. 상대 클라이언트는 클라이언트의 미리 정해진 키 전달 프로세스를 통해 키를 획득한다.
컨트롤러(1420)는 상대 클라이언트로부터 키 및 상대 클라이언트의 식별자를 통신 인터페이스(1410)를 통해 수신한다.
컨트롤러(1420)는 키와 맵핑되는 식별자를 검색하고, 검색 결과를 기초로, 클라이언트 및 상대 클라이언트의 연락처를 관리한다.
도 1 내지 도 8을 통해 기술된 사항들은 도 14를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (27)

  1. 클라이언트의 동작 방법에 있어서,
    연락처를 추가하기 위한 연락처 요청 데이터 및 상기 클라이언트의 식별자를 서버로 전송하는 단계;
    상기 연락처 요청 데이터에 대응하여 생성된 키를 상기 서버로부터 수신하는 단계 - 상기 키는 상기 클라이언트의 식별자와 맵핑됨 -;
    상대 클라이언트가 상기 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행하는 단계;
    상기 서버로부터, 상기 상대 클라이언트의 식별자를 수신하는 단계; 및
    상기 상대 클라이언트의 식별자를 연락처 레지스트리(registry)에 등록하는 단계
    를 포함하고,
    상기 서버는 상기 상대 클라이언트로부터 상기 상대 클라이언트의 식별자 및 상기 키를 수신하고, 상기 상대 클라이언트의 식별자를 상기 클라이언트로 전송하는,
    클라이언트의 동작 방법.
  2. 제1항에 있어서,
    상기 미리 정해진 키 전달 프로세스를 수행하는 단계는,
    상기 키에 대응하는 시각적 코드를 생성하여 표시하는 단계
    를 포함하는,
    클라이언트의 동작 방법.
  3. 제1항에 있어서,
    상기 클라이언트의 식별자, 상기 상대 클라이언트의 식별자, 제3자의 식별자, 및 상기 상대 클라이언트와 상기 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 서버로 전송하는 단계
    를 더 포함하는,
    클라이언트의 동작 방법.
  4. 제3항에 있어서,
    상기 친구 연결 요청 데이터는, 상기 상대 클라이언트 및 상기 제3자로 전송되고,
    상기 상대 클라이언트 및 상기 제3자가 상기 친구 연결 요청 데이터에 대한 승인 입력을 한 경우, 상기 상대 클라이언트의 식별자는 상기 제3자로 전송되고, 상기 제3자의 식별자는 상기 상대 클라이언트로 전송되는,
    클라이언트의 동작 방법.
  5. 제1항에 있어서,
    상기 클라이언트와 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 서버로부터 수신하는 단계;
    상기 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 상기 서버로 전송하는 단계;
    상기 친구 연결 요청 데이터에 대한 승인 입력을 하고, 상기 제3자가 상기 친구 연결 요청 데이터에 대한 승인 입력을 한 경우, 상기 서버로부터 상기 제3자의 식별자를 수신하는 단계; 및
    상기 제3자의 식별자를 연락처 레지스트리에 등록하는 단계
    를 더 포함하는,
    클라이언트의 동작 방법.
  6. 제1항에 있어서,
    상기 상대 클라이언트의 식별자가 상기 연락처 레지스트리에서 삭제된 경우, 상기 상대 클라이언트의 연락처 레지스트리에 등록된 상기 클라이언트의 식별자에 대한 통신 연결을 디스에이블(disable)하기 위한 디스에이블 요청 데이터를 상기 서버로 전송하는 단계
    를 더 포함하는,
    클라이언트의 동작 방법.
  7. 제6항에 있어서,
    상기 서버는 상기 디스에이블 요청 데이터에 대응되는 식별자 제어 명령을 상기 상대 클라이언트로 전송하고,
    상기 식별자 제어 명령은 상기 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 클라이언트의 식별자가 시각적으로 표시되지 않기 위한 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함하는,
    클라이언트의 동작 방법.
  8. 제1항에 있어서,
    상기 서버로부터 상기 상대 클라이언트의 식별자를 제어하기 위한 식별자 제어 명령을 수신하는 단계
    를 더 포함하는,
    클라이언트의 동작 방법.
  9. 제8항에 있어서,
    상기 식별자 제어 명령은,
    상기 상대 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 상대 클라이언트의 식별자가 시각적으로 표시되지 않기 위한 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함하는,
    클라이언트의 동작 방법.
  10. 제1항에 있어서,
    상기 연락처 레지스트리에 등록된 적어도 하나의 식별자를 포함하는 연락처 데이터를 상기 서버에 백업하기 위한 연락처 저장 요청 데이터를 상기 서버로 전송하는 단계;
    상기 연락처 저장 요청 데이터에 대응하여 생성된 식별 코드 및 암호키를 상기 서버로부터 수신하는 단계;
    상기 암호키를 이용하여 연락처 데이터를 암호화하는 단계; 및
    상기 식별 코드 및 상기 암호키로 암호화된 연락처 데이터를 상기 서버로 전송하는 단계
    를 더 포함하고,
    상기 식별 코드 및 상기 암호화된 연락처 데이터는 상기 서버 내에서 맵핑되어 저장되는,
    클라이언트의 동작 방법.
  11. 제1항에 있어서,
    상기 상대 클라이언트의 업데이트된 상태 정보를 상기 서버로부터 수신하는 단계
    를 더 포함하고,
    상기 업데이트된 상태 정보는,
    상기 상대 클라이언트가 통신 세션을 통해 연결 가능함을 나타내는,
    클라이언트의 동작 방법.
  12. 클라이언트의 동작 방법에 있어서,
    상대 클라이언트의 식별자와 맵핑되는 키를 획득하는 단계;
    상기 키 및 상기 클라이언트의 식별자를 서버로 전송하는 단계;
    상기 서버로부터 상기 상대 클라이언트의 식별자를 수신하는 단계; 및
    상기 상대 클라이언트의 식별자를 연락처 레지스트리에 등록하는 단계
    를 포함하고,
    상기 키는,
    상기 상대 클라이언트가 연락처를 추가하기 위한 연락처 요청 데이터 및 상기 상대 클라이언트의 식별자를 서버로 전송한 경우, 상기 서버에 의해 생성되는,
    클라이언트의 동작 방법.
  13. 제12항에 있어서,
    상기 키를 획득하는 단계는,
    상기 상대 클라이언트에 의해 생성된 시각적 코드를 캡쳐하는 단계; 및
    상기 시각적 코드를 디코딩하여 상기 키를 획득하는 단계
    를 포함하는,
    클라이언트의 동작 방법.
  14. 서버의 동작 방법에 있어서,
    연락처를 추가하기 위한 연락처 요청 데이터 및 클라이언트의 식별자를 상기 클라이언트로부터 수신하는 단계;
    상기 연락처 요청 데이터에 대응하여 키를 생성하고, 상기 키를 상기 클라이언트의 식별자와 맵핑하는 단계;
    상기 키를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트의 미리 정해진 키 전달 프로세스를 통해 상기 키를 획득한 상대 클라이언트로부터, 상기 키 및 상기 상대 클라이언트의 식별자를 수신하는 단계;
    상기 키와 맵핑되는 식별자를 검색하는 단계; 및
    검색 결과를 기초로, 상기 클라이언트 및 상기 상대 클라이언트의 연락처를 관리하는 단계
    를 포함하는,
    서버의 동작 방법.
  15. 제14항에 있어서,
    상기 검색 결과에 상기 클라이언트의 식별자가 포함된 경우, 상기 키의 사용 가능 횟수를 기초로 상기 키가 유효한지 확인하는 단계
    를 더 포함하는,
    서버의 동작 방법.
  16. 제15항에 있어서,
    상기 키가 유효한 경우, 상기 키의 사용 가능 횟수를 업데이트하고, 상기 키가 유효하지 않은 경우, 상기 클라이언트의 식별자를 전달할 수 없음을 나타내는 메시지를 상기 상대 클라이언트로 전송하는 단계
    를 포함하는,
    서버의 동작 방법.
  17. 제14항에 있어서,
    상기 관리하는 단계는,
    상기 클라이언트의 식별자를 상기 상대 클라이언트로 전송하고, 상기 상대 클라이언트의 식별자를 상기 클라이언트로 전송하는 단계
    를 포함하는,
    서버의 동작 방법.
  18. 제14항에 있어서,
    상기 관리하는 단계는,
    상기 클라이언트와 상기 상대 클라이언트 사이의 친구 연결을 기록하는 단계
    를 포함하는,
    서버의 동작 방법.
  19. 제14항에 있어서,
    상기 클라이언트의 식별자, 상기 상대 클라이언트의 식별자, 제3자의 식별자, 및 상기 상대 클라이언트와 상기 제3자 사이의 친구 연결을 위한 친구 연결 요청 데이터를 상기 클라이언트로부터 수신하는 단계;
    상기 친구 연결 요청 데이터를 상기 제3자 및 상기 상대 클라이언트로 전송하는 단계;
    상기 친구 연결 요청 데이터에 대한 승인 여부를 나타내는 응답 데이터를 상기 제3자 및 상기 상대 클라이언트로부터 수신하는 단계; 및
    상기 응답 데이터를 기초로, 상기 제3자 및 상기 상대 클라이언트의 연락처를 관리하는 단계
    를 더 포함하는,
    서버의 동작 방법.
  20. 제14항에 있어서,
    상기 상대 클라이언트에 등록된 상기 클라이언트의 식별자에 대한 통신 연결을 디스에이블(disable)하기 위한 디스에이블 요청 데이터를 상기 클라이언트로부터 수신하는 단계;
    상기 디스에이블 요청 데이터에 대응하는 연락처 제어 명령을 생성하는 단계; 및
    상기 연락처 제어 명령을 상기 상대 클라이언트로 전송하는 단계
    를 더 포함하는,
    서버의 동작 방법.
  21. 제20항에 있어서,
    상기 연락처 제어 명령은,
    상기 클라이언트의 식별자를 삭제하기 위한 제1 명령어, 상기 상대 클라이언트가 상기 클라이언트의 식별자를 시각적으로 표시하지 않도록 하는 제2 명령어, 및 상기 클라이언트와 상기 상대 클라이언트 사이의 통신이 수행되지 않도록 하는 제3 명령어 중 적어도 하나를 포함하는,
    서버의 동작 방법.
  22. 제14항에 있어서,
    상기 클라이언트의 연락처 레지스트리에 등록된 적어도 하나의 식별자를 포함하는 연락처 데이터를 백업하기 위한 연락처 저장 요청 데이터를 상기 클라이언트로부터 수신하는 단계;
    상기 연락처 저장 요청 데이터에 대응하여 식별 코드 및 상기 연락처 데이터를 암호화하는데 사용되는 암호키를 생성하는 단계;
    상기 식별 코드 및 상기 암호키를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트로부터 상기 식별 코드 및 상기 암호키로 암호화된 연락처 데이터를 수신하는 단계; 및
    상기 식별 코드 및 상기 암호화된 연락처 데이터를 맵핑하여 저장하는 단계
    를 더 포함하는,
    서버의 동작 방법.
  23. 제22항에 있어서,
    상기 클라이언트와 다른 클라이언트로부터 상기 식별 코드 및 연락처 복원 요청 데이터를 수신하는 단계;
    상기 식별 코드와 맵핑되는 연락처 데이터를 검색하는 단계;
    검색 결과를 기초로, 상기 암호화된 연락처 데이터를 상기 다른 클라이언트로 전송하는 단계;
    상기 다른 클라이언트로부터 상기 암호키로 복호화된 연락처 데이터를 등록하기 위한 등록 요청 데이터를 수신하는 단계; 및
    상기 다른 식별자에 대응하여 상기 복호화된 연락처를 등록하는 단계
    를 포함하는,
    서버의 동작 방법.
  24. 제14항에 있어서,
    상기 상대 클라이언트가 상기 서버에 접속하는 경우, 상기 상대 클라이언트의 상태 정보를 업데이트하는 단계; 및
    상기 클라이언트에게 상기 업데이트된 상태 정보를 전송하는 단계
    를 더 포함하고,
    상기 업데이트된 상태 정보는,
    상기 상대 클라이언트가 통신 세션을 통해 연결 가능함을 나타내는,
    서버의 동작 방법.
  25. 클라이언트 장치에 있어서,
    서버와 통신하는 통신 인터페이스; 및
    연락처를 추가하기 위한 연락처 요청 데이터 및 상기 클라이언트 장치의 식별자를 상기 통신 인터페이스를 통해 상기 서버로 전송하고, 상기 연락처 요청 데이터에 대응하여 생성된 키를 상기 통신 인터페이스를 통해 상기 서버로부터 수신하며 - 상기 키는 상기 클라이언트의 식별자와 맵핑됨-, 상대 클라이언트 장치가 상기 키를 획득하도록 미리 정해진 키 전달 프로세스를 수행하고, 상기 서버로부터, 상기 상대 클라이언트 장치의 식별자를 상기 통신 인터페이스를 통해 수신하고, 상기 상대 클라이언트 장치의 식별자를 연락처 레지스트리에 등록하는 컨트롤러
    를 포함하고,
    상기 서버는 상기 상대 클라이언트 장치로부터 상기 상대 클라이언트 장치의 식별자 및 상기 키를 수신하는,
    클라이언트 장치.
  26. 클라이언트 장치에 있어서,
    서버와 통신하는 통신 인터페이스; 및
    상대 클라이언트 장치의 식별자와 맵핑되는 키를 획득하고, 상기 키 및 상기 클라이언트 장치의 식별자를 상기 통신 인터페이스를 통해 상기 서버로 전송하며, 상기 서버로부터 상기 상대 클라이언트 장치의 식별자를 상기 통신 인터페이스를 통해 수신하고, 상기 상대 클라이언트 장치의 식별자를 연락처 레지스트리에 등록하는 컨트롤러
    를 포함하고,
    상기 키는,
    상기 상대 클라이언트 장치가 연락처를 추가하기 위한 연락처 요청 데이터 및 상기 상대 클라이언트 장치의 식별자를 상기 서버로 전송한 경우, 상기 서버에 의해 생성되는,
    클라이언트 장치.
  27. 클라이언트 및 상대 클라이언트와 통신하는 통신 인터페이스; 및
    연락처를 추가하기 위한 연락처 요청 데이터 및 상기 클라이언트의 식별자를 상기 통신 인터페이스를 통해 상기 클라이언트로부터 수신하고, 상기 연락처 요청 데이터에 대응하여 키를 생성하며, 상기 키를 상기 클라이언트의 식별자와 맵핑하고, 상기 키를 상기 통신 인터페이스를 통해 상기 클라이언트로 전송하고, 상기 클라이언트의 미리 정해진 키 전달 프로세스를 통해 상기 키를 획득한 상대 클라이언트로부터, 상기 키 및 상기 상대 클라이언트의 식별자를 상기 통신 인터페이스를 통해 수신하고, 상기 키와 맵핑되는 식별자를 검색하고, 검색 결과를 기초로, 상기 클라이언트 및 상기 상대 클라이언트의 연락처를 관리하는 컨트롤러
    를 포함하는,
    서버.
KR1020160041490A 2015-04-10 2016-04-05 서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치 KR101771992B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018503451A JP6510137B2 (ja) 2015-04-10 2016-04-11 サーバとクライアントの動作方法、サーバ、及びクライアント装置
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 服务器和客户端的运行方法、服务器及客户端装置
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
KR20150051073 2015-04-10
KR1020150051073 2015-04-10

Publications (2)

Publication Number Publication Date
KR20160121416A KR20160121416A (ko) 2016-10-19
KR101771992B1 true KR101771992B1 (ko) 2017-08-28

Family

ID=57250627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160041490A KR101771992B1 (ko) 2015-04-10 2016-04-05 서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치

Country Status (1)

Country Link
KR (1) KR101771992B1 (ko)

Also Published As

Publication number Publication date
KR20160121416A (ko) 2016-10-19

Similar Documents

Publication Publication Date Title
CN107659406B (zh) 一种资源操作方法及装置
CN106233637B (zh) 用于短距离无线数据传输的系统和方法
US9137223B2 (en) Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
WO2017114123A1 (zh) 一种密钥配置方法及密钥管理中心、网元
US20170149748A1 (en) Secure Group Messaging and Data Steaming
WO2015157720A2 (en) Methods and apparatus for implementing a communications system secured using one-time pads
US20150312758A1 (en) Providing Network Credentials
JP6510137B2 (ja) サーバとクライアントの動作方法、サーバ、及びクライアント装置
CN110912686B (zh) 一种安全通道的密钥的协商方法及系统
US20160182463A1 (en) Secure communication device and method
WO2020157454A1 (en) Handling of machine-to-machine secure sessions
US10419212B2 (en) Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols
JP2022513134A (ja) サイズ制限がある認証プロトコルにおける安全なアタッチメントの確保
US20220123924A1 (en) Method for providing a state channel
CN108322464B (zh) 一种密钥验证方法及设备
KR20170012161A (ko) IoT 디바이스의 통신 클라이언트의 동작 방법 및 상기 통신 클라이언트를 포함하는 IoT 디바이스
CN111357305B (zh) 可移动平台的通信方法、设备、系统及存储介质
KR101771992B1 (ko) 서버와 클라이언트의 동작 방법, 서버, 및 클라이언트 장치
KR20240002666A (ko) 메신저 서비스를 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
CN110875902A (zh) 通信方法、装置及系统
CN112751664B (zh) 一种物联网组网方法、装置和计算机可读存储介质
KR101785382B1 (ko) 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어
KR101730404B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
KR101888952B1 (ko) 클라이언트 및 클라이언트의 동작 방법
KR20190111748A (ko) 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant