Skip to content
마지막 작성자: hyejung-song
최근 업데이트: 25. 7. 7. 오후 6:50

BLE 연동 메시지 명세 ​

BLE 기반의 모바일 신분증 메시지 구조, 흐름 순서, 메시지 요약을 상세히 설명합니다.

1. BLE 인터페이스 메시지 ​

BLE(Bluetooth Low Energy)를 사용한 모바일신분증 통신에서는 아래와 같은 메시지 구조를 사용해요. 각 메시지는 JSON 형식이며, msg 필드로 메시지 유형을 구분해요.

password ​

BLE 연결을 위해 verifier가 신분증앱에 비밀번호를 제출하고, 앱이 이를 검증해요.

json
{
  "msg": "password",
  "trxcode": "20211102162732145432176790",
  "value": "0123456789"
}
  • trxcode (필수): 거래코드예요.
  • value (필수): BLE 접속용 비밀번호 문자열이에요.

ack ​

이전 메시지를 정상적으로 수신 또는 처리했음을 알릴 때 사용해요.

json
{
  "msg": "ack",
  "trxcode": "20211102162732145432176790"
}
  • trxcode (필수): 거래코드예요.

profile ​

verifier가 신분증앱에 프로필을 전송해요. 프로필은 VP 생성을 위한 조건 정보를 담고 있어요.

json
{
  "msg": "profile",
  "trxcode": "20211102162732145432176790",
  "profile": "base64 인코딩된 profile",
  "image": "base64 인코딩된 BI 이미지",
  "ci": false
}
  • trxcode (필수): 거래코드예요.
  • profile (필수): base64로 인코딩된 JSON 형식의 프로필 데이터예요.
  • image (선택): base64 인코딩된 사용자 얼굴 이미지. 없을 경우 null 사용 가능해요.
  • ci (선택): CI(Connecting Information) 포함 여부. 기본값은 false예요.

vp ​

신분증앱이 프로필 조건을 충족한 VP를 생성해 verifier에 제출해요.

json
{
  "msg": "vp",
  "trxcode": "20211102162732145432176790",
  "request": "presentation",
  "vp": {
    ...
  }
}
  • trxcode (필수): 거래코드예요.
  • request (필수): "presentation"으로 고정이에요.
  • vp (필수): VP 정보 객체로, M400.vp 항목과 동일해요.

finish ​

VP 제출이 성공적으로 완료되었음을 알릴 때 사용해요.

json
{
  "msg": "finish",
  "trxcode": "20211102162732145432176790"
}
  • trxcode (필수): 거래코드예요.

error ​

오류가 발생했을 때 사용하는 메시지예요.

json
{
  "msg": "error",
  "trxcode": "20211102162732145432176790",
  "errcode": 20902,
  "errmsg": "invalid password"
}
  • trxcode (필수): 거래코드예요.
  • errcode (필수): 오류 코드예요. 예: 20902는 잘못된 비밀번호예요.
  • errmsg (필수): 오류 메시지를 사람이 읽을 수 있는 문자열로 제공해요.

2. BLE 메시지 흐름도 ​

BLE 방식에서는 verifier(검증자)와 신분증앱 사이에 아래 이미지와 같은 순서로 메시지가 오가요.

메시지 요약 ​

메시지 유형발신 주체수신 주체설명
passwordVerifier신분증앱BLE 접속 인증용 비밀번호 제출
ack양쪽 모두상대방메시지 정상 수신 응답
profileVerifier신분증앱VP 생성을 위한 조건 정보 전송
vp신분증앱Verifier사용자 인증 후 생성된 VP 제출
finishVerifier신분증앱VP 수신 및 검증 성공 알림
error양쪽 모두상대방오류 발생 시 사용

이 흐름도는 QR-CPM 또는 BLE 모드에서 공통적으로 활용할 수 있어요. 다만 BLE는 연결 상태나 시계열 동기화를 위해 ack 메시지가 자주 사용된다는 점이 특징이에요.