차량 사이버보안/자동차 사이버보안 입문

CAN 버스란 무엇일까? — CAN버스 정류장의 첫 번째 이야기

vsec 2026. 5. 29. 15:39
차량 사이버보안 기초 지식

차량 사이버보안 업무를 하다 보면 CAN이라는 단어를 정말 자주 접하게 됩니다.

업무에서 자주 등장하는 단어들
CAN 메시지 · CAN ID · CAN FD
CAN Spoofing · CAN Injection
CANoe · CANalyzer · CAN 로그
SecOC — CAN 메시지 인증

심지어 차량 해킹 뉴스에서도 가장 많이 등장하는 단어 중 하나입니다. 그런데 의외로 이런 질문이 자주 나옵니다. "그래서 CAN 버스가 정확히 뭐야?"

CAN 버스를 이해하지 못하면
차량 통신도, 진단도, 차량 사이버보안도 제대로 이해하기 어렵습니다.

CAN버스 정류장이라는 이름을 달고 쓰는
첫 번째 기초 이야기입니다.

자동차 안에는 생각보다 많은 컴퓨터가 있다

과거 자동차는 기계 장치가 대부분이었습니다. 하지만 지금 자동차는 다릅니다. 차량 안에는 수십 개에서 많게는 100개 이상의 ECU(Electronic Control Unit)가 존재합니다.

🔧
엔진 ECU
엔진 출력·연료 제어
🛑
ABS ECU
제동·잠김 방지
💨
에어백 ECU
충돌 감지·전개
🚗
BCM
도어·조명·전장 제어
🌡️
HVAC ECU
공조·냉난방 제어
📊
클러스터
속도계·경고등 표시
🎮
변속기 ECU
변속 제어
🤖
ADAS ECU
주행 보조·차선 유지

각 ECU는 담당 업무가 다릅니다. 그런데 여기서 문제가 생깁니다. 이 ECU들이 서로 어떻게 정보를 주고받아야 할까요?

예를 들어, 속도 정보는 엔진 ECU가 만들지만 클러스터·ABS·ADAS가 모두 필요합니다. 어떻게 공유할까요?

ECU마다 전선을 연결하면 어떻게 될까

❌ ECU마다 전선 연결
엔진 ↔ ABS, 엔진 ↔ BCM, 엔진 ↔ 클러스터...

ECU가 10개면 조합이 45가지. 100개면 4,950가지.
배선 무게 증가, 비용 폭발, 유지보수 불가.
✅ 하나의 통신선 공유 — CAN 버스
모든 ECU가 하나의 네트워크에 연결.

ECU가 늘어나도 배선 구조는 단순.
무게·비용·복잡도 모두 절감.

그래서 등장한 것이 CAN 버스입니다.


CAN 버스란 무엇인가

CAN = Controller Area Network

1980년대 Bosch에서 개발한 차량용 네트워크 기술입니다. 핵심은 단순합니다.

CAN 버스 구조 — 모든 ECU가 하나의 네트워크 공유
엔진 ECU
ABS ECU
BCM
클러스터
ADAS ECU
모든 ECU가 동일한 CAN 버스(통신선)에 연결됩니다. 누군가 메시지를 보내면 모든 ECU가 받고, 필요한 ECU만 처리합니다.
단체 채팅방과 비슷합니다.
누군가 메시지를 올리면 방에 있는 모두가 볼 수 있습니다. 자기한테 필요한 정보만 챙기고 나머지는 무시합니다.

CAN의 가장 중요한 특징 — 주소가 아니라 메시지

일반 네트워크는 "A → B" 형태입니다. "이 메시지는 B에게만 보내"라는 개념이 있습니다. 하지만 CAN은 다릅니다.

CAN 버스 동작 방식 — 방송 기반
엔진 ECU
속도 = 80km/h (ID: 0x100)
→ 클러스터: 속도계 표시 / ABS: 제동 제어 / ADAS: 차선 유지 / BCM: 무시
ABS ECU
브레이크 압력 = 35bar (ID: 0x200)
→ 엔진 ECU: 출력 조절 / 클러스터: 경고등 / 에어백: 충돌 대비 / HVAC: 무시
핵심: CAN은 수신자 주소가 없습니다. 대신 CAN ID로 "이 메시지가 무엇인지"를 표시합니다. 각 ECU가 알아서 필요한 메시지를 골라 씁니다.

CAN ID란 무엇인가

CAN 메시지에는 CAN ID라는 값이 있습니다. 초보자들이 자주 하는 오해가 있습니다.

❌ "CAN ID = ECU 주소 (누가 보냈는지)"
✅ "CAN ID = 메시지 의미 (이 데이터가 무엇인지)"
CAN ID는 발신자 주소가 아닙니다. "이 메시지가 어떤 정보를 담고 있는가"를 나타냅니다. 그래서 여러 ECU가 같은 ID의 메시지를 수신해서 각자 다르게 활용할 수 있습니다.
0x100
차량 속도
단위: km/h
클러스터·ABS·ADAS 사용
0x200
엔진 RPM
단위: RPM
클러스터·변속기 사용
0x300
브레이크 상태
0: 미작동 / 1: 작동
ABS·에어백 사용

CAN 메시지는 어떻게 생겼나

CAN 프레임 구조 (Standard CAN)
SOF
1 bit
시작
CAN ID
11 bit
메시지 종류
DLC
4 bit
데이터 길이
DATA
0~8 Byte
실제 데이터
CRC
15 bit
에러 검출
ACK
2 bit
수신 확인
EOF
7 bit
종료
빨간 CAN ID가 "이 메시지가 무엇인지"를 결정합니다. 초록 DATA가 실제 값(속도·RPM 등)을 담습니다. 보라색 CRC로 데이터 오류를 검출합니다.

CAN이 자동차에서 40년간 살아남은 이유

실시간성
메시지 전달 지연이 매우 짧아 실시간 제어에 적합
🛡️
신뢰성
CRC 에러 검출 내장. 오류 시 자동 재전송
📉
단순한 배선
ECU가 늘어나도 공통 버스 하나로 연결
💰
비용 효율
저렴한 트랜시버, 낮은 구현 비용

CAN FD — 왜 나왔을까

기존 CAN은 최대 8Byte 데이터만 전송할 수 있었습니다. 그런데 차량 기능이 복잡해지면서 더 많은 데이터가 필요해졌습니다. 특히 SecOC 같은 보안 기능을 추가하면 인증 데이터(MAC)까지 실어야 해서 8Byte가 빠듯해졌습니다.

CAN (기존)
Classic CAN
  • 최대 데이터: 8 Byte
  • 최대 속도: 1 Mbps
  • 모든 차량에 적용
  • SecOC 적용 시 공간 부족
CAN FD (개선)
CAN Flexible Data-rate
  • 최대 데이터: 64 Byte
  • 최대 속도: 8 Mbps
  • 최근 차량에 확대 적용
  • SecOC MAC 추가 여유 생김

CAN에는 치명적인 문제가 있다

CAN은 1980년대에 개발됐습니다. 당시 자동차는 인터넷과 연결되지 않았습니다. 그래서 CAN은 성능과 안정성은 중요하게 설계했지만 보안은 거의 고려하지 않았습니다.

🚫
인증(Authentication) 없음
누가 이 메시지를 보냈는지 알 수 없습니다. 메시지에 발신자 정보가 없고 검증 방법도 없습니다.
🔓
암호화(Encryption) 없음
메시지 내용이 평문으로 전송됩니다. CAN 버스에 접근할 수 있는 사람은 누구나 내용을 읽을 수 있습니다.
✏️
무결성 검증(Integrity) 없음
메시지가 변조됐는지 확인할 수 없습니다. CRC는 전송 오류는 잡지만 의도적인 변조는 막지 못합니다.
⚠️ 결론: CAN 네트워크에 접근할 수만 있다면 누구나 정상적인 메시지처럼 보이는 가짜 메시지를 보낼 수 있습니다.

그래서 차량 해킹이 가능했다 — CAN Spoofing

CAN Spoofing 공격 흐름
OBD 포트
물리 접근
CAN 버스
연결
가짜 CAN
메시지 전송
다른 ECU가
정상으로 처리
차량 기능
오동작
가짜 브레이크 메시지·가짜 속도 메시지·가짜 기어 상태 → ECU가 그대로 실행

실제로 2015년 Jeep Cherokee 해킹 사례가 이 구조로 이루어졌습니다. 원격에서 CAN 버스에 가짜 메시지를 주입해 속도 제어, 브레이크, 변속기를 원격 조작했습니다. 이 사건이 차량 사이버보안 규제 논의를 본격화하는 계기가 됐습니다.


그래서 등장한 것이 SecOC

CAN의 보안 문제를 해결하기 위해 AUTOSAR에서 SecOC(Secure Onboard Communication)를 제공합니다.

SecOC가 하는 일:

CAN 메시지에 MAC(Message Authentication Code)을 추가합니다. 수신 ECU는 MAC을 검증해서 "이 메시지가 진짜인가, 변조되지 않았는가"를 확인합니다.

CAN이 만든 보안 공백을 SecOC가 채우는 구조입니다.

SDV 시대에도 CAN은 사라지지 않는다

❌ "Ethernet이 나왔으니 CAN은 곧 없어질 것이다"
✅ "역할이 달라 앞으로도 공존한다"
창문·시트·조명·공조·도어 같은 기능은 고성능 Ethernet 환경이 필요 없습니다. 저렴하고 신뢰성 높은 CAN이 더 적합합니다.

앞으로도 HPC·Domain Controller는 Ethernet으로, Body ECU·Gateway는 CAN으로 공존하는 구조가 이어질 가능성이 높습니다.
미래 차량 통신 구조 — CAN과 Ethernet 공존
Ethernet
HPC · Domain Controller
ADAS · OTA · Cloud 연결
+
CAN / CAN FD
Body ECU · BCM
도어·조명·HVAC·Gateway

현업에서는 이렇게 느낀다

CAN을 이해하면 보이는 것들

SecOC가 왜 필요한지 자연스럽게 이해된다 — CAN에 인증이 없다는 걸 알면, SecOC가 MAC을 추가하는 이유가 바로 납득됩니다. 개념을 외우는 게 아니라 맥락이 연결됩니다.
CAN 로그 분석이 보안 분석의 기초가 된다 — CANoe·CANalyzer로 로그를 뽑으면 수천 개 메시지가 쏟아집니다. CAN ID가 무엇을 의미하는지 이해해야 어떤 메시지가 이상한지 판단할 수 있습니다.
PenTest에서 CAN Injection이 왜 쉬운지 알게 된다 — 인증 없이 누구나 메시지를 보낼 수 있는 구조라는 걸 이해하면, 왜 OBD 포트만 있으면 공격 시도가 가능한지 바로 납득됩니다.
CAN FD 전환이 왜 보안 관점에서도 중요한지 보인다 — 8Byte에서 64Byte로 늘어나면 SecOC MAC을 추가할 여유가 생깁니다. 단순한 성능 이야기가 아니라 보안 적용 가능성과도 연결됩니다.

마무리

자동차는 수많은 ECU가 서로 대화하며 움직입니다.
그 대화를 가능하게 만든 기술이 CAN 버스입니다.

CAN은 자동차 산업을 바꾼 가장 성공적인 네트워크 기술이었지만,
보안을 고려하지 않은 한계도 함께 남겼습니다.

우리가 이야기하는 차량 보안 기술 대부분은 결국
"CAN 위에서 오가는 메시지를 얼마나 믿을 수 있는가"라는 질문에서 시작됩니다.
핵심 요약
1
CAN은 ECU들이 하나의 통신선을 공유하는 차량 네트워크 — 배선 복잡도를 줄이고 실시간 신뢰성을 확보하기 위해 1980년대 Bosch가 개발
2
CAN ID는 주소가 아니라 메시지 의미 — 누가 보냈는지가 아니라 "이 데이터가 무엇인지"를 나타냄
3
CAN에는 인증·암호화·무결성 검증이 없다 — 이 한계가 차량 사이버보안이 중요해진 직접적인 이유
4
CAN FD는 데이터를 64Byte로 확장 — SecOC MAC 추가 공간 확보, 보안 적용 가능성 향상
5
SDV 시대에도 CAN은 사라지지 않는다 — Ethernet과 역할을 나눠 Body·Gateway ECU에서 계속 사용
CAN CANBus CANFD 차량통신 ECU 차량사이버보안 SecOC CANSpoofing ControllerAreaNetwork 자동차기초지식 CAN버스정류장 SDV
반응형