KR102239488B1 - 디바이스 간 통신 시스템 및 방법 - Google Patents

디바이스 간 통신 시스템 및 방법 Download PDF

Info

Publication number
KR102239488B1
KR102239488B1 KR1020170067356A KR20170067356A KR102239488B1 KR 102239488 B1 KR102239488 B1 KR 102239488B1 KR 1020170067356 A KR1020170067356 A KR 1020170067356A KR 20170067356 A KR20170067356 A KR 20170067356A KR 102239488 B1 KR102239488 B1 KR 102239488B1
Authority
KR
South Korea
Prior art keywords
maximum count
hash
information
key token
hash value
Prior art date
Application number
KR1020170067356A
Other languages
English (en)
Other versions
KR20180130969A (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 KR1020170067356A priority Critical patent/KR102239488B1/ko
Priority to CN201810373600.0A priority patent/CN108990057B/zh
Priority to US15/968,146 priority patent/US11042954B2/en
Priority to EP18171429.6A priority patent/EP3410670B1/en
Publication of KR20180130969A publication Critical patent/KR20180130969A/ko
Application granted granted Critical
Publication of KR102239488B1 publication Critical patent/KR102239488B1/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • 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/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

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)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Power Engineering (AREA)
  • Mechanical Engineering (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Human Computer Interaction (AREA)
  • Lock And Its Accessories (AREA)
  • Operations Research (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

디바이스 간 통신 시스템 및 방법이 제공된다. 본 발명의 일 실시예에 따른 디바이스 간 통신 시스템은, 키 토큰(key token)이 설정된 제1 최대 카운트(maximum count)만큼 반복적으로 해시됨으로써 생성되는 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트가 저장되며, 상기 제1 해시값들 중 상기 제1 최대 카운트에 대응되는 제1 해시값을 전송하고 상기 제1 해시값이 전송될 때마다 상기 제1 최대 카운트를 1씩 차감하는 제1 디바이스; 및 상기 키 토큰에 관한 정보 및 제2 최대 카운트가 저장되며, 상기 제1 디바이스로부터 상기 제1 해시값을 수신하고, 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 키 토큰에 관한 정보를 상기 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하고, 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감하는 제2 디바이스를 포함한다.

Description

디바이스 간 통신 시스템 및 방법{SYSTEM AND METHOD FOR COMMUNICATING BETWEEN DEVICES}
본 발명의 실시예들은 D2D(Device-to-device) 통신 기술과 관련된다.
최근, 스마트폰, 태블릿 PC, 센서 등과 같은 모바일 디바이스의 사용이 증가함에 따라 네트워크의 과부하 및 주파수 고갈 문제가 대두되고 있다. D2D 통신은 이러한 문제점을 해결하기 위한 하나의 방안이다.
D2D 통신이란 각 디바이스가 기지국, 무선 액세스 포인트(AP) 등과 같은 인프라를 거치지 않고 상호 간에 직접 통신하는 기술을 의미한다. D2D 통신은 기지국으로 전송되는 트래픽을 분산시키고 인접 디바이스 간 신속한 통신을 가능하게 하는 장점이 있다.
이러한 D2D 통신은 모바일 디바이스를 활용한 IoT(Internet of Things) 서비스의 제공 과정에서 사용될 수 있다. 일 예시로서, 사용자는 근거리 무선 통신 모듈(예를 들어, 블루투스 모듈, NFC 모듈 등)을 구비하는 모바일 디바이스를 이용하여 도어락, 차량 등과 같은 IoT 디바이스를 원격 제어할 수 있다. 이 경우, 양 디바이스는 D2D 통신을 통해 각종 데이터를 송수신하고, 정책에 따른 커맨드(예를 들어, 도어락의 잠금 해제, 차량의 도어 개폐/시동 오프 등)를 수행하게 된다.
그러나, 종래 기술에 따르면, D2D 통신을 통해 전송되는 데이터에 대한 유출 위험이 있다. 특히, IoT 서비스의 경우 저전력과 저사양의 플랫폼 제약으로 인해 전통적인 보안 기법으로는 데이터 유출에 따른 보안 위협으로부터 완전히 벗어나기 어려운 문제점이 있다.
한국공개특허공보 제10-2015-0000280호(2015.01.02)
본 발명의 실시예들은 D2D 통신 과정에서 전송되는 데이터의 보안성을 향상시키고 이를 효율적으로 관리하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 키 토큰(key token)이 설정된 제1 최대 카운트(maximum count)만큼 반복적으로 해시됨으로써 생성되는 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트가 저장되며, 상기 제1 해시값들 중 상기 제1 최대 카운트에 대응되는 제1 해시값을 전송하고 상기 제1 해시값이 전송될 때마다 상기 제1 최대 카운트를 1씩 차감하는 제1 디바이스; 및 상기 키 토큰에 관한 정보 및 제2 최대 카운트가 저장되며, 상기 제1 디바이스로부터 상기 제1 해시값을 수신하고, 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 키 토큰에 관한 정보 상기 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하고, 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감하는 제2 디바이스를 포함하는, 디바이스 간 통신 시스템이 제공된다.
상기 키 토큰에 관한 정보는, 상기 키 토큰 또는 상기 키 토큰을 설정된 횟수만큼 해시한 값을 포함할 수 있다.
상기 제2 디바이스는, N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감(단, N < 제2 최대 카운트)할 수 있다.
상기 제1 디바이스는, 상기 제1 해시값과 상기 제1 해시값에 대응되는 해시 넘버(M)를 상기 제2 디바이스로 전송하고, 상기 제2 디바이스는, 상기 키 토큰에 관한 정보를 상기 해시 넘버(M)만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교할 수 있다.
상기 디바이스 간 통신 시스템은, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하고, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 서버를 더 포함할 수 있다.
상기 키 토큰은, 설정된 유효 기간을 가지며, 상기 제1 디바이스는, 상기 서버로부터 상기 유효 기간에 관한 정보를 수신하고, 상기 유효 기간이 설정된 기간을 초과하여 남은 상태에서 상기 제1 최대 카운트의 수가 설정된 값 이하가 되는 경우 상기 서버로 상기 키 토큰 및 상기 제1 최대 카운트의 갱신을 요청할 수 있다.
상기 제1 디바이스는, 사용자 단말이고, 상기 제2 디바이스는, 차량에 탑재되는 보안 모듈일 수 있다.
상기 키 토큰은, 상기 차량에 대한 사용자의 예약이 완료됨에 따라 생성되고, 상기 사용자의 예약이 변경되는 경우 재생성될 수 있다.
상기 제1 최대 카운트 및 상기 제2 최대 카운트는, 상기 차량에 대한 상기 사용자의 예약 기간에 비례할 수 있다.
상기 디바이스 간 통신 시스템은, 상기 차량에 대한 상기 사용자의 예약 완료 또는 예약 변경시, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하고, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 서버를 더 포함할 수 있다.
상기 서버는, 상기 차량에 대한 상기 사용자의 예약 취소시 상기 키 토큰을 폐기하고, 상기 제1 디바이스 및 상기 제2 디바이스로 상기 제1 해시값들 및 상기 제2 해시값들의 폐기를 각각 요청할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 키 토큰이 설정된 제1 최대 카운트만큼 반복적으로 해시됨으로써 생성되는 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트가 저장되는 제1 디바이스에서, 상기 제1 해시값들 중 상기 제1 최대 카운트에 대응되는 제1 해시값을 전송하는 단계; 상기 제1 디바이스에서, 상기 제1 해시값이 전송될 때마다 상기 제1 최대 카운트를 1씩 차감하는 단계; 상기 키 토큰에 관한 정보 및 제2 최대 카운트가 저장되는 제2 디바이스에서, 상기 제1 디바이스로부터 상기 제1 해시값을 수신하는 단계; 상기 제2 디바이스에서, 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 키 토큰에 관한 정보를 상기 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하는 단계; 및 상기 제2 디바이스에서, 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감하는 단계를 포함하는, 디바이스 간 통신 방법이 제공된다.
상기 키 토큰에 관한 정보는, 상기 키 토큰 또는 상기 키 토큰을 설정된 횟수만큼 해시한 값을 포함할 수 있다.
상기 제2 최대 카운트를 차감하는 단계는, N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감(단, N < 제2 최대 카운트)할 수 있다.
상기 디바이스 간 통신 방법은, 상기 제1 디바이스에서, 상기 제1 해시값과 상기 제1 해시값에 대응되는 해시 넘버(M)를 상기 제2 디바이스로 전송하는 단계; 및 상기 제2 디바이스에서, 상기 키 토큰에 관한 정보를 상기 해시 넘버(M)만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하는 단계를 더 포함할 수 있다.
상기 디바이스 간 통신 방법은, 서버에서, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하는 단계; 및 상기 서버에서, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 단계를 더 포함할 수 있다.
상기 디바이스 간 통신 방법은, 상기 키 토큰은, 설정된 유효 기간을 가지며, 상기 제1 디바이스에서, 상기 서버로부터 상기 유효 기간에 관한 정보를 수신하는 단계; 및 상기 제1 디바이스에서, 상기 유효 기간이 설정된 기간을 초과하여 남은 상태에서 상기 제1 최대 카운트의 수가 설정된 값 이하가 되는 경우 상기 서버로 상기 키 토큰 및 상기 제1 최대 카운트의 갱신을 요청하는 단계를 더 포함할 수 있다.
상기 제1 디바이스는, 사용자 단말이고, 상기 제2 디바이스는, 차량에 탑재되는 보안 모듈일 수 있다.
상기 키 토큰은, 상기 차량에 대한 사용자의 예약이 완료됨에 따라 생성되고, 상기 사용자의 예약이 변경되는 경우 재생성될 수 있다.
상기 제1 최대 카운트 및 상기 제2 최대 카운트는, 상기 차량에 대한 상기 사용자의 예약 기간에 비례할 수 있다.
상기 디바이스 간 통신 방법은, 서버에서, 상기 차량에 대한 상기 사용자의 예약 완료 또는 예약 변경시, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하는 단계; 및 상기 서버에서, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 단계를 더 포함할 수 있다.
상기 디바이스 간 통신 방법은, 상기 서버에서, 상기 차량에 대한 상기 사용자의 예약 취소시 상기 키 토큰을 폐기하는 단계; 및 상기 서버에서, 상기 제1 디바이스 및 상기 제2 디바이스로 상기 제1 해시값들 및 상기 제2 해시값들의 폐기를 각각 요청하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 서버의 개입 없이 제1 디바이스와 제2 디바이스 간 싱크(sync)를 맞추기 어려운 환경에서 양 디바이스 간의 D2D 통신을 위한 일회용 키(HN(T))를 사용하여 별도의 보안 채널(예를 들어, SSL(Secure Sockets Layer), TLS(Transport Layer Security) 등) 없이 상대방 디바이스를 용이하게 인증할 수 있다. 이 경우, 양 디바이스에서 상기 일회용 키를 한번 사용할 때마다 사용된 일회용 키를 삭제하고 해당 디바이스 측 최대 카운트(N)를 1씩 차감함으로써, 양 디바이스 간 싱크를 용이하게 맞출 수 있으며, 이미 사용된 일회용 키가 유출되더라도 재사용이 불가능하므로 D2D 통신의 보안성을 향상시킬 수 있다.
또한, 본 발명의 실시예들에 따르면, 키 토큰의 유효 기간, 디바이스 측 최대 카운트의 수 및 서버에 입력된 정책 중 하나 이상을 고려하여 키 토큰의 생성, 갱신, 폐기 등과 같은 라이프사이클(life cycle)을 효율적으로 관리할 수 있다.
도 1은 본 발명의 일 실시예에 따른 통신 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 서버의 상세 구성을 나타낸 블록도
도 3은 본 발명의 일 실시예에 따른 제1 디바이스의 상세 구성을 나타낸 블록도
도 4는 본 발명의 일 실시예에 따른 제2 디바이스의 상세 구성을 나타낸 블록도
도 5는 본 발명의 일 실시예에 따른 중계 장치의 상세 구성을 나타낸 블록도
도 6은 본 발명의 일 실시예에 따른 키 토큰의 생성 및 해시 코드의 분배 과정을 설명하기 위한 흐름도
도 7은 본 발명의 제1 실시예에 따른 디바이스 간 인증 과정을 설명하기 위한 흐름도
도 8은 본 발명의 제2 실시예에 따른 디바이스 간 인증 과정을 설명하기 위한 흐름도
도 9는 본 발명의 제1 실시예에 따른 키 토큰의 갱신 과정을 설명하기 위함 흐름도
도 10은 본 발명의 제2 실시예에 따른 키 토큰의 갱신 과정을 설명하기 위함 흐름도
도 11은 도 10에서의 키 토큰의 갱신에 따른 이전 키 토큰의 폐기 과정을 설명하기 위한 흐름도
도 12는 본 발명의 제1 실시예에 따른 키 토큰의 폐기 과정을 설명하기 위함 흐름도
도 13은 본 발명의 제2 실시예에 따른 키 토큰의 폐기 과정을 설명하기 위함 흐름도
도 14는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 통신 시스템(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 통신 시스템(100)은 제1 디바이스(104)와 제2 디바이스(106) 간의 D2D 통신을 지원하기 위한 시스템으로서, 서버(102), 제1 디바이스(104), 제2 디바이스(106) 및 중계 장치(108)를 포함한다.
서버(102)는 제1 디바이스(104)와 제2 디바이스(106) 간의 D2D 통신을 위한 키 토큰(key token)을 생성하고, 이를 관리하는 장치이다. 본 실시예들에 있어서, 키 토큰은 양 디바이스(104, 106) 중 어느 하나가 상대방 디바이스를 인증하고 설정된 정책에 따른 커맨드(예를 들어, 도어락의 잠금 해제, 차량의 도어 개폐/시동 오프 등)를 수행하는 데 사용되는 스마트 키(smart key)의 일종일 수 있다. 상기 키 토큰은 제1 디바이스(104)의 정보, 제2 디바이스(106)의 정보, 입력된 정책의 아이디, 사용자 아이디 등에 기초하여 생성될 수 있다.
서버(102)는 기간계 시스템(legacy system, 미도시) 등으로부터 정책을 입력 받고, 입력된 정책에 따라 키 토큰을 생성할 수 있다. 여기서, 기간계 시스템은 서버(102)와 연동하여 각종 서비스를 사용자에게 제공하는 시스템으로서, 미리 정의된 복수 개의 정책들 중 사용자의 요청에 대응되는 하나 이상의 정책을 서버(102)로 제공할 수 있다. 일 예시로서, 서버(102)는 사용자의 도어락 접근시 도어락의 잠금을 자동으로 해제하는 내용의 정책을 홈 네트워크 시스템(미도시)으로부터 입력 받을 수 있다. 다른 예시로서, 서버(102)는 사용자가 차량의 사용을 예약하는 경우 사용자에 의해 입력된 예약 기간 동안 사용자의 입력에 따라 차량의 도어 개폐/시동 온, 오프 등을 원격 제어할 수 있는 내용의 정책을 차량 공유 시스템(미도시)으로부터 입력 받을 수 있다. 이때, 상기 키 토큰은 설정된 유효 기간(예를 들어, 5일)을 가질 수 있으며, 상기 유효 기간은 입력된 정책(예를 들어, 상술한 예약 기간)에 따라 달라질 수 있다. 후술할 바와 같이, 제2 디바이스(106)는 서버(102)로부터 상기 유효 기간에 관한 정보를 수신하고, 상기 유효 기간 내에만 제1 디바이스(104)의 인증 및 커맨드 수행이 가능하다.
또한, 서버(102)는 서비스를 제공받는 사용자, 상기 사용자가 소지하는 디바이스의 정보(예를 들어, 디바이스의 유형, 식별 정보 등), 제어 대상이 되는 디바이스의 정보(예를 들어, 디바이스의 유형, 식별 정보, 제어 가능한 커맨드 정보 등), 입력 가능한 정책들의 정보, 생성된 키 토큰 및 유효 기간에 관한 정보(예를 들어, 시작 시간 및 종료 시간에 관한 정보), 후술할 해시 코드 등을 데이터베이스에 저장하고 관리할 수 있다.
또한, 서버(102)는 생성된 하나의 키 토큰을 이용하여 해시 코드(hash code)를 생성하고, 생성된 해시 코드를 제1 디바이스(104) 및 제2 디바이스(106)로 각각 전송한다. 구체적으로, 서버(102)는 키 토큰(또는 키 토큰의 최초 해시값)을 설정된 최대 카운트(maximum count)만큼 반복적으로 해시함으로써 복수 개의 제1 해시값들을 생성할 수 있다. 또한, 서버(102)는 생성된 제1 해시값들을 해시 함수가 적용된 횟수 순(또는 제1 해시값들이 생성된 순)으로 순차적으로 연결하여 상기 제1 해시값들의 체인(chain)을 생성할 수 있다. 이때, 최대 카운트는 순차적으로 연결된 제1 해시값들의 개수로서, 입력된 정책, 키 토큰의 유효 기간 등에 따라 달라질 수 있다. 일 예시로서, 사용자가 차량의 사용을 5일 동안 예약하는 경우, 키 토큰의 유효 기간은 5일이며 최대 카운트는 100이 될 수 있다. 다른 예시로서, 사용자가 차량의 사용을 3일 동안 예약하는 경우, 키 토큰의 유효 기간은 3일이며 최대 카운트는 50이 될 수 있다. 이와 같은 방법으로 순차적으로 연결된 제1 해시값들의 예시는 아래와 같다.
H1(T) - H2(T) - H3(T)…H99(T) - H100(T) (최대 카운트 = 100이라 가정)
여기서, H1(T)는 키 토큰(또는 키 토큰의 최초 해시값)에 해시 함수가 1번 적용된 해시값, H2(T)는 키 토큰(또는 키 토큰의 최초 해시값)에 해시 함수가 2번 적용된 해시값(즉, H2(T)의 해시값)… H100(T)은 키 토큰(또는 키 토큰의 최초 해시값)에 해시 함수가 100번 적용된 해시값(즉, H99(T)의 해시값)일 수 있다. 또한, T는 키 토큰을 나타낸다. 즉, HN(T)은 키 토큰(T) 또는 키 토큰(T)의 최초 해시값을 입력값으로 하여 해시 함수를 N번 적용한 값이다. 상기 HN(T)은 서버(102)의 개입 없이 제1 디바이스(104)와 제2 디바이스(106) 간 싱크(sync)를 맞추기 어려운 환경에서 양 디바이스 간의 D2D 통신을 위한 일회용 키로서 사용될 수 있다.
서버(102)는 상기 순차적으로 연결된 제1 해시값들을 제1 디바이스(104)로 전송할 수 있다. 이때, 서버(102)는 입력된 정책, 최대 카운트에 관한 정보, 키 토큰의 유효 기간에 관한 정보 등을 상기 제1 해시값들과 함께 제1 디바이스(104)로 전송할 수 있다.
또한, 서버(102)는 키 토큰에 관한 정보, 최대 카운트에 관한 정보, 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 제2 디바이스(106)로 전송할 수 있다. 여기서, 상기 키 토큰에 관한 정보는, 상기 키 토큰 또는 상기 키 토큰을 설정된 횟수만큼 해시한 값을 포함할 수 있다. 본 실시예들에 있어서, 상기 키 토큰을 설정된 횟수만큼 해시한 값은 예를 들어, 키 토큰의 최초 해시값일 수 있으며, 이하에서는 키 토큰에 관한 정보가 상기 키 토큰의 최초 해시값인 것으로 가정한다. 이때, 서버(102)는 중계 장치(108)를 통해 상기 정보들을 제2 디바이스(106)로 전송할 수 있다. 서버(102)와 제2 디바이스(106) 간의 통신 채널은 서버(102)와 제1 디바이스(104) 간의 통신 채널에 비해 상대적으로 그 보안이 취약할 수 있으므로, 서버(102)는 키 토큰에 대한 해시값들, 예를 들어 H1(T) - H2(T) - H3(T)…H99(T) - H100(T) 모두를 제2 디바이스(106)로 전송하는 것이 아니라 키 토큰에 대한 최초 해시값과 설정된 최대 카운트만을 제2 디바이스(106)로 전송할 수 있다. 후술할 바와 같이, 제2 디바이스(106)는 제1 디바이스(104)로부터 제1 해시값들 중 하나를 수신하고, 제1 디바이스(104)로부터 수신된 제1 해시값, 서버(102)로부터 수신된 최초 해시값 및 최대 카운트에 관한 정보를 이용하여 제1 디바이스(104)를 인증할 수 있다.
또한, 서버(102)는 제1 디바이스(104) 및 제2 디바이스(106) 측 최대 카운트를 이용하여 양 디바이스(104, 106)에 저장된 해시값들의 체인을 동기화할 수 있다.
또한, 서버(102)는 키 토큰의 유효 기간, 제1 디바이스(104) 측 최대 카운트의 수(또는 제1 디바이스(104)에 저장된 제1 해시값들의 개수) 및 서버(102)에 입력된 정책 중 하나 이상을 고려하여 키 토큰 및 최대 카운트 중 하나 이상을 갱신할 수 있다.
또한, 서버(102)는 키 토큰 또는 정책의 유효 기간 만료 여부에 따라 생성된 키 토큰을 폐기할 수 있다. 상기 키 토큰의 생성 및 양 디바이스(104, 106)에 저장된 체인의 동기화, 키 토큰의 갱신 및 폐기에 대해서는 도 6 내지 12를 참조하여 구체적으로 후술하기로 한다. 한편, 이하에서는 설명의 편의상 제1 디바이스(104)에 저장되는 최대 카운트를 제1 최대 카운트, 제2 디바이스(106)에 저장되는 최대 카운트를 제2 최대 카운트로 각각 칭하기로 한다. 상기 제1 최대 카운트 및 제2 최대 카운트는 서버(102)에서 최초로 생성되어 제1 디바이스(104) 및 제2 디바이스(106)로 분배될 수 있으나 반드시 이에 한정되는 것은 아니다. 후술할 바와 같이, 제1 디바이스(104)는 제1 최대 카운트에 대응되는 제1 해시값을 제2 디바이스(106)로 전송하고, 상기 제1 해시값이 전송될 때마다 제1 최대 카운트를 1씩 차감할 수 있다. 또한, 제2 디바이스(106)는 N번 해시된 제2 해시값이 제1 디바이스(104)로부터 수신된 제1 해시값과 일치하는 경우 제2 최대 카운트를 상기 N으로 차감할 수 있다.
제1 디바이스(104)는 제2 디바이스(106)와 D2D 통신하여 제2 디바이스(106)의 동작을 제어하는 데 사용되는 장치로서, 예를 들어 스마트폰, 태블릿 PC, 스마트 워치 등과 같은 웨어러블 디바이스 등이 될 수 있다. 본 실시예들에 있어서, 제1 디바이스(104)는 사용자가 휴대 가능한 모바일 디바이스일 수 있다. 또한, 제1 디바이스(104)는 보안 관련 애플리케이션을 구비할 수 있으며, 상기 애플리케이션을 통해 이하에서 설명할 각종 기능들을 수행할 수 있다.
상술한 바와 같이, 제1 디바이스(104)는 상기 순차적으로 연결된 제1 해시값들(예를 들어, H1(T) - H2(T) - H3(T)…H99(T) - H100(T)), 서버(102)에 입력된 정책, 제1 최대 카운트 및 키 토큰의 유효 기간에 관한 정보를 서버(102)로부터 수신할 수 있다. 또한, 제1 디바이스(104)는 수신된 상기 제1 해시값들, 정책, 제1 최대 카운트 및 키 토큰의 유효 기간에 관한 정보를 암호화하여 내부 보안 영역(즉, 스토리지)에 저장할 수 있다.
이후, 제1 디바이스(104)는 제2 디바이스(106)와의 D2D 통신을 위해 순차적으로 연결된 제1 해시값들 중 제1 최대 카운트에 대응되는 제1 해시값을 제2 디바이스(106)로 전송하고, 제1 해시값이 전송될 때마다 제1 최대 카운트를 1씩 차감할 수 있다. 일 예시로서, 제1 디바이스(104)는 순차적으로 연결된 제1 해시값들 중 마지막에 연결된 제1 해시값을 가장 먼저 제2 디바이스(106)로 전송하고, 상기 마지막에 연결된 제1 해시값의 바로 이전 제1 해시값을 그 다음에 제2 디바이스(106)로 전송할 수 있다. 위 예시에서, 제1 디바이스(104)는 H100(T), H99(T), H98(T)…을 하나씩 제2 디바이스(106)로 전송할 수 있으며, H100(T), H99(T), H98(T)…을 제2 디바이스(106)로 전송할 때마다 제1 최대 카운트를 100→99, 99→98, 98→97…로 각각 차감할 수 있다. 이와 같이, 제1 디바이스(104)는 제2 디바이스(106)와의 통신을 시도할 때마다 체인의 가장 끝단에 연결된 제1 해시값을 하나씩 소진하게 되며, 이에 따라 제1 디바이스(104) 측 최대 카운트를 1씩 차감하게 된다.
만약, 키 토큰의 유효 기간이 설정된 기간을 초과하여 남은 상태에서 제1 디바이스(104) 측 최대 카운트의 수(또는 체인에 연결된 제1 해시값들의 개수)가 설정된 값(예를 들어, 1) 이하가 되는 경우, 제1 디바이스(104)는 서버(102)로 상기 키 토큰 및 제1 최대 카운트의 갱신을 요청할 수 있다. 일 예시로서, 키 토큰의 유효 기간이 5월 1일 ~ 5월 10일이라 가정할 때 현재 날짜(예를 들어, 5월 3일)로부터 상기 유효 기간의 만료일까지의 남은 기한이 5일 이상 초과하여 남은 상태에서 제1 디바이스(104) 측 최대 카운트의 수가 1이 되는 경우, 제1 디바이스(104)는 서버(102)로 상기 키 토큰 및 제1 최대 카운트의 갱신을 요청할 수 있다. 이 경우, 서버(102)는 제1 디바이스(104)의 요청에 따라 키 토큰 및 제1 최대 카운트를 갱신하고, 갱신된 키 토큰 및 갱신된 제1 최대 카운트로부터 생성되는 새로운 제1 해시값들, 상기 새로운 제1 해시값들의 순차적인 연결 관계 및 갱신된 제1 최대 카운트에 관한 정보를 제1 디바이스(104)로 전송할 수 있다.
또한, 키 토큰의 유효 기간이 설정된 기간 이하로 남은 상태에서 제1 디바이스(104) 측 최대 카운트의 수가 설정된 값(예를 들어, 1) 이하가 되는 경우(또는 체인에 연결된 제1 해시값들이 모두 소진되는 경우) 또는 키 토큰의 남은 유효 기간이 만료되는 경우, 제1 디바이스(104)는 서버(102)로 상기 키 토큰의 폐기를 요청할 수 있다. 일 예시로서, 키 토큰의 유효 기간이 5월 1일 ~ 5월 10일이라 가정할 때 현재 날짜(예를 들어, 5월 9일)로부터 상기 유효 기간의 만료일까지의 남은 기한이 2일 이하로 남은 상태에서 제1 디바이스(104) 측 최대 카운트의 수가 1이 되는 경우, 제1 디바이스(104)는 서버(102)로 상기 키 토큰의 폐기를 요청할 수 있다. 이 경우, 서버(102)는 제1 디바이스(104) 및 제2 디바이스(106)로 남은 해시 코드(즉, 해시값들의 체인)의 폐기를 각각 요청하고, 제1 디바이스(104) 및 제2 디바이스(106)에서 해시 코드의 폐기가 완료되는 경우 서버(102)에 저장된 키 토큰을 폐기할 수 있다.
제2 디바이스(106)는 제어 대상이 되는 디바이스로서, 예를 들어 도어락, 차량, 센서 등과 같은 IoT 디바이스 또는 상기 IoT 디바이스에 내장된 보안 모듈일 수 있다.
상술한 바와 같이, 제2 디바이스(106)는 키 토큰의 최초 해시값, 제2 최대 카운트에 관한 정보, 서버(102)에 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 서버(102)로부터 수신할 수 있다. 이때, 제2 디바이스(106)는 중계 장치(108)를 통해 상기 정보들을 서버(102)로부터 수신할 수 있다. 또한, 제2 디바이스(106)는 수신된 키 토큰의 최초 해시값, 제2 최대 카운트에 관한 정보, 서버(102)에 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 내부 보안 영역(즉, 스토리지)에 저장할 수 있다.
또한, 제2 디바이스(106)는 제1 디바이스(104)로부터 상기 제1 해시값들 중 하나를 수신할 수 있다. 상술한 바와 같이, 제1 디바이스(104)는 제1 해시값들 중 현재 제1 최대 카운트에 대응되는 제1 해시값을 제2 디바이스(106)로 전송할 수 있다. 제2 디바이스(106)는 제1 디바이스(104)로부터 상기 제1 해시값들 중 하나를 수신함에 따라 제1 디바이스(104)로부터 수신된 제1 해시값, 서버(102)로부터 수신된 최초 해시값 및 제2 최대 카운트에 관한 정보를 이용하여 제1 디바이스(104)를 인증할 수 있다.
구체적으로, 제2 디바이스(106)는 제1 디바이스(104)로부터 수신된 제1 해시값과 일치하는 값이 나올 때까지 상기 최초 해시값을 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하여 제1 디바이스(104)를 인증할 수 있다. 이때, 제2 디바이스(106)는 서버(102)에서 사용된 해시 함수와 동일한 해시 함수를 이용하여 제2 해시값들을 생성하게 된다. 일 예시로서, 제2 디바이스(106)는 최초 해시값에 해시 함수를 한 번 적용한 값과 상기 제1 해시값을 비교하고, 비교 결과 일치하지 않는 경우 최초 해시값에 해시 함수를 두 번 적용한 값과 상기 제2 해시값을 비교할 수 있다. 이와 같이, 제2 디바이스(106)는 제1 해시값과 일치하는 값이 나올 때까지 상기 최초 해시값을 제2 최대 카운트 이하만큼 반복적으로 해시할 수 있으며, 이렇게 생성된 제2 해시값들을 상기 제1 해시값과 각각 비교할 수 있다.
만약, 상기 제1 해시값과 일치하는 제2 해시값이 나오는 경우, 제2 디바이스(106)는 제1 디바이스(104)의 인증이 완료된 것으로 판단할 수 있다.
또한, 제2 디바이스(106)는 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감할 수 있다. 구체적으로, 제2 디바이스(106)는 N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 제2 최대 카운트를 상기 N으로 차감할 수 있다. 여기서, N < 제2 최대 카운트이다. 예를 들어, 해시 함수가 50번 적용된 제2 해시값이 상기 제1 해시값과 일치하는 경우, 제2 디바이스(106)는 제2 최대 카운트를 50으로 차감할 수 있다. 본 발명의 실시예들에 따르면, 제1 디바이스(104)와 제2 디바이스(106)가 현재 서로 다른 최대 카운트를 가지고 있다 하더라도 제1 디바이스(104)의 인증이 가능하다.
중계 장치(108)는 서버(102)와 제2 디바이스(106)의 사이에서 데이터를 중계한다. 중계 장치(108)는 서버(102)로부터 데이터를 수신하고, 이를 제2 디바이스(106)가 수신 가능한 형태로 변환하여 제2 디바이스(106)로 전송할 수 있다. 또한, 중계 장치(108)는 제2 디바이스(106)로부터 데이터를 수신하고, 이를 서버(102)가 수신 가능한 형태로 변환하여 서버(102)로 전송할 수 있다. 한편, 여기서는 중계 장치(108)가 서버(102)와 제2 디바이스(106)의 사이에서 데이터를 중계하는 것으로 설명하였으나 이는 일 예시에 불과하며, 서버(102)와 제2 디바이스(106)가 별도의 중계 장치(108) 없이 상호 간에 데이터를 직접 송수신할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 서버(102)의 상세 구성을 나타낸 블록도이다. 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서버(102)는 정책 매니저(202), 토큰 매니저(204), 제1 디바이스 매니저(206), 제2 디바이스 매니저(208), 인터페이스(210), 커맨드 매니저(212), 권한 설정 매니저(214) 및 인증 매니저(216)를 포함하며, 실시예에 따라 데이터베이스(218)와 연결될 수 있다.
정책 매니저(202)는 기간계 시스템(미도시)으로부터 정책을 입력 받는다. 또한, 정책 매니저(202)는 각 정책별 식별 코드를 관리하고, 정책이 입력될 때마다 입력된 정책의 식별 코드를 확인하여 해당 정책을 식별할 수 있다. 또한, 정책 매니저(202)는 정책의 입력, 변경 및 만료시 토큰 매니저(204)로 키 토큰의 생성, 갱신 및 폐기를 각각 요청할 수 있다. 구체적으로, 정책 매니저(202)는 정책이 새롭게 입력되거나 입력된 정책이 변경되는 경우 토큰 매니저(204)로 키 토큰의 생성 또는 갱신을 요청하고, 입력된 정책의 유효 기간이 만료되는 경우 토큰 매니저(204)로 키 토큰의 폐기를 요청할 수 있다.
토큰 매니저(204)는 키 토큰의 생성, 갱신 및 폐기를 관리한다. 토큰 매니저(204)는 정책 매니저(202)를 통해 정책이 입력됨에 따라 키 토큰을 생성할 수 있다. 또한, 토큰 매니저(204)는 키 토큰의 유효 기간, 제1 디바이스(104) 측 최대 카운트의 수 및 서버(102)에 입력된 정책 중 하나 이상을 고려하여 키 토큰 및 최대 카운트 중 하나 이상을 갱신 또는 폐기할 수 있다. 즉, 토큰 매니저(204)는 입력된 정책에 종속적인 키 토큰의 라이프사이클(life cycle)을 관리할 수 있다.
또한, 토큰 매니저(204)는 생성된 키 토큰을 기반으로 해시 코드를 생성할 수 있다. 구체적으로, 토큰 매니저(204)는 키 토큰을 설정된 최대 카운트만큼 반복적으로 해시함으로써 복수 개의 제1 해시값들을 생성하고, 생성된 제1 해시값들을 해시 함수가 적용된 횟수 순으로 순차적으로 연결하여 상기 제1 해시값들의 체인을 생성할 수 있다. 이때, 최대 카운트는 순차적으로 연결된 제1 해시값들의 개수로서, 입력된 정책, 키 토큰의 유효 기간 등에 따라 달라질 수 있다. 또한, 토큰 매니저(204)는 키 토큰의 갱신시 상기 해시 코드를 갱신하고, 키 토큰의 폐기시 상기 해시 코드를 폐기할 수 있다.
또한, 토큰 매니저(204)는 제1 디바이스(104) 및 제2 디바이스(106) 측 최대 카운트를 이용하여 양 디바이스(104, 106)에 저장된 해시값들의 체인을 동기화할 수 있다.
제1 디바이스 매니저(206)는 제1 디바이스(104)와 데이터를 송수신한다. 제1 디바이스 매니저(206)는 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 최대 카운트에 관한 정보, 키 토큰의 유효 기간에 관한 정보 등을 제1 디바이스(104)로 전송할 수 있다. 또한, 제1 디바이스 매니저(206)는 제1 디바이스(104)로 해시 코드의 동기화를 요청하고, 제1 디바이스(104)에 저장된 최대 카운트에 관한 정보를 제1 디바이스(104)로부터 수신할 수 있다. 또한, 제1 디바이스 매니저(206)는 토큰 매니저(204)의 요청에 따라 제1 디바이스(104)로 해시 코드의 폐기를 요청할 수 있다.
제2 디바이스 매니저(208)는 제2 디바이스(106)와 데이터를 송수신한다. 제2 디바이스 매니저(208)는 키 토큰의 최초 해시값, 최대 카운트에 관한 정보, 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 제2 디바이스(106)로 전송할 수 있다. 또한, 제2 디바이스 매니저(208)는 제2 디바이스(106)로 해시 코드의 동기화를 요청하고, 제2 디바이스(106)에 저장된 최대 카운트에 관한 정보를 제2 디바이스(106)로부터 수신할 수 있다. 또한, 제2 디바이스 매니저(208)는 토큰 매니저(204)의 요청에 따라 제2 디바이스(106)로 해시 코드의 폐기를 요청할 수 있다.
인터페이스(210)는 기간계 시스템, 제1 디바이스(104) 및 제2 디바이스(106)와의 데이터 송수신을 위한 모듈이다. 정책 매니저(202)는 인터페이스(210)를 통해 기간계 시스템으로부터 정책을 입력 받을 수 있다. 또한, 제1 디바이스 매니저(206)는 인터페이스(210)를 통해 제1 디바이스(104)와 각종 데이터를 송수신할 수 있다. 또한, 제2 디바이스 매니저(208)는 인터페이스(210)를 통해 제2 디바이스(106)와 각종 데이터를 송수신할 수 있다. 이때, 제2 디바이스 매니저(208)는 중계 장치(108)를 거쳐 제2 디바이스(106)와 각종 데이터를 송수신할 수 있으며, 이 경우 인터페이스(210)는 서버(102)와 중계 장치(108) 간의 데이터를 중계하는 데 사용될 수 있다.
커맨드 매니저(212)는 제2 디바이스(106)의 제어를 위한 각종 커맨드를 관리한다. 커맨드 매니저(212)는 각 정책에 대응되는 하나 이상의 커맨드를 구비할 수 있으며, 각 정책별 커맨드의 수정이 필요한 경우 이를 업데이트할 수 있다. 상기 각 정책별 커맨드는 해당 정책에 매핑되어 있을 수 있으며, 제1 디바이스(104) 및 제2 디바이스(106)는 서버(102)로부터 수신된 정책에 관한 정보를 참조하여 대응되는 하나 이상의 커맨드를 식별할 수 있다. 상기 커맨드는 예를 들어, 예약된 차량의 도어 잠금/도어 잠금 해제, 시동 온/오프, 운행 정보 조회, 위치 정보 조회 등이 될 수 있다.
권한 설정 매니저(214)는 서비스를 제공받는 사용자, 제1 디바이스(104)의 정보 및 제2 디바이스(106)의 정보를 관리한다. 권한 설정 매니저(214)는 제1 디바이스(104) 및 제2 디바이스(106)의 정보를 등록할 수 있다. 여기서, 제1 디바이스(104)의 정보는 예를 들어, 제1 디바이스(104)의 유형, 식별 정보, 제1 디바이스(104)를 소지하는 사용자의 아이디/비밀번호 등이 될 수 있다. 또한, 제2 디바이스(106)의 정보는 예를 들어, 제2 디바이스(106)의 유형, 식별 정보, 제어 가능한 제2 디바이스(106)의 동작 정보(예를 들어, 도어 개폐/시동 온, 오프 등), 기타 정보(예를 들어, 제2 디바이스(106)가 차량인 경우 차량의 운행 정보, 위치 정보 등) 등이 될 수 있다.
인증 매니저(216)는 권한 설정 매니저(214)와 연동하여 제1 디바이스(104) 및 제2 디바이스(106)를 인증한다. 인증 매니저(216)는 제1 디바이스(104) 및 제2 디바이스(106)의 로그인 요청시 상술한 제1 디바이스(104) 및 제2 디바이스(106)의 정보를 이용하여 제1 디바이스(104) 및 제2 디바이스(106)를 각각 인증할 수 있다.
데이터베이스(218)는 제1 디바이스(104)와 제2 디바이스(106) 간 D2D 통신에 필요한 각종 정보가 저장되는 저장소이다. 데이터베이스(218)에는 예를 들어, 하나 이상의 정책, 각 정책별 커맨드, 토큰 키, 토큰 키의 해시 코드, 제1 디바이스(104) 및 제2 디바이스(106)의 정보 등이 저장될 수 있다. 도 1에서는 설명의 편의상 데이터베이스(218)가 서버(102)와 연결되는 것으로 도시하였으나 이는 일 예시에 불과하며, 데이터베이스(218)는 서버(102)의 일 구성으로서 서버(102)의 내부에 존재할 수도 있다.
도 3은 본 발명의 일 실시예에 따른 제1 디바이스(104)의 상세 구성을 나타낸 블록도이다. 도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 제1 디바이스(104)는 제1 인터페이스(302), 접속 매니저(304), 커맨드 매니저(306), 스마트 키 매니저(308), 제2 인터페이스(310) 및 스토리지(312)를 포함한다.
제1 인터페이스(302)는 서버(102)와의 데이터 송수신을 위한 모듈이다. 제1 디바이스(104)는 제1 인터페이스(302)를 통해 서버(102)와 각종 데이터를 송수신할 수 있다.
접속 매니저(304)는 사용자의 요청에 따라 서버(102)로 로그인을 요청한다. 또한, 접속 매니저(304)는 제1 디바이스(104)의 정보를 서버(102)로 제공할 수 있으며, 서버(102)는 접속 매니저(304)로부터 수신된 제1 디바이스(104)의 정보를 이용하여 제1 디바이스(104)를 인증할 수 있다.
커맨드 매니저(306)는 제2 디바이스(106)의 제어를 위한 각종 커맨드를 관리한다. 커맨드 매니저(306)는 각 정책에 대응되는 하나 이상의 커맨드를 구비할 수 있으며, 서버(102)로부터 수신된 정책에 대응되는 커맨드에 관한 정보를 상기 정책과 함께 제2 디바이스(106)로 전송할 수 있다.
스마트 키 매니저(208)는 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 제1 최대 카운트에 관한 정보, 키 토큰의 유효 기간에 관한 정보 등을 서버(102)로부터 수신한다. 또한, 스마트 키 매니저(208)는 순차적으로 연결된 제1 해시값들을 제2 디바이스(106)로 하나씩 전송하며, 상기 제1 해시값이 전송된 이후 전송된 상기 제1 해시값을 상기 제1 해시값들의 연결에서 삭제하여 상기 제1 해시값들을 하나씩 소진할 수 있다. 즉, 스마트 키 매니저(208)가 해시 함수가 N번 적용된 제1 해시값(즉, HN(T))을 제2 디바이스(106)로 전송한 경우, 스마트 키 매니저(208)는 상기 HN(T)을 상술한 체인에서 삭제하여 소진하고, 저장된 제1 최대 카운트를 N에서 N-1로 차감할 수 있다.
또한, 키 토큰의 유효 기간이 설정된 기간 이상 남은 상태에서 체인에 연결된 제1 해시값들의 개수(또는 제1 디바이스(104) 측 최대 카운트의 수)가 설정된 값(예를 들어, 1) 이하가 되는 경우, 스마트 키 매니저(208)는 서버(102)로 상기 키 토큰 및 제1 최대 카운트의 갱신을 요청할 수 있다.
제2 인터페이스(310)는 제2 디바이스(106)와의 데이터 송수신을 위한 모듈이다. 제1 디바이스(104)는 제2 인터페이스(310)를 통해 제2 디바이스(106)로 각종 데이터를 송신할 수 있다. 제2 인터페이스(310)는 예를 들어, 와이파이(Wifi) 모듈, BLE(Bluetooth Low Energy) 모듈, NFC(Near Field Communication) 모듈, 지그비(Zigbee) 모듈 등과 같은 무선 통신 모듈일 수 있다.
스토리지(312)는 제1 디바이스(104)와 제2 디바이스(106) 간 D2D 통신에 필요한 각종 정보가 저장되는 저장소이다. 스마트 키 매니저(208)는 예를 들어, 서버(102)로부터 수신된 상기 제1 해시값들, 정책 및 제1 최대 카운트에 관한 정보를 암호화하여 스토리지(312)에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른 제2 디바이스(106)의 상세 구성을 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 제2 디바이스(106)는 제1 인터페이스(402), 제2 인터페이스(404), 스마트 키 매니저(406) 및 커맨드 매니저(408)을 포함한다.
제1 인터페이스(402)는 서버(102)와의 데이터 송수신을 위한 모듈이다. 제2 디바이스(106)는 제1 인터페이스(402)를 통해 서버(102)와 각종 데이터를 송수신할 수 있다. 이때, 제2 디바이스(106)는 중계 장치(108)를 거쳐 서버(102)와 각종 데이터를 송수신할 수 있으며, 이 경우 제1 인터페이스(402)는 제2 디바이스(106)와 중계 장치(108) 간의 데이터를 중계하는 데 사용될 수 있다.
제2 인터페이스(404)는 제1 디바이스(104)와의 데이터 송수신을 위한 모듈이다. 제2 디바이스(106)는 제2 인터페이스(404)를 통해 제1 디바이스(104)로부터 각종 데이터를 수신할 수 있다. 제2 인터페이스(404)는 예를 들어, 와이파이 모듈, BLE 모듈, NFC 모듈, 지그비 모듈 등과 같은 무선 통신 모듈일 수 있다.
스마트 키 매니저(406)는 키 토큰의 최초 해시값, 제2 최대 카운트에 관한 정보, 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 서버(102)로부터 수신한다. 또한, 스마트 키 매니저(406)는 제1 디바이스(104)로부터 제1 해시값들 중 하나를 수신하고, 제1 디바이스(104)로부터 수신된 제1 해시값, 서버(102)로부터 수신된 최초 해시값 및 제2 최대 카운트에 관한 정보를 이용하여 제1 디바이스(104)를 인증할 수 있다.
구체적으로, 스마트 키 매니저(406)는 제1 디바이스(104)로부터 수신된 제1 해시값과 일치하는 값이 나올 때까지 상기 최초 해시값을 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하여 제1 디바이스(104)를 인증할 수 있다.
또한, 스마트 키 매니저(406)는 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감할 수 있다. 일 예시로서, N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우, 스마트 키 매니저(406)는 상기 제2 최대 카운트를 상기 N으로 차감할 수 있다.
커맨드 매니저(408)는 스마트 키 매니저(406)에서 제1 디바이스(104)의 인증이 성공하는 경우 제1 디바이스(104)로부터 수신된 정책에 대응되는 커맨드를 수행한다. 일 예시로서, 제1 디바이스(104)로부터 수신된 제1 해시값과 제2 디바이스(106)에서 생성된 제2 해시값이 일치하는 경우, 커맨드 매니저(408)는 차량의 도어 잠금을 해제할 수 있다.
도 5는 본 발명의 일 실시예에 따른 중계 장치(108)의 상세 구성을 나타낸 블록도이다. 도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 중계 장치(108)는 제1 인터페이스(502), 제2 인터페이스(504), 세션 매니저(506) 및 데이터 변환 모듈(506)을 포함하며, 실시예에 따라 데이터베이스(510)와 연결될 수 있다.
제1 인터페이스(502)는 서버(102)와의 데이터 송수신을 위한 모듈이다. 중계 장치(108)는 제1 인터페이스(502)를 통해 서버(102)와 각종 데이터를 송수신할 수 있다.
제2 인터페이스(504)는 제2 디바이스(106)와의 데이터 송수신을 위한 모듈이다. 중계 장치(108)는 제2 인터페이스(504)를 통해 제2 디바이스(106)와 각종 데이터를 송수신할 수 있다. 또한, 중계 장치(108)는 예를 들어, MQTT(Message Queuing Telemetry Transport) 프로토콜을 지원할 수 있으며, 상기 MQTT 프로토콜을 통해 제2 디바이스(106)와 각종 데이터를 송수신할 수 있다.
세션 매니저(506)는 제2 디바이스(106)의 세션 정보를 관리한다.
데이터 변환 모듈(508)은 서버(102)로부터 수신된 데이터를 제2 디바이스(106)가 수신 가능한 형태로 변환하거나 제2 디바이스(106)로부터 수신된 데이터를 서버(102)가 수신 가능한 형태로 변환한다.
데이터베이스(510)는 서버(102)와 제2 디바이스(106) 간 통신에 필요한 각종 정보가 저장되는 저장소이다. 데이터베이스(510)에는 예를 들어, 제2 디바이스(106)의 정보, 세션 정보(예를 들어, 세션 아이디 등) 등이 저장될 수 있다.
도 6은 본 발명의 일 실시예에 따른 키 토큰의 생성 및 해시 코드의 분배 과정을 설명하기 위한 흐름도이다. 도 6 내지 도 12에 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
단계 102에서, 정책 매니저(202)는 정책 입력에 따라 토큰 매니저(204)로 키 토큰(T)의 생성을 요청한다.
단계 104에서, 토큰 매니저(204)는 키 토큰(T)을 생성한다.
단계 106에서, 토큰 매니저(204)는 상기 키 토큰(T)(또는 키 토큰(T)의 최초 해시값)을 설정된 최대 카운트만큼 반복적으로 해시함으로써 획득되는 제1 해시값들을 해시 함수가 적용된 횟수 순으로 순차적으로 연결한다. 여기서는, 설명의 편의상 최대 카운트가 100인 것으로 가정한다.
단계 108에서, 토큰 매니저(204)는 제2 디바이스 매니저(208)로 해시 코드의 동기화를 요청한다.
단계 110에서, 토큰 매니저(204)는 제2 디바이스(106)를 검색하고, 키 토큰의 최초 해시값, 최대 카운트에 관한 정보, 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 제2 디바이스(106)로 전송하면서 해시 코드의 동기화를 요청한다.
단계 112에서, 제2 디바이스(106)는 키 토큰의 최초 해시값, 최대 카운트에 관한 정보, 입력된 정책, 키 토큰의 유효 기간에 관한 정보 등을 저장한다. 여기서, 제2 디바이스(106)에 저장된 최대 카운트를 제2 최대 카운트라 칭하기로 한다.
단계 114에서, 제2 디바이스(106)는 제2 디바이스(106)에 저장된 제2 최대 카운트에 관한 정보(예를 들어, Max Count = 100)를 제2 디바이스 매니저(208)로 전송한다.
단계 116에서, 제2 디바이스 매니저(208)는 제2 디바이스(106)로부터 수신된 제2 최대 카운트에 관한 정보(예를 들어, Max Count = 100)를 토큰 매니저(204)로 전송한다.
단계 118에서, 토큰 매니저(204)는 제1 디바이스 매니저(206)로 해시 코드의 동기화를 요청한다.
단계 120에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)를 검색하고, 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 최대 카운트에 관한 정보, 키 토큰의 유효 기간에 관한 정보 등을 제1 디바이스(104)로 전송하면서 해시 코드의 동기화를 요청한다.
단계 122에서, 제1 디바이스(104)는 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 최대 카운트에 관한 정보, 키 토큰의 유효 기간에 관한 정보 등을 암호화하여 저장한다. 여기서, 제1 디바이스(104)에 저장된 최대 카운트를 제1 최대 카운트라 칭하기로 한다.
단계 124에서, 제1 디바이스(104)는 제1 디바이스(104)에 저장된 제1 최대 카운트에 관한 정보(예를 들어, Max Count = 100)를 제1 디바이스 매니저(206)로 전송한다.
단계 126에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)로부터 수신된 제1 최대 카운트에 관한 정보(예를 들어, Max Count = 100)를 토큰 매니저(204)로 전송한다.
단계 128에서, 토큰 매니저(204)는 제1 디바이스(104)로부터 수신된 제1 최대 카운트(예를 들어, Max Count = 100)와 제2 디바이스(106)로부터 수신된 제2 최대 카운트(예를 들어, Max Count = 100)를 비교한다. 만약, 제1 디바이스(104)로부터 수신된 제1 최대 카운트(예를 들어, Max Count = 100)와 제2 디바이스(106)로부터 수신된 제2 최대 카운트(예를 들어, Max Count = 100)가 일치하는 경우, 토큰 매니저(204)는 해시 코드의 동기화가 성공한 것으로 판단한다. 반면, 제1 디바이스(104)로부터 수신된 제1 최대 카운트와 제2 디바이스(106)로부터 수신된 제2 최대 카운트가 일치하지 않는 경우, 토큰 매니저(204)는 해시 코드의 동기화가 실패한 것으로 판단하고, 제1 디바이스 매니저(206) 및 제2 디바이스 매니저(208)로 해시 코드의 동기화를 재요청할 수 있다.
단계 130에서, 토큰 매니저(204)는 해시 코드의 동기화 결과를 정책 매니저(202)로 전송한다.
한편, 여기서는 서버(102)가 해시 코드를 제1 디바이스(104) 및 제2 디바이스(106)에 각각 분배하는 과정에서 제1 디바이스(104) 및 제2 디바이스(106)에 저장된 해시 코드를 동기화하는 것으로 설명하였으나 이는 일 예시에 불과하다. 서버(102)는 해시 코드가 제1 디바이스(104) 및 제2 디바이스(106)에 각각 분배된 이후 어느 때라도 상술한 동기화 작업을 수행할 수 있다. 예를 들어, 서버(102)는 후술할 도 7의 디바이스 간 인증 과정 중 제1 디바이스(104) 및 제2 디바이스(106)로 동기화 요청 메시지를 전송하여 제1 디바이스(104) 및 제2 디바이스(106)에 저장된 해시 코드의 동기화 작업을 수행할 수 있다.
도 7은 본 발명의 제1 실시예에 따른 디바이스(104, 106) 간 인증 과정을 설명하기 위한 흐름도이다.
단계 202에서, 제1 디바이스(104)는 제1 해시값들 중 제1 최대 카운트에 대응되는 제1 해시값을 전송한다. 여기서, 제1 최대 카운트는 예를 들어, 100인 것으로 가정한다. 제1 디바이스(104)는 예를 들어, 제1 해시값들 중 제1 최대 카운트에 대응되는 제1 해시값인 H100(T)를 입력된 정책, 현재 시간, 제1 디바이스(104)의 아이디 등과 함께 제2 디바이스(106)로 전송할 수 있다. 이때, 상기 H100(T)은 네트워크 상의 문제로 제2 디바이스(106)로 제대로 전달되지 않은 것으로 가정한다.
단계 204에서, 제1 디바이스(104)는 전송된 제1 해시값, 즉 H100(T)을 상기 제1 해시값들의 연결에서 삭제하고 제1 디바이스(104)에 저장된 제1 최대 카운트를 100에서 99로 차감한다. 즉, 제1 디바이스(104)가 해시 함수가 N번 적용된 제1 해시값(즉, HN(T))을 제2 디바이스(106)로 전송한 경우, 제1 디바이스(104)는 상기 HN(T)을 상술한 체인에서 삭제하여 소진하고, 저장된 제1 최대 카운트를 N에서 N-1로 차감할 수 있다.
단계 206에서, 제1 디바이스(104)는 제1 해시값들 중 제1 최대 카운트에 대응되는 제1 해시값을 전송한다. 여기서, 제1 최대 카운트는 99이므로, 제1 디바이스(104)는 제1 최대 카운트에 대응되는 제1 해시값인 H99(T)를 입력된 정책, 현재 시간, 제1 디바이스(104)의 아이디 등과 함께 제2 디바이스(106)로 전송할 수 있다. 이때, 상기 H99(T)은 제2 디바이스(106)로 정상적으로 전달된 것으로 가정한다.
단계 208에서, 제1 디바이스(104)는 전송된 제1 해시값, 즉 H99(T)을 상기 제1 해시값들의 연결에서 삭제하고 제1 디바이스(104)에 저장된 제1 최대 카운트를 99에서 98로 차감한다.
단계 210에서, 제2 디바이스(106)는 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 최초 해시값을 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교한다. 일 예시로서, 제2 디바이스(106)는 제1 해시값 H99(T)와 제2 해시값 H1(T), 제1 해시값 H99(T)와 제2 해시값 H2(T), 제1 해시값 H99(T)와 제2 해시값 H3(T)… 을 각각 비교할 수 있다. 이때, 제2 디바이스(106)는 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 최초 해시값을 제2 최대 카운트 이하만큼 반복적으로 해시할 수 있다.
단계 S212에서, 제1 해시값과 일치하는 제2 해시값이 나오는 경우, 제2 디바이스(106)는 제1 디바이스(104)의 인증이 성공한 것으로 판단한다.
단계 S214에서, 제2 디바이스(106)는 N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감한다. 위 예시에서, 99번 해시된 제2 해시값 H99(T)이 제1 해시값 H99(T)과 일치하므로, 제2 디바이스(106)는 제2 최대 카운트를 100에서 99로 차감할 수 있다.
단계 216에서, 제2 디바이스(106)는 제1 디바이스(104)로부터 수신된 정책에 대응되는 커맨드를 수행한다.
도 8은 본 발명의 제2 실시예에 따른 디바이스 간 인증 과정을 설명하기 위한 흐름도이다.
S218 단계에서, 제1 디바이스(104)는 제1 해시값과 상기 제1 해시값에 대응되는 해시 넘버(M)를 제2 디바이스(106)로 전송한다. 여기서, 해시 넘버(M)는 해시 함수가 적용된 횟수를 나타낸다. 일 예시로서, 제1 디바이스(104)는 제1 해시값 H50(T)과 제1 해시값 H50(T)에 대응되는 해시 넘버 M = 50을 제3 디바이스(106)로 전송할 수 있다.
S220 단계에서, 제1 디바이스(104)는 제1 디바이스(104)는 전송된 제1 해시값, 즉 H50(T)을 상기 제1 해시값들의 연결에서 삭제하고 제1 디바이스(104)에 저장된 제1 최대 카운트를 50에서 49로 차감한다.
단계 222에서, 제2 디바이스(106)는 상기 최초 해시값을 해시 넘버(M)만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교한다. 이때, 제2 디바이스(106)는 먼저 해시 넘버(M)가 제2 최대 카운트보다 작은지의 여부를 확인할 수 있다. 일 예시로서, 해시 넘버 M = 50 이고 제2 최대 카운트가 51인 경우, 제2 디바이스(106)는 M = 50 < 제2 최대 카운트 = 51임을 확인할 수 있다. 이 경우, 제2 디바이스(106)는 제1 해시값 H50(T)와 제2 해시값 H1(T), 제1 해시값 H50(T)와 제2 해시값 H2(T), 제1 해시값 H50(T)와 제2 해시값 H3(T)… H50(T)와 제2 해시값 H50(T)을 각각 비교할 수 있다.
단계 S224에서, 제1 해시값과 일치하는 제2 해시값이 나오는 경우, 제2 디바이스(106)는 제1 디바이스(104)의 인증이 성공한 것으로 판단한다.
단계 S226에서, 제2 디바이스(106)는 N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감한다. 위 예시에서, 50번 해시된 제2 해시값 H50(T)이 제1 해시값 H50(T)과 일치하므로, 제2 디바이스(106)는 제2 최대 카운트를 51에서 50으로 차감할 수 있다.
단계 228에서, 제2 디바이스(106)는 제1 디바이스(104)로부터 수신된 정책에 대응되는 커맨드를 수행한다.
도 9는 본 발명의 제1 실시예에 따른 키 토큰의 갱신 과정을 설명하기 위함 흐름도이다.
단계 302에서, 제1 디바이스(104)는 서버(102)에서 생성된 키 토큰을 갱신할 필요가 있는지 확인한다. 일 예시로서, 키 토큰의 유효 기간이 설정된 기간 이상 남은 상태에서 체인에 연결된 제1 해시값들의 개수(또는 제1 디바이스(104)에 저장된 최대 카운트의 수)가 설정된 값(예를 들어, 1) 이하가 되는 경우, 제1 디바이스(104)는 키 토큰의 갱신이 필요한 것으로 판단할 수 있다.
단계 304에서, 제1 디바이스(104)는 토큰 매니저(204)로 키 토큰 및 최대 카운트의 갱신을 요청한다.
단계 306에서, 토큰 매니저(204)는 새로운 키 토큰(T')을 생성한다.
단계 308에서, 토큰 매니저(204)는 상기 키 토큰(T')을 설정된 최대 카운트(예를 들어, Max Count' = 50)만큼 반복적으로 해시함으로써 획득되는 제1 해시값들을 해시 함수가 적용된 횟수 순으로 순차적으로 연결한다. 여기서는, 설명의 편의상 갱신된 최대 카운트가 50인 것으로 가정한다.
단계 310에서, 토큰 매니저(204)는 제2 디바이스 매니저(208)로 해시 코드의 동기화를 요청한다.
단계 312에서, 토큰 매니저(204)는 제2 디바이스(106)를 검색하고, 갱신된 키 토큰(T')의 최초 해시값, 갱신된 최대 카운트에 관한 정보, 입력된 정책, 갱신된 키 토큰(T')의 유효 기간에 관한 정보 등을 제2 디바이스(106)로 전송하면서 해시 코드의 동기화를 요청한다.
단계 314에서, 제2 디바이스(106)는 (T')의 최초 해시값, 갱신된 최대 카운트에 관한 정보, 입력된 정책, 갱신된 키 토큰(T')의 유효 기간에 관한 정보 등을 저장한다. 여기서, 제2 디바이스(106)에 저장된 갱신된 최대 카운트를 갱신된 제2 최대 카운트라 칭하기로 한다.
단계 316에서, 제2 디바이스(106)는 제2 디바이스(106)에 저장된 제2 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)를 제2 디바이스 매니저(208)로 전송한다.
단계 318에서, 제2 디바이스 매니저(208)는 제2 디바이스(106)로부터 수신된 제2 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)를 토큰 매니저(204)로 전송한다.
단계 320에서, 토큰 매니저(204)는 제1 디바이스 매니저(206)로 해시 코드의 동기화를 요청한다.
단계 322에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)를 검색하고, 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 갱신된 최대 카운트에 관한 정보, 갱신된 키 토큰(T')의 유효 기간에 관한 정보 등을 제1 디바이스(104)로 전송하면서 해시 코드의 동기화를 요청한다.
단계 324에서, 제1 디바이스(104)는 순차적으로 연결된 제1 해시값들(즉, 제1 해시값들의 체인), 입력된 정책, 갱신된 최대 카운트에 관한 정보, 갱신된 키 토큰(T')의 유효 기간에 관한 정보 등을 암호화하여 저장한다. 여기서, 제1 디바이스(104)에 저장된 갱신된 최대 카운트를 갱신된 제1 최대 카운트라 칭하기로 한다.
단계 326에서, 제1 디바이스(104)는 제1 디바이스(104)에 저장된 제1 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)를 제1 디바이스 매니저(206)로 전송한다.
단계 328에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)로부터 수신된 제1 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)를 토큰 매니저(204)로 전송한다.
단계 330에서, 토큰 매니저(204)는 제1 디바이스(104)로부터 수신된 제1 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)와 제2 디바이스(106)로부터 수신된 제2 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)를 비교한다. 만약, 제1 디바이스(104)로부터 수신된 제1 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)와 제2 디바이스(106)로부터 수신된 제2 최대 카운트에 관한 정보(예를 들어, Max Count' = 50)가 일치하는 경우, 토큰 매니저(204)는 해시 코드의 동기화가 성공한 것으로 판단한다.
단계 332에서, 토큰 매니저(204)는 해시 코드의 동기화 결과를 정책 매니저(202)로 전송한다.
한편, 여기서는 S302 단계 및 S304 단계가 제1 디바이스(104)에서 수행되는 것으로 기재하였으나 이에 한정되는 것은 아니며, 실시예에 따라 상기 S302 단계 및 S304 단계는 제2 디바이스(106)에서 수행될 수도 있다.
도 10은 본 발명의 제2 실시예에 따른 키 토큰의 갱신 과정을 설명하기 위함 흐름도이다.
S402 단계에서, 정책 매니저(202)는 기간계 시스템으로부터 변경된 정책을 입력 받는다.
S404 단계에서, 정책 매니저(202)는 정책 변경에 따라 토큰 매니저(204)로 키 토큰 및 최대 카운트의 갱신을 요청한다.
이후, S406 단계 내지 S432 단계가 수행된다. S406 단계 내지 S432 단계는 앞선 S306 단계 내지 S332 단계와 동일하므로, 여기서는 그 자세한 설명을 생략하기로 한다.
도 11은 도 10에서의 키 토큰의 갱신에 따른 이전 키 토큰의 폐기 과정을 설명하기 위한 흐름도이다.
S434 단계에서, 정책 매니저(202)는 토큰 매니저(204)로 키 토큰의 갱신 완료 메시지를 전송한다.
S436 단계에서, 토큰 매니저(204)는 제1 디바이스 매니저(206)로 제1 디바이스(104)에 저장된 이전 해시 코드에 대한 폐기를 요청한다.
S438 단계에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)로 제1 디바이스(104)에 저장된 이전 해시 코드에 대한 폐기를 요청한다.
S440 단계에서, 제1 디바이스(104)는 제1 디바이스(104)에 저장된 이전 해시 코드를 폐기한다.
S442 단계에서, 토큰 매니저(204)는 제2 디바이스 매니저(208)로 제2 디바이스(106)에 저장된 이전 해시 코드에 대한 폐기를 요청한다.
S444 단계에서, 제2 디바이스 매니저(208)는 제2 디바이스(106)로 제2 디바이스(106)에 저장된 이전 해시 코드에 대한 폐기를 요청한다.
S446 단계에서, 제2 디바이스(106)는 제1 디바이스(104)에 저장된 이전 해시 코드를 폐기한다.
도 12는 본 발명의 제1 실시예에 따른 키 토큰의 폐기 과정을 설명하기 위함 흐름도이다.
S502 단계에서, 제1 디바이스(104)는 서버(102)에서 생성된 키 토큰에 대한 유효성의 만료 여부를 확인한다. 일 예시로서, 키 토큰의 유효 기간이 설정된 기간 이하로 남은 상태에서 제1 디바이스(104)에 저장된 최대 카운트의 수가 설정된 값(예를 들어, 1) 이하가 되는 경우(또는 체인에 연결된 제1 해시값들이 모두 소진되는 경우), 제1 디바이스(104)는 키 토큰의 폐기가 필요한 것으로 판단할 수 있다.
S504 단계에서, 제1 디바이스(104)는 토큰 매니저(204)로 키 토큰의 폐기를 요청한다.
S506 단계에서, 토큰 매니저(204)는 제2 디바이스 매니저(208)로 제2 디바이스(106)에 저장된 해시 코드의 폐기를 요청한다.
S508 단계에서, 제2 디바이스 매니저(208)는 제2 디바이스(106)로 제2 디바이스(106)에 저장된 남은 해시 코드의 폐기를 요청한다.
S510 단계에서, 제2 디바이스(106)는 제2 디바이스(106)에 저장된 남은 해시 코드를 폐기한다.
S512 단계에서, 제2 디바이스(106)는 해시 코드의 폐기 완료 메시지를 제2 디바이스 매니저(208)로 전송한다.
S514 단계에서, 제2 디바이스 매니저(208)는 제2 디바이스(106)로부터 수신된 해시 코드의 폐기 완료 메시지를 토큰 매니저(204)로 전송한다.
S516 단계에서, 토큰 매니저(204)는 제1 디바이스 매니저(206)로 제1 디바이스(104)에 저장된 해시 코드의 폐기를 요청한다.
S518 단계에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)로 제1 디바이스(104)에 저장된 남은 해시 코드의 폐기를 요청한다.
S520 단계에서, 제1 디바이스(104)는 제1 디바이스(104)에 저장된 남은 해시 코드를 폐기한다.
S522 단계에서, 제1 디바이스(104)는 해시 코드의 폐기 완료 메시지를 제1 디바이스 매니저(206)로 전송한다.
S524 단계에서, 제1 디바이스 매니저(206)는 제1 디바이스(104)로부터 수신된 해시 코드의 폐기 완료 메시지를 토큰 매니저(204)로 전송한다.
S526 단계에서, 토큰 매니저(204)는 토큰 매니저(204)는 해시 코드의 동기화 결과를 정책 매니저(202)로 전송한다.
S528 단계에서, 정책 매니저(202)는 동기화 결과에 대한 확인 메시지를 토큰 매니저(204)로 전송한다.
S530 단계에서, 토큰 매니저(204)는 서버(102)에 저장된 키 토큰을 폐기한다.
한편, 여기서는 S502 단계 및 S504 단계가 제1 디바이스(104)에서 수행되는 것으로 기재하였으나 이에 한정되는 것은 아니며, 실시예에 따라 상기 S502 단계 및 S504 단계는 제2 디바이스(106)에서 수행될 수도 있다.
도 13은 본 발명의 제2 실시예에 따른 키 토큰의 폐기 과정을 설명하기 위함 흐름도이다.
S602 단계에서, 정책 매니저(202)는 입력된 정책에 대한 유효성의 만료 여부를 확인한다. 일 예시로서, 입력된 정책 또는 키 토큰의 남은 유효 기간이 만료되는 경우, 정책 매니저(202)는 키 토큰의 폐기가 필요한 것으로 판단할 수 있다.
S604 단계에서, 정책 매니저(202)는 토큰 매니저(204)로 키 토큰의 폐기를 요청한다.
이후, S606 단계 내지 S630 단계가 수행된다. SS606 단계 내지 S630 단계는 앞선 S506 단계 내지 S530 단계와 동일하므로, 여기서는 그 자세한 설명을 생략하기로 한다. 한편, 여기서는 키 토큰 또는 입력된 정책의 유효성이 만료되는 경우 서버(102)가 키 토큰을 폐기하는 것으로 설명하였으나 이는 일 예시에 불과하며, 키 토큰이 폐기되는 경우가 이에 한정되는 것은 아니다. 예를 들어, 서버(102)는 제1 디바이스(104) 또는 제2 디바이스(106)에서 악성 코드가 감지되는 경우, 사용자의 아이디가 위조된 것으로 판별되는 경우 등과 같이 키 토큰의 유효성이 상실되는 경우 키 토큰을 폐기할 수 있다. 또한, 서버(102)는 관리자의 강제 조치에 의해 키 토큰을 폐기할 수도 있다.
한편, 상술한 통신 시스템(100)은 차량 예약 및 제어 서비스, 도어락 제어 서비스 등과 같은 다양한 서비스에 적용될 수 있다. 일 예시로서, 통신 시스템(100)이 차량 예약 및 제어 서비스에 적용되는 경우, 제1 디바이스(104)는 사용자가 소지하는 사용자 단말, 예를 들어 스마트폰일 수 있으며, 제2 디바이스(106)는 차량에 탑재되는 보안 모듈, 예를 들어 CSM(Cypto Service Manager)일 수 있다.
이 경우, 사용자는 제1 디바이스(104)에 설치된 모바일 애플리케이션을 통해 차량 사용에 대한 예약 요청 및 예약 기간을 입력할 수 있다. 서버(102)는 제1 디바이스(104)와 연동되는 기간계 시스템(미도시)로부터 상기 예약 요청 및 예약 기간에 관한 정보를 수신하고, 상기 차량에 대한 사용자의 예약이 완료됨에 따라 키 토큰 및 최대 카운트를 생성할 수 있다. 이때, 제1 최대 카운트 및 제2 최대 카운트는 차량에 대한 사용자의 예약 기간에 비례할 수 있다. 예를 들어, 사용자의 예약 기간이 5일인 경우 제1 최대 카운트 및 제2 최대 카운트는 100일 수 있으며, 사용자의 예약 기간이 3일인 경우 제1 최대 카운트 및 제2 최대 카운트는 50일 수 있다. 또한, 상기 차량에 대한 사용자의 예약이 변경되는 경우, 서버(102)는 생성된 키 토큰을 폐기하고 재생성할 수 있다.
상기 차량에 대한 사용자의 예약 완료 또는 예약 변경시, 서버(102)는 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 제1 디바이스(104)로 전송하고, 상기 키 토큰의 최초 해시값 및 상기 제2 최대 카운트에 관한 정보를 제2 디바이스(106)로 전송할 수 있다. 다만, 상기 키 토큰 및 최대 카운트가 반드시 서버(102)에서 생성되는 것은 아니며, 제1 디바이스(104) 및 제2 디바이스(106), 또는 이와 다른 별도의 장소에서 생성될 수도 있다.
또한, 서버(102)는 상기 차량에 대한 사용자의 예약 취소시 생성된 키 토큰을 폐기하고, 제1 디바이스(104) 및 제2 디바이스(106)로 상기 제1 해시값들 및 상기 제2 해시값들의 폐기를 각각 요청할 수 있다.
도 14는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 서버(102), 제1 디바이스(104), 제2 디바이스(106) 또는 중계 장치(108)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 통신 시스템
102 : 서버
104 : 제1 디바이스
106 : 제2 디바이스
108 : 중계 장치
202 : 정책 매니저
204 : 토큰 매니저
206 : 제1 디바이스 매니저
208 : 제2 디바이스 매니저
210 : 인터페이스
212, 306, 408 : 커맨드 매니저
214 : 권한 설정 매니저
216 : 인증 매니저
218, 510 : 데이터베이스
302, 402, 502 : 제1 인터페이스
304 : 접속 매니저
308, 406 : 스마트 키 매니저
310, 404, 504 : 제2 인터페이스
312 : 스토리지
506 : 세션 매니저
508 : 데이터 변환 모듈

Claims (22)

  1. 키 토큰(key token)이 설정된 제1 최대 카운트(maximum count)만큼 반복적으로 해시됨으로써 생성되는 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트가 저장되며, 상기 제1 해시값들 중 상기 제1 최대 카운트에 대응되는 제1 해시값을 전송하고 상기 제1 해시값이 전송될 때마다 상기 제1 최대 카운트를 1씩 차감하는 제1 디바이스; 및
    상기 키 토큰에 관한 정보 및 제2 최대 카운트가 저장되며, 상기 제1 디바이스로부터 상기 제1 해시값을 수신하고, 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 키 토큰에 관한 정보를 상기 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하고, 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감하는 제2 디바이스;
    상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하고, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 서버를 포함하는, 디바이스 간 통신 시스템.
  2. 청구항 1에 있어서,
    상기 키 토큰에 관한 정보는, 상기 키 토큰 또는 상기 키 토큰을 설정된 횟수만큼 해시한 값을 포함하는, 디바이스 간 통신 시스템.
  3. 청구항 1에 있어서,
    상기 제2 디바이스는, N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감하는(단, N < 제2 최대 카운트), 디바이스 간 통신 시스템.
  4. 청구항 1에 있어서,
    상기 제1 디바이스는, 상기 제1 해시값과 상기 제1 해시값에 대응되는 해시 넘버(M)를 상기 제2 디바이스로 전송하고,
    상기 제2 디바이스는, 상기 키 토큰에 관한 정보를 상기 해시 넘버(M)만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하는, 디바이스 간 통신 시스템.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 키 토큰은, 설정된 유효 기간을 가지며,
    상기 제1 디바이스는, 상기 서버로부터 상기 유효 기간에 관한 정보를 수신하고, 상기 유효 기간이 설정된 기간을 초과하여 남은 상태에서 상기 제1 최대 카운트의 수가 설정된 값 이하가 되는 경우 상기 서버로 상기 키 토큰 및 상기 제1 최대 카운트의 갱신을 요청하는, 디바이스 간 통신 시스템.
  7. 청구항 1에 있어서,
    상기 제1 디바이스는, 사용자 단말이고,
    상기 제2 디바이스는, 차량에 탑재되는 보안 모듈인, 디바이스 간 통신 시스템.
  8. 청구항 7에 있어서,
    상기 키 토큰은, 상기 차량에 대한 사용자의 예약이 완료됨에 따라 생성되고, 상기 사용자의 예약이 변경되는 경우 재생성되는, 디바이스 간 통신 시스템.
  9. 청구항 8에 있어서,
    상기 제1 최대 카운트 및 상기 제2 최대 카운트는, 상기 차량에 대한 상기 사용자의 예약 기간에 비례하는, 디바이스 간 통신 시스템.
  10. 청구항 8에 있어서,
    상기 차량에 대한 상기 사용자의 예약 완료 또는 예약 변경시, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하고, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 서버를 더 포함하는, 디바이스 간 통신 시스템.
  11. 청구항 10에 있어서,
    상기 서버는, 상기 차량에 대한 상기 사용자의 예약 취소시 상기 키 토큰을 폐기하고, 상기 제1 디바이스 및 상기 제2 디바이스로 상기 제1 해시값들 및 상기 제2 해시값들의 폐기를 각각 요청하는, 디바이스 간 통신 시스템.
  12. 서버에서, 제1 해시값들, 제1 해시값들의 순차적인 연결 관계 및 제1 최대 카운트에 관한 정보를 제1 디바이스로 전송하는 단계;
    키 토큰이 설정된 제1 최대 카운트만큼 반복적으로 해시됨으로써 생성되는 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트가 저장되는 제1 디바이스에서, 상기 제1 해시값들 중 상기 제1 최대 카운트에 대응되는 제1 해시값을 전송하는 단계;
    상기 제1 디바이스에서, 상기 제1 해시값이 전송될 때마다 상기 제1 최대 카운트를 1씩 차감하는 단계;
    상기 서버에서, 상기 키 토큰에 관한 정보 및 제2 최대 카운트에 관한 정보를 제2 디바이스로 전송하는 단계;
    상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트가 저장되는 상기 제2 디바이스에서, 상기 제1 디바이스로부터 상기 제1 해시값을 수신하는 단계;
    상기 제2 디바이스에서, 상기 제1 해시값과 일치하는 값이 나올 때까지 상기 키 토큰에 관한 정보를 상기 제2 최대 카운트 이하만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하는 단계; 및
    상기 제2 디바이스에서, 상기 제1 해시값과 일치하는 제2 해시값에 기초하여 상기 제2 최대 카운트를 차감하는 단계를 포함하는, 디바이스 간 통신 방법.
  13. 청구항 12에 있어서,
    상기 키 토큰에 관한 정보는, 상기 키 토큰 또는 상기 키 토큰을 설정된 횟수만큼 해시한 값을 포함하는, 디바이스 간 통신 방법.
  14. 청구항 12에 있어서,
    상기 제2 최대 카운트를 차감하는 단계는, N번 해시된 제2 해시값이 상기 제1 해시값과 일치하는 경우 상기 제2 최대 카운트를 상기 N으로 차감하는(단, N < 제2 최대 카운트), 디바이스 간 통신 방법.
  15. 청구항 12에 있어서,
    상기 제1 디바이스에서, 상기 제1 해시값과 상기 제1 해시값에 대응되는 해시 넘버(M)를 상기 제2 디바이스로 전송하는 단계; 및
    상기 제2 디바이스에서, 상기 키 토큰에 관한 정보를 상기 해시 넘버(M)만큼 반복적으로 해시함으로써 생성되는 제2 해시값들을 상기 제1 해시값과 각각 비교하는 단계를 더 포함하는, 디바이스 간 통신 방법.
  16. 삭제
  17. 청구항 12에 있어서,
    상기 키 토큰은, 설정된 유효 기간을 가지며,
    상기 제1 디바이스에서, 상기 서버로부터 상기 유효 기간에 관한 정보를 수신하는 단계; 및
    상기 제1 디바이스에서, 상기 유효 기간이 설정된 기간을 초과하여 남은 상태에서 상기 제1 최대 카운트의 수가 설정된 값 이하가 되는 경우 상기 서버로 상기 키 토큰 및 상기 제1 최대 카운트의 갱신을 요청하는 단계를 더 포함하는, 디바이스 간 통신 방법.
  18. 청구항 12에 있어서,
    상기 제1 디바이스는, 사용자 단말이고,
    상기 제2 디바이스는, 차량에 탑재되는 보안 모듈인, 디바이스 간 통신 방법.
  19. 청구항 18에 있어서,
    상기 키 토큰은, 상기 차량에 대한 사용자의 예약이 완료됨에 따라 생성되고, 상기 사용자의 예약이 변경되는 경우 재생성되는, 디바이스 간 통신 방법.
  20. 청구항 19에 있어서,
    상기 제1 최대 카운트 및 상기 제2 최대 카운트는, 상기 차량에 대한 상기 사용자의 예약 기간에 비례하는, 디바이스 간 통신 방법.
  21. 청구항 19에 있어서,
    서버에서, 상기 차량에 대한 상기 사용자의 예약 완료 또는 예약 변경시, 상기 제1 해시값들, 상기 제1 해시값들의 순차적인 연결 관계 및 상기 제1 최대 카운트에 관한 정보를 상기 제1 디바이스로 전송하는 단계; 및
    상기 서버에서, 상기 키 토큰에 관한 정보 및 상기 제2 최대 카운트에 관한 정보를 상기 제2 디바이스로 전송하는 단계를 더 포함하는, 디바이스 간 통신 방법.
  22. 청구항 21에 있어서,
    상기 서버에서, 상기 차량에 대한 상기 사용자의 예약 취소시 상기 키 토큰을 폐기하는 단계; 및
    상기 서버에서, 상기 제1 디바이스 및 상기 제2 디바이스로 상기 제1 해시값들 및 상기 제2 해시값들의 폐기를 각각 요청하는 단계를 더 포함하는, 디바이스 간 통신 방법.
KR1020170067356A 2017-05-31 2017-05-31 디바이스 간 통신 시스템 및 방법 KR102239488B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170067356A KR102239488B1 (ko) 2017-05-31 2017-05-31 디바이스 간 통신 시스템 및 방법
CN201810373600.0A CN108990057B (zh) 2017-05-31 2018-04-24 设备间通信***及方法
US15/968,146 US11042954B2 (en) 2017-05-31 2018-05-01 System and method for communication between devices
EP18171429.6A EP3410670B1 (en) 2017-05-31 2018-05-09 System and method for communicating between devices using a one-time password

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170067356A KR102239488B1 (ko) 2017-05-31 2017-05-31 디바이스 간 통신 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20180130969A KR20180130969A (ko) 2018-12-10
KR102239488B1 true KR102239488B1 (ko) 2021-04-12

Family

ID=62152360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170067356A KR102239488B1 (ko) 2017-05-31 2017-05-31 디바이스 간 통신 시스템 및 방법

Country Status (4)

Country Link
US (1) US11042954B2 (ko)
EP (1) EP3410670B1 (ko)
KR (1) KR102239488B1 (ko)
CN (1) CN108990057B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101980190B1 (ko) * 2017-09-25 2019-05-21 서울대학교산학협력단 입출력 디바이스 제어 장치, 그것의 동작 방법 및 입출력 디바이스 제어 장치 드라이버의 동작 방법
JP6717793B2 (ja) * 2017-10-10 2020-07-08 株式会社東海理化電機製作所 カーシェアリングシステム及びカーシェア装置
JP2020030626A (ja) * 2018-08-23 2020-02-27 セイコーエプソン株式会社 処理システム、制御システム、中継装置及び通信方法
CN112910627B (zh) * 2019-12-03 2023-02-10 华为技术有限公司 密钥的更新方法、数据解密方法、数字签名的验证方法
FR3113634B1 (fr) * 2020-08-27 2022-10-14 Psa Automobiles Sa Procédé et système de supervision de clés digitales de véhicules
US11556264B1 (en) 2021-07-26 2023-01-17 Bank Of America Corporation Offline data transfer between devices using gestures
FR3126249B1 (fr) 2021-08-18 2023-07-07 Continental Automotive Procédé, dispositif et système d’autorisation d’accès à un véhicule partagé

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016131482A1 (en) * 2015-02-18 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Establishing and managing identities for constrained devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038707A1 (en) * 2002-08-30 2005-02-17 Navio Systems, Inc. Methods and apparatus for enabling transactions in networks
US7600255B1 (en) * 2004-04-14 2009-10-06 Cisco Technology, Inc. Preventing network denial of service attacks using an accumulated proof-of-work approach
US7702333B2 (en) * 2006-05-11 2010-04-20 Intel Corporation Wireless local area network and methods for secure resource reservations for fast roaming
CN102045170B (zh) * 2010-12-28 2013-02-20 北京深思洛克软件技术股份有限公司 一种实现口令安全保护的方法及***
KR20150000280A (ko) 2013-06-24 2015-01-02 제주대학교 산학협력단 D2d 통신 기반의 모바일 단말을 이용한 전기 자동차 상태 관리 및 제어 시스템
KR102318279B1 (ko) * 2014-02-18 2021-10-28 삼성전자주식회사 무선 통신 시스템에서 인증 정보 송수신 방법 및 장치
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
KR102468390B1 (ko) * 2017-05-31 2022-11-18 삼성에스디에스 주식회사 토큰 관리 방법 및 이를 수행하기 위한 서버
WO2019018337A1 (en) * 2017-07-20 2019-01-24 Walmart Apollo, Llc TASK MANAGEMENT OF AUTONOMOUS PRODUCT DELIVERY VEHICLES

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016131482A1 (en) * 2015-02-18 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Establishing and managing identities for constrained devices

Also Published As

Publication number Publication date
EP3410670B1 (en) 2021-06-16
CN108990057B (zh) 2023-04-18
CN108990057A (zh) 2018-12-11
US11042954B2 (en) 2021-06-22
EP3410670A1 (en) 2018-12-05
KR20180130969A (ko) 2018-12-10
US20180351746A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
KR102468390B1 (ko) 토큰 관리 방법 및 이를 수행하기 위한 서버
KR102239488B1 (ko) 디바이스 간 통신 시스템 및 방법
KR102362795B1 (ko) 해시 체인을 이용한 단말 간 인증 절차를 거치는 단말 간 통신 방법
AU2019344067B2 (en) Wireless access credential system
JP6086987B2 (ja) ホットスポットネットワークにおける未知のデバイスに対する制限付き証明書登録
WO2018177143A1 (zh) 一种身份认证的方法、***及服务器和终端
US11522840B2 (en) Automatic client device registration
US20140019757A1 (en) Authentication method and system
US11475134B2 (en) Bootstrapping a device
KR101967380B1 (ko) 키 관리 시스템
US20140189789A1 (en) Method and apparatus for ensuring collaboration between a narrowband device and a broadband device
JP7141723B2 (ja) 無線通信システムを介してアクチュエータを制御するための装置、システムおよび方法
TW201824811A (zh) 具訪客身份驗證的時限門禁管理系統及其方法
CN115913611A (zh) 无账号体系iot设备的绑定方法及存储介质
JP2017034306A (ja) ネットワークシステム、端末、及びプログラム

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