본문 바로가기
자동차 임베디드 SW/CAN통신 & LIN통신

uds진단통신 0x27 security access 서비스 개념

by 존버매니아.임베디드 개발자 2023. 11. 1.
반응형

특정 서비스, 또는 특정 서브펑션에 lock을 걸어놓는다. 그래서 인증 절차를 통과한 경우에만 해당 동작을 수행시킬 수 있도록 하기 위해서 사용되는게 security access 이다.

예를 들어 ecu reset 서비스는 sid가 0x11이다.
이 서비스에 특별히 lock이 걸려있지 않다면 그냥 곧바로 0x11 서비스를 요청하면 제어기가 응답해서 reset을 수행할 것이다.

근데 lock이 걸려있다면, 이 서비스를 실행하기전에 일단 lock을 푸는 절차를 거쳐야한다.

대강의 절차는 이러하다.
1.진단기가 제어기에게 seed 값을 요청
2.제어기는 seed 값을 보내줌(랜덤값)
3.진단기는 이 seed를 사용해서 지정된 알고리즘을 사용해서 key를 만들어낸다.
이 때, key를 만드는 알고리즘은 비밀이다. 그러니까 이 알고리즘을 알고있는 사람만 올바른 key 값을 만들 수 있을 것이다.
4. 진단기는 만들어낸 key값을 제어기에게 보낸다.
5. 제어기 역시 key만드는 알고리즘을 알고 있기 때문에 본인이 선정했던 seed를 사용해서 key를 계산해놨다가, 진단기가 보내는 key 값과 비교해서 같으면 lock을 푼다.

6.lock이 풀렸으면 이제 해당 서비스를 이용할 수 있다.


security access 서비스는 위에서 설명한 내용.
즉 seed와 key를 주고받는 과정에서 사용하는 서비스이다.


참고로 lock에는 level이란게 있다.
근데 level 이라고해서 이것을 보안등급이 높고 낮음의 개념으로 착각하기가 쉬운데 그렇지않다.

자물쇠가 여러개있는데 각 자물쇠를 지칭하는 id를 레벨이라고 생각하는게 올바른 개념이다.

각각의 서비스들은 수행 가능한 시큐리티 조건이 사전에 셋팅되야 한다.

예를 들어 ecu reset 서비스는 1 또는 2 자물쇠가 풀렸을때 동작가능하다고 가정하자.

참고로 자물쇠는 한번에 오직 1개만 풀려있을 수 있다.

이 경우, ecu reset 서비스 실행하고싶다면 자물쇠 1번 또는 2번을 풀면된다.

seucrity access 서비스는 lock을 풀때 자물쇠 번호별로 구분해서 풀 수 있다.


신입사원을 위한 UDS 진단통신 정복하기 유료강의를 제작하였습니다.
무료 샘플강의도 포함되어있으니 보시면 도움 될 겁니다.
https://inf.run/Gpj2

자동차 SW - UDS 진단통신 정복하기 강의 - 인프런

자동차SW 직무에서 이야기하는 진단통신이 무엇인지, 진단통신 실무자가 무슨 일을 어떻게 하는 건지 아주 명확하게 이해할 수 있어요! 실무자라면 이 강의를 듣고 나서 바로 실제 스펙 문서를

www.inflearn.com


반응형