# CAN ํต์ ์ ์ดํด: CAN Protocol ๋ฐ ํต์ ์์คํ & CAN Dos Attack
# CAN๊ณผ CAN ํต์
- CAN (Controller Area Network)
: ์ฐจ๋ ๋ฐ ์ฐ์ ์ฉ ์ ์ด ์์คํ ์์ ์ฌ์ฉ๋๋ ํต์ ํ๋กํ ์ฝ๋ก, ๊ฐ ๋ชจ๋ ๊ฐ ๋ฐ์ดํฐ ํต์ ์ ์ด์ฉ๋๋ค. CAN ํ๋กํ ์ฝ์ ์ด์ฉํ ํต์ ์ ๋ฐ์ดํฐ ์ ์ก์ ์ํด ์ด 2๊ฐ์ ์ ์ก์ (CAN-Tx & CAN-Rx)์ผ๋ก ์งํ๋๋๋ฐ, ์ด๋ก ์ธํด ๋์ ์ ๋ขฐ์ฑ๊ณผ ์์ ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
+ ์ฐธ๊ณ ์๋ฃ
: https://www.engineersgarage.com/can-protocol-understanding-the-controller-area-network-protocol/
# CAN Protocol์ ์์ธ์ ํน์ง
- CAN Protocol์ ํน์ง
๊ณ ์ ํต์ | ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ก ์ง์ |
์ค๋ฅ ๋ณต๊ตฌ ๋ฐ ๊ฒ์ถ ๊ธฐ๋ฅ ์ง์ | ๋ฐ์ดํฐ ์ ์ก ์ค ์ค๋ฅ ๋ฐ์ ์ ์ค๋ฅ ์๋ณ ๋ฐ ์์ ๊ธฐ๋ฅ ์ง์ |
๋ฉํฐ ๋ง์คํฐ ํต์ | ๋ค์์ ๋๋ฐ์ด์ค์ ๋์ ๋ฐ์ดํฐ ์ ์ก ์ง์ |
์ ์ ์ ๋ ฅ ์๋น | ๋ฐฐํฐ๋ฆฌ ์๋ช ์ฐ์ฅ ๋ฐ ์ ์ ๋ ฅ ์๋น ์ง์ |
์ฐ์ ์์ ๊ธฐ๋ฐ ํต์ | ๋ฉ์์ง ์ฐ์ ์์ ๊ธฐ๋ฐ์ ํต์ ์ฒ๋ฆฌ ์ง์ |
์ ๋ขฐ์ ์ด๊ณ ์์ ์ ์ธ ํต์ | ์ฌ๋ฌ ๋ฐฉ๋ฉด์์ ๋์ ์ ๋ขฐ์ฑ ๊ฐ์ง ํต์ ์ง์ |
+ ์ฐธ๊ณ ์๋ฃ
- CAN Protocol์ ๊ตฌ์ฑ
CAN ํ๋กํ ์ฝ์ ํ์คํ๋ ํน์ฑ ์ํผ๋์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์์ ์ผ์ด๋ธ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ฐ, ์ด๋ก ์ธํด ๊ฐ์ข ์ธ๋ถ ๋ ธ์ด์ฆ์ ๊ฐํ ์ด๋๋ก ๋ณดํธ๋ฐ์ ์ ์๋ค. ๋ CAN ํต์ ํ๋กํ ์ฝ์์๋ ํ๋ ์์ด ๋ฐ์ดํฐ์ ์ ์ก ๋จ์์ด๋ค. ํ๋์ ํ๋ ์์ ์ด 6๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋๋๋ฐ, ๊ทธ ๋ชฉ๋ก์ ์๋์ ๊ฐ๋ค.
SOF | Identifier | Control Field |
EOF | Data Field | CRC |
์์์ ์ธ๊ธ๋์๋ฏ์ด, CAN ํต์ ํ๋กํ ์ฝ์์๋ ๋ฉ์์ง๋ฅผ ์๋ณํ๋ ์ฉ๋๋ก ์๋ณ์๋ฅผ ์ด์ฉํ๋ค. ์ด ์๋ณ์(Identifier)์ 11 ๋๋ 29๋นํธ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์๋ณ์๋ ๊ฐ์ง๋ ๋นํธ์ ๊ธธ์ด๋ฏธ๋ค ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ง๋๋ฐ, 11๋นํธ ์๋ณ์๋ SID, 29๋นํธ ์๋ณ์๋ Extended CAN( = EID )๋ผ๋ ๋ช ์นญ์ผ๋ก ๋ถ๋ฆฐ๋ค. ๋ ์ค๋ฅ ๊ฒ์ถ ๋ฐ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ํด CAN ํต์ ์ CRC ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. CRC๋ Cyclic Redundancy Check์ ์ฝ์๋ก, ๋ฐ์ดํฐ ์ ์ก ์ค ์ค๋ฅ ๋ฐ์ ์ ํ๋ ์ ์ฌ์ ์ก ๋ฐ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ด๋ค.
+ ์ฐธ๊ณ ์๋ฃ
: http://www.fescaro.com/kr/insight/blog.php#content
- CAN Protocol์ ๊ท๊ฒฉ๊ณผ ๋ฒ์
: CAN ํ๋กํ ์ฝ์ ISO ๊ท๊ฒฉ์ ๋ฐ๋ผ ์ด 2๊ฐ์ง๋ก ๋ถ๋ฅ๋๋๋ฐ, ์ด๋ค์ ๊ฐ๊ฐ ํต์ ์๋์์ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค. ISO 11898์ ๊ฒฝ์ฐ ์ฝ 1Mbps ์ด์์ ์๋๋ฅผ ๋ผ ์ ์๊ณ , ISO 11519์ ๊ฒฝ์ฐ๋ ๊ณ ์ 125kbps์ ํต์ ์๋๋ฐ์ ์ง์ํ์ง ๋ชปํ๋ค.
ISO ๊ท๊ฒฉ๋ฟ๋ง ์๋๋ผ ์์์ ์ธ๊ธ๋์๋ ์๋ณ์์ ๊ธธ์ด์ ๋ฐ๋ผ์๋ ๊ท๊ฒฉ๊ณผ ๋ฒ์ ์ ๋๋ ์ ์๋ค. ํ์ค CAN์ ๊ฒฝ์ฐ๋ 2.0A ๋ฒ์ ์ผ๋ก 11๋นํธ์ ์๋ณ์์ ๊ด๋ จ๋์ด ์๋ค. ๋ฐ๋๋ก ํ์ฅ CAN์ ๊ฒฝ์ฐ๋ 2.0B ๋ฒ์ ์ผ๋ก, 29๋นํธ์ ์๋ณ์์ ์ฐ๊ด์ด ์๋ค.
+ ์ฐธ๊ณ ์๋ฃ
: https://www.kvaser.com/can-protocol-tutorial/
# CAN ํต์ ๊ณผ ๋ฉ์์ง ์ถฉ๋
: CAN ํต์ ์์๋ ๋ฉ์์ง์ CAN ID๊ฐ ์์์๋ก ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ฌ์ฉํ ๋ฒ์ค์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ๋จผ์ ๊ฒํ ํ๋ค. ์ด๋ ํ์ํ ๋ฒ์ค๊ฐ ์ด๋ฏธ ๋ค๋ฅธ ์์์ ์ํด ์ฌ์ฉ๋๊ณ ์๋ ๊ฒฝ์ฐ์๋ ๋ฉ์ธ์ง ๊ฐ์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์๋๋ค. ๋ง์ผ ๋ฉ์์ง์ ์ถฉ๋์ด ๋ถ๊ฐํผํ๊ฒ ๋ฐ์ํ์๋ค๋ฉด, ๋ ๋ฉ์ธ์ง์ ์ฐ์ ์์๋ฅผ ํ๋ณํ์ฌ ๋ ์ ์ CAN ID๊ฐ์ ๊ฐ์ง ๋ฉ์์ง๋ง ์ ์กํ๋ค.
+ ์ฐธ๊ณ ์๋ฃ
: https://copperhilltech.com/blog/controller-area-network-can-bus-bus-arbitration/
# CAN Dos Attack๊ณผ ํต์ ์ทจ์ฝ์
: CAN ํต์ ์์์ DoS ๊ณต๊ฒฉ์ ๋๋ถ๋ถ CAN ๋ฒ์ค๋ฅผ ํฌํจํจ ๋ฌผ๋ฆฌ์ ์ธ ์ ๊ทผ์ ์๊ตฌํ๋๋ฐ, ์ด๋ฌํ ์ ์ ์ ์ฉํ ์ ์๋ค. CAN ๋ฒ์ค์ ๋ํด ๋ง์ ์์ ์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ฑฐ๋, ํ๋ ์ด์์ ๋ ธ๋์์ ํต์ ์์์ ํ๊ณ์น ์ด์์ ๊ณผ๋คํ ๋ฐ์ดํฐ ํ๋ ์์ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก์ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค.
+ ์ฐธ๊ณ ์๋ฃ
: https://www.ncsc.gov.uk/collection/denial-service-dos-guidance-collection
: https://www.cisa.gov/news-events/news/understanding-denial-service-attacks
# CAN ํต์ ๊ณผ TCP/IP
TCP๋ Transmission Control Protocol์ ์ฝ์๋ก, ๋คํธ์ํฌ ์์์ ๋ฐ์ดํฐ๋ค์ ์์ ์ ์ผ๋ก ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(IP suite) ์ค ํ๋์ด๋ค. TCP๋ ์ ์ก ๊ณ์ธต, ์ฆ Transport Layer์์ ์๋ํ๋ค๋ ํน์ง์ด ์๋ค. ์ผ๋ฐ์ ์ผ๋ก IP ํ๋กํ ์ฝ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ์น ๋ธ๋ผ์ฐ์ ๋ฐ ์น ์๋ฒ ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ด๋ ์ด๋ฉ์ผ ์ ์ก ๋ฑ ๋ค์ํ ์ธํฐ๋ท ์๋น์ค์์ ์ด์ฉ๋๊ณ ์๋ค.
IP์ ๊ฒฝ์ฐ Internet Protocol์ ์ฝ์๋ก ์ด ๋ํ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ ์ค ํ๋์ด๋ค. TCP์ ์ ์ฌํ๊ฒ ์ธํฐ๋ท ์์์ ๋ฐ์ดํฐ ํจํท์ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. IP๋ ๋ฐ์ดํฐ ํจํท์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ณ , ํจํท์ด ๋ฌด์ฌํ ๋ชฉ์ ์ง๊น์ง ๋๋ฌํ ์ ์๋๋ก ์ค๊ฐ ์ง์ ์์ ๋ผ์ฐํ ์ ์ํํ๋ค. IP๋ ์ธํฐ๋ท ๊ณ์ธต(Internet Layer)์์ ์๋ํ๋ฉฐ, ์์ ๊ณ์ธต์์๋ TCP, UDP(User Datagram Protocol) ๋ฑ์ ํ๋กํ ์ฝ๋ค์ด ์ด์ฉ๋๋ค.
IP, TCP์ CAN์ ๋งค์ฐ ์ ์ฌํ์ง๋ง ๊ฐ๊ธฐ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค. ์ฃผ๋ ์ฐจ์ด์ ์ ์ฉ๋์ ํ๋กํ ์ฝ์ ์ข ๋ฅ, ์๋ฆฌ ์ฒ๋ฆฌ ๋ฐ ํจํท ์ ์ก ๋ฐฉ์๊ณผ ์ฐ๊ด์ด ๊น๋ค. ๊ฐ ์์๋ค์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ์๋ ํ์ ๊ฐ๋ค.
TCP | IP | CAN | |
์ฌ์ฉ ๋ถ์ผ ๋ฐ ์์ | ์น ๋ธ๋ผ์ฐ์ ๋ฐ ์ด๋ฉ์ผ | ์ธํฐ๋ท ๋ฐ์ดํฐ ์ ์ก | ์ฐจ๋ ๋ด๋ถ ํต์ ๋ฐ ๋ก๋ด ์ ์ด |
์ ์ก ์๋ | ๋๋ฆผ | ๋น ๋ฆ | ๋น ๋ฆ |
์๋ฌ ์ฒ๋ฆฌ | ์๋ฌ ๊ฒ์ถ ๋ฐ ์ฌ์ ์ก ์ง์ | ์๋ฌ ๊ฒ์ถ | ์๋ฌ ๊ฒ์ถ ๋ฐ ์ฌ์ ์ก |
ํจํท ์ ์ก ๋ฐฉ์ | ์ฐ๊ฒฐํ | ๋น์ฐ๊ฒฐํ | ๋น์ฐ๊ฒฐํ |
ํ๋กํ ์ฝ ์๋ ๊ณ์ธต | ์ ์ก ๊ณ์ธต | ์ธํฐ๋ท ๊ณ์ธต | ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต |
์ฉ๋ | ๋ฐ์ดํฐ์ ์์ ์ ์ ์ก ์ง์ | ๋ฐ์ดํฐ ํจํท ๋ผ์ฐํ | ์ฐจ๋ ๋ด๋ถ ํต |
+ ์ฐธ๊ณ ์๋ฃ
: https://www.techtarget.com/searchnetworking/definition/TCP
: https://www.fortinet.com/resources/cyberglossary/tcp-ip
: https://www.hostinger.com/tutorials/tcp-protocol
'โ๏ธ INTERLUDE > 2023 Autonomous Driving & Network Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[4์ฃผ์ฐจ] V2V์ V2I ์ ์ดํด (0) | 2023.05.09 |
---|---|
[3์ฃผ์ฐจ] LIN Bus & V2X ์ ์ดํด (0) | 2023.04.06 |
[1์ฃผ์ฐจ] ์์จ์ฃผํ ์๋์ฐจ & ์ปค๋ฅํฐ๋ ์นด ๋ํฅ (0) | 2023.03.29 |