KR101953908B1 - 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 - Google Patents
자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 Download PDFInfo
- Publication number
- KR101953908B1 KR101953908B1 KR1020170002443A KR20170002443A KR101953908B1 KR 101953908 B1 KR101953908 B1 KR 101953908B1 KR 1020170002443 A KR1020170002443 A KR 1020170002443A KR 20170002443 A KR20170002443 A KR 20170002443A KR 101953908 B1 KR101953908 B1 KR 101953908B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- data
- automotive
- header
- stored
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 일면에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템은 하나 이상의 자동차 전장 부품과, 자동차 표준 소프트웨어 플랫폼부와, 연산부와, 데이터 베이스와, 서비스 제공부를 포함하되, 상기 자동차 전장 부품은, 생성한 데이터와 메타데이터를 상기 연산부에 전송하는 것이고, 상기 연산부는, 전송받은 데이터로부터 해쉬값을 생성하고, 상기 해쉬값과 상기 메타데이터 를 포함하는 헤더와 상기 데이터를 암호화하여 저장하되, 제1 자동차 전장 부품으로부터 전달받은 제1 해쉬값을 제2 자동차 전장 부품의 제2 헤더에 제2 자동차 전장 부품의 제2 해쉬값을 이용하여 암호화하여 저장하는 것이고, 상기 서비스 제공부는, 상기 제2 자동차 전장 부품의 제1 헤더에 저장된 해쉬값을 복호화한 암호화키를 이용하여, 상기 제1 자동차 전장 부품의 데이터를 복호화하는 것을 특징으로 한다.
Description
본 발명은 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법에 관한 것이다.
최근 자동차에 사용되는 전자 장치(차량용 전장)가 지속적으로 개발됨에 따라, 그 종류가 다양해지고, 자동차에서 전자 장치를 이용하여 제공하는 기능이 증가하고 있다. 소프트웨어 수량 및 복잡성도 증가하여 차량 전자장치의 표준화 필요성도 대두되고 있다.
이러한 표준화의 일환으로 자동차용 전자 장치(차량용 전장)에 사용되는 임베디드 소프트웨어의 개발을 위한 표준 소프트웨어 설계 도구로서 오토사(AUTOSAR, AUTomotive Open System ARchitecture)가 규정되어 차량용 전장 소프트웨어 개발의 향상을 꾀하고 있다.
AUTOSAR를 토대로 구축된 차량용 전장 시스템에 있어서, 데이터 보안 방법에 대한 표준이 미비한 문제가 있다. 차량용 전장 시스템의 데이터가 외부의 해커에 의하여 유출 또는 반출되는 경우, 개인의 생명과 직결되는 안전이 보장되지 못하는 문제도 있다. 또한, 데이터 유출로 인하여 개인 정보 보호가 침해될 여지가 있어, 문제된다.
본 발명은 전술한 문제를 해결하기 위하여, 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적은 데이터 위조, 변조 및 삭제 방지, 데이터의 무결성 보장, 데이터의 유출 및 반출을 차단을 위하여, 암호화를 이용하여 개별 전자 장치의 제어 데이터 보안을 제공하기 위한 것이다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 목적을 달성하기 위한 본 발명의 일면에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템은 하나 이상의 자동차 전장 부품과, 자동차 표준 소프트웨어 플랫폼부와, 연산부와, 데이터 베이스와, 서비스 제공부를 포함하되, 상기 자동차 전장 부품은, 생성한 데이터와 메타데이터를 상기 연산부에 전송하는 것이고, 상기 연산부는, 전송받은 데이터로부터 해쉬값을 생성하고, 상기 해쉬값과 상기 메타데이터 를 포함하는 헤더와 상기 데이터를 암호화하여 저장하되, 제1 자동차 전장 부품으로부터 전달받은 제1 해쉬값을 제2 자동차 전장 부품의 제2 헤더에 제2 자동차 전장 부품의 제2 해쉬값을 이용하여 암호화하여 저장하는 것이고, 상기 서비스 제공부는, 상기 제2 자동차 전장 부품의 제1 헤더에 저장된 해쉬값을 복호화한 암호화키를 이용하여, 상기 제1 자동차 전장 부품의 데이터를 복호화하는 것을 특징으로 한다.
본 발명에 따르면, 차량용 전자 장치의 통합 제어 데이터를 수집하고, 수집된 데이터를 보안 암호화하여, 차량 사고 원인 분석 과정에서 수집된 데이터의 무결성을 확보하여 책임 소재를 명확히 하고, 수집된 데이터가 권한 없는 자 또는 권한을 남용하는 자에 의하여 유출, 반출, 복제 및 무단 배포됨에 따라 2차적인 범죄를 차단하는 효과가 있다.
또한, 개방형 자동차 표준 소프트웨어 플랫폼 환경에 탑재되는 모든 자동차 전장장치 제품의 데이터 수집과 데이터 보안 암호화의 표준화, 호환성을 목적으로 하여 향후 자율 주행 자동차 첨단 운전자 지원 시스템(ADAS: Avanced Driver Assistance System) 등의 운전자 보호를 위한 장치들의 데이터 보안 및 안정성 확보에도 기여할 것으로 기대된다.
도 1은 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법이 구현되는 컴퓨터 시스템의 구성을 설명하기 위한 예시도.
도 2는 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도.
도 3은 본 발명에 따른 데이터 베이스를 이용하여 서비스를 제공하는 서비스 제공부를 포함하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도.
도 4는 본 발명의 부분 실시예에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법을 설명하기 위한 예시도.
도 5는 본 발명의 일실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도.
도 6는 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도.
도 7은 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 부분 실시예를 설명하기 위한 예시도.
도 8는 본 발명의 다른 실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도.
도 9는 도 8의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도.
도 2는 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도.
도 3은 본 발명에 따른 데이터 베이스를 이용하여 서비스를 제공하는 서비스 제공부를 포함하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도.
도 4는 본 발명의 부분 실시예에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법을 설명하기 위한 예시도.
도 5는 본 발명의 일실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도.
도 6는 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도.
도 7은 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 부분 실시예를 설명하기 위한 예시도.
도 8는 본 발명의 다른 실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도.
도 9는 도 8의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법이 구현되는 컴퓨터 시스템의 구성을 설명하기 위한 예시도이다.
한편, 본 발명의 실시예에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법은 컴퓨터 시스템에서 구현되거나, 또는 기록매체에 기록될 수 있다. 도 1에 도시된 바와 같이, 컴퓨터 시스템은 적어도 하나 이상의 프로세서(110)와, 메모리(120)와, 사용자 입력 장치(150)와, 데이터 통신 버스(130)와, 사용자 출력 장치(160)와, 저장소(140)를 포함할 수 있다. 전술한 각각의 구성 요소는 데이터 통신 버스(130)를 통해 데이터 통신을 한다.
컴퓨터 시스템은 네트워크(180)에 연결된 네트워크 인터페이스(170)를 더 포함할 수 있다. 상기 프로세서(110)는 중앙처리 장치(central processing unit (CPU))이거나, 혹은 메모리(120) 및/또는 저장소(140)에 저장된 명령어를 처리하는 반도체 장치일 수 있다.
상기 메모리(120) 및 상기 저장소(140)는 다양한 형태의 휘발성 혹은 비휘발성 저장매체를 포함할 수 있다. 예컨대, 상기 메모리(120)는 ROM(123) 및 RAM(126)을 포함할 수 있다.
따라서, 본 발명의 실시예에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법은 컴퓨터에서 실행 가능한 방법으로 구현될 수 있다. 본 발명의 실시예에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법이 컴퓨터 장치에서 수행될 때, 컴퓨터로 판독 가능한 명령어들이 본 발명에 따른 운영 방법을 수행할 수 있다.
한편, 상술한 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
도 2는 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도이다.
본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치는 하나 이상의 자동차 전장 부품; 자동차 표준 소프트웨어 플랫폼부; 및 자동차 제어 데이터 저장부;를 포함한다.
상기 자동차 전장 부품은 사고 데이터 기록부(EDR, Event Data Recoder)(210), 전자 제어부(ECU, Electronic Control Unit)(220), 마이크로 프로세서 제어부(MCU, Micro Control Unit)(230), 차량 자가 진단부(OBD, On Board Diagnosis)(240), 트랜스미션 제어부(TCU, Transmission Control Unit)(250), 중앙 정보 디스플레이부(CID, Center Information Display Unit)(260) 및 운전자 계기판 디스플레이부(HUD, Haed Up Display Unit)(270) 중 어느 하나 일 수 있다. 이는 예시적인 것이며, 발명의 범위를 제한하는 것은 아니다.
EDR(Event Data Recoder)(210)은 자동차의 주행 정보, 가속 정보, 브레이크 작동 정보 등을 기록하는 장치를 의미한다. 최근 모든 자동차에 의무적으로 탑재하도록 법안이 마련되고 있다. 통상 자동차에 부착되는 블랙박스는 영상을 촬영하는 대쉬 캠(Dash Camera)의 의미로 사용되나, 블랙박스의 본래 의미는 EDR를 의미하는 것이다. 물론 상술한 대쉬 캠도 EDR의 일종이 될 수 있다.
ECU(Electronic Control Unit)(220)는 자동차에 부착되는 부품을 제어하는 것으로, 자동차의 엔진, 자동 변속기, ABS 등의 상태를 컴퓨터로 제어하는 전자 제어 장치를 말한다. ECU의 최초 개발 목적은 점화 시기, 연료 분사, 공회전, 한계값 설정 등 엔진의 핵심 기능을 정밀하게 제어하는 것이었으나, 현재는 컴퓨터의 성능의 발전과 함께 자동 변속기 제어를 비롯하여 구동계통, 제동 계통, 조향 계통 등 차량의 거의 모든 부분을 제어하는 역할을 하고 있다.
MCU(Micro Control Unit)(230)는 자동차의 부품을 제어하기 위한 전용 프로세서로 컴퓨터의 중앙 연산 처리 장치(CPU, Central Processing Unit)에 대응된다.
OBD(On Board Diagnosis)(240)는 차량에 부착하여 자동차의 시동을 걸 때, 자동으로 운행기록이 저장되는 운행기록 자기진단장치를 말한다.
TCU(Transmission Control Unit)은 엔진 기어비를 제어하는 트랜스미션의 전자 제어를 담당하는 트랜스미션 제어부를 말한다.
CID(Center Information Display)은 통상 운전석과 조수석 사이에 위치하는 중아 모니터로, 내비게이션, 오디오 등의 기능을 터치 센서가 적용된 패널로 구현한 것이다.
HUD(Head Up Display)는 운행 정보가 자동차 운전석의 앞 유리에 나타나는 전방 표시 장치를 말한다.
상술한 다양한 자동차 전장 부품은 개발 시점 및 개발 주체가 상이하고, 각각 고유의 목적에 의하여 개발되어, 사용되는 기술이 서로 상이하여 상호간 통합이 용이하지 않다.
최근 자동차 내의 네트워크와 관련하여, AUTOSAR(AUTomatic Open System ARchitecture)는 서로 상이한 플랫폼을 가지는 다양한 장치 사이의 네트워크를 지원한다. ATUOSAR는 서브 카테고리로서 LIN, CAN, FlexRay, MOST 등으로 분류된다. MOST는 차량의 대용량 멀티미디어 통신을 지원하기 위하여 광케이블을 통하여 고품질 오디오, 비디오 정보를 제공하는 통신 규격으로 최대 24.5 Mbps 전송 속도로 전달할 수 있고, CAN 통신은 자동차 산업 분야에 네트워크를 적용하기 위하여 보쉬(BOSCH)에서 개발되어, 1Mbps의 최대 신호 속도로 규정된 다중 메시지 방식의 시리얼 네트워크 통신 방식으로 높은 신뢰성을 보장하는 특징이 있다. FlexRay는 대역폭 및 성능을 기준으로 MOST와 CAN 사이에 위치하는 통신 프로토콜로 CAN 통신과 개발 주체 및 연혁이 상이하다. LIN 통신의 경우 CAN 통신이 개발되기 이전부터 존재하던 차량용 네트워크로 UART(Universal Asynchoronous Receiver Transmitter) 인터페이스라고도 불린다.
예컨대, MCU는 LIN 통신 및 CAN 통신을 지원하고 이용하고, ECU는 CAN 통신을 지원하고, EDR와 CID는 MOST를 이용할 수 있다. 상기 자동차 표준 소프트웨어 플랫폼부는 차량용 네트워크 프로토콜로서 LIN, CAN, FlexRay, MOST 모두 지원하므로, 각종 자동차 전장 부품과 통신하여 생성된 데이터를 전달받을 수 있다. 전달받은 데이터를 자동차 제어 데이터 저장부에 저장한다. 저장된 데이터는 본발명에 따른 암호화 방법에 따라 암호화되어 있어, 사용자에 의하여 위조, 변조, 삭제되는 것을 방지할 수 있다.
통상 자동차 사고가 난 경우, 블랙박스 영상은 사고의 책임 소재를 밝히는데 중요한 증거가 될 수 있다. 사용자에게 유리한 증거라면, 위변조의 위험이 없을 수 있으나, 저장된 데이터가 사용자에게 불리한 증거라면, 사용자가 증거를 훼손하는 문제가 있다. 본 발명에 따르면, 사고와 관련된 정보가 사용자에 의하여 위변조 및 삭제되는 것을 방지할 수 있다.
도 3은 본 발명에 따른 데이터 베이스를 이용하여 서비스를 제공하는 서비스 제공부를 포함하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치의 구성도이다.
본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 장치는 하나 이상의 자동차 전장 부품; 상기 자동차 전장 부품으로 데이터를 전달받아 연산부에 전송하는 자동차 표준 소프트웨어 플랫폼부; 상기 자동차 표준 소프트웨어 플랫폼으로부터 전송받은 데이터를 암호화하여 데이터 베이스에 저장하는 연산부 및 상기 저장된 암호화된 데이터를 복호화하여 서비스를 제공하는 서비스 제공부;를 포함한다.
상기 자동차 전장 부품(310)은 도 2의 자동차 전장 부품과 동일한 것을 의미하고, EDR(210), ECU(220), MCU(230), OBD(240), TCU(250), CID(260), HUD(270) 중 어느 하나일 수 있으나, 이는 발명의 범위를 제한하는 것은 아니다.
자동차 표준 소프트웨어 플랫폼부(280)은 AUTOSAR, WiFi, Bluetooth, ZigBee, WAVE 등은 다양한 통신 장치를 지원하고, 자동차 전장 부품으로부터 평문(plaintext, 암호화되지 아니한 데이터)으로 된 데이터를 전달받아 연산부에 전달하는 역할을 한다. 자동차에서 사용할 수 있는 통신 장치의 그 종류가 다양하고, 각각 사용하는 통신 프로토콜이 상이하므로 자동차 표준 소프트웨어 플랫폼부(280)는 다양한 통신 프로토콜을 사용하는 자동차 전장 부품으로부터 전달받은 콘텐츠를 연산부(320)에서 처리하기 쉬운 형태로 가공하여, 연산부(320)에 전달한다. 이때, 자동차 표준 소프트웨어 플랫폼부(280)가 전달하는 콘텐츠 구조는 헤더와 바디로 구성되며, 바디에는 각 자동차 전장 부품이 실제로 생성하는 데이터가 저장되며, 헤더에는 메타데이터가 저장된다. 메타데이터는 데이터의 생성일시, 데이터 특성, 데이터의 크기 등과 같은 데이터와 관련된 정보를 데이터에 따라 메타데이터의 크기도 상이할 수 있으므로, 메타데이터의 길이도 가변적일 수 있다.
서비스 제공부(290)는 데이터 베이스에 저장된 암호화된 데이터와 암호화된 데이터에 대응하는 해쉬값을 찾아 복호화한다. 이때, 해쉬값은 평문 데이터(암호화되지 아니한 데이터)를 생성한 장치의 헤더로부터 얻을 수도 있으나, 해당 해쉬값을 전달한 다른 장치의 헤더로부터 얻을 수도 있다.
데이터로부터 해쉬값을 산출하는 경우, 데이터가 생성될 때마다 지속적으로 생성되는 데이터에 대하여 해쉬값을 산출하게 된다. 생성되는 데이터마다 다른 해쉬값이 산출되는 것이며, 데이터와 해쉬값의 맵핑 테이블을 가져야 한다.
상기 해쉬값은 정하여진 계산식에 의하여 산출되는 것으로 통상 역변환이 불가능하다. 주어진 데이터에 대하여 해쉬값을 빠르게 산출할 수 있지만, 해쉬값으로부터 주어진 데이터를 산출하는 것은 용이하지 않다.
또한, 상기 해쉬값은 암호화하여 저장될 수 있다.
예컨대, 자동차 전장 부품으로 제1 부품, 제2 부품 및 제3 부품을 포함하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템에 있어서, 제1 부품의 해쉬값은 자체 암호화 방법에 의하여 저장되어, 제1 부품의 헤더에 저장되나, 서비스 제공부는 자체 암호화 방법을 알지 못하여 제1 부품의 해쉬값을 복호화할 수 없을 수 있다. 다만, 제2 부품의 헤더에 저장되는 제1 부품의 해쉬값은 제2 부품의 해쉬값에 의하여 암호화된다. 제2 부품의 헤더에 저장되는 제2 부품의 해쉬값은 자체 암호화 방법에 의하여 암호화되어 저장되고, 제2 부품의 해쉬값은 제3 부품에 전달되어 제3 부품의 해쉬값에 의하여 암호화된다. 제3 부품은 마지막 부품이므로, 해쉬값이 평문으로 저장된다.
만약 제1 부품의 암호화된 데이터를 복호화하기 위하여는 제1 부품의 해쉬값을 알아야 하는데, 제1 부품의 해쉬값은 암호화되어 저장되어 있으므로, 쉽게 알 수 없게 된다. 상기 예시의 경우, (1) 평문으로 저장된 제3 부품의 해쉬값을 얻은 후, (2) 제3 부품의 해쉬값을 이용하여 제3 부품의 헤더에 저장된 제2 부품의 해쉬값을 복호화하고, (3) 복호화되어 평문으로 된 제2 부품의 해쉬값을 이용하여 제2 부품의 헤더에 저장된 제1 부품의 해쉬값을 복호화하면 평문으로 된 제1 부품의 해쉬값을 산출하고, (4) 산출된 제1 부품의 해쉬값을 이용하여, 제1 부품의 암호화된 데이터를 복호화한다.
상기 해쉬값의 암호화 및 복호화는 해쉬값의 길이가 짧기 때문에 빠른 시간에 산출할 수 있으나, 제1 부품-제2 부품- 제3 부품의 연결관계를 미리 알고 있어야 한다. 만약, 이러한 연결관계를 알지 못하는 자에게 제3 부품의 해쉬값이 노출된다 하더라도, 제3 부품의 데이터만 복호화할 수 있을 뿐 제1 부품 및 제2 부품의 데이터는 복호화할 수 없게 된다.
상술한 암호화 방법은 순차적인 방법을 제시하였으나, 각 부품을 복수 횟수 사용하여 중복 적용하는 것도 가능하다. 예컨대, 상기 예시에서 제1 부품-제3부품-제2 부품-제3 부품-제2 부품-제3 부품-제1 부품 순서로 암호화 순서를 정할 수 있다. 중복을 허용할 경우, 적용되는 순서의 가짓수는 무한하므로, 본 발명의 암호화 방법을 알고 있더라도 실제 적용된 정확한 방법을 알지 못하는 한, 복호화하기 어렵게 된다.
상기 자체 암호화 방법은, 알려진 대칭 알고리즘 또는 비대칭 알고리즘을 사용할 수 있다. 자체 암호화 방법이 노출되지 않음 전제로 보안이 보장된다. 또한, 상기 자체 암호화 방법은 별도의 암호화 장치에 의하여 마스터키에 의해 복호화될 수 있다. 상술한 자체 암호화 방법은 암호화 시스템이 잘 작동됨을 전제로 저장하지 아니하여도 무관하다. 본 발명에 따를 경우, 암호화 사슬의 길이에 따라 복호화의 시간이 다소 오래 소요될 수 있으므로, 상기 자체 암호화 방법은 마스터키를 이용하여 빠르게 복호화할 수 있는 기능이다.
연산부(320)는 자동차 표준 소프트웨어 플랫폼부(280)로부터 전달받은 개별 콘텐츠를 데이터베이스(330)에 임시로 저장한다. 임시로 저장하는 개별 콘텐츠는 평문으로 저장하거나, 자체 암호화 방법에 의하여 저장한다. 본 발명은 실시간으로 생성되는 다종의 데이터에 대하여 실시간으로 암호화 및 복호화 서비스를 제공하여 데이터 보안을 강화하는 것이므로, 임시로 저장된 개별 콘텐츠는 통상 직접 서비스하지 아니하고, 연산부의 메모리 상에 모두 적재하여 서비스한다. 타 프로그램이 연산부의 메모리를 직접 접근할 수 없으므로, 연산부의 메모리 상에는 평문으로 된 데이터를 저장하여도 무방하다. 갑작스런 단전 등에 의하여 연산부의 실행이 중단되는 경우, 개별 콘텐츠의 데이터가 유실되는 것을 방지하고 데이터 무결성을 유지하기 위하여 임시로 저장한다.
통상 소정의 수의 콘텐츠가 임시로 데이터 베이스에 저장된 경우, 연산부는 본 발명에 따른 데이터 보안 방법으로서 사슬형(순차적 방식), 중복형(상호 크로스 방식)에 따라 복수의 콘텐츠의 정보를 이용하여 데이터를 암호화하여 데이터 베이스(330)에 저장한다. 암호화된 데이터가 저장될 때, 상기 임시로 저장된 개별 콘텐츠는 삭제될 수 있다.
데이터 베이스(330)에는 각 자동차 전장 부품의 데이터가 암호화되어 저장되어 있으므로, 서비스 제공부(340)는 암호화된 데이터를 복호화하여 서비스를 제공한다.
서비스 제공부(340)가 사용자 단말에 서비스를 제공할 때, 양단 사이에 비대칭 암호화 알고리즘에 따른 방법을 사용할 수 있다. 예컨대, 디피-헬만 키교환 방식에 따라, 공개키를 서로 교환하고, 상대방의 공개키와 자신의 개인키를 이용하여 공유된 비밀키를 얻을 수 있고, 공유된 비밀키를 이용하여 데이터를 암호화하고, 복호화할 수 있다.
도 4는 본 발명의 부분 실시예에 따른 사슬형 데이터 보안 방법을 설명하기 위한 예시도이다.
도 3에는 EDR 헤더, ECU 헤더, MCU 헤더, OBD 헤더, TCU 헤더, CID 헤더의 순서로 연결되어 있다. 각각의 헤더에는 메타데이터와 해쉬값이 저장된다. 또한, 각각의 헤더에 다른 자동차 전장 부품의 헤더가 저장될 수 있다.
예컨대, 도 3에 따르면, EDR 헤더에는 EDR의 메타데이터, EDR의 해쉬값이 저장되고; ECU 헤더에는 EDR의 메타데이터, EDR의 해쉬값, ECU의 메타데이터, ECU의 해쉬값이 저장되고; MCU 헤더에는 ECU의 메타데이터, ECU의 해쉬값, MCU의 메타데이터, MCU의 해쉬값이 저장되고; OBD 헤더에는 MCU의 메타데이터, MCU의 해쉬값, OBD의 메타데이터, OBD의 해쉬값이 저장되고; TCU 헤더에는 OBD의 메타데이터, OBD의 해쉬값, TCU의 메타데이터, TCU의 해쉬값이 저장되고; CID 헤더에는 TCU의 메타데이터, TCU의 해쉬값, CID의 메타데이터, CID의 해쉬값이 저장된다.
다시 설명하면, ECU 헤더에는 EDR의 헤더가 저장되고; MCU 헤더에는 ECU의 헤더가 저장되고; OBD 헤더에는 MCU의 헤더가 저장되고; TCU 헤더에는 OBD의 헤더가 저장되고; CID 헤더에는 TCU의 헤더가 저장된다.
이러한 형태로 저장된 구조를 순차적 방식 구조 또는 사슬형 구조라 한다. 상기 해쉬값은 데이터 베이스에 저장되는 데이터를 암호화하고 복호화할 때 사용되는 암호화키값이 된다.
상기 해쉬값은 메모리상에만 존재하며, 파일에 저장할 때에는, 프로그램에 내장된 자체 암호화 방법을 사용하거나, 다른 암호화 방식에 의하여 암호화되어 저장되므로, 파일에 저장된 해쉬값이 유출된다 하더라도 보안이 유지되는 효과가 있다.
암호화된 데이터는 일반 데이터와 구분하여 물리적 보안 영역 이외에 논리적 보안 영역에 저장하고, 데이터 정보의 위조, 변조, 삭제를 방지하여 데이터의 무결성, 기밀성을 전용 뷰어 프로그램에 의하여 검증할 수 있다. 일반 사용자에게는 전용 뷰어 프로그램이 제공되지 아니하므로, 사용자에 의한 데이터의 위조, 변조, 삭제를 방지할 수 있다.
또한, 데이터 정보를 열람하기 위한 사용자의 인증을 위하여 사용자 인증 프로그램을 포함할 수 있다.
예컨대, EDR이 생성하는 데이터에 대한 메타 데이터와 데이터에 대한 데이터의 해쉬값을 EDR 헤더에 저장한다. ECU, MCU, OBD, TCU, CID, HUD의 경우도 마찬가지이다.
자동차 표준 소프트웨어 플랫폼부는 EDR로부터 전달받은 정보로부터 EDR 데이터 및 EDR 헤더를 생성하여 연산부(320)에 전송하고, 연산부(320)는 EDR 데이터를 EDR 헤더를 데이터 베이스에 임시로 저장한다. 마찬가지로 ECU, MCU, OBD, TCU, CID, HUD에 대하여 같은 작업이 반복된다. 상기 해쉬값은 메타데이터를 이용하여 생성하거나, 데이터를 이용하여 생성할 수 있다. 상기 해쉬값은 SHA1, SHA2, SHA3, MD5sum, hash table 등의 해쉬 알고리즘을 이용하여 생성할 수 있고, 사용자 정의 해쉬 함수도 사용할 수 있다. 또한, 상기 해쉬값은 각 자동차 전장 부품의 환경변수를 이용하여 산출할 수 있다.
도 5는 본 발명의 일실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도를 나타낸다.
구체적으로 사슬형 암호화 방법에 사용되는 데이터 베이스에 저장되는 데이터의 단위 구조체를 나타내고 있다. 다만, 본 데이터의 단위 구조체는 중복형(상호 크로스형) 암호화 방법에도 사용할 수 있다.
도 5에 따르면 데이터의 단위 구조체는 헤더와 데이터를 포함하며, 헤더는 해쉬값과 메타데이터로 구성되고, 단위 구조체는 하나 이상의 헤더를 포함할 수 있다.
헤더가 2 이상인 것은 자신의 해쉬값뿐만 아니라 다른 자동차 전장 부품의 헤더도 저장할 수 있기 때문이다. 다만, 사슬형 구조의 암호화 방법을 사용한다면, 헤더의 수는 2개이면 충분하다. 다만, 중복형(상호 크로스형) 보안 방법을 사용하는 경우, 더 많은 수의 헤더가 필요할 수 있다.
통상 해쉬값은 평문으로 저장될 수도 있으나, 자체 암호화 방법을 사용하여 암호화된 상태로 저장된다. 반면, 데이터는 평문인 해쉬값을 이용하여 암화화되어 저장될 수 있다. 메타데이터는 평문으로 저장할 수 있고, 해쉬값을 이용하여 암호화하거나, 자체 암호화 방법을 사용하여 암호화되어 저장될 수 있다.
도 6는 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도.
도 6은 사슬형(순차적 방식)의 암호화 방법을 사용하는 예시를 보여준다.
도 4에서 설명한 바와 같이, EDR 헤더에는 EDR의 메타데이터, EDR의 해쉬값이 저장되고; ECU 헤더에는 EDR의 메타데이터, EDR의 해쉬값, ECU의 메타데이터, ECU의 해쉬값이 저장되고; MCU 헤더에는 ECU의 메타데이터, ECU의 해쉬값, MCU의 메타데이터, MCU의 해쉬값이 저장되고; OBD 헤더에는 MCU의 메타데이터, MCU의 해쉬값, OBD의 메타데이터, OBD의 해쉬값이 저장되고; TCU 헤더에는 OBD의 메타데이터, OBD의 해쉬값, TCU의 메타데이터, TCU의 해쉬값이 저장되고; CID 헤더에는 TCU의 메타데이터, TCU의 해쉬값, CID의 메타데이터, CID의 해쉬값이 저장된다.
도 5의 데이터 단위 구조체를 이용하여 설명하면, EDR의 데이터는 EDR의 해쉬값을 암호화 키값으로 하여 암호화 및 복호화가 이루어진다. 그러나, 암호화키인 해쉬값은 EDR 헤더에 암호화되어 저장되고, 자체 암호화 방법은 외부로 복호화 서비스를 제공하지 아니하므로(전용 뷰어 프로그램 및 사용자 인증 프로그램은 예외이다. 즉, 전용 뷰어 프로그램 및 사용자 인증 프로그램을 이용하여 자체 암호화 방법에 의한 복호화는 가능), EDR 헤더에 저장된 EDR 해쉬값은 복호화할 수가 없다. 다만, EDR 해쉬값은 ECU 헤더에도 저장되며, ECU의 해쉬값을 이용하여 암호화되어 저장된다. EDR 해쉬값을 얻기 위하여는 EDR 헤더에 저장된 해쉬값이 아닌 ECU 헤더에 저장된 암호화된 해쉬값을 복호화하여 얻을 수 있다. 그러나, ECU 헤더에 저장된 암호화된 EDR 해쉬값은 ECU 해쉬값을 암호화키로 하여 암호화되어 있는데, ECU 헤더에 저장된 ECU 해쉬값은 자체 암호화 방법에 의하여 암호화되어 있으므로, 복호화할 수 없다. 즉, ECU 해쉬값은 MCU 헤더에 저장된 ECU 해쉬값을 MCU 해쉬값으로 복호화하여 얻을 수 있게 된다. EDR 데이터를 복호화하기 위하여 CID 헤더에 저장된 CID 해쉬값을 이용하여 TCU 해쉬값을 얻고, TCU 해쉬값으로 OBD 해쉬값을 얻고, OBD 해쉬값으로 MCU 해쉬값을 얻고, MCU 해쉬값으로 ECU 해쉬값을 얻고, ECU 해쉬값으로 EDR 해쉬값을 얻어서, EDR 해쉬값을 이용하여 EDR 데이터를 복호화한다.
사슬형 암호화 방법을 이용할 경우, 하나의 데이터를 복호화하기 위하여, 복수회 복호화하므로, 속도상 단점이 있으나, 각 자동차 전장 부품의 데이터에 비하여 헤더의 사이즈가 작고, 헤더와 바디를 분리하여 저장하여 필요한 헤더를 한번에 읽어와 처리할 경우, 빠른 속도로 복호화할 수 있다. 실제로 데이터를 복호화하는 오버로드 대비 해쉬값에 대한 복호화로 인한 시간지연은 작은 수준이다.
도 7은 도 5의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 부분 실시예를 설명하기 위한 예시도를 나타낸다..
도 7은 중복형(상호 크로스 방식)의 암호화 방법을 설명하기 예시도이다. 도 6의 사슬형 방법과 달리, 상호 크로스 방식의 경우, 하나의 헤더에 3개 이상의 자동차 전장 부품에 대한 헤더 정보를 포함할 수 있다.
도 7을 따르면, EDR 헤더에는 EDR의 메타데이터, EDR의 해쉬값이 저장되고; ECU 헤더에는 EDR의 메타데이터, EDR의 해쉬값, ECU의 메타데이터, ECU의 해쉬값이 저장되고; MCU 헤더에는 EDR의 메타데이터, EDR의 해쉬값, ECU의 메타데이터, ECU의 해쉬값, MCU의 메타데이터, MCU의 해쉬값이 저장되고; OBD 헤더에는 MCU의 메타데이터, MCU의 해쉬값, OBD의 메타데이터, OBD의 해쉬값이 저장되고; TCU 헤더에는 MCU의 메타데이터, MCU의 해쉬값, OBD의 메타데이터, OBD의 해쉬값, TCU의 메타데이터, TCU의 해쉬값이 저장되고; CID 헤더에는 TCU의 메타데이터, TCU의 해쉬값, CID의 메타데이터, CID의 해쉬값이 저장된다.
도 6과 비교할 때, MCU 헤더에 EDR의 메타데이터, EDR의 해쉬값이 포함되고, TCU 헤더에 MCU의 메타데이터, MCU의 해쉬값이 포함되는 것에 차이가 있다.
상호 크로스 방식의 경우, 여러 개의 헤더가 중복되어 저장되므로, 경로를 단축하여, 복호화할 수 있는 단점이 있다. 도 6의 방법은 EDR 데이터를 복호화하기 위하여 CID, TCU, OBD, MCU, ECU, EDR 순서로 해쉬값을 복호화하여 최종적으로 EDR 데이터를 복호화하는 것이지만, 도 7에서는 EDR 데이터를 복호화하기 위하여 CID, TCU, MCU, EDR 순서로 해쉬값을 복호화하여 EDR 데이터를 복호화할 수 있다.
도 8는 본 발명의 다른 실시예에 따른 암호화 방법에 사용되는 데이터 구조를 설명하기 위한 예시도이다.
발명을 실시하기 위한 일실시예에 있어서, 다른 자동차 전장 부품의 메타데이터를 저장하지 아니하여도 문제되지 아니할 수 있고, 이를 고려하여 데이터의 단위 구조체를 설계한 예시가 도 8에 나타나 있다.
또한, 상술한 사슬형 아닌 중복형의 암호화 방법에 있어서, 자동차 전장 부품의 순서를 정하기 위하여, 동일한 자동차 전장 부품을 1회 이상 중복하여 사용하는 것을 고려한 암호화 방법을 설계할 수 있다.
도 8에 제시된 것과 같이, 헤더의 메타데이터는 해당 자동차 전장 부품의 메타데이터만 저장할 수 있다. 예컨대, EDR 헤더의 메타데이터는 EDR 데이터의 메타데이터만 저장한다. 반면, 해쉬값은 1회 사용에 2개씩 필요한 것을 가정하여, 2개가 한쌍을 이루어 총 4쌍의 해쉬값을 표시하였다. 여기서 위에 있는 해쉬값을 Hash1로 정의하고, 아래에 있는 해쉬값을 Hash2로 정의하며, 첫번째 열의 해쉬값을 각각 Hash1[1], Hash2[1] 이라 하고, 두번째 열의 해쉬값을 각각 Hash1[2], Hash2[2]라 한다. 마찬가지로 3번째 열의 해쉬값은 Hash1[3], Hash2[3]이라 하고, 4번째 열의 해쉬값은 Hash1[4], Hash2[4]라 한다. 4쌍의 해쉬값만 표시하였으나, 이는 예시적인 것이며, 필요에 따라 조정할 수 있는 것이다.
도 9에는 도 8의 단위 구조체를 이용하여 설계된 암호화 방법을 설명할 것이다.
도 9는 도 8의 구조를 이용하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 방법의 일실시예를 설명하기 위한 예시도이다.
예컨대, 자동차 전장 부품 A, B, C 에서 각각 데이터가 발생하였다고 가정하자. 도 9는 A, B, C에서 각각 발생한 데이터와 메타데이터를 암호화하여 저장하는 방법을 설명하기 위한 예시도이다.
먼저, 암호화할 순서를 정한다. 도 9에서는 A-B-C-B-C-B-A-C-B-C 순서로 암호화할 것을 정한 것이며, 총 횟수 및 순서는 랜덤 제네레이터를 이용하여 사전에 정하여진 범위내에서 무작위적으로 결정된다. 도 9에서는 암호화 해쉬값을 원문자로 표시하였고, 암호화되는 순서를 화살표에 의하여 표시하였다.
자동차 전장 부품 A는 우선, A의 데이터 및 메타데이터를 A의 해쉬값을 이용하여 암호화하여 저장한다. 또한, 도 9의 1번째 단위 구조체(A)의 ①는 A의 해쉬값이 자체 암호화 방법에 의하여 암호화되어 저장된 값을 의미한다.
2번째 단위 구조체(B)에는 자동차 전장 부품 B가 B의 데이터 및 메타데이터를 B의 해쉬값을 이용하여 암호화하여 저장한다. 또한, B의 해쉬값은 자체 암호화 방법에 암호화되어 저장되는데, 2번째 단위 구조체(B)의 ②를 의미한다. 또한, A의 ①을 전달받아 B의 해쉬값을 이용하여 암호화하여 저장하는데, ②의 하단에 있는 ①이 B의 해쉬값으로 암호화된 ①을 의미하는 것이다. 이때 A의 ①과 B의 ①은 암호화 방식이 다를 수 있고, 암호화키도 다를 것이므로, 전혀 다른 값이 된다. 다만, 암호화되기 전의 값이 일치한다. 즉, 각각 암호화 방법에 대응하는 방법으로 복호화하면 동일한 값이 될 것이나, 자체 암호화 방법은 사용자에게 제공하지 아니하므로, 사용자는 B에 저장된 ①을 이용하여 A의 데이터를 복호화할 수 있을 뿐이다.
마찬가지로, B의 ②는 C에게 전달되어 C의 해쉬값을 암호화키로 하여 암호화되어 저장된다. 또한 C의 해쉬값은 자체 암호화 방법에 의하여 저장된다.
4번째 단위 구조체(B)는 B의 단위 구조체를 한번 더 사용하는 경우이다. 그러므로, 2번째에서 저장된 결과는 그대로 저장되고, C의 ③이 B의 Hash2[2]에 저장된다. 이때 B의 Hash2[2]에 저장되는 ③은 새로 생성한 B의 해쉬값 ④에 의하여 저장된다. 통상 해쉬값은 자동차 전장 부품이 생성한 데이터를 이용하여 생성하는데, Hash1[2], Hash1[3] 등은 랜덤 제네레이터에 의하여 생성된 값을 이용하여 해쉬값을 생성한다. 이는 해쉬값을 암호화하는 것에만 사용하는 키값이 되므로, 복잡하게 생성하지 아니하여도 좋고, 충분한 크기로 생성하면 족하다. 랜덤 제네레이터가 생성한 해쉬값(④)을 이용하여 ③을 암호화하여 저장하고, ④는 자체 암호화 방법에 의하여 암호화한다.
5번째(C), 6번째(B), 7번째(A), 8번째(C), 9번째(B)까지 같은 방법에 의하여, 랜덤 제네레이터에 의하여 해쉬값을 생성하고, 생성한 해쉬값을 이용하여 전달받은 해쉬값을 암호화하여 저장(Hash2)하며, 생성한 해쉬값은 자체 암호화 방법에 의하여 저장(Hash1)한다.
다만, 10번째(C)의 경우는 다소 상이하다. ⑩을 랜덤 제네레이터에 의하여 생성하고, ⑨를 ⑩을 이용하여 암호화하여 저장하는 것까지는 동일하나, ⑩은 저장하는 방식이 상이하다. ⑩은 평문으로 저장될 수도 있으며, 지금까지 사용한 것과 상이한 자체 암호화 방법을 사용한다. ⑩을 지금까지 사용해온 자체 암호화 방법을 사용할 경우, 복잡한 리버스 엔지니어링에 의하여, 자체 암호화 방법이 알려질 수 있기 때문이다. 또한, ①을 암호화키로 하여, ⑩을 암호화하여 A(①의 하단 위치)에 저장할 수 있다.
도 9의 암호화 방법을 사용했을 경우, 해당 파일이 유출되고, 데이터 구조가 파악된다 하더라도, 유출된 구조는 7번째(A), 9번째(B), 10번째(C) 뿐이다.
그러나, 암호화된 순서(A-B-C-B-C-B-A-C-B-C)를 알 수 없을 뿐만 아니라, 유출된 정보는 모두 암호화된 상태이므로, 복호화하는 것은 불가능에 가깝다.
통상 암호화에 사용되는 키값은 128 bits 이상이 안전한 것으로 알려져 있다. 컴퓨팅 파워의 발전에 따라 최근에는 256 bits 이상의 암호화키를 사용하는 경우도 많다. 그러나, 본 발명에서는 연쇄적인 암호화 방법을 사용하므로 각각의 암호화키는 그렇게 길 필요는 없다. 결과적으로 전체 암호화키가 모두 일치해야 원하는 데이터를 복호화할 수 있는 것이므로, 단계별 암호화키를 짧게 유지하더라도 보안성이 높은 효과가 있다.
본 발명에 따르면, 중요한 정보 중의 하나는 암호화된 순서(A-B-C-B-C-B-A-C-B-C)에 관한 것이다. 암호화된 순서 역시 암호화되어 저장되며, 데이터 집합과 암호화된 순서를 서로 매칭하기 위하여는 본 발명에 따른 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템의 데이터 구조 전체를 리버스 엔지니어링 낱낱이 분석되어야만 알 수 있으나, 이는 용이하지 않은 일이다.
상술한 암호화된 데이터는 암호화 방법의 역순에 따라 복호화한다. 복호화된 데이터 및 메타데이터를 서비스로 제공하는 서비스 제공부는 평문으로 제공할 수도 있으나, 제공시에 정보가 유출될 수도 있다. 다만, 본 발명의 경우, 복호화된 데이터가 위조, 변조, 삭제되는 것을 방지하는 것이 중요하고, 최종 서비스 단계에서 유출되는 것은 크게 문제되지는 아니하다.
다만, 보안 강화의 측면에서 서비스 제공부와 서비스를 요청하는 사용자 단말 사이에는 말단간의 암호화 방법으로서 공개키 교환 방법에 의한 공유된 비밀키를 생성하는 디피-헬만 키교환 방법을 사용할 수 있다.
구체적인 공개키 생성키 생성 방법으로서는 타원곡선을 이용한 타원 곡선 암호화 방법, EIGamal 암호화 방법을 이용할 수 있다.
디피-헬만 키교환 방법은 다음과 같다. 디피-헬만 공개키 교환 방법이란 정보를 교환할 양 당사자인 Alice와 Bob이 각자 개인키를 생성하고, 각 개인키로부터 공개키를 생성하여 공개키를 교환한다. 즉, Alice와 Bob은 상대방의 공개키를 보유하게 된다. Alice와 Bob은 교환한 공개키와 자신의 개인키를 이용하여 새로운 키를 생성하는데 이를 공유 비밀키(shared secret key)라고 불린다. Alice와 Bob이 갖게 되는 공유 비밀키는 같은 값을 가지게 되고, 이를 이용해 암호화 및 복호화 작업을 한다.
디피-헬만 공개키 교환 방법을 사용하기 위해서는 개인키로부터 공개키를 생성하기는 쉬우나 공개키로부터 개인키를 계산하는 것은 어려워야 한다. 또한 개인키를 알지 못하는 한 공개키로부터 공유 비밀키를 계산하는 것이 어려워야 하며, Alice와 Bob의 공개키만으로는 공유 비밀키를 생성하기 어려워야 한다.
이러한 조건을 만족한다면, 암호화 및 복호화의 프로토콜 상 개인키 및 공유 비밀키를 교환되지 아니하므로 교환되는 공개키가 유출된다 하더라도 보안은 유지된다.
ECC(타원 곡선 암호화 방법)을 이용한 EIGamal 암호화는 다음과 같다.
유한체(Finite Field, Galois Field) GF(2p)를 기반의 타원곡선은 이동통신기기 기반의 환경에서 VLSI chip 같은 특수 목적 연산장치(Chip)에 구현에 적합하다.
ECC 기반의 ElGamal 공개키 암호화 방법이란 양자(예컨대, Alice와 Bob) 간 암호화 통신방법으로는 Alice와 Bob이 공개키를 서로 교환한 후, Bob이 Alice의 공개키와 자신의 개인키를 이용하여 메시지를 암호화하여 Alice에게 전송하고, Alice는 자신의 개인키와 Bob의 공개키를 이용하여, 암호화된 메시지를 복호화하는 암호화 방법을 말한다. 이때, 개인키(k)로부터 생성되는 공개키는 순환군을 이루므로, 가환군의 위수(order) 미만의 자연수를 무작위로 추출하여 개인키로 사용하고, 소수(prime)인 위수(order)에 의하여 정하여 지는 타원 곡선상의 무한원점 E1(a1,b1)을 이용하여 공개키(K)를 계산하게 된다. 이때, K = k E1(a1,b1) 이고, 는 타원 곡선 포인트 스칼라 곱이다. 즉, 타원 곡선(Elliptic curve)을 이용하여 개인키로부터 공개키를 생성하고(ECC), 순환군을 이용하여 비밀 공유키를 만드는(ElGamal) 방법이다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술 분야에 통상의 지식을 가진 자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니 되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.
100: 컴퓨터 시스템
110: 프로세서
120: 메모리
123: ROM
126: RAM
130: 데이터 통신 버스
140: 저장소
150: 사용자 입력 장치
160: 사용자 출력 장치
170: 네트워크 인터페이스
180: 네트워크
210: 사고 데이터 기록부(Event Data Recoder)
220: 전자 제어부(Electronic Control Unit)
230: 마이크로 제어부(Micro Control Unit)
240: 운행기록 자가 진단부(On Board Diagnosis)
250: 트랜스미션 제어부(Transmission Control Unit)
260: 중앙 정보 디스플레이부(Center Information Display Unit)
270: 운전자 계기판 디스플레이부(Head Up Display Unit)
280: 자동차 표준 소프트웨어 플랫폼부
290: 자동차 제어 데이터 저장부
310: 자동차 전장 부품
320: 연산부
330: 데이터 베이스
340: 서비스 제공부
110: 프로세서
120: 메모리
123: ROM
126: RAM
130: 데이터 통신 버스
140: 저장소
150: 사용자 입력 장치
160: 사용자 출력 장치
170: 네트워크 인터페이스
180: 네트워크
210: 사고 데이터 기록부(Event Data Recoder)
220: 전자 제어부(Electronic Control Unit)
230: 마이크로 제어부(Micro Control Unit)
240: 운행기록 자가 진단부(On Board Diagnosis)
250: 트랜스미션 제어부(Transmission Control Unit)
260: 중앙 정보 디스플레이부(Center Information Display Unit)
270: 운전자 계기판 디스플레이부(Head Up Display Unit)
280: 자동차 표준 소프트웨어 플랫폼부
290: 자동차 제어 데이터 저장부
310: 자동차 전장 부품
320: 연산부
330: 데이터 베이스
340: 서비스 제공부
Claims (9)
- 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템에 있어서,
자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 모듈을 제공하기 위한 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하되,
상기 프로세서는 상기 프로그램을 실행시킴에 따라,
복수의 자동차 전장 부품의 데이터에 대하여, 자동차 전장 부품의 암호화 순서를 정하고, 각 자동차 전장 부품의 데이터에 대한 메타데이터 및 해쉬값을 결정하고, 상기 해쉬값을 암호화키로 이용하여, 상기 데이터 및 메타데이터를 암호화하여 저장하되, 상기 해쉬값은 자체 암호화 방법에 의하여 저장하되,
상기 정해진 자동차 전장 부품의 암호화 순서에 따라 현재 순서에 따른 자동자 전장 부품의 상기 해쉬값은 다음 순서의 자동차 전장 부품의 데이터의 해쉬값을 암호화키로 이용하여 암호화하여 더 저장하고,
상기 정해진 순서의 역순으로 이전 자동차 전장 부품의 해쉬값을 복호화하는 것을 반복하여, 복호화된 해쉬값을 이용하여 특정 자동차 전장 부품의 데이터를 복호화하는 것을 특징으로 하는
자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 삭제
- 제1항에 있어서,
상기 순서를 정하는 것은,
암호화하고자 하는 모든 자동차 전장 부품의 데이터를 포함하도록 순서를 정하되, 특정 자동차 부품의 데이터는 중복하여 존재하는 것
인 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 제1항에 있어서,
상기 해쉬값은,
랜덤 제네레이터에 의하여 생성되는 것을 특징으로 하는
자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 하나 이상의 자동차 전장 부품과, 자동차 표준 소프트웨어 플랫폼부와, 연산부와, 데이터 베이스와, 서비스 제공부를 포함하는 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템에 있어서,
상기 자동차 전장 부품은,
생성한 데이터와 메타데이터를 상기 연산부에 전송하는 것이고,
상기 연산부는,
전송받은 데이터로부터 해쉬값을 생성하고, 상기 해쉬값과 상기 메타데이터 를 포함하는 헤더와 상기 데이터를 암호화하여 저장하되, 제1 자동차 전장 부품으로부터 전달받은 제1 해쉬값을 제2 자동차 전장 부품의 제2 헤더에 제2 자동차 전장 부품의 제2 해쉬값을 이용하여 암호화하여 저장하되, 상기 제1 해쉬값은 상기 제1 자동차 전장 부품의 제1 헤더에 자체 암호화 방법에 의하여 저장하고, 상기 제1 해쉬값을 상기 제2 자동차 전장 부품의 제2 해쉬값을 암호화키로 이용하여 암호화한 제1 해쉬값을 상기 제2 헤더에 저장하며, 상기 제2 해쉬값은 상기 제2 헤더에 자체 암호화 방법에 의하여 저장하고,
상기 서비스 제공부는,
상기 제2 자동차 전장 부품의 제1 헤더에 저장된 해쉬값을 복호화한 암호화키를 이용하여, 상기 제1 자동차 전장 부품의 데이터를 복호화하는 것
인 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 삭제
- 제5항에 있어서,
상기 연산부는,
복수의 자동차 전장 부품의 헤더에 순서를 정하여, 사슬형 연결 구조를 만들고, 사슬형 연결 구조에 대하여 특정 자동차 전장 부품의 해쉬값을, 다음 자동차 전장 부품의 헤더에 저장하는 것을 반복하고,
상기 서비스 제공부는,
마지막 자동차 전장 부품의 헤더에서 처음 자동차 전장 부품의 헤더의 방향으로 암호화된 해쉬값을 차례대로 복호화하여, 복호화된 해쉬값을 이용하여 특정 자동차 전장 부품의 데이터를 복호화하여, 사용자 단말에 복호화된 데이터를 제공하는 것
인 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 제5항에 있어서,
복호화된 데이터를 전달받아 디스플레이하는 사용자 단말을 더 포함하되,
상기 서비스 제공부와 상기 사용자 단말은,
공개키 교환 방법에 따라 비대칭 암호화 방법에 의하여 암호화된 텍스트를 송수신하고, 공개키 교환 방법에 따른 공유된 비밀키를 이용하여 복호화하는 것을 특징으로 하는
자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
- 제8항에 있어서,
상기 공개키 교환 방법은 타원 곡선 암호화 방법을 이용한 디피-헬만 키교환 방법인 것
인 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170002443A KR101953908B1 (ko) | 2017-01-06 | 2017-01-06 | 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170002443A KR101953908B1 (ko) | 2017-01-06 | 2017-01-06 | 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180081332A KR20180081332A (ko) | 2018-07-16 |
KR101953908B1 true KR101953908B1 (ko) | 2019-03-05 |
Family
ID=63105693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170002443A KR101953908B1 (ko) | 2017-01-06 | 2017-01-06 | 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101953908B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102154640B1 (ko) * | 2019-11-28 | 2020-09-10 | 한국과학기술정보연구원 | 데이터 관리 장치, 데이터 관리 방법 및 이를 이용한 프로그램을 저장하는 저장매체 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102104298B1 (ko) * | 2018-09-13 | 2020-04-24 | 주식회사 넥스트칩 | 데이터의 안전을 결정하는 방법 및 그 방법을 수행하는 전자 장치 |
KR102441045B1 (ko) | 2020-12-14 | 2022-09-05 | 현대오토에버 주식회사 | 멀티 코어 구조의 전자 제어 유닛에서 수행되는 방법, 그리고 이를 구현하기 위한 장치 |
KR102656707B1 (ko) * | 2023-11-06 | 2024-04-11 | 우암전자 주식회사 | 하드웨어 자동 감지 및 분석을 통한 하드웨어 모니터링 서비스를 제공하는 서버, 시스템, 방법 및 프로그램 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105379343A (zh) * | 2013-06-26 | 2016-03-02 | 三星电子株式会社 | 用于发送数据的方法和装置 |
-
2017
- 2017-01-06 KR KR1020170002443A patent/KR101953908B1/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102154640B1 (ko) * | 2019-11-28 | 2020-09-10 | 한국과학기술정보연구원 | 데이터 관리 장치, 데이터 관리 방법 및 이를 이용한 프로그램을 저장하는 저장매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20180081332A (ko) | 2018-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709038B (zh) | 文件加密解密方法、分布式存储系统、设备及存储介质 | |
CN111181928B (zh) | 车辆诊断方法、服务器及计算机可读存储介质 | |
CN100468438C (zh) | 实现硬件和软件绑定的加密和解密方法 | |
JP5310761B2 (ja) | 車両ネットワークシステム | |
KR101953908B1 (ko) | 자동차 전자 장치의 임베디드 소프트웨어의 데이터 보안 시스템 및 방법 | |
CN101559745B (zh) | 一种防盗抢的车辆控制系统及其实现方法 | |
CN106685985B (zh) | 一种基于信息安全技术的车辆远程诊断系统及方法 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
CN109218010B (zh) | 数据加密方法和装置、数据解密方法和装置 | |
CN111726274B (zh) | 一种汽车can总线数据通信方法、设备及存储介质 | |
CN105635147A (zh) | 基于车载特种装备系统的数据安全传输方法及系统 | |
CN111279310A (zh) | 一种车载设备升级方法及相关设备 | |
CN103929428B (zh) | 一种实现车载电子信息系统通信安全的方法 | |
CN109314640A (zh) | 车辆信息收集系统、车载计算机、车辆信息收集装置、车辆信息收集方法以及计算机程序 | |
CN113114621B (zh) | 一种用于公交调度系统的通信方法及公交调度系统 | |
CN113872770A (zh) | 一种安全性验证方法、系统、电子设备及存储介质 | |
CN110661621A (zh) | 一种基于hmac、aes、rsa的混合加解密方法 | |
CN110727546A (zh) | 汽车数据备份方法及装置 | |
CN117435226B (zh) | 车载电子控制单元的数据刷写方法、设备及存储介质 | |
US20200036710A1 (en) | Method and system for encryption using a radio frequency fingerprint | |
WO2021022802A1 (zh) | 安全启动方法、控制器和控制系统 | |
CN117149521A (zh) | 网联汽车数据备份方法及系统 | |
CN112910641A (zh) | 用于跨链交易监管的验证方法、装置、中继链节点及介质 | |
CN110035080B (zh) | 针对车载终端的加密解密系统及其方法 | |
CN112152790A (zh) | 一种数据加密方法、解密方法、加密装置和解密装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |