KR100881025B1 - 보안 데이터를 관리하는 장치 및 그 방법 - Google Patents

보안 데이터를 관리하는 장치 및 그 방법 Download PDF

Info

Publication number
KR100881025B1
KR100881025B1 KR1020060109495A KR20060109495A KR100881025B1 KR 100881025 B1 KR100881025 B1 KR 100881025B1 KR 1020060109495 A KR1020060109495 A KR 1020060109495A KR 20060109495 A KR20060109495 A KR 20060109495A KR 100881025 B1 KR100881025 B1 KR 100881025B1
Authority
KR
South Korea
Prior art keywords
security data
data
recorded
page
security
Prior art date
Application number
KR1020060109495A
Other languages
English (en)
Other versions
KR20080041420A (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 KR1020060109495A priority Critical patent/KR100881025B1/ko
Priority to US11/782,769 priority patent/US20080109904A1/en
Priority to JP2007268125A priority patent/JP4824657B2/ja
Priority to CN2007101675502A priority patent/CN101179795B/zh
Publication of KR20080041420A publication Critical patent/KR20080041420A/ko
Application granted granted Critical
Publication of KR100881025B1 publication Critical patent/KR100881025B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Abstract

본 발명은 보안 데이터를 관리하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 OTP(One-Time-Programmable) 블록에 저장된 보안 데이터를 관리하는 장치 및 그 방법에 관한 것이다.
본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치는, 보안 데이터 및 보안 데이터의 인버트된 값을 함께 기록하며, 상기 기록 중 전원이 중단되면, 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록하는 보안 데이터 기록부와, 상기 보안 데이터와 보안 데이터의 인버트된 값을 체크하여 상기 보안 데이터가 유효한 보안 데이터인지 판단하는 보안 데이터 체크부와, 상기 판단 결과 유효한 보안 데이터가 아닌 경우, 상기 기 기록된 보안 데이터가 상기 새로운 보안 데이터에 대한 부분 기록인지를 판단하는 오류 판단부를 포함한다.
OTP 블록, 보안 데이터, 전원 중단

Description

보안 데이터를 관리하는 장치 및 그 방법{Apparatus and method for managing data security}
도 1은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치의 내부 블록도를 나타낸 도면.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치에서 저장부의 내부 구조를 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치에서 유효하지 않은 보안 데이터가 저장된 원인을 판단하는 과정을 나타낸 도면.
도 4는 본 발명의 다른 실시예에 따른 보안 데이터를 관리하는 장치에서 유효하지 않은 보안 데이터가 저장된 원인을 판단하는 과정을 나타낸 도면.
도 5는 본 발명의 다른 실시예에 따른 보안 데이터를 관리하는 장치에서 부분 기록 여부를 체크하는 테이블을 나타낸 도면.
도 6은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 방법 중 보안 데이터를 기록하는 과정을 나타낸 순서도.
도 7은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 방법을 나타낸 순서도.
<도면의 주요 부분에 관한 부호의 설명>
100 : 보안 데이터 관리 장치 110 : 보안 데이터 기록부
120 : 보안 데이터 체크부 130 : 오류 판단부
140 : 저장부 150 : 제어부
본 발명은 보안 데이터를 관리하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 OTP(One-Time-Programmable) 블록에 저장된 보안 데이터를 관리하는 장치 및 그 방법에 관한 것이다.
최근 모바일 폰과 같은 모바일 기기에도 바이러스, 웜 및 해커의 공격 사례가 종종 발생하고 있다. 이에, 프로그램 이미지가 공격에 의해 불법적으로 훼손/변경되는 것을 막기 위해, 부팅 시에 이를 감지하여 부팅을 중단시킴으로써 해커의 공격을 막는 방식이 사용되고 있다.
프로그램 이미지의 불법적인 훼손/변경을 탐지하기 위한 방법으로 공개키를 이용한 전자 서명 기법이 널리 이용되고 있다. 전자 서명 기법은 저장된 프로그램 이미지와 전자 서명이 일치하는지 여부를 검사하여 불법적인 훼손/변경을 탐지할 수 있다. 만일, 비정상적인 전자 서명이 존재하거나, 저장된 프로그램 이미지와의 인증 검사에서 서명이 일치하지 않은 경우, 해커에 의해 공격당했다고 판단하게 된다.
일반적으로, 플래시 메모리에 저장된 프로그램 이미지를 안전하게 보호하기 위해 프로그램 이미지에 대한 전자 서명을 플래시 메모리의 OTP(One-Time-Programmable) 블록에 저장한다. OTP 블록은 블록 지우기가 되지 않는 블록이므로, 한번 0에서 1로 기록한 데이터는 다시 1로 수정할 수 없다. 따라서, 사용자는 OTP 블록에 데이터를 기록할 때 주의를 기울여야 한다. 만일, OTP블록에 데이터를 기록하는 도중 전원이 중단되어 완전히 기록을 하지 못한 경우, OTP 블록에는 비정상적인 전자 서명이 존재하게 된다.
종래에 모바일 디바이스에 저장된 프로그램 이미지의 무결성 확인을 위해서, 프로그램 이미지의 전자 서명을 함께 저장해둔 다음, 부팅 시에 저장되어 있는 프로그램 이미지로 다이제스트를 계산하고, 저장되어 있던 전자 서명을 복호화하여 얻은 다이제스트와 서로 비교하여 일치하는지 확인한다. 비교 결과 서로 일치하지 않는다면, 저장되어 있는 프로그램 이미지는 누군가에 의해 훼손/변경된 것으로 간주하여 부팅을 중단한다.
비정상적인 전자 서명이 기록되어 있는 경우, 시큐어 부팅(Secure Booting) 프로그램은 누군가에 의해 훼손/변경된 것으로 간주하여 부팅을 중단한다. 그런데, 전자 서명을 저장하는 도중 전원이 중단되면 비정상적인 전자서명을 기록하게 될 수 있다. 이 경우에도 시큐어 부팅 프로그램은 프로그램 이미지가 훼손/변경된 것으로 간주하게 된다. 한편, OTP 블록에 잘못 기록한 전자 서명은 OTP의 특성상 수정이 불가능하므로, 다시 지울 수 없다. 만일, OTP 블록에 비정상적인 전자 서명을 기록하였다면, 더 이상 해당 OTP 블록은 사용할 수 없으며, 해당 플래시 메모리 디바이스를 더 이상 사용할 수 없다는 문제점 있다.
이에, 갑작스런 전원 중단에 의해 잘못 기록한 전자 서명의 경우와 해킹에 의해 수정된 전자 서명과 구분하여 전원 중단에 의해 잘못 기록한 전자 서명의 경우는 무시할 수 있는 방법이 필요하며, 상기와 같은 문제점을 해결하지 못할 경우, 전원 중단으로 전자 서명을 잘못 기록할 때마다 플래시 메모리 디바이스를 교체해야 하는 문제점이 있다.
한국공개특허 2005-108637(메인 데이터를 안전하게 로딩하기 위한 메모리 시스템 및 메인 데이터 로딩 방법)은 메인(main) 데이터 및 더미(spare) 데이터를 저장하는 메모리와, 상기 더미 데이터와 동일한 데이터를 저장하며, 파워-업 시 상기 메모리로부터 상기 더미 데이터를 로딩하는 컨트롤러를 포함하는데, 상기 컨트롤러는 상기 로딩된 더미 데이터가 내부에 저장된 데이터와 일치할 때 상기 메인 데이터를 로딩하는 기술을 개시하고 있으나, 이는 유효하지 않은 보안 데이터가 OTP 블록에 저장된 경우, 전원 중단에 의해 유효하지 않은 보안 데이터가 기록되었음을 판단하는 기술에 대해서 전혀 언급하고 있지 않다.
본 발명은 OTP 블록에 기록된 보안 데이터를 관리하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치는, 보안 데이터 및 보안 데이터의 인버트된 값을 함께 기록하며, 상기 기록 중 전원이 중단되면, 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록하는 보안 데이터 기록부와, 상기 보안 데이터와 보안 데이터의 인버트된 값을 체크하여 상기 보안 데이터가 유효한 보안 데이터인지 판단하는 보안 데이터 체크부와, 상기 판단 결과 유효한 보안 데이터가 아닌 경우, 상기 기 기록된 보안 데이터가 상기 새로운 보안 데이터에 대한 부분 기록인지를 판단하는 오류 판단부를 포함한다.
또한, 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 방법은, 보안 관리 장치가 OTP 블록에 저장된 보안 데이터를 관리하는 방법에 있어서, 상기 OTP 블록의 제1 페이지에 기록된 보안 데이터의 유효성을 판단하는 단계와, 상기 판단 결과 유효하지 않은 보안 데이터인 경우, 유효한 보안 데이터를 검색하는 단계와, 상기 제1 페이지에 기록된 보안 데이터가 상기 검색된 유효한 보안 데이터에 대한 부분 기록인지 판단하는 단계와, 상기 판단 결과 부분 기록인 경우, 상기 제1 페이지에 기록된 보안 데이터가 전원 중단에 의해 보안 데이터가 변경된 것으로 판단하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태 로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치의 내부 블록도를 나타낸 도면이다.
도시된 바와 같이, 보안 데이터 관리 장치(100)는 보안 데이터 기록부(110), 보안 데이터 체크부(120), 오류 판단부(130), 저장부(140) 및 제어부(150)를 포함하여 구성된다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.
보안 데이터 기록부(110)는 저장부(140)의 OTP 블록에 보안 데이터 및 보안 데이터의 인버트된 값(invert value)을 함께 기록한다. 여기서, 보안 데이터는 소정 프로그램의 불법적인 훼손/변경을 방지하기 위해 이용되는 데이터로써, 예를 들어 전자 서명(electronic signature)을 말한다.
또한, 보안 데이터 기록부(110)는 보안 데이터 및 보안 데이터의 인버트된 값을 기록하는 중 전원이 중단되면, 전원 인가 시 새로운 보안 데이터(즉, 유효한 보안 데이터) 및 보안 데이터의 인버트된 값을 저장부(140)에 기록한다. 여기서, 보안 데이터의 인버트된 값을 함께 저장하는 것은 보안 데이터의 유효성을 판단하기 위해서이다.
예를 들어, 보안 데이터의 값이 '1101'인 경우, 보안 데이터의 인버트된 값은 '0010'이며, 보안 데이터 및 보안 데이터의 인버트된 값은 저장부(140)에 함께 저장된다.
보안 데이터 체크부(120)는 저장부(140)에 저장된 보안 데이터와 보안 데이터의 인버트된 값을 체크하여 인버트 관계가 성립하는지를 판단함으로써, 보안 데이터가 유효한 데이터 인지를 판단한다. 여기서, 보안 데이터와 보안 데이터의 인버트된 값이 인버트 관계가 성립하지 않은 경우, 저장부(140)에 저장된 보안 데이터가 유효하지 않은(invalid) 데이터라고 판단한다.
오류 판단부(130)는 보안 데이터 체크부(120)의 판단 결과 유효한 보안 데이 터가 아닌 경우, 유효하지 않은 보안 데이터가 기록된 원인이 전원 중단에 의한 것인지 해커에 의한 것인지를 판단한다. 상기 판단은 저장부(140)에 기록된 유효하지 않은 보안 데이터가 유효한 보안 데이터에 대한 부분 기록인지 여부를 통해 알 수 있다. 이하, 도 3및 도 4에서 유효하지 않은 보안 데이터가 기록된 원인을 판단하는 과정을 보다 자세히 설명한다.
저장부(140)는 보안 데이터 및 보안 데이터의 인버트된 값을 저장한다. 여기서, 저장부(140)는 하나 이상의 보안 데이터 및 보안 데이터의 인버트된 값을 저장할 수 있다. 이하, 도 2에서 저장부(140)의 구조를 보다 자세히 설명한다.
제어부(150)는 보안 데이터 관리 장치(100)를 구성하는 각 기능성 블록들(110 내지 140)의 동작을 제어한다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치에서 저장부의 내부 구조를 나타낸 도면이다. 여기서, 저장부(140)는 플래시 메모리를 예를 들어 설명한다.
도 2a에 도시된 바와 같이, 저장부(140)는 여러 개의 블록(block)으로 구성된다. 여기서, 블록은 플래시 메모리의 지우기 연산의 단위이며, 여러 개의 페이지(page)로 구성된다. 페이지는 플래시 메모리의 읽기/쓰기 연산의 단위이다.
또한, 블록은 지우기 가능한 블록(즉, 일반 블록)과 그렇지 않은 블록(즉, OTP 블록)이 있는데, 보통의 블록은 읽기, 쓰기 및 지우기 연산이 가능하다. 반면에, OTP 블록은 지워지지 않는 블록으로서, OTP 블록에 한번 기록한 데이터는 다시 변경할 수 없는 특징이 있다.
플래시 메모리의 초기 상태는 '1'이며, 쓰기 연산을 통해 '0'으로 기록한다. 만일, '0'으로 기록된 값을 다시 '1'로 수정하기 위해서는 블록 단위로 지우기 연산을 통해 블록 전체를 '1'로 초기화해야 한다. 즉, 한번 '0'으로 기록되면 지우기 오퍼레이션을 통해 초기화하기 전에는 다시'1'로 수정할 수 없다.
한편, 플래시 메모리는 페이지 단위로 프로그램을 수행하며, 이 때 기록되는 데이터의 단위는 비트(bit)이다. 따라서, OTP 블록의 어떤 비트를 1에서 0으로 프로그램 한 다음에는 해당 블록을 지울 수 없으므로, 다시 1로 변경할 수 없다. 이에, OTP블록은 지우기가 불가능하다는 특징 때문에 보안 데이터(예를 들어, 전자 서명)와 같은 보안 검사를 위해 안전하게 보호되어야만 하는 데이터를 저장하기 위한 용도로 OTP 블록이 사용된다.
도 2b에 도시된 바와 같이, 프로그램의 보안을 위해 저장부(140)의 소정 블록에 프로그램을 저장하고, 프로그램에 대한 보안 데이터1(예를 들어, 전자 서명1)을 저장부(140)의 OTP 블록에 저장한다. 이 후, 소정 프로그램을 갱신할 경우, 새로운 프로그램과 새로운 프로그램에 대한 보안 데이터 3을 갱신한다. 이 때, 보안 데이터는 지우기가 불가능한 OTP 블록에 저장되므로, OTP 블록에서 사용하고 있지 않은 페이지(또는 섹터)를 찾아서 새로운 보안 데이터3을 기록한다. 여기서, 유효한 최신의 보안 데이터를 쉽게 찾을 수 있도록 순차적으로 OTP 블록 내의 비어있는 페이지(또는 섹터)에 보안 데이터를 기록한다.
도 3은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 장치에서 유효하지 않은 보안 데이터가 저장된 원인을 판단하는 과정을 나타낸 도면이다. 여기 서는, 전원 중단으로 인해 보안 데이터의 기록을 완료하지 못한 경우를 설명한다.
저장부(140)의 OTP 블록에 보안 데이터를 기록할 때, 보안 데이터의 인버트된 값을 함께 기록하면 보안 데이터의 기록 도중 전원 중단이 있었는지 여부 및 해커에 의해 불법적으로 보안 데이터가 수정되었는지 여부를 알 수 있다.
즉, 소정의 보안 데이터 값과 그 값의 인버트된 값을 함께 기록한 후, 보안 데이터 및 보안 데이터의 인버트된 값을 비교하여 인버트 관계를 만족하는지를 체크하여 보안 데이터의 유효성을 판단할 수 있다. 판단 결과, 보안 데이터가 유효하지 않다면 그 원인이 전원 중단에 의한 것인지 해커에 의한 것인지를 판단해야 한다. 이하, 전원 중단으로 보안 데이터의 기록을 완료하지 못한 경우를 설명한다.
도시된 바와 같이, 개발자나 서비스 센터에서는 보안 데이터(예를 들어, 전자 서명)를 업데이트 하다가 전원이 중단되어 보안 데이터의 일부 비트들만이 기록된 경우, 기록하려고 했던 보안 데이터를 다음 페이지 혹은 섹터에 다시 기록한다.
이에, 유효하지 않은 보안 데이터는 부분 기록된 것이기 때문에 다음 페이지에 기록된 유효한 보안 데이터에서 오프셋 N번째(offset Number)의 비트 값이 '1'이면, 유효하지 않은 보안 데이터의 오프셋 N번째의 비트 값은 항상 '1'이여야 한다. 만일, 이 규칙(이하, 오프셋 규칙이라 한다)이 하나의 비트에서라도 맞지 않는다면, 이는 해커에 의해 수정된 보안 데이터로 판단할 수 있다. 도 3의 유효한 보안 데이터 '1001'에서 첫 번째 비트값과 네 번째 비트값은 1의 값을 가지는데, 유효하지 않은 보안 데이터 '1011'에서 이에 대응되는 첫 번째 비트값과 네 번째 비트값이 모두 1의 값을 가지므로 오프셋 규칙에 의해 유효하지 않은 보안 데이터는 전원의 중단에 의해 기록이 중단되었음을 판단할 수 있다.
예를 들어, OTP 블록의 제1 페이지에 보안 데이터 '1001'을 기록하려고 했으나, 전원 중단으로 '1011/1110'이 기록된 경우, OTP 블록의 다음 페이지 (즉, 제2 페이지)에 다시 유효한 보안 데이터 '1001/0110'을 기록한다.
이 후, OTP 블록의 제1 페이지에 저장된 보안 데이터의 유효성을 검사하고, 검사 결과 보안 데이터가 유효하지 않은 경우, 제2 페이지의 보안 데이터를 체크한다.
그 다음, 제1 페이지의 보안 데이터와 제2 페이지의 보안 데이터의 동일 오프셋에 대한 비트 값을 비교한다. 비교 결과 오프셋 규칙을 만족한다면, 즉 유효하지 않은 보안 데이터가 유효한 보안 데이터에 대하여 부분 기록된 것이 확실하다면, 유효하지 않은 보안 데이터는 전원 중단으로 인해 제1 페이지에 유효하지 않은 보안 데이터가 기록되었다고 판단하고, 제2 페이지에 저장된 보안 데이터에 대한 유효성 검사(즉, 인버트 관계의 성립 여부)를 수행한다.
도 4는 본 발명의 다른 실시예에 따른 보안 데이터를 관리하는 장치에서 유효하지 않은 보안 데이터가 저장된 원인을 판단하는 과정을 나타낸 도면이다. 여기서는, 해커에 의해 유효한 보안 데이터가 변경된 경우를 설명한다.
OTP 블록과 같이 지울 수 없는 블록에 기록된 보안 데이터를 해커가 훼손하는 경우, 해커는 '1'로 기록된 데이터들 중 일부를 '0'으로 변경할 수 있으며, '0'으로 기록된 데이터들은 변경할 수 없다. 이에, 보안 데이터와 보안 데이터의 인버트된 값이 함께 기록되어 있다면, 이미 '0'으로 기록되어 있는 보안 데이터의 인버트된 값을 변경할 수 없기 때문에 해커에 의해 수정된 보안 데이터 및 보안 데이터의 인버트된 값은 인버트 관계를 만족할 수 없다.
즉,해커는 '1'로 기록된 보안 데이터의 첫번째 비트를 '0'으로 수정한 후, 보안데이터의 인버트된 값의 첫번째 비트를 이에맞게 '1'로 변경하고 싶지만, OTP 블록에 기록된 데이터이므로 그 값을 변경할 수가 없다. 따라서,인버트관계의 성립 여부를 통해 해커의 공격에 의해 수정된 유효하지 않은 보안 데이터를 찾을 수 있다.
도시된 바와 같이, 유효한 보안 데이터를 해커가 임의로 변경한 경우, 인버트 관계는 성립하지 않는다.
예를 들어, 해커가 유효한 데이터 '1001'에서 '1'로 기록된 보안 데이터의 첫번째 비트를 '0'으로 수정하여 '0001'로 변경하고, 유효한 보안 데이터의 인버트된 값 '0110'에서 '1'로 기록된 보안 데이터의 인버트된 값의 세번째 비트를 '0'으로 수정하여 '0100'로 변경한 경우, 보안 데이터 및 보안 데이터의 인버트된 값은 인버트 관계를 만족하지 않는다.
또한, 인버트 관계가 성립하지 않는 경우에 대해서 만약 전원 중단에 의한 유효하지 않은 보안 데이터라면, 상기 유효하지 않은 보안 데이터는 다음 페이지에 기록된 유효한 보안 데이터의 부분 기록된 것이어야만 한다. 그러나 오프셋 첫 번째 비트처럼 유효하지 않은 보안 데이터에는 '0'이 기록되어 있는데, 유효한 보안 데이터에는 '1'이 기록되어있다면, 유효하지 않은 보안 데이터는 유효한 보안 데이터의 부분 기록이 될 수 없으므로, 전원 중단으로 만들어진 보안 데이터가 아님을 알 수 있게 된다.
따라서, 갑작스런 전원 중단 등의 이유로 인버트 관계가 성립하지 않은 유효하지 않은 보안 데이터에 대해, 다음 페이지에 기록된 유효한 보안 데이터와의 비교를 통해 유효하지 않은 보안 데이터가 유효한 보안 데이터에 대한 부분 기록인지 를 확인하여, 전원 중단으로 잘못 기록된 전자 서명인지 해커의 공격에 의해 변경된 것인지를 확인할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 보안 데이터를 관리하는 장치에서 부분 기록 여부를 체크하는 테이블을 나타낸 도면이다.
유효하지 않은 보안 데이터가 다음 페이지에 존재하는 유효한 보안 데이터에 대한 부분 기록인지를 확인하기 위해 X-OR 연산을 사용하여 빠르게 확인할 수 있다.
도시된 테이블에 나타난 바와 같이, 보안 데이터 A와 보안 데이터 B의 각 비트가 가질 수 있는 총 네 가지 경우들 중, 보안 데이터 A가 보안 데이터 B에 대한 부분 기록이 될 수 있는 조건은 보안 데이터 A가 '0'이면 보안 데이터 B가 '1'인 경우를 제외한 모든 경우이다.
즉, '0'을 기록하려고 하다가 전원이 중단되면, 경우에 따라서 '0' 혹은 '1'이 기록될 수 있으므로 '0'에 대한 부분 기록은 '0'혹은 '1'이다. 반면에 '1'을 기록하려고 하다가 전원이 중단되면, 보안 데이터는 항상 '1'이 기록되므로 '1'에 대한 부분 기록은 '1'이다.
상기와 같은 점을 이용하여, 보안 데이터 A가 보안 데이터 B에 대해 부분 기록인지의 여부를 보다 빠르게 확인하기 위해 보안 데이터 A와 보안 데이터 B를 X-OR 연산을 취한 결과와, 유효한 보안 데이터 B를 AND 연산을 시켰을 경우(즉, (A X-OR B) AND B), 그 결과 값이 '0'이 나오면 보안 데이터 A는 보안 데이터 B의 부분 기록이라고 판단할 수 있다.
도 6은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 방법 중 보안 데이터를 기록하는 과정을 나타낸 순서도이다.
먼저, 보안 데이터 기록부(110)는 저장부(140)의 OTP 블록에 보안 데이터 및 보안 데이터의 인버트된 값을 함께 기록한다(S610). 여기서, 보안 데이터는 소정 프로그램의 불법적인 훼손/변경을 방지하기 위해 이용되는 데이터로써, 예를 들어 전자 서명을 말한다.
그 다음, 보안 데이터 및 보안 데이터의 인버트된 값을 기록 중 전원이 중단되는 문제가 발생되지 않을 경우(S620), 보안 데이터 및 보안 데이터의 인버트된 값은 저장부(140)에 기록된다.
만일, 보안 데이터 및 보안 데이터의 인버트된 값을 기록하던 중 전원이 중단되면(S620), 보안 데이터 기록부(110)는 다른 페이지에 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록한다(S630). 여기서, 새로운 보안 데이터는 상기 보안 데이터를 기록하던 OTP 블록의 다음 페이지에 기록된다. 또한, 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록하는 것은 갑작스런 전원 중단으로 인해 기록 중이던 보안 데이터 및 보안 데이터의 인버트된 값이 유효하지 않은 보안 데이터로 기록될 가능성이 높기 때문이다. 이에, 유효한 보안 데이터를 새로 기록하는 것이며, 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록함으로써, 유효하지 않은 보안 데이터가 전원 중단에 의해 기록되었는지, 해커에 의해 변경된 것인지를 판단할 수 있다.
한편, 새로운 보안 데이터 기록 중 다시 전원이 중단될 수도 있으며, 이러한 경우 단계 S620 및 단계 S630 과정이 계속 반복 된다.
도 7은 본 발명의 일 실시예에 따른 보안 데이터를 관리하는 방법을 나타낸 순서도이다. 여기서, 소정 디바이스의 부팅 시 보안 데이터의 유효성을 판단하여 해당 디바이스의 부팅 여부를 결정한다.
먼저, 보안 데이터 체크부(120)는 저장부(140)의 OTP 블록 제1 페이지에 기록된 보안 데이터의 유효성을 판단한다(S710). 여기서, 유효성 판단은 보안 데이터와 보안 데이터의 인버트된 값을 통해 인버트 관계가 성립하는지 여부에 따라 판단할 수 있다.
판단 결과 제1 페이지에 기록된 보안 데이터가 유효한 보안 데이터인 경우(S720), 해당 디바이스의 부팅을 수행하고(S760), 만일 판단 결과 유효한 보안 데이터가 아닌 경우(S720), 오류 판단부(130)는 유효한 보안 데이터가 존재하는지 검색한다(S730). 여기서, 유효한 보안 데이터는 OTP 블록의 소정 페이지에 기록될 수 있다.
그 다음, 제1 페이지의 보안 데이터와 검색된 유효한 보안 데이터의 동일 오프셋에 대한 비트 값을 비교하여 제1 페이지의 보안 데이터가 유효한 보안 데이터에 대한 부분 기록인지를 판단한다(S740). 여기서, 부분 기록 여부를 판단하는 과정은 상기 도 3 내지 도 5에서 설명하였으므로, 상세한 설명은 생략한다.
단계 S740 과정을 수행한 결과, 제1 페이지의 보안 데이터가 유효한 보안 데이터에 대한 부분 기록이 아닌 경우(S750), 해커의 공격에 의해 제1 페이지의 보안 데이터가 변경되었다고 판단하고(S780), 이에 해당 디바이스의 부팅을 중단한 다(S790).
만일, 제1 페이지의 보안 데이터가 유효한 보안 데이터에 대한 부분 기록인 경우(S750), 제어부(150)는 유효한 보안 데이터가 기록된 페이지(예를 들어, 제2 페이지)의 다음 페이지(예를 들어, 제3 페이지)가 비어있는 페이지 인지를 체크한다(S760). 여기서, 비어있는 페이지란 소정의 데이터(예를 들어, 보안 데이터)가 기록되어 있지 않는 페이지를 말한다.
단계 S760 과정을 수행한 결과, 해당 페이지(예를 들어, 제3 페이지)가 비어있는 경우, 기존에 유효하지 않은 페이지를 발견했더라도 그것은 전원 중단으로 인해 유효하지 않은 보안 데이터가 기록되었다고 판단하고, 해당 디바이스의 부팅을 수행한다(S770).
한편, 단계 S760 과정을 수행한 결과 해당 페이지가 비어있지 않은 경우, 해당 페이지에 기록된 보안 데이터의 유효성을 판단한다(S800). 그 다음, 유효성을 판단한 결과에 따른 과정은 단계 S720 내지 단계 S790 과정을 동일하게 수행한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 본 발명의 보안 데이터를 관리하는 장치 및 그 방법에 따 르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
OTP 블록에 유효하지 않은 보안 데이터가 기록될 경우, 갑작스런 전원 중단에 의한 것인지, 해커에 의한 변경인지를 판단하여, 효율적으로 완전한 보안 검사를 수행할 수 있고, 디바이스의 낭비를 막을 수 있는 효과가 있다.

Claims (10)

  1. 보안 데이터 및 보안 데이터의 인버트된 값을 함께 기록하며, 상기 기록 중 전원이 중단되면, 새로운 보안 데이터 및 보안 데이터의 인버트된 값을 기록하는 보안 데이터 기록부:
    상기 보안 데이터와 보안 데이터의 인버트된 값을 체크하여 상기 보안 데이터가 유효한 보안 데이터인지 판단하는 보안 데이터 체크부; 및
    상기 판단 결과 유효한 보안 데이터가 아닌 경우, 상기 기 기록된 보안 데이터가 상기 새로운 보안 데이터에 대한 부분 기록인지를 판단하는 오류 판단부를 포함하는 보안 데이터를 관리하는 장치.
  2. 제 1항에 있어서,
    상기 판단 결과 상기 기 기록된 보안 데이터가 상기 새로운 보안 데이터에 대한 부분 기록인 경우, 전원 중단에 의해 보안 데이터가 변경된 것인, 보안 데이터를 관리하는 장치.
  3. 제 1항에 있어서,
    상기 판단 결과 상기 기 기록된 보안 데이터가 상기 새로운 보안 데이터에 대한 부분 기록이 아닌 경우, 해커에 의해 보안 데이터가 변경된 것인, 보안 데이터를 관리하는 장치.
  4. 제 1항에 있어서,
    상기 보안 데이터 및 보안 데이터의 인버트된 값을 저장하는 저장부를 더 포함하는, 보안 데이터를 관리하는 장치.
  5. 제 4항에 있어서,
    상기 저장부는 OTP 블록인, 보안 데이터를 관리하는 장치.
  6. 보안 관리 장치가 OTP 블록에 저장된 보안 데이터를 관리하는 방법에 있어서,
    상기 OTP 블록의 제1 페이지에 기록된 보안 데이터의 유효성을 판단하는 단계;
    상기 판단 결과 유효하지 않은 보안 데이터인 경우, 유효한 보안 데이터를 검색하는 단계;
    상기 제1 페이지에 기록된 보안 데이터가 상기 검색된 유효한 보안 데이터에 대한 부분 기록인지 판단하는 단계; 및
    상기 판단 결과 부분 기록인 경우, 상기 제1 페이지에 기록된 보안 데이터가 전원 중단에 의해 보안 데이터가 변경된 것으로 판단하는 단계를 포함하는, 보안 데이터를 관리하는 방법.
  7. 제 6항에 있어서,
    상기 유효한 보안 데이터는 제2 페이지에 기록되는, 보안 데이터를 관리하는 방법.
  8. 제 7항에 있어서,
    상기 제1 페이지 및 상기 제2 페이지에는 보안 데이터 및 보안 데이터의 인버트된 값이 함께 기록되는, 보안 데이터를 관리하는 방법.
  9. 제 6항에 있어서,
    상기 제1 페이지에 보안 데이터 및 상기 보안 데이터의 인버트된 값을 기록하던 중 전원이 중단된 경우, 새로운 보안 데이터 및 상기 보안 데이터의 인버트된 값을 기록하는, 보안 데이터를 관리하는 방법.
  10. 제 6항에 있어서,
    상기 판단 결과 부분 기록이 아닌 경우, 상기 제1 페이지에 기록된 보안 데이터는 해커에 의해 변경된 것으로 판단하는, 보안 데이터를 관리하는 방법.
KR1020060109495A 2006-11-07 2006-11-07 보안 데이터를 관리하는 장치 및 그 방법 KR100881025B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060109495A KR100881025B1 (ko) 2006-11-07 2006-11-07 보안 데이터를 관리하는 장치 및 그 방법
US11/782,769 US20080109904A1 (en) 2006-11-07 2007-07-25 Apparatus and method for managing secure data
JP2007268125A JP4824657B2 (ja) 2006-11-07 2007-10-15 保安データを管理する装置およびその方法
CN2007101675502A CN101179795B (zh) 2006-11-07 2007-10-26 用于管理安全数据的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060109495A KR100881025B1 (ko) 2006-11-07 2006-11-07 보안 데이터를 관리하는 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20080041420A KR20080041420A (ko) 2008-05-13
KR100881025B1 true KR100881025B1 (ko) 2009-02-05

Family

ID=39361204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060109495A KR100881025B1 (ko) 2006-11-07 2006-11-07 보안 데이터를 관리하는 장치 및 그 방법

Country Status (4)

Country Link
US (1) US20080109904A1 (ko)
JP (1) JP4824657B2 (ko)
KR (1) KR100881025B1 (ko)
CN (1) CN101179795B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652017B1 (ko) * 2005-12-08 2006-12-01 한국전자통신연구원 물리보안공격에 대한 닥시스 케이블 모뎀의 보안 방법
DE102008035095A1 (de) * 2008-07-28 2010-02-11 Vincotech (Germany) Gmbh Verfahren und Vorrichtung um Änderungen an Daten zu erkennen
CN102576418A (zh) * 2009-09-24 2012-07-11 寺浦编码研究有限公司 Rfid标签、标签读写器、数据管理系统及数据管理方法
JP5670687B2 (ja) * 2010-09-24 2015-02-18 株式会社テララコード研究所 データ管理システム、rfidタグ及びタグリーダ/ライタ
EP2343662B1 (en) 2009-12-18 2014-09-10 ST-Ericsson (France) SAS Method of and apparatus for storing data
CN103167097B (zh) * 2011-12-15 2017-04-12 富泰华工业(深圳)有限公司 具有保密功能的手机及其保密方法
US9398050B2 (en) * 2013-02-01 2016-07-19 Vidder, Inc. Dynamically configured connection to a trust broker
KR102132247B1 (ko) * 2014-04-03 2020-07-13 에스케이하이닉스 주식회사 원-타임 프로그램 메모리
US10469262B1 (en) 2016-01-27 2019-11-05 Verizon Patent ad Licensing Inc. Methods and systems for network security using a cryptographic firewall
EP3472747B1 (en) 2016-06-20 2021-08-04 Hewlett-Packard Development Company, L.P. Firmware-inaccessible key storage
US10635690B1 (en) * 2016-12-31 2020-04-28 Allscripts Software, Llc Bitwise data comparison utilizing dynamic temporal segmentation
US10554480B2 (en) 2017-05-11 2020-02-04 Verizon Patent And Licensing Inc. Systems and methods for maintaining communication links
CN109945911A (zh) * 2017-12-15 2019-06-28 富泰华工业(深圳)有限公司 电子装置、拆机监测装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030019387A (ko) * 2000-07-31 2003-03-06 다이니폰 인사츠 가부시키가이샤 암호코드 대조기능을 갖는 휴대형 정보처리 장치
KR20030021248A (ko) * 2001-05-10 2003-03-12 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 보안 1회 프로그램 가능한(otp) rom 및 보안 판독수행 방법
JP2004133994A (ja) 2002-10-09 2004-04-30 Ememory Technology Inc 重複して使用できるワンタイムプログラマブル・ロムを具えた不揮発性メモリ
KR20040095548A (ko) * 2003-05-09 2004-11-15 엘지전자 주식회사 개인용 컴퓨터의 하드 디스크 억세스 보안방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025757A (en) * 1975-01-23 1977-05-24 Video Voter Inc. Voting system
JPS6419401A (en) * 1987-07-15 1989-01-23 Toyota Motor Corp Electronic controller
JP3178147B2 (ja) * 1993-03-01 2001-06-18 株式会社デンソー バックアップメモリを備えた電子制御装置
US5954817A (en) * 1996-12-31 1999-09-21 Motorola, Inc. Apparatus and method for securing electronic information in a wireless communication device
JP3689213B2 (ja) * 1997-01-21 2005-08-31 ローム株式会社 非接触型icカード
JP2001109666A (ja) * 1999-10-05 2001-04-20 Hitachi Ltd 不揮発性半導体記憶装置
FR2810138B1 (fr) * 2000-06-08 2005-02-11 Bull Cp8 Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
FR2810152A1 (fr) * 2000-06-13 2001-12-14 St Microelectronics Sa Memoire eeprom securisee comprenant un circuit de correction d'erreur
DE10122505A1 (de) * 2001-05-10 2002-11-14 Giesecke & Devrient Gmbh Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens
JP2002351683A (ja) * 2001-05-24 2002-12-06 Sharp Corp プログラム更新制御方法
US6950918B1 (en) * 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US8226473B2 (en) * 2002-04-10 2012-07-24 Wms Gaming Inc. Gaming software authentication
US7047381B2 (en) * 2002-07-19 2006-05-16 Broadcom Corporation System and method for providing one-time programmable memory with fault tolerance
KR100634356B1 (ko) * 2004-05-12 2006-10-16 삼성전자주식회사 메인 데이터를 안전하게 로딩하는 메모리 시스템 및 그것의 데이터 로딩 방법
KR100648281B1 (ko) * 2005-01-14 2006-11-23 삼성전자주식회사 보안 리던던시 블록을 구비한 낸드 플래시 메모리 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030019387A (ko) * 2000-07-31 2003-03-06 다이니폰 인사츠 가부시키가이샤 암호코드 대조기능을 갖는 휴대형 정보처리 장치
KR20030021248A (ko) * 2001-05-10 2003-03-12 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 보안 1회 프로그램 가능한(otp) rom 및 보안 판독수행 방법
JP2004133994A (ja) 2002-10-09 2004-04-30 Ememory Technology Inc 重複して使用できるワンタイムプログラマブル・ロムを具えた不揮発性メモリ
KR20040095548A (ko) * 2003-05-09 2004-11-15 엘지전자 주식회사 개인용 컴퓨터의 하드 디스크 억세스 보안방법

Also Published As

Publication number Publication date
JP2008117385A (ja) 2008-05-22
US20080109904A1 (en) 2008-05-08
KR20080041420A (ko) 2008-05-13
CN101179795B (zh) 2013-01-02
CN101179795A (zh) 2008-05-14
JP4824657B2 (ja) 2011-11-30

Similar Documents

Publication Publication Date Title
KR100881025B1 (ko) 보안 데이터를 관리하는 장치 및 그 방법
TWI471726B (zh) 快取資料與元資料之管理
US20100058066A1 (en) Method and system for protecting data
JP2005011151A (ja) メモリカード
US8996933B2 (en) Memory management method, controller, and storage system
JP4941556B2 (ja) 暗号化装置、暗号化方法および暗号化プログラム
JP2001297038A (ja) データ記憶装置および記録媒体並びに記録媒体制御方法
KR20080013940A (ko) 전자기기, 갱신 서버장치, 키 갱신장치
US9298565B1 (en) System and method for identification of memory
JPWO2007091492A1 (ja) セキュア処理装置、方法、プログラム
US20200410097A1 (en) Confirming a version of firmware loaded to a processor-based device
EP3682332B1 (en) Method and apparatus for erasing or writing flash data
TWI711940B (zh) 用於資料儲存設備的安全快照管理的裝置、系統、及方法
TWI775346B (zh) 防止回滾攻擊之系統及方法
JP2013514573A (ja) データを格納するための方法及び装置
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
JP2008165439A (ja) 磁気ディスク装置及びその制御方法
JP2014174980A (ja) データストレージデバイス及び方法
JP4101975B2 (ja) 可搬型記憶媒体を用いたデータ記録/再生装置
US8424081B2 (en) Disk unit, magnetic disk unit and information storage unit
KR20070006655A (ko) 파일 관리 장치, 파일 관리 방법, 파일 관리 프로그램 및파일 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US8365296B2 (en) Information processing apparatus, information processing method and computer readable medium having a program
CN108292260B (zh) 用于软件自测试的装置和方法
JP2021060721A (ja) メモリシステム
CN111913915B (zh) 文件隐藏方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee