KR20080112010A - 펌웨어 인증 장치 및 방법 - Google Patents
펌웨어 인증 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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/3247—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 involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
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
도 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항에 있어서,상기 인증부는 ECDSA, RSA, AES 및 MAC 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,펌웨어 인증이 실패하면, 상기 인증부는 상기 데이터 전송 버스를 통한 데이터 전송을 차단하기 위하여 상기 데이터 전송 버스를 폐쇄하거나, 상기 데이터 전송 버스로 에러 메시지를 전달하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,상기 인증부는 상기 펌웨어를 인증할 때, 펌웨어 데이터의 일부를 이용하여 인증 동작을 수행하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,적어도 하나의 콘텐츠를 저장하는 콘텐츠 저장부를 더 포함하고,상기 인증이 성공하면, 상기 인증부는 상기 콘텐츠 저장부로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,광 디스크가 설치되는 광 디스크 삽입부를 더 포함하고,상기 인증이 성공하면, 상기 인증부는 상기 광 디스크로부터 판독된 콘텐츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,메모리 카드가 탈부착 가능하게 설치되는 메모리 카드 슬롯을 더 포함하고,상기 인증이 성공하면, 상기 인증부는 상기 메모리 카드로부터 판독된 콘텐 츠가 디코딩 장치로 전달되도록 상기 버스 제어부를 제어하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,상기 디코딩 장치는 상기 펌웨어 인증 장치 내부에 포함되는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,상기 제어부는 상기 펌웨어 인증 장치에 전원이 들어오면 상기 인증부에 인증 개시 동작을 명령하는 것을 특징으로 하는 펌웨어 인증 장치.
- 제1항에 있어서,상기 펌웨어 인증 장치는 광 디스크 드라이브인 것을 특징으로 하는 펌웨어 인증 장치.
- 펌웨어 및 펌웨어 인증을 위한 서명을 포함하는 저장부로부터 펌웨어 및 서명을 판독하는 단계;상기 서명을 이용하여 상기 펌웨어를 인증하는 단계; 및펌웨어 인증이 실패하면, 디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단하고, 펌웨어 인증이 성공하면 상기 데이터 전송 버스로의 데이터 전송 을 가능하게 하는 단계를 포함하는 것을 특징으로 하는 펌웨어 인증 방법.
- 제11항에 있어서,상기 펌웨어를 인증하는 단계는,ECDSA, RSA, AES 및 MAC 중 적어도 하나의 인증 방법을 이용하여 펌웨어를 인증하는 것을 특징으로 하는 펌웨어 인증 방법.
- 제11항에 있어서,디코딩 장치로의 데이터 전송 버스를 통한 데이터 전송을 차단하는 단계는,상기 데이터 전송 버스를 폐쇄하거나, 상기 데이터 전송 버스로 에러 메시지를 전달하는 것을 특징으로 하는 펌웨어 인증 방법.
- 제11항에 있어서,상기 펌웨어를 인증하는 단계는,펌웨어 데이터의 일부를 이용하여 인증 동작을 수행하는 것을 특징으로 하는 펌웨어 인증 방법.
- 제11항에 있어서,펌웨어 인증이 성공하면 상기 데이터 전송 버스로의 데이터 전송을 가능하게 하는 단계는,내부 콘텐츠 저장부, 광 디스크 및 메모리 카드 중 하나로부터 판독된 콘텐츠를 상기 데이터 전송 버스를 통해 디코딩 장치로 전송하는 것을 특징으로 하는 펌웨어 인증 방법.
- 제11항에 있어서,상기 펌웨어를 인증하는 장치에 전원이 들어오면 펌웨어 인증 방법이 개시되는 것을 특징으로 하는 펌웨어 인증 방법.
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)
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)
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)
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 |
-
2007
- 2007-06-20 KR KR1020070060684A patent/KR20080112010A/ko not_active Application Discontinuation
- 2007-12-27 US US11/964,809 patent/US20080320311A1/en not_active Abandoned
Cited By (4)
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 |