KR20080112010A - 펌웨어 인증 장치 및 방법 - Google Patents

펌웨어 인증 장치 및 방법 Download PDF

Info

Publication number
KR20080112010A
KR20080112010A KR1020070060684A KR20070060684A KR20080112010A KR 20080112010 A KR20080112010 A KR 20080112010A KR 1020070060684 A KR1020070060684 A KR 1020070060684A KR 20070060684 A KR20070060684 A KR 20070060684A KR 20080112010 A KR20080112010 A KR 20080112010A
Authority
KR
South Korea
Prior art keywords
firmware
authentication
data transmission
bus
unit
Prior art date
Application number
KR1020070060684A
Other languages
English (en)
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 KR1020070060684A priority Critical patent/KR20080112010A/ko
Priority to US11/964,809 priority patent/US20080320311A1/en
Publication of KR20080112010A publication Critical patent/KR20080112010A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 펌웨어 인증 장치 및 방법에 관한 것으로, 본 발명에 따른 펌웨어 저장부에 저장되어 있는 펌웨어를 인증하는 장치는 펌웨어 인증 개시를 명령하는 제어부; 펌웨어 저장부로부터 판독된 서명을 이용하여 펌웨어를 인증하는 인증부; 및 디코딩 장치로의 데이터 전송 버스를 제어하는 버스 제어부를 포함하고, 펌웨어 인증이 실패하면, 인증부는 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 데이터 전송 버스를 통한 데이터 전송이 가능하도록 버스 제어부를 제어한다. 본 발명에 따르면, 콘텐츠의 불법적인 사용을 방지할 수 있다.
펌웨어, 콘텐츠, 해킹, 서명, 인증

Description

펌웨어 인증 장치 및 방법{Apparatus and method for authenticating firmware}
도 1은 본 발명의 일 실시예에 따른 펌웨어 인증 장치를 나타내는 블록도.
도 2는 본 발명의 일 실시예에 따른 펌웨어가 포함된 플래시 메모리의 구조를 나타내는 도면.
도 3은 본 발명의 다른 실시예에 따른 펌웨어 인증 장치를 나타내는 블록도.
도 4는 본 발명의 일 실시예에 따른 펌웨어 배포자가 수행하는 펌웨어가 저장되는 메모리 제작 과정을 나타내는 흐름도.
도 5는 본 발명의 일 실시예에 따른 펌웨어 인증 장치에서 펌웨어를 인증하는 방법을 나타내는 흐름도.
도 6은 도 5의 펌웨어 인증 단계에 대하여 상세하게 나타낸 흐름도.
본 발명은 펌웨어 인증 장치 및 방법에 관한 것으로, 더욱 상세하게는 하드웨어적으로 펌웨어 인증을 수행하여 펌웨어 해킹에 의한 콘텐츠의 불법적인 사용을 방지하기 위한 펌웨어 인증 장치 및 방법에 관한 것이다.
HD DVD 및 블루레이 광 디스크 드라이버가 HD 콘텐츠를 다루기 시작하면서 콘텐츠를 보호하는 방법으로 AACS(Advanced Access Content System)이 적용되고 있다. 최근 AACS를 해킹하는 사태가 발생하여, AACS 연합에서 이를 보강하려는 방법을 모색중이다. 보강하려는 방법 중 하나는 드라이브의 펌웨어에 대한 불법적인해킹을 방지하는 것이다. 펌웨어에 대한 불법적인 해킹을 방지하는 것은 대부분의 콘텐츠 재생 장치에서 필요로 하는 기능이며 이를 지원하기 위한 다양한 방법이 모색되고 있다.
종래의 소프트웨어적인 펌웨어 인증을 수행할 때, 펌웨어와 함께 플래시 메모리에 기록되어 있는 펌웨어 인증 프로그램을 이용하여 펌웨어 인증을 수행하는 경우에는, 플래시 메모리 자체가 대체(replacement)되는 경우에는 펌웨어 인증을 수행할 수 없게 된다. 또한, 펌웨어에 펌웨어 인증을 위한 프로그램이 포함된 경우에는, 펌웨어 인증을 위한 프로그램 자체가 해킹의 대상이 될 수 있다. 또한, 펌웨어에 펌웨어 인증 프로그램이 포함되는 경우, 펌웨어의 용량이 커져서 큰 용량의 메모리를 요구하게 되는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 하드웨어적으로 펌웨어 인증을 수행하여 펌웨어 해킹에 의한 콘텐츠의 불법적인 사용을 방지하기 위한 펌웨어 인증 장치 및 방법을 제공하는 데 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 일 특징에 따른, 펌웨어 저 장부에 저장되어 있는 펌웨어를 인증하는 장치는, 펌웨어 인증 개시를 명령하는 제어부; 펌웨어 저장부로부터 판독된 서명을 이용하여 펌웨어를 인증하는 인증부; 및 디코딩 장치로의 데이터 전송 버스를 제어하는 버스 제어부를 포함하고, 펌웨어 인증이 실패하면, 인증부는 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 데이터 전송 버스를 통한 데이터 전송이 가능하도록 버스 제어부를 제어한다.
바람직하게는, 인증부는 ECDSA, RSA, AES 및 MAC 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증한다.
바람직하게는, 펌웨어 인증이 실패하면, 인증부는 데이터 전송 버스를 통한 데이터 전송을 차단하기 위하여 데이터 전송 버스를 폐쇄하거나, 데이터 전송 버스로 에러 메시지를 전달한다.
바람직하게는, 인증부는 펌웨어를 인증할 때, 펌웨어 데이터의 일부를 이용하여 인증 동작을 수행한다.
바람직하게는, 적어도 하나의 콘텐츠를 저장하는 콘텐츠 저장부를 더 포함하고, 인증이 성공하면, 인증부는 콘텐츠 저장부로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 버스 제어부를 제어한다.
바람직하게는, 광 디스크가 설치되는 광 디스크 삽입부를 더 포함하고, 인증이 성공하면, 인증부는 광 디스크로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 버스 제어부를 제어한다.
바람직하게는, 메모리 카드가 탈부착 가능하게 설치되는 메모리 카드 슬롯을 더 포함하고, 인증이 성공하면, 인증부는 메모리 카드로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 버스 제어부를 제어한다.
바람직하게는, 디코딩 장치는 펌웨어 인증 장치 내부에 포함된다.
바람직하게는, 제어부는 펌웨어 인증 장치에 전원이 들어오면 인증부에 인증 개시 동작을 명령한다.
바람직하게는, 펌웨어 인증 장치는 광 디스크 드라이브이다.
본 발명의 다른 특징에 따른 펌웨어 인증 방법은, 펌웨어 및 펌웨어 인증을 위한 서명을 포함하는 저장부로부터 펌웨어 및 서명을 판독하는 단계; 서명을 이용하여 펌웨어를 인증하는 단계; 및 펌웨어 인증이 실패하면, 디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 데이터 전송 버스로의 데이터 전송을 가능하게 하는 단계를 포함한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 펌웨어 인증 장치를 나타내는 블록도이다. 본 발명의 일 실시예에 따른 펌웨어 인증 장치(100)는 펌웨어 저장부(110), 제어부(120), 인증부(130) 및 버스 제어부(140)를 포함한다.
본 발명의 일 실시예에 따르면, 펌웨어 인증 장치(100)는 광 디스크 드라이브의 프론트 엔드(F/E) 칩으로 구성될 수 있다. 또한, 본 발명의 펌웨어 인증 장치(100)는 광 디스크 또는 다른 저장매체에 저장된 콘텐츠를 재생하는 콘텐츠 재생 장치로 구현될 수 있다. 또한, 펌웨어 인증 장치(100)는 일반 전자 기기, 홈 서 버, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player) 또는 휴대용 광디스크 재생 장치와 같이 데이터 전달을 제어할 필요가 있는 인터페이스 기능을 하는 다양한 장치에 적용될 수 있다.
본 명세서에서 펌웨어는 펌웨어 인증 장치(100)의 내부 메모리(도시되지 않음) 또는 외부 메모리(도시되지 않음)에 기록된 콘텐츠를 판독하여 재생하는데 필요한 프로그램을 의미한다. 펌웨어는 펌웨어 인증 장치(100)의 구현예에 따라서 다양한 형태의 프로그램으로 구현될 수 있다. 예를 들어, 본 발명의 펌웨어 인증 장치(100)가 광 디스크로, 메모리 카드, 또는 내부 메모리와 같은 저장매체로부터 콘텐츠를 판독하여 재생하기 위한 콘텐츠 재생 장치로 구성될 경우에는, 펌웨어는 콘텐츠 재생 장치의 디코더와 같은 재생 모듈로 저장매체로부터 판독된 콘텐츠를 전달하기 위한 프로그램일 수 있다.
펌웨어 저장부(110)는 서명을 포함하는 펌웨어를 저장하고 있다. 본 발명의 일 실시예에 따른 펌웨어가 포함된 플래시 메모리의 구조가 도 2에 도시되어 있다. 도 2에 된 바와 같이 저장부(110)는 펌웨어 저장 영역(10) 및 서명 저장 영역(20)을 포함하는 플래시 메모리일 수 있다. 펌웨어 저장 영역(10)에는 펌웨어 데이터가 기록되고, 서명 저장 영역(20)에는 펌웨어 배포자가 펌웨어 인증을 위하여 기록한 서명이 기록된다. 펌웨어 인증 장치(100)의 구현예에 따라 펌웨어 저장부(110)에 다른 데이터가 더 포함되어 기록될 수 있음은 물론이다.
제어부(120)는 펌웨어 인증 장치(100)에 전원이 인가되면, 저장부(110)로부터 펌웨어를 읽어와서 하드웨어 초기화 등의 동작을 수행한다. 그런 다음, 제어 부(120)는 펌웨어 데이터로부터 펌웨어 인증을 개시를 명령을 판독하여, 인증부(130)에 펌웨어 인증 개시를 명령한다. 본 발명의 일 실시예에 따르면, 펌웨어 인증 동작은 펌웨어 인증 장치(100)에 전원에 인가되어 초기화될 때마다 수행되어, 펌웨어 인증의 안전성을 높일 수 있다.
인증부(130)는 서명을 이용하여 펌웨어 인증을 수행하는 하드웨어적 구성요소이다. 인증부(130)는 ECDSA(Elliptic Curve Digital Signature Algorithm), RSA(Rivest-Shamir-Adlemen), AES(Advanced Encryption Standard) 및 MAC(Message Authentication Code) 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증 동작을 수행하는 회로로 구현될 수 있다. 펌웨어 인증 과정의 일 실시예에 대해서는 도 4 내지 도 6을 참조하여 후술하도록 한다.
버스 제어부(140)는 디코딩 장치(도시되지 않음)로의 데이터 전송 버스 제어한다. 데이터 전송 버스는 펌웨어 인증 장치(100) 내부 또는 외부에 존재하는 콘텐츠가 저장되어 있는 저장매체로부터 판독된 콘텐츠를 디코딩 장치로 전달하기 위한 전송 통로로서 그 형태나 종류에는 제한이 없다. 디코딩 장치는 구현예에 따라 펌웨어 인증 장치(100) 내부에 존재할 수도 있으며, 펌웨어 인증 장치(100) 외부에 존재할 수도 있다. 광 디스크 재생 장치의 경우, 디코딩 장치는 백엔드부에 대응한다.
인증부(130)의 인증 결과 펌웨어 인증이 실패하면, 인증부(130)는 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 데이터 전송 버스가 정상 동작하여 데이터 전송이 가능하도록 버스 제어부(140)를 제어한다. 인 증부(130)는 인증이 실패한 경우 데이터 전송 버스를 폐쇄하거나, 데이터 전송 버스로 에러 메시지를 전달하는 방법으로 데이터 전송 버스를 통한 데이터 전송을 차단할 수 있다.
인증부(130)는 펌웨어를 인증할 때, 인증 동작을 수행할 때의 데이터 처리량을 줄여서 시스템의 부하를 감소시키기 위하여, 펌웨어 데이터의 전부를 이용하여 인증 동작을 수행하기보다, 펌웨어 데이터 일부를 이용하여 인증 동작을 수행할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 펌웨어 인증 장치를 나타내는 블록도이다.
도 3에 도시된 펌웨어 인증 장치(200)는 도 1의 펌웨어 저장부(110), 제어부(120), 인증부(130) 및 버스 제어부(140) 외에도 디코더(150), 콘텐츠 보호부(160), 콘텐츠 저장부(170), 광 디스크 삽입부(180) 및 메모리 카드 슬롯(190)을 포함한다. 펌웨어 인증 장치(200)는 콘텐츠가 디코딩되어 재생될 수 있는 콘텐츠 재생 장치로서 동작한다.
디코더(150)는 도 1에서 설명한 디코딩 장치에 대응하는 구성요소로서 버스 제어부(140)에 의해 제어되는 데이터 전송 버스(50)를 통해 전달되는 콘텐츠를 디코딩하여 출력한다. 콘텐츠 보호부(160)는 콘텐츠 보호를 위한 애플리케이션이 동작하는 기능부이다. 예를 들어, DVD에 기록된 콘텐츠를 보호하기 위하여 콘텐츠 보호부(160)는 CSS(Content Scrambling System)을 수행하거나, HD-DVD 또는 BD에 기록된 콘텐츠를 보호하기 위하여 ACCS(Advanced Access Contents System)을 수행 한다.
콘텐츠 저장부(170)는 펌웨어 인증 장치(200) 내부에 존재하는 콘텐츠가 저장되어 있는 메모리이다. 광 디스크 삽입부(180)는 CD, DVD, BD 또는 HD-DVD와 같은 광 디스크가 장착된다. 메모리 카드 슬롯(190)에는 CF(Compact Flash), SM(Smart Media), SD(Secure Digital), MS(Memory Stick) 또는 MMC(Multi Media Card)와 같은 메모리 카드가 삽입된다. 콘텐츠 저장부(170), 광 디스크 삽입부(180) 또는 메모리 카드 슬롯(190)는 펌웨어 인증 장치(200)에 선택적으로 포함될 수 있으며, 다른 종류의 저장매체로부터 콘텐츠를 판독하기 위한 구성요소가 더 포함될 수 있다.
제어부(120)는 전원이 인가되면, 펌웨어 저장부(110)로부터 판독된 펌웨어 데이터에 기초하여 하드웨어를 초기화하고 펌웨어 인증 개시 명령을 인증부(130)에 전달한다.
그러면, 인증부(130)는 펌웨어 기록된 서명 및 펌웨어를 판독하여 펌웨어 인증을 수행한다. 펌웨어 인증 과정에서, 펌웨어 인증 과정에 의한 데이터 처리량으로 인한 시스템 부하를 감소시키기 위하여, 펌웨어 전체를 인증하지 않고, 펌웨어 일부 데이터를 이용하여 인증 동작을 수행할 수 있다. 펌웨어가 일부만 변경되어도 펌웨어가 해킹되어 변조되었다고 결정할 수 있기 때문이다. 예를 들어, 펌웨어 데이터의 짝수번째 또는 홀수번째 데이터만 검증할 수 있고, 일정량 예를 들어, 8 바이트 또는 16바이트씩 건너 뛴 다음의 데이터를 펌웨어 인증에 이용할 수 있다. 또는 별도의 알고리즘을 적용하여 일정량의 펌웨어만 검증할 수도 있다.
버스 제어부(140)는 인증부(130)의 제어에 따라 디코더(150)로의 데이터 전송 버스를 제어한다. 버스 제어부(140)는 데이터 전송 버스(50)를 제어하기 위한 스위칭 회로로 구현될 수 있다.
펌웨어 인증이 실패하면, 인증부(130)는 데이터 전송 버스(50)를 통한 데이터 전송을 차단한다. 인증부(130)는 인증이 실패한 경우 데이터 전송 버스(50)를 폐쇄하거나, 데이터 전송 버스(50)로 에러 메시지를 전달하는 방법으로 데이터 전송 버스(50)를 통한 데이터 전송을 차단할 수 있다. 디코더(150)는 에러 메시지가 수신되면, 펌웨어 인증이 실패한 것이 확인되므로, 데이터 전송 버스(50)를 통해 전달되는 데이터는 처리하지 않는다.
펌웨어 인증이 성공하면, 인증부(130)는 데이터 전송 버스(50)가 정상 동작하도록 버스 제어부(140)를 제어한다. 인증이 성공한 경우, 데이터 전송 버스(50)가 정상적으로 동작하면, 제어부(120)는 펌웨어 저장부(110)에 저장된 펌웨어에 기초하여, 콘텐츠 저장부(170)에 기록되어 있는 콘텐츠, 광 디스크 삽입부(180)에 삽입되어 있는 광 디스크 또는 메모리 카드 슬롯(190)에 삽입되어 있는 메모리 카드에 기록되어 있는 콘텐츠를 판독하여 버스 제어부(140)로 전달한다. 인증부(130)는 인증이 성공한 경우, 데이터 전송 버스를 개방하므로, 판독된 콘텐츠는 디코더(150)로 정상적으로 전달되어 처리될 수 있다.
도 4는 본 발명의 일 실시예에 따른 펌웨어 배포자가 수행하는 펌웨어가 저장되는 메모리 제작 과정을 나타내는 흐름도이다.
도 4는 펌웨어 배포자가 ECDSA 인증 방법을 이용하여 펌웨어 인증이 수행되 도록 펌웨어를 배포하는 과정을 나타낸다.
단계 S 410에서 펌웨어 배포자가 펌웨어 작성 또는 수정을 완료한다. 펌웨어는 컴파일되어 펌웨어 저장부(110)에 기록된다.
단계 S 420에서, 펌웨어 배포자는 펌웨어의 개인 키를 이용하여 펌웨어 공개 키를 만든다.
식으로 표현하면 다음의 수학식 1과 같다.
[수학식 1]
Kfpub = G * Kfpri
여기에서, Kfpub는 펌웨어의 공개 키(Firmware Public Key), G는 공개되는 파라미터인 일반 파라미터(General Parameter)이고, Kfpri는 펌웨어 개인 키(Firmware Private Key)이다.
단계 S 430에서, 펌웨어 배포자는 펌웨어 인증 장치의 공개 키를 이용하여 공유 암호키(Common Encryption Key)를 생성한다. 펌웨어 인증 장치는 광 디스크 재생 장치의 드라이버일 수 있다.
단계 S 430은 수학식 2로 표현될 수 있다.
[수학식 2]
Kce = Kdpub * Kfpri
여기에서, Kce는 공유 암호키이고, Kdpub는 펌웨어 인증 장치의 공개키이다. Kfpri는 펌웨어의 개인 키이다. 또한, Kdpub는 G(공개 파라미터)*Kdpri(펌웨어 인증 장치의 개인 키)이다.
단계 S 440에서 펌웨어 개인 키로 서명을 생성한다. 단계 S 440은 수학식 3으로 표현될 수 있다.
[수학식 3]
Signf = ECDSA_SIGN(Kfpri, F/W)
여기에서, Signf는 펌웨어 서명을 나타내고, ECDSA_SIGN은 ECDSA의 서명 생성 함수를 나타낸다. 펌웨어(F/W)는 단계 S 410에서 수정 또는 제작된 펌웨어를 나타낸다.
단계 S 450에서, Kce(공유 암호키)로 서명을 암호화한다.
단계 S450은 수학식 4로 표현된다.
[수학식 4]
Signef = encryption(Kce, Signf)
여기에서, Signef는 펌웨어의 암호화된 서명을 나타내고, encryption은 키를 이용한 암호 함수를 나타내고, Signf는 펌웨어 서명을 나타낸다.
단계 S 460에서, Kfpub(펌웨어 공개키)와 Signef(펌웨어의 암호화된 서명)을 펌웨어에 첨부하여 배포한다. 도 4에 따른 펌웨어 배포 과정이 종료하면, 펌웨어가 저장되는 메모리, 즉, 도 1 및 3에서 펌웨어 저장부(110)에는 펌웨어, 서명 및 펌웨어 공개키가 포함되게 된다.
도 5는 본 발명의 일 실시예에 따른 펌웨어 인증 장치에서 펌웨어를 인증하는 방법을 나타내는 흐름도이다.
단계 S 510에서, 인증부(130)는 펌웨어 및 펌웨어 인증을 위한 서명을 펌웨 어 저장부(110)로부터 판독한다.
단계 S 520에서, 인증부(130)는 서명을 이용하여 펌웨어를 인증한다.
단계 S 530에서, 펌웨어 인증이 성공인지 결정한다. 인증이 실패하면, 단계 S 540에서 인증부(130)는 디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단한다. 펌웨어 인증이 성공하면 단계 S 550에서, 인증부(130)는 데이터 전송 버스로의 데이터 전송을 가능하게 한다.
도 6은 도 5의 펌웨어 인증 단계에 대하여 상세하게 나타낸 흐름도이다.
펌웨어 배포자에 의해 도 4에 도시된 바와 같은 과정을 통해 생성된 펌웨어를 인증할 때, 도 5의 펌웨어 인증 단계 S 520은 다음과 같은 과정을 통해 수행될 수 있다.
단계 S 521에서 인증부(130)는 펌웨어 인증 장치의 개인 키와 펌웨어의 공개키를 이용하여 공유 암호 키를 구한다. 펌웨어 인증 장치의 개인 키는 인증부(130)의 소정의 저장 영역에 기록되어 있으며, 펌웨어의 공개키는 펌웨어 저장부(110)에 기록되어 있는 펌웨어 공개키를 의미한다. 단계 S 521을 식으로 나타내면, 다음의 수학식 5와 같다.
[수학식 5]
Kce = Kfpub * Kdpri
여기에서, Kce는 공유 암호 키를 나타내고, Kfpub는 펌웨어 공개 키를 나타내고, Kdpri는 펌웨어 인증 장치의 개인 키를 나타낸다.
단계 S 523에서, 인증부(130)는 Kce를 이용하여 펌웨어의 서명을 복호화한 다.
단계 S 523을 식으로 나타내면 수학식 6으로 표현될 수 있다.
[수학식 6]
Signf = decryption(Kce, Signef)
여기에서, Signf는 펌웨어 서명을 나타내고, decryption은 키를 이용한 복호 함수를 나타내고, Signef는 펌웨어 서명의 암호화된 서명을 나타낸다.
단계 S 525에서, 인증부(130)는 펌웨어의 공개키를 이용해 펌웨어의 서명을 검증한다. 이 과정은 수학식 7로 나타낼 수 있다.
[수학식 7]
Verify_rlt = ECDSA_VERIFY(Kfpub, Signf, F/W)
여기에서, Verify_rlt는 서명의 검증 결과를 나타내고, ECDSA_VERIFY는 ECDSA의 서명 검증 함수를 나타내고, Kfpub는 펌웨어 공개키를 나타내고, Signf는 Kce로 복호화된 펌웨어의 서명을 나타낸다.
검증 결과가 성공(Pass)이면 인증부(130)는 버스 제어부(140)를 제어하여 데이터 전송 버스를 개방하고, 실패이면 데이터 전송 버스를 폐쇄한다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 및 플래시 메모리 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
본 발명에 따르면, 펌웨어 인증을 하드웨어적으로 실행하고, 펌웨어 인증이 성공한 경우에만 디코더 또는 디코딩 장치로의 데이터 전송 경로를 통해 콘텐츠가 전달될 수 있도록 하여, 해커의 최종 목적인 컨텐츠의 불법적인 이용을 방지할 수 있다.
또한, 본 발명에 따르면, 플래시 메모리 자체가 대체(replacement)되는 경우에도 펌웨어 인증 장치의 별도의 하드웨어적인 구성요소인 인증부가 펌웨어 인증을 수행하므로, 절대적인 안정성을 보장할 수 있다.
또한, 본 발명에 따르면 펌웨어 용량이 커지지 않으므로 작은 용량의 메모리로도 펌웨어 인증을 통해 콘텐츠의 해킹을 방지하면서, 콘텐츠를 안전하게 재생할 수 있다.

Claims (16)

  1. 펌웨어 저장부에 저장되어 있는 펌웨어를 인증하는 장치에 있어서,
    펌웨어 인증 개시를 명령하는 제어부;
    상기 펌웨어 저장부로부터 판독된 서명을 이용하여 상기 펌웨어를 인증하는 인증부; 및
    디코딩 장치로의 데이터 전송 버스를 제어하는 버스 제어부를 포함하고,
    펌웨어 인증이 실패하면, 상기 인증부는 상기 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 상기 데이터 전송 버스를 통한 데이터 전송이 가능하도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
  2. 제1항에 있어서,
    상기 인증부는 ECDSA, RSA, AES 및 MAC 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증하는 것을 특징으로 하는 펌웨어 인증 장치.
  3. 제1항에 있어서,
    펌웨어 인증이 실패하면, 상기 인증부는 상기 데이터 전송 버스를 통한 데이터 전송을 차단하기 위하여 상기 데이터 전송 버스를 폐쇄하거나, 상기 데이터 전송 버스로 에러 메시지를 전달하는 것을 특징으로 하는 펌웨어 인증 장치.
  4. 제1항에 있어서,
    상기 인증부는 상기 펌웨어를 인증할 때, 펌웨어 데이터의 일부를 이용하여 인증 동작을 수행하는 것을 특징으로 하는 펌웨어 인증 장치.
  5. 제1항에 있어서,
    적어도 하나의 콘텐츠를 저장하는 콘텐츠 저장부를 더 포함하고,
    상기 인증이 성공하면, 상기 인증부는 상기 콘텐츠 저장부로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
  6. 제1항에 있어서,
    광 디스크가 설치되는 광 디스크 삽입부를 더 포함하고,
    상기 인증이 성공하면, 상기 인증부는 상기 광 디스크로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
  7. 제1항에 있어서,
    메모리 카드가 탈부착 가능하게 설치되는 메모리 카드 슬롯을 더 포함하고,
    상기 인증이 성공하면, 상기 인증부는 상기 메모리 카드로부터 판독된 콘텐 츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
  8. 제1항에 있어서,
    상기 디코딩 장치는 상기 펌웨어 인증 장치 내부에 포함되는 것을 특징으로 하는 펌웨어 인증 장치.
  9. 제1항에 있어서,
    상기 제어부는 상기 펌웨어 인증 장치에 전원이 들어오면 상기 인증부에 인증 개시 동작을 명령하는 것을 특징으로 하는 펌웨어 인증 장치.
  10. 제1항에 있어서,
    상기 펌웨어 인증 장치는 광 디스크 드라이브인 것을 특징으로 하는 펌웨어 인증 장치.
  11. 펌웨어 및 펌웨어 인증을 위한 서명을 포함하는 저장부로부터 펌웨어 및 서명을 판독하는 단계;
    상기 서명을 이용하여 상기 펌웨어를 인증하는 단계; 및
    펌웨어 인증이 실패하면, 디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 상기 데이터 전송 버스로의 데이터 전송 을 가능하게 하는 단계를 포함하는 것을 특징으로 하는 펌웨어 인증 방법.
  12. 제11항에 있어서,
    상기 펌웨어를 인증하는 단계는,
    ECDSA, RSA, AES 및 MAC 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증하는 것을 특징으로 하는 펌웨어 인증 방법.
  13. 제11항에 있어서,
    디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단하는 단계는,
    상기 데이터 전송 버스를 폐쇄하거나, 상기 데이터 전송 버스로 에러 메시지를 전달하는 것을 특징으로 하는 펌웨어 인증 방법.
  14. 제11항에 있어서,
    상기 펌웨어를 인증하는 단계는,
    펌웨어 데이터의 일부를 이용하여 인증 동작을 수행하는 것을 특징으로 하는 펌웨어 인증 방법.
  15. 제11항에 있어서,
    펌웨어 인증이 성공하면 상기 데이터 전송 버스로의 데이터 전송을 가능하게 하는 단계는,
    내부 콘텐츠 저장부, 광 디스크 및 메모리 카드 중 하나로부터 판독된 콘텐츠를 상기 데이터 전송 버스를 통해 디코딩 장치로 전송하는 것을 특징으로 하는 펌웨어 인증 방법.
  16. 제11항에 있어서,
    상기 펌웨어를 인증하는 장치에 전원이 들어오면 펌웨어 인증 방법이 개시되는 것을 특징으로 하는 펌웨어 인증 방법.
KR1020070060684A 2007-06-20 2007-06-20 펌웨어 인증 장치 및 방법 KR20080112010A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070060684A KR20080112010A (ko) 2007-06-20 2007-06-20 펌웨어 인증 장치 및 방법
US11/964,809 US20080320311A1 (en) 2007-06-20 2007-12-27 Apparatus and method for authenticating firmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070060684A KR20080112010A (ko) 2007-06-20 2007-06-20 펌웨어 인증 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20080112010A true KR20080112010A (ko) 2008-12-24

Family

ID=40137763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070060684A KR20080112010A (ko) 2007-06-20 2007-06-20 펌웨어 인증 장치 및 방법

Country Status (2)

Country Link
US (1) US20080320311A1 (ko)
KR (1) KR20080112010A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527779B1 (ko) * 2014-01-13 2015-06-10 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
US20210334380A1 (en) * 2020-04-24 2021-10-28 Vmware, Inc. Trusted firmware verification
KR20220028986A (ko) * 2020-09-01 2022-03-08 (주)티엔젠 무인이동체의 보안을 위한 암호키 관리 시스템 및 방법
US12086257B2 (en) * 2020-04-24 2024-09-10 Omnissa, Llc Trusted firmware verification

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984296B1 (en) * 2009-03-29 2015-03-17 Cypress Semiconductor Corporation Device driver self authentication method and system
KR102139546B1 (ko) 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
US9882720B1 (en) * 2014-06-27 2018-01-30 Amazon Technologies, Inc. Data loss prevention with key usage limit enforcement
US9853811B1 (en) 2014-06-27 2017-12-26 Amazon Technologies, Inc. Optimistic key usage with correction
KR20160103652A (ko) * 2015-02-25 2016-09-02 한국전자통신연구원 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치
US10839080B2 (en) * 2017-09-01 2020-11-17 Microsoft Technology Licensing, Llc Hardware-enforced firmware security
US11599641B2 (en) * 2019-04-24 2023-03-07 Crowdstrike, Inc. Firmware retrieval and analysis

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785813B1 (en) * 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US5881282A (en) * 1996-12-10 1999-03-09 Intel Corporation Controlling ill-behaved computer add-on device through a virtual execution mode
JPH10301492A (ja) * 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
FR2771875B1 (fr) * 1997-11-04 2000-04-14 Gilles Jean Antoine Kremer Procede de transmission d'information et serveur informatique le mettant en oeuvre
US7194620B1 (en) * 1999-09-24 2007-03-20 Verizon Business Global Llc Method for real-time data authentication
US7346582B2 (en) * 1999-12-21 2008-03-18 Sony Corporation Electronic money, electronic use right, charging system, information processing apparatus, and reproducing method and reproduction control method of contents data
JP2001211171A (ja) * 2000-01-28 2001-08-03 Advantest Corp 機器認証装置、方法、機器認証プログラムを記録した記録媒体
US20030097587A1 (en) * 2001-11-01 2003-05-22 Gulick Dale E. Hardware interlock mechanism using a watchdog timer
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
EP1665038A4 (en) * 2003-09-18 2011-01-26 Aristocrat Technologies Au BIOS PROTECTION DEVICE
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7555124B2 (en) * 2003-12-05 2009-06-30 Motion Picture Association Of America Secure video system for display adaptor
US20050204155A1 (en) * 2004-03-09 2005-09-15 Nec Laboratories America, Inc Tamper resistant secure architecture
US20070011263A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Remote network disable/re-enable apparatus, systems, and methods
US7907531B2 (en) * 2005-06-13 2011-03-15 Qualcomm Incorporated Apparatus and methods for managing firmware verification on a wireless device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527779B1 (ko) * 2014-01-13 2015-06-10 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
US20210334380A1 (en) * 2020-04-24 2021-10-28 Vmware, Inc. Trusted firmware verification
US12086257B2 (en) * 2020-04-24 2024-09-10 Omnissa, Llc Trusted firmware verification
KR20220028986A (ko) * 2020-09-01 2022-03-08 (주)티엔젠 무인이동체의 보안을 위한 암호키 관리 시스템 및 방법

Also Published As

Publication number Publication date
US20080320311A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
KR20080112010A (ko) 펌웨어 인증 장치 및 방법
US9031233B2 (en) Method and storage device for protecting content
EP2732399B1 (en) Method and apparatus for using non-volatile storage device
US20020087814A1 (en) Verifying the integrity of a media key block by storing validation data in the cutting area of media
US20030188162A1 (en) Locking a hard drive to a host
US20140033325A1 (en) Non-volatile memory for anti-cloning and authentication method for the same
US8799653B2 (en) Storage device and method for storage device state recovery
US9652624B2 (en) Method, host, storage, and machine-readable storage medium for protecting content
KR101067552B1 (ko) 정보 처리 장치, 정보 기록 매체, 정보 처리 방법, 및 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체
US9230090B2 (en) Storage device, and authentication method and authentication device of storage device
JP2010092202A (ja) Usbインタフェースを用いた記憶装置
US20120066513A1 (en) Method and apparatus for authenticating a non-volatile memory device
EP1983458A1 (en) Media package, system comprising a media package and method of using stored data
US20090092019A1 (en) Information processing apparatus, disc, and information processing method, and computer program used therewith
JP2008513854A (ja) コンテンツをプロテクトする方法、装置及び記録媒体
US20180189462A1 (en) Content reading method for reading out copyright-protected content from non-transitory recording medium, content reading apparatus, and non-transitory recording medium
JP6408099B2 (ja) コンテンツ読み出し方法およびコンテンツ読み出し装置
KR20030085513A (ko) 매체의 컷팅 영역에 검증 데이터를 저장하는 것을 이용한매체키 블록의 무결성 확인

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application