열정/논문 리뷰

[DID] Secure Decentralized Machine Identifiers for Internet of Things 리뷰

lime9 2024. 3. 7. 14:09

Secure Decentralized Machine Identifiers for Internet of Things

  • Yang Su, Jing Wu, Chengnian Long, and Lijun Wei
  • Shanghai Jian Tong University
  • ICBCT'20: Proceedings of the 2020 The 2nd International Conference on Blockchain Technology

 

Key Point

Identity and Access Management (IAM) 시스템을 달성하기 위해 본 논문에서는 Blockchain, IPFS, DID를 사용하였다.

 

IAM올바른 이들이 올바른 이유로 올바른 시간에 올바른 자원에 접근할 수 있도록 하는 규율이다. 이를 위해서는 세 가지 조건이 달성되어야 하며, 각 조건에 대해서 본 논문에서 해결 방안을 제시하였다.

  1. DDoS 공격 (단일 지점 장애 공격) 방어 가능 → Blockchain
  2. 기록되는 정보는 tamper-resistant, traceable → IPFS
  3. IoT 기기가 개인의 identity 관리, 공격자가 약탈하지 않도록 보호 → DID + PUF, TRNG, TrustZone (보안 강화)

그렇다면 IPFS란 무엇일까?

 

InterPlanetary File System (IPFS)

  • 파일, 웹 사이트, 응용 프로그램 및 데이터를 저장하고 액세스하기 위한 P2P 분산 파일 시스템
  • 데이터 구조는 Merkle Directed Acyclic Graphs (DAG): addressable, non-duplication, tamper-proof
  • 파일의 내용이 곧 주소
  • 해시 값이 컨텐츠의 ID (CID)
  • 동일 컨텐츠는 동일한 CID

직접 IPFS의 DAG bulider를 통해 워드 파일을 넣어서 설계되는 데이터의 구조를 확인해보았다.

word 파일의 DAG 구조

 

이처럼 하나의 워드 파일이 위의 구조처럼 빌드되는 것을 확인할 수 있다. 아래에 초록 사각형 박스마다 CID를 가지고 있고, 초록 사각형의 CID를 모으면 상위의 노드 CID를 표현하게 되는 구조를 가지고 있다.

 

[DAG Builder] https://dag.ipfs.tech/

 

DAG builder visualization

 

dag.ipfs.tech

 

System Architecture

시스템 구조는 다음과 같이 3계층으로 이루어져 있다. 가장 아래 층은 Infrastructure layer, 두 번째 층은 Control layer, 세 번째 층은 Application layer이다.

  • Infrasturcture layer: Blockchain의 overhead를 완화하기 위해 DID 문서 등을 IPFS로 저장한다. Blockchain에는 IPFS에 저장된 문서의 해시 값이 저장되는 구조이다.
  • Control layer: Issuer가 EV와 CP에게 VC를 발급한다.
  • Application layer: Wireless network (5G, NB-IoT, Bluetooth)를 통해 Mutual authentication을 수행한다.

System architecture

 

Smart Contracts

이때, 본 논문에서는 Blockchain에 값을 올릴 때 smart contracts를 사용하도록 한다. Smart contracts가 무엇일까?

  • 계약 사항을 이행하는 전산화된 거래 프로토콜 [1]
  • 계약 당사자 간 거래 내용을 코드로 기록해 블록체인에 올리면, 계약 조건이 충족됐을 때 계약을 자동으로 이행해 주는 시스템
  • 중앙 기관 없이도 계약을 자동으로 이행 가능
  • 구현 기술: Blockchain, 데이터 무결성 보장

smart contract와 자동판매기의 유사성

 

이처럼 smart contract는 자동판매기의 과정과 유사하다. 1500원짜리 음료수를 구매하기 위해 사용자가 1500원을 자판기에 넣으면, 자판기는 1500원을 인식하여 프로그래밍 되어 있는 내용에 따라 음료수를 꺼내준다. 이 과정에는 제 3자의 개입이 없이 자동으로 이행되므로 smart contract의 원리와 동일하다고 볼 수 있다.

 

본 논문에서 사용한 smart contract는 다음과 같이 세 가지가 있다.

 

세 가지 smart contracts

 

빨간 글씨는 각 contract의 입력과 출력이다 (화살표로 출력을 표현했다). 즉 DID 등록은 DID와 DID 문서의 해시를 등록하는 것을 의미한다. DID 요청은 DID를 입력으로 주면, 그 DID에 대응하는 DID 문서의 해시를 출력한다.

 

DMID 생성

본 논문에서는 DID와 DMID를 구별해서 사용하는 듯하다. 차이는 없지만 DMID는 DID와 같이 URL 형태가 아닌 해시 값을 가진다 (이것이 DID와 DMID를 구분짓는 특성인지는 확실치 않다. 왜 해시 값을 사용하는지도 의문이다).

 

DMID 생성 과정

 

과정을 보면 무거운 문서 (DID 문서, VC)는 IPFS에 저장한다. 반면 상대적으로 가벼운 해시 값을 Blockchain에 smart contracts를 사용하여 올린다.

 

DMID와 DMID 문서 생성 과정

 

이때, EV가 DMID와 DMID 문서를 생성하는 과정은 위와 같이 정리될 수 있다.

TRNG를 통해 난수를 생성한 후, 그 값을 SHA256 해시 함수에 넣어 나온 출력을 DMID로 사용한다 (굳이?). 마찬가지 방식으로 private key를 생성하고, 그 값을 PUF로 암호화하여 나온 keycode을 플래시 메모리에 저장한다. 이때, TrustZone을 통해 PUF를 제공한 SRAM이 공격자에 의해 뜯겨 나가도 (이렇게까지 하려나...?) 안전을 보장할 수 있다.

마지막으로, 생성된 private key에 대응하는 public key를 ECC 알고리즘을 통해 생성한다. Public key는 빈 DMID 문서에 저장된다.

 

EV와 CP 사이의 M2M Transaction

그럼 본격적으로 EV와 CP가 어떤 과정으로 거래를 수행하는지 알아보자. 거래 과정은 크게 네 가지의 과정을 거친다.

  1. 신탁 설립: User와 CP 제조업체가 서로의 DMID를 교환한다.
  2. 신탁 이전: EV의 신뢰 목록에 CP 제조업체의 DMID를 등록한다. 이로 인해 신뢰 목록에 등록된 CP 제조업체가 생산한 모든 CP는 신뢰할 수 있게 된다.
  3. 사전 충전: Blockchain의 token을 통해 CP가 User의 잔액을 관리하게 된다.
  4. 상호 인증: EV와 CP 간의 상호 인증을 수행하여 충전할 준비를 한다.

상호 인증 과정은 아래 그림과 같이 진행된다.

 

EV와 CP의 상호 인증 과정

 

EV가 CP의 VP를 받고, VP에 있는 CP의 DID를 통해 CP의 DID 문서의 해시 값CP의 VC를 가져온다. DID 문서의 해시 값을 사용하여 IPFS에서 DID 문서를 가져온다. 이 문서에 있는 CP의 public key를 통해 VP를 인증하고, VC의 발급자를 확인한다. VC의 발급자 (CP의 제조업체)가 신뢰 목록에 있다면, nonce B와 VC를 기반하여 EV의 VP를 생성한다. 같은 과정을 CP가 EV에 대해 수행하여 둘 간의 상호 인증이 완료된다.

 

상호 인증이 완료되면, 충전이 시작되고 충전이 완료되면 CP가 요금을 계산하여 사전 충전된 값에서 공제한다.

 

Data Storage Contents

Private key는 PUF로 암호화되어 플래시 메모리에 올라가서 다른 사용자뿐만 아니라 소유자도 볼 수 없다.

Position Storage contents Visibility
Device DMID
VC
Private Key
Blockchain DMID
DMID Document Hash
VC Hash
IPFS DMID Document
VC

 

References

[1] Szabo, N. (1997). Formalizing and Securing Relationships on Public Networks. First Monday, 2(9).