KR102706926B1 - 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 - Google Patents
차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 Download PDFInfo
- Publication number
- KR102706926B1 KR102706926B1 KR1020230149014A KR20230149014A KR102706926B1 KR 102706926 B1 KR102706926 B1 KR 102706926B1 KR 1020230149014 A KR1020230149014 A KR 1020230149014A KR 20230149014 A KR20230149014 A KR 20230149014A KR 102706926 B1 KR102706926 B1 KR 102706926B1
- Authority
- KR
- South Korea
- Prior art keywords
- identifier
- distributed
- data
- resource
- target resource
- Prior art date
Links
- 238000007726 management method Methods 0.000 title abstract description 171
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 77
- 230000006854 communication Effects 0.000 claims description 76
- 238000004891 communication Methods 0.000 claims description 75
- 238000012795 verification Methods 0.000 claims description 51
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 47
- 230000015654 memory Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 230000008520 organization Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치가 개시된다. 분산 식별자 관리 방법은 제공자 장치로부터 차량 시스템 내 타겟 자원의 식별을 위한 자원 식별자 데이터 및 타겟 자원의 분산 식별자에 대한 발급 요청을 수신하는 동작, 분산 식별자에 대한 발급 요청의 수신에 응답하여, 자원 식별자 데이터에 기초하여 타겟 자원에 대한 분산 식별자를 생성하는 동작, 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소에 저장하는 동작 및 제공자 장치에 상기 생성된 분산 식별자를 제공하는 동작을 포함할 수 있다.
Description
본 개시는 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치에 관한 것이다.
커넥티드 카 서비스는 LTE/5G 등 초고속 이동 통신망을 이용하여 차량과 스마트홈, 스마트오피스 등과 연결된 서비스 기술, V2X(vehicle-to-everything) 통신을 활용한 자율협력주행 서비스 기술, 차량 내 인포테인먼트를 활용한 스마트폰 애플리케이션 등 차량의 자율 주행과 커넥티드를 활용한 각종 서비스 기술을 의미한다. 커넥티드 카는 통신이 적용되어 차량의 내/외부로 양방향으로 데이터를 주고 받으며 운전자에게 다양하고 유용한 가치를 제공하는 차량을 말한다. 커넥티드 카 서비스에는 단순히 커넥티비티를 넘어서 무선 업데이트, 실시간 내차 위치 공유, 서버 기반 음성인식, 스마트워치 연동, 홈 투 카(Home-to-Car) 등 다양한 편의 기능들이 지속적으로 추가되고 있다.
한편, 최근 블록체인(blockchain) 기술의 활용 분야가 확대되면서, 정보를 다루는 주체들에 대한 신원 확인 및 인증에 대한 연구도 활발히 진행되고 있다. 탈중앙화 신원 증명이라고도 지칭되는 분산 식별자(decentralized identifier; DID) 시스템이 그 예이다. 분산 식별자 시스템의 경우, 기존의 신원 확인 방식과 다르게 중앙 시스템에 의해 통제되지 않으며, 개개인이 자신의 정보에 대한 완전한 통제권을 갖는다. DID 시스템에서는 중앙 서버에 데이터를 저장하거나 인증 및 데이터의 무결성 유지를 위한 서버의 관리를 필요로 하지 않으며, 블록체인 시스템에 기반하여 데이터의 저장과 처리를 한다.
일 실시예에 따른 차량 시스템을 위한 분산 식별자 관리 방법은, 제공자(provisioner) 장치로부터 차량 시스템 내 타겟 자원의 식별을 위한 자원 식별자 데이터 및 상기 타겟 자원의 분산 식별자(Decentralized Identifier; DID)에 대한 발급 요청을 수신하는 동작, 상기 발급 요청의 수신에 응답하여, 상기 자원 식별자 데이터에 기초하여 상기 타겟 자원에 대한 분산 식별자를 생성하는 동작, 상기 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소에 저장하는 동작 및 상기 제공자 장치에 상기 생성된 분산 식별자를 제공하는 동작을 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 방법은, 상기 제공자 장치로부터 상기 타겟 자원의 접근 권한을 나타내는 범위(scope)의 확인 요청을 수신하는 동작, 및 상기 확인 요청의 수신에 응답하여, 상기 접근 권한의 범위에 대한 정보를 포함하는 범위 데이터를 상기 제공자 장치에 전송하는 동작을 더 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 방법은, 상기 제공자 장치로부터 상기 자원 식별자 데이터, 공개키 데이터 및 상기 타겟 자원의 등록 요청을 수신하는 동작, 상기 등록 요청의 수신에 응답하여, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하는 동작 및 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 등록을 수행하는 동작을 더 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 방법은, 상기 타겟 자원의 접근 권한의 범위의 업데이트 요청을 수신하는 경우, 상기 분산 식별자 문서 저장소에 저장된 상기 타겟 자원의 분산 식별자 문서에서 상기 타겟 자원의 접근 권한의 범위 정보를 업데이트하는 동작을 더 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 방법은, 장치 관리 에이전트로부터 타겟 자원에 대한 자원 식별자 데이터, 상기 타겟 자원의 접근 권한에 대한 범위 데이터 및 검증 가능한 자격 증명(verifiable credential)에 대한 발급 요청을 수신하는 동작, 상기 검증 가능한 자격 증명의 발급 요청의 수신에 응답하여, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하는 동작 및 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 접근 권한의 범위 각각에 대한 검증 가능한 자격 증명을 발급하는 동작을 더 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 방법은, 애플리케이션 서버로부터 애플리케이션에 대한 검증 가능한 프리젠테이션(verifiable presentation) 데이터 및 상기 애플리케이션에 대한 검증 요청을 수신하는 동작, 상기 검증 요청의 수신에 응답하여, 상기 검증 가능한 프리젠테이션 데이터를 기초로 검증을 수행하는 동작 및 상기 애플리케이션에 대한 검증 결과 데이터를 상기 애플리케이션 서버에 전송하는 동작을 더 포함할 수 있다.
일 실시예에 따른 차량 시스템을 위한 분산 식별자 관리 장치는, 하나 이상의 프로세서 및 제공자 장치로부터 차량 시스템 내 타겟 자원의 식별을 위한 자원 식별자 데이터 및 상기 타겟 자원의 분산 식별자(Decentralized Identifier; DID)에 대한 발급 요청을 수신하는 통신 모듈을 포함하고, 상기 하나 이상의 프로세서는 상기 발급 요청의 수신에 응답하여, 상기 자원 식별자 데이터에 기초하여 상기 타겟 자원에 대한 분산 식별자를 생성하고, 상기 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소에 저장하고, 상기 통신 모듈이 상기 제공자 장치에 상기 생성된 분산 식별자를 제공하도록 제어할 수 있다.
도 1은 일 실시예에 따른 커넥티드 카 시스템의 개요(overview)를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 방법의 동작들을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 장치의 구성들을 도시하는 도면이다.
도 4는 일 실시예에 따른 분산 식별자(decentralized identifier; DID) 시스템의 개요를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 차량 시스템을 위한 분산 식별자 관리 방법의 동작들을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 분산 식별자 시스템에서의 프로비저닝(provisioning) 과정을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 검증 가능한 자격 증명을 발급하는 과정을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 장치 관리(device management) 에이전트의 인증 및 애플리케이션 프로그래밍 인터페이스(application programming interface; API)의 사용 예를 설명하기 위한 도면이다.
도 9은 일 실시예에 따른 애플리케이션 인증(application authentication) 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 분산 식별자 시스템을 위한 분산 식별자 관리 장치의 구성들을 도시하는 도면이다.
도 2는 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 방법의 동작들을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 장치의 구성들을 도시하는 도면이다.
도 4는 일 실시예에 따른 분산 식별자(decentralized identifier; DID) 시스템의 개요를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 차량 시스템을 위한 분산 식별자 관리 방법의 동작들을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 분산 식별자 시스템에서의 프로비저닝(provisioning) 과정을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 검증 가능한 자격 증명을 발급하는 과정을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 장치 관리(device management) 에이전트의 인증 및 애플리케이션 프로그래밍 인터페이스(application programming interface; API)의 사용 예를 설명하기 위한 도면이다.
도 9은 일 실시예에 따른 애플리케이션 인증(application authentication) 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 분산 식별자 시스템을 위한 분산 식별자 관리 장치의 구성들을 도시하는 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안 된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 커넥티드 카 시스템의 개요를 설명하기 위한 도면이다.
도 을 참조하면, 커넥티드 카 시스템(100)은 다른 차량이나 교통 인프라, 통신 인프라, 모바일 장치 등과 실시간으로 통신하며 사용자(예: 운전자)의 편의와 교통 안전을 돕고 사용자에게 다양한 서비스를 제공하는 시스템이다. 커넥티드 카 시스템(110)은 외부 네트워크와 차량 시스템을 연결하여 외부 네트워크를 통해 제공할 수 있는 다양한 커넥티드 카 서비스를 차량에 탑승한 사용자에게 제공할 수 있다. 커넥티드 카 서비스는 예를 들어 인터넷 연결, 실시간 차량의 위치 파악, 다른 차량과의 통신, 원격 차량 제어 및 진단, 위험 경고를 통한 사고 방지, 경로 안내, 차량 점검 서비스, 콘텐츠 제공, 교통 정보 제공, 자율 주행, V2X(Vehicle-to-Everything) 서비스 중 적어도 하나를 포함할 수 있다. 커넥티드 카 서비스는 전술된 예들에 의해 한정되는 것으로 해석되어서는 안된다.
커넥티드 카 시스템(100)은 하나 이상의 차량(110, 115), 사용자가 소지한 모바일 장치(120), 통신 네트워크(130) 및 커넥티드 카 서비스를 제공하고 제어하는 서비스 서버(140)를 포함할 수 있다. 통신 네트워크(130)는 무선 네트워크일 수 있다.
차량(110)은 사용자가 탑승한 차량으로, 사용자에게 다양한 서비스를 제공할 수 있는 인포테인먼트 시스템을 구비할 수 있다. 차량(110)은 다른 차량(115), 모바일 장치(120) 및/또는 서비스 서버(140)와 통신할 수 있고, 인포테인먼트 시스템을 통해 사용자에게 커넥티드 카 서비스를 제공할 수 있다. 차량(110)은 통신 네트워크(130)를 통해 다른 차량(115), 모바일 장치(120) 및/또는 서비스 서버(140)와 통신할 수도 있다.
모바일 장치(120)는 커넥티드 카 서비스를 제공받을 수 있는 사용자가 소지한 장치로서, 예를 들어 스마트폰, 노트북, 랩북, 휴대 정보 단말기(personal digital assistant; PDA), 태블릿 PC, 웨어러블 장치 등 각종 전자 디바이스를 포함할 수 있다. 모바일 장치(120)는 사용자가 탑승한 차량(110)과 직접 통신하거나 또는 통신 네트워크(130)를 통해 차량(110) 및/또는 서비스 서버(140)와 통신할 수 있다.
서비스 서버(140)는 커넥티드 카 서비스를 사용자에게 제공할 수 있다. 서비스 서버(140)는 차량(110) 또는 모바일 장치(120)로부터 서비스 제공 요청을 수신하면, 서비스 제공 요청에 대응하는 커넥티드 카 서비스를 사용자에게 제공할 수 있다. 커넥티드 카 서비스의 제공을 위해 서비스 서버(140)는 승인 및/또는 인증 절차를 수행하고, 각종 데이터 및/또는 정보를 전송할 수 있다.
기존의 커넥티드 카 시스템의 경우, 시스템, 장치 및 차량을 구별하기 위한 식별자(identifier; ID)가 각자 필요에 의하여 생성되었다. 생성된 식별자는 어떠한 자원(resource)를 나타내는지 직관적으로 식별하기 어려우며, 고유의 식별자인지도 알 수가 없었다. 각각의 시스템을 넘나 들며 상호 참조하기 위한 커넥티드 카 시스템의 식별자 체계가 필요하다.
본 개시에서 설명되는 어떤 실시예에 따르면, 커넥티드 카 시스템(100)에 포함된 자원들(예: 차량(110), 차량(115), 모바일 장치(120), 서비스 서버(140))을 지칭하는 고유의 식별자를 제공(또는 할당)하는 방법(내지 체계(scheme))인 자원 식별 방법 및 장치가 제안된다. 제안된 고유의 식별자를 제공하는 방법에서는 자원에 대한 인증(authentication) 방법과 인가(authorization) 방법이 통합될 수 있다. 이하 도면들을 참조하여 커넥티드 카 서비스를 위한 자원 식별 방법 및 자원 식별 장치에 대해 상세히 설명한다.
도 2는 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 방법의 동작들을 설명하기 위한 흐름도이다. 일 실시예에서, 도 2의 동작들 중 적어도 하나의 동작은 다른 동작과 동시 또는 병렬적으로 수행될 수 있고, 동작들 간의 순서는 변경될 수 있다. 또한, 동작들 중 적어도 하나의 동작은 생략될 수 있고, 다른 동작이 추가적으로 수행될 수도 있다. 자원 식별 방법의 동작들은 본 개시에서 설명되는 자원 식별 장치(예: 도 3의 자원 식별 장치(300))에 의해 수행될 수 있다.
도 2를 참조하면, 동작(210)에서 자원 식별 장치는 커넥티드 카 서비스와 관련된 자원 식별자 데이터를 수신할 수 있다. 자원 식별자 데이터는 커넥티드 카 서비스에서 사용하는 식별자를 직관적으로 표기하기 위한 커넥티드 자원 이름(connected resource name; CRN) 스킴(scheme)에 따라 커넥티드 카 서비스의 자원에 식별자를 할당한 데이터이다. 해당 CRN 스킴은 자원에 식별자를 할당하는 것 뿐만 아니라 분산 차량 식별 시스템(decentralized vehicle identity system)에서 제공하는 분산 식별자(decentralized identifier; DID)와 통합하여 보안성을 확장시킬 수 있다. CRN 스킴은 URI 인터넷 표준(RFC 3986) 및 분산 식별자(DID) W3 표준을 동시에 만족시킬 수 있다. 분산 식별자와 통합된 방법에 대해서는 아래에서 구체적으로 설명된다.
자원 식별자 데이터는 예를 들어 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상(subject) 및 타겟 자원의 종류에 관한 정보를 포함할 수 있다. 여기서, 타겟 자원은 커넥티드 카 서비스와 관련된 시스템, 디바이스(예: 도 1의 모바일 장치(120)) 및 차량(예: 도 1의 차량(110, 120)) 중 적어도 하나에 대응할 수 있다. 시스템은 복수의 디바이스들을 포함할 수 있다. 일 실시예에서, 자원 식별자 데이터의 표기는 RFC 3986에서 정의된 URI(Uniform Resource Identifier)의 표기를 준용할 수 있다.
자원 식별자 데이터에 포함되는 식별자 타입에 관한 정보는 타겟 자원을 식별하기 위한 식별자가 개별 시스템에서 사용되는 고유 식별자(canonical identity; CID) 또는 분산 차량 식별 시스템에서 생성된 분산 식별자(decentralized identity; DID)인지 여부를 나타낼 수 있다. 분산 식별자는 분산 차량 식별 시스템에서 제공하는 디바이스 인증 등의 다양한 서비스를 제공받을 수 있다. 자원 식별자 데이터에 포함되는 타겟 자원과 관련된 대상에 관한 정보는 타겟 자원의 공급자(provider) 또는 소유자(owner)를 나타낼 수 있다. 타겟 자원과 관련된 대상은 예를 들어 조직, 회사 또는 기관(organization)일 수 있다.
자원 식별자 데이터에 포함되는 타겟 자원의 타입에 관한 정보는 타겟 자원이 속한 서비스에서 정의된 타겟 자원의 종류를 나타낼 수 있다. 예를 들어, 타겟 자원의 타입에 관한 정보는 시스템(system)과 디바이스(device)의 타입이 있을 수 있다. 차량은 다양한 제어기들의 집합으로 구성되어 있으며, '디바이스'는 이러한 개별 제어기로 정의될 수 있다. 제어기의 경우, 하나의 제조사에서 제작한 제어기 뿐만 아니라 다양한 제조사에서 제작한 제어기를 포함할 수 있다. 디바이스의 단위는 일반적으로 통신 시 직접적인 인증을 하지 않을 수 있다. '시스템'은 차량 내 다양한 제어기들의 집합으로 정의될 수 있다. 시스템은 장치 관리(device management; DM) 파트에 의해 관리되는 개체로, 시스템 내의 디바이스 및 애플리케이션은 시스템에 부여된 분산 식별자(DID)를 통해 디바이스 인증이 진행될 수 있다. 한편, SDV(software defined vehicle) 장치 관리 및 차량을 위한 분산 식별자(DID) 시스템은 시스템 구성의 유연성을 제공하고, 확장이 가능하도록 설계되어 디바이스가 직접 DID를 이용하여 인증할 수 있는 방법을 제공할 수 있다. 이 때, 디바이스의 디바이스 식별자는 고유 식별자(CID)가 아닌 분산 식별자(DID)로 변경되어 구분될 수 있다.
일 실시예에서, 자원 식별자 데이터는 타겟 자원의 모델명, 타겟 자원의 버전 및 타겟 자원의 고유 식별자 중 적어도 하나에 관한 정보를 더 포함할 수 있다.
자원 식별자 데이터는 예를 들어 다음과 같은 형식으로 표기될 수 있다.
crn://{id_type}:{service}:{organization}:{resource_type}:{model}:{revision}:{uid}
여기서, 'crn'은 자원 식별자 데이터가 위에서 설명한 CRN 스킴에 따른 것임을 나타낼 수 있다. 'id_type'은 식별자 타입으로서, 타겟 자원을 식별하기 위한 식별자가 고유 식별자인지 또는 분산 식별자인지 여부를 나타낼 수 있다. 'id_type'이 고유 식별자로 지정된 경우, 타겟 자원을 식별하기 위한 식별자가 개별 시스템에서 독자적으로 생성된 식별자인 것으로 취급될 수 있다. 'id_type'이 분산 식별자로 지정된 경우, 타겟 자원을 식별하기 위한 식별자가 분산 차량 식별 시스템에서 생성된 식별자인 것으로 취급될 수 있다. 'service'는 타겟 자원이 속한 서비스를 나타낼 수 있다. 'organization'은 타겟 자원과 관련된 대상으로서, 타겟 자원의 공급자 또는 소유자를 나타낼 수 있다. 'resource_type'은 타겟 자원의 타입을 나타낼 수 있고, 타겟 자원의 타입은 타겟 자원이 어떠한 자원인지를 나타낼 수 있다. 'resource_type'은 서비스에서 정의되며, 장치 관리(device management)에서는 예를 들어 시스템(system)과 디바이스(device)의 타입이 있을 수 있다. 일 실시예에서, 앞서 설명된 'id_type', 'service', 'organization' 및 'resource_type' 항목들은 자원 식별자 데이터에 필수적으로 포함될 수 있다.
'model'은 타겟 자원의 모델(예: 차) 또는 모델명을 나타낼 수 있다. 타겟 자원의 모델 또는 모델명을 구분할 필요가 없는 경우, 'model' 항목은 공란으로 표기될 수 있다. 'revision'은 타겟 자원의 버전(예: 연식)을 나타낼 수 있다. 타겟 자원의 버전을 구분할 필요가 없는 경우, 'revision' 항목은 공란으로 표기될 수 있다. 'uid'는 타겟 자원의 고유 식별자로서, 기관(organization) 또는 서비스에 정의된 고유한 식별자(locally unique ID)를 나타낼 수 있다. 'model', 'revision' 및 'uid' 항목들은 자원 식별자 데이터에 선택적으로 포함될 수 있다.
예를 들어, 'YY'회사에서 소유한 버전이 'rev 1'이고, 모델명이 'vk0'이며, YY회사에서 부여한 식별자가 '1005B80E828F31F8'인 차량 제어기를 위에서 설명한 CRN 스킴에 따른 자원 식별자 데이터로 나타낸 예는 다음과 같다.
crn://cid:dm:YY:device:vk0:rev1:1005B80E828F31F8
다른 예로, 분산 차량 식별 시스템에서 생성된 분산 식별자를 가지는 차량 제어기를 위에서 설명한 CRN 스킴에 따른 자원 식별자 데이터로 나타낸 예는 다음과 같다.
crn://did:dm:YY:system:vcontroller::AK71005B80E828F31F8
일 실시예에서, 자원 식별자 데이터에 포함된 각 항목은 구분자(delimiter)에 의해 서로 구분될 수 있다. 예를 들어, 자원 식별자 데이터에서 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상 및 타겟 자원의 종류에 관한 정보는 구분자에 의해 서로 구분될 수 있다. 예를 들어, 자원 식별자 데이터는 자원 식별자 데이터의 끝 부분에 위치하는 하나 이상의 구분자를 포함할 수 있다. 구분자는 예를 들어 콜론(:)의 기호 형태를 가질 수 있으나 이에 제한되는 것은 아니다. 일 실시예에서, 연속으로 반복된 구분자들은 하나로 축약되어 표기될 수 있다. 예를 들어, 'crn://did:dm:42dot:system:::'에서 연속된 구분자들 ':::'은 축약되어 위 자원 식별자 데이터는 'crn://did:dm:42dot:system:'와 같이 표현될 수 있다. 자원 식별자 데이터에 끝 부분에 위치하는 구분자는 유일한 특정한 자원을 지칭하는 것이 아니라는 의미에서 생략되지 않는다.
동작(220)에서, 자원 식별 장치는 수신한 자원 식별자 데이터를 파싱(parsing)하는 것에 의해 자원 식별자 데이터에 대응하는 타겟 자원을 식별할 수 있다. 자원 식별 장치는 자원 식별자 데이터로부터 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상 및 타겟 자원의 종류에 관한 정보를 추출할 수 있다. 또한, 자원 식별 장치는 자원 식별자 데이터로부터 타겟 자원의 모델명, 타겟 자원의 버전 및 타겟 자원의 고유 식별자 중 적어도 하나에 관한 정보를 더 추출할 수 있다. 자원 식별 장치는 추출된 정보를 기초로 자원 식별자 데이터가 가리키는 타겟 자원을 식별할 수 있다.
제안된 CRN 스킴은 다양한 시스템에서 정의하는 식별자(ID)에 대해 보편적인 고유성(universally uniqueness)을 제공하면서 직관적으로 자원을 식별하는 방법을 제공한다. 또한, 제안된 CRN 스킴은 기존 시스템에서 발급된 식별자를 사용할 수 있는 호환성을 제공한다. 예를 들어, CRN 스킴에서는 차량 관련 서비스나 플랫폼에서 차량 식별자로 식별하는 개체(entity)를 고유 식별자 타입을 이용하여 다음과 같은 예들로 표현할 수 있다.
crn://cid:tap:YY:vehicle:adrt::1234
crn://cid:platform:YY:fleet:adrt::{FLEET_ID}
제안된 CRN 스킴은 다른 회사나 공급자의 개체도 식별할 수 있는 확장성을 제공한다. 예를 들어, CRN 스킴에서는 YY 회사에서 생산한 차량에 대하여 고유 식별자 타입을 이용하여 다음과 같은 예로 표현할 수 있다.
crn://cid:dm:YY:vehicle:vname:v1:{VIN_NUMBER}
일 실시예에서, CRN 스킴을 이용하여 애플리케이션 프로그래밍 인터페이스(application programming interface; API)를 구현한다고 할 때, CRN 스킴을 이용하여 요청(또는 질의)하는 것이 가능하다. 예를 들어, CRN 스킴에 따라 정의된 다음의 자원 식별자 데이터가 있다고 가정한다.
crn://did:dm:YY:system:vcontroller:m123:AK71005B80E828F31F8
또한, 예를 들어 다음과 같은 API가 있다고 가정한다.
https://api.os.ai/dm/v1/systems/:crn
해당 API에서 아래 표 1에 기재된 예들과 같은 요청(또는 질의)가 가능하다.
CRN 스킴에 따른 요청 | 요청 내용에 대한 설명 |
did:dm:YY:system::: | YY의 기관에서 시스템(system)의 자원 타입에 속한 모든 타겟 자원을 열람 |
did:dm:YY:system:vcontroller:: | YY의 기관에서 시스템의 자원 타입에 vcontroller라는 모델로 식별되는 모든 타겟 자원을 열람 |
did:dm:YY:system: vcontroller:m123: | YY의 기관에서 시스템의 자원 타입에 vcontroller라는 모델 중 m123의 버전으로 식별되는 모든 타겟 자원을 열람 |
도 3은 일 실시예에 따른 커넥티드 카 서비스를 위한 자원 식별 장치의 구성들을 도시하는 도면이다.
도 3을 참조하면, 자원 식별 장치(300)는 본 개시에서 설명되는 커넥티드 카 서비스를 위한 자원 식별자 데이터를 분석하여 타겟 자원을 식별하는 장치이다. 자원 식별 장치(300)는 하나 이상의 프로세서(310), 메모리(320) 및 통신 모듈(330)을 포함할 수 있고, 자원 식별 장치(300)의 각 컴포넌트들은 통신 버스(340)를 통해 서로 통신할 수 있다. 일 실시예에서, 자원 식별 장치(300)에는 이들 구성요소들 중 일부가 생략되거나, 다른 구성요소가 추가될 수 있다.
프로세서(310)는 자원 식별 장치(300)의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(310)는 다른 구성요소로부터 수신된 명령 또는 데이터를 메모리(320)에 저장하고, 메모리(320)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 메모리(320)에 저장할 수 있다.
프로세서(310)는 메인 프로세서(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(예: 그래픽 처리 장치, 신경망 처리 장치(NPU), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다.
메모리(320)는 자원 식별 장치(300)의 구성요소(예: 프로세서(310) 또는 통신 모듈(330))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 프로그램(예: 어플리케이션), 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터, 및 컴퓨팅 시스템의 로그 데이터를 포함할 수 있다. 메모리(320)는 프로세서(310)에 의해 실행 가능한 인스트럭션들을 저장할 수 있다. 메모리(320)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다.
통신 모듈(330)은 자원 식별 장치(300)와 다른 장치 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 예를 들어, 통신 모듈(330)은 통신 네트워크나 다른 장치로부터 CRN 스킴에 따라 생성된 자원 식별자 데이터를 수신할 수 있다. 통신 모듈(330)은 통신 기능을 수행하기 위한 통신 회로를 포함할 수 있다. 통신 모듈(330)은 프로세서(310)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 커뮤니케이션 프로세서를 포함할 수 있다. 통신 모듈(330)은 무선 통신을 수행하는 무선 통신 모듈 (예: 블루투스 통신 모듈, 셀룰러 통신 모듈, 와이파이 통신 모듈, 또는 GNSS 통신 모듈) 또는 유선 통신 모듈 (예: LAN 통신 모듈)을 포함할 수 있다.
일 실시예에 따른 자원 식별 장치(300)는 하나 이상의 프로세서(310) 및 컴퓨터 실행가능 명령어를 저장한 메모리(320)를 포함할 수 있다. 컴퓨터 실행가능 명령어가 하나 이상의 프로세서(310)에 의해 실행되는 경우, 하나 이상의 프로세서(310는, 커넥티드 카 서비스와 관련된 자원 식별자 데이터를 수신할 수 있다. 자원 식별자 데이터는 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상 및 타겟 자원의 종류에 관한 정보를 포함할 수 있다. 자원 식별자 데이터에 포함되는 식별자 타입에 관한 정보는 타겟 자원을 식별하기 위한 식별자가 개별 시스템에서 사용되는 고유 식별자 또는 분산 차량 식별 시스템에서 생성된 분산 식별자인지 여부를 나타낼 수 있다. 자원 식별자 데이터에 포함되는 타겟 자원과 관련된 대상에 관한 정보는 상기 타겟 자원의 공급자 또는 소유자를 나타낼 수 있다. 자원 식별자 데이터에 포함되는 타겟 자원의 타입에 관한 정보는 타겟 자원이 속한 서비스에서 정의된 타겟 자원의 종류를 나타낼 수 있다. 자원 식별자 데이터는 타겟 자원의 모델명, 타겟 자원의 버전 및 타겟 자원의 고유 식별자 중 적어도 하나에 관한 정보를 더 포함할 수 있다. 하나 이상의 프로세서(310)는 수신한 자원 식별자 데이터를 파싱하는 것에 의해 자원 식별자 데이터에 대응하는 타겟 자원을 식별할 수 있다. 하나 이상의 프로세서(310)는 자원 식별자 데이터로부터 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상 및 타겟 자원의 종류에 관한 정보를 추출할 수 있다. 또한, 하나 이상의 프로세서(310)는 자원 식별자 데이터로부터 타겟 자원의 모델명, 타겟 자원의 버전 및 타겟 자원의 고유 식별자 중 적어도 하나에 관한 정보를 더 추출할 수 있다. 하나 이상의 프로세서(310)는 추출된 정보를 기초로 자원 식별자 데이터가 가리키는 타겟 자원을 식별할 수 있다.
도 4는 일 실시예에 따른 분산 식별자 시스템의 개요를 설명하기 위한 도면이다.
도 4를 참조하면, 분산 식별자(decentralized identifier; DID) 시스템(탈중앙화 신원증명 시스템으로도 지칭됨)(400)은 데이터에 대한 주권을 개개의 주체가 가지고, 필요할 때 그 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 시스템이다. 개개의 주체는 목적에 따라 정보를 선택하여 제공함으로써 신원확인이 가능하고, 자격 검증이 가능하게 된다. 분산 식별자 시스템(400)은 분산 식별자를 발급하고 검증할 수 있는 방법을 제공할 수 있다. 본 개시에서 분산 식별자 시스템(400)은 '분산 차량 식별 시스템'으로도 지칭될 수 있다. 차량과 관련된 모든 시스템은 분산 식별자 시스템(400)을 통해 분산 식별자를 발급 받을 수 있다. 차량과 클라우드 시스템이 서로 보안 채널을 형성하기 위해서는 분산 식별자를 통해 디바이스 인증이 진행되어야 한다. 분산 식별자 시스템(400)은 예를 들어 차량 시스템에서의 분산 식별자의 발급, 제공 및 인증의 과정을 수행할 수 있다. 분산 식별자 시스템(400)을 이용한 분산 식별자의 발급, 제공 및 인증의 과정에 대해서는 아래에서 상세히 서술된다.
장치 관리 서비스의 시스템 식별자는 모두 분산 식별자 시스템(400)에 의해 발급될 수 있다. 장치 관리 서비스는 분산 식별자 문서(DID document)의 컨트롤러로 분산 식별자마다 할당된 분산 식별자 문서의 범위(scope)을 조정하는 역할을 할 수 있다. 분산 식별자 문서는 예를 들어 JSON-LD(link data) 구조의 개체로 블록체인에 저장된 정보를 기준으로 구성될 수 있다. 블록체인의 영속성(persistent)과 불변성(immutable)으로 인해 분산 식별자의 소유자(owner) 이외에는 분산 식별자 문서의 내용을 변경하는 것이 불가능하다. 분산 식별자 문서는 예를 들어 암호화적 공개 키 리스트, 분산 식별자가 인증에 사용될 수 있는 방법에 대한 목록, 분산 식별자를 사용할 수 있는 서비스에 대한 목록, 기타 확장 가능한 정보를 포함할 수 있다.
일 실시예에서, 장치 관리 서비스는 각 시스템과 디바이스에 대한 설정 정보를 가지며, 여러 프로파일별로 키-값(key-value) 형태의 데이터베이스를 제공할 수 있다. 장치 관리 서비스는 예를 들어 현재 시스템 식별자를 식별하는 API, 보안 채널(secure channel)을 형성하기 위한 검증 가능한 프리젠테이션(verifiable presentation; VP) 데이터의 발급을 위한 API, 또는 공급자, 시스템 모델 또는 전용 시스템(dedicated system)의 공유된 키-값 구성(shared key-value configurations)을 제공할 수 있다.
위에서 설명된 CRN 스킴에 따라 생성된 자원 식별자 데이터에서 식별자 타입이 분산 식별자(DID)로 지정된 것은 월드 와이드 웹 컨소시엄(world wide web consortium; W3C)에서 개발하는 DID 표준(standard)을 준용할 수 있다. 분산 식별자 시스템(400)에서, 분산 식별자는 어떠한 개체(entity)를 식별하는 수단이 될 수 있고, 분산 식별자 검증부(DID verifier)(490)는 분산 식별자를 인증할 수 있다. 분산 식별자 문서(DID document)를 통해 분산 식별자의 인증 방법이나 분산 식별자 문서의 범위 등 보완 관련된 정보가 기록될 수 있다.
일 실시예에서, 분산 식별자 시스템(400)은 분산 식별자 발급부(DID issuer)(470), 분산 식별자 문서(DID document) 저장소(480), 분산 식별자 검증부(490), 장치 관리 서버(420), 게이트웨이(gateway)(440), 장치 관리 에이전트(DM agent)(410), 하드웨어 보안 모듈(hardware security module; HSM)(460), 신뢰 실행 환경 trusted execution environment; TEE)(450) 및 애플리케이션(application)(430)을 포함할 수 있다. 분산 식별자 발급부(470), 분산 식별자 문서 저장소(480), 분산 식별자 검증부(490), 장치 관리 서버(420) 및 게이트웨이(440)는 클라우드 시스템에서 동작할 수 있다. 분산 식별자 발급부(470), 분산 식별자 문서 저장소(480) 및 분산 식별자 검증부(490)는 블록체인 시스템에 기반하여 동작될 수 있다. 장치 관리 에이전트(410), 하드웨어 보안 모듈(460), 신뢰 실행 환경(450) 및 애플리케이션(430)은 디바이스(예: 차량)에서 동작할 수 있다.
분산 식별자 발급부(470)에서 발급된 검증 가능한 자격 증명(verifiable credential; VC)는 장치 관리 에이전트(410)로 전달될 수 있다. 검증 가능한 자격 증명은 예를 들어 개체(subject), 발급자(issuer) 및 클레임(claim)에 대한 정보를 포함할 수 있다. 개체는 예를 들어 사용자, 기업, 기관, 단체, 사물 또는 설명할 수 있는 모든 개체가 될 수 있다. 발급자는 예를 들어 회사, 기관, 학교, 은행 등과 같이 개인 정보와 부가적인 정보를 저장하고 있으며, 특정 데이터의 진위를 확인하는 기능이 있는 일정의 단체 또는 개인일 수 있다. 클레임은 표현 가능한 모든 문장으로서, 예를 들어 상황을 묘사하는 모든 문장이 될 수 있다. 분산 식별자 문서 저장소(480)는 분산 식별자 및 분산 식별자와 관련된 정보를 포함하는 분산 식별자 문서를 저장할 수 있다. 분산 식별자 검증부(490)는 하나 이상의 검증 가능한 자격 증명(VC)을 수신하여 이에 대한 검증을 수행할 수 있다.
장치 관리 에이전트(410)는 애플리케이션(430)에 검증 가능한 프리젠테이션(Verifiable presentation) 데이터를 전송할 수 있다. 장치 관리 에이전트(410)는 상호 전송 계층 보안(mutual transport layer security; mTLS)의 암호화 프로토콜을 통해 장치 관리 서비스 기능을 모니터링 및 제어하는 장치 관리 서버(420)와 상호 인증을 수행할 수 있다. 상호 전송 계층 보안에서는 네트워크 연결의 양쪽 끝에 있는 양 개체가 올바른 개인 키(private key)를 가지고 있는지를 확인한다.
게이트웨이(440)는 클라우드 시스템에 위치하는 일종의 진입 도구로서, 검증 가능한 프리젠테이션 데이터와 분산 식별자 검증부(490)를 이용하여 차량을 식별하고 인증할 수 있다. 게이트웨이(440)는 인증된 트래픽을 적절한 위치로 라우팅(routing)할 수 있다. 예를 들어, 게이트웨이(440)는 애플리케이션(430)으로부터 검증 가능한 프리젠테이션 데이터의 검증 요청을 수신할 수 있고, 게이트웨이(440)는 수신한 검증 가능한 프리젠테이션 데이터를 분산 식별자 검증부(490)로 전달할 수 있다. 게이트웨이(440)와 애플리케이션(430)은 전송 계층 보안(transport layer security; TLS)의 보안 프로토콜을 통해 서로 연결될 수 있다.
신뢰 실행 환경(450)은 메인 프로세서의 보안 영역으로서, 기밀성과 무결성 측면에서 내부에 로드되는 코드와 데이터가 보호될 수 있도록 보장하는 역할을 한다. 하드웨어 보안 모듈(460)은 신뢰 실행 환경(450)로부터 전달된 데이터를 저장할 수 있다. 예를 들어, 하드웨어 보안 모듈(460)은 프라이머리 자격 증명(primary credential)에 대한 데이터를 저장할 수 있다.
도 5는 일 실시예에 따른 차량 시스템을 위한 분산 식별자 관리 방법의 동작들을 설명하기 위한 흐름도이다. 분산 식별자 관리 방법은 도 4에서 설명한 분산 식별자 시스템(400)에 기반하여 동작할 수 있다. 도 5의 동작들 중 적어도 하나의 동작은 다른 동작과 동시 또는 병렬적으로 수행될 수 있고, 동작들 간의 순서는 변경될 수 있다. 또한, 동작들 중 적어도 하나의 동작은 생략될 수 있고, 다른 동작이 추가적으로 수행될 수도 있다. 분산 식별자 관리 방법의 동작들은 본 개시에서 설명되는 분산 식별자 관리 장치(예: 도 10의 분산 식별자 관리 장치(1000))에 의해 수행될 수 있다.
도 5를 참조하면, 동작(510)에서 분산 식별자 관리 장치는 제공자(provisioner) 장치로부터 차량 시스템 내 타겟 자원의 식별을 위한 자원 식별자 데이터 및 타겟 자원의 분산 식별자(DID)에 대한 발급요청을 수신할 수 있다. 제공자는 일반적으로 디바이스를 등록하는 프로비저닝(provisioning) 과정을 시작하여 주도적으로 작업을 진행하는 디바이스 등록 수행자를 가리킬 수 있다. 예를 들어, 제공자는 차량의 최종 품질 평가를 담당하는 담당자 또는 차량의 출고 담당자일 수 있다. 타겟 자원은 예를 들어 커넥티드 카 서비스와 관련된 시스템, 디바이스 및 차량 중 적어도 하나에 대응할 수 있고, 시스템은 복수의 디바이스들을 포함할 수 있다. 자원 식별자 데이터는 위에서 설명한 것과 같이 식별자 타입, 타겟 자원이 속한 서비스, 타겟 자원과 관련된 대상(subject) 및 타겟 자원의 종류에 관한 정보를 포함할 수 있다. 자원 식별자 데이터는 그 밖에도 타겟 자원의 모델명, 타겟 자원의 버전 및 타겟 자원의 고유 식별자 중 적어도 하나에 관한 정보를 더 포함할 수 있다.
동작(520)에서, 분산 식별자 관리 장치는 분산 식별자에 대한 발급 요청의 수신에 응답하여, 자원 식별자 데이터에 기초하여 타겟 자원에 대한 분산 식별자를 생할 수 있다. 동작(530)에서, 분산 식별자 관리 장치는 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소(예: 도 4의 분산 식별자 문서 저장소(480))에 저장할 수 있다. 동작(540)에서, 분산 식별자 관리 장치는 제공자 장치에 생성된 분산 식별자를 제공할 수 있다.
일 실시예에서, 분산 식별자 관리 장치는 제공자 장치로부터 타겟 자원의 접근 권한을 나타내는 범위(scope)의 확인 요청을 수신할 수 있다. 해당 접근 권한의 범위의 확인 요청의 수신에 응답하여, 분산 식별자 관리 장치는 해당 접근 권한의 범위에 대한 정보를 포함하는 범위 데이터를 제공자 장치에 전송할 수 있다. 분산 식별자 관리 장치는 분산 식별자의 발급 요청을 수신할 때 제공자 장치로부터 공개 키 데이터 및 해당 범위 데이터를 더 수신할 수 있다. 분산 식별자 문서는 해당 접근 권한의 범위에 대한 정보를 포함할 수 있다.
일 실시예에서, 분산 식별자 관리 장치는 제공자 장치로부터 자원 식별자 데이터, 공개 키 데이터 및 타겟 자원의 등록 요청을 수신할 수 있다. 타겟 자원의 등록 요청의 수신에 응답하여, 분산 식별자 관리 장치는 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색할 수 있다. 분산 식별자 관리 장치는 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 타겟 자원의 등록을 수행할 수 있다.
일 실시예에서, 분산 식별자 관리 장치는 타겟 자원의 접근 권한의 범위의 업데이트 요청을 수신하는 경우, 분산 식별자 문서 저장소에 저장된 타겟 자원의 분산 식별자 문서에서 타겟 자원의 접근 권한의 범위 정보를 업데이트할 수 있다.
일 실시예에서, 분산 식별자 관리 장치는 장치 관리 에이전트(예: 도 4의 장치 관리 에이전트(410))로부터 타겟 자원에 대한 자원 식별자 데이터, 타겟 자원의 접근 권한에 대한 접근 권한의 범위 데이터 및 검증 가능한 자격 증명(VC)에 대한 발급 요청을 수신할 수 있다. 검증 가능한 자격 증명의 발급 요청의 수신에 응답하여, 분산 식별자 관리 장치는 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐할 수 있다. 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 분산 식별자 관리 장치는 타겟 자원의 접근 권한의 범위 각각에 대한 검증 가능한 자격 증명을 발급할 수 있다. 분산 식별자 관리 장치는 발급된 검증 가능한 자격 증명의 목록 데이터를 장치 관리 에이전트에 전송할 수 있다.
일 실시예에서, 분산 식별자 관리 장치는 애플리케이션 서버(예: 도 9의 애플리케이션 서버(960))로부터 애플리케이션에 대한 검증 가능한 프리젠테이션(VP) 데이터 및 애플리케이션에 대한 검증 요청을 수신할 수 있다. 해당 검증 요청의 수신에 응답하여, 분산 식별자 관리 장치는 검증 가능한 프리젠테이션 데이터를 기초로 검증을 수행할 수 있다. 이후에, 분산 식별자 관리 장치는 애플리케이션에 대한 검증 결과 데이터를 애플리케이션 서버에 전송할 수 있다. 검증 가능한 프리젠테이션 데이터는 애플리케이션에 대해 생성한 검증 가능한 자격 증명, 상기 검증 가능한 자격 증명을 비밀키로 서명한 서명 데이터 및 타겟 자원에 대한 자원 식별자 데이터에 기초하여 장치 관리 에이전트에 의해 생성된 것일 수 있다. 검증 가능한 프리젠테이션 데이터는 검증 가능한 자격 증명보다 짧은 만료 기한을 가질 수 있다.
도 6은 일 실시예에 따른 분산 식별자 시스템에서의 프로비저닝(provisioning) 과정을 설명하기 위한 도면이다.
프로비저닝 과정에서는 시스템이 커넥티드 카 서비스에 안전하게 접근하기 위해 시스템의 비대칭키 쌍을 생성하고, 생성된 비대칭키 쌍을 시스템에 저장하며, 장치 관리 서버에 등록할 수 있다. 프로비저닝 과정은 (1) 신원증명에 관한 비대칭키 쌍을 생성하고 생성된 비대칭키 쌍을 안전하게 저장하는 과정 (2) 분산 식별자(DID)를 발급하는 과정 및 (3) 장치 관리 서버에 시스템 등록 과정을 진행하는 과정을 포함할 수 있다. 이하 도면을 참조하여 각 과정을 자세히 설명한다.
도 6을 참조하면, (1) 신원증명에 관한 비대칭키 쌍을 생성하고 생성된 비대칭키 쌍을 안전하게 저장하는 과정은 다음의 단계들을 포함할 수 있다. 단계(662)에서, 제공자 장치(610)는 시스템에서 사용할 비대칭키 쌍(공개 키, 개인 키(또는 비밀 키))을 생성할 수 있다. 단계(664)에서, 제공자 장치(610)는 차량 컴퓨팅 유닛(620)에서 제공하는 인터페이스를 통해 단계(662)에서 생성한 비대칭키 쌍을 저장하도록 요청할 수 있다. 단계(666)에서, 차량 컴퓨팅 유닛(620)은 물리적으로 탈취가 불가능한 저장 공간인 하드웨어 보안 모듈(예: 도 4의 하드웨어 보안 모듈(460))에 비대칭키 쌍을 저장할 수 있다. 비대칭키 쌍의 저장이 완료된 경우, 단계(668)에서 차량 컴퓨팅 유닛(620)은 저장 결과 정보를 제공자 장치(610)에 전송할 수 있다.
(2) 분산 식별자(DID)를 발급하는 과정은 다음의 단계들을 포함할 수 있다.
단계(670)에서, 제공자 장치(610)는 장치 관리 서버(630)에 초기에 할당해야 하는 권한의 목록인 범위(scope)의 배열을 요청할 수 있다. 권한의 목록인 범위는 해당 시스템이 어느 엔드포인트(endpoint)에 접근할 수 있는지를 정의할 수 있다. 엔드포인트는 클라우드 시스템에 존재하는 어떤 서버의 위치를 나타낸다. 단계(672)에서, 장치 관리 서버(630)는 해당 시스템의 초기에 타겟 자원의 할당해야 하는 권한 목록의 범위의 배열에 관한 정보를 제공자 장치(610)에 전송할 수 있다. 단계(674)에서, 제공자 장치(610)는 분산 식별자 발급부(640)에 분산 식별자의 발급을 요할 수 있다. 이 때, 제공자 장치(610)는 자원 식별자 데이터, 공개 키 데이터 및 타겟 자원의 권한 목록을 나타내는 범위의 배열을 함께 전달할 수 있다. 단계(676)에서, 분산 식별자 발급부(640)는 분산 식별자 발급 과정을 진행할 수 있다. 분산 식별자 발급부(640)는 주어진 자원 식별자 데이터 그대로를 분산 식별자로 발급할 수 있다. 단계(678)에서, 분산 식별자 발급부(640)는 분산 식별자 문서를 생성하여 분산 식별자 문서 저장소(660)에 저장할 수 있다. 이 때, 분산 식별자 문서 저장소(650)에는 타겟 자원의 권한 목록을 나타내는 범위의 배열에 대한 정보가 함께 저장될 수 있다. 단계(680)에서, 분산 식별자 문서 저장소(650)에 분산 식별자 문서가 저장된 후 분산 식별자 문서 저장소(650)는 저장 결과를 분산 식별자 발급부(640)에 전송할 수 있다. 단계(682)에서, 발급 과정을 마친 분산 식별자 발급부(640)는 제공자 장치(610)에 발급된 분산 식별자인 자원 식별자 데이터를 전송할 수 있다.
(3) 장치 관리 서버에 시스템 등록 과정을 진행하는 과정은 다음의 단계들을 포함할 수 있다.
단계(684)에서, 제공자 장치(610)는 장치 관리 서버(640)에 시스템을 등록하도록 요청할 수 있다. 이 때, 제공자 장치(610)는 시스템의 자원 식별자 데이터와 공개 키를 전달할 수 있고, 장치 관리 서버(640)는 제공 장치(610)로부터 전달된 시스템의 자원 식별자 데이터와 공개 키를 저장할 수 있다. 단계(686)에서, 장치 관리 서버(630)는 주어진 자원 식별자 데이터가 인증 가능한 분산 식별자로 발급되었는지 여부를 확인하기 위해 분산 식별자 문서 저장소(650)에 주어진 자원 식별자 데이터에 해당하는 분산 식별자 문서를 요청할 수 있다. 단계(688)에서, 분산 식별자 문서 저장소(650)는 자원 식별자 데이터 해당하는 분산 식별자 문서를 장치 관리 서버(630)에 전송할 수 있다. 단계(690)에서, 장치 관리 서버(630)는 시스템의 등록 과정을 진행할 수 있다. 단계(692)에서, 장치 관리 서버(630)는 시스템의 등록 결과에 대한 정보를 제공자 장치(610)에 전송할 수 있다.
도 7은 일 실시예에 따른 검증 가능한 자격 증명을 발급하는 과정을 설명하기 위한 도면이다.
검증 가능한 자격 증명의 발급(issuing) 과정과 관련하여, 시스템의 디바이스 인증을 위해 분산 식별자 시스템의 블록체인 시스템이 활용될 수 있다. 검증 가능한 자격 증명의 발급 과정은 (1) 타겟 자원의 접근 권한을 나타내는 범위를 업데이트하는 과정 및 (2) 접근 권한을 나타내는 범위에 따라 검증 가능한 자격 증명을 발급하는 과정을 포함할 수 있다. 타겟 자원의 접근 권한을 나타내는 범위(scope)는 예를 들어 시스템이 어떤 서버에 접근할 수 있는지에 대한 권한에 대한 정보를 포함할 수 있다. 장치 관리 서버(730)는 해당 범위를 다루기 위한 API를 제공할 수 있다. 타겟 자원의 접근 권한에 대한 범위는 예를 들어 시스템 모델 단위로 지정될 수 있고, 해당 시스템 모델의 모든 시스템에 적용될 수 있다. 또한, 개별 시스템에 대해서도 접근 권한에 대한 범위를 지정하는 것이 가능하다. 시스템 모델의 접근 권한에 대한 범위와 시스템의 접근 권한에 대한 범위는 서로 결합(merging)되어 제공될 수 있고, 접근 권한에 대한 범위가 동일한 경우에는 시스템에 대해 지정된 접근 권한에 대한 범위가 시스템 모델에 대해 지정된 접근 권한에 대한 범위보다 우선할 수 있다. 접근 권한에 대한 범위를 추가하거나 삭제하는 등의 API는 장치 관리 서버(730)에서 서버 API로 제공될 수 있다. 장치 관리 서버(730)는 접근 권한에 대한 범위를 저장하기 위한 저장소로 분산 식별자 문서 저장소(750)를 사용할 수 있고, 분산 식별자 문서 저장소(750)를 통해 접근 권한에 대한 범위에 대한 변경 이력을 관리할 수 있다.
이하 도면을 참조하여 각 과정을 자세히 설명한다.
도 7을 참조하면, (1) 타겟 자원의 접근 권한을 나타내는 범위를 업데이트하는 과정은 다음의 단계들을 포함할 수 있다.
장치 관리 서버(730)는 어떤 자원 식별자 데이터에 대해 타겟 자원의 접근 권한에 대한 범위의 추가, 수정 및/또는 삭제 기능을 수행할 수 있는 API를 제공할 수 있다. 단계(762)에서, 장치 관리 서버(730)는 이와 같은 정보를 분산 식별자 문서 저장소(750)에 저장된 자원 식별자 데이터에 대한 분산 식별자 문서에 업데이트하는 것에 의해 반영할 수 있다. 단계(764)에서, 분산 식별자 문서 저장소(750)는 자원 식별자 데이터에 대한 분산 식별자 문서를 업데이트하고, 업데이트 결과에 대한 정보를 장치 관리 서버(730)에 전송할 수 있다. 분산 식별자 발급부(740) 및 분산 식별자 문서 저장소(750)는 블록체인 시스템에서 동작할 수 있다.
(2) 접근 권한을 나타내는 범위에 따라 검증 가능한 자격 증명을 발급하는 과정은 다음의 단계들을 포함할 수 있다.
장치 관리 에이전트(710)는 분산 식별자 발급부(740)를 통해 검증 가능한 자격 증명(VC)을 발급받을 수 있다. 검증 가능한 자격 증명은 유효 기간(expiration)이 존재할 수 있고, 장치 관리 에이전트(710)는 유효 기간의 만료 전에 주기적으로 검증 가능한 자격 증명을 갱신할 수 있다. 단계(772)에서, 장치 관리 에이전트(710)는 보안 모듈(720)(예: 도 4의 하드웨어 보안 모듈(460))을 통해 자원 식별자 데이터와 타겟 자원의 접근 권한을 나타내는 범위 목록의 내용을 시스템의 개인 키(또는 비밀 키)로 서명할 수 있다. 단계(774)에서, 보안 모듈(720)은 시스템의 개인 키로 서명한 서명 데이터를 장치 관리 에이전트(710)로 전송할 수 있다. 장치 관리 에이전트(710)와 보안 모듈(720)은 시스템 내에 포함되어 동작할 수 있다.
단계(776)에서, 장치 관리 에이전트(710)는 분산 식별자 발급부(740)에게 검증 가능한 자격 증명의 발급을 요청할 수 있다. 검증 가능한 자격 증명의 발급 요청 시에, 장치 관리 에이전트(710)는 시스템에 대한 자원 식별자 데이터, 타겟 자원의 접근 권한에 대한 범위의 목록 및 위 단계에서 획득한 서명 데이터를 분산 식별자 발급부(740)에 전송할 수 있다. 단계(778)에서, 분산 식별자 발급부(740)는 장치 관리 에이전트(710)가 요청한 접근 권한에 대한 범위에 대해 실제로 접근 권한이 있는지 여부를 확인하기 위해 분산 식별자 문서 저장소(750)에 자원 식별자 데이터에 대응하는 분산 식별자 문서를 요청할 수 있다. 단계(780)에서, 분산 식별자 문서 저장소(750)는 자원 식별자 데이터에 대응하는 분산 식별자 문서를 분산 식별자 발급부(740)에 전송할 수 있다. 단계(782)에서, 분산 식별자 발급부(740)는 타겟 자원의 접근 권한에 대한 각각의 범위에 해당하는 검증 가능한 자격 증명을 발급할 수 있다. 각각의 범위는 개별적인 검증 가능한 자격 증명을 가질 수 있다. 단계(784)에서, 분산 식별자 발급부(740)는 발급된 검증 가능한 자격 증명의 목록을 장치 관리 에이전트(710)에 전송할 수 있다. 위에서 설명한 단계(772) 내지 단계(782)의 과정(770)은 루프(loop)를 형성하여 주기적으로 수행될 수 있다.
도 8은 일 실시예에 따른 장치 관리 에이전트의 인증 및 애플리케이션 프로그래밍 인터페이스의 사용 예를 설명하기 위한 도면이다.
장치 관리 서버(825)는 장치 관리 에이전트(810)에서 사용할 수 있는 애플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있다. 본 실시예에서는, 애플리케이션 프로그램 인터페이스와 관련하여 안전하게 통신하게 하기 위한 장치 관리 에이전트(810)의 인증 과정과 애플리케이션 프로그래밍 인터페이스의 사용 과정을 OTA(over the air) 업데이트 과정 중 일부를 예로 들어 설명한다. 장치 관리 에이전트(810)의 인증 과정은 제한된 유효 기간(expiration)을 가지는 JWT(Json web token)을 발급 받아 장치 관리 서버(825)가 장치 관리 에이전트(810)를 인증하는 것을 포함할 수 있다.
도 8을 참조하면, 장치 관리 에이전트(810)의 인증 과정은 다음의 단계들을 포함할 수 있다.
단계(842)에서, 장치 관리 에이전트(810)는 보안 모듈(815)(예: 도 4의 하드웨어 보안 모듈(460))을 이용하여 시스템의 자원 식별자 데이터와 요청된 접근 권한에 대한 범위에 해당하는 검증 가능한 자격 증명을 시스템의 개인 키로 서명할 수 있다. 단계(844)에서, 보안 모듈(815)은 시스템의 개인 키로 서명한 서명 데이터를 장치 관리 에이전트(810)로 전송할 수 있다. 단계(846)에서, 장치 관리 에이전트(810)는 시스템의 자원 식별자 데이터, 검증 가능한 자격 증명 및 서명 데이터를 이용하여 검증 가능한 프리젠테이션 데이터를 생성할 수 있다. 장치 관리 에이전트(810) 및 보안 모듈(815)은 시스템 내에 포함되어 동작할 수 있다.
단계(848)에서, 장치 관리 에이전트(810)는 장치 관리 서버(825)에 검증 가능한 프리젠테이션 데이터를 전송하면서 장치 관리 에이전트(810)에 대한 인증을 요청할 수 있다. 단계(850)에서, 장치 관리 서버(825)는 분산 식별자 검증부(830)에 통해 검증 가능한 프리젠테이션 데이터에 대한 검증을 요청할 수 있다. 단계(852)에서, 분산 식별자 검증부(830)는 검증 가능한 프리젠테이션 데이터를 검증하고, 검증 결과에 대한 정보를 장치 관리 서버(825)에 전송할 수 있다. 단계(854)에서, 장치 관리 서버(825)는 장치 관리 에이전트(810)를 인증할 수 있는 토큰을 생성할 수 있다. 단계(856)에서, 장치 관리 서버(825)는 생성한 토큰을 장치 관리 서버(825)의 개인 키(또는 비밀 키)로 서명하여 최종적으로 JWT를 생성할 수 있다.. 단계(858)에서, 장치 관리 서버(825)는 생성된 JWT으로 장치 관리 에이전트(810)에 응답할 수 있다.
일 실시예에서, 장치 관리 서버(825)와 장치 관리 에이전트(810)는 다음과 같은 푸쉬(push) 기능 및 풀(pull) 기능을 통해 서로 통신할 수 있다.
푸쉬(push) 기능의 경우, 장치 관리 서버(825)에서 능동적으로 어떤 시스템에 메시지를 전달하기 위해 사용될 수 있다. 예를 들어, OTA 과정에서 업데이트해야 할 시스템이 있다면, 이를 알리기 위해 푸쉬 기능이 사용될 수 있다. 푸쉬 기능이 수행되는 경우, 장치 관리 서버(825)에서 장치 관리 에이전트(810)로의 방향으로 메시지가 전달될 수 있다. 이러한 메시지의 전달 과정은 비동기적으로 진행되며, MQTT over MTLS와 같은 프로토콜을 사용하여 메시지를 게시(publish) 하는 형태로 구현될 수 있다.
풀(pull) 기능의 경우, 장치 관리 에이전트(810)가 능동적으로 장치 관리 서버(825)에 어떤 요청을 하거나, 푸쉬 기능을 통해 받은 메시지에 응답하기 위해 사용될 수 있다. 풀 기능의 경우, 장치 관리 에이전트(810)에서 장치 관리 서버(825)로의 방향으로, 장치 관리 서버(825)에서 제공되는 애플리케이션 프로그래밍 인터페이스로 요청될 수 있다. 이러한 과정은 동기적으로 진행될 수 있고, 예를 들어 RESTful API로 구현될 수 있다. 애플리케이션 프로그래밍 인터페이스를 호출하는 트랜스포트(transport)는 예를 들어 클라이언트와 서버가 서로 상호 인증하는 HTTPS over MTLS 또는 CoAP over QUIC w/ DTLS에 의해 구현될 수 있다.
위에서 설명한 푸쉬 기능의 과정 및 풀 기능의 과정 중, OTA에 대한 알람을 예시로 장치 관리 서버(825)에서 장치 관리 에이전트(810)로 메시지를 푸쉬하는 과정을 설명하면 다음과 같다.
단계(860)에서, OTA 서버(835)는 장치 관리 서버(825)가 제공하는 푸쉬 서버 API를 호출하여 특정한 시스템이 OTA 업데이트를 수행해야 한다는 것을 나타내는 업데이트 요청 메시지를 전달할 수 있다. 단계(862)에서, 장치 관리 서버(825)는 전달받은 업데이트 요청 메시지를 장치 관리 서버(825) 자신의 개인 키로 서명할 수 있다. 단계(864)에서, 장치 관리 서버(825)는 업데이트 요청 메시지와 서명 데이터로 게시할 메시지를 생성할 수 있다. 단계(866)에서, 장치 관리 서버(825)는 생성한 메시지를 전달할 메시지 브로커(820)에 게시할 수 있다. 메시지 브로커(820)는 메시지 큐 플랫폼(message queue platform)의 일 종류일 수 있고, 메시지 큐 플랫폼은 MQTT over MTLS 프로토콜로 구현될 수 있다. 메시지 브로커(820)는 송신자(예: 장치 관리 서버(825))로부터 전달받은 메시지를 수신자(예: 장치 관리 에이전트(810))로 전달해 주는 중간 역할을 하고, 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다. 메시지가 적재되는 공간을 메시지 큐(message queue)라고 한다. 단계(868)에서, 장치 관리 서버(825)는 OTA 서버(835)에 메시지가 푸쉬되었음을 응답할 수 있다.
단계(870)에서, 장치 관리 에이전트(810)는 메시지 브로커(820)를 장치 관리 에이전트(810) 자신의 자원 식별자 데이터로 구독(subscribe)하고 있을 수 있다. 단계(872)에서, 장치 관리 에이전트(810)는 장치 관리 서버(825)가 게시한 메시지를 메시지 브로커(820)를 통해 수신할 수 있다. 단계(874)에서, 장치 관리 에이전트(810)는 장치 관리 서버(825)의 공개 키로 해당 메시지의 서명을 확인하여, 해당 메시지가 장치 관리 서버(825)에서 만든 메시지인지 여부를 검증할 수 있다. 단계(876)에서, 장치 관리 에이전트(810)는 전달받은 업데이트 요청 메시지에 응답하기 위해, 애플리케이션 프로그래밍 인터페이스(API)로 제공하는 풀(pull) 요청을 장치 관리 서버(825)에 전송할 수 있다. 이 때, 장치 관리 에이전트(810)는 장치 관리 에이전트(810)의 인증 과정에서 생성된 JWT을 장치 관리 서버(825)에 같이 전송하여, 장치 관리 서버(825)가 장치 관리 에이전트(810)의 신원을 확인할 수 있게 한다.
단계(878)에서, 장치 관리 서버(825)는 장치 관리 에이전트(810)로부터 수신한 JWT를 검증할 수 있다. 단계(880)에서, 장치 관리 서버(825)는 JWT에 대한 실제 검증 요청을 처리할 수 있는 OTA 서버(835)로 JWT 검증 요청을 전달한다. 단계(882)에서, OTA 서버(835)는 해당 JWT 검증 요청을 받아 검증을 수행하고, 검증 결과에 대한 정보를 장치 관리 서버(825)에 전송할 수 있다. 단계(884)에서 장치 관리 서버(825)는 OTA 서버(85)로부터 전달받은 검증 결과에 대한 정보를 장치 관리 에이전트(810)로 전송할 수 있다.
도 9은 일 실시예에 따른 애플리케이션 인증 과정을 설명하기 위한 도면이다.
시스템 내 애플리케이션(910)은 장치 관리 서비스에서 제공하는 API로 블록체인 시스템(또는 블록체인 플랫폼)의 분산 식별자 시스템을 이용한 인증 매커니즘을 이용할 수 있다. 장치 관리 에이전트(920)는 애플리케이션(910)에게 분산 식별자 시스템에서 검증 가능한 프리젠테이션(verifiable presentation; VP) 데이터를 발급할 수 있다. 애플리케이션(910)는 특정 서버에 대한 접근 권한을 나타내는 범위에 대하여 장치 관리 에이전트(920)를 통해 검증 가능한 프리젠테이션 데이터를 발급받을 수 있다. 장치 관리 에이전트(920)는 검증 가능한 프리젠테이션 데이터의 발급을 위해 사전에 검증 가능한 자격 증명(VC)을 발급 받아 관리하거나 필요에 따라 검증 가능한 자격 증명을 발급받을 수 있다. 애플리케이션(910)은 통신 과정에서 해당 검증 가능한 프리젠테이션 데이터를 애플리케이션 서버(920)에 전달할 수 있고, 애플리케이션 서버(920)는 수신한 검증 가능한 프리젠테이션 데이터를 분산 식별자를 통해 검증하여 애플리케이션(910)을 인증할 수 있다.
애플리케이션 인증 과정은 (1) 접근 권한을 나타내는 범위를 가지는 검증 가능한 프리젠테이션 데이터를 발급하는 과정 및 (2) 검증 가능한 프리젠테이션 데이터를 이용하여 보안 채널을 수립하는 과정을 포함할 수 있다. 이하 도면을 참조하여 각 과정을 자세히 설명한다.
도 9를 참조하면, (1) 접근 권한을 나타내는 범위를 가지는 검증 가능한 프리젠테이션 데이터를 발급하는 과정은 다음의 단계들을 포함할 수 있다.
단계(972)에서, 애플리케이션(910)은 접근해야 할 서버를 접근 권한을 나타내는 범위로 표현하고, 해당 범위에 대한 정보를 장치 관리 에이전트(920)에 전송하면서 검증 가능한 프리젠테이션 데이터(또는 검증 가능한 프리젠테이션)의 발급을 요청할 수 있다. 단계(974)에서, 장치 관리 에이전트(920)는 보안 모듈(930)(예: 도 4의 하드웨어 보안 모듈(460))을 이용하여 시스템의 자원 식별자 데이터와 요청된 접근 권한에 대한 범위에 해당하는 검증 가능한 자격 증명을 시스템의 개인 키로 서명할 수 있다. 단계(976)에서, 보안 모듈(930)은 시스템의 개인 키로 서명한 서명 데이터를 장치 관리 에이전트(920)로 전송할 수 있다. 단계(978)에서, 장치 관리 에이전트(920)는 시스템의 자원 식별자 데이터, 검증 가능한 자격 증명 및 서명 데이터를 이용하여 검증 가능한 프리젠테이션 데이터를 생성할 수 있다. 단계(980)에서, 장치 관리 에이전트(920)는 애플리케이션(910)에게 생성한 검증 가능한 프리젠테이션 데이터를 전송할 수 있다. 검증 가능한 프리젠테이션 데이터는 만료 기한을 가지며, 검증 가능한 프리젠테이션 데이터의 만료 기한은 검증 가능한 자격 증명보다 상대적으로 짧을 수 있다. 애플리케이션(910)은 검증 가능한 프리젠테이션 데이터는 만료 기한이 도과하면 위에서 설명한 단계들을 수행하여 검증 가능한 프리젠테이션 데이터를 발급받을 수 있다. 애플리케이션(910), 장치 관리 에이전트(920) 및 보안 모듈(930)은 시스템 내에 포함되어 동작할 수 있다.
(2) 검증 가능한 프리젠테이션 데이터를 이용하여 보안 채널을 수립하는 과정은 다음의 단계들을 포함할 수 있다.
단계(982)에서, 애플리케이션(910)이 애플리케이션 서버(960)로 연결될 때, 단계(980)에서 수신한 검증 가능한 프리젠테이션 데이터를 애플리케이션 서버(960)에 전송할 수 있다. 단계(984)에서, 애플리케이션 서버(960)는 분산 식별자 검증부(950)에 수신한 검증 가능한 프리젠테이션 데이터에 대한 검증을 요청할 수 있다. 단계(986)에서, 분산 식별자 검증부(950)는 검증 가능한 프리젠테이션 데이터를 검증하고, 검증 결과에 대한 데이터를 애플리케이션 서버(960)에 전송할 수 있다. 검증 가능한 프리젠테이션 데이터를 이용하여 보안 채널이 수립되고, 단계(992) 및 단계(994)에서 애플리케이션(910) 및 애플리케이션 서버(960)는 형성된 보안 채널을 통해 서로 통신할 수 있다. 보안 채널을 통해 애플리케이션(910)과 애플리케이션 서버(960) 간에 데이터 패킷이 송수신될 수 있다. 단계(992) 내지 단계(994)의 과정(990)은 루프(loop)를 형성하여 계속적으로 수행될 수 있다. 분산 식별자 발급부(940) 및 분산 식별자 검증부(950)는 블록체인 시스템에서 동작할 수 있다.
도 10은 일 실시예에 따른 분산 식별자 시스템을 위한 분산 식별자 관리 장치의 구성들을 도시하는 도면이다.
도 3을 참조하면, 분산 식별자 관리 장치(1000)는 본 개시에서 설명되는 차량 시스템을 위한 분산 식별자 관리 방법을 수행하는 장치이다. 분산 식별자 관리 장치(1000)는 하나 이상의 프로세서(1010), 메모리(1020) 및 통신 모듈(1030)을 포함할 수 있고, 분산 식별자 관리 장치(1000)의 각 컴포넌트들은 통신 버스(1040)를 통해 서로 통신할 수 있다. 일 실시예에서, 분산 식별자 관리 장치(1000)에는 이들 구성요소들 중 일부가 생략되거나, 다른 구성요소가 추가될 수 있다.
프로세서(1010)는 분산 식별자 관리 장치(1000)의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(1010)는 다른 구성요소로부터 수신된 명령 또는 데이터를 메모리(1020)에 저장하고, 메모리(1020)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 메모리(1020)에 저장할 수 있다.
프로세서(1010)는 메인 프로세서(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(예: 그래픽 처리 장치, 신경망 처리 장치(NPU), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다.
메모리(1020)는 분산 식별자 관리 장치(1000)의 구성요소(예: 프로세서(1010) 또는 통신 모듈(1030))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 프로그램(예: 어플리케이션), 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터, 및 컴퓨팅 시스템의 로그 데이터를 포함할 수 있다. 메모리(1020)는 프로세서(1010)에 의해 실행 가능한 인스트럭션들을 저장할 수 있다. 메모리(1020)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다.
통신 모듈(1030)은 분산 식별자 관리 장치(1000)와 다른 장치 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 예를 들어, 통신 모듈(1030)은 통신 네트워크나 다른 장치로부터 CRN 스킴에 따라 생성된 자원 식별자 데이터를 수신할 수 있다. 통신 모듈(1030)은 통신 기능을 수행하기 위한 통신 회로를 포함할 수 있다. 통신 모듈(1030)은 프로세서(1010)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 커뮤니케이션 프로세서를 포함할 수 있다. 통신 모듈(1030)은 무선 통신을 수행하는 무선 통신 모듈 (예: 블루투스 통신 모듈, 셀룰러 통신 모듈, 와이파이 통신 모듈, 또는 GNSS 통신 모듈) 또는 유선 통신 모듈 (예: LAN 통신 모듈)을 포함할 수 있다.
일 실시예에 따른 분산 식별자 관리 장치(1000)는 하나 이상의 프로세서(1010) 및 제공자 장치로부터 차량 시스템 내 타겟 자원의 식별을 위한 자원 식별자 데이터 및 타겟 자원의 분산 식별자(DID)에 대한 발급 요청을 수신하는 통신 모듈(1030)을 포함할 수 있다. 하나 이상의 프로세서(1010)는 분산 식별자에 대한 발급 요청의 수신에 응답하여, 자원 식별자 데이터에 기초하여 타겟 자원에 대한 분산 식별자를 생성할 수 있다. 하나 이상의 프로세서(1010)는 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소(예: 도 4의 분산 식별자 문서 저장소(480))에 저장할 수 있다. 하나 이상의 프로세서(1010)는 통신 모듈(1030)이 제공자 장치에 생성된 분산 식별자를 제공하도록 제어할 수 있다.
일 실시예에서, 통신 모듈(1030)은 제공자 장치로부터 자원 식별자 데이터, 공개 키 데이터 및 타겟 자원의 등록 요청을 수신할 수 있다. 타겟 자원의 등록 요청의 수신에 응답하여, 하나 이상의 프로세서(1010)는 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색할 수 있다. 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 하나 이상의 프로세서(1010)는 타겟 자원의 등록을 수행할 수 있다.
일 실시예에서, 통신 모듈(1030)은 장치 관리 에이전트(예: 도 4의 장치 관리 에이전트(410))로부터 타겟 자원에 대한 자원 식별자 데이터, 타겟 자원의 접근 권한에 대한 범위 데이터 및 검증 가능한 자격 증명에 대한 발급 요청을 수신할 수 있다. 검증 가능한 자격 증명의 발급 요청의 수신에 응답하여, 하나 이상의 프로세서(1010)는 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색할 수 있다. 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 하나 이상의 프로세서(1010)는 타겟 자원의 범위 각각에 대한 검증 가능한 자격 증명을 발급할 수 있다.
일 실시예에서, 통신 모듈(1030)은 애플리케이션 서버(예: 도 9의 애플리케이션 서버(960))로부터 애플리케이션에 대한 검증 가능한 프리젠테이션 데이터 및 애플리케이션에 대한 검증 요청을 수신할 수 있다. 애플리케이션에 대한 검증 요청의 수신에 응답하여, 하나 이상의 프로세서(1010)는 검증 가능한 프리젠테이션 데이터를 기초로 검증을 수행할 수 있다. 하나 이상의 프로세서(1010)는 통신 모듈(1030)이 애플리케이션에 대한 검증 결과 데이터를 애플리케이션 서버에 전송하도록 제어할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
Claims (20)
- 차량 시스템을 위한 분산 식별자 관리 방법에 있어서,
제공자(provisioner) 장치로부터 차량 시스템 내 타겟 자원의 분산 식별자(Decentralized Identifier; DID)에 대한 발급 요청을 수신하는 동작;
상기 발급 요청의 수신에 응답하여, 상기 타겟 자원의 식별을 위한 자원 식별자 데이터에 기초하여 상기 타겟 자원에 대한 분산 식별자를 생성하는 동작;
상기 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소에 저장하는 동작;
상기 제공자 장치에 상기 생성된 분산 식별자를 제공하는 동작;
장치 관리 에이전트로부터 상기 타겟 자원의 접근 권한에 대한 범위 데이터 및 검증 가능한 자격 증명(verifiable credential)에 대한 발급 요청을 수신하는 경우, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하는 동작; 및
상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 접근 권한의 범위 각각에 대한 검증 가능한 자격 증명을 발급하는 동작을 포함하고,
상기 자원 식별자 데이터는,
상기 타겟 자원을 식별하기 위한 식별자가 개별 시스템에서 사용되는 고유 식별자(canonical identity; CID)인지 또는 분산 차량 식별 시스템에서 생성된 상기 분산 식별자인지 여부를 나타내는 정보를 포함하는,
분산 식별자 관리 방법.
- 제1항에 있어서,
상기 제공자 장치로부터 상기 타겟 자원의 접근 권한을 나타내는 범위(scope)의 확인 요청을 수신하는 동작; 및
상기 확인 요청의 수신에 응답하여, 상기 접근 권한의 범위에 대한 정보를 포함하는 범위 데이터를 상기 제공자 장치에 전송하는 동작
을 더 포함하는 분산 식별자 관리 방법.
- 제2항에 있어서,
상기 발급 요청을 수신하는 동작은,
상기 제공자 장치로부터 공개키 데이터 및 상기 범위 데이터를 더 수신하는 동작
을 포함하는 분산 식별자 관리 방법.
- 제3항에 있어서,
상기 분산 식별자 문서는,
상기 접근 권한의 범위에 대한 정보를 포함하는 것인,
분산 식별자 관리 방법.
- 제1항에 있어서,
상기 제공자 장치로부터 상기 자원 식별자 데이터, 공개키 데이터 및 상기 타겟 자원의 등록 요청을 수신하는 동작;
상기 등록 요청의 수신에 응답하여, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하는 동작; 및
상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 등록을 수행하는 동작
을 더 포함하는 분산 식별자 관리 방법.
- 제1항에 있어서,
상기 타겟 자원의 접근 권한의 범위의 업데이트 요청을 수신하는 경우, 상기 분산 식별자 문서 저장소에 저장된 상기 타겟 자원의 분산 식별자 문서에서 상기 타겟 자원의 접근 권한의 범위 정보를 업데이트하는 동작
을 더 포함하는 분산 식별자 관리 방법.
- 삭제
- 제1항에 있어서,
상기 발급된 검증 가능한 자격 증명의 목록 데이터를 상기 장치 관리 에이전트에 전송하는 동작
을 더 포함하는 분산 식별자 관리 방법.
- 제1항에 있어서,
애플리케이션 서버로부터 애플리케이션에 대한 검증 가능한 프리젠테이션(verifiable presentation) 데이터 및 상기 애플리케이션에 대한 검증 요청을 수신하는 동작;
상기 검증 요청의 수신에 응답하여, 상기 검증 가능한 프리젠테이션 데이터를 기초로 검증을 수행하는 동작; 및
상기 애플리케이션에 대한 검증 결과 데이터를 상기 애플리케이션 서버에 전송하는 동작
을 더 포함하는 분산 식별자 관리 방법.
- 제9항에 있어서,
상기 검증 가능한 프리젠테이션 데이터는,
상기 애플리케이션에 대해 생성한 검증 가능한 자격 증명, 상기 검증 가능한 자격 증명을 비밀키로 서명한 서명 데이터 및 타겟 자원에 대한 자원 식별자 데이터에 기초하여 장치 관리 에이전트에 의해 생성된 것인,
분산 식별자 관리 방법.
- 제10항에 있어서,
상기 검증 가능한 프리젠테이션 데이터는,
상기 검증 가능한 자격 증명보다 짧은 만료 기한을 가지는 것인,
분산 식별자 관리 방법.
- 제1항에 있어서,
상기 자원 식별자 데이터는,
식별자 타입, 상기 타겟 자원이 속한 서비스, 상기 타겟 자원과 관련된 대상(subject) 및 상기 타겟 자원의 종류에 관한 정보를 포함하는,
분산 식별자 관리 방법.
- 제1항에 있어서,
상기 타겟 자원은,
커넥티드 카 서비스와 관련된 시스템, 디바이스 및 차량 중 적어도 하나에 대응하고,
상기 시스템은, 복수의 디바이스들을 포함하는,
분산 식별자 관리 방법.
- 하드웨어와 결합되어 제1항 내지 제6항 및 제8항 내지 제13항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
- 차량 시스템을 위한 분산 식별자 관리 장치에 있어서,
하나 이상의 프로세서; 및
제공자 장치로부터 차량 시스템 내 타겟 자원의 분산 식별자에 대한 발급 요청을 수신하는 통신 모듈을 포함하고,
상기 하나 이상의 프로세서는,
상기 발급 요청의 수신에 응답하여, 상기 타겟 자원의 식별을 위한 자원 식별자 데이터에 기초하여 상기 타겟 자원에 대한 분산 식별자를 생성하고,
상기 생성된 분산 식별자에 대한 분산 식별자 문서를 분산 식별자 문서 저장소에 저장하고,
상기 통신 모듈이 상기 제공자 장치에 상기 생성된 분산 식별자를 제공하도록 제어하고,
장치 관리 에이전트로부터 상기 타겟 자원의 접근 권한에 대한 범위 데이터 및 검증 가능한 자격 증명에 대한 발급 요청을 수신하는 경우, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하고,
상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 접근 권한의 범위 각각에 대한 검증 가능한 자격 증명을 발급하고,
상기 자원 식별자 데이터는,
상기 타겟 자원을 식별하기 위한 식별자가 개별 시스템에서 사용되는 고유 식별자인지 또는 분산 차량 식별 시스템에서 생성된 상기 분산 식별자인지 여부를 나타내는 정보를 포함하는,
분산 식별자 관리 장치.
- 제15항에 있어서,
상기 통신 모듈이 상기 제공자 장치로부터 상기 자원 식별자 데이터, 공개키 데이터 및 상기 타겟 자원의 등록 요청을 수신하는 경우,
상기 하나 이상의 프로세서는,
상기 등록 요청의 수신에 응답하여, 상기 분산 식별자 문서 저장소에 저장된 분산 식별자 문서들 중 상기 자원 식별자 데이터에 대응하는 분산 식별자 문서를 탐색하고,
상기 자원 식별자 데이터에 대응하는 분산 식별자 문서가 탐색된 경우, 상기 타겟 자원의 등록을 수행하는,
분산 식별자 관리 장치.
- 삭제
- 제15항에 있어서,
상기 통신 모듈이 애플리케이션 서버로부터 애플리케이션에 대한 검증 가능한 프리젠테이션 데이터 및 상기 애플리케이션에 대한 검증 요청을 수신하는 경우,
상기 하나 이상의 프로세서는,
상기 검증 요청의 수신에 응답하여, 상기 검증 가능한 프리젠테이션 데이터를 기초로 검증을 수행하고,
상기 통신 모듈이 상기 애플리케이션에 대한 검증 결과 데이터를 상기 애플리케이션 서버에 전송하도록 제어하는,
분산 식별자 관리 장치.
- 제18항에 있어서,
상기 검증 가능한 프리젠테이션 데이터는,
상기 애플리케이션에 대해 생성한 검증 가능한 자격 증명, 상기 검증 가능한 자격 증명을 비밀키로 서명한 서명 데이터 및 타겟 자원에 대한 자원 식별자 데이터에 기초하여 장치 관리 에이전트에 의해 생성된 것인,
분산 식별자 관리 장치.
- 제15항에 있어서,
상기 자원 식별자 데이터는,
식별자 타입, 상기 타겟 자원이 속한 서비스, 상기 타겟 자원과 관련된 대상 및 상기 타겟 자원의 종류에 관한 정보를 포함하는,
분산 식별자 관리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230149014A KR102706926B1 (ko) | 2023-11-01 | 2023-11-01 | 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230149014A KR102706926B1 (ko) | 2023-11-01 | 2023-11-01 | 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102706926B1 true KR102706926B1 (ko) | 2024-09-13 |
Family
ID=92759080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230149014A KR102706926B1 (ko) | 2023-11-01 | 2023-11-01 | 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102706926B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220129245A (ko) * | 2021-03-16 | 2022-09-23 | 포항공과대학교 산학협력단 | 블록 체인 기반 탈중앙화 인가 프로토콜 방법 및 장치 |
US20230051854A1 (en) * | 2021-04-03 | 2023-02-16 | Vlinder Inc. | Multi-chain credential management and retrieval of lost credential |
KR20230076419A (ko) * | 2021-11-24 | 2023-05-31 | (주)드림시큐리티 | 분산 id 기반 검증 크리덴셜 관리 및 디바이스 검증 방법 및 장치 |
-
2023
- 2023-11-01 KR KR1020230149014A patent/KR102706926B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220129245A (ko) * | 2021-03-16 | 2022-09-23 | 포항공과대학교 산학협력단 | 블록 체인 기반 탈중앙화 인가 프로토콜 방법 및 장치 |
US20230051854A1 (en) * | 2021-04-03 | 2023-02-16 | Vlinder Inc. | Multi-chain credential management and retrieval of lost credential |
KR20230076419A (ko) * | 2021-11-24 | 2023-05-31 | (주)드림시큐리티 | 분산 id 기반 검증 크리덴셜 관리 및 디바이스 검증 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
Jiho Lim 외 4명. A V2X Access Authorization Mechanism based on Decentralized ID (DID) and Verifiable Credentials (VC). 2023 International Conference on Information Networking (ICOIN), IEEE (2023.02.22)* * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10833873B2 (en) | Credential-based authorization | |
US9397980B1 (en) | Credential management | |
US11489693B2 (en) | Home network access | |
CN106537871B (zh) | 用于在网络中提供设备的登记的系统、方法和装置 | |
JP6675163B2 (ja) | 権限委譲システム、認可サーバの制御方法、認可サーバおよびプログラム | |
US20220150072A1 (en) | Distributed ledger system | |
CN112788031B (zh) | 基于Envoy架构的微服务接口认证系统、方法及装置 | |
AU2017275376B2 (en) | Method and apparatus for issuing a credential for an incident area network | |
CN105225072B (zh) | 一种多应用系统的访问管理方法及系统 | |
CN102859935A (zh) | 利用虚拟机远程维护电子网络中的多个客户端的系统和方法 | |
US20190159026A1 (en) | Hybrid authentication of vehicle devices and/or mobile user devices | |
US20190268319A1 (en) | Authentication and Approval Control System for Distributed Ledger Platform | |
CN105324976A (zh) | 使用简单证书注册协议和相应的管理应用将证书注册到设备的方法 | |
KR102189554B1 (ko) | 단말 장치, 서버 장치 및 블록체인을 이용한 fido 범용 인증 방법 | |
EP4007319B1 (en) | Vehicle communication method, apparatus, storage medium and program product | |
Theodouli et al. | Towards a blockchain-based identity and trust management framework for the IoV ecosystem | |
JP6894160B1 (ja) | スマートコントラクトに基づいた利用権情報処理装置、利用権情報処理システム、および利用権情報処理方法 | |
JP2012203428A (ja) | 認証システム及び認証方法 | |
EP4018614B1 (en) | Did delegation/revocation to another did | |
KR102706926B1 (ko) | 차량 시스템을 위한 분산 식별자 관리 방법 및 분산 식별자 관리 장치 | |
US20230403254A1 (en) | Decentralized identifier determination by a registry operator or registrar | |
CN108228280A (zh) | 浏览器参数的配置方法及装置、存储介质、电子设备 | |
US10542569B2 (en) | Community-based communication network services | |
CN115564438B (zh) | 基于区块链的数字资源处理方法、装置、设备及存储介质 | |
Hoops et al. | A Universal System for OpenID Connect Sign-ins with Verifiable Credentials and Cross-Device Flow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |