제8장
V2X 구현에서 "동작한다"와 "인증된다"는 서로 다른 말입니다. WIA-COMM-003은 V2V, V2I, V2P, V2N 네 가지 통신 모드를 정의하고, 차량이 다른 차량·인프라·보행자·클라우드와 안전 관련 정보를 주고받도록 합니다. 구현자는 이 메시지가 올바른 형식인지, 신뢰할 수 있는 발신자에게서 왔는지, 정해진 판단 기준으로 처리되는지를 모두 입증해야 합니다. 이 장은 그 입증 절차를 서명 검증, 안전 기능 판정 로직, 프라이버시 점검의 세 축으로 정리합니다.
표준이 상정하는 통신 스택은 아래에서 위로 물리 계층(5.9 GHz 무선), 접속 계층(DSRC 802.11p 또는 C-V2X), 네트워크·전송 계층(IPv6, TCP/UDP), 보안 계층, 퍼실리티 계층, 응용 계층으로 이어집니다. 구현 검토에서는 보안 계층이 메시지 생성·처리를 담당하는 퍼실리티 계층 바로 아래에 놓인다는 점이 중요합니다. 서명과 검증은 응용이 만든 BSM, CAM, DENM 페이로드를 감싸는 단계에서 이루어지므로, 어떤 접속 기술을 쓰더라도 같은 방식으로 요구됩니다.
구현 주체별로 인증이 확인하는 대상은 다음과 같습니다.
전송 방식도 구분됩니다. 주기적 BSM/CAM 송신은 핸드셰이크와 확인 응답이 없는 비연결형 방송이고, 긴급 제동·충돌·차선 변경·위험 지점 경고 같은 이벤트는 사건이 발생했을 때 송신됩니다. 시험 계획도 이 두 경로를 따로 두어야 합니다.
인증의 기술적 중심에는 공개키 기반구조(PKI)와 서명된 메시지 구조가 있습니다. 표준은 보안 요구를 인증, 무결성, 부인 방지, 기밀성(안전 메시지에서는 선택), 가용성, 프라이버시의 여섯 가지로 정리합니다.
인증서 계층은 루트 CA 아래에 두 갈래로 나뉩니다. 하나는 장기 인증서(차량 등록 인증서)를 발급하는 Enrollment CA이고, 다른 하나는 단기 인증서인 가명(pseudonym) 인증서를 발급하는 Authorization CA입니다. 실제 메시지 서명에는 후자가 쓰이므로 차량은 신원 자체를 매번 노출하지 않고 서명할 수 있습니다.
인증서 형식은 IEEE 1609.2를 따르며, 표준이 보인 예 가운데 인증 점검에 직접 관련된 필드만 줄여서 인용하면 다음과 같습니다.
{
"version": 3,
"type": "explicit",
"issuer": "AuthorizationCA-001",
"toBeSigned": {
"id": "CERT-789012",
"crlSeries": 5,
"validityPeriod": { "start": "2025-12-26T00:00:00Z", "duration": "1 week" },
"region": { "circularRegion": { "radius": 50000 } },
"appPermissions": [ { "psid": 0x20, "ssp": "all" } ],
"verifyKeyIndicator": { "verificationKey": { "algorithm": "ecdsaNistp256" } }
},
"signature": { "algorithm": "ecdsaNistp256" }
}
유효 기간(validityPeriod), 유효 지역(region), 앱 권한(appPermissions, psid 0x20은 Basic Safety Message), CRL 시리즈(crlSeries)는 모두 수신 측이 확인하는 항목입니다. 서명된 메시지는 페이로드, 헤더 정보, 서명자 정보(인증서 또는 다이제스트), 생성 시각, 생성 위치, ECDSA P-256 디지털 서명으로 구성됩니다.
수신 측 검증 절차는 다음 순서로 진행되며, 단계마다 표준이 정한 실패 사유가 있습니다.
| 단계 | 확인 내용 | 실패 시 사유 문구 |
|---|---|---|
| 1 | 메시지에서 인증서 추출 | — |
| 2 | 인증서 유효성 검증 | Invalid certificate |
| 3 | 폐지 여부 확인 | Certificate revoked |
| 4 | ECDSA 서명 검증 | Signature verification failed |
| 5 | 생성 시각 신선도(재전송 공격 방지) | Message too old |
| 6 | 생성 위치와 인증서 지역의 일치 | Location outside certificate region |
표준의 참조 구현은 이 순서를 다음처럼 표현합니다. 신선도 판정은 현재 시각과 생성 시각의 차이가 5초(5000 ms)를 넘으면 거부하는 방식입니다.
def verify_v2x_message(signed_message):
cert = extract_certificate(signed_message)
if not verify_certificate(cert):
return False, "Invalid certificate"
if is_revoked(cert):
return False, "Certificate revoked"
if not ecdsa_verify(cert.public_key, signed_message.payload, signed_message.signature):
return False, "Signature verification failed"
if abs(current_time() - signed_message.generation_time) > 5000:
return False, "Message too old"
if not is_in_region(signed_message.generation_location, cert.region):
return False, "Location outside certificate region"
return True, "Message authenticated"
인증 시험에서는 정상 메시지 하나만 통과시키는 것으로 부족합니다. 만료·폐지된 인증서, 변조된 페이로드, 오래된 타임스탬프, 인증서 지역 밖의 위치를 담은 메시지를 각각 만들어 위 표의 사유대로 거부되는지 확인해야 합니다.
이 표준은 시장 규모를 수치로 제시하지 않으므로, 여기서는 배치 우선순위로 설명합니다. 인프라 쪽 구현은 RSU를 어디에 먼저 세우느냐로 가시화됩니다. 표준은 우선순위가 높은 곳으로 신호 교차로, 고속도로 진출입 램프, 스쿨존, 공사 구간을 꼽습니다. 중간 우선순위는 주차 구역, 환승 시설, 톨게이트이고, 낮은 우선순위는 지방 고속도로와 주거 지역입니다. 인증을 준비하는 인프라 운영자는 이 순서를 참고해 SPaT·MAP 방송과 서명 검증 시험을 우선순위 높은 지점에서 먼저 수행하는 편이 합리적입니다.
산업 응용 단계에서는 차량과 인프라가 실제로 안전 기능을 수행하는지가 검증 대상입니다. 판정 로직이 표준과 같은 기준으로 동작하는지 확인해야 합니다.
V2V의 핵심은 충돌 시간(TTC)입니다. Phase 2는 차량 길이를 반영해 TTC = (d − L₁ − L₂) / (v₁ − v₂)로 정의하고, 위협 수준을 TTC 1.5초 미만은 CRITICAL(즉시 제동), 2.5초 미만은 HIGH(경고 및 제동 준비), 4.0초 미만은 MEDIUM(시청각 경고), 그 이상은 LOW(감시)로 나눕니다. 반면 Phase 3의 전방 충돌 경고(FCW) 클래스는 경고 임계값 2.5초, 위험 임계값 1.5초를 쓰고 거리를 상대 속도로 나눕니다. 두 부분의 계산 방식이 완전히 같지 않으므로, 시험 보고서에는 어떤 정의를 기준으로 삼았는지를 명시해야 합니다. 상대 속도가 0 이하이면 경고를 내지 않는다는 점은 공통입니다.
교차로 이동 지원(IMA)은 교차로 접근 여부와 경로 예측을 거쳐 충돌 지점을 찾고, 두 차량의 도착 시간 차이가 경고 시간(3.0초) 안이면 위협으로 기록합니다. 결과는 시간차가 작은 순으로 정렬되고, 우선권이 양보(YIELD)이면 SLOW_DOWN, 아니면 MONITOR 동작이 반환됩니다. 사각지대 경고는 좌우 구역 정의와 함께 사각지대 내 차량 감지, 방향지시등 작동, 횡가속도 감지를 경고 조건으로 합니다.
V2I 쪽에서는 신호 우선 처리가 핵심 시험 항목입니다. 긴급차량은 SRM(Signal Request Message)으로 우선 신호를 요청하고 RSU는 SSM(Signal Status Message)으로 응답합니다. 표준 예시에서 요청 필드는 requestID, vehicleID, vehicleType, priority, route(approach/departure), eta, duration이고, 응답은 requestID, status("granted"), preemptionTime, duration입니다. 시험에서는 요청 식별자가 응답에 그대로 연결되는지, 승인되지 않은 경우의 처리가 어떤지를 확인해야 합니다. SPaT 처리 결과를 이용한 GLOSA(녹색 신호 최적 속도 권고)도 신호 상태와 교차로 도달 시간 비교가 맞게 이루어지는지 점검합니다.
표준 준수는 하위 규격에 대한 정합성으로 확인합니다. 이 표준은 BSM에 SAE J2735, CAM과 DENM에 ETSI 규격, 접속 기술에 IEEE 802.11p와 C-V2X(LTE-V2X, 5G NR-V2X), 보안 인증서에 IEEE 1609.2를 두며, ISO·IEEE·SAE·ETSI 기반 규격을 참조 기준으로 삼습니다. 구현자는 자사 장치가 어떤 규격 판본을 따르는지 적합성 문서에 적어 두어야 합니다.
서명이 있어도 위치 추적이 쉬우면 안전 시스템으로서 신뢰를 얻기 어렵습니다. 표준의 프라이버시 요구는 다음과 같습니다.
시험에서는 수준별 출력 정밀도가 위 표와 일치하는지, 인증서 교체 전후에 식별자 연속성이 남지 않는지를 점검합니다.
오용 탐지(misbehavior detection)는 받은 메시지가 서명상 유효해도 내용이 비정상인지를 가려내는 단계입니다. 표준의 참조 코드는 이전 위치와 속도를 기록한 이력을 두고, 시간 경과에 따른 이동 가능 거리를 속도에 1.5 배수 여유를 곱해 추정한 뒤 위치 일관성을 확인하는 방식으로 시작합니다. 인증서 검증이 "누가 보냈는가"에 답한다면, 오용 탐지는 "보낸 내용이 물리적으로 가능한가"에 답합니다. 두 검사는 보완 관계이므로 인증 시험에서도 함께 다루어야 합니다.
구현 현장에서는 지역별 주파수 차이를 먼저 확인해야 합니다. 5.9 GHz ITS 대역은 미국 5.850~5.925 GHz(75 MHz), 유럽 5.875~5.905 GHz(30 MHz), 일본 5.770~5.850 GHz(80 MHz)로 다르며, 채널 172(5.860 GHz)는 안전 핵심 제어 채널(CCH), 174~184 채널은 서비스 채널로 배정됩니다. 하나의 장치를 여러 지역에 공급하는 경우 인증도 지역별로 구분되어야 합니다. 또한 DSRC는 10 MHz 채널과 CSMA/CA 방식의 MAC을 쓰고 가시선에서 최대 1000 m, 도심에서 300~500 m의 범위를 가집니다. 이 범위 차이는 RSU 간격과 중계 설계에 직접 영향을 줍니다. 전송 빈도는 정지 시 1 Hz에서 고속 시 10 Hz, 긴급 시 20 Hz로 달라지는데, 서명 처리 능력이 이 빈도를 따라가는지도 구현 단계에서 확인해야 합니다.
표준은 DSRC와 함께 LTE-V2X와 5G NR-V2X를 포함하는 C-V2X를 같은 틀에서 다룹니다. 접속 계층이 바뀌어도 메시지 형식, 서명 구조, 판정 로직이 유지되는 구조이므로 인증 체계도 계층 단위로 재사용하기 쉽습니다. 앞으로 필요한 작업은 접속 기술이 늘어나도 서명 검증과 프라이버시 점검 항목을 공통 기준으로 유지하는 일입니다.
이 장의 요지는 V2X 인증이 세 가지를 함께 확인한다는 것입니다. 첫째는 IEEE 1609.2 인증서와 ECDSA P-256 서명, 폐지·신선도(5초)·지역 검사로 이루어진 여섯 단계의 메시지 검증입니다. 둘째는 TTC 임계값(1.5/2.5/4.0초), IMA의 도착 시간차(3.0초), SRM/SSM 교환으로 대표되는 안전 기능의 판정 기준입니다. 셋째는 가명 인증서 교체, 위치 난독화, 오용 탐지로 구성된 프라이버시와 이상 행위 점검입니다. 구현자는 TTC 정의처럼 문서 안에서 차이가 있는 항목을 보고서에 명시하고, 지역별 주파수와 RSU 배치 우선순위를 시험 계획에 반영해야 합니다.
다음 장에서는 이 점검 체계를 실제 운용 환경에 적용했을 때 나타나는 문제로 시선을 옮깁니다. 인증을 통과한 장치가 도로 위에서 계속 신뢰를 유지하려면 폐지 정보 갱신, 인증서 풀 관리, 이상 행위 보고가 어떻게 이어져야 하는지가 그 출발점이 됩니다.