O CAN 통신
- CAN(Controller Area Network)은 차량네에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신
- 각 제어기들 간의 통신을 위해 주로 사용되는 non-host 버스 방식의 메시지 기반 네트워크 프로토콜
- 1938년 최초로 Bosch에서 개발되었고, 1986년 공식적으로 소개된 이래 현재 생산되는 대부분의 자동차에서 사용
- 1991년 Bosch는 CAN2.0 스펙을 발표하였음
- CAN 통신은 OBD-ll(On Board Diagnostics)라고 불리는 차량 진단용 통신 표준의 5대 프로토콜* 중 하나로 포함
* SAE J1850 PWM : PWM 신호로 41.6kbps 속도로 동작하며 포드 사에서 만들었음
SAE J1850 VPW : Variable Pulse Width로 10.4kbps로 동작하며 GM 차량에서 주로 사용
ISO 9141-2 : 비동기 시리얼 통신으로 10.4kbps로 동작하며 크라이슬러, 유럽차, 아시아차들이 사용
ISO 14230 KWP2000 : 비동기 시리얼 통신으로 10.4kbps로 동작하며 크라이슬러, 유럽차, 아시아차들이 사용
출처
- OBD-ll 표준은 1996년 이후로 미국에서 판매되는 모든 승용차와 소형 트럭에 필수사항으로 적용
- 2001년 이후 판매되는 가솔린 차량에 대해 2004년 이후 판매되는 모든 디젤차량에 대해 EOBD 표준을 적용
o 역사
년도 | 내용 |
1983 | Bosch社에서 차량용 네트워크 프로토콜 개발 프로젝트 착수 |
1986 | CAN 프로토콜이 Society of Automotive Engineers (SAE)에 공식적으로 소개됨 |
1987 | Intel社와 Philips社에 의해 첫 번째 CAN 칩이 생산됨 |
1991 | Bosch, CAN 2.0 사양 발표 |
1992 | Mercedes-Benz社에서 최초로 CAN 적용 차량 생산 |
1993 | ISO 11898 (data link and high-speed physical layer) 사양 제정 |
1994 | SAE J1939 사양 제정 |
1995 | ISO 11898 사양 개정 (extended frame format) |
2003 | Data link 계층과 high-speed physical 계층 사양 분리 (ISO 11898-1 / -2) |
2006 | ISO 11898-3 (low-power, low-speed physical layer) 사양 제정 |
2007 | ISO 11898-5 (low-power, high-speed physical layer) 사양 제정 |
2011 | CAN FD 프로토콜 개발 착수 |
2013 | ISO 11898-6 (physical layer with selective wake-up function) 사양 제정 |
2015 | ISO 11898-1 (Classical CAN and CAN FD) 사양 발표 |
o 배경 및 특징
- 초기에는 자동차 안에 모듈이 많지 않아서 일대일 방식으로 ECU를 연결
- 모듈이 많아짐에 따라 배선의 증가로 유지 보수, 무게 증가 등의 문제로 이를 해결하고자 CAN 프로토콜이 개발
- 단일의 CAN BUS로 자동차 안의 ECU들이 서로 통신하며, 브로드캐스팅 방식으로 메시지를 전송
- 메시지 송신시 송신측이나 수신측의 주소를 포함하지 않으며, CAN 메시지 안에 있는 ID로 대체
* 메시지가 자신에게 필요한 메시지인지를 판단후(ID기반) 필요하면 받아들이고, 아니면 무시
* 표준으로 ID가 어디에 쓰일지는 정해져 있으나 제조사에서 자체적으로 커스터마이징하여 사용
- CAN은 BUS 형태로 통신하며 각 ECU에서 메시지 송신시 충돌이 발생할 수 있음
* CSMA/CD + AMP(Arbitraion Message Priority)방식을 사용하여 충돌을 해결할 수 있음
* 각 ECU는 데이터 송신전 BUS가 사용중인지 파악함
* 만약 버스가 사용 중이라면 전송하지 않고 ECU와 동시에 전송하게 될 경우 메시지 우선순위에 따라 중재(Arbitraion)
o 규격
- CAN 메시지에 있는 식별자(ID)의 길이에 따라 두 가지 모드로 구분(CAN 2.0A/B)
- CAN BUS상에 있는 각 ECU들의 모드에 따라 메시지 수용이 불가할 수 있음
- CAN 2.0A는 표준 CAN 포맷의 메시지만 송수신가능하며, 2.0B는 수신하더라도 무시
- CAN 2.0B는 2.0A 및 2.0B 둘다 송수신 가능
- ISO규격에 따라 두가지로 구분이 가능함
- ISO 11898은 1Mbps 이상의 고속통신이 가능
- ISO 11519는 125Kbps까지 통신이 가능함
* 여러 ECU들을 하나의 CAN BUS로 통합하는 것이 아닌 독립적인 CAN Bus를 만들어 사용
* Class A, B는 썬루프, 좌석 조절장치 등 0 ~ 125kbits/s의 속도사용
* Class C, D는 파워 트레인, 엔진 관리, 인터넷 등은 1Mbit/s의 속도 사용 (중요도에 따라 다르게 활용)
o 보안 특성 정리
- 네트워크상 모든 노드들에게 브로드캐스팅되므로 스니핑 등에 대한 보안 취약점이 내재되어있음
- 메시지 식별자에 의한 자체적인 중재 기능 제공
- 데이터 프레임내에 메시지를 송신하는 대상을 인증할 수 있는 필드 부재하여 중간자 공격 가능성 내포
'Network' 카테고리의 다른 글
차량 해킹 실습을 통한 CAN 통신 및 보안 이해(Spoofing) (0) | 2020.11.16 |
---|---|
차량 해킹 실습을 통한 CAN 통신 및 보안 이해(해킹기법 및 환경) (3) | 2020.11.16 |
ELK(ElasticSearch, Logstash, Kibana)설치 및 간단 실습 (0) | 2016.08.16 |
Untangle을 이용한 보안솔루션(방화벽,NAC) 구축, 실습 (3) (1) | 2016.08.15 |
Untangle을 이용한 보안솔루션(방화벽,NAC) 구축, 실습 (2) (9) | 2016.08.15 |
최근댓글