블로그 이미지
황상두

카테고리

기타 (101)
알고리즘(백준) (3)
임베디드 보안 (7)
windows internal (22)
공부 (16)
전공 스터디 (27)
과제 (8)
영어 (6)
기록물 (6)
Total
Today
Yesterday

달력

« » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

공지사항

태그목록

최근에 올라온 글

CAN 패킷 분석

임베디드 보안 / 2017. 12. 12. 00:18

CAN은 자동차에서 사용하기 때문에 패킷 분석을 하기 위해서는 자동차가 필요하다.

자동차에서 실습하기에는 현실적으로 힘든 점이 상당히 많다.

누군가 한 명은 이 문제를 해결하지 않았을까?
역시 있다. 우리가 상식적으로 생각하는 모든 것들은 최소한 시도 되었다.
만들어졌느냐의 차이인데 만들어져도 있다.

그것은 바로 can-utils 이다.

http://www.fescaro.com/2016/12/socketcan%EA%B3%BC-can-utils/ 
[페스카로 블로그 참조]

'임베디드 보안' 카테고리의 다른 글

자동차 공격 시나리오  (0) 2017.12.12
리눅스 sublime text3 업데이트 팝업 뜨지 않도록 하기!  (0) 2017.12.12
리눅스 패키지 의존성 문제 해결  (0) 2017.12.12
CRC란?  (0) 2017.12.08
CAN 통신  (0) 2017.12.08
Posted by 황상두
, |

CRC란?

임베디드 보안 / 2017. 12. 8. 22:37

CRC(Cyclic Redundancy Check)로 Check-sum이나 패리티 비트와 같이 에러 검출할 때 사용한다.

Parity비트는 1의 개수가 홀수냐 짝수냐로 에러를 검출하는데 1/2의 찍신으로 그냥 넘겨질 수 있기때문에 완전하지 못하다.

Check-sum의 경우도 우연의 일치로 합이 같아질 수 있기 때문에 조심해야 한다.
ex) 1100 , 1001은 check-sum이 같다.

CRC는 패리티와 체크섬에 비하면 신뢰할만하다고 할 수 있다.

ex)

P(X)가 보내고자 하는 데이터
G(X)는 미리 정해진 값
Q(X)는 몫
R(X)라고
해보자!

P(X) = 110011
G(X) = 11001
k=4
이라고 해보자!

xk * P(X) = 1100110000 
1100110000 = 11001 * (10000 + 1) + (1000 + 1)

Q(X) = 10001
R(X) = 1001 = FCS

xkP(X) + R(X) = 1100110000 + 1001 = 110011/1001가 전송된다.

 

'임베디드 보안' 카테고리의 다른 글

자동차 공격 시나리오  (0) 2017.12.12
리눅스 sublime text3 업데이트 팝업 뜨지 않도록 하기!  (0) 2017.12.12
리눅스 패키지 의존성 문제 해결  (0) 2017.12.12
CAN 패킷 분석  (0) 2017.12.12
CAN 통신  (0) 2017.12.08
Posted by 황상두
, |

CAN 통신

임베디드 보안 / 2017. 12. 8. 22:17

RISS에서 찾아보면 CAN에대한 논문을 많이 볼 수 있다.

페스카로 블로그 에서도 확인할 수 있다.

CAN은 Controller Area Network 의 약자이다.
처음에 Car Area Network인 줄 알았다.
학교 다닐 떄 LAN, WAN등등 개념이랑 같이 배웠던 걸로 기억한다.

자동차에서 쓰이는 걸로 기억난다.
자 그러면 CAN에 대해서 살펴보자.


 

사진은 두개로 준비해봤다. 밑에 사진을 보면 2개의 선이 꼬여있는 것을 볼 수 있다.
꼬는 이유는 간섭을 줄이기 위해서이다. 상식으로 알고 있자!

OSI 7계층 사진이다.
CAN에서는 이중 Data Link Layer와 Physical Layer만 필수적으로 사용하고 나머지는 상위계층에서 구현하기 나름이다. OSI 7계층은 외워두자! 네트워크를 다루게 되는 날에는 자동암기해야하는 부분이다.

 

 

Frame

- Data Frame
- Remote Frame
- Error Frame
- OverloadFrame

DataFrame은 data 전송
RemoteFrame은 data  요청
Error Frame은 error시
OverloadFrame은 과부하 걸려서 지연되었을 때

사용된다고 간략하게 알고 있자.

A는 Identifier부분이 11bit이고
B는 Identifier부분이 29bit이다.

Arbitration Field는 중재 필드로 Identifier랑 RTR(1bit)
RTR의 값이 0이냐 1이냐에따라서 Data Frame이냐 Remote Frame이냐가 결정된다.

Control Field는 제어 필드로 r(reserve)와 DLC(Data length code)로 구성되어 있다.

Data Field는 전송할 데이터를 의미한다.

RemoteFrame과 DataFrame의 차이는 RTR의값과 Data Field의 존재여부이다.
RemoteFrame은 DataField가 없다.

 

'임베디드 보안' 카테고리의 다른 글

자동차 공격 시나리오  (0) 2017.12.12
리눅스 sublime text3 업데이트 팝업 뜨지 않도록 하기!  (0) 2017.12.12
리눅스 패키지 의존성 문제 해결  (0) 2017.12.12
CAN 패킷 분석  (0) 2017.12.12
CRC란?  (0) 2017.12.08
Posted by 황상두
, |

최근에 달린 댓글

글 보관함