KR100932276B1 - 보안 모듈의 업그레이드 장치 및 그 방법 - Google Patents

보안 모듈의 업그레이드 장치 및 그 방법 Download PDF

Info

Publication number
KR100932276B1
KR100932276B1 KR1020070126033A KR20070126033A KR100932276B1 KR 100932276 B1 KR100932276 B1 KR 100932276B1 KR 1020070126033 A KR1020070126033 A KR 1020070126033A KR 20070126033 A KR20070126033 A KR 20070126033A KR 100932276 B1 KR100932276 B1 KR 100932276B1
Authority
KR
South Korea
Prior art keywords
upgrade
integrity
verification data
integrity verification
data
Prior art date
Application number
KR1020070126033A
Other languages
English (en)
Other versions
KR20090059275A (ko
Inventor
김학두
주홍일
전성익
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070126033A priority Critical patent/KR100932276B1/ko
Publication of KR20090059275A publication Critical patent/KR20090059275A/ko
Application granted granted Critical
Publication of KR100932276B1 publication Critical patent/KR100932276B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

본 발명은 보안 모듈의 업그레이드 장치 및 그 방법에 관한 것이다.
본 발명에서는, 정보 보안과 관련된 보안 모듈의 실행 코드를 생성하며, 생성된 실행 코드의 무결성 검증 데이터를 생성한다. 그리고, 무결성 검증 데이터를 측정한 후, 측정된 결과인 무결성 측정 데이터와 무결성 검증 데이터가 서로 일치하는지를 비교함으로써, 1차적인 무결성 검증 과정을 수행한다. 이어, 검증 결과 두 데이터가 서로 일치하면, 무결성 검증 데이터를 메모리에 임시 저장한다. 그리고, 저장된 무결성 검증 데이터를 이용하여 새로 생성된 실행 코드의 무결성을 다시 한 번 검증한다. 이때, 검증 결과 두 데이터가 서로 일치하지 않으면, 현재 사용 중인 실행 코드를 복원한다.
이를 통해, 보안성이 고려된, 안전한 보안 모듈의 업그레이드 방법을 제공할 수 있다.
Figure R1020070126033
보안 모듈, 정보 보안, 실행 코드, 업그레이드, 보안성, 무결성

Description

보안 모듈의 업그레이드 장치 및 그 방법{A SECURITY MODULE UPGRADE APPARATUS AND METHOD}
본 발명은 보안 모듈의 업그레이드 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 플랫폼에 장착되는 보안 모듈의 업그레이드 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-041-02, 과제명: 차세대 모바일 단말기의 보안 및 신뢰 서비스를 위한 공통 보안 핵심 모듈 개발].
보안 모듈(Security Module)이란 플랫폼(Platform)에 장착되는 소프트웨어 또는 하드웨어 모듈로서, 플랫폼의 보안을 책임지는 모듈이다.
구체적으로, 보안 모듈은 그 내부에 암호 처리 코프로세서, 프로세서, 휘발성/비 휘발성 메모리, 입출력(I/O) 모듈 및 타이머를 내장하고 있다. 그리고, 플랫폼의 무결성 검증 및 플랫폼 인증을 가능하게 하며, 플랫폼의 보안 영역을 설정할 수 있는 방법 등을 제공한다. 이처럼, 보안 모듈은 플랫폼의 보완과 관련된 다양한 기능을 제공한다.
그런데, 일반적으로 연산을 수행하는 칩이 내부 오류가 발생하거나, 새로운 기능이 추가되기 위해서는, 칩 내부의 펌웨어(Firmware)에 대한 업그레이드 방법을 제공해야 한다.
참고로, 펌웨어란 롬(ROM) 또는 비 휘발성 메모리에 저장된 하드웨어를 제어하는 프로그램을 의미한다. 프로그램이라는 관점에서는 소프트웨어와 동일하지만, 하드웨어와 밀접한 관계를 가지고 있다는 점에서 일반 응용 소프트웨어와 구분된다.
그러나, 대부분이 칩이 제공하는 펌웨어에 대한 업그레이드 방법은 보안적인 측면이 고려되지 않은 방법들이 대다수이다. 이는 곧, 관계자 및 사용자로 하여금 보안과 관련된 각종 문제점들을 피할 수 없도록 만든다.
이와 관련하여, 보안 모듈 역시 내부의 오류 발생이나 또는 새로운 기능을 추가하기 위해, 펌웨어에 대한 업그레이드 방법을 제공해야 한다. 그런데, 보안 모듈이 제공하는 방법 역시, 대부분의 일반 칩이 제공하는 방법과 동일하거나 유사하다. 즉, 보안성이 고려되지 않은 업그레이드 방법들을 제공할 경우, 관계자 및 사용자로 하여금 보안상의 곤란을 겪게 만든다.
따라서, 보안 모듈 내부의 오류 발생이나 새로운 기능 추가시, 보안성을 고려한 펨웨어의 업그레이드 제공 방안이 현실적으로 필요한 실정이다.
본 발명이 이루고자 하는 기술적 과제는 보안 모듈의 실행 코드를 안전하게 업그레이드(Upgrade)할 수 있는 장치 및 그 방법을 제공하기 위한 것이다.
이러한 목적을 달성하기 위한 본 발명의 특징에 따른 보안 모듈의 업그레이드 방법은, 적어도 하나의 실행 코드를 생성한 후, 상기 생성된 실행 코드인 업그레이드 실행 코드의 무결성 검증 데이터를 생성하는 단계; 상기 생성된 무결성 검증 데이터를 측정하는 단계; 상기 측정된 결과인 무결성 측정 데이터와 상기 생성된 무결성 검증 데이터가 서로 일치하는지를 비교하는 단계; 상기 무결성 측정 데이터 및 상기 무결성 검증 데이터가 서로 일치하면, 상기 무결성 검증 데이터를 메모리에 저장하는 단계; 및 상기 저장된 무결성 검증 데이터를 이용하여 상기 생성된 업그레이드 실행 코드의 무결성을 검증하는 단계를 포함한다.
또한, 본 발명의 다른 특징에 따른 보안 모듈의 업그레이드 장치는, 생성된 무결성 검증 데이터 및 상기 무결성 검증 데이터를 측정한 결과인 무결성 측정 데이터를 전달 받으며, 상기 전달 받은 두 데이터가 서로 일치하는지를 비교하는 업데이트 수행부; 및 상기 두 데이터가 서로 일치하면, 상기 무결성 검증 데이터를 메모리에 저장하며, 상기 저장된 무결성 검증 데이터를 이용하여 생성된 실행 코드인 업그레이드 실행 코드의 무결성을 검증하는 다운로드 수행부를 포함한다.
본 발명에 따르면, 정보 보안과 관련하여 현재 사용 중인 실행 코드의 업그레이드를 수행하기 전에 또는 수행 중에, 새로 생성된 실행 코드의 무결성(Integrity)을 적어도 두 번 이상 검증한다. 이를 통해, 보안성이 고려된 안전한 방법으로 보안 모듈의 실행 코드를 업그레이드할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
먼저, 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치에 대해 알아본다.
도 1은 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치를 도시한 도 면이다.
도 1에 도시되어 있듯이, 먼저 본 발명이 적용되는 시스템(100)은 플랫폼(110) 및 보안 모듈의 업그레이드 장치(200)를 포함하며, 운영부(300)는 시스템(100) 외부에 위치한다.
그리고, 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치(200)는 업그레이드 수행부(210), 다운로드 수행부(220), 휘발성 메모리(230), 비 휘발성 메모리(240), 암호화부(250), 프로세서(260) 및 센서(270)를 포함한다.
구체적으로, 운영부(300)는 적어도 하나의 실행 코드(설명의 편의를 위하여 이하 '업그레이드 실행 코드'라 함)를 생성하며, 생성된 업그레이드 실행 코드에 버전을 부여한다.
그리고, 운영부(300)는 생성된 업그레이드 실행 코드를 토대로 무결성 검증 데이터를 생성하며, 생성된 무결성 검증 데이터에 대해 운영자의 검증 데이터를 이용하여 암호화를 수행한다. 이는, 업그레이드에 대한 실수 방지와 함께, 업그레이드 실행 코드에 대한 생산자를 검증하기 위함이다.
또한, 운영부(300)는 업그레이드 실행 코드, 업그레이드 실행 코드의 버전 및 암호화된 무결성 검증 데이터를 포함하는 업그레이드 명령 메시지를 생성한 후, 생성된 업그레이드 명령 메시지를 플랫폼(110)으로 전송한다.
플랫폼(110)은 운영부(300)로부터 수신되는 업그레이드 명령 메시지에 따라, 업그레이드 실행 코드에 대해 무결성을 측정한다. 그리고, 측정된 결과인, 무결성 측정 데이터, 업그레이드 실행 코드의 버전 및 암호화된 무결성 검증 데이터를 포 함하는 업그레이드 명령 메시지를 보안 모듈의 업그레이드 장치(200)로 전송한다.
보안 모듈의 업그레이드 장치(200)는 수신된 업그레이드 명령 메시지에 따라, 소유자 권한 검증을 수행하며, 암호화된 무결성 검증 데이터를 복호화한다. 이어, 복호화된 무결성 검증 데이터와 무결성 측정 데이터를 상호 비교한 후, 비교 결과 두 데이터가 서로 일치하면, 복호화된 무결성 검증 데이터를 휘발성 메모리(230)에 임시 저장한다.
구체적으로, 업그레이드 수행부(210)는 소유자 권한 검증을 수행하며, 암호화된 무결성 검증 데이터를 운영자의 권한 데이터를 이용하여 복호화한다.
그리고, 업그레이드 수행부(210)는 복호화된 무결성 검증 데이터 및 무결성 측정 데이터를 상호 비교한 후, 비교 결과 일치하면 무결성이 검증된 것을 판단한다. 이어, 검증된 무결성 검증 데이터를 휘발성 메모리(230)에 임시 저장한다.
다운로드 수행부(220)는 현재의 실행 코드(설명의 편의를 위하여 이하 '현재 실행 코드'라 함)를 플랫폼(110)으로 전달하며, 전달된 현재 실행 코드에 대한 응답 신호로서, 플랫폼(110)으로부터 업그레이드 실행 코드를 전달 받는다.
이때, 업그레이드 실행 코드는 바이트 또는 블록 단위로 수신되며, 다운로드 수행부(220)는 수신된 업그레이드 실행 코드를 휘발성 메모리(230)의 버퍼(미도시)에 저장한다.
그리고, 다운로드 수행부(220)는 전달 받은 실행 코드에 대해, 휘발성 메모리(230)에 저장된 무결성 검증 데이터를 이용하여 다시 한 번 무결성 검증 과정을 수행한다.
휘발성 메모리(230)는 앞서 언급한 바와 같이, 업그레이드 실행 코드 및, 업그레이드 실행 코드에 대한 무결성 검증 코드가 저장된다.
비 휘발성 메모리(230)는 실행 코드에 대한 업그레이드 과정이 완료되면, 휘발성 메모리(230)에 저장된 무결성 검증 코드가 이동 저장된다. 이는, 추후 업그레이드가 실패할 경우, 현재 실행 코드를 복원해야 하는데, 그때 이동 저장된 무결성 검증 코드를 이용하여 현재 실행 코드의 무결성을 검증하여 복원한다.
암호화부(250)는 고속의 암호화를 수행하며, 프로세서(260)는 내부의 실행 코드(현재 또는 업그레이드 실행 코드)를 실행한다. 그리고, 센서(270)는 물리적인 해킹을 방지한다.
이처럼, 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치(200)는 시스템의 정보 보안과 관련하여 현재 사용 중인 실행 코드를 업그레이드하기 전에, 새롭게 생성한 업그레이드 실행 코드의 무결성(Integrity)을 적어도 두 번 이상 검증한다.
이에 따라, 본 발명의 실시 예는 보안성을 고려한 실행 코드의 업그레이드 방법을 시스템 사용자 및 관계자에게 제공할 수 있다.
그러면, 위에 기술된 구조로 이루어지는 보안 모듈의 업그레이드 장치를 토대로, 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 방법에 대해 설명한다.
도 2는 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 과정을 대략적으로 도시한 흐름도이다.
도 2에 도시되어 있듯이, 먼저 운영부(300)는 업그레이드 실행 코드를 생성 하며, 생성된 업그레이드 실행 코드에 버전을 부여한다. 그리고, 생성된 업그레이드 실행 코드를 토대로 무결성 검증 데이터를 생성한다. 참고로, 생성된 업그레이드 실행 코드에 대한 표시 예가 첨부된 도 3이다.
도 3은 본 발명의 실시 예에 따른 업그레이드 실행 코드의 전체 메시지 구조를 도시한 도면이다.
도 3에 도시되어 있듯이, 메시지는 전체 길이(310) 및 업그레이드 실행 코드(320)를 포함한다. 운영부(300)는 이러한 구성의 메시지를 이용하여 무결성 검증 데이터를 생성한다.
이후, 운영부(300)는 생성된 무결성 검증 데이터에 대해 운영자의 검증 데이터를 이용하여 암호화한다(S201).
그리고, 운영부(300)는 업그레이드 실행 코드, 업그레이드 실행 코드의 버전 및 암호화된 무결성 검증 데이터를 포함하는 업그레이드 명령 메시지를 생성한 후, 생성된 업그레이드 명령 메시지를 플랫폼(110)으로 전송한다(S202).
그러면, 플랫폼(110)은 운영부(300)로부터 수신되는 업그레이드 명령 메시지에 따라, 업그레이드 실행 코드에 대해 무결성을 측정한다. 그리고, 측정된 결과인, 무결성 측정 데이터를 포함하는 업그레이드 명령 메시지를 보안 모듈의 업그레이드 장치(200)로 전송한다(S203, S204). 참고로, 업그레이드 명령 메시지에 대한 표시 예가 첨부된 도 4이다.
도 4는 본 발명의 실시 예에 따른 업그레이드 명령 메시지의 구성을 도시한 도면이다.
도 4에 도시되어 있듯이, 본 발명의 실시 예에 따른 업그레이드 명령 메시지는 업그레이드 실행 코드에 대한 무결성 측정 결과인 무결성 측정 데이터(IntegrityCode), 업그레이드 실행 코드의 버전(ver) 및 암호화된 무결성 검증 데이터(encIntegrityCode)를 포함한다.
그리고, 소유자에 대한 권한 검증 코드(authHandle, nonceOdd, continue AuthSession, authData)도 포함한다.
이후, 보안 모듈의 업그레이드 장치(200)의 업그레이드 수행부(210)는 플랫폼(110)으로부터 수신된 업그레이드 명령 메시지에 따라, 소유자 권한 검증을 수행하며, 암호화된 무결성 검증 데이터를 운영자의 권한 데이터를 이용하여 복호화한다.
그리고, 업그레이드 수행부(210)는 복호화된 무결성 검증 데이터 및 무결성 측정 데이터를 상호 비교한 후, 비교 결과 일치하면 무결성이 1차 검증된 것을 판단한다. 이어, 1차 검증된 무결성 검증 데이터를 휘발성 메모리(230)에 임시 저장한다(S205).
이후, 다운로드 수행부(220)는 현재 실행 코드를 플랫폼(110)으로 전달(S208)하며, 전달된 현재 실행 코드에 대한 응답 신호로서, 플랫폼(110)으로부터 업그레이드 실행 코드를 전달 받는다(S209).
이후, 다운로드 수행부(220)는 전달 받은 실행 코드에 대해, 휘발성 메모리(230)에 저장된 무결성 검증 데이터를 이용하여 다시 한 번 무결성 검증 과정을 수행한다(S210).
2차 검증 결과, 업그레이드 실행 코드에 대한 무결성이 검증되지 않으면, 다운로드 수행부(220)는 현재 실행 코드를 다시 복원하거나, 업그레이드 과정을 다시 시도한다.
반면, 2차 검증 결과 업그레이드 실행 코드에 대한 무결성이 검증되면, 다운로드 수행부(220)는 업그레이드 실행 코드에 대한 무결성 검증 과정이 완료되었음을 알리는 메시지인, 완료 응답 메시지를 플랫폼(110)으로 전송한다(S210). 이에 대한 표시 예가 첨부된 도 5이다.
도 5는 본 발명의 실시 예에 따른 완료 응답 메시지의 구성을 도시한 도면이다.
도 5에 도시되어 있듯이, 본 발명의 실시 예에 따른 완료 응답 메시지는 다운로드 수행부(220)가 수행한 무결성 검증 결과를 포함한다.
여기서, 본 발명의 실시 예에 따른 업그레이드 수행부(210)의 동작 과정에 대해 좀 더 구체적으로 알아본다.
도 6은 도 1에 도시된 업그레이드 수행부의 동작 과정을 순차적으로 도시한 흐름도이다.
도 6에 도시되어 있듯이, 먼저 업그레이드 수행부(210)는 플랫폼(110)으로부터 업그레이드 명령 메시지를 수신(S601)한 후, 수신된 업그레이드 명령 메시지에 따라 소유자 권한 검증을 수행한다(S602).
이때, 소유자 권한 검증이 실패하면, 업그레이드 수행부(210)는 그 실패 결과를 플랫폼(110)으로 알린다(S603).
반면, 소유자 권한 검증이 성공하면, 업그레이드 수행부(210)는 현재 실행 코드의 버전과 업그레이드 실행 코드의 버전을 상호 비교한다(S604). 비교 결과, 현재 실행 코드의 버전이 더 높으면, 업그레이드 수행부(210)는 현재 실행 코드에 대한 업그레이드가 불필요함을 플랫폼으로 알린다(S605).
반면, 비교 결과 현재 실행 코드에 대한 업그레이드가 필요하면, 업그레이드 수행부(210)는 앞서 암호화된 무결성 검증 데이터에 대해 운영자의 권한 데이터를 이용하여 복호화를 수행한다(S606).
이후, 업그레이드 수행부(210)는 복호화된 무결성 검증 데이터와 무결성 측정 데이터를 상호 비교한다(S607). 비교 결과, 일치하면 무결성이 검증된 것을 판단한다. 이어, 검증된 무결성 검증 데이터를 휘발성 메모리(230)에 임시 저장한다(S608).
그리고, 업그레이드 수행부(210)는 검증 결과에 관한 메시지를 플랫폼(110)으로 전송한다(S609).
다음, 본 발명의 실시 예에 따른 다운로드 수행부(220)의 동작 과정에 대해 자세히 알아본다.
도 7은 도 1에 도시된 다운로드 수행부의 동작 과정을 순차적으로 도시한 흐름도이다.
도 7에 도시되어 있듯이, 먼저 다운로드 수행부(220)는 현재 실행 코드를 플랫폼(110)으로 전달한 후, 전달된 현재 실행 코드에 대한 응답 신호로서, 플랫폼(110)으로부터 업그레이드 실행 코드를 전달 받는다(S701).
이후, 다운로드 수행부(220)는 전달 받은 실행 코드를 실행 영역에 저장함과 동시에, 휘발성 메모리(230)의 버퍼에 저장한다(S702). 이때, 버퍼의 용량이 다 채워지면(S703), 다운로드 수행부(220)는 버퍼의 값을 해시(HASH) 값으로 추가한다(S704).
이후, 해당 버퍼에 실행 코드가 저장 완료(S705)되면, 다운로드 수행부(220)는 필요할 경우, 버퍼의 값을 해시 값으로 추가한다(S706).
이후, 다운로드 수행부(220)는 휘발성 메모리(230)에 저장된 무결성 검증 데이터를 이용하여 업그레이드 실행 코드에 대한 무결성 검증 과정을 수행한다(S707).
검증 결과, 업그레이드 실행 코드에 대한 무결성이 검증되면, 다운로드 수행부(220)는 업그레이드 실행 코드에 대한 무결성 검증 과정이 완료되었음을 알리는 메시지인, 완료 응답 메시지를 플랫폼(110)으로 전송한다(S708).
반면, 검증 결과 업그레이드 실행 코드에 대한 무결성이 검증되지 않으면, 다운로드 수행부(220)는 현재 실행 코드를 다시 복원하거나, 업그레이드 과정을 다시 시도한다. 그리고, 그 수행 결과를 플랫폼으로 알려준다(S709).
이처럼, 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치는 새로 생성된 업그레이드 실행 코드의 무결성을 적어도 두 번 이상 검증함으로써, 보안성이 고려된, 안전한 실행 코드의 업그레이드 방법을 제공할 수 있다.
이상에서 설명한 본 발명의 실시 예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또 는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구 범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도 1은 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 장치를 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 보안 모듈의 업그레이드 과정을 대략적으로 도시한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 업그레이드 실행 코드의 전체 메시지 구조를 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 업그레이드 명령 메시지의 구성을 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 완료 응답 메시지의 구성을 도시한 도면이다.
도 6은 도 1에 도시된 업그레이드 수행부의 동작 과정을 순차적으로 도시한 흐름도이다.
도 7은 도 1에 도시된 다운로드 수행부의 동작 과정을 순차적으로 도시한 흐름도이다.

Claims (7)

  1. 적어도 하나의 실행 코드를 생성한 후, 상기 생성된 실행 코드인 업그레이드 실행 코드의 무결성 검증 데이터를 생성하는 단계;
    상기 생성된 무결성 검증 데이터를 측정하는 단계;
    상기 측정된 결과인 무결성 측정 데이터와 상기 생성된 무결성 검증 데이터가 서로 일치하는지를 비교하는 단계;
    상기 무결성 측정 데이터 및 상기 무결성 검증 데이터가 서로 일치하면, 상기 무결성 검증 데이터를 메모리에 저장하는 단계; 및
    상기 저장된 무결성 검증 데이터를 이용하여 상기 생성된 업그레이드 실행 코드의 무결성을 검증하는 단계
    를 포함하는 보안 모듈의 업그레이드 방법.
  2. 제1 항에 있어서,
    상기 무결성 측정 데이터 및 상기 무결성 검증 데이터가 서로 불일치하면, 상기 실행 코드를 복원하는 단계
    를 더 포함하는 보안 모듈의 업그레이드 방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 무결성 검증 데이터를 생성하는 단계는,
    상기 생성된 업그레이드 실행 코드에 버전을 부여하는 단계; 및
    상기 생성된 무결성 검증 데이터를 운영자의 검증 데이터를 이용하여 암호화하는 단계
    를 포함하는 보안 모듈의 업그레이드 방법.
  4. 제3 항에 있어서,
    상기 비교하는 단계는,
    상기 버전이 부여된 업그레이드 실행 코드의 소유자 권한 검증을 수행하는 단계; 및
    상기 암호화된 무결성 검증 데이터를 운영자의 권한 데이터를 이용하여 복호화하는 단계
    를 포함하는 보안 모듈의 업그레이드 방법.
  5. 생성된 무결성 검증 데이터 및 상기 무결성 검증 데이터를 측정한 결과인 무결성 측정 데이터를 전달 받으며, 상기 전달 받은 두 데이터가 서로 일치하는지를 비교하는 업데이트 수행부; 및
    상기 두 데이터가 서로 일치하면, 상기 무결성 검증 데이터를 메모리에 저장하며, 상기 저장된 무결성 검증 데이터를 이용하여 생성된 실행 코드인 업그레이드 실행 코드의 무결성을 검증하는 다운로드 수행부
    를 포함하는 보안 모듈의 업그레이드 장치.
  6. 제5 항에 있어서,
    상기 메모리에 저장된 무결성 검증 데이터가 이동 저장되는 비휘발성 메모리
    를 더 포함하며,
    상기 다운로드 수행부는, 상기 두 데이터가 서로 불일치하면 상기 비휘발성 메모리에 저장된 무결성 검증 데이터를 이용하여 상기 실행 코드의 무결성을 검증하는 보안 모듈의 업그레이드 장치.
  7. 제6 항에 있어서,
    상기 업데이트 수행부는, 상기 전달 받은 무결성 검증 데이터를 운영자의 권한 데이터를 이용하여 복호화하는 보안 모듈의 업그레이드 장치.
KR1020070126033A 2007-12-06 2007-12-06 보안 모듈의 업그레이드 장치 및 그 방법 KR100932276B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070126033A KR100932276B1 (ko) 2007-12-06 2007-12-06 보안 모듈의 업그레이드 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070126033A KR100932276B1 (ko) 2007-12-06 2007-12-06 보안 모듈의 업그레이드 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20090059275A KR20090059275A (ko) 2009-06-11
KR100932276B1 true KR100932276B1 (ko) 2009-12-16

Family

ID=40989414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070126033A KR100932276B1 (ko) 2007-12-06 2007-12-06 보안 모듈의 업그레이드 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100932276B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050106846A (ko) * 2004-05-06 2005-11-11 삼성전자주식회사 휴대단말기 펌웨어를 업그레이드하기 위한 장치와 방법
US20050283777A1 (en) 2004-06-17 2005-12-22 Karl Osen Secure method to update software in a security module
US20060174242A1 (en) 2005-02-01 2006-08-03 Microsoft Corporation Publishing the status of and updating firmware components
KR20070040896A (ko) * 2005-10-13 2007-04-18 재단법인 그래픽스연구원 변조방지 하드웨어에 기반한 자가 무결성 검증 기법을이용한 시스템 인증 및 보안성 강화 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050106846A (ko) * 2004-05-06 2005-11-11 삼성전자주식회사 휴대단말기 펌웨어를 업그레이드하기 위한 장치와 방법
US20050283777A1 (en) 2004-06-17 2005-12-22 Karl Osen Secure method to update software in a security module
US20060174242A1 (en) 2005-02-01 2006-08-03 Microsoft Corporation Publishing the status of and updating firmware components
KR20070040896A (ko) * 2005-10-13 2007-04-18 재단법인 그래픽스연구원 변조방지 하드웨어에 기반한 자가 무결성 검증 기법을이용한 시스템 인증 및 보안성 강화 방법

Also Published As

Publication number Publication date
KR20090059275A (ko) 2009-06-11

Similar Documents

Publication Publication Date Title
EP3458999B1 (en) Self-contained cryptographic boot policy validation
US7849331B2 (en) Program update method and server
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
TWI567579B (zh) 用於對硬體裝置提供金鑰的方法和設備
US8627086B2 (en) Secure loading and storing of data in a data processing device
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US20150186679A1 (en) Secure processor system without need for manufacturer and user to know encryption information of each other
TWI613900B (zh) 保全裝置以及保全方法
US20200272745A1 (en) Security Data Processing Device
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
WO2015042981A1 (zh) 加解密处理方法、装置和设备
CN110795126A (zh) 一种固件安全升级系统
EP2503482A1 (en) Electronic device with flash memory component
US20060150246A1 (en) Program execution control device, OS, client terminal, server, program execution control system, program execution control method and computer program execution control program
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
JP2016146618A (ja) 情報処理装置
WO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
KR100932276B1 (ko) 보안 모듈의 업그레이드 장치 및 그 방법
CN113343215A (zh) 嵌入式软件的授权和认证方法及电子设备
CN114297679B (zh) 一种镜像加密传输与升级的方法
CN114006695B (zh) 硬盘数据保护方法、装置、可信平台芯片及电子设备
CN116257839A (zh) 升级签名固件的方法、电子设备和存储介质
JP2023164669A (ja) 情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム
JP4580030B2 (ja) セキュアデバイス
CN115688134A (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
LAPS Lapse due to unpaid annual fee