KR20240050595A - 메모리 무결성 검증 시스템 및 그 방법 - Google Patents
메모리 무결성 검증 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20240050595A KR20240050595A KR1020220130170A KR20220130170A KR20240050595A KR 20240050595 A KR20240050595 A KR 20240050595A KR 1020220130170 A KR1020220130170 A KR 1020220130170A KR 20220130170 A KR20220130170 A KR 20220130170A KR 20240050595 A KR20240050595 A KR 20240050595A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- mac
- stored
- value
- integrity verification
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000012795 verification Methods 0.000 claims description 197
- 238000010835 comparative analysis Methods 0.000 claims description 39
- 238000013524 data verification Methods 0.000 claims description 30
- 238000004458 analytical method Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 29
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008901 benefit Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013496 data integrity verification Methods 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 플래쉬 메모리 영역 중 데이터가 저장되는 플래쉬 메모리에 대하여 저장 데이터 무결성을 확보하기 위한 기술에 관한 것이다.
Description
본 발명은 메모리 무결성 검증 시스템 및 그 방법에 관한 것으로써, 보다 상세하게는, 적어도 두 종류의 MAC 알고리즘을 병행 적용하여, 플래쉬 메모리 영역에 대한 무결성 검증을 수행할 수 있는 메모리 무결성 검증 시스템 및 그 방법에 관한 것이다.
데이터의 무결성을 확인하기 위한 메시지 인증 방식에는 MAC(Message Authentication Code) 값이 있다.
이를 활용한 제어기(MCU, ECU 등)의 보안 분야에 있어서, 종래에는, 필요 데이터(주요 데이터)에 대해서만 선별적으로 MAC 값을 생성 및 저장하고, 해당하는 데이터를 사용할 때마다 MAC 값을 생성하여, 저장하고 있는 MAC 값과 비교하는 방식으로 구성되어 있다.
MAC 값을 생성할 때에는 통상적으로, 인증할 데이터와 인증할 데이터에서 MAC 값을 생성하기 위한 공유 비밀 키(대칭키 방식)가 사용되는데, 공유 비밀 키의 관리를 위해서 HSM(Hardware Security Module)과 같이, 보안성이 확보된 모듈이 사용되게 되며, HSM 내의 메모리에 공유 비밀키를 저장하게 된다.
이와 같이, 선별된 필요 데이터 별로 각각의 MAC 값을 생성하고 해당 데이터를 읽어 들일 때마다 각각의 MAC 값의 검증을 수행하게 되는데, 이 경우, 후술할 두 가지 문제점이 발생하게 된다.
첫번째로는, MAC 값을 생성하는 대상으로 선별되지 않은 데이터에 대해서는 무결성 확보가 불가능하다는 점이고, 두번째로는, 선별된 주요 데이터에 대한 해시 함수 공격이 발생할 경우(일 예를 들자면, birthday attack 등), 취약점 보완이 이루어지지 않는다는 점이다.
이와 관련해서, 국내 등록특허공보 제10-1806719호("보안 부팅에 따른 메모리 영역 자동 설정이 가능한 전자 제어유닛 및 이를 이용한 보안 부팅 방법")에서는 자동차 소프트웨어의 무결성을 확보하고 검증하기 위한 보안 부팅 시, 소프트웨어를 리프로그래밍 하더라도 메모리 영역이 자동 설정되어 리프로그래밍 이후에도 오류 없이 무결성을 검증할 수 있는 기술이 개시되고 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위해 안출된 것으로써, 플래쉬 메모리 영역에 저장된 전체 데이터의 무결성 검증 뿐 아니라, 미리 설정된 중요 데이터 그룹에 대한 무결성 검증을 개별 수행함으로써, 보다 소프트웨어 운영에 대한 안정성을 향상시킬 수 있는 메모리 무결성 검증 시스템 및 그 방법을 제공함에 있다.
상기한 바와 같은 문제점을 해결하기 위한 본 발명에 의한 메모리 무결성 검증 시스템은, MAC(Message Authentication Code) 값을 생성하기 위한, 둘 이상의 키(key) 값이 저장되는 보안 메모리부, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블과, 상기 보안 메모리부로부터 기설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 기저장된 둘 이상의 MAC 알고리즘을 통한 MAC 값을 생성하고, 생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 무결성 검증부 및 비교 분석 결과를 이용하여, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우, 데이터의 조작이 발생한 것으로 판단하고, 기설정된 동작을 수행하는 검증 처리부를 포함하는 것이 바람직하다.
더 나아가, 상기 무결성 검증부는 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터와 전체 데이터에 대해 기설정된 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 통한 전체 데이터에 대한 MAC 값을 생성하고, 생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 전체 무결성 검증부를 포함하는 것이 바람직하다.
또한, 상기 무결성 검증부는 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹 별로, 기설정된 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 통한 해당하는 주요 데이터 그룹에 대한 MAC 값을 생성하고, 생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 그룹 무결성 검증부를 더 포함하는 것이 바람직하다.
이 때, 상기 그룹 무결성 검증부는 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 순차적으로 정의되어 있는 모든 주요 데이터 그룹에 대한 생성 MAC 값과 저장 MAC 값의 비교 분석을 수행하는 것이 바람직하다.
더불어, 상기 검증 처리부는 상기 전체 무결성 검증부 또는, 그룹 무결성 검증부의 비교 분석 결과, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우, 해당하는 전체 데이터 또는, 주요 데이터 그룹에 대한 데이터 조작이 발생한 것으로 판단하고, 조작 발생 알람 신호를 생성하고, 해당하는 전체 데이터 또는, 주요 데이터 그룹에 대해서, 기저장되어 있는 기본 값으로 교체 저장을 수행하는 것이 바람직하다.
더 나아가, 상기 무결성 검증부는 사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터에 대해 기설정된 어느 하나의 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 통한 전체 데이터에 대한 MAC 값을 생성하여 저장하는 것이 바람직하다.
더불어, 상기 무결성 검증부는 사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹에 대해, 각 그룹 별로 기설정된 어느 하나의 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 통한 해당하는 주요 데이터 그룹에 대한 MAC 값을 생성하여 저장하는 것이 바람직하다.
또한, 상기 무결성 검증부는 사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 순차적으로 정의되어 있는 모든 주요 데이터 그룹에 대한 MAC 값을 생성하여 저장하는 것이 바람직하다.
상기한 바와 같은 문제점을 해결하기 위한 연산 처리 수단에 의해 각 단계가 수행되는 메모리 무결성 검증 시스템을 이용한 메모리 무결성 검증 방법으로서, 무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들이고, 보안 메모리부에 저장되어 있는 MAC(Message Authentication Code) 값을 생성하기 위해 둘 이상의 키(key) 값 중 기설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 기저장된 둘 이상의 MAC 알고리즘을 이용하여 MAC 값을 생성하는 MAC 생성 단계(S100), 무결성 검증부에서, 상기 MAC 생성 단계(S100)에 의해 생성한 MAC 값과, 상기 MAC 생성 단계(S100)에 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하는 검증 단계(S200), 상기 검증 단계(S200)의 비교 분석 수행 결과, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우, 데이터의 조작이 발생한 것으로 판단하고, 판단 결과에 따라, 기설정된 동작을 수행하는, 검증 처리 단계(S300)를 포함하는 것이 바람직하다.
이 때, 상기 MAC 생성 단계(S100)는 상기 데이터 테이블을 읽어 들여, 전체 데이터와 전체 데이터에 대해 기설정된 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 이용하여 전체 데이터에 대한 MAC 값을 생성하는 전체 MAC 생성 단계(S110)를 포함하는 것이 바람직하다.
또한, 상기 MAC 생성 단계(S100)는 상기 데이터 테이블을 읽어 들여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹에 대해, 각 주요 데이터 그룹 별로 기설정된 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 이용하여, 각 주요 데이터 그룹 별 MAC 값을 생성하는 그룹 MAC 생성 단계(S120)를 더 포함하는 것이 바람직하다.
한편, 상기 그룹 MAC 생성 단계(S120)는 기정의된 전체 주요 데이터 그룹에 대한 MAC 값의 생성이 이루어지도록 반복 수행하는 것이 바람직하다.
더불어, 상기 메모리 무결성 검증 방법은 상기 검증 단계(S200)를 수행하기 전, 무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들여, 상기 보안 메모리부에 저장되어 있는 MAC 값을 생성하기 위한 둘 이상의 키 값 중 전체 데이터에 대한 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 이용하여, 전체 데이터에 대한 MAC 값을 생성하여, 저장하는 전체 MAC 저장 단계(S10)를 더 포함하는 것이 바람직하다.
또한, 상기 메모리 무결성 검증 방법은 상기 검증 단계(S200)를 수행하기 전,무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들여, 상기 보안 메모리부에 저장되어 있는 MAC 값을 생성하기 위한 둘 이상의 키 값 중 기정의된 주요 데이터 그룹 별 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 이용하여, 각 주요 데이터 그룹 별 MAC 값을 생성하여, 저장하는 그룹 MAC 저장 단계(S20)를 더 포함하는 것이 바람직하다.
더 나아가, 상기 그룹 MAC 저장 단계(S20)는 기정의된 전체 주요 데이터 그룹에 대한 MAC 값의 생성 및 저장이 이루어지도록 반복 수행하는 것이 바람직하다.
더불어, 상기 검증 단계(S200)는 상기 전체 MAC 생성 단계(S110)에 의해 생성한 MAC 값과 상기 전체 MAC 저장 단계(S10)에 의해 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하는, 전체 데이터 검증 단계(S210)를 포함하는 것이 바람직하다.
더불어, 상기 검증 단계(S200)는 상기 그룹 MAC 생성 단계(S120)에 의해 각 주요 데이터 그룹 별로 생성한 MAC 값과 상기 그룹 MAC 저장 단계(S20)에 의해 저장되어 있는 각 주요 데이터 그룹 별 MAC 값을 읽어 들여, 각 주요 데이터 그룹 별 비교 분석을 수행하는 그룹 데이터 검증 단계(S220)를 포함하는 것이 바람직하다.
또한, 상기 그룹 데이터 검증 단계(S220)는 전체 주요 데이터 그룹에 대한 비교 분석이 이루어지도록 반복 수행하는 것이 바람직하다.
더 나아가, 상기 검증 처리 단계(S300)는 판단 결과에 따라, 데이터의 조작이 발생한 것으로 판단될 경우, 해당하는 데이터의 조작 발생 알람 신호를 생성하고, 해당하는 데이터에 대해 기저장되어 있는 기본 값으로 교체 저장을 수행하는 것이 바람직하다.
상기한 바와 같은 본 발명에 의한 메모리 무결성 검증 시스템 및 그 방법에 의하면, 적어도 두 종류의 MAC 알고리즘을 병행하여 활용함으로써, 선택되는 어느 하나의 MAC 알고리즘으로는 플래쉬 메모리 영역에 저장된 전체 데이터(모든 데이터)에 대한 데이터 검증을 통해 무결성 확보를 수행하고, 또다른 하나의 MAC 알고리즘으로는 플래쉬 메모리 영역에 저장된 전체 메모리 중 선택(선별)된 주요 데이터에 대한 각각의 개별적인 데이터 검증을 통해 무결성 확보를 수행하게 된다. 이를 통해서, 전체 데이터에 대한 무결성이 깨지더라도, 개별 데이터에 대한 무결성을 확보할 수 있는 장점이 있다.
이를 통해서, 전체 데이터(모든 데이터)에 대한 무결성 확보가 가능하고, 선별된 주요 데이터에 대해서 적어도 두 종류의 MAC 알고리즘을 통한 추가 검증이 이루어지기 때문에, 해시 함수 공격 등에 대한 보안성을 향상시킬 수 있는 장점이 있다.
특히, 해시 함수 공격 중 다른 데이터일지라도 동일한 MAC 값을 가질 수 있다는 birthday attack에 대해서, 공격자가 특정 데이터를 조작하거나 공격으로 만든 동일한 MAC 값을 만들어 조작 저장하더라도, 전체 데이터에 대한 MAC 검증과, 세부 데이터(주요 데이터)에 대한 MAC 검증을 위해 서로 상이한 MAC 알고리즘과 서로 상이한 사전 공유 키(key)가 사용되기 때문에, 공격 및 조작 발생에 대한 감지가 가능한 장점이 있다.
더불어, 주요 데이터에 대해서 하나의 MAC 값이 아닌, 그룹 별 개별 MAC 값을 생성하고 이를 검증함으로써, 한 그룹의 주요 데이터가 공격으로 훼손(무결성이 깨짐)되더라도 다른 그룹의 주요 데이터의 무결성은 확보할 수 있어, 운영 안정성도 확보할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템을 나타낸 구성 예시도이며,
도 2 내지 도 4는 본 발명의 일 실시예에 따른 메모리 무결성 검증 방법을 나타낸 순서 예시도이다.
도 2 내지 도 4는 본 발명의 일 실시예에 따른 메모리 무결성 검증 방법을 나타낸 순서 예시도이다.
이하 첨부된 도면을 참고하여 본 발명에 의한 메모리 무결성 검증 시스템 및 그 방법의 바람직한 실시예에 관하여 상세히 설명한다.
시스템은 필요한 기능을 수행하기 위하여 조직화되고 규칙적으로 상호 작용하는 장치, 기구 및 수단 등을 포함하는 구성 요소들의 집합을 의미한다.
본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템 및 그 방법은, 플래쉬 메모리(flash memory) 영역 중 데이터가 저장되는 영역, 일 예를 들자면, D-Flash, EEPROM 등에 대하여 저장되어 있는 데이터 무결성을 확보하기 위함이다.
통상적으로 D-Flash 영역에는 calibration 값, 변경될 수 있는 설정 값, 고장 진단 로그와 같은 데이터들이 저장되며, 이 정보들은 리프로그램으로 업데이트 되더라도 기존의 정보를 유지해야 하기 때문에, 리프로그래밍이나 전원 오프(OFF)로 인해 지워지지 않게 RAM이 아닌, ROM에 분리되어 관리되게 된다.
간략하게는, 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템 및 그 방법은, 플래쉬 메모리 영역에 저장된 데이터의 무결성 확보를 위해, 대칭키 방식을 활용한 MAC(Message Authentication Code) 값을 활용하여, 메모리에 MAC 값을 생성하고 이를 함께 저장한 뒤, 데이터를 사용하기 전에 무결성 여부를 확인하여 검증하게 된다.
즉, 플래쉬 메모리에 저장(write)하는 것은 메모리의 수명 제약과 동작 시간 제약이 있기 때문에, 변경시마다 항상 업데이트하지 않고, 제어기(MCU, ECU 등)의 셧다운(shut-down)시에만 변경된 데이터 반영을 위해 전체 메모리 영역 또는, 주요 메모리 그룹에 대해 MAC 값을 계산한 뒤 메모리(바람직하게는, HSM)에 업데이트하게 된다.
이러한 MAC 값의 계산은 AES CMAC, HMAC와 같은 대칭키 방식의 보안 MAC 알고리즘을 사용하는 것이 바람직하다.
또한, 셧다운 이후, 보안 부팅(boot-up)시, 해당 시점의 메모리(전체 메모리 영역 또는, 주요 메모리 그룹)를 대상으로 MAC 값을 신규 생성한 후, 이전에 저장된 MAC 값과 동일한 값인지 확인하고, 값이 동일하지 않을 경우, 메모리에 저장되어 있는 데이터의 조작 또는, 변경이 이루어졌다고 판단하게 된다.
이 경우, 클러스터와 같은 타 제어기로 데이터 조작 이상 알람을 전송하고, 또다른 플래쉬 메모리 영역(일 예를 들자면, C-FLASH 영역)에 저장되어 있는 기본 값(default)으로 데이터를 교체하여 동작을 제어하게 된다.
물론, MAC 값을 계산하는데 사용되는 키 값, MAC 값의 저장은 HSM(Hardware Security Module)과 같은 제어기에 내장된 보안 모듈의 메모리를 사용하여 하드웨어 보안성을 확보하는 것이 바람직하다.
또한, 활용되는 MAC 알고리즘 역시도, HSM에서 제공하는 로직을 활용하여 계산 성능과 그 독립성을 확보하는 것이 바람직하다.
이 때, 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템 및 그 방법은, 적어도 두 종류의 MAC 알고리즘을 병행하여 활용함으로써, 선택되는 어느 하나의 MAC 알고리즘으로는 플래쉬 메모리 영역에 저장된 전체 데이터(모든 데이터)에 대한 데이터 검증을 통해 무결성 확보를 수행하고, 또다른 하나의 MAC 알고리즘으로는 플래쉬 메모리 영역에 저장된 전체 메모리 중 선택(선별)된 주요 데이터에 대한 각각의 개별적인 데이터 검증을 통해 무결성 확보를 수행하게 된다. 이를 통해서, 전체 데이터에 대한 무결성이 깨지더라도, 개별 데이터에 대한 무결성을 확보할 수 있는 장점이 있다.
이를 통해서, 상술한 문제점인 전체 데이터(모든 데이터)에 대한 무결성 확보가 가능하고, 선별된 주요 데이터에 대해서 적어도 두 종류의 MAC 알고리즘을 통한 추가 검증이 이루어지기 때문에, 해시 함수 공격 등에 대한 보안성을 향상시킬 수 있는 장점이 있다.
특히, 해시 함수 공격 중 다른 데이터일지라도 동일한 MAC 값을 가질 수 있다는 birthday attack에 대해서, 공격자가 특정 데이터를 조작하거나 공격으로 만든 동일한 MAC 값을 만들어 조작 저장하더라도, 전체 데이터에 대한 MAC 검증과, 세부 데이터(주요 데이터)에 대한 MAC 검증을 위해 서로 상이한 MAC 알고리즘과 서로 상이한 사전 공유 키(key)가 사용되기 때문에, 공격 및 조작 발생에 대한 감지가 가능한 장점이 있다.
더불어, 주요 데이터에 대해서 하나의 MAC 값이 아닌, 그룹 별 개별 MAC 값을 생성하고 이를 검증함으로써, 한 그룹의 주요 데이터가 공격으로 훼손(무결성이 깨짐)되더라도 다른 그룹의 주요 데이터의 무결성은 확보할 수 있어, 운영 안정성도 확보할 수 있는 장점이 있다.
이러한 점을 고려하여, 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템은 도 1에 도시된 바와 같이, 보안 메모리부(100), 무결성 검증부(200) 및 검증 처리부(300)에 의해 동작이 수행되며, 각 구성들은 MCU(Micro Controller Unit)과 같은 제어기, 연산 처리 수단 등을 통해서 동작을 수행하게 된다.
또한, 후술할 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템에 의한 데이터 무결성 확보 대상으로는 D-flash 메모리 영역, EEPROM과 같이, 코드가 아닌 변경되는 데이터가 저장되는 ROM 영역을 한정하여 설명하고 있으나, 이는 일 실시예에 불과하며, 데이터가 저장되는 모든 메모리 영역에 대해서 적용 가능하다.
각 구성에 대해서 자세히 알아보자면,
보안 메모리부(100)는 MAC 값을 생성하기 위한 둘 이상의 키(key), 다시 말하자면, 사전에 공유된 비밀 키 값이 저장되게 된다. 이 때, 보안 메모리부(100)는 상술한 바와 같이, 제어기에 내장된 보안 모듈인 HSM인 것이 바람직하다.
HSM은 마이컴에 일반 코어(core)와 별도로 HW에 독립적으로 구성된 보안 모듈로서, 사전에 공유된 MAC 알고리즘과 비밀 키 값이 저장되게 된다.
이 때, 본 발명의 일 실시예에 따른 메모리 무결성 검증 시스템은 상술한 바와 같이, 전체 데이터에 대한 무결성 검증과 주요 데이터 그룹에 대한 무결성 검증을 수행하기 위한 MAC 값을 생성을 위하여, 적어도 두 종류의 MAC 알고리즘(일 예를 들자면, HMAC, AES-CMAC 등)과 각각의 MAC 값 생성을 위한 비밀 키가 사전에 공유되게 된다.
이 때, 비밀 키는 전체 데이터에 대한 무결성 검증을 위한 하나의 비밀 키(1차 키)와 주요 데이터 그룹에 대한 무결성 검증을 위하여, 데이터 테이블에 정의된 주요 데이터 그룹의 수만큼의 적어도 하나의 비밀 키(2차 키)가 공유되며, HSM에 저장되기 때문에, 공유된 비밀 키에 대한 보안성을 확보하게 된다.
무결성 검증부(200)는 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블과, 보안 메모리부(100)로부터 미리 설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 미리 저장된 MAC 알고리즘을 통한 MAC 값을 생성하게 된다. 또한, 생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하게 된다. 이 때, 저장되어 있는 MAC 값은 데이터 무결성 검증 대상의 리스트인 데이터 테이블에 포함되지 않고, 데이터 메모리 영역에서 별도로 구분하여 저장 및 관리하게 된다.
상세하게는, 무결성 검증부(200)은 MCU의 일반 영역에 저장된 무결성 확인을 수행하는 제어 로직에 의해 동작되게 된다.
이 때, MCU는 동작이 수행되게 되는 코드가 저장되는 영역(C-FLASH 영역)의 무결성 확보를 위해 secure boot가 적용된 bootloader를 사용하게 된다.
또한, 무결성 검증부(200)에 사전에 데이터 테이블이 저장되게 되며, 데이터 테이블은 상술한 바와 같이, 해당하는 메모리 영역(D-FLASH 영역)에 저장된 데이터들을 1차적으로 분석 후 그 결과가 구성되게 된다. 데이터 테이블은 인덱스, 주요 데이터 대상 여부, 주요 데이터 대상일 경우, 해당하는 그룹 정보, 데이터 read를 위한 RTE 인터페이스의 함수 포인터, 데이터의 사이즈, C-FLASH에 저장된 초기화 값(default 값)의 주소 정보 등을 포함하게 된다.
여기서, 인덱스란 0부터 순차적으로 증가하는 숫자 정보이고, 주요 데이터 대상 여부 및 해당하는 그룹 정보는 0부터 시작하는 숫자 정보로서, 주요 데이터가 아닌 일반 데이터인 경우 0으로 설정하며, 주요 데이터인 경우 그 그룹의 분류에 따라 1부터 증가하는 그룹 번호가 설정되게 된다.
무결성 검증부(200)는 저장되어 있는 데이터 테이블을 기반으로, 전체 데이터에 대해서 1차적으로 MAC 검증을 수행하고, 주요 데이터 그룹 별로 2차적으로 개별 MAC 검증을 수행하게 된다. 이를 통해서, 특정 영역 데이터의 조작으로 인해 전체 데이터 영역의 무결성이 깨지더라도, 주요 데이터 그룹 별로 개별 MAC 검증 결과에 따라, 조작 영향성이 없는 주요 데이터 그룹을 분류할 수 있어, 개별 무결성 확보가 가능하기 때문에, 소프트웨어 운영에 대한 안정성을 높일 수 있는 장점이 있다.
D-FLASH 또는, EEPROM과 같은 ROM 영역은 메모리의 life cycle이 있어서, write할 수 있는 횟수가 존재하기에 수명을 고려해야 한다. 그렇기 때문에, 데이터 변경 필요시마다 항상 업데이트(re-write) 후 사용되는 RAM과는 다른 제어 방식이 필요하다. 이에 따라, 일반적으로 ROM 영역은 데이터의 write는 셧다운(shut-down) 시 최종적으로 변경된 내용을 저장 후 종료하는 방식을 적용함으로써, 수년 ~ 수십년간 사용되는 자동차를 고려한 메모리 생명 주기에 대해 대처하고 있다.
이러한 점을 고려하여, 무결성 검증부(200) 역시도, 큰 프로세스를 기준으로 일반적인 방식에 따라 셧다운시 해당하는 메모리에 데이터를 저장할 때, MAC 값을 생성하고 함께 저장하고, 이 후, 스타트업(start-up)시, 새롭게 MAC 값을 생성하여, 저장하고 있는 MAC 값과의 비교를 통해 검증 절차를 수행하여, 데이터 무결성을 확인하게 된다.
무결성 검증부(200)에서, 셧다운시, 최종적으로 변경된 데이터를 메모리에 저장할 때, MAC 값을 생성하고 함께 저장하는 동작에 대해서는 자세히 후술하도록 하며, 먼저, 스타트업 시, 데이터 무결성 검증 절차에 대해서 설명하도록 한다.
즉, 정리하자면, 무결성 검증부(200)는 스타트업 시, 저장되어 있는 메모리 조작에 의한 데이터 변경 여부를 확인하기 위해, 사전에 저장된 데이터 테이블을 기준으로 MAC 값을 신규 생성하고, 신규 생성한 MAC 값과 직전 셧다운 시 저장한 MAC 값(직전 MAC 값)과 비교 분석하여, 데이터의 무결성을 확보하게 된다.
이를 위해, 무결성 검증부(200)는 도 1에 도시된 바와 같이, 전체 무결성 검증부(210)와 그룹 무결성 검증부(220)를 포함하게 된다.
무결성 검증부(200)는 일반 영역(일반 메모리 영역)에 저장되어 있는 데이터 테이블에 따라 적어도 두 번의 MAC 생성 및 검증(전체 데이터에 대한 1차 MAC 생성/검증, 주요 데이터 그룹 별 2차 MAC 생성/검증) 절차가 스타트업 시 발생하게 된다.
전체 무결성 검증부(210)는 미리 저장된 제1 MAC 알고리즘(일 예를 들자면, HMAC 알고리즘)을 이용하여, 저장되어 있는 데이터 테이블에 따른 전체 데이터에 대한 MAC 값을 생성하게 된다. 이 때, 보안 메모리부(100)에 저장되는 키 값 중 전체 데이터에 대해 미리 설정된 키 값(1차 키)을 이용하게 된다.
이 후, 생성한 MAC 값과 해당하는 키 값(1차 키)에 매칭되어 미리 저장된 전체 메모리에 대한 MAC 값을 비교 분석하게 된다. 이 때, 미리 저장된 전체 메모리에 대한 MAC 값은 사전에 셧다운 시, 최종적으로 변경된 모든 데이터인 전체 데이터에 대하여 미리 저장된 제1 MAC 알고리즘과 미리 설정된 키 값(1차 키)를 이용하여 생성 및 저장하게 된다.
즉, 전체 무결성 검증부(210)는 스타트업 시, 데이터 테이블을 기준으로 모든 데이터(전체 데이터)에 대하여 MAC 값을 생성하고, 생성한 MAC 값과 직전 셧다운 시 저장한 MAC 값을 비교하여, 전체 데이터에 대한 무결성 검증을 수행하게 된다.
검증 처리부(300)는 전체 무결성 검증부(210)의 비교 분석 결과를 이용하여, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않을 경우, 전체 데이터의 조작이 발생하였다고 판단하게 되고, 이에 따라 미리 설정된 동작을 수행하게 된다.
상세하게는, 해당하는 데이터(전체 데이터)에 대해 조작이 발생함을 외부 연계 수단으로 알리기 위한 조작 발생 알람 신호를 생성하고, 해당하는 메모리 영역에 저장된 값은 조작된 값이기 때문에, 지운 후 C-FLASH 영역에 저장되어 있는 초기 (default) 값(기본 값 등)으로 교체 저장하게 된다.
이 때, 교체를 위해 사용되는 초기 값은 전제 조건인 secure boot 과정을 통해 C-FLASH 영역의 무결성이 확보되었다고 가정하고 동작을 수행하게 된다.
물론, 전체 데이터에 대한 교체 저장을 수행하는 것이 가장 바람직하지만, 초기 값으로의 교체 저장이기 때문에, 그룹 무결성 검증부(220)의 비교 분석 결과를 토대로, 가능한 한 적은 데이터 교체를 수행하는 것이 바람직하다.
그룹 무결성 검증부(220)는 전체 무결성 검증부(210)의 비교 분석 결과와 무관하게, 저장되어 있는 데이터 테이블에 따른 주요 데이터 그룹에 대한 무결성 검증을 수행하게 된다.
상세하게는, 그룹 무결성 검증부(220)는 미리 저장된 제2 MAC 알고리즘(제1 MAC 알고리즘과 상이한 MAC 알고리즘이라면 무관하며, 일 예를 들자면, AES-CMAC 알고리즘)을 이용하여, 저장되어 있는 데이터 테이블에 따른 미리 정의된 적어도 하나의 주요 데이터 그룹 별로, 각 주요 데이터 그룹 별 MAC 값을 생성하게 된다. 이 때, 보안 메모리부(200)에 저장되는 키 값 중 각 주요 데이터 그룹 별 미리 설정된 키 값(2차 키)를 이용하게 된다.
이 후, 생성한 MAC 값과 해당하는 키 값(2차 키)에 매칭되어 미리 저장된 주요 데이터 그룹 별 MAC 값을 비교 분석하게 된다. 이 때, 미리 저장된 주요 데이터 그룹 별 MAC 값은 사전에 셧다운 시, 최종적으로 변경된 전체 데이터에 대해서 정의된 주요 데이터 그룹 별로 미리 저장된 제2 MAC 알고리즘과 미리 설정된 키 값(2차 키)를 이용하여 생성 및 저장하게 된다. 물론, 정의된 주요 데이터 그룹의 개수만큼 저장되어 있는 키 값(각 그룹 별 2차 키)를 이용하여, 모든 주요 데이터 그룹에 대해서 각 주요 데이터 그룹 별 MAC 값을 생성 및 저장하게 된다.
이를 통해서, 그룹 무결성 검증부(220)는 스타트업 시, 데이터 테이블을 기준으로 주요 데이터 그룹 별 MAC 값을 생성하고, 생성한 MAC 값과 직전 셧다운 시 저장한 주요 데이터 그룹 별 MAC 값을 비교하여, 각 주요 데이터 그룹에 대한 무결성 검증을 수행하게 된다.
이 때, 그룹 무결성 검증부(220)는 저장되어 있는 데이터 테이블을 기준으로, 각 주요 데이터 그룹 별로, 순차적으로 생성한 MAC 값과 직전 셧다운 시 저장한 주요 데이터 그룹 별 MAC 값을 비교 분석함으로써, 정의되어 있는 모든 주요 데이터 그룹에 대한 무결성 검증을 수행하게 된다.
검증 처리부(300)는 그룹 무결성 검증부(220)의 비교 분석 결과를 이용하여, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않을 경우, 해당하는 주요 데이터 그룹의 조작이 발생하였다고 판단하게 되고, 이에 따라 미리 설정된 동작을 수행하게 된다. 물론, 검증 처리부(300)는 각 주요 데이터 그룹 별 그룹 무결성 검증부(220)에 의한 비교 분석 결과에 따라 동작을 수행하게 된다. 이를 통해서, 전체 주요 데이터 그룹에 대한 비교 분석 결과를 이용한 동작을 수행한 후, 무결성 검증이 종료되게 된다.
상세하게는, 해당하는 데이터(주요 데이터 그룹)에 대해 조작이 발생함을 외부 연계 수단으로 알리기 위한 조작 발생 알람 신호를 생성하고, 해당하는 메모리 영역에 저장된 값은 조작된 값이기 때문에, 지운 후 C-FLASH 영역에 저장되어 있는 초기 (default) 값(기본 값 등)으로 교체 저장하게 된다.
이 때, 교체를 위해 사용되는 초기 값은 전제 조건인 secure boot 과정을 통해 C-FLASH 영역의 무결성이 확보되었다고 가정하고 동작을 수행하게 된다.
만약 전체 무결성 검증부(210)의 비교 분석 결과, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않아, 전체 데이터에 대한 무결성이 깨졌을 경우에도, 전체 무결성 검증부(210)의 비교 분석 결과에 무관하게, 그룹 무결성 검증부(220)를 통한 동작이 수행되게 된다.
전체 데이터에 대한 무결성이 깨진 경우, 그룹 무결성 검증부(220)의 비교 분석 결과, 특정 주요 데이터 그룹에 의해 생성한 MAC 값과 저장한 MAC 값이 일치(동일)할 경우, 해당하는 주요 데이터 그룹의 데이터는 MAC 인증 방식을 통한 공격 중 하나인 birthday attack으로부터 방어되었다고 판단하고, 해당하는 주요 데이터 그룹의 데이터는 직전 셧다운 시 저장된 데이터를 그대로 유지하게 된다.
또한, 전체 데이터에 대한 무결성이 깨진 경우, 그룹 무결성 검증부(220)의 비교 분석 결과, 또다른 특정 주요 데이터 그룹에 의해 생성한 MAC 값과 저장한 MAC 값이 일치하지 않아, 해당하는 주요 데이터 그룹에 대한 무결성이 깨졌을 경우, 최종적으로 데이터 조작이 발생한 것으로 판단하고, 해당하는 주요 데이터 그룹의 데이터는 초기 값으로 교체 저장하게 된다.
더불어, 전체 무결성 검증부(210)의 비교 분석 결과, 생성한 MAC 값과 저장한 MAC 값이 일치하여, 전체 데이터에 대한 무결성 검증이 이루어졌음에도 불구하고, 그룹 무결성 검증부(220)의 비교 분석 결과, 어떠한 주요 데이터 그룹의 데이터에 대해서는 무결성 검증이 이루어지지 않을 수도 있으며, 검증 처리부(300)는 이 경우, 해당하는 주요 데이터 그룹에 MAC 인증 방식을 통한 공격 중 하나인 birthday attack가 이루어진 것으로 판단하고, 해당하는 주요 데이터 그룹의 데이터는 초기 값으로 교체 저장하게 된다.
일 예를 들자면, 전체 A 데이터에 대한 무결성이 깨졌더라도, 전체 A 데이터를 이루고 있는 A-1, A-2, A-3 주요 데이터 그룹 별 무결성 검증을 수행함으로써, A-1, A-2 주요 데이터 그룹에 의해 생성한 MAC 값과 저장한 MAC 값이 일치(동일)할 경우, A-1, A-2 주요 데이터 그룹의 데이터는 birthday attack으로부터 방어되었다고 판단하고, 직전 셧다운 시 저장된 데이터를 그대로 유지하게 된다.
물론, birthday attack이 이루어진 A-3 주요 데이터 그룹의 데이터는 초기값으로 교체 저장하게 된다.
이러한 검증 처리부(300)에 의한 수행 결과를 정리하자면 하기의 표 1과 같다.
이를 통해서, 전체 무결성 검증부(210)의 비교 분석 결과, 무결성이 깨졌기 때문에, 전체 데이터에 대해서 초기 값으로의 교체 저장이 이루어져야 하지만, 이 경우, 발생할 수 있는 또다른 문제점이 존재하기 때문에, 그룹 무결성 검증부(220)를 통해서, 초기 값으로 교체 저장되는 데이터를 특정하는 것이 바람직하다.
도 2 내지 도 4는 본 발명의 일 실시예에 따른 메모리 무결성 검증 방법을 순서 예시도이다.
본 발명의 일 실시예에 따른 메모리 무결성 검증 방법은 도 2에 도시된 바와 같이, MAC 생성 단계(S100), 검증 단계(S200) 및 검증 처리 단계(S300)를 포함하게 된다. 각 단계는 MCU(Micro Controller Unit)과 같은 제어기, 연산 처리 수단 등을 통해서 동작이 수행되는 메모리 무결성 검증 시스템을 이용하는 것이 바람직하다.
각 단계에 대해서 자세히 알아보자면,
MAC 생성 단계(S100)는 무결성 검증부(200)에서, 해당하는 메모리 영역(데이터 무결성 확보 대상인 D-flash 메모리 영역, EEPROM과 같이, 코드가 아닌 변경되는 데이터가 저장되는 ROM 영역으로 한정하고 있으나, 일 실시예에 불과하며, 데이터가 저장되는 모든 메모리 영역에 대해 적용 가능함.)에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들이고, 보안 메모리부(100)에 저장되어 있는 MAC 값을 생성하기 위한 둘 이상의 키 값 중 미리 설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 미리 저장된 MAC 알고리즘을 이용하여 MAC 값을 생성하게 된다.
여기서, 데이터 테이블은 해당하는 메모리 영역(D-FLASH 영역)에 저장된 데이터들을 1차적으로 분석 후 그 결과가 구성되게 된다. 데이터 테이블은 인덱스, 주요 데이터 대상 여부, 주요 데이터 대상일 경우, 해당하는 그룹 정보, 데이터 read를 위한 RTE 인터페이스의 함수 포인터, 데이터의 사이즈, C-FLASH에 저장된 초기화 값(default 값)의 주소 정보 등을 포함하게 된다.
여기서, 인덱스란 0부터 순차적으로 증가하는 숫자 정보이고, 주요 데이터 대상 여부 및 해당하는 그룹 정보는 0부터 시작하는 숫자 정보로서, 주요 데이터가 아닌 일반 데이터인 경우 0으로 설정하며, 주요 데이터인 경우 그 그룹의 분류에 따라 1부터 증가하는 그룹 번호가 설정되게 된다.
상세하게는, MAC 생성 단계(S100)는 미리 저장된 MAC 알고리즘을 이용하여, 데이터 테이블을 기준으로 전체 데이터 또는, 주요 데이터 그룹에 대한 MAC 값을 생성하게 된다. 이 때, 각 데이터(전체 데이터 또는, 주요 데이터 그룹 별) 별로, 사전에, 비밀 키 값이 공유되어, 보안 메모리부(100)에 저장되게 된다.
비밀 키는 전체 데이터에 대한 무결성 검증을 위한 하나의 비밀 키(1차 키)와 주요 데이터 그룹에 대한 무결성 검증을 위하여, 데이터 테이블에 정의된 주요 데이터 그룹의 수만큼의 적어도 하나의 비밀 키(2차 키)가 공유되며, HSM에 저장되기 때문에, 공유된 비밀 키에 대한 보안성을 확보하게 된다.
D-FLASH 또는, EEPROM과 같은 ROM 영역은 메모리의 life cycle이 있어서, write할 수 있는 횟수가 존재하기에 수명을 고려해야 한다. 그렇기 때문에, 데이터 변경 필요시마다 항상 업데이트(re-write) 후 사용되는 RAM과는 다른 제어 방식이 필요하다. 이에 따라, 일반적으로 ROM 영역은 데이터의 write는 셧다운(shut-down) 시 최종적으로 변경된 내용을 저장 후 종료하는 방식을 적용함으로써, 수년 ~ 수십년간 사용되는 자동차를 고려한 메모리 생명 주기에 대해 대처하고 있다.
이러한 점을 고려하여, 무결성 검증부(200) 역시도, 큰 프로세스를 기준으로 일반적인 방식에 따라 셧다운시 해당하는 메모리에 데이터를 저장할 때, MAC 값을 생성하고 함께 저장하고, 이 후, 스타트업(start-up)시, 새롭게 MAC 값을 생성하여, 저장하고 있는 MAC 값과의 비교를 통해 검증 절차를 수행하여, 데이터 무결성을 확인하게 된다.
이에 따라, MAC 생성 단계(S100)는 스타트업 시, 동작을 수행하게 되며, 스타트업 시, 저장되어 있는 메모리 조작에 의한 데이터 변경 여부를 확인하기 위해, 사전에 저장된 데이터 테이블을 기준으로 MAC 값을 신규 생성하게 된다. 이러한 MAC 생성 단계(S100)는 도 2에 도시된 바와 같이, 전체 MAC 생성 단계(S110), 그룹 MAC 생성 단계(S120)를 포함하게 된다.
전체 MAC 생성 단계(S110)는 미리 저장된 제1 MAC 알고리즘(일 예를 들자면, HMAC 알고리즘)을 이용하여, 저장되어 있는 데이터 테이블에 따른 전체 데이터에 대한 MAC 값을 생성하게 된다. 이 때, 보안 메모리부(100)에 저장되는 키 값 중 전체 데이터에 대해 미리 설정된 키 값(1차 키)을 이용하게 된다.
그룹 MAC 생성 단계(S120)는 미리 저장된 제2 MAC 알고리즘(제1 MAC 알고리즘과 상이한 MAC 알고리즘이라면 무관하며, 일 예를 들자면, AES-CMAC 알고리즘)을 이용하여, 저장되어 있는 데이터 테이블에 따른 미리 정의된 적어도 하나의 주요 데이터 그룹 별로, 각 주요 데이터 그룹 별 MAC 값을 생성하게 된다. 이 때, 보안 메모리부(200)에 저장되는 키 값 중 각 주요 데이터 그룹 별 미리 설정된 키 값(2차 키)를 이용하게 된다.
이 때, 그룹 MAC 생성 단계(S120)는 미리 정의된 전체 주요 데이터 그룹에 대한 MAC 값의 생성이 이루어지도록 반복 수행하게 된다. 즉, 그룹 MAC 생성 단계(S120)는 저장되어 있는 데이터 테이블을 기준으로, 정의되어 있는 모든 주요 데이터 그룹에 대해, 각 주요 데이터 그룹 별로, 순차적으로 MAC 값을 생성하게 된다.
반복 수행 과정에 대해서 일 예를 들자면, 어느 하나의 주요 데이터 그룹에 대한 MAC 값을 생성한 후, MAC 값의 생성이 완료되지 않은 주요 데이터 그룹이 존재하는지 판단하여, 존재할 경우, 해당하는 주요 데이터 그룹의 MAC 값을 생성하고, 존재하지 않을 경우, 해당 단계를 종료하게 된다.
검증 단계(S200)는 무결성 검증부(200)에서, 상기 MAC 생성 단계(S100)에 의해 생성한 MAC 값과 상기 MAC 생성 단계(S100)에 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하게 된다.
다시 말하자면, 검증 단계(S200)는 스타트업 시, 저장되어 있는 메모리 조작에 의한 데이터 변경 여부를 확인하기 위해, 사전에 저장된 데이터 테이블을 기준으로 신규 생성한 MAC 값과 직전 셧다운 시 저장한 MAC 값(직전 MAC 값)과 비교 분석하여, 데이터의 무결성을 확보하게 된다.
이 때, 검증 단계(S200)는 저장되어 있는 데이터 테이블을 기반으로, 전체 데이터에 대해서 1차적으로 MAC 검증을 수행하고, 주요 데이터 그룹 별로 2차적으로 개별 MAC 검증을 수행하게 된다. 이를 통해서, 특정 영역 데이터의 조작으로 인해 전체 데이터 영역의 무결성이 깨지더라도, 주요 데이터 그룹 별로 개별 MAC 검증 결과에 따라, 조작 영향성이 없는 주요 데이터 그룹을 분류할 수 있어, 개별 무결성 확보가 가능하기 때문에, 소프트웨어 운영에 대한 안정성을 높일 수 있는 장점이 있다.
더불어, 도 2 및 도 3에 도시된 바와 같이, 무결성 검증부(200)에서, 셧다운 시, 최종적으로 변경된 내용을 해당하는 메모리에 데이터를 저장할 때, MAC 값을 생성하고 함께 저장하게 되며, 이를 위해, 전체 MAC 저장 단계(S10) 및 그룹 MAC 저장 단계(S20)를 더 포함하게 된다.
즉, 전체 MAC 저장 단계(S10) 및 그룹 저장 단계(S20)는 셧다운시, 최종적으로 변경된 데이터를 메모리에 저장할 때, MAC 값을 생성하고 함께 저장하는 동작이 수행되게 된다.
전체 MAC 저장 단계(S10)는 셧다운 시, 최종적으로 변경된 모든 데이터인 전체 데이터에 대하여 미리 저장된 제1 MAC 알고리즘과 미리 설정된 키 값(1차 키)를 이용하여 생성 및 저장하게 된다.
또한, 그룹 MAC 저장 단계(S20) 역시 셧다운 시, 최종적으로 변경된 전체 데이터에 대해서 정의된 주요 데이터 그룹 별로 미리 저장된 제2 MAC 알고리즘과 미리 설정된 키 값(2차 키)를 이용하여 생성 및 저장하게 된다. 물론, 정의된 주요 데이터 그룹의 개수만큼 저장되어 있는 키 값(각 그룹 별 2차 키)를 이용하여, 모든 주요 데이터 그룹에 대해서 각 주요 데이터 그룹 별 MAC 값을 생성 및 저장하게 된다. 즉, 그룹 MAC 저장 단계(S20)는 미리 정의된 전체 주요 데이터 그룹에 대한 각각의 MAC 값의 생성 및 저장이 이루어지도록 반복 수행하게 된다.
반복 수행 과정에 대해서 일 예를 들자면, 도 3에 도시된 바와 같이, 어느 하나의 주요 데이터 그룹에 대한 MAC 값을 생성 및 저장한 후, MAC 값의 생성이 완료되지 않은 주요 데이터 그룹이 존재하는지 판단하여, 존재할 경우, 해당하는 주요 데이터 그룹의 MAC 값을 생성 및 저장하고, 존재하지 않을 경우, 해당 단계를 종료하게 된다.
이를 통해서, 검증 단계(S200)는 무결성 검증부(200)에서, 상기 MAC 생성 단계(S100)에 의해 생성한 MAC 값과 상기 MAC 생성 단계(S100)에 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하게 된다.
다시 말하자면, 검증 단계(S200)는 전체 MAC 생성 단계(S110) 또는, 그룹 MAC 생성 단계(S120)에 의해 새롭게 생성한 MAC 값을 전체 MAC 저장 단계(S10) 또는, 그룹 MAC 저장 단계(S20)에 의해 저장하고 있는 MAC 값과의 비교를 통해 검증 절차를 수행하여, 데이터 무결성을 확인하게 된다.
이를 위해, 검증 단계(S200)는 도 2 및 도 4에 도시된 바와 같이, 전체 데이터 검증 단계(S210), 그룹 데이터 검증 단계(S220)를 포함하게 된다. 이를 통해서, 스타트업 시, 일반 영역(일반 메모리 영역)에 저장되어 있는 데이터 테이블에 따라 적어도 두 번의 MAC 생성 및 검증(전체 데이터에 대한 1차 MAC 생성/검증, 주요 데이터 그룹 별 2차 MAC 생성/검증) 절차가 발생하게 된다.
전체 데이터 검증 단계(S210)는 전체 MAC 생성 단계(S110)에 의해 생성한 MAC 값과 전체 MAC 저장 단계(S10)에 의해 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하게 된다.
상세하게는, 전체 MAC 생성 단계(S110)는 스타트업 시, 데이터 테이블을 기준으로 모든 데이터(전체 데이터)에 대하여 MAC 값을 생성하고, 전체 데이터 검증 단계(S210)는 전체 MAC 생성 단계(S110)에 의해 생성한 MAC 값과 직전 셧다운 시 저장한 MAC 값(전체 MAC 저장 단계(S10)에 의해 저장되어 있는 MAC 값)을 비교하여, 전체 데이터에 대한 무결성 검증을 수행하게 된다.
검증 처리 단계(S300)는 검증 단계(S200)의 비교 분석 수행 결과, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않을 경우, 데이터 조작이 발생한 것으로 판단하고, 판단 결과에 따라 미리 설정된 동작을 수행하게 된다.
상세하게는, 검증 처리 단계(S300)는 판단 결과에 따라, 데이터 조작이 발생한 것으로 판단될 경우, 해당하는 데이터의 조작 발생 알람 신호를 생성하고, 해당하는 데이터에 대해 미리 저장되어 있는 기본 값(기초 값)으로 교체 저장을 수행하게 된다.
이에 따라, 검증 처리 단계(S300)는 전체 데이터 검증 단계(S210)에 의한 비교 분석 결과, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않을 경우, 전체 데이터의 조작이 발생하였다고 판단하게 되고, 이에 따라 미리 설정된 동작을 수행하게 된다.
일 예를 들자면, 해당하는 데이터(전체 데이터)에 대해 조작이 발생함을 외부 연계 수단으로 알리기 위한 조작 발생 알람 신호를 생성하고, 해당하는 메모리 영역에 저장된 값은 조작된 값이기 때문에, 지운 후 C-FLASH 영역에 저장되어 있는 초기 (default) 값(기본 값 등)으로 교체 저장하게 된다.
이 때, 교체를 위해 사용되는 초기 값은 전제 조건인 secure boot 과정을 통해 C-FLASH 영역의 무결성이 확보되었다고 가정하고 동작을 수행하게 된다.
물론, 전체 데이터에 대한 교체 저장을 수행하는 것이 가장 바람직하지만, 초기 값으로의 교체 저장이기 때문에, 그룹 데이터 검증 단계(S220)의 비교 분석 결과를 고려하여, 가능한 한 적은 데이터 교체를 수행하는 것이 바람직하다.
이를 위한 그룹 데이터 검증 단계(S220)는 데이터 테이블을 기준으로 각 주요 데이터 그룹 별로, 그룹 MAC 생성 단계(S120)에 의해 생성한 MAC 값과 그룹 MAC 저장 단계(S20)에 의해 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하게 된다.
상세하게는, 그룹 데이터 검증 단계(S220)는 스타트업 시, 그룹 MAC 생성 단계(S120)에 의해 데이터 테이블을 기준으로 주요 데이터 그룹 별 생성한 MAC 값과, 직전 셧다운 시 저장한 주요 데이터 그룹 별 MAC 값(그룹 MAC 저장 단계(S20)에 의해 저장되어 있는 MAC 값)을 비교하여, 각 주요 데이터 그룹에 대한 무결성 검증을 수행하게 된다.
이 때, 그룹 데이터 검증 단계(S220)는 모든 주요 데이터 그룹에 대한 비교 분석 결과가 수행될 수 있도록, 도 4에 도시된 바와 같이, 순차적으로 주요 데이터 그룹에 대한 무결성 검증 수행하되, 무결성 검증 수행이 완료되지 않은 주요 데이터 그룹이 존재하는지 판단하여, 존재할 경우, 해당하는 주요 데이터 그룹의 무결성 검증을 수행하고, 존재하지 않을 경우, 해당 단계를 종료하게 된다.
이에 따른 검증 처리 단계(S300)는 그룹 데이터 검증 단계(S220)에 의한 비교 분석 결과, 어느 주요 데이터 그룹 별 생성한 MAC 값과 저장한 MAC 값이 일치하지 않을 경우, 해당하는 주요 데이터 그룹의 조작이 발생하였다고 판단하게 되고, 이에 따라 미리 설정된 동작을 수행하게 된다.
검증 처리 단계(S300)는 각 주요 데이터 그룹 별, 그룹 데이터 검증 단계(S220)에 의한 비교 분석 결과를 이용하여, 동작을 수행하게 된다. 이를 통해서, 전체 주요 데이터 그룹에 대한 비교 분석 결과를 이용한 동작을 수행한 후, 무결성 검증이 종료되게 된다.
상세하게는, 해당하는 데이터(주요 데이터 그룹)에 대해 조작이 발생함을 외부 연계 수단으로 알리기 위한 조작 발생 알람 신호를 생성하고, 해당하는 메모리 영역에 저장된 값은 조작된 값이기 때문에, 지운 후 C-FLASH 영역에 저장되어 있는 초기 (default) 값(기본 값 등)으로 교체 저장하게 된다.
이 때, 교체를 위해 사용되는 초기 값은 전제 조건인 secure boot 과정을 통해 C-FLASH 영역의 무결성이 확보되었다고 가정하고 동작을 수행하게 된다.
이러한 점을 고려하여, 검증 처리 단계(S300)는 만약 전체 데이터 검증 단계(S210)의 비교 분석 결과, 생성한 MAC 값과 저장한 MAC 값이 일치하지 않아, 전체 데이터에 대한 무결성이 깨졌을 경우에도, 전체 데이터에 대한 비교 분석 결과와 무관하게, 그룹 데이터 검증 단계(S220)를 수행하게 된다.
이를 통해서, 검증 처리 단계(S300)는 전체 데이터에 대한 무결성이 깨진 경우, 그룹 데이터 검증 단계(S220)의 비교 분석 결과, 특정 주요 데이터 그룹에 의해 생성한 MAC 값과 저장한 MAC 값이 일치(동일)할 경우, 해당하는 주요 데이터 그룹의 데이터는 MAC 인증 방식을 통한 공격 중 하나인 birthday attack으로부터 방어되었다고 판단하고, 해당하는 주요 데이터 그룹의 데이터는 직전 셧다운 시 저장된 데이터를 그대로 유지하게 된다.
또한, 검증 처리 단계(S300)는 전체 데이터에 대한 무결성이 깨진 경우, 그룹 데이터 검증 단계(S220)의 비교 분석 결과, 또다른 특정 주요 데이터 그룹에 의해 생성한 MAC 값과 저장한 MAC 값이 일치하지 않아, 해당하는 주요 데이터 그룹에 대한 무결성이 깨졌을 경우, 최종적으로 데이터 조작이 발생한 것으로 판단하고, 해당하는 주요 데이터 그룹의 데이터는 초기 값으로 교체 저장하게 된다.
더불어, 검증 처리 단계(S300)는 전체 데이터에 대한 무결성 검증이 이루어졌음에도 불구하고, 그룹 데이터 검증 단계(S220)의 비교 분석 결과, 어떠한 주요 데이터 그룹의 데이터에 대해서 무결성 검증이 깨졌을 경우, 해당하는 주요 데이터 그룹에 MAC 인증 방식을 통한 공격 중 하나인 birthday attack가 이루어진 것으로 판단하고, 해당하는 주요 데이터 그룹의 데이터는 초기 값으로 교체 저장하게 된다.
즉, 상술한 바와 같이, 검증 처리 단계(S300)는 전체 데이터 검증 단계(S210)의 비교 분석 결과에 의한 무결성이 깨질 경우, 전체 데이터에 대해서 초기 값으로의 교체 저장이 이루어져야 하지만, 이 경우, 발생할 수 있는 또다른 문제점이 존재하기 때문에, 그룹 데이터 검증 단계(S220)를 통해서, 초기 값으로 교체 저장되는 데이터를 특정할 수 있는 장점이 있으며, 주요 데이터 그룹 중 일부가 birthday attack이 이루어져 전체 데이터에 대해 무결성 검증이 이루어졌더라도, 그룹 데이터 검증을 통해서 이를 판단하여 처리할 수 있는 장점이 있다.
본 발명은 상기한 실시예에 한정되지 아니하며, 적용범위가 다양함은 물론이고, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 다양한 변형 실시가 가능한 것은 물론이다.
100 : 보안 메모리부
200 : 무결성 검증부
210 : 전체 무결성 검증부 220 : 그룹 무결성 검증부
300 : 검증 처리부
200 : 무결성 검증부
210 : 전체 무결성 검증부 220 : 그룹 무결성 검증부
300 : 검증 처리부
Claims (19)
- MAC(Message Authentication Code) 값을 생성하기 위한, 둘 이상의 키(key) 값이 저장되는 보안 메모리부;
해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블과, 상기 보안 메모리부로부터 기설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 기저장된 둘 이상의 MAC 알고리즘을 통한 MAC 값을 생성하고,
생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 무결성 검증부; 및
비교 분석 결과를 이용하여, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우, 데이터의 조작이 발생한 것으로 판단하고, 기설정된 동작을 수행하는 검증 처리부;
를 포함하는, 메모리 무결성 검증 시스템.
- 제1항에 있어서,
상기 무결성 검증부는
상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터와 전체 데이터에 대해 기설정된 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 통한 전체 데이터에 대한 MAC 값을 생성하고,
생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 전체 무결성 검증부;
를 포함하는, 메모리 무결성 검증 시스템.
- 제2항에 있어서,
상기 무결성 검증부는
상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹 별로, 기설정된 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 통한 해당하는 주요 데이터 그룹에 대한 MAC 값을 생성하고,
생성한 MAC 값과 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 비교 분석하는 그룹 무결성 검증부;
를 더 포함하는, 메모리 무결성 검증 시스템.
- 제3항에 있어서,
상기 그룹 무결성 검증부는
상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 순차적으로 정의되어 있는 모든 주요 데이터 그룹에 대한 생성 MAC 값과 저장 MAC 값의 비교 분석을 수행하는, 메모리 무결성 검증 시스템.
- 제3항에 있어서,
상기 검증 처리부는
상기 전체 무결성 검증부 또는, 그룹 무결성 검증부의 비교 분석 결과, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우,
해당하는 전체 데이터 또는, 주요 데이터 그룹에 대한 데이터 조작이 발생한 것으로 판단하고, 조작 발생 알람 신호를 생성하고, 해당하는 전체 데이터 또는, 주요 데이터 그룹에 대해서, 기저장되어 있는 기본 값으로 교체 저장을 수행하는, 메모리 무결성 검증 시스템.
- 제1항에 있어서,
상기 무결성 검증부는
사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터에 대해 기설정된 어느 하나의 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 통한 전체 데이터에 대한 MAC 값을 생성하여 저장하는, 메모리 무결성 검증 시스템.
- 제1항에 있어서,
상기 무결성 검증부는
사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹에 대해, 각 그룹 별로 기설정된 어느 하나의 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 통한 해당하는 주요 데이터 그룹에 대한 MAC 값을 생성하여 저장하는, 메모리 무결성 검증 시스템.
- 제7항에 있어서,
상기 무결성 검증부는
사전에, 상기 데이터 테이블에 저장되어 있는 데이터의 분석 결과를 이용하여, 순차적으로 정의되어 있는 모든 주요 데이터 그룹에 대한 MAC 값을 생성하여 저장하는, 메모리 무결성 검증 시스템.
- 연산 처리 수단에 의해 각 단계가 수행되는 메모리 무결성 검증 시스템을 이용한 메모리 무결성 검증 방법으로서,
무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들이고, 보안 메모리부에 저장되어 있는 MAC(Message Authentication Code) 값을 생성하기 위해 둘 이상의 키(key) 값 중 기설정된 소정 기준에 따라 선택되는 어느 하나의 키 값을 이용하여, 기저장된 둘 이상의 MAC 알고리즘을 이용하여 MAC 값을 생성하는 MAC 생성 단계(S100);
무결성 검증부에서, 상기 MAC 생성 단계(S100)에 의해 생성한 MAC 값과, 상기 MAC 생성 단계(S100)에 해당하는 키 값에 매칭되어 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하는 검증 단계(S200);
상기 검증 단계(S200)의 비교 분석 수행 결과, 생성 MAC 값과 저장 MAC 값이 일치하지 않을 경우, 데이터의 조작이 발생한 것으로 판단하고, 판단 결과에 따라, 기설정된 동작을 수행하는, 검증 처리 단계(S300);
를 포함하는, 메모리 무결성 검증 방법.
- 제9항에 있어서,
상기 MAC 생성 단계(S100)는
상기 데이터 테이블을 읽어 들여, 전체 데이터와 전체 데이터에 대해 기설정된 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 이용하여 전체 데이터에 대한 MAC 값을 생성하는 전체 MAC 생성 단계(S110);
를 포함하는, 메모리 무결성 검증 방법.
- 제10항에 있어서,
상기 MAC 생성 단계(S100)는
상기 데이터 테이블을 읽어 들여, 전체 데이터 중 기정의된 적어도 하나의 주요 데이터 그룹에 대해, 각 주요 데이터 그룹 별로 기설정된 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 이용하여, 각 주요 데이터 그룹 별 MAC 값을 생성하는 그룹 MAC 생성 단계(S120);
를 더 포함하는, 메모리 무결성 검증 방법.
- 제11항에 있어서,
상기 그룹 MAC 생성 단계(S120)는
기정의된 전체 주요 데이터 그룹에 대한 MAC 값의 생성이 이루어지도록 반복 수행하는, 메모리 무결성 검증 방법.
- 제11항에 있어서,
상기 메모리 무결성 검증 방법은
상기 검증 단계(S200)를 수행하기 전,
무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들여, 상기 보안 메모리부에 저장되어 있는 MAC 값을 생성하기 위한 둘 이상의 키 값 중 전체 데이터에 대한 키 값을 이용하여, 기저장된 어느 하나의 MAC 알고리즘을 이용하여, 전체 데이터에 대한 MAC 값을 생성하여, 저장하는 전체 MAC 저장 단계(S10);
를 더 포함하는, 메모리 무결성 검증 방법.
- 제13항에 있어서,
상기 메모리 무결성 검증 방법은
상기 검증 단계(S200)를 수행하기 전,
무결성 검증부에서, 해당하는 메모리 영역에 저장된 데이터의 분석 결과인 데이터 테이블을 읽어 들여, 상기 보안 메모리부에 저장되어 있는 MAC 값을 생성하기 위한 둘 이상의 키 값 중 기정의된 주요 데이터 그룹 별 키 값을 이용하여, 기저장된 또다른 하나의 MAC 알고리즘을 이용하여, 각 주요 데이터 그룹 별 MAC 값을 생성하여, 저장하는 그룹 MAC 저장 단계(S20);
를 더 포함하는, 메모리 무결성 검증 방법.
- 제14항에 있어서,
상기 그룹 MAC 저장 단계(S20)는
기정의된 전체 주요 데이터 그룹에 대한 MAC 값의 생성 및 저장이 이루어지도록 반복 수행하는, 메모리 무결성 검증 방법.
- 제14항에 있어서,
상기 검증 단계(S200)는
상기 전체 MAC 생성 단계(S110)에 의해 생성한 MAC 값과 상기 전체 MAC 저장 단계(S10)에 의해 저장되어 있는 MAC 값을 읽어 들여, 비교 분석을 수행하는, 전체 데이터 검증 단계(S210);
를 포함하는, 메모리 무결성 검증 방법.
- 제14항에 있어서,
상기 검증 단계(S200)는
상기 그룹 MAC 생성 단계(S120)에 의해 각 주요 데이터 그룹 별로 생성한 MAC 값과 상기 그룹 MAC 저장 단계(S20)에 의해 저장되어 있는 각 주요 데이터 그룹 별 MAC 값을 읽어 들여, 각 주요 데이터 그룹 별 비교 분석을 수행하는 그룹 데이터 검증 단계(S220);
를 포함하는, 메모리 무결성 검증 방법.
- 제17항에 있어서,
상기 그룹 데이터 검증 단계(S220)는
전체 주요 데이터 그룹에 대한 비교 분석이 이루어지도록 반복 수행하는, 메모리 무결성 검증 방법.
- 제9항에 있어서,
상기 검증 처리 단계(S300)는
판단 결과에 따라, 데이터의 조작이 발생한 것으로 판단될 경우,
해당하는 데이터의 조작 발생 알람 신호를 생성하고, 해당하는 데이터에 대해 기저장되어 있는 기본 값으로 교체 저장을 수행하는, 메모리 무결성 검증 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130170A KR20240050595A (ko) | 2022-10-12 | 2022-10-12 | 메모리 무결성 검증 시스템 및 그 방법 |
US18/335,844 US20240126454A1 (en) | 2022-10-12 | 2023-06-15 | System and method for verifying memory integrity |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130170A KR20240050595A (ko) | 2022-10-12 | 2022-10-12 | 메모리 무결성 검증 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240050595A true KR20240050595A (ko) | 2024-04-19 |
Family
ID=90626288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220130170A KR20240050595A (ko) | 2022-10-12 | 2022-10-12 | 메모리 무결성 검증 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240126454A1 (ko) |
KR (1) | KR20240050595A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101806719B1 (ko) | 2016-07-04 | 2017-12-08 | 현대오트론 주식회사 | 보안 부팅에 따른 메모리 영역 자동 설정이 가능한 전자 제어유닛 및 이를 이용한 보안 부팅 방법 |
-
2022
- 2022-10-12 KR KR1020220130170A patent/KR20240050595A/ko unknown
-
2023
- 2023-06-15 US US18/335,844 patent/US20240126454A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101806719B1 (ko) | 2016-07-04 | 2017-12-08 | 현대오트론 주식회사 | 보안 부팅에 따른 메모리 영역 자동 설정이 가능한 전자 제어유닛 및 이를 이용한 보안 부팅 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20240126454A1 (en) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296579B2 (en) | System and method for updating a basic input/output system (BIOS) | |
US8607216B2 (en) | Verifying firmware | |
US20100058314A1 (en) | Computer System and Related Method of Logging BIOS Update Operation | |
US11803366B2 (en) | Firmware updating system and method | |
EP0849657A1 (en) | Secure data processing method and system | |
CN109997140B (zh) | 使用一次写入寄存器从设备的睡眠状态加速安全启动的低功耗嵌入式设备 | |
CN113486360B (zh) | 基于risc-v的安全启动方法及系统 | |
US20170109546A1 (en) | Securing of the loading of data into a nonvolatile memory of a secure element | |
EP3851989B1 (en) | Electronic device for updating firmware based on user authentication and an operating method thereof | |
US20130091394A1 (en) | Data processing apparatus and validity verification method | |
US10621330B2 (en) | Allowing use of a test key for a BIOS installation | |
JP2007287022A (ja) | 電子制御装置の情報記憶方法 | |
US11366911B2 (en) | Cryptography module and method for operating same | |
KR102598510B1 (ko) | 소프트웨어의 무결성 검증 방법 및 그 장치 | |
CN113190880B (zh) | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 | |
CN113935011A (zh) | 用于执行控制设备的安全启动序列的方法 | |
KR20240050595A (ko) | 메모리 무결성 검증 시스템 및 그 방법 | |
US20200218549A1 (en) | Electronic Control Unit and Method for Verifying Control Program | |
EP3440585B1 (en) | System and method for establishing a securely updatable core root of trust for measurement | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
US20230252154A1 (en) | Booting device for a computer element and method for booting a computer element | |
CN112015582B (zh) | 自修正存储器系统、提供错误修正至存储器内容的方法 | |
EP3620944B1 (en) | Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
US20240211600A1 (en) | Method for reprogram with enhanced security |