1 |
1
디바이스에서 실행 코드의 무결성 검증 방법에 있어서,마이크로 콘트롤 유닛(Micro Control Unit; MCU)에서 실행 코드를 복수의 블록들로 분할하는 단계;상기 MCU에서 상기 분할된 블록들에 대응하는 해시값들을 생성하는 단계;하드웨어 보안 모듈(Hardware Security Module; HSM)에서 상기 생성된 해시값들을 저장하는 단계;상기 실행 코드를 부팅할 때, 상기 MCU에서 상기 복수의 블록들 중에서 적어도 하나의 해시값을 계산하는 단계; 및상기 HSM에서 상기 계산된 해시값과 상기 HSM에 저장된 해시값들 중에서 상기 계산된 해시값에 대응하는 해시값을 비교하는 단계를 포함하는 방법
|
2 |
2
제 1 항에 있어서,상기 분할된 블록들의 크기는 블록 마다 서로 다른 것을 특징으로 하는 방법
|
3 |
3
제 1 항에 있어서,상기 해시값들을 생성하는 단계는,상기 분할된 블록들에서 해시값을 계산하는 시작점 혹은 끝점을 다르게 설정하는 단계를 포함하는 것을 특징으로 하는 방법
|
4 |
4
제 3 항에 있어서,상기 해시값들을 생성하는 단계는,상기 시작점에 대응하는 제 1 옵셋 값 혹은 상기 끝점에 대응하는 제 2 옵셋 값을 상기 분할된 블록들 중에서 대응하는 블록에 추가하는 단계를 더 포함하는 것을 특징으로 하는 방법
|
5 |
5
제 4 항에 있어서,상기 HSM에서 난수 발생기를 이용하여 상기 시작점에 대응하는 상기 제 1 옵셋 값과 상기 끝점에 대응하는 제 2 옵셋 값을 생성하는 단계; 및상기 HSM에서 상기 제 1 및 제 2 옵셋 값들을 저장하는 단계를 더 포함하는 방법
|
6 |
6
제 4 항에 있어서,상기 해시값들을 생성하는 단계는,상기 분할된 블록들 중에서 적어도 하나의 블록의 해시값을 생성하기 위하여, 상기 적어도 하나의 블록의 시작점에서 상기 제 1 옵셋 값을 뺀 값부터 상기 적어도 하나의 블록의 끝점에서 상기 제 2 옵셋 값을 더한 값까지를 블록 범위로 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법
|
7 |
7
제 6 항에 있어서,상기 분할된 블록들 중에서 첫번째 블록의 블록 범위는 상기 첫번째 블록의 시작점에서 상기 첫번째 블록의 끝점에 상기 제 2 옵셋 값을 더한 값까지인 것을 특징으로 하는 방법
|
8 |
8
제 6 항에 있어서,상기 분할된 블록들 중에서 마지막 블록의 블록 범위는 상기 마지막 블록의 시작점에서 상기 제 1 옵셋 값을 뺀 값부터 첫번째 블록의 끝점까지인 것을 특징으로 하는 방법
|
9 |
9
제 1 항에 있어서,상기 생성된 해시값들은 상기 디바이스를 제조할 때 상기 HSM에 저장되는 것을 특징으로 하는 방법
|
10 |
10
제 1 항에 있어서,상기 HSM에서 상기 분할된 블록들에 대한 전체 블록에 대한 무결성이 검증되는 것을 특징으로 하는 방법
|
11 |
11
제 1 항에 있어서,상기 HSM에서 상기 분할된 블록들 중에서 어느 하나의 블록에 대한 무결성이 검증되는 것을 특징으로 하는 방법
|
12 |
12
제 11 항에 있어서,상기 어느 하나의 블록에 대응하는 블록 번호를 랜덤하게 생성하는 단계를 더 포함하는 방법
|
13 |
13
제 11 항에 있어서,상기 어느 하나의 블록에 대한 무결성 검증 동작은 상기 MCU에서 상기 HSM에 제공하는 보안 기능을 호출할 때 수행되는 것을 특징으로 하는 방법
|
14 |
14
실행 코드의 무결성을 검증하기 위한 하드웨어 보안모듈에 있어서:적어도 하나의 프로세서; 및상기 적어도 하나의 프로세서에서 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리를 포함하고,상기 적어도 하나의 인스트럭션은,디바이스를 제조할 때, MCU(Micro Control Unit)로부터 복수의 블록들로 분할된 실행 코드에 대응하는 해시값들을 수신하고;상기 분할된 실행 코드에 대응하는 상기 해시값들을 저장하고;상기 디바이스를 부팅할 때, 상기 MCU로부터 상기 복수의 블록들 중에서 적어도 하나의 해시값을 수신하고; 및상기 적어도 하나의 해시값과 상기 저장된 해시값들 중에서 상기 적어도 하나의 해시값에 대응하는 해시값을 비교하도록 상기 적어도 하나의 프로세서에 실행되는 것을 특징으로 하는 하드웨어 보안모듈
|
15 |
15
제 14 항에 있어서,상기 디바이스를 부팅할 때, 상기 복수의 블록들 전체에 대한 무결성이 검증되는 것을 특징으로 하는 하드웨어 보안모듈
|
16 |
16
제 14 항에 있어서,상기 MCU로부터 보안 기능 호출을 수신할 때, 상기 복수의 블록들 중에서 어느 하나의 블록에 대한 무결성이 검증되는 것을 특징으로 하는 하드웨어 보안모듈
|
17 |
17
제 16 항에 있어서,상기 어느 하나의 블록에 대응하는 블록 번호를 생성하는 난수 발생기를 더 포함하는 하드웨어 보안모듈
|
18 |
18
제 14 항에 있어서,상기 복수의 블록들의 각각의 무결성을 검증하기 위한 블록 범위는 디바이스에 따라 서로 다르게 설정되는 것을 특징으로 하는 하드웨어 보안모듈
|
19 |
19
실행 코드의 무결성을 검증하는 디바이스에 있어서,상기 디바이스를 제조할 때 상기 실행 코드를 복수의 블록들로 분할하고, 상기 분할된 블록들에 대응하는 해시값들을 생성하는 마이크로 콘트롤 유닛; 및상기 디바이스를 제조할 때 상기 생성된 해시값들을 저장하고, 상기 실행 코드를 부팅할 때 상기 마이크로 콘트롤 유닛으로부터 상기 복수의 블록들 중에서 적어도 하나의 해시값을 수신하고, 상기 수신된 해시값과 상기 저장된 해시값들 중에서 상기 수신된 해시값에 대응하는 해시값을 비교하고, 상기 비교 결과에 따라 상기 실행 코드의 무결성을 검증하는 하드웨어 보안모듈을 포함하는 디바이스
|
20 |
20
제 19 항에 있어서,상기 복수의 블록들의 블록 범위는 상기 하드웨어 보안모듈의 난수 발생기에서 생성된 적어도 하나의 옵셋 값을 이용하여 디바이스 별로 다르게 설정되는 것을 특징으로 하는 디바이스
|