Appearance
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(검증자)와 신분증앱 사이에 아래 이미지와 같은 순서로 메시지가 오가요.
메시지 요약
| 메시지 유형 | 발신 주체 | 수신 주체 | 설명 |
|---|---|---|---|
password | Verifier | 신분증앱 | BLE 접속 인증용 비밀번호 제출 |
ack | 양쪽 모두 | 상대방 | 메시지 정상 수신 응답 |
profile | Verifier | 신분증앱 | VP 생성을 위한 조건 정보 전송 |
vp | 신분증앱 | Verifier | 사용자 인증 후 생성된 VP 제출 |
finish | Verifier | 신분증앱 | VP 수신 및 검증 성공 알림 |
error | 양쪽 모두 | 상대방 | 오류 발생 시 사용 |
이 흐름도는 QR-CPM 또는 BLE 모드에서 공통적으로 활용할 수 있어요. 다만 BLE는 연결 상태나 시계열 동기화를 위해 ack 메시지가 자주 사용된다는 점이 특징이에요.