KR102550672B1 - 영상처리장치 및 그 제어방법 - Google Patents
영상처리장치 및 그 제어방법 Download PDFInfo
- Publication number
- KR102550672B1 KR102550672B1 KR1020160041778A KR20160041778A KR102550672B1 KR 102550672 B1 KR102550672 B1 KR 102550672B1 KR 1020160041778 A KR1020160041778 A KR 1020160041778A KR 20160041778 A KR20160041778 A KR 20160041778A KR 102550672 B1 KR102550672 B1 KR 102550672B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- authentication
- electronic signature
- image processing
- interpreter
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
-
- 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
-
- 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
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
- H04N21/63345—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6583—Acknowledgement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Devices For Executing Special Programs (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 실시예에 따른 영상처리장치는, 영상처리장치의 운영체제와, 프로그램 코드 및 제1전자서명을 포함하는 스크립트 파일과, 운영체제 상에서 프로그램 코드를 실행시키게 마련된 인터프리터 프로그램이 저장되는 저장부와; 인터프리터 프로그램이 운영체제 상에서 프로그램 코드를 실행하는 것에 응답하여, 운영체제에 의해 제1전자서명의 인증을 수행하고, 인증의 통과 여부에 따라서 프로그램 코드의 실행을 선택적으로 허용 또는 차단하는 적어도 하나의 프로세서를 포함하는 것을 특징으로 한다.
Description
본 발명은 영상컨텐트를 비롯한 다양한 데이터 및 신호를 처리할 수 있는 영상처리장치 및 그 제어방법에 관한 것으로서, 상세하게는 인터프리터 상에서 실행되는 스크립트 데이터에 대한 보안을 향상시켜 외부로부터의 해킹에 대비할 수 있는 구조의 영상처리장치 및 그 제어방법에 관한 것이다.
소정의 정보를 특정 프로세스에 따라서 연산 및 처리하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC나 서버 등의 정보처리장치가 있고, 영상 정보를 처리하는 영상처리장치가 있다.
영상처리장치는 영상데이터를 포함하는 콘텐츠 신호를 외부로부터 수신하며, 콘텐츠 신호로부터 추출되는 영상데이터를 다양한 영상처리 프로세스에 따라서 처리한다. 영상처리장치는 처리된 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하거나, 또는 패널을 구비한 타 디스플레이장치에서 영상으로 표시되도록 이 처리된 영상데이터를 해당 디스플레이장치에 출력한다. 디스플레이 패널을 가지지 않은 영상처리장치의 대표적인 예시로는 셋탑박스(set-top box)가 있다. 디스플레이 패널을 가진 영상처리장치를 특히 디스플레이장치라고 지칭하며 그 예시로는 TV, 모니터, 휴대용 멀티미디어 재생기, 태블릿(tablet), 모바일 폰(mobile phone) 등이 있다.
영상처리장치는 단순히 영상데이터를 처리하여 영상을 표시하는 것 뿐만 아니라, 여러 가지 종류의 어플리케이션, 데이터, 프로그램 등을 처리한다. 이와 같은 처리 동작은 하드웨어적인 관점과 소프트웨어적인 관점에서 각각 볼 수 있다. 소프트웨어적인 관점에서 보면, 영상처리장치는 부팅 시에 먼저 운영체제가 실행되고, 운영체제 상에서 다양한 데이터 코드를 실행시킴으로써 해당 데이터 코드가 지시하는 동작 또는 연산이 수행될 수 있다.
그런데, 영상처리장치는 해커로부터의 공격을 대비하기 위해 여러 가지 형태의 보안이 적용된다. 해커는 영상처리장치로부터 중요한 데이터를 취득하는 등의 목적을 위해 영상처리장치의 시스템의 취약점을 분석하여 영상처리장치의 제어권을 탈취하는 등의 시도를 한다. 이러한 해킹 공격의 일환으로서, 해커는 영상처리장치에서 실행되는 데이터 코드를 변조시키고, 정상적인 데이터 코드가 아닌 이와 같이 변조된 데이터 코드가 영상처리장치의 운영체제 상에서 실행되게 한다. 이 때문에 영상처리장치는 영상컨텐트 등의 데이터가 외부로 유출되거나, 또는 시스템 자체가 손상될 수도 있다.
따라서, 이와 같은 상황이 발생하는 것을 방지하기 위해서는, 운영체제 상에서 실행되는 데이터 코드에 대한 보안을 강화시키는 방법이 필요할 수 있다.
본 발명의 실시예에 따른 영상처리장치는, 상기 영상처리장치의 운영체제와, 프로그램 코드 및 제1전자서명을 포함하는 스크립트 파일과, 상기 운영체제 상에서 상기 프로그램 코드를 실행시키게 마련된 인터프리터 프로그램이 저장되는 저장부와; 상기 인터프리터 프로그램이 상기 운영체제 상에서 상기 프로그램 코드를 실행하는 것에 응답하여, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하고, 상기 인증의 통과 여부에 따라서 상기 프로그램 코드의 실행을 선택적으로 허용 또는 차단하는 적어도 하나의 프로세서를 포함하는 것을 특징으로 한다. 이로써, 인터프리터에 의해 프로그램 코드가 실행됨에 있어서, 영상처리장치는 정상적인 프로그램 코드가 비정상적인 프로그램으로 대체되거나 또는 변조된 상태에서 실행되는 것을 방지하여 보안 수준을 높일 수 있다.
여기서, 상기 제1전자서명은 상기 프로그램 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 여기서, 상기 알고리즘은 해시 함수를 포함할 수 있다. 이로써, 영상처리장치는 인터프리터 상에서 실행하기 위한 프로그램 코드가 변조된 상태인지 여부를 감지할 수 있다.
또한, 상기 스크립트 파일은 상기 프로그램 코드 및 상기 제1전자서명을 구분하는 구분자를 더 포함하며, 상기 제1전자서명은 상기 프로그램 코드 및 상기 구분자가 상기 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 이로써, 영상처리장치는 인터프리터가 전자서명을 프로그램 코드로 오인하지 않도록 하며, 프로그램 코드 및 구분자가 변조된 상태인지 여부를 용이하게 감지할 수 있다.
또한, 상기 제1전자서명은 상기 기 설정된 알고리즘에 기초하여 변환된 코드가 기 설정된 비밀 키에 의해 암호화됨으로써 생성되며, 상기 적어도 하나의 프로세서는, 상기 제1전자서명을 상기 비밀 키에 대응하는 공개 키에 의해 복호화하여 상기 인증이 수행되게 처리할 수 있다. 이로써, 영상처리장치는 전자서명의 보안성을 높일 수 있다.
여기서, 상기 적어도 하나의 프로세서는, 상기 제1전자서명을 상기 공개 키에 의해 복호화시켜 생성된 제1인증코드와, 상기 프로그램 코드를 상기 기 설정된 알고리즘에 기초하여 변환시켜 생성된 제2인증코드를 비교하며, 상기 제1인증코드 및 상기 제2인증코드가 동일하면 상기 제1전자서명이 상기 인증을 통과하고, 상기 제1인증코드 및 상기 제2인증코드가 동일하지 않으면 상기 제1전자서명이 상기 인증을 통과하지 못한 것으로 판단할 수 있다. 이로써, 영상처리장치는 전자서명의 인증을 용이하게 수행할 수 있다.
또한, 상기 적어도 하나의 프로세서는, 상기 인터프리터 프로그램에 첨부된 식별정보에 기초하여, 상기 운영체제 상에서 실행되는 복수의 프로그램 중에서 상기 인터프리터 프로그램을 판별할 수 있다. 이로써, 영상처리장치는 다양한 네이티브 코드로부터 발생하는 시스템 콜 중에서 인터프리터에 의한 시스템 콜에 대해서만 인증 과정을 수행함으로써, 시스템의 부담을 줄일 수 있다.
여기서, 상기 적어도 하나의 프로세서는, 상기 판별된 인터프리터 프로그램에 첨부된 제2전자서명의 인증을 수행하고, 상기 제2전자서명의 인증이 통과되면 상기 제1전자서명의 인증을 수행하고, 상기 제2전자서명의 인증이 통과되지 못하면 상기 제1전자서명의 인증을 수행하지 않고 상기 프로그램 코드의 실행을 차단시킬 수 있다. 여기서, 상기 제2전자서명은 상기 인터프리터 프로그램의 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 여기서, 상기 알고리즘은 해시 함수를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 영상처리장치의 제어방법은, 상기 영상처리장치의 운영체제를 실행하는 단계와; 상기 운영체제 상에서, 인터프리터가 프로그램 코드 및 제1전자서명을 포함하는 스크립트 파일을 호출하여 상기 프로그램 코드를 실행하는 단계와; 상기 인터프리터가 상기 프로그램 코드를 실행하는 것에 응답하여, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하는 단계와; 상기 인증의 통과 여부에 따라서 상기 프로그램 코드의 실행을 선택적으로 허용 또는 차단하는 단계를 포함하는 것을 특징으로 한다. 이로써, 인터프리터에 의해 프로그램 코드가 실행됨에 있어서, 영상처리장치는 정상적인 프로그램 코드가 비정상적인 프로그램으로 대체되거나 또는 변조된 상태에서 실행되는 것을 방지하여 보안 수준을 높일 수 있다.
여기서, 상기 제1전자서명은 상기 프로그램 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 여기서, 상기 알고리즘은 해시 함수를 포함할 수 있다. 이로써, 영상처리장치는 인터프리터 상에서 실행하기 위한 프로그램 코드가 변조된 상태인지 여부를 감지할 수 있다.
또한, 상기 스크립트 파일은 상기 프로그램 코드 및 상기 제1전자서명을 구분하는 구분자를 더 포함하며, 상기 제1전자서명은 상기 프로그램 코드 및 상기 구분자가 상기 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 이로써, 영상처리장치는 인터프리터가 전자서명을 프로그램 코드로 오인하지 않도록 하며, 프로그램 코드 및 구분자가 변조된 상태인지 여부를 용이하게 감지할 수 있다.
또한, 상기 제1전자서명은 상기 기 설정된 알고리즘에 기초하여 변환된 코드가 기 설정된 비밀 키에 의해 암호화됨으로써 생성되며, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하는 단계는, 상기 제1전자서명을 상기 비밀 키에 대응하는 공개 키에 의해 복호화하여 상기 인증을 수행하는 단계를 포함할 수 있다. 이로써, 영상처리장치는 전자서명의 보안성을 높일 수 있다.
여기서, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하는 단계는, 상기 제1전자서명을 상기 공개 키에 의해 복호화시켜 생성된 제1인증코드와, 상기 프로그램 코드를 상기 기 설정된 알고리즘에 기초하여 변환시켜 생성된 제2인증코드를 비교하는 단계와; 상기 제1인증코드 및 상기 제2인증코드가 동일하면 상기 제1전자서명이 상기 인증을 통과하고, 상기 제1인증코드 및 상기 제2인증코드가 동일하지 않으면 상기 제1전자서명이 상기 인증을 통과하지 못한 것으로 판단하는 단계를 포함할 수 있다. 이로써, 영상처리장치는 전자서명의 인증을 용이하게 수행할 수 있다.
또한, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하는 단계는, 상기 인터프리터 프로그램에 첨부된 식별정보에 기초하여, 상기 운영체제 상에서 실행되는 복수의 프로그램 중에서 상기 인터프리터 프로그램을 판별하는 단계를 포함할 수 있다. 이로써, 영상처리장치는 다양한 네이티브 코드로부터 발생하는 시스템 콜 중에서 인터프리터에 의한 시스템 콜에 대해서만 인증 과정을 수행함으로써, 시스템의 부담을 줄일 수 있다.
여기서, 상기 운영체제에 의해 상기 제1전자서명의 인증을 수행하는 단계는, 상기 판별된 인터프리터 프로그램에 첨부된 제2전자서명의 인증을 수행하는 단계와; 상기 제2전자서명의 인증이 통과되면 상기 제1전자서명의 인증을 수행하고, 상기 제2전자서명의 인증이 통과되지 못하면 상기 제1전자서명의 인증을 수행하지 않고 상기 프로그램 코드의 실행을 차단시키는 단계를 더 포함할 수 있다. 여기서, 상기 제2전자서명은 상기 인터프리터 프로그램의 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함할 수 있다. 여기서, 상기 알고리즘은 해시 함수를 포함할 수 있다.
도 1은 본 발명의 제1실시예에 따른 영상처리장치의 예시도,
도 2는 본 발명의 제1실시예에 따른 영상처리장치의 구성 블록도,
도 3은 본 발명의 제1실시예에 따른 영상처리장치의 소프트웨어 계층을 나타내는 구성 블록도,
도 4는 본 발명의 제1실시예에 따른 영상처리장치에서 스크립트 코드가 실행되는 과정을 나타내는 예시도,
도 5는 본 발명의 제1실시예에서 악성 스크립트 코드가 실행되는 원리를 나타내는 예시도,
도 6은 본 발명의 제1실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트,
도 7은 본 발명의 제1실시예에 따른 스크립트 코드의 팩키지 구조를 나타내는 예시도,
도 8은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 스크립트 코드의 전자 서명을 인증하는 방법을 나타내는 플로우차트,
도 9는 본 발명의 제1실시예에 따른 인터프리터의 팩키지 구조를 나타내는 예시도,
도 10은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 인터프리터의 전자 서명을 인증하는 방법을 나타내는 플로우차트,
도 11은 본 발명의 제2실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트,
도 2는 본 발명의 제1실시예에 따른 영상처리장치의 구성 블록도,
도 3은 본 발명의 제1실시예에 따른 영상처리장치의 소프트웨어 계층을 나타내는 구성 블록도,
도 4는 본 발명의 제1실시예에 따른 영상처리장치에서 스크립트 코드가 실행되는 과정을 나타내는 예시도,
도 5는 본 발명의 제1실시예에서 악성 스크립트 코드가 실행되는 원리를 나타내는 예시도,
도 6은 본 발명의 제1실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트,
도 7은 본 발명의 제1실시예에 따른 스크립트 코드의 팩키지 구조를 나타내는 예시도,
도 8은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 스크립트 코드의 전자 서명을 인증하는 방법을 나타내는 플로우차트,
도 9는 본 발명의 제1실시예에 따른 인터프리터의 팩키지 구조를 나타내는 예시도,
도 10은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 인터프리터의 전자 서명을 인증하는 방법을 나타내는 플로우차트,
도 11은 본 발명의 제2실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트,
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 이하 실시예들의 설명에서는 첨부된 도면들에 기재된 사항들을 참조하는 바, 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 나타낸다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
또한, 실시예에서는 본 발명의 사상과 직접적인 관련이 있는 구성들에 관해서만 설명하며, 그 외의 구성에 관해서는 설명을 생략한다. 그러나, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 설명이 생략된 구성이 불필요함을 의미하는 것이 아님을 밝힌다. 실시예에서 "포함하다" 또는 "가지다"와 같은 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소 또는 이들의 조합이 존재함을 지정하기 위한 것이며, 하나 이상의 다른 특징, 숫자, 단계, 동작, 구성요소 또는 이들의 조합이 존재하거나 부가되는 가능성을 배제하는 것은 아니다.
또한, 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.
도 1은 본 발명의 제1실시예에 따른 영상처리장치(100)의 예시도이다.
도 1에 도시된 바와 같이, 본 발명의 제1실시예에 따른 영상처리장치(100)는 다양한 컨텐트 소스(10)로부터 컨텐트 신호를 수신한다. 컨텐트 신호가 복수의 채널의 방송 프로그램을 포함하는 방송신호이거나, 또는 다양한 컨텐트를 포함하는 데이터 패킷일 수 있다. 영상처리장치(100)는 방송신호를 튜닝하여 특정 채널의 방송 프로그램 영상을 표시할 수 있는 TV이거나, 별도의 TV에 컨텐트 신호를 출력하는 셋탑박스이거나, 또는 TV가 아닌 모바일 디스플레이장치로 구현될 수 있다.
영상처리장치(100)가 컨텐트 신호를 수신하기 위한 네트워크는 크게 브로드캐스트(broadcast) 및 브로드밴드(broadband)의 두 가지 형태가 있는 바, 영상처리장치(100)는 브로드캐스트 네트워크 및 브로드밴드 네트워크가 평행하게 접속된 하이브리드 터미널로 구현된다. 브로드밴드는 양방향 IP 접속을 A/V 컨텐트의 스트리밍(streaming) 또는 다운로딩(downloading)을 위한 주파수 대역으로 사용하는 방식이며, 브로드캐스트는 DVB-T(Digital Video Broadcasting-Terrestrial), DVB-S(Satellite), DVB-C(Cable) 등과 같은 클래시컬한 일방향 전송 방식이다.
영상처리장치(100)는 브로드캐스트 네트워크를 통해, 선형 A/V 컨텐트, 비실시간 A/V 컨텐트, 어플리케이션 데이터 및 어플리케이션 시그널링(signalling) 정보 등을 수신 가능하다. 설사 영상처리장치(100)가 브로드밴드 네트워크에 접속되어 있지 않다고 하더라도, 브로드캐스트 네트워크에 대한 이와 같은 접속은 영상처리장치(100)가 브로드캐스트-관련 어플리케이션(broadcast-related application)를 수신할 수 있도록 허용한다. 추가적으로, 브로드캐스트 네트워크를 통해 어플리케이션에 대한 스트림 이벤트(stream events)의 시그널링이 가능하다.
여기서, 브로드캐스트-관련 어플리케이션은, 브로드캐스트 TV, 라디오 또는 데이터 채널, 또는 그러한 채널 내의 컨텐트와 관련된 인터랙티브(interactive) 어플리케이션을 지칭한다. 반면, 브로드캐스트-독립(broadcast-independent) 어플리케이션은 어떠한 브로드캐스트 채널 또는 타 브로드캐스트 데이터와 무관한 인터랙티브 어플리케이션을 지칭한다.
또한, 영상처리장치(100)는 브로드밴드 네트워크를 통해, 어플리케이션 데이터, 비선형 A/V 컨텐트 등을 수신할 수 있다. 여기서, 비선형 A/V 컨텐트는 Streaming on Demand와 같은 사용자가 자유롭게 컨텐트의 시청 시간 또는 컨텐트 내 재생 시점을 지정할 수 있는 컨텐트이며, 선형 A/V 컨텐트는 제공자가 제공하는 특정 시간에만 시청이 가능한 푸시(push) 형태의 컨텐트이다. 브로드밴드 네트워크를 통해, 영상처리장치(100)는 동일한 네트워크 상에 접속된 외부장치(미도시)와 통신할 수도 있다.
이와 같이, 영상처리장치(100)는 브로드캐스트 방식 또는 브로드밴드 방식을 통해 컨텐트 소스(10)로부터 다양한 종류의 컨텐트 데이터를 제공받을 수 있다.
이하, 영상처리장치(100)를 이루는 하드웨어 구성에 관해 설명한다.
도 2는 본 발명의 제1실시예에 따른 영상처리장치(100)의 구성 블록도이다.
도 2에 도시된 바와 같이, 영상처리장치(100)는 브로드캐스트 방식 또는 브로드밴드 방식에 따라서 방송신호를 수신하는 신호수신부(110)와, 신호수신부(110)를 통해 수신되는 방송신호를 처리하는 신호처리부(120)와, 신호처리부(120)에 의해 처리되는 방송신호의 특정 채널의 방송영상을 표시하는 디스플레이부(130)와, 신호처리부(120)에 의해 처리되는 방송신호의 특정 채널의 방송음성을 출력하는 스피커(140)와, 사용자에 의한 입력 동작이 실행되는 사용자입력부(150)와, 데이터가 저장되는 저장부(160)와, 신호처리부(120)의 처리를 위한 연산 및 영상처리장치(100)의 동작 제어를 실행하는 CPU(170)를 포함한다. 이들 구성요소들은 시스템 버스를 통해 상호 접속된다.
본 실시예에서는 CPU(170)가 신호처리부(120)와 별개의 구성인 것으로 설명하지만, 실시예에 따라서 CPU(170)는 신호처리부(120)와 통합된 단일 SOC로 구현될 수도 있다.
신호수신부(110)는 브로드캐스트 방식으로 전송되는 방송신호를 수신한다. 신호수신부(110)는 CPU(170)에 의해 지정되는 주파수로 방송신호를 튜닝하는 바, 이를 위하여 신호수신부(110)는 RF 신호를 튜닝하게 마련된 튜닝 칩(tuning chip)을 포함한다. 또한, 신호수신부(110)는 브로드밴드 방식으로 전송되는 방송신호를 수신할 수도 있으며, 예를 들면 인터넷을 통해 서버(미도시)로부터 전송되는 패킷데이터를 수신한다. 신호수신부(110)는 유선 프로토콜 및 무선 프로토콜 중 적어도 어느 하나를 지원하며, 전자의 경우에는 이더넷(Ethernet) 모듈을 포함하며 후자의 경우에는 무선통신모듈을 포함한다. 신호수신부(110)는 이더넷 모듈 및 무선통신모듈을 모두 포함함으로써 유선 프로토콜 및 무선 프로토콜 모두에 대응할 수도 있다. 무선통신모듈은 예를 들면 와이파이(Wi-Fi) 프로토콜을 지원할 수 있다.
튜닝 칩을 포함하는 신호수신부(110)는 방송신호가 수신되면, 지정된 특정 채널의 주파수로 방송신호를 튜닝하여 전송스트림(transport stream, TS)으로 변환한다. 신호수신부(110)는 고주파 반송파를 중간주파수 대역으로 변환하고 이를 다시 디지털 신호로 변환함으로써 전송스트림을 생성하는 바, 이를 위해 신호수신부(110)는 A/D 컨버터를 가질 수 있다. 설계 방식에 따라서는 A/D 컨버터는 신호수신부(110)가 아닌 디모듈레이터(미도시)에 포함될 수도 있다.
신호처리부(120)는 신호수신부(110)에 수신되는 방송신호에 대해 다양한 프로세스를 수행한다. 신호처리부(120)는 방송신호로부터 일 방송채널의 영상데이터를 추출하여 영상처리 프로세스를 수행하고, 영상처리 프로세스가 수행된 영상데이터를 디스플레이부(130)에 출력함으로써 디스플레이부(130)에 영상이 표시되도록 한다.
신호처리부(120)는 신호 또는 데이터의 종류나 특성에 따라서 다양한 프로세스를 수행할 수 있게 마련되므로 신호처리부(120)가 수행 가능한 프로세스를 영상처리 프로세스로 한정할 수 없으며, 또한 신호처리부(120)가 처리 가능한 데이터가 신호수신부(110)에 수신되는 것만으로 한정할 수 없다. 예를 들면, 신호처리부(120)는 방송신호로부터 추출되는 일 방송채널의 음성데이터에 대해 음성처리 프로세스를 수행하고, 음성처리 프로세스가 수행된 음성데이터를 스피커(140)로 출력한다. 또한, 신호처리부(120)는 영상처리장치(100)에 사용자의 발화가 입력되면 기 설정된 음성인식 프로세스에 따라서 해당 발화를 처리한다. 신호처리부(120)는 이러한 여러 기능을 통합시킨 SOC로 구현되거나, 또는 각 프로세스를 독자적으로 수행할 수 있는 개별적인 칩셋(chip-set)들이 인쇄회로기판 상에 장착된 영상처리보드(미도시)로 구현된다.
디스플레이부(130)는 신호처리부(120)에 의해 처리되는 영상데이터를 영상으로 표시한다. 디스플레이부(130)의 구현 방식은 한정되지 않으며, 액정 방식과 같은 수광 구조 또는 OLED 방식과 같은 자발광 구조의 표시패널을 포함할 수 있다. 또한, 디스플레이부(130)는 표시패널 이외에, 표시패널의 구현 방식에 따라서 부가적인 구성을 추가적으로 포함할 수 있다. 예를 들면, 액정 방식인 경우에, 디스플레이부(130)는 액정 디스플레이 패널(미도시)과, 액정 디스플레이 패널(미도시)에 광을 공급하는 백라이트유닛(미도시)과, 액정 디스플레이 패널(미도시)을 구동시키는 패널구동기판(미도시) 등을 포함한다.
스피커(140)는 신호처리부(120)에 의해 처리되는 음성데이터를 음성으로 출력한다. 스피커(140)는 음성신호에 따라서 공기를 진동시킴으로써 기압을 변화시키는 원리로 음성을 전달한다. 스피커(140)는 어느 한 음성채널의 음성데이터에 대응하게 마련된 단위 스피커를 포함하며, 복수 음성채널의 음성데이터에 각기 대응하도록 복수의 단위 스피커를 포함할 수 있다.
사용자입력부(150)는 사용자의 조작 또는 입력에 따라서 기 설정된 다양한 제어 커맨드 또는 정보를 CPU(170) 또는 신호처리부(120)에 전달한다. 즉, 사용자입력부(150)는 사용자의 의도에 따라서 사용자의 조작에 의해 발생하는 다양한 이벤트를 CPU(170) 또는 신호처리부(120)에 전달한다.
사용자입력부(150)는 정보의 입력방식에 따라서 다양한 형태로 구현될 수 있는 바, 예를 들면 사용자입력부(150)는 영상처리장치(100) 외측에 설치된 키, 디스플레이부(130)에 설치된 터치스크린, 사용자의 발화가 입력되는 마이크로폰(미도시), 영상처리장치(100) 외부의 환경을 촬영 또는 감지하기 위한 카메라(미도시) 등과 같은 영상처리장치(100)에 설치된 사용자 인터페이스 환경을 포함한다. 리모트 컨트롤러(미도시) 또한 사용자 인터페이스 환경의 한 가지 구성이라고 볼 수 있다. 다만, 리모트 컨트롤러(미도시)는 영상처리장치(100)의 본체와 분리된 구성이므로, 영상처리장치(100) 본체에 마련된 별도의 제어신호 수신부(미도시)를 통해 영상처리장치(100)에 제어신호를 전송한다.
저장부(160)는 CPU(170) 및 신호처리부(120)의 처리 및 제어에 따라서 다양한 데이터가 저장된다. 저장부(160)는 CPU(170)에 의해 억세스됨으로써, 데이터의 독취(read), 기록(write), 수정(edit), 삭제(delete), 갱신(update) 등이 수행된다. 저장부(160)는 영상처리장치(100)의 시스템 전원의 제공 유무와 무관하게 데이터를 보존할 수 있도록 플래시메모리(flash-memory), 하드디스크 드라이브(hard-disc drive), SSD(solid-state drive)와 같은 비휘발성 메모리로 구현된다.
저장부(160)에 저장되는 데이터의 일례로는 채널 맵(channel map)이 있다. CPU(170)는 사용자가 사용자입력부(150)를 통해 어느 채널번호를 입력하면, 저장부(160)에 저장된 채널 맵에서 해당 채널번호에 대응하는 주파수 값을 검색하고, 검색된 주파수 값을 신호수신부(110)에 전달한다. 이로써, 신호수신부(110)는 CPU(170)로부터 전달받은 주파수 값으로 방송신호를 튜닝할 수 있다.
CPU(170)는 신호처리부(120) 내의 제반 구성들이 동작하기 위한 중심적인 연산을 수행하는 구성으로서, 기본적으로 데이터의 해석 및 연산의 중심 역할을 수행한다. CPU(170)는 내부적으로, 처리할 명령어들이 저장되는 프로세서 레지스터(미도시)와, 비교, 판단, 연산을 담당하는 산술논리 연산 유닛(arithmetic logic unit, ALU)(미도시)와, 명령어의 해석과 올바른 실행을 위하여 CPU(170)를 내부적으로 제어하는 컨트롤 유닛(control unit)(미도시)과, 내부 버스(BUS)(미도시)와, 캐시(cache)(미도시) 등을 포함한다.
CPU(170)는 신호처리부(120)의 각 구성요소의 동작에 필요한 연산을 수행한다. 다만, 신호처리부(120)의 설계 방식에 따라서, 신호처리부(120)의 구성 중에는 CPU(170)의 데이터 연산 없이 동작하거나 또는 별도의 마이크로 컨트롤러(micro-controller)(미도시)에 의해 동작하는 구성도 있을 수 있다.
이하, 영상처리장치(100)의 동작을 위한 소프트웨어적 구성에 관해 설명한다.
도 3은 본 발명의 제1실시예에 따른 영상처리장치(100)의 소프트웨어 계층을 나타내는 구성 블록도이다.
도 3에 도시된 바와 같이, 영상처리장치(100)는 하드웨어(210) 및 소프트웨어(220, 230, 240, 250)를 포함한다. 영상처리장치(100)가 동작하기 위해서는 하드웨어(210) 및 소프트웨어(220, 230, 240, 250)가 상호 연계하여 동작할 필요가 있다. 하드웨어(210) 상에서 소프트웨어(220, 230, 240, 250)가 실행되며, 소프트웨어(220, 230, 240, 250)의 실행에 따라서 하드웨어(210)가 구동한다.
하드웨어(210)는 앞선 도 2에서 설명한 신호수신부, 신호처리부, 저장부, CPU 등의 구성요소들을 포함한다. 영상처리장치(100)를 이루는 하드웨어(210)에 관해서는 앞선 도 2 관련 내용을 참조할 수 있는 바, 자세한 설명을 생략한다.
소프트웨어(220, 230, 240, 250)는 커널(kernel)(220)과, 커널(220) 상에서 실행되는 네이티브 코드(naitive code)(230)와, 네이티브 코드(230) 중 하나인 인터프리터(interpreter)(240) 상에서 실행되는 스크립트 코드(script code)(250)로 구분할 수 있다. 일반적으로 지칭되는 어플리케이션은 스크립트 코드(250) 및 네이티브 코드(230) 중 적어도 어느 한 종류를 포함하여 구성되며, 커널(220) 상에서 실행된다.
커널(220)은 일반적으로 운영체제로 볼 수 있지만, 보다 정확히 규정하면 운영체제의 핵심 부분이다. 운영체제는 운영체제의 실질적인 역할을 수행하는 커널(220)과, 운영체제의 다양한 기능 및 서비스를 구현하기 위한 인터페이스를 제공하는 프로그램인 셸(shell)을 포함한다. 즉, 운영체제를 정의하고, 운영체제의 실질적인 동작을 수행하는 주체는 커널(220)이다.
커널(220)은 하드웨어(210)를 관리하고 어플리케이션을 실행하기 위해, 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 커널(220)은 일반적으로 하드웨어(210) 상에 위치한 계층 구조를 가지지만, 영상처리장치(100)의 설계 방식에 따라서는 하이퍼바이저(hypervisor)(미도시) 상에서 실행될 수도 있다. 하이퍼바이저(미도시)는 복수의 커널(220)을 동시에 실행하기 위한 논리적 플랫폼으로서, 가상화 머신 모니터(virtual machine monitor)라고도 지칭된다.
커널(220)은 실행되는 어플리케이션이 하드웨어(210)를 사용할 수 있도록 하드웨어(210)의 리소스를 추상화하여 제공한다. 기본적으로 커널(220)은 어플리케이션과 하드웨어(210) 사이의 인터페이스 역할을 수행한다.
커널(220)은 일 어플리케이션이 실행되면 하드웨어(210)를 비롯한 영상처리장치(100)의 여러 리소스를 할당하여 프로세스를 생성한다. 멀티태스킹 환경에서, 커널(220)은 여러 프로세스에 대한 우선순위를 확립하고, 메모리에 프로그램 코드를 로딩하여 프로그램을 실행한다. 커널(220)은 프로세스들을 생성, 삭제, 중단, 재개시키며, 프로세스들 사이의 동기화와 통신, 교착상태 처리에 관한 메커니즘을 제공한다.
네이티브 코드(230)는 커널(220)에 의해 직접적으로 컴파일되는 코드로서, 작성된 코드 그대로 커널(220)에 의해 구동된다. 네이티브 코드(230)는 커널(220)이 이해할 수 있는 언어로 기록되어 있는 코드이다. 즉, 커널(220)은 네이티브 코드(230)를 실행시키기 위해서 해당 네이티브 코드(230)를 커널(220)이 이해할 수 있는 언어로 번역하는 추가적인 과정을 필요로 하지 않는다. 네이티브 코드(230)는 커널(220)에 의해 직접 실행될 수 있으므로, 계층 구조 상에서 커널(220) 상에 위치한다.
인터프리터(240)는 네이티브 코드(230)의 한 가지 종류이다. 인터프리터(240)에 관한 보다 구체적인 설명은 후술한다.
스크립트 코드(250) 또는 매니지드 코드(managed code)는, 커널(220)에 의해 실행될 수 있는 네이티브 코드(230)와 달리, 인터프리터(240) 상에서 실행되는 코드이다. 스크립트 코드(250)는 커널(220)에 의해 직접 실행될 수 없으며, 해당 스크립트 코드(250)를 위한 인터프리터(240)에 의해 실행된다. 따라서, 계층 구조 상, 스크립트 코드(250)는 인터프리터(240) 상에 위치한다. 정리하면, 네이티브 코드(230)의 실행환경은 커널(220)인 것에 비해, 스크립트 코드(250)의 실행환경은 인터프리터(240)이다.
네이티브 코드(230) 및 스크립트 코드(250)의 실행 과정을 비교하면 다음과 같다.
영상처리장치(100)의 커널(220)이 실행되고 있는 상태에서, 커널(220)은 네이티브 코드(230)의 실행을 지시하는 시스템 콜(system call)을 수신하면, 프로세스를 생성하고 해당 네이티브 코드(230)를 호출 및 실행한다. 이 과정에서, 커널(220)은 네이티브 코드(230)의 실행을 위해 추가적인 동작을 실행하지 않는다.
반면, 커널(220)은 스크립트 코드(250)의 실행을 지시하는 시스템 콜을 수신하면, 프로세스를 생성할 때에 해당 스크립트 코드(250)를 실행시키기 위한 대응 인터프리터(240)를 호출 및 실행한다. 인터프리터(240)가 커널(220) 상에서 실행되는 상태에서, 커널(220)은 해당 스크립트 코드(250)를 인터프리터(240) 상에서 실행되도록 한다.
이와 같이, 네이티브 코드(230)는 실행 시에 인터프리터(240)를 필요로 하지 않는 것에 비해, 스크립트 코드(250)는 실행 시에 인터프리터(240)를 필요로 한다. 이하, 스크립트 코드(250)가 인터프리터(240)를 실행환경으로 하는 이유에 관해 설명한다.
도 4는 본 발명의 제1실시예에 따른 영상처리장치에서 스크립트 코드(250)가 실행되는 과정을 나타내는 예시도이다.
도 4에 도시된 바와 같이, 일 스크립트 코드(250)가 실행되기 위해서는, 먼저 커널(220) 상에서 인터프리터(240)가 실행되며, 이 인터프리터(240) 상에서 해당 스크립트 코드(250)가 실행되어야 한다.
인터프리터(240)는 사용자 레벨의 고급 프로그래밍 언어로 작성된 스크립트 코드(250)를 한 번에 기 설정된 분량만큼 읽어서 실행하는 네이티브 코드 프로그램이다. 인터프리터(240)는 커널(220)을 실행환경으로 가지므로, 네이티브 코드의 일종이다. 인터프리터(240)는 스크립트 코드(250)를 예를 들면 라인 단위로 읽어서 기계어로 변환하며, 기계어로 변환된 스크립트 코드(250)의 라인 코드를 커널(220)에 전달함으로써 해당 라인 코드가 커널(220)에 의해 실행될 수 있도록 한다.
고급 프로그래밍 언어의 코드를 기계어와 같은 저급 프로그래밍 언어의 코드로 변환하는 번역 프로그램은 컴파일러와 인터프리터(240)의 두 가지 종류가 있다. 예를 들면, 컴파일러는 대상 프로그램의 전체를 실행 전에 한꺼번에 저급 프로그래밍 언어로 번역함으로써, 목적 언어로 된 목적 프로그램을 출력한다.
반면, 인터프리터(240)는 대상 프로그램을 한 단계씩 저급 프로그래밍 언어로 해석하여 실행하므로, 컴파일러와 달리 목적 프로그램을 출력하지 않는다. 대상 프로그램을 라인 단위로 번역 및 실행하기 때문에, 인터프리터(240)는 시분할 시스템에 유용하여 원래의 대상 프로그램의 변화에 대한 반응이 빠르다.
스크립트 코드(250)는 고급 프로그래밍 언어로 작성되어 있으므로, 저급 프로그래밍 언어의 코드를 처리하는 커널(220)은 스크립트 코드(250)의 언어를 이해할 수 없다. 따라서, 스크립트 코드(250)의 실행을 위해서는, 인터프리터(240)가 스크립트 코드(250)를 커널(220)이 이해할 수 있는 저급 프로그래밍 언어로 번역해 주어야 한다.
만일 대상 프로그램의 크기가 크다면, 컴파일러에 의해 대상 프로그램이 컴파일되어 목적 프로그램으로 변환될 때까지 소요되는 시간 또한 길어진다. 인터프리터(240)는 이와 같은 컴파일 단계를 수행하지 않고, 즉각적으로 대상 프로그램의 일 코드를 실행시킬 수 있다.
프로세스가 생성되고 인터프리터(240)가 커널(220) 상에서 실행되면, 인터프리터(240)는 스크립트 코드(250)는 인터프리터(240)에 의해 고급 프로그래밍 언어로부터 저급 프로그래밍 언어로 번역한다. 인터프리터(240)는 번역된 스크립트 코드(250)의 실행을 위한 시스템 콜을 커널(220)에 보낸다. 이에, 커널(220)은 번역된 스크립트 코드(250)를 실행시킨다.
이와 같은 과정에 의해, 스크립트 코드(250)는 인터프리터(240) 상에서 실행된다.
한편, 상기와 같이 실행되는 과정에서 해커가 개입하게 되는 경우에 관해 이하 설명한다.
도 5는 본 발명의 제1실시예에서 악성 스크립트 코드(252)가 실행되는 원리를 나타내는 예시도이다.
도 5에 도시된 바와 같이, 해커는 바이러스(virus)나 해킹 툴(hacking tool)과 같은 악성 코드를 포함하는 악성 스크립트 코드(252)를 작성하여 정상적인 프로세스에 관여하도록 해킹을 시도할 수 있다. 정상적인 프로세스에서는, 인터프리터(240)가 원래 스크립트 코드(251)를 번역하고, 원래 스크립트 코드(251)의 번역된 코드를 커널(220)에 전달하여 실행되도록 한다. 이로써, 원래 스크립트 코드(251)가 작성한 대로의 동작이 실행될 수 있다.
그런데, 해커는 이 과정에서 인터프리터(240)에 원래 스크립트 코드(251) 대신 악성 스크립트 코드(252)가 전달되도록 한다. 인터프리터(240)는 악성 스크립트 코드(252)를 번역하고, 악성 스크립트 코드(252)의 번역된 코드를 커널(220)에 전달하여 실행되도록 한다. 이로써, 원래 스크립트 코드(251)가 아닌 악성 스크립트 코드(252)가 작성한 대로의 동작이 실행된다. 이러한 결과는 여러 가지 형태로 나타날 수 있는데, 예를 들면 영상처리장치 내의 중요한 데이터가 해커에게 유출될 수 있고, 아예 영상처리장치의 하드웨어가 손상되는 경우도 발생할 수 있다.
이러한 문제를 방지하기 위해, 본 실시예에 따른 영상처리장치는 스크립트 코드에 대한 인증을 수행한다. 영상처리장치는 인증을 통과한 스크립트 코드에 대해서만 실행되도록 하고, 인증을 통과하지 못한 스크립트 코드에 대해서는 실행을 차단시킨다. 이로써, 악성 스크립트 코드(252)가 원래 스크립트 코드(251)를 대체하여 실행되는 것을 차단할 수 있다.
스크립트 코드에 대한 인증은 인터프리터가 수행할 수도 있지만, 이 경우에는 인터프리터가 스크립트 코드에 대한 인증을 수행하기 위한 알고리즘을 포함하도록 수정되어야 한다. 그러나, 커널 상에서 실행되는 모든 인터프리터에 대해 이와 같은 알고리즘을 포함시키는 것은 용이하지 않다.
이에, 본 실시예에 따르면 영상처리장치의 커널이 스크립트 코드에 대한 인증을 수행하고, 인증을 통과한 스크립트 코드에 한해서 인터프리터에 의한 실행을 허용하도록 한다.
이하, 본 실시예에 따른 영상처리장치가 스크립트 코드를 인증하는 방법에 관해 구체적으로 설명한다.
도 6은 본 발명의 제1실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트이다.
도 6에 도시된 바와 같이, S110 단계에서 커널은 일 프로세스에서의 네이티브 코드로부터의 시스템 콜을 수신한다. 시스템 콜은 네이티브 코드로부터 커널에 접수되는 제반 입력신호를 통칭한다. 이와 같은 시스템 콜은, 예를 들면 인터프리터에 의한 스크립트 코드의 실행 프로세스가 생성된 상태에서 인터프리터로부터 전송되거나, 또는 인터프리터가 아닌 네이티브 코드로부터 전송될 수도 있다.
S120 단계에서 커널은 해당 네이티브 코드가 인터프리터인지 여부를 판단한다. 여기서, 네이티브 코드가 인터프리터인지 여부를 판단하는 이유는 다음과 같다. 커널 상에서 실행되는 네이티브 코드는 복수 개가 될 수 있으며, 모든 네이티브 코드는 커널에 시스템 콜을 전송할 수 있다. 이 경우에, 모든 네이티브 코드로부터의 시스템 콜에 대해 인증 과정을 수행하는 것은 시스템 자원 상 부담이 되므로, 가장 필요한 케이스인 인터프리터로부터의 시스템 콜에 대해서만 인증 과정을 수행하는 것이 효율적이다. 네이티브 코드가 인터프리터인지 여부를 판단하는 구체적인 방법에 관해서는 후술한다.
네이티브 코드의 종류가 인터프리터가 아니라고 판단하면, 커널은 프로세스의 인증 과정을 수행하지 않는다. 반면, 네이티브 코드가 인터프리터라고 판단하면, S130 단계에서 커널은 인터프리터에 기록된 전자 서명을 인증한다.
S140 단계에서 커널은 인터프리터에 기록된 전자 서명의 인증이 통과되는지 여부를 판단한다.
인터프리터에 기록된 전자 서명의 인증이 통과되면, S150 단계에서 커널은 프로세스에서의 스크립트 코드의 전자 서명을 인증한다. 스크립트 코드는 시스템 콜에 의해 지정된다.
S160 단계에서 커널은 스크립트 코드에 기록된 전자 서명의 인증이 통과되는지 여부를 판단한다.
스크립트 코드의 전자 서명의 인증이 통과되면, S170 단계에서 커널은 프로세스의 실행을 허용함으로써, 해당 스크립트 코드가 인터프리터 상에서 실행되도록 한다.
반면, 스크립트 코드의 전자 서명이 인증되지 않거나, 또는 S140 단계에서 인터프리터에 기록된 전자 서명이 인증되지 않으면, 커널은 S180 단계에서 프로세스의 실행을 차단한다. 인터프리터 또는 스크립트 코드의 전자 서명이 인증되지 않는 경우는 두 가지가 있는 바, 하나는 인터프리터 또는 스크립트 코드가 전자 서명을 포함하고 있지 않은 경우이며, 다른 하나는 인터프리터 또는 스크립트 코드가 전자 서명을 포함하고 있지만 해당 전자 서명이 인증을 통과할 수 없는 경우이다.
이러한 방법에 의해, 영상처리장치는 정상적인 스크립트 코드 대신 악성 스크립트 코드가 대체되어 실행되거나, 또는 정상적인 스크립트 코드가 해커에 의해 변조된 상태에서 실행되는 것을 방지할 수 있다.
이하, 커널이 스크립트 코드를 인증하는 방법에 관해 구체적으로 설명한다.
도 7은 본 발명의 제1실시예에 따른 스크립트 코드(310)의 팩키지 구조를 나타내는 예시도이다.
도 7에 도시된 바와 같이, 스크립트 코드(310)의 개발자는 스크립트 코드(310)를 작성할 때, 스크립트 코드(310)에 전자 서명(320)을 추가시켜 팩키지 형태로 배포한다. 즉, 종래에는 스크립트 코드(310) 단독으로 배포됨으로써, 스크립트 코드(310)가 인터프리터 상에서 실행될 때에는 스크립트 코드(310) 단독으로 인터프리터에 의해 호출된다. 이에 비해, 본 실시예에서는 스크립트 코드(310)와 함께 해당 스크립트 코드(310)의 전자 서명(320)이 한 세트로 패키징되는 바, 스크립트 코드(310)가 인터프리터 상에서 실행될 때에는 해당 스크립트 코드(310) 및 전자 서명의 팩키지가 인터프리터에 의해 호출된다.
전자 서명(320)이 스크립트 코드(310)에 부가될 때에, 전자 서명(320)은 스크립트 코드(310)의 마지막에 첨부된다. 다만, 전자 서명(320)은 반드시 스크립트 코드(310)의 마지막에 첨부되어야 하는 것은 아니며, 전자 서명(320) 및 스크립트 코드(310)의 코드들이 뒤섞이지 않고 구별이 가능하다면 전자 서명(320)이 스크립트 코드(310)의 앞에 첨부될 수도 있다.
스크립트 코드(310) 및 전자 서명(320) 사이에는 구분자(330)가 삽입됨으로써, 스크립트 코드(310)에 대해 전자 서명(320)을 구분할 수 있게 제공한다. 구분자(330)가 필요한 이유는 다음과 같다. 인터프리터가 스크립트 코드(310)를 라인 단위로 읽어서 처리할 때, 만일 스크립트 코드(310)와 전자 서명(320)을 구분할 수 없다면 인터프리터는 전자 서명(320)을 스크립트 코드(310)로 판단하여 처리하게 되는 문제가 있다. 반면, 구분자(330)가 있어서 전자 서명(320)을 식별할 수 있다면, 인터프리터는 구분자(330) 이후의 코드에 대해서는 스크립트 코드(310)가 아니라고 판단하여 처리하지 않는다.
구분자(330)는 여러 가지 형식을 가질 수 있는데, 예를 들면 스크립트 문법 상에서 주석 문자로 구현될 수 있다. 스크립트 문법에 따르면 주석 문자 다음에 나오는 코드들은 처리 대상이 되는 코드가 아니라는 것을 나타낸다. 전자 서명(320)은 스크립트 코드(310)에 부가될 때에 주석 문자 다음에 기재됨으로써, 인터프리터에 의해 스크립트 코드(310)로 인식되어 처리되는 것을 방지할 수 있다.
이하, 전자 서명(320)의 작성 방법에 관해 설명한다. 전자 서명(320)의 목적은 스크립트 코드(310)가 변조되지 않고 정상적인 것인지, 그리고 스크립트 코드(310)가 다른 스크립트 코드로 대체되지 않은 것인지 여부를 판단하기 위한 것이다.
개발자는 스크립트 코드(310) 및 구분자(330)에 기초하여, 즉 스크립트 코드(310) 및 구분자(330)의 코드를 기 설정된 알고리즘에 따라서 변환하여 전자 서명(320)의 오리지널 코드를 생성한다. 이와 같은 알고리즘은 여러 가지 방법이 있으며, 본 실시예에 따르면 한 가지 예시로서 해시(Hash) 함수가 있다. 스크립트 코드(310) 및 구분자(330)의 코드를 해시 함수에 의해 변환하면, 전자 서명(320)의 오리지널 코드로서 해시 코드(340)가 산출된다. 해시 코드(340)에 관한 내용은 후술한다.
여기서, 스크립트 코드(310) 단독이 아닌 스크립트 코드(310) 및 구분자(330)의 두 가지에 기초하여 전자 서명(320)의 오리지널 코드를 생성하는 이유는, 해커에 의한 코드 변조를 판단할 수 있도록 하기 위함이다. 이는, 스크립트 코드(310) 뿐만 아니라 구분자(330)에 대한 변조도 가능하기 때문이다.
해시 코드(340)가 산출되면, 개발자는 RSA 암호화 메커니즘에 따른 개인 키 및 공개 키의 페어에서, 개인 키로 해시 코드(340)를 암호화함으로써 전자 서명(320)을 생성한다. RSA 암호화 메커니즘에 따르면, 개인 키에 의해 원문을 암호화하여 생성된 암호문은, 해당 개인 키의 페어가 되는 공개 키에 의해 원문으로 복호화될 수 있다.
이와 같이 개인 키 또는 비밀 키에 의한 암호화가 필요한 이유는 해커에 의해 스크립트 코드(310)가 다른 코드로 대체되는 것을 방지하기 위함이다. 악성 스크립트 코드 및 해당 악성 스크립트 코드에 기초한 전자 서명의 팩키지가 원래의 스크립트 코드(310)를 대체된다고 해도, 악성 스크립트 코드의 전자 서명이 공개 키에 의해 복호화되지 않으므로 악성 스크립트 코드의 실행이 차단될 수 있다.
이와 같이, 개발자는 스크립트 코드(310) 및 전자 서명(320)의 팩키지를 작성하여 배포할 수 있다.
이하, 해시 코드(340)를 산출하기 위한 해시 함수에 관해 설명한다.
해시 함수는 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 맵핑하는 알고리즘이다. 해시 함수에 의해 도출되는 값은 해시 값, 해시 코드(340), 체크썸(checksum) 등으로 지칭된다. 해시 함수는 결정론적 알고리즘인 바, 만일 두 오리지널 데이터 각각의 두 해시 값이 서로 상이하다면 해당 해시 값들에 대한 오리지널 데이터들도 서로 상이해야 한다. 결정론적 알고리즘은 예측한 대로 동작하는 알고리즘을 지칭하는 바, 특정 입력에 대해 항상 동일한 과정을 거쳐서 항상 동일한 결과를 출력하는 알고리즘이다. 즉, 해시 함수에 특정한 값이 입력되면 항상 동일한 결과값이 나온다.
따라서, 정상적인 스크립트 코드(310)의 경우라면, 스크립트 코드(310) 및 구분자(330)로부터 도출되는 해시 값은 전자 서명(320)을 공개 키로 복호화시켜 도출된 해시 값과 동일해야 한다.
반면, 스크립트 코드(310) 및 전자 서명(320)의 팩키지가 배포된 이후, 스크립트 코드(310)가 변조된 경우를 고려한다. 해시 함수의 특성 상, 변조된 스크립트 코드(310) 및 구분자(330)로부터 도출되는 해시 값은 전자 서명(320)을 공개 키로 복호화시켜 도출된 해시 값과 상이하게 된다.
이러한 관점에 따라서, 영상처리장치의 커널은 스크립트 코드(310)의 전자 서명(320)에 대한 인증을 통해, 해당 스크립트 코드(310)가 정상적인 코드인지 판단할 수 있다.
이상과 같이 작성된 스크립트 코드(310)에 대해, 영상처리장치의 커널이 본 스크립트 코드(310)의 전자 서명(320)을 인증하는 방법에 관해 이하 설명한다.
도 8은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 스크립트 코드의 전자 서명을 인증하는 방법을 나타내는 플로우차트이다.
도 8에 도시된 바와 같이, S210 단계에서 영상처리장치의 커널은 인터프리터로부터의 시스템 콜에 따른 스크립트 코드를 호출한다. 호출되는 스크립트 코드는 앞서 설명한 바와 같이 전자 서명이 함께 팩키징된 상태이다.
S220 단계에서 커널은 공개 키를 취득한다. 여기서, 공개 키는 영상처리장치의 제조 단계에서 영상처리장치에 저장된다. 또는, 공개 키는 영상처리장치가 기 지정된 서버로부터 수신 및 저장할 수도 있다.
S230 단계에서 커널은 취득한 공개 키로 스크립트 코드에 첨부된 전자 서명을 복호화하여 제1인증코드를 생성한다.
S240 단계에서 커널은 스크립트 코드 및 구분자에 기초하여 제2인증코드를 생성한다.
S250 단계에서 커널은 제1인증코드 및 제2인증코드가 동일한지 여부를 판단한다.
제1인증코드 및 제2인증코드가 동일하면, S260 단계에서 커널은 스크립트 코드의 전자 서명의 인증이 통과한 것으로 판단한다.
반면, 제1인증코드 및 제2인증코드가 동일하지 않으면, S270 단계에서 커널은 스크립트 코드의 전자 서명의 인증이 통과하지 않은 것으로 판단한다.
이와 같은 방법에 따라서, 커널은 스크립트 코드를 인증할 수 있다.
이하, 커널이 인터프리터를 인증하는 방법에 관해 설명한다. 설계 방식에 따라서는 커널이 인터프리터를 인증하지 않고 스크립트 코드만을 인증하여 프로세스의 실행 여부를 판단하는 구성도 가능하다. 다만, 영상처리장치의 시스템 자원의 효율성 측면에서, 커널은 인터프리터의 시스템 콜에 대해서만 프로세스 인증 과정을 수행하는 것이 바람직할 경우도 있다. 이에, 커널은 네이티브 코드로부터의 시스템 콜 중에서 인터프리터로부터의 시스템 콜을 판별하고, 인터프리터로부터의 시스템 콜에 응답하여 스크립트 코드의 인증을 수행하여 스크립트 코드의 실행 프로세스를 선택적으로 차단시킨다.
도 9는 본 발명의 제1실시예에 따른 인터프리터(410)의 팩키지 구조를 나타내는 예시도이다.
도 9에 도시된 바와 같이, 인터프리터(410)의 개발자는 인터프리터(410)를 작성할 때에, 인터프리터(410)에 전자 서명(420) 및 식별정보(430) 추가시켜 팩키지 형태로 배포한다. 종래에는 인터프리터(410) 단독으로 배포됨으로써, 프로세스 생성 시에 인터프리터(410) 단독으로 커널에 의해 호출된다. 이에 비해, 본 실시예에서는 인터프리터(410), 식별정보(430) 및 전자 서명(420)이 한 세트로 패키징되며, 이러한 팩키지가 커널에 의해 호출된다. 본 도면에는 나타나지 않았으나, 스크립트 코드의 경우와 유사하게, 인터프리터(410), 식별정보(430) 및 전자 서명(420)을 상호 구분하기 위한 하나 이상의 구분자가 팩키지에 추가될 수도 있다.
식별정보(430)는 본 팩키지의 네이티브 코드가 인터프리터(410)임을 나타내는 정보이다. 커널이 최초 인터프리터(410)의 팩키지를 호출하였을 때에, 팩키지 내의 식별정보(430)를 읽음으로써 팩키지 내의 네이티브 코드가 인터프리터(410)라는 것을 판단할 수 있다. 즉, 식별정보(430)는 네이티브 코드의 여러 종류 중에서 인터프리터(410)임을 나타내는 플래그 정보이다.
전자 서명(420)은 앞서 설명한 스크립트 코드의 경우와 유사한 원리로 작성된다. 전자 서명(420)은 인터프리터(410)가 변조되거나 대체되지 않았는지 판단하기 위한 것이다.
개발자는 인터프리터(410) 및 식별정보(430)에 기초하여, 즉 인터프리터(410) 및 식별정보(430)의 코드를 기 설정된 알고리즘에 따라서 변환하여 전자 서명(420)의 오리지널 코드를 생성한다. 이러한 알고리즘은 여러 가지 방법이 있으며, 본 실시예에 따르면 스크립트 코드의 경우와 동일한 해시 함수를 사용한다. 개발자는 인터프리터(410) 및 식별정보(430)의 코드를 해시 함수에 의해 변환함으로써, 전자 서명(420)의 오리지널 코드를 해시 코드(440)로 변환시킨다.
개발자는 해커에 의한 코드 변조를 판단할 수 있도록, 인터프리터(410) 단독이 아닌 인터프리터(410) 및 식별정보(430)의 두 가지에 기초하여 전자 서명(420)의 오리지널 코드를 생성한다. 이는, 인터프리터(410) 뿐만 아니라 식별정보(430)에 대한 변조도 가능하기 때문이다.
해시 코드(440)가 산출되면, 개발자는 RSA 암호화 메커니즘에 따른 개인 키 및 공개 키의 페어에서, 개인 키로 해시 코드(440)를 암호화함으로써 전자 서명(420)을 생성한다. 여기서, 인터프리터(410)의 전자 서명(420)에 사용되는 개인 키 및 공개 키의 페어와, 스크립트 코드의 전자 서명에 사용되는 개인 키 및 공개 키의 페어는, 동일한 것이 사용될 수도 있고 또는 서로 상이한 것이 사용될 수도 있다.
스크립트 코드의 경우와 마찬가지로, 해시 코드(440)가 암호화됨으로써 해커에 의한 인터프리터(410)의 대체를 방지할 수 있다.
이와 같이, 개발자는 인터프리터(410), 식별정보(430) 및 전자 서명(420)의 팩키지를 작성하여 배포할 수 있다.
이하, 영상처리장치의 커널이 인터프리터(410)의 전자 서명(420)을 인증하는 방법에 관해 설명한다.
도 10은 본 발명의 제1실시예에 따른 영상처리장치의 커널이 인터프리터의 전자 서명을 인증하는 방법을 나타내는 플로우차트이다.
도 10에 도시된 바와 같이, S310 단계에서 영상처리장치의 커널은 일 프로세스에서의 인터프리터로부터의 시스템 콜을 수신한다.
S320 단계에서 커널은 시스템 콜에 대응하는 인터프리터에 첨부된 식별정보를 취득한다. 본 인터프리터는 앞서 설명한 바와 같이 식별정보 및 전자 서명이 함께 팩키징된 상태이다.
S330 단계에서 커널은 취득한 식별정보가 인터프리터임을 나타내는지 판단한다. 식별정보가 인터프리터임을 나타내지 않으면, 커널은 추가적인 동작을 수행하지 않는다.
반면, 식별정보가 인터프리터임을 나타내면, S340 단계에서 커널은 공개 키를 취득한다. 여기서, 공개 키는 영상처리장치의 제조 단계에서 영상처리장치에 저장된다. 또는, 공개 키는 영상처리장치가 기 지정된 서버로부터 수신 및 저장할 수도 있다.
S350 단계에서 커널은 취득한 공개 키로 인터프리터에 첨부된 전자 서명을 복호화하여 제1인증코드를 생성한다.
S360 단계에서 커널은 인터프리터 및 식별정보에 기초하여 제2인증코드를 생성한다.
S370 단계에서 커널은 제1인증코드 및 제2인증코드가 동일한지 여부를 판단한다.
제1인증코드 및 제2인증코드가 동일하면, S380 단계에서 커널은 인터프리터의 전자 서명의 인증이 통과한 것으로 판단한다.
반면, 제1인증코드 및 제2인증코드가 동일하지 않으면, S390 단계에서 커널은 인터프리터의 전자 서명의 인증이 통과하지 않은 것으로 판단한다.
이와 같은 방법에 따라서, 커널은 인터프리터를 인증할 수 있다.
이와 같은 인터프리터의 인증은, 모든 네이티브 코드에 대한 인증이 수행되는 경우에 불필요한 성능 저하가 발생할 수 있는 바, 이를 고려하여 적용되는 것이다. 만일 이러한 성능 저하를 염두에 둘 필요가 없는 상황이라면, 커널은 인터프리터에 대한 인증을 고려하지 않고 스크립트 코드에 대한 인증만 수행할 수도 있다.
도 11은 본 발명의 제2실시예에 따른 영상처리장치의 커널의 제어방법을 나타내는 플로우차트이다.
도 11에 도시된 바와 같이, S410 단계에서 커널은 일 프로세스에서의 인터프리터로부터의 시스템 콜을 수신한다.
S420 단계에서 커널은 프로세스에서의 스크립트 코드의 전자 서명의 인증을 수행한다. 스크립트 코드는 시스템 콜에 의해 지정된다.
S430 단계에서 커널은 스크립트 코드에 기록된 전자 서명의 인증이 통과되는지 여부를 판단한다.
스크립트 코드의 전자 서명의 인증이 통과되면, S440 단계에서 커널은 프로세스의 실행을 허용함으로써, 해당 스크립트 코드가 인터프리터 상에서 실행되도록 한다.
반면, 스크립트 코드의 전자 서명이 인증되지 않으면, S450 단계에서 커널은 프로세스의 실행을 차단한다. 스크립트 코드의 전자 서명이 인증되지 않는 경우는 두 가지가 있는 바, 하나는 스크립트 코드가 전자 서명을 포함하고 있지 않은 경우이며, 다른 하나는 스크립트 코드가 전자 서명을 포함하고 있지만 해당 전자 서명이 인증을 통과할 수 없는 경우이다. 스크립트 코드를 인증하는 구체적인 방법에 관해서는 앞선 실시예를 응용할 수 있는 바, 자세한 설명을 생략한다.
이러한 방법에 의해, 영상처리장치는 정상적인 스크립트 코드 대신 악성 스크립트 코드가 대체되어 실행되거나, 또는 정상적인 스크립트 코드가 해커에 의해 변조된 상태에서 실행되는 것을 방지할 수 있다.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다.
상기한 실시예는 예시적인 것에 불과한 것으로, 당해 기술 분야의 통상의 지식을 가진 자라면 다양한 변형 및 균등한 타 실시예가 가능하다. 따라서, 본 발명의 진정한 기술적 보호범위는 하기의 특허청구범위에 기재된 발명의 기술적 사상에 의해 정해져야 할 것이다.
100 : 영상처리장치
210 : 하드웨어
220 : 커널
230 : 네이티브 코드
240 : 인터프리터
250 : 스크립트 코드
210 : 하드웨어
220 : 커널
230 : 네이티브 코드
240 : 인터프리터
250 : 스크립트 코드
Claims (20)
- 영상처리장치에 있어서,
상기 영상처리장치의 운영체제와, 프로그램 코드 및 제1전자서명을 포함하는 스크립트 파일과, 상기 운영체제 상에서 상기 프로그램 코드를 실행시키게 마련된 인터프리터 프로그램이 저장되는 저장부와;
상기 스크립트 파일의 상기 프로그램 코드를 실행하기 위한 요청을 수신하고,
상기 프로그램 코드가 상기 수신된 요청에 따라서 상기 인터프리터 프로그램에 의해 실행되는지 여부를 식별하고,
상기 프로그램 코드가 상기 인터프리터 프로그램에 의해 실행되는 것으로 식별되는 것에 기초하여, 상기 스크립트 파일의 상기 제1전자서명이 인증되는지 여부를 식별하고,
상기 스크립트 파일의 상기 제1전자서명이 인증되는 것으로 식별되는 것에 기초하여, 상기 프로그램 코드를 상기 운영체제가 처리 가능한 언어로 번역하도록 상기 인터프리터 프로그램을 실행하고, 상기 언어로 번역된 상기 프로그램 코드를 실행하는 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는,
상기 인터프리터 프로그램에 첨부된 식별정보에 기초하여, 상기 운영체제 상에서 실행되는 복수의 프로그램 중에서 상기 인터프리터 프로그램을 판별하고,
상기 판별된 인터프리터 프로그램에 첨부된 제2전자서명의 인증을 수행하고,
상기 제2전자서명의 인증이 통과되면 상기 제1전자서명의 인증을 수행하고, 상기 제2전자서명의 인증이 통과되지 못하면 상기 제1전자서명의 인증을 수행하지 않고 상기 프로그램 코드의 실행을 차단시키는 것을 특징으로 하는 영상처리장치. - 제1항에 있어서,
상기 제1전자서명은 상기 프로그램 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치. - 제2항에 있어서,
상기 알고리즘은 해시 함수를 포함하는 것을 특징으로 하는 영상처리장치. - 제2항에 있어서,
상기 스크립트 파일은 상기 프로그램 코드 및 상기 제1전자서명을 구분하는 구분자를 더 포함하며,
상기 제1전자서명은 상기 프로그램 코드 및 상기 구분자가 상기 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치. - 제2항에 있어서,
상기 제1전자서명은 상기 기 설정된 알고리즘에 기초하여 변환된 코드가 기 설정된 비밀 키에 의해 암호화됨으로써 생성되며,
상기 적어도 하나의 프로세서는, 상기 제1전자서명을 상기 비밀 키에 대응하는 공개 키에 의해 복호화하여 상기 인증이 수행되게 처리하는 것을 특징으로 하는 영상처리장치. - 제5항에 있어서,
상기 적어도 하나의 프로세서는, 상기 제1전자서명을 상기 공개 키에 의해 복호화시켜 생성된 제1인증코드와, 상기 프로그램 코드를 상기 기 설정된 알고리즘에 기초하여 변환시켜 생성된 제2인증코드를 비교하며,
상기 제1인증코드 및 상기 제2인증코드가 동일하면 상기 제1전자서명이 상기 인증을 통과하고, 상기 제1인증코드 및 상기 제2인증코드가 동일하지 않으면 상기 제1전자서명이 상기 인증을 통과하지 못한 것으로 판단하는 것을 특징으로 하는 영상처리장치. - 삭제
- 삭제
- 제1항에 있어서,
상기 제2전자서명은 상기 인터프리터 프로그램의 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치. - 제9항에 있어서,
상기 알고리즘은 해시 함수를 포함하는 것을 특징으로 하는 영상처리장치. - 영상처리장치의 제어방법에 있어서,
상기 영상처리장치의 운영체제를 실행하는 단계와;
프로그램 코드 및 제1전자서명을 포함하는 스크립트 파일의 상기 프로그램 코드를 실행하기 위한 요청을 수신하는 단계와;
상기 프로그램 코드가 상기 수신된 요청에 따라서 인터프리터 프로그램에 의해 실행되는지 여부를 식별하는 단계와;
상기 프로그램 코드가 상기 인터프리터 프로그램에 의해 실행되는 것으로 식별되는 것에 기초하여, 상기 스크립트 파일의 상기 제1전자서명이 인증되는지 여부를 식별하는 단계와;
상기 스크립트 파일의 상기 제1전자서명이 인증되는 것으로 식별되는 것에 기초하여, 상기 프로그램 코드를 상기 운영체제가 처리 가능한 언어로 번역하도록 상기 인터프리터 프로그램을 실행하고, 상기 언어로 번역된 상기 프로그램 코드를 실행하는 단계를 포함하고,
상기 제1전자서명이 인증되는지 여부를 식별하는 단계는,
상기 인터프리터 프로그램에 첨부된 식별정보에 기초하여, 상기 운영체제 상에서 실행되는 복수의 프로그램 중에서 상기 인터프리터 프로그램을 판별하는 단계와,
상기 판별된 인터프리터 프로그램에 첨부된 제2전자서명의 인증을 수행하는 단계와;
상기 제2전자서명의 인증이 통과되면 상기 제1전자서명의 인증을 수행하고, 상기 제2전자서명의 인증이 통과되지 못하면 상기 제1전자서명의 인증을 수행하지 않고 상기 프로그램 코드의 실행을 차단시키는 단계를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제11항에 있어서,
상기 제1전자서명은 상기 프로그램 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제12항에 있어서,
상기 알고리즘은 해시 함수를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제12항에 있어서,
상기 스크립트 파일은 상기 프로그램 코드 및 상기 제1전자서명을 구분하는 구분자를 더 포함하며,
상기 제1전자서명은 상기 프로그램 코드 및 상기 구분자가 상기 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제12항에 있어서,
상기 제1전자서명은 상기 기 설정된 알고리즘에 기초하여 변환된 코드가 기 설정된 비밀 키에 의해 암호화됨으로써 생성되며,
상기 제1전자서명이 인증되는지 여부를 식별하는 단계는,
상기 제1전자서명을 상기 비밀 키에 대응하는 공개 키에 의해 복호화하여 상기 인증을 수행하는 단계를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제15항에 있어서,
상기 제1전자서명이 인증되는지 여부를 식별하는 단계는,
상기 제1전자서명을 상기 공개 키에 의해 복호화시켜 생성된 제1인증코드와, 상기 프로그램 코드를 상기 기 설정된 알고리즘에 기초하여 변환시켜 생성된 제2인증코드를 비교하는 단계와;
상기 제1인증코드 및 상기 제2인증코드가 동일하면 상기 제1전자서명이 상기 인증을 통과하고, 상기 제1인증코드 및 상기 제2인증코드가 동일하지 않으면 상기 제1전자서명이 상기 인증을 통과하지 못한 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 삭제
- 삭제
- 제11항에 있어서,
상기 제2전자서명은 상기 인터프리터 프로그램의 코드가 기 설정된 알고리즘에 기초하여 변환된 코드를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법. - 제19항에 있어서,
상기 알고리즘은 해시 함수를 포함하는 것을 특징으로 하는 영상처리장치의 제어방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160041778A KR102550672B1 (ko) | 2016-04-05 | 2016-04-05 | 영상처리장치 및 그 제어방법 |
US15/479,951 US10382207B2 (en) | 2016-04-05 | 2017-04-05 | Image processing apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160041778A KR102550672B1 (ko) | 2016-04-05 | 2016-04-05 | 영상처리장치 및 그 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170114582A KR20170114582A (ko) | 2017-10-16 |
KR102550672B1 true KR102550672B1 (ko) | 2023-07-04 |
Family
ID=59959882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160041778A KR102550672B1 (ko) | 2016-04-05 | 2016-04-05 | 영상처리장치 및 그 제어방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10382207B2 (ko) |
KR (1) | KR102550672B1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102484754B1 (ko) * | 2017-12-08 | 2023-01-06 | 삼성전자주식회사 | 영상처리장치 및 그 제어방법 |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US11861386B1 (en) * | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
JP2020167509A (ja) * | 2019-03-29 | 2020-10-08 | コベルコ建機株式会社 | 情報処理システム、情報処理方法、およびプログラム |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US10747875B1 (en) | 2020-03-19 | 2020-08-18 | Cyberark Software Ltd. | Customizing operating system kernels with secure kernel modules |
WO2022047245A1 (en) | 2020-08-27 | 2022-03-03 | Virsec Systems, Inc. | Automated application vulnerability and risk assessment |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
CA3219152A1 (en) * | 2021-05-18 | 2022-11-24 | Virsec Systems, Inc. | Automated interpreted application control for workloads |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636945B2 (en) * | 2000-07-14 | 2009-12-22 | Computer Associates Think, Inc. | Detection of polymorphic script language viruses by data driven lexical analysis |
US20070277037A1 (en) * | 2001-09-06 | 2007-11-29 | Randy Langer | Software component authentication via encrypted embedded self-signatures |
GB0229894D0 (en) * | 2002-12-21 | 2003-01-29 | Ibm | Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes |
US7272228B2 (en) * | 2003-06-12 | 2007-09-18 | International Business Machines Corporation | System and method for securing code and ensuring proper execution using state-based encryption |
JP2007535718A (ja) * | 2003-07-07 | 2007-12-06 | クリプターグラフィー リサーチ インコーポレイテッド | 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ |
CN101796837B (zh) | 2007-09-11 | 2012-12-19 | Lg电子株式会社 | 安全签名方法、安全认证方法和iptv系统 |
US8850211B2 (en) * | 2009-04-27 | 2014-09-30 | Qualcomm Incorporated | Method and apparatus for improving code and data signing |
US8904189B1 (en) * | 2010-07-15 | 2014-12-02 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time using control flow signatures |
-
2016
- 2016-04-05 KR KR1020160041778A patent/KR102550672B1/ko active IP Right Grant
-
2017
- 2017-04-05 US US15/479,951 patent/US10382207B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
Non-Patent Citations (1)
Title |
---|
8th Edition OPERATING SYSTEM CONCEPTS, Silberschatz, Galvin, Gagne, 2009 John Wiley & Sons, Inc.* |
Also Published As
Publication number | Publication date |
---|---|
US20170288878A1 (en) | 2017-10-05 |
US10382207B2 (en) | 2019-08-13 |
KR20170114582A (ko) | 2017-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102550672B1 (ko) | 영상처리장치 및 그 제어방법 | |
CN109214168B (zh) | 固件升级方法及装置 | |
CN110178136B (zh) | 现场可编程门阵列程序的签名验证的方法和设备 | |
US10846393B2 (en) | Application program integrity verification method and network device | |
US8560820B2 (en) | Single security model in booting a computing device | |
KR101238572B1 (ko) | 신뢰 환경을 지원하기 위한 컴퓨터 판독가능 구성요소의자동 업데이트 | |
US9432195B2 (en) | Method of operating data security and electronic device supporting the same | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
JP2016527608A (ja) | プロセス認証とリソースパーミッション | |
US7676847B2 (en) | Application execution device, application execution method, integrated circuit, and computer-readable program | |
US20190392117A1 (en) | Secure sharing of license data in computing systems | |
US9524394B2 (en) | Method and apparatus for providing provably secure user input/output | |
US10372947B2 (en) | Parsing, processing, and/or securing stream buffers | |
US20160182952A1 (en) | Protected Media Decoding System Supporting Metadata | |
KR101355697B1 (ko) | 디지털 컨텐츠 보호 방식의 보안 프로비전 | |
WO2020187008A1 (zh) | 服务调用控制方法、服务调用方法、装置及终端 | |
US9563747B2 (en) | Method for providing DRM service and electronic device thereof | |
US20140068598A1 (en) | Information processing apparatus, information processing method, and program | |
CN104115413A (zh) | 用于在支持安全执行环境的便携式终端中输出内容的方法和设备 | |
US20040193884A1 (en) | Secure watchdog for embedded systems | |
KR20100065722A (ko) | 데이터 보호장치 및 그 방법 | |
US20140181527A1 (en) | Unsecure network socket communication | |
CN105975624B (zh) | 一种数据传输方法、设备和系统 | |
KR102052651B1 (ko) | 데이터 접근 제어 방법 및 그 전자 장치 | |
Tögl et al. | A path towards ubiquitous protection of media |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |