KR101776630B1 - 디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법 - Google Patents

디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법 Download PDF

Info

Publication number
KR101776630B1
KR101776630B1 KR1020127017474A KR20127017474A KR101776630B1 KR 101776630 B1 KR101776630 B1 KR 101776630B1 KR 1020127017474 A KR1020127017474 A KR 1020127017474A KR 20127017474 A KR20127017474 A KR 20127017474A KR 101776630 B1 KR101776630 B1 KR 101776630B1
Authority
KR
South Korea
Prior art keywords
interleaved
message digest
digital
firmware image
firmware
Prior art date
Application number
KR1020127017474A
Other languages
English (en)
Other versions
KR20120113749A (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 엘지전자 주식회사
Publication of KR20120113749A publication Critical patent/KR20120113749A/ko
Application granted granted Critical
Publication of KR101776630B1 publication Critical patent/KR101776630B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4432Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

본 명세서에서는 디지털 방송 수신기와 상기 디지털 방송 수신기의 부팅 방법이 개시된다. 본 발명에 따른 디지털 방송 수신기에서 시스템의 시큐어 부팅(secure booting) 방법의 일 예는, 전체 펌웨어 이미지에 대해 각각 디지털 서명을 생성하기 위한 복수의 인터리브드 포션들을 할당하는 단계, 상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계, 특정 인터리브드 포션을 선택하는 단계, 전체 펌웨어 이미지 내 상기 선택된 인터리브드 포션의 영역을 읽기 위하여 제1 메시지 다이제스트와 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계 및 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 단계를 포함하여 이루어지는 방법.

Description

디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법{DIGITAL BROADCAST RECEIVER AND BOOTING METHOD OF DIGITAL BROADCAST RECEIVER}
본 발명은 디지털 방송 수신기 및 디지털 방송 수신기의 부팅 방법에 관한 것으로, 더욱 상세하게는 시스템의 시큐리티(security)를 최대한 보장하면서 패스트 부팅(fast booting)을 하는 디지털 방송 수신기 및 상기 디지털 방송 수신기의 부팅 방법에 관한 것이다.
디지털 기술의 발전으로 가정뿐만 아니라 산업 전반에 디지털화가 가속화되고 있다. 다만, 이러한 디지털 기술은 긍정적인 부분뿐만 아니라 부정적인 부분도 함께 발전되었다. 이러한 부정적인 부분의 예로 해킹(hacking)을 들 수 있는데, 아날로그 시대와 달리 디지털 시대에서는 시간과 공간의 제한이 없어 이전에 비해 더욱 많은 해킹 시도가 있으며 그에 따른 많은 피해가 발생되고 있다. 최근에는 스마트 폰이나 스마트 TV 등의 보급이 활성화되면서 산업 현장뿐만 아니라 가정이나 개인의 디지털 기기에까지 해킹 시도가 잦아지고 있다.
디지털 기기는 전원이 온(on) 되면, 부팅 프로세스(booting process)가 실행된다. 부팅 프로세스 내에는 해당 디지털 기기의 시스템이 해킹 등 공격을 받았는지 시스템의 시큐리티(security)에 대한 체크(check)도 포함된다. 디지털 기기에서는 상술한 시큐리티 문제와 더불어 부팅 타임(booting time)을 어떻게 하면 줄일 것인가도 큰 관심사다.
결국 디지털 기기에서는 시큐리티를 최대한 보장하면서 부팅 타임을 최소화하는 것이 필요하다. 이러한 문제는 단지 디지털 기기의 CPU(Central Processing Unit)의 성능을 개선하는 것만으로는 한계가 있으며, 시큐리티와 부팅 타임 중 어느 하나를 강조하면 다른 하나가 희생되는 문제점이 있었다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 목적은 시스템의 시큐리티(security)를 보장하면서 부팅 시간(booting time)을 줄일 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 기존 시스템과 호환성(backward compatibility)을 유지하면서 전체 시스템을 효율을 높일 수 있는 방법 및 장치를 제공하는 것이다.
본 발명에 따른 디지털 방송 수신기에서 시스템의 시큐어 부팅(secure booting) 방법의 일 예는, 전체 펌웨어 이미지에 대해 각각 디지털 서명을 생성하기 위한 복수의 인터리브드 포션들을 할당하는 단계; 상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계; 특정 인터리브드 포션을 선택하는 단계; 전체 펌웨어 이미지 내 상기 선택된 인터리브드 포션의 영역을 읽기 위하여 제1 메시지 다이제스트와 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계; 및 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 단계;를 포함하여 이루어진다.
본 발명에 따른 디지털 방송 수신기에서 시스템의 시큐어 부팅 방법의 다른 예는, 파일 시스템에 기초하여 전체 펌웨어 이미지를 헤더 파트, 바디 파트 및 테일러 파트로 나누되, 상기 바디 파트는 각각 디지털 서명을 생성하기 위해 복수의 인터리브드 포션들을 할당받고, 전체 영역에 대한 상기 헤더 파트와 테일러 파트는 상기 바디 파트의 모든 인터리브드 포션들을 포함하는 단계; 상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계; 특정 인터리브드 포션을 선택하는 단계; 전체 펌웨어 이미지 내 헤더 파트와 테일러 파트 중 어느 하나를 읽기 위한 제1 메시지 다이제스트를 생성하고, 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계; 및 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 단계;를 포함하여 이루어진다.
본 발명에 따른 시스템을 시큐어 부팅하는 디지털 방송 수신기의 일 예는, 파일 시스템에 기초하여 전체 펌웨어 이미지를 헤더 파트, 바디 파트 및 테일러 파트로 구분하고, 상기 각 인터리브드 포션의 디지털 서명을 생성하도록 제어하되, 상기에서 바디 파트는 각각 디지털 서명을 생성하기 위해 복수의 인터리브드 포션들을 할당받고, 전체 영역에 대한 상기 헤더 파트와 테일러 파트는 상기 바디 파트의 모든 인터리브드 포션들을 포함하여 구성되되, 상기에서 제어부는, 특정 인터리브드 포션을 선택하고, 상기 전체 펌웨어 이미지 내 헤더 파트와 테일러 파트 중 어느 하나를 읽기 위한 제1 메시지 다이제스트와 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하고, 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅한다.
본 발명에 따르면,
첫째, 시스템의 시큐리티를 최대한 보장하면서 부팅 시간을 최소화시킬 수 있는 효과가 있다.
둘째, 부팅 시간을 줄여 사용자의 편의를 도모하고 사용자의 요청에 빠른 대응을 할 수 있는 효과가 있다.
셋째, 기존 시스템과 호환성을 유지하면서, 전체 시스템의 효율성을 높일 수 있는 효과가 있다.
도 1은 본 발명에 따른 디지털 텔레비전 수신기의 일 예에 대한 구성 블록도,
도 2는 본 발명에 따른 시큐어 부트 방법의 제1 실시 예를 설명하기 위해 도시한 도면,
도 3과 4는 본 발명에 따른 시큐어 부트 방법의 제2 실시 예를 설명하기 위해 도시한 도면,
도 5는 본 발명에 따른 시큐어 부트 방법의 제3 실시 예를 설명하기 위해 도시한 도면이고,
도 6은 도 5의 시큐어 부트 과정에 대한 순서도,
도 7은 본 발명과 관련하여, 파일 시스템의 일 예를 설명하기 위해 도시한 도면,
도 8은 상기 도 7의 파일 시스템의 특성을 이용하여 시큐어 부팅 방법을 설명하기 위해 도시한 도면,
도 9는 본 발명에 따라 시큐어 부팅 방법에 따른 동작 플로우의 일 예를 설명하기 위해 도시한 순서도,
도 10은 본 발명과 관련하여, 펌웨어 이미지 전체가 하나의 바이너리 이미지로 저장부에 저장된 것을 설명하기 위해 도시한 도면,
도 11은 본 발명과 관련하여, 디바이스에 저장되는 여러 애플리케이션들이 여러 파티션(여러 바이너리)으로 구분되어 저장부에 저장된 것을 설명하기 위해 도시한 도면,
도 12는 본 발명에 따라 각 파티션의 유저 에어리어(Used Area)에 대해서만 프래그먼트를 나누는 것을 설명하기 위해 도시한 도면,
도 13은 본 발명에 따른 시큐어 부트 방법의 제5 실시 예를 설명하기 위해 도시한 도면,
도 14는 본 발명에 따른 시큐어 부트 방법의 제6 실시 예를 설명하기 위해 도시한 도면,
도 15는 본 발명에 따른 시큐어 부트 방법의 제7 실시 예를 설명하기 위해 도시한 도면,
도 16은 본 발명에 따른 시큐어 부트 방법에 제8 실시 예를 설명하기 위해 도시한 도면, 그리고
도 17은 본 발명에 따라 시큐어 부팅 방법에 따른 동작 플로우의 다른 예를 설명하기 위해 도시한 순서도이다.
이하 첨부된 도면을 참조하여 본 발명에 따른 다양한 실시 예들을 구체적으로 설명한다.
본 발명은 디지털 방송 수신기 및 디지털 방송 수신기의 부팅 방법에 관한 것으로, 더욱 상세하게는 시스템의 시큐리티(security)를 보장하면서 패스트 부팅(fast booting)을 하는 디지털 방송 수신기 및 상기 디지털 방송 수신기의 부팅 방법에 관한 것이다.
이를 위해 이하 본 명세서에서는 본 발명의 이해를 돕고 설명의 편의를 위해, 부팅은 시큐어 부트 기법(secure boot method)를 예로 하여 설명한다. 또한, 디지털 방송 수신기는 각종 매체(medium)를 통해 전송되는 디지털 텔레비전 신호를 처리하는 디지털 텔레비전 수신기를 예로 하나, 이에 한정되는 것이 아니며 스마트 폰, 위성 Direct TV, 스마트 TV, IPTV, VOD 서비스가 가능 셋톱박스(set-top box) 등 임베디드 시스템(embedded system)을 포함하여 시큐어 부트를 수행하는 모든 시스템을 포함한다. 그 밖에 본 발명의 권리범위는 후술하는 실시 예들에 한정되는 것은 아니며, 본 명세서에서 설명되는 본 발명의 과제 해결의 원리를 동일 또는 유사한 방식으로 적용 가능한 모든 분야에 적용 가능함은 자명하다 할 것이다.
이하 본 명세서에서 ‘시큐어 부트 또는 시큐어 부팅’이라 함은, 종래 임베디드 시스템에서 사용되는 부팅 과정이 아니라 본 발명에 따라 후술하는 각 실시 예를 통해 시스템의 시큐리티를 최대한 보장하면서 패스트 부팅을 실현하기 위한 부팅 과정을 통칭하는 의미로 사용된다.
디지털 방송 수신기
도 1은 본 발명에 따른 디지털 텔레비전 수신기의 일 예에 대한 구성 블록도이다.
도 1에서는, 본 발명에 따라 후술하는 시큐어 부팅 방법의 다양한 실시 예들이 적용 가능한 시스템의 일 예로서 디지털 텔레비전 수신기를 도시하였다.
이러한 본 발명에 따른 디지털 텔레비전 수신기는 본 발명에 따른 시큐어 부팅 방법의 다양한 실시 예들 중 어느 하나에 따라 시스템의 시큐리티를 체크하고 부팅이 되고 나면, 안테나와 케이블을 통해 디지털 텔레비전 신호와 디지털 텔레비전 신호가 포함된 IP 패킷을 수신하여 처리한다. 또한, 상기 디지털 텔레비전 수신기는 전송되는 컨텐츠를 보호하기 위한 수단으로 제한 수신(Conditional Access), 컨텐츠 보호(Content Protection) 등을 사용할 수 있다. 이를 위해 상기 디지털 텔레비전 수신기는 제한 수신이나 컨텐츠 보호를 위한 일 예로서, 케이블카드(CableCARD), DCAS(Downloadable Conditional Access System)와 같은 방식을 사용할 수 있다. 상기 케이블카드나 DCAS 등의 사용 여부는 서비스를 제공하는 서비스 제공자의 선택이며, 상기 케이블카드나 DCAS 등을 수신기에 사용하는 경우, 수신기와 통신하는 서비스 제공자 측에서도 상기 시스템을 사용하여야 한다.
이하에서는 디지털 텔레비전 수신기를 구성하는 각 구성요소에 대해 설명하고, 시큐어 부팅 방법에 대해서는 후술하고 여기서 상세한 설명은 생략한다.
도 1에서는 IP를 기반으로 하는 IPTV 서비스, 케이블 방송, 지상파 방송, 위성 방송 등을 모두 수신할 수 있는 형태의 디지털 텔레비전 수신기를 도시하였다. 다만, 도 1의 수신기는 구현 예에 따라 IPTV 서비스만 수신하거나, 케이블 방송만 수신하여 처리할 수도 있다. 또한, 도 1의 각 구성요소는 구현 예에 따라 다른 명칭으로 불릴 수도 있다.
도 1의 수신기는 크게 호스트(HOST)와 케이블카드(CableCARD)로 구성된다. 호스트는, 제1 튜너(Tuner)(102), 제2 튜너(104), 복조부(demodulator)(106), 다중화부(multiplexer)(108), 역다중화부(demultiplexer)(110), 디코더(decoder)(112), 이더넷(ethernet) NIC(Network Interface Card)(114), TCP/IP네트워크부(116), TP(Transport Packet) 파싱부(parser)(118), 제어부(122), DCAS(Downloadable CAS)부(124), DVR(Digital Video Recorder)제어부(126), 컨텐츠 암호화부(content encryption)(128), 스토리지 인터페이스부(storage interface)(130) 및 저장부(132)를 포함한다. 상기 케이블카드(120)는 하나의 스트림만을 처리할 수 있는 싱글 스트림(Single stream) 카드일 수도 있고, 다수 개의 스트림들을 동시에 처리할 수 있는 멀티 스트림(Multistream) 카드일 수도 있다.
수신기는 제한 수신(Conditional Access; CA) 시스템을 포함하는 케이블카드가 본체로부터 분리된 오픈 케이블 방식이다. 상기 케이블카드는 POD(Point Of Deployment) 모듈이라고도 하며, 상기 수신기의 본체 슬롯에 장/탈착 가능하도록 되어 있다. 그리고 상기 케이블카드가 삽입되는 본체를 호스트라 하기도 한다. 즉, 상기 케이블카드와 호스트를 합쳐서 수신기라 한다. 네트워크 연결부(140)는 외부 네트워크 망과 수신기를 연결하는 역할을 한다. 예를 들어, 외부 IP 네트워크 망과 상기 수신기를 연결할 수 있다. 일 예로 MoCA(Multimedia Over Coax Alliance)를 사용하는 경우, 동축 케이블(coaxial cable) 네트워크 망 상에서 IP 기반의 네트워크를 구축하여 연결할 수 있다. 또는, DOCSIS 모뎀을 이용하여 외부 네트워크 망과 연결할 수도 있으며, 무선 인터넷 네트워크 망과 연결하는 무선 중계기, 유선 ADSL 중계기와 같이 유선 인터넷 네트워크 망과 연결하는 유선 중계기 등을 이용하여 외부 네트워크 망과 연결할 수도 있다. 상기 외부 네트워크 망과의 연결 예는 일 실시 예이며, 어느 것을 사용할지 여부는 어떠한 방식으로 외부 네트워크 망과 연결되는 지에 따라 달라질 수 있다.
제1 튜너(102)는 안테나를 통해 전송되는 지상파 A/V(Audio/Video) 방송이나 네트워크 연결부(140)와 연결된 케이블을 통해 인-밴드(In-band)로 전송되는 케이블 A/V 방송 중 특정 채널 주파수만을 튜닝하여 복조부(106)로 출력한다.
이때, 지상파 방송과 케이블 방송은 전송 방식이 다르므로 복조부(106)에서의 복조 방식도 다르다. 예를 들어, 지상파 A/V 방송은 VSB(Vestigial Sideband Modulation) 방식으로 변조되어 전송되고, 케이블 A/V 방송은 QAM(Quadrature Amplitude Modulation) 방식으로 변조되어 전송된다. 그러므로 제1 튜너(102)에서 튜닝된 채널 주파수가 지상파 방송이면 복조부(106)에서 VSB 방식으로 복조 되고, 케이블 방송이면 QAM 방식으로 복조 된다.
제2 튜너(104)는 네트워크 연결부(140)와 연결된 케이블을 통해 인-밴드(In-band)로 전송되는 케이블 A/V 방송 중 특정 채널 주파수만을 튜닝하여 복조부(106)로 출력한다.
제1 튜너(102)와 제2 튜너(104)는 이용하여 서로 다른 채널의 신호를 튜닝하여 복조부(106)로 전송할 수 있다. 또는, 상기 제1 튜너(102)와 같은 채널의 서로 다른 A/V 스트림을 튜닝하여 복조부(106)로 전송할 수 있다. 예를 들어, 제1 튜너(102)에서는 메인 픽쳐의 스트림을 튜닝하고, 제2 튜너(104)는 PIP(Picture in Picture)의 스트림을 튜닝할 수 있다. 그리고, DVR 등을 이용하여 디지털 영상 신호를 저장하는 경우, 상기 제1 튜너(102)와 제2 튜너(104)를 사용함으로써 영상을 시청하면서 동시에 영상 신호를 저장(watch & record)할 수도 있다.
복조부(106)는, 수신된 신호를 복조하여 다중화부(108)로 전송한다. 다중화부(108)은 복조부(106)와 TP(Transport Packet) 파싱부(118)에서 입력된 신호를 다중화(multiplexing)하여 출력할 수 있다. 예를 들어, 상기 제1 튜너(102)에서 튜닝되어 복조된 메인 영상과 제2 튜너(104)에서 튜닝되어 복조된 PIP 영상을 다중화하여 출력할 수 있다. 또는, 구현 예에 따라, 다른 채널의 영상을 다중화할 수도 있고, 상기 TP 파싱부(118)에서 출력된 신호와 다중화하여 출력할 수도 있다.
다중화부(108)에서 출력된 신호가 지상파 방송 신호이면 입력된 신호를 역다중화부(110)로 출력하고, 케이블 방송이거나 IPTV 방송 신호이면 슬롯에 장착된 케이블카드(120)를 통해 역다중화부(110)로 출력한다. 상기 케이블카드(120)는 고부가 가치의 방송 콘텐츠에 대한 복사 방지 및 제한적인 접근을 위하여, 제한 수신(Conditional Access; CA) 시스템을 포함하며, POD(Point Of Deployment) 모듈이라고도 한다. 즉, 상기 케이블카드(120)는 수신된 방송 신호에 스크램블(scramble)이 걸려있다면 디스크램블(descramble)하여 역다중화부(110)로 출력한다. 만일 케이블카드(120)가 장착되어 있지 않다면 상기 다중화부(108)에서 출력된 A/V 방송 신호는 바로 역다중화부(110)로 출력된다. 이 경우 스크램블된 A/V 방송 신호는 디스크램블을 하지 못하므로 정상적으로 시청하지 못한다.
역다중화부(110)는 입력된 비디오 신호와 오디오 신호를 분리하여 디코더(112)로 출력한다. 상기 디코더(112)는 각각 비디오 디코딩 알고리즘과 오디오 디코딩 알고리즘을 통해 압축된 A/V 신호를 원래 신호로 복원한 후 디스플레이를 위해 출력한다.
DVR 제어부(126), 컨텐츠 암호화부(128), 스토리지 인터페이스부(130), 및 저장부(132)는, 수신된 디지털 데이터를 저장하거나 저장된 데이터를 재생하는 역할을 수행한다. DVR 제어부(126)는 제어부(122)의 제어에 따라 역다중화부(110)에서 출력된 데이터 가운데 선택된 영상 데이터 등을 저장하거나 또는 저장된 데이터 가운데 선택된 영상 데이터 등을 재생하도록 제어한다. 컨텐츠 암호화부(128)는 저장하고자 하는 데이터를 암호화(encryption)하여 출력하거나, 암호화되어 저장된 데이터를 복원하여 출력한다. 상기 암호화부(128)는 구현 예에 따라 사용되지 않을 수도 있다.
스토리지 인터페이스부(130)는, 저장부(132)와의 데이터 입출력 인터페이스를 수행하며, 저장부(132)는 입력된 데이터를 저장한다.
DCAS부(124)는, 송신 측 서버로부터 수신 제한 시스템(CAS)을 다운로드 받아 저장할 수 있으며, 상기 저장된 수신 제한 시스템 가운데 적정한 수신 제한 시스템에 따라 수신 제한 기능을 수행한다. 제어부(122)는 호스트와 케이블카드 사이의 인터페이스 및 상기 호스트의 데이터 처리 등을 제어한다.
이더넷 NIC(114)는, 네트워크 연결부(140)를 통해 수신된 신호 가운데 특정 IP 주소로 전송되는 이더넷 프레임(ethernet frame) 패킷을 수신하여 TCP/IP 네트워크부(116)로 전송한다. 또는, 양방향 통신에 따른 데이터(예를 들면, 유료 프로그램 신청, 수신기의 상태 정보, 사용자 입력 등)를 상기 TCP/IP 네트워크부(116)로부터 수신하여 네트워크 연결부(140)를 통해 외부 망으로 전송한다. 상기 특정 IP 주소는 호스트 자체의 IP 주소 또는 케이블카드의 IP 주소일 수 있다.
도 1과 같은 수신기의 경우, IP 프로토콜에 따른 IPTV 방송 신호나, VOD(Video On Demand) 신호, 또는 OOB(Out Of Band) 메시지 신호가 상기 이더넷 NIC(114)를 통해 수신될 수 있다. 기존 케이블 방송의 경우, DSG(DOCSIS Set-top Gateway) 방식이나 OOB(Out Of Band) 방식 등을 이용하여 SI(System Information), EAS(Emergency Alert System), XAIT(eXtended Application Information Table), 제한수신 시스템 정보, 각종 케이블카드 제어 정보 등과 같은 OOB 메시지를 수신한다.
도 1과 같은 수신기의 경우 호스트 내부에 DOCSIS 모뎀이나, OOB 튜너 등을 구비하여 상기 OOB 메시지를 수신할 수도 있다. 예를 들어, IP 방식과 OOB 방식 가운데 하나의 방식을 이용하여 OOB 메시지를 수신할 수도 있고, IP 방식과 DSG 방식, OOB 방식 가운데 하나의 방식을 이용하여 OOB 메시지를 수신할 수도 있다.
IP 방식과 OOB 방식 가운데 하나의 방식을 이용하여 OOB 메시지를 수신하는 경우에는, 도 1과 같은 수신기에서 OOB 모뎀, 복조부 등이 더 필요하다. 그리고 IP 방식과 DSG 방식, OOB 방식 가운데 하나의 방식을 이용하여 OOB 메시지를 수신하는 경우에는, 도 1과 같은 수신기에서 DOCSIS 모뎀, OOB 모뎀, 상기 DSG 방식과 OOB 방식을 선택하도록 하는 스위칭부, 각 방식에 따라 헤드엔드 측으로 데이터를 전송하기 위한 복조부 등이 더 필요하다.
상기와 같이, IP 방식과 기존 DSG 방식, OOB 방식을 모두 사용할 수 있는 경우나, DSG 방식을 제외하고 IP 방식과 OOB 방식을 사용할 수 있는 경우, 어떤 방식을 사용할지 여부는 송신 측에서 정하여 케이블카드에 전송한다.
케이블카드는 상기 송신 측에서 정하여진 정보에 따라 호스트에 동작 방식을 알려준다. 이러한 경우, 백워드 호환성(backword compatibility) 문제도 해결될 수 있다.
도 1의 수신기에서는 설명의 편의를 위해, 상기 DOCSIS 모뎀을 이용하는 DSG 방식이나 OOB 튜너를 이용하는 OOB 방식이 아닌, IP를 이용한 이더넷 NIC(114)를 통하여 OOB 메시지 등을 수신하는 경우를 주로 설명하도록 한다. 이러한 경우, 송신 측에서는 상기 OOB 메시지 등을 IP를 이용하여 패킷화 하여 전송하여야 한다. VOD나 IPTV 방송과 같은 경우에는 상기 VDD 패킷이나 IPTV 방송 패킷과 같은 패킷 형태로 제한수신 시스템 정보와 같은 메시지 등이 수신될 수 있다.
상기에서 예로 든 OOB 메시지는 일 예에 불과하며, 구현 예에 따라 상기 예로 든 정보 이외의 필요한 다른 정보가 추가되거나, 상기 예로 든 정보 가운데 필요하지 않은 정보가 제외될 수도 있다.
TCP(Transmission Control Protocol)/IP(Internet Protocol) 네트워크부(116)는 수신된 패킷을 TCP/IP 프로토콜 기반의 네트워크 스택(stack)을 이용하여 패킷의 목적지로 라우팅(routing)한다. TCP/IP 네트워크부(116)는 TCP/IP 프로토콜과 UDP(User Datagram Protocl)/IP 프로토콜을 모두 지원한다.
TCP/IP 네트워크부(116)는 수신된 VOD 신호나 IPTV 방송 신호는 TP(Transport Packet) 파싱부(118)로 라우팅한다. TP 파싱부(118)는 수신된 MPEG(Moving Picture Expert Groups) 기반의 TP 패킷을 파싱(parsing)하여 다중화부(108)로 출력한다. 다중화부(108) 이후의 과정은 상기에서 설명한 바와 같다. 상기 예에서는 MPEG을 기반으로 한 경우의 방송 신호를 가정하였으므로 TP 패킷을 수신하여 파싱하지만, 다른 규격을 사용하는 방송 신호가 수신되는 경우에는 TP 패킷 단위가 아닌 다른 단위가 사용될 수도 있다. 따라서, 상기 발명의 사상은 구현 예에 따른 용어에 제한되지 아니한다.
TCP/IP 네트워크부(116)는 패킷의 목적지가 케이블카드(120)인 패킷을 상기 케이블카드(120)로 전송한다.
패킷의 목적지가 케이블카드(120)인 패킷 가운데 하나인 OOB(Out Of Band) 메시지는 TCP/IP 네트워크부(116)에서 라우팅되어 케이블카드(120)로 전송된다. OOB 메시지를 케이블카드(120)로 라우팅하는 경우, 제2 계층(2nd layer) 라우팅 또는 제3 계층(3rd layer) 라우팅을 통해 케이블카드(120)로 데이터를 전송할 수 있다. 상기 제2 계층 라우팅을 사용하는 경우, 수신된 이더넷 프레임의 헤더(header)에 포함되어 있는 목적지의 MAC(Media Access Control) 주소 체계를 이용하여 라우팅한다. 제3 계층 라우팅을 사용하는 경우, 수신된 이더넷 프레임의 IP 헤더(header)에 포함되어 있는 목적지의 IP 주소 체계를 이용하여 라우팅한다. 상기 제2 계층 라우팅 또는 제3 계층 라우팅의 사용 여부는 구현 예에 따라 달라질 수 있다. 즉, 구현 예에 따라 제2 계층 라우팅 방식을 사용할 수도 있고, 제3 계층 라우팅 방식을 사용할 수도 있다.
케이블카드와 호스트 간에는 데이터 채널(Data Channel)과 확장 채널(Extended Channel)이 존재한다. 데이터 채널은 호스트와 케이블카드 사이에 제어 신호를 주고받도록 설정되고, 확장 채널은 실제 데이터를 주고 받도록 설정된 채널이다. 확장 채널은 호스트와 케이블카드 간에 데이터를 주고받도록 정의된 CPU 인터페이스이다. 즉, 케이블카드는 송신 측과 통신을 해서 송신 측으로부터 받은 명령을 해석한 후 상기 데이터 채널 및 확장 채널을 통해 호스트와 서로 통신을 하면서 송신 측이 지시한 사항을 수행하게 하거나, 사용자가 입력한 내용들을 송신 측으로 전달하는 역할을 한다.
이때, 확장 채널을 통해서 데이터를 전송하기 위해서는 먼저, 케이블카드와 호스트 간에 정의된 데이터 타입에 해당되는 전송 선로를 설정해야 한다. 이를 플로우(Flow)라 한다. 예를 들어, MPEG 섹션 데이터를 전송하기 위해서는 먼저 케이블카드와 호스트 간에 MPEG 섹션 플로우를 설정한 뒤에 해당 플로우 상에 실제 MPEG 섹션 데이터를 전송할 수 있다. 확장 채널 상의 플로우에는 IP 유니캐스트(IP_U) 플로우, IP 멀티캐스트(IP_M) 플로우, DSG 플로우 및 최대 6개의 MPEG 섹션 플로우 등이 있다. 다만, 호스트 내부에 DOCSIS 모뎀과 같은 eCM(embeded Cable Modem)을 사용하지 않는 경우, 상기 플로우 가운데 DSG 플로우는 사용되지 아니한다.
상기에서 설명한 바와 같은 호스트의 통신 동작 모드를 설정하거나, 호스트와 케이블카드 사이에 OOB 메시지 등을 주고 받기 전에, 호스트는 호스트의 네트워크 동작 모드 지원 정보를 케이블카드 측에 알려주어야 한다. 따라서, 호스트의 부팅(booting) 시나 카드가 삽입된 경우와 같이 호스트와 케이블카드 간 인터페이스가 초기화되는 중에, 호스트는 상기 호스트의 네트워크 동작 모드 지원 정보를 케이블카드 측에 전송한다.
이하에서는 상술한 디지털 텔레비전 수신기에 적용 가능한 본 발명에 따른 시큐어 부트 방법의 다양한 실시 예들을 상세하게 설명한다.
본 발명에 따른 각 실시 예에서의 시큐어 부트 과정 즉, 칩(Chip)에서 지원해 주는 시큐어 부트(Secure Boot) 과정은,
1) 일회용 패스워드(OTP: One-Time Password)(예를 들어, 공개 키(Public Key))를 통하여 부트 로더(Boot Loader)의 디지털 서명(Digital Signature)에 대한 인증(Authentication or Verification)을 실행(1차 인증(1st Authentication))하고,
2) 1차 인증에 성공(pass)하면, 다음으로 부트 로더에서 펌웨어(Firmware)(또는 펌웨어 이미지)의 디지털 서명에 대하여 인증을 실행(2차 인증(2nd Authentication))한다. 이러한 시큐어 부트 과정을 트러스티드 체인(Trusted Chain)이라고도 한다.
여기서, 상술한 1차 인증 및 2차 인증 중 어느 하나라도 인증에 실패(Failure)하면, 시스템 부팅(System Booting)은 중단된다. 그러나 1차 인증 및 2차 인증 모두 인증에 성공하였다면, 시스템 부팅 이후 해당 시스템의 본래의 기능 수행을 시작한다.
예를 들어, 본 발명은 특히, 2차 인증에 관한 것으로, 2차 인증 과정에서 디바이스 또는 시스템의 시큐리티를 최대한 보장하면서 최소한의 부팅 시간으로 패스트 부트를 실현하고자 하는 것이다.
이하 본 발명의 각 실시 예는 예를 들어, 해당 시스템의 저장부(storage)(200)상에 저장된 펌웨어(230)에 적용될 수 있다. 저장부(200)에는, 플래시 메모리(flash memory), 하드 디스크(HDD: Hard disk drive) 등 모든 저장매체가 포함된다.
제1 실시 예
도 2는 본 발명에 따른 시큐어 부트 방법의 제1 실시 예를 설명하기 위해 도시한 도면이다.
제1 실시 예에서는 시큐어 부트를 위해, 개인 키(private key)를 이용하여 저장부(200) 내 펌웨어(230)의 모든 영역에 대한 하나의 디지털 서명(digital signature)을 생성한다. 그리고 생성된 디지털 서명을 저장부(200) 상의 특정 영역(240)에 저장한다.
이후 개인 키에 대응되는 공개 키를 가진 부트 로더(210)는, 매 부팅시마다 펌웨어(230)의 전체 영역을 읽어(Read) 생성된 디지털 서명과 비교를 통해 해당 펌웨어의 시큐리티에 대한 인증 과정을 수행한다.
제1 실시 예에 따르면, 부트 로더(210)에서 매 부팅시마다 펌웨어(230)의 전체 영역을 읽어 인증 과정을 수행하는바, 해커(hacker)의 공격으로부터 시스템의 시큐리티에 대한 완전한 체크가 가능하다. 다만, 제1 실시 예에 따르면, 인증 과정에서 부트 로더(210)가 펌웨어(230)의 모든 영역을 읽어 인증하기 때문에 인증 타임(Authentication Time)이 길어진다. 이는 곧 시스템 전체의 부팅 타임이 길어진다는 것을 의미한다. 따라서, 펌웨어의 사이즈(Size)가 큰 경우에 제1 실시 예에 따라 인증 과정을 수행하면 그만큼 인증 타임이 증가하여 전체적인 부팅 타임이 증가될 수 있다.
제2 실시 예
도 3과 4는 본 발명에 따른 시큐어 부트 방법의 제2 실시 예를 설명하기 위해 도시한 도면이다.
도 3 내지 4를 참조하면, 제2 실시 예에서는, 인증 과정에서 부트 로더(210)가 매 부팅 시마다 펌웨어의 전체 영역을 읽는 제1 실시 예와 달리, 펌웨어 내 특정 영역(들)(이하 인터리브드 포션(interleaved portion(s))만을 읽고 상기 펌웨어 전체 영역 또는 상기 특정 영역(들)에 대해 생성된 하나의 디지털 서명에 대한 인증을 한다.
도 3에서는 펌웨어 내 1개의 인터리브드 포션 만이 존재한 경우를 예시하였고, 도 4에서는 펌웨어 내 3개의 인터리브드 포션이 존재한 경우를 예시하였다.
도 3을 참조하면, 인터리브드 포션(310)은 예를 들어, 펌웨어(230)의 최상부에서 15MB의 오프셋 위치의 영역에서 5MB의 사이즈를 가지고 형성된다.
따라서, 매 부팅시마다 부트 로더(210)는 펌웨어(230) 내 인터리브드 포션(310)만이 위치한 영역을 읽고 인증 과정을 수행하여 상기 펌웨어(230) 전체 영역에 대한 인증을 대신한다.
도 4에서는, 제1 내지 제3 인터리브드 포션(410, 420, 430)이 펌웨어(230)의 최상부를 기준으로 각각 0MB, 10MB, 20MB 오프셋 위치의 영역에서 1MB의 사이즈를 가지고 형성된다.
따라서, 매 부팅시마다 부트 로더(210)는 펌웨어(230) 내 제1 내지 제3 인터리브드 포션(410, 420, 430)만을 읽고 인증 과정을 수행하여 상기 펌웨어(230) 전체에 대한 인증을 대신한다.
상술한 도 3 내지 4에 도시된 제2 실시 예에서, 인터리브드 포션 각각의 펌웨어 내 사이즈 및 오프셋 위치와 개수 등은 모두 디바이스의 시스템의 성능과 목표로 하는 인증 타임 또는/및 목표로 하는 시큐리티 레벨 등을 종합적으로 고려하여 결정되고 도시된 바에 한정되는 것은 아니다.
따라서, 제2 실시 예에 따르면, 제1 실시 예에 비해 인증 타임을 현저히 줄일 수 있어 부팅 시간을 줄일 수 있는 반면, 펌웨어(230) 내 인터리브드 포션이 형성된 영역 이외의 영역에 대한 해커의 공격에 대해서는 취약하여 제1 실시 예에 비해 해커의 공격에 대한 시큐리티의 보장의 측면에서 안정성은 떨어질 수 있다.
제3 실시 예
도 5는 본 발명에 따른 시큐어 부트 방법의 제3 실시 예를 설명하기 위해 도시한 도면이고, 도 6은 도 5의 시큐어 부트 과정에 대한 순서도이다.
본 발명에 따른 디지털 방송 수신기에서 시스템의 시큐어 부팅(secure booting) 방법의 일 예는, 전체 펌웨어 이미지에 대해 각각 디지털 서명을 생성하기 위한 복수의 인터리브드 포션들을 할당하는 단계, 상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계, 특정 인터리브드 포션을 선택하는 단계, 전체 펌웨어 이미지 내 상기 선택된 인터리브드 포션의 영역을 읽기 위하여 제1 메시지 다이제스트와 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계 및 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 단계를 포함하여 이루어진다.
전술한 제1 실시 예는 해커의 공격으로부터 시큐리티 보장의 측면이 강조되었고, 제2 실시 예는 인증 타임의 측면이 강조되었다. 다만, 제1 실시 예 및 제2 실시 예는 시큐리티를 보장하면서 패스트 부팅을 위해서는 부족함이 있을 수 있는바, 이하에서는 양자를 모두 충족시킬 수 있는 실시 예들을 설명한다.
이하, 도 5에 도시된 제3 실시 예를 도 6을 참조하여 순차적으로 설명하면, 다음과 같다.
우선, 펌웨어(230)의 전체 영역을 N개의 영역(area)으로 구분하고, 복수 개의 인터리브드 포션(멀티플 인터리브드 포션, multiple interleaved portion)(도 5에서는 A 인터리브드 포션 510, B 인터리브드 포션 520 및 C 인터리브드 포션 530이 예시됨)을 생성하여 상기 구분된 N개의 영역에 적절하게 배열한다(S601). 즉, 펌웨어(240) 전체에 대해 구분된 N개의 각 영역에 A 내지 C의 인터리브드 포션이 시스템에서 결정된 순서에 따라 적절하게 배열된다. 도 5에서는 예를 들어, N개의 영역에 대해 A-C-B-A-C-A-B-C-B-C-B-A 인터리브드 포션의 순서로 배열된 것을 알 수 있다. 다만, 이러한 배열의 순서는 본 명세서에서 예시한 것으로, 본 발명이 이에 한정되는 것은 아니다.
상기에서, N은 현재 펌웨어(240)에서 기 사용 중인 모든 영역이 커버(cover)되도록 설정되어 펌웨어에 대한 시큐리티를 체크하여 인증함으로써 패스트 부팅을 실현하기 위하여 해당 시스템의 특성을 고려하여 결정될 수 있다. 또한, 이는 펌웨어 사용 추이, 업그레이드 등에 따라 추후 변경될 수 있다.
또한, N개로 구분된 펌웨어(240) 내 각 영역의 사이즈는 예를 들어, 상기 인터리브드 포션의 사이즈와 동일할 수 있다.
또한, 도 5를 참조하면, 인터리브드 포션이 펌웨어 내 N개의 영역 중 하나 건너 하나의 영역마다 존재하는 것처럼 도시되었으나, 이는 본 발명의 이해를 돕고 설명의 편의를 위한 것으로, 상기 각 인터리브드 포션은 펌웨어 전체 영역을 커버하도록 구분된 N개의 각 영역 상에 모두 존재할 수 있다. 또는, 펌웨어 전체 영역이 미사용된(Unused) 영역을 포함하여 N개로 구분된 경우에는, 인터리브드 포션 사이의 공간은 현재 펌웨어 전체 영역 중 미사용된(Unused) 영역으로 이해할 수도 있다.
그리고 N개의 영역들에 대해 적절하게 배열된 멀티플 인터리브드 포션들 각각에 대해 디지털 서명을 생성하고, 생성된 디지털 서명을 미리 설정된 영역에 저장한다(S602). 여기서, 디지털 서명은 멀티플 인터리브드 포션들의 개수만큼 생성되어, 전술한 제1 및 제2 실시 예와 상이하다. 도 5를 참조하면, A 내지 C 인터리브드 포션이 펌웨어(23) 전체 영역을 커버하는 N개의 영역들에 배열되는바, A 내지 C 인터리브드 포션 각각에 대응되는 총 3개의 디지털 서명(A 인터리브드 포션이 위치한 펌웨어 내 영역들을 위한 디지털 서명, B 인터리브드 포션이 위치한 펌웨어 내 영역들을 위한 디지털 서명, C 인터리브드 포션이 위치한 펌웨어 내 영역들을 위한 디지털 서명)이 생성되고 저장된 것을 알 수 있다.
S602 단계 이후, 매 부팅시마다 시스템은, 멀티플 인터리브드 포션들 중 어느 하나의 인터리브드 포션을 선택한다(S603). 여기서, 상기 선택은 트루 랜덤(true random)을 실현하기 위한 선택 기법 예를 들어, 등확률 추출법(equal probability selection method)이 이용될 수 있다. 다만, 본 명세서에서는 상기 선택과 관련하여, 등확률 추출법에 한정되는 것은 아니며 해커의 공격에 의한 피해를 최소화하기 위하여 상기 선택이 일정한 패턴이 형성되지 않는 트루 랜덤(true random)이 실현될 수 있는 다양한 방법들이 이용될 수 있으나, 이에 대해 상세한 설명은 공지된 기술을 이용하여 여기서 더 이상 설명하지는 않는다.
S603 단계에서 선택된 인터리브드 포션의 영역에 대해 해시(hash)를 생성하고, 생성된 해시를 상기 선택된 인터리브드 포션에 대한 디지털 서명과 비교한다(S604).
S604 단계에서 비교한 결과, 만약 시큐리티 컴프로마이지(security compromise)가 디텍트(detect)되면, 시스템은 해커의 공격이 있거나 시스템 부팅이 적절하지 않으므로 더 이상의 시스템 부팅 과정을 수행하지 않도록 부트 코드를 수정하거나 또는 부트 코드를 위한 디지털 서명을 수정한다(S605). 그러나 반대의 경우에는 시스템은 시큐어 부팅을 완료한다.
이상, 도 5 및 6을 참조하여, 제3 실시 예에 따르면, 해커의 공격에 대하여 펌웨어 전체 영역에 대한 시큐리티 여부를 확인할 수 있을 뿐만 아니라, 상기 펌웨어 전체 영역을 읽는 것은 아니므로 패스트 부팅을 실현할 수 있게 된다.
또한, 본 발명을 실제 시스템에 적용할 때, 적용되는 시스템의 컴퓨팅 파워(computing power)에 따라서 여러 가지 응용 스킴(scheme)을 적용할 수 있다. 예를 들어, 멀티 코어(multi core)나 멀티 프로세서 시스템(multi processor system)에서는, 1개의 인터리브드 포션이 아니라 다수 개의 인터리브드 포션들을 선택해서 각각의 인터리브드 포션에 대해서 각각 인증(authentication)을 병렬적으로 수행하여 인증 타임(authentication time)의 많은 증가 없이 변조된 코드(code)에 대한 검출 빈도를 더 높일 수 있다. 또는, 1개의 인터리브드 포션을 선택하더라도 (예를 들어, A 인터리브드 포션을 선택) 선택된 A 인터리브드 포션이 배열된 영역들(도 5에서는 3개 포션이 있음)에 대한 인증을 병렬적으로 수행하여 인증 타임을 줄일 수도 있다.
제4 실시 예
도 7은 본 발명과 관련하여, 파일 시스템의 일 예를 설명하기 위해 도시한 도면이고, 도 8은 도 7의 파일 시스템의 특성을 이용하여 시큐어 부팅 방법을 설명하기 위해 도시한 도면이다.
본 발명에 따른 디지털 방송 수신기에서 시스템의 시큐어 부팅 방법의 일 예는, 파일 시스템에 기초하여 전체 펌웨어 이미지를 헤더 파트, 바디 파트 및 테일러 파트로 나누되, 상기 바디 파트는 각각 디지털 서명을 생성하기 위해 복수의 인터리브드 포션들을 할당받고, 전체 영역에 대한 상기 헤더 파트와 테일러 파트는 상기 바디 파트의 모든 인터리브드 포션들을 포함하는 단계, 상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계, 특정 인터리브드 포션을 선택하는 단계, 전체 펌웨어 이미지 내 헤더 파트와 테일러 파트 중 어느 하나를 읽기 위한 제1 메시지 다이제스트를 생성하고, 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계 및 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅 하는 단계를 포함하여 이루어진다.
본 발명과 관련하여, 디바이스는 고유의 파일 시스템을 구비하고 있다. 도 7에서는 본 발명의 설명의 편의를 위해 이러한 고유의 파일 시스템의 예로 스쿼시 파일 시스템(Squash File System)의 레이아웃(layout)의 일 예를 도시하였다.
도 7을 참조하면, 스쿼시 파일 시스템은, 슈퍼 블록(super block)이라는 헤더 파트(header part), 데이터블록들(datablocks)과 프래그먼트들(fragments)이 포함된 바디 파트(body part), 이노드 테이블(inode table), 디렉토리 테이블(directory table), 프래그먼트 테이블(fragment table), 엑스포트 테이블(export tale), uid/gid 테이블(uid/gid table)이 포함된 테일러 파트(tailor part)을 포함하여 구성된다.
여기서, 도 7에 도시된 스쿼시 파일 시스템은 기본적으로 데이터블록들이나 프래그먼트들에 어떠한 변경 등이 있으면, 헤더 파트의 데이터가 변경 내지 업데이트 된다. 즉, 데이터블록들이나 프래그먼트들에 어떠한 변경 등을 헤더 파트를 이용하여 알 수 있다.
도 8에서는 이러한 도 7의 스쿼시 파일 시스템의 특성을 참고하여 시큐어 부팅 방법에 이용하고자 한다.
도 8을 보면, 펌웨어(230)의 전체 영역이 도 7의 스쿼시 파일 시스템과 같이, 슈퍼 블록 영역(이하 헤더 파트), 데이터 블록 영역(이하 바디 파트) 및 이노드 테이블(inode table), 디렉토리 테이블(directory table), 프래그먼트 테이블(fragment table), 엑스포트 테이블(export tale), uid/gid 테이블(uid/gid table) 영역(이하 테일러 파트)으로 구분된 것을 알 수 있다.
여기서, 바디 파트는 예를 들어, 전술한 제3 실시 예에서와 같이, 바디 파트 전체를 N개의 영역으로 구분하고, N개로 구분된 바디 파트 전체에 대해 멀티플 인터리브드 포션들(예를 들어, 도 8에서는 A, B, C 인터리브드 포션)을 적절하게 배열한다. 도 8에서는 바디 파트에 C-B-A-C-A-B-C-B-C-B 인터리브드 포션이 순차 배열된 것이 예시되었다.
이에 반해, 헤더 파트와 테일러 파트에는, 상기 멀티플 인터리브드 포션들이 모두 포함된다. 도 8에서는 헤더와 테일러 파트에 A, B, C 인터리브드 포션이 모두 포함되어 존재하는 것을 알 수 있다.
따라서, 전술한 스쿼시 파일 시스템의 특성을 이용하면, 전술한 제3 실시 예에 따라 적어도 하나의 인터리브드 포션을 트루 랜덤에 의해 선택하더라도 항상 헤더나 테일러 파트는 포함되며, 상기 헤더나 테일러 파트 중 적어도 어느 하나의 영역만을 인증하더라도 바디 파트의 변경 등의 정보가 상기 헤더나 테일러 파트에 업데이트 되므로, 시큐리티를 보장하면서 패스트 부팅을 할 수 있다. 따라서, 해커가 헤더나 테일러 파트를 직접 공격 변조시킨 경우에는 바로 디텍션(detection)을 할 수 있고, 바디 파트 중 일부에 대해 공격 변조시킨 경우에도 이러한 정보가 헤더나 테일러 파트 중 적어도 하나에는 반영이 되므로 이를 디텍션할 수 있게 된다.
그러므로, 제4 실시 예에 따라면, 디바이스(Device)의 파일 시스템(File system) 상에 발생 가능한 시큐리티 컴프로마이즈(security compromise)를 효과적으로 방지할 수 있다.
도 9는 본 발명에 따라 시큐어 부팅 방법에 따른 동작 플로우의 일 예를 설명하기 위해 도시한 순서도이다.
도 9는 전자 서명방법으로 PKI(Public Key Infrastructure) 기반의 알고리즘을 사용하고, 임베디드 환경 아래에서 상기 PKI 알고리즘의 계산량(시간)을 줄이기 위해 메시지 다이제스트(message digest) 알고리즘을 추가로 사용한다.
도 1의 CPU(122)는 시스템이 부팅 시에, 도 9에 예시된 동작 플로우(operation flow)를 진행한다. 즉, 시스템이 매번 부팅 시마다, CPU(122)는 멀티플 인터리브드 포션들 중에서 임의의 인터리브드 포션을 랜덤(random)하게 선택하고(S901), 선택된 인터리브드 포션이 지정하고 있는 저장부(Storage) 상의 각각의 위치에서 미리 정의된 사이즈(size) 만큼씩 읽어서(read)(S902) 메모리(memory)에 로딩(loading)한 후 메시지 다이제스트를 수행한다(S903).
또한, CPU(122)는 선택된 인터리브드 포션(S904)에 해당하는 디지털 서명(Digital Signature) 정보를 저장부로부터 읽어(S905) 메모리 상에 로드(load)하고, 부트로더(Bootloader)의 공개 키(Public Key) 정보를 저장부로부터 읽어 메모리 상에 로드한다. 이후 읽은 디지털 서명 정보를 역시 읽은 부트로더(220)의 공개 키 정보로 디크립션(decryption) 한다(S906).
CPU(122)는 상기에서 디크립션을 거쳐서 나온 값과 메시지 다이제스트를 거쳐서 나온 값을 비교(S907)하여, 만약 두 값이 같으면 부팅 과정을 계속 진행(S908)하고, 만약 두 값이 다르면 부팅 과정을 스톱(stop)(S909) 한다. 또한, 부트 코드(boot code)를 삭제/변경하거나 부트 코드(boot code)에 대한 디지털 서명을 삭제/변경하는 등의 방법으로 다시는 부팅이 되지 못하도록 한다.
이하에서는 여러 개의 파티션으로 구분되어 있는 애플리케이션들에 대해 시큐어 부팅 방법에 대해 기술한다.
제5 및 6 실시 예
도 10은 본 발명과 관련하여, 펌웨어 이미지 전체가 하나의 바이너리 이미지로 저장부에 저장된 것을 설명하기 위해 도시한 도면이고, 도 11은 본 발명과 관련하여, 디바이스에 저장되는 여러 애플리케이션들이 여러 파티션(여러 바이너리)으로 구분되어 저장부에 저장된 것을 설명하기 위해 도시한 도면이고, 도 12는 본 발명에 따라 각 파티션의 사용된 영역(Used Area)에 대해서만 프래그먼트를 나누는 것을 설명하기 위해 도시한 도면이다.
본 발명에 따른 시스템의 시큐어 부팅 방법의 일 예는, 펌웨어 이미지 내 서로 다른 바이너리 이미지로 구성되어 애플리케이션에 의해 사용되는 각 파티션에 각각 디지털 서명을 생성하기 위한 다수 개의 프래그먼트들을 랜덤하게 배열하는 단계, 상기 각 프래그먼트에 대한 디지털 서명을 생성하는 단계, 특정 프래그먼트를 선택하는 단계, 상기 각 파티션에서 선택된 프래그먼트가 위치한 영역들을 읽어 제1 메시지 다이제스트를 생성하고, 상기 선택된 프래그먼트에 대해 상기 생성된 디지털 서명을 디크립션 하여 제2 메시지 다이제스트를 생성하는 단계 및 상기 생성된 제1 메시지 다이제스트와 제2 메시지 다이제스트에 근거하여 상기 펌웨어 이미지를 인증하고 시스템을 부팅하는 단계를 포함하여 이루어진다.
디바이스의 저장부에 저장되는 애플리케이션들은 단일 파티션 뿐만 아니라 필요 목적에 따라 여러 개의 파티션으로 구분되어 사용될 수 있다.
이 경우, 도 10 및 11이 같이 사용될 수 있다.
도 10은 예를 들어, 전체 애플리케이션들이 하나의 바이너리(binary)로 구성되고, 해당 바이너리 이미지(binary image)가 저장부에 저장될 때 중간 중간에 미사용된 영역(unused area)가 없이 연속적으로 저장되는 경우에 효율적인 구조가 될 수 있다. 또한, 예를 들어, 도 5에 인터리브드 포션과 대응되는 복수 개의 프래그먼트들(Fragment #A 1022, Fragment #B 1024, Fragment #C 1026)은 저장부에 할당된다. 따라서, 검증은 도 2와 유사하게 처리된다.
도 11은 예를 들어, 여러 애플리케이션들이 서로 다른 바이너리 이미지로 구성되어 저장부 상에서 여러 개의 파티션에 구분되어 저장되어 지는 경우에 효율적이다.
이에 비해, 도 12는 도 11과 같은 구조에서 도 10의 방식을 이용하여, 각 파티션의 사용 영역에 대해서만 다수 개의 프래그먼트를 나누어 이용하는 방식이다.
따라서, 도 12에 도시된 바와 같이, 멀티플 파티션들(1120, 1140, 1160)로 구분되어 있는 애플리케이션들의 경우, 각 파티션의 사용된 영역(Used Area)에 대해서만 도 5의 방식을 적용하여 전체 펌웨어를 읽어 메모리에 로딩하지 않고 인증(Authentication)할 수 있다. 그러므로 전체 펌웨어는 전체 펌웨어는 메모리로부터 정보를 읽어 로딩함이 없이 인증될 수 있는 것으로 읽힌다.
도 12를 참조하면 예를 들어, 펌웨어의 전체 영역 중 애플리케이션들이 사용하는 영역 즉, 파티션은 K개가 있고, 각 파티션에는 N개의 프래그먼트들(1210, 1220 및 1230 또는 1240, 1250 및 1260)을 이용하여 구분할 수 있다.
여기서, 시스템은 각 파티션의 스타트 오프셋(start offset)과 사용된 사이즈(used size)는 런 타임(Run Time) 시에 알 수 있고, N 은 프리-픽스드(Pre-fixed) 되어 있다. 이때, 읽어야(Read) 할 프래그먼트는 스타트 오프셋과 N 정보를 이용하여 필요한 부분만 읽을 수 있다.
그러므로, 도 11 내지 12에 도시된 미사용된 영역(unused area)는 읽어 메모리에 로딩할 필요가 없고, 미사용된 영역(unused area)에 대한 디지털 서명을 계산할 필요도 없다. 즉, 미사용된 영역(unused area)에 대한 인증을 제외할 수 있다. 따라서, 전체 펌웨어에 대한 인증 타임을 줄일 수 있으며, N이 필요 이상으로 증가되는 것을 막아 최적화된 N값으로 구현함으로써 더욱 효율성을 높일 수도 있다.
도 13은 본 발명에 따른 시큐어 부트 방법의 제5 실시 예를 설명하기 위해 도시한 도면이다.
도 13에서 전술한 도 12의 방식을 펌웨어에 적용한 예시이다.
도 13을 참조하면, 펌웨어의 전체 영역에는 우선 미사용된 영역(unused area)가 M개 존재하고, 애플리케이션들이 사용하는 사용된 영역(used area)가 k개의 파티션 존재한다. 여기서, 각 파티션에는 예를 들어, 해당 파티션의 전체 영역을 커버하도록 N개의 프래그먼트들이 배열된다. 이때, 프래그먼트들(1312, 1314 및 1316 또는 1332, 1334 및 1336)은 상기 각 파티션에서 동일하거나 또는 각 파티션의 사이즈에 따라 서로 다를 수도 있다. 또한, 상기 프래그먼트들은 모든 파티션에 동일한 배열을 가지거나 또는 각 파티션 별로 서로 다른 배열을 가질 수 있다.
또한, 도 13에서 디지털 서명(1352, 1354 및 1356)은 n개의 프래그먼트 각각에 대응하여 생성되고, 저장된다.
결국, 제5 실시 예에 따른 시큐어 부팅 과정은, N개의 프래그먼트들 중 적어도 하나의 프래그먼트가 선택이 되면, 펌웨어 내 모든 파티션에서 모든 프래그먼트가 아니라 상기 선택된 프래그먼트가 배열된 영역만을 읽어 인증을 함으로써 시큐어를 보장하면서 인증 타임을 현저하게 줄일 수 있다.
도 14는 본 발명에 따른 시큐어 부트 방법의 제6 실시 예를 설명하기 위해 도시한 도면이다.
제6 실시 예는, 전술한 제5 실시 예와 유사한바, 공통되는 설명은 전술한 내용을 참조 내지 원용하고, 상이한 부분만을 설명한다.
예를 들어, 펌웨어 내 애플리케이션들이 사용하는 모든 파티션이 N개의 프래그먼트들로 구분될 필요는 없다. 도 14를 참조하면, 애플리케이션에 의해 사용되는 파티션 3과 5(스몰 파티션)(1410, 1420)의 경우에는 각각 그 사이즈가 작아 해당 파티션 전체 영역을 읽고 인증할 수도 있다. 또한, 상기 스몰 파티션의 경우에는 디지털 서명(1432, 1434)을 개별적으로 생성하거나 다수 개의 스몰 파티션 전체에 대한 1개의 디지털 서명을 생성할 수도 있다. 이러한 스몰 파티션의 경우에는 시스템 내에서 미리 정한 기준에 따라 각 파티션의 사이즈와 인증 과정을 고려하여 결정되고, 결정된 스몰 파티션은 전체 영역을 읽고 인증하는 것을 디폴트로 설정할 수 있다.
제7 및 8 실시 예
도 15는 본 발명에 따른 시큐어 부트 방법의 제7 실시 예를 설명하기 위해 도시한 도면이고, 도 16은 본 발명에 따른 시큐어 부트 방법에 제8 실시 예를 설명하기 위해 도시한 도면이다.
본 발명에 따른 시스템의 시큐어 부팅 방법의 일 예는, 펌웨어 이미지 내 서로 다른 바이너리 이미지로 구성되어 애플리케이션에 의해 사용되며 각각 디지털 서명을 생성하기 위한 다수 개의 프래그먼트들을 랜덤하게 배열된 제1 파티션들과, 프래그먼트들로 구분되지 않고 전체가 하나의 영역인 적어도 하나의 제2 파티션으로 구분하는 단계, 상기 제1 파티션들 내 각 프래그먼트와 상기 제2 파티션에 대한 디지털 서명을 생성하는 단계, 특정 프래그먼트를 선택하는 단계, 상기 제1 파티션들에서 상기 선택된 프래그먼트가 위치한 영역들과 상기 제2 파티션 전체를 읽어 제1 메시지 다이제스트를 생성하고, 상기 선택된 프래그먼트와 상기 제2 파티션에 대해 기생성된 디지털 서명을 descryption하여 제2 메시지 다이제스트를 생성하는 단계 및 상기 생성된 제1 메시지 다이제스트와 제2 메시지 다이제스트에 근거하여 상기 펌웨어 이미지를 인증하고 시스템을 부팅하는 단계;를 포함하여 이루어진다.
여기서, 도 15의 제7 실시 예는, 제4 실시 예와 제5 실시 예의 개념을 합친 것이고, 도 16의 제8 실시 예는, 제4 실시 예와 제6 실시 예의 개념을 합친 것이다.
도 15를 참조하여, 제7 실시 예를 설명하면, 제5 실시 예와 같이, 펌웨어가 다수 개의 파티션들(1510과 1520)로 구분되고, 각 파티션은 다수 개의 프래그먼트들을(1512, 1514 및 1516) 이용하는 경우, 제5 실시 예에서와 달리 해당 파티션에 대해 제4 실시 예에서와 같이 스쿼시 파일 시스템 개념을 이용하는 것이다.
도 16을 참조하여, 제8 실시 예를 설명하면, 제6 실시 예에서와 같이, 펌웨어가 스몰 파티션들(1610과 1620)을 포함하여 다수 개의 파티션들로 구분되고, 각 스몰 파티션에 대해서는 전체 영역을 읽고 인증하고, 나머지 파티션들은 제4 실시 예에서와 같이 스쿼시 파일 시스템의 개념을 이용하는 것이다.
예를 들어, 특정 파티션에 다수 개의 프래그먼트들이 이용되는 경우, 전술한 제5 내지 제6 실시 예에서와 달리, 헤더 파트, 바디 파트 및 테일러 파트로 구분하고, 헤더와 테일러 파트에 모든 프래그먼트들이 포함되도록 구성하여 상기 헤더 및 테일러 파트들만을 읽고 메모리에 로딩함으로써 해당 파티션 전체에 대한 인증에 대해 시큐리티도 보장하고 인증 타임도 현저하게 줄 일 수 있다.
그 밖에 도시하진 않았으나, 각 파티션의 크기를 고려하여, 특정 파티션은 제4 실시 예에서와 같이, 스쿼시 파일 시스템의 개념을 적용하고, 다른 파티션은 제3 실시 예에서와 같이, 해당 파티션의 전체 영역에 대해 다수 개의 파티션을 이용하여 시큐어 부팅을 할 수도 있다. 이는 시스템에서 시큐리티, 인증 타임 등을 고려하여 효율적인 구조를 결정하여 적용할 수 있다. 또한, 도 7의 스쿼시 파일 시스템의 경우, 데이터블록 각각에 해킹 시도가 있는 경우 해당 블록 내에서만 영향을 미치기는 하나, 기본적으로 스쿼시 파일 시스템에서는 펌웨어 이미지를 압축하는바, 이 경우 해킹 시도가 있는 경우 압축된 파일 즉, 데이터블록의 사이즈 및 오프셋이 변경될 수 있다. 따라서, 이러한 변경은 당연히 헤더나 테일러 파트에 반영이 되고, 이에 따라 펌웨어 이미지에 대한 변조 등을 찾아낼 수가 있게 된다.
도 17은 본 발명에 따라 시큐어 부팅 방법에 따른 동작 플로우의 다른 예를 설명하기 위해 도시한 순서도이다.
도 17의 경우에는 전술한 도 9의 동작 플로우와 대동소이하다.
도 1의 CPU는 시스템이 부팅 시에, 도 17에 예시된 동작 플로우를 진행한다. 즉, 시스템이 매번 부팅 시마다, CPU(122)는 다수 개의 프래그먼트들 중 적어도 하나의 프래그먼트를 랜덤하게 선택하고(S1701), 각 파티션에서 선택된 프래그먼트를 읽어(S1702) 메모리에 로딩한 후 메시지 다이제스트를 수행한다(S1703).
또한, CPU(122)는 선택된 프래그먼트에 해당하는 디지털 서명 정보를 저장부로부터 읽어(S1704) 메모리 상에 로드하고, 부트로더(220)의 공개 키 정보를 저장부로부터 읽어 메모리 상에 로드한다. 이후 읽은 디지털 서명 정보를 역시 읽은 부트로더의 공개 키 정보로 디크립션 한다(S1705).
CPU(122)는 상기에서 디크립션을 거쳐서 나온 값과 메시지 다이제스트를 거쳐서 나온 값을 비교(S1706)하여, 만약 두 값이 같으면 부팅 과정을 계속 진행(S1707)하고, 만약 두 값이 다르면 부팅 과정을 스톱(S1708) 한다. 또한, 부트 코드를 삭제/변경하거나 부트 코드에 대한 디지털 서명을 삭제/변경하는 등의 방법으로 다시는 부팅이 되지 못하도록 한다.
이상 상술한 도 9 또는 17의 동작 플로우는 한 번만 수행할 수도 있고, 시큐리티 레벨(security level)에 따라 시큐리티가 더욱 요구되는 경우에는 동일하거나 다른 인터리브드 포션이나 프래그먼트에 대해 상술한 동작 플로우를 반복 수행하여 더욱 시큐리티를 보장할 수도 있다.
이상 상술한 각 실시 예는 전술한 도 1의 시스템에서 적용된다. 본 발명에 따른 각 실시 예는, CPU(122) (예를 들어, CPU는 시큐어 프로세서(secure processor), 마이크로 프로세서(micro processor) 및 시큐리티 기능을 하드웨어(H/W)로 구현한 시큐리티 전용 칩을 모두 포함한다), 메모리 및 저장부(HDD 혹은 플래시 메모리를 포함한 저장부)가 포함된 디바이스 중에서 저장부 내의 데이터에 대해서 외부로부터의 저장부 내의 데이터에 대한 데이터 변조를 포함한 해킹으로부터 저장부 내의 데이터를 보호(protect)하기 위해서 시큐어 부팅(Secure Booting) 기법을 적용하고자 하는 모든 시스템에 적용 가능하다. 특히, 시큐어 부트의 펌웨어에 대한 패스트 베리피케이션(fast verification)을 요구하는 시스템에 효과적이다.
이상 상술한 본 발명에 따른 각 실시 예에 따르면, 부팅 과정에서 시스템의 시큐리티를 최대한 보장하면서 인증 타임을 최소화하여 부팅 시간을 최소화시킬 수 있고, 부팅 시간을 줄임으로써 사용자의 편의를 도모하고 사용자의 요청에 빠른 대응을 할 수 있으며, 기존 시스템과 호환성(backward compatibility)을 유지하면서, 전체 시스템의 효율성을 높일 수 있다. 또한, 이러한 본 발명의 기법은 비단 시큐어 부팅뿐만 아니라 시큐리티 및 인증 타임이 요구되는 다양한 분야에 적용될 수 있다.
102: 제1 튜너 104: 제2 튜너
106: 복조부 108: 다중화부
110: 역다중화부 112: 디코더
114: 이더넷 116: TCP/IP네트워크부
118: TP 파싱부 122: 제어부
124: DCAS부 126: DVR 제어부
128: 컨텐츠 암호화부 130: 스토리지 인터페이스부
132: 저장부

Claims (13)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 디지털 방송 수신기에서 시스템의 시큐어 부팅 방법에 있어서,
    파일 시스템에 기초하여 전체 펌웨어 이미지를 헤더 파트, 바디 파트 및 테일러 파트로 나누되, 상기 바디 파트는 각각 디지털 서명을 생성하기 위해 복수의 인터리브드 포션들을 할당받고, 전체 영역에 대한 상기 헤더 파트와 테일러 파트는 상기 바디 파트의 모든 인터리브드 포션들을 포함하는 단계;
    상기 각 인터리브드 포션의 디지털 서명을 생성하는 단계;
    특정 인터리브드 포션을 선택하는 단계;
    전체 펌웨어 이미지 내 헤더 파트와 테일러 파트 중 어느 하나를 읽기 위한 제1 메시지 다이제스트를 생성하고, 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하는 단계; 및
    상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 단계;
    를 포함하여 이루어지는 방법.
  5. 제4항에 있어서,
    상기 파일 시스템은 스쿼시 파일 시스템을 포함하고, 상기 바디 파트의 소정 인터리브드 포션이 수정되면 상기 헤더 파트와 테일러 파트는 업데이트 되는 방법.
  6. 제4항에 있어서,
    상기 선택된 인터리브드 포션은매 시스템 부팅때마다 이퀄 프라버빌러티 메쏘드에 따라 랜덤하게 선택되고,
    상기 제1 메시지 다이제스트는 해시 알고리즘을 이용하여 생성되는 방법.
  7. 제4항에 있어서,
    공개 키를 가진 칩에서 상기 펌웨어 이미지를 인증하기 위한 부트 로더를 검증하는 단계;를 더 포함하는 방법.
  8. 시스템을 시큐어 부팅하는 디지털 방송 수신기에 있어서,
    파일 시스템에 기초하여 전체 펌웨어 이미지를 헤더 파트, 바디 파트 및 테일러 파트로 구분하되, 상기 바디 파트에는 각각 디지털 서명을 생성하기 위해 복수의 인터리브드 포션들이 할당되도록 제어하고, 전체 영역에 대한 상기 헤더 파트와 테일러 파트에는 상기 바디 파트의 모든 인터리브드 포션들이 포함되도록 제어하고, 상기 각 인터리브드 포션의 디지털 서명을 생성하도록 제어하는 제어부;를 포함하고,
    상기 제어부는,
    특정 인터리브드 포션을 선택하고, 상기 전체 펌웨어 이미지 내 헤더 파트와 테일러 파트 중 어느 하나를 읽기 위한 제1 메시지 다이제스트와 상기 선택된 인터리브드 포션의 디지털 서명으로부터 제2 메시지 다이제스트를 생성하고, 상기 제1 메시지 다이제스트와 제2 메시지 다이제스트에 기초하여 펌웨어 이미지를 검증하고, 상기 디지털 방송 수신기 내 시스템을 부팅하는 디지털 방송 수신기.
  9. 제8항에 있어서,
    상기 파일 시스템은 스쿼시 파일 시스템을 포함하는 디지털 방송 수신기.
  10. 제8항에 있어서,
    상기 헤더 파트와 테일러 파트는, 상기 바디 파트의 소정 인터리브드 포션이 수정되면 업데이트 되는 디지털 방송 수신기.
  11. 제8항에 있어서,
    상기 제어부는,
    매 시스템 부팅 때마다 이퀄 프라버빌러티 메쏘드(equal probability method)에 따라 상기 특정 인터리브드 포션이 랜덤(random)하게 선택되도록 제어하는 디지털 방송 수신기.
  12. 제8항에 있어서,
    상기 제어부는,
    공개 키를 가진 칩에서 상기 펌웨어 이미지를 인증하기 위한 부트 로더를 검증하도록 더 제어하는 디지털 방송 수신기.
  13. 제8항에 있어서,
    상기 제어부는,
    해시 알고리즘을 이용하여 상기 제1 메시지 다이제스트를 생성하도록 더 제어하는 디지털 방송 수신기.
KR1020127017474A 2009-12-04 2010-12-06 디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법 KR101776630B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US26652209P 2009-12-04 2009-12-04
US61/266,522 2009-12-04
US29089309P 2009-12-30 2009-12-30
US61/290,893 2009-12-30
PCT/KR2010/008677 WO2011068392A2 (en) 2009-12-04 2010-12-06 Digital broadcast receiver and booting method of digital broadcast receiver

Publications (2)

Publication Number Publication Date
KR20120113749A KR20120113749A (ko) 2012-10-15
KR101776630B1 true KR101776630B1 (ko) 2017-09-08

Family

ID=44083161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127017474A KR101776630B1 (ko) 2009-12-04 2010-12-06 디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법

Country Status (5)

Country Link
US (1) US8583909B2 (ko)
EP (1) EP2507991B1 (ko)
KR (1) KR101776630B1 (ko)
CN (1) CN102742290B (ko)
WO (1) WO2011068392A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9723376B2 (en) * 2011-12-21 2017-08-01 Saturn Licensing Llc Information processing apparatus, server apparatus, information processing method, server processing method, and program
KR101920263B1 (ko) 2012-01-27 2019-02-08 삼성전자주식회사 디스플레이장치 및 그 제어방법, 업그레이드장치, 디스플레이 시스템
CN102572595A (zh) * 2012-02-03 2012-07-11 深圳市同洲电子股份有限公司 Iptv的升级包结构、升级方法以及开机校验方法
US9189631B2 (en) * 2013-06-07 2015-11-17 Dell Inc. Firmware authentication
JP2015022521A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
US9652468B2 (en) 2013-12-17 2017-05-16 Annapurna Labs Ltd. In-band de-duplication
EP3478541B1 (de) * 2016-07-04 2022-09-28 SEW-EURODRIVE GmbH & Co. KG Sicherheitseinrichtung und verfahren zum betreiben eines systems
EP3291087A1 (en) * 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
WO2018084482A2 (ko) * 2016-11-04 2018-05-11 삼성전자 주식회사 디스플레이 장치 및 그 제어 방법
US10452870B2 (en) 2016-12-06 2019-10-22 Dish Technologies Llc Smart card authenticated download
US10484753B2 (en) 2016-12-23 2019-11-19 DISH Tchnologies L.L.C. Securely paired delivery of activation codes from smart card to remote client set-top box
US10325077B2 (en) 2016-12-23 2019-06-18 DISH Technologies L.L.C. Strong authentication of client set-top boxes
US10484752B2 (en) 2016-12-23 2019-11-19 DISH Technologies L.L.C. Securely paired delivery of activation codes from smart card to host set-top box
US10171870B2 (en) * 2016-12-28 2019-01-01 DISH Technologies L.L.C. Forced execution of authenticated code
CN108345805B (zh) * 2017-05-05 2022-09-02 清华大学 验证固件的方法及装置
US10057243B1 (en) * 2017-11-30 2018-08-21 Mocana Corporation System and method for securing data transport between a non-IP endpoint device that is connected to a gateway device and a connected service
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP6639615B1 (ja) * 2018-11-02 2020-02-05 三菱電機株式会社 制御装置
WO2020117549A1 (en) 2018-12-06 2020-06-11 Mocana Corporation System and method for zero touch provisioning of iot devices
US11394558B2 (en) * 2019-09-23 2022-07-19 Igt Segment-based file authentication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3777593A (en) * 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
US5737340A (en) * 1996-07-01 1998-04-07 Mentor Graphics Corporation Multi-phase test point insertion for built-in self test of integrated circuits
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US7174457B1 (en) * 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6571335B1 (en) * 1999-04-01 2003-05-27 Intel Corporation System and method for authentication of off-chip processor firmware code
US6708049B1 (en) * 1999-09-28 2004-03-16 Nellcor Puritan Bennett Incorporated Sensor with signature of data relating to sensor
US20020157010A1 (en) * 2001-04-24 2002-10-24 International Business Machines Corporation Secure system and method for updating a protected partition of a hard drive
EP1273996B1 (en) * 2001-07-06 2008-08-06 Texas Instruments Incorporated Secure bootloader for securing digital devices
US20030115471A1 (en) * 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
FI114830B (fi) * 2002-06-20 2004-12-31 Nokia Corp Menetelmä ja järjestelmä ohjelman luotettavuuden arvioimiseksi elektroniikkalaitteessa, ja elektroniikkalaite
US7203844B1 (en) * 2002-06-20 2007-04-10 Oxford William V Method and system for a recursive security protocol for digital copyright control
US8055910B2 (en) * 2003-07-07 2011-11-08 Rovi Solutions Corporation Reprogrammable security for controlling piracy and enabling interactive content
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7305544B2 (en) * 2004-12-10 2007-12-04 Intel Corporation Interleaved boot block to support multiple processor architectures and method of use
US20060136704A1 (en) * 2004-12-17 2006-06-22 International Business Machines Corporation System and method for selectively installing an operating system to be remotely booted within a storage area network
ATE365938T1 (de) * 2005-01-07 2007-07-15 Ericsson Telefon Ab L M Aktualisierung von speicherinhalt in einem datenverarbeitungssystem
JP2007104083A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 放送受信装置及びその制御方法
KR20070115327A (ko) * 2006-06-01 2007-12-06 엘지전자 주식회사 방송 수신기, 진단 정보 데이터 구조 및 진단 정보 표출방법
EP1914990A1 (en) * 2006-10-19 2008-04-23 Advanced Digital Broadcast S.A. Electronic module for digital television receiver
US7711760B2 (en) * 2006-11-30 2010-05-04 Red Hat, Inc. File update availability checking in a hierarchal file store
KR100947323B1 (ko) * 2008-02-29 2010-03-16 주식회사 알티캐스트 스마트 카드를 활용한 컨텐츠 보호 솔루션에 대한 변조방지 방법
US7930328B2 (en) * 2008-03-31 2011-04-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for file system sharing
US8271751B2 (en) * 2008-04-24 2012-09-18 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
US8135723B2 (en) * 2008-11-12 2012-03-13 Microsoft Corporation Leveraging low-latency memory access
US8732179B2 (en) * 2008-12-22 2014-05-20 Sandisk Il Ltd. Method for providing a suggested read list of digital data to a host device
US8478799B2 (en) * 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
KR20110058448A (ko) * 2009-11-26 2011-06-01 삼성전자주식회사 다운로드 수신제한 시스템에서 수신기의 보안모듈 부트로더 다운로드 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems

Also Published As

Publication number Publication date
US20110138164A1 (en) 2011-06-09
EP2507991A4 (en) 2015-09-02
CN102742290B (zh) 2015-11-25
WO2011068392A2 (en) 2011-06-09
CN102742290A (zh) 2012-10-17
WO2011068392A3 (en) 2011-11-10
EP2507991A2 (en) 2012-10-10
EP2507991B1 (en) 2017-08-30
US8583909B2 (en) 2013-11-12
KR20120113749A (ko) 2012-10-15

Similar Documents

Publication Publication Date Title
KR101776630B1 (ko) 디지털 방송 수신기 및 디지털 방송 수신기에서 부팅 방법
US10382816B2 (en) Systems and methods for performing transport I/O
US9479825B2 (en) Terminal based on conditional access technology
US8583922B2 (en) Hidden identification
US20180183581A1 (en) Arrangements for datalink security
US20050138397A1 (en) Authenticated program execution method
US11250170B2 (en) Secure activation of client receiver by host receiver smart card
KR101355057B1 (ko) 전자 장치에서의 소프트웨어 업데이트들의 집행
CA3044661C (en) Smart card authenticated download
EP2724546A1 (en) Receiver software protection
US20200099964A1 (en) Method and device for checking authenticity of a hbbtv related application
KR100950596B1 (ko) Dcas 기반 방송 수신 장치 및 이의 보안 강화 방법
Champagne et al. Forward-secure content distribution to reconfigurable hardware
KR20150004997A (ko) 외장 저장 장치에서 인증 방법

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