KR101747954B1 - 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법 - Google Patents

실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법 Download PDF

Info

Publication number
KR101747954B1
KR101747954B1 KR1020100126408A KR20100126408A KR101747954B1 KR 101747954 B1 KR101747954 B1 KR 101747954B1 KR 1020100126408 A KR1020100126408 A KR 1020100126408A KR 20100126408 A KR20100126408 A KR 20100126408A KR 101747954 B1 KR101747954 B1 KR 101747954B1
Authority
KR
South Korea
Prior art keywords
program
server
packing
code
module
Prior art date
Application number
KR1020100126408A
Other languages
English (en)
Other versions
KR20120065080A (ko
Inventor
박종열
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020100126408A priority Critical patent/KR101747954B1/ko
Priority to US13/315,926 priority patent/US8639924B2/en
Publication of KR20120065080A publication Critical patent/KR20120065080A/ko
Application granted granted Critical
Publication of KR101747954B1 publication Critical patent/KR101747954B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2351Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving encryption of additional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

본 명세서는, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법을 개시한다. 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버의 제어 방법은, 클라이언트에 전송하기 위한 보안 프로그램을 분석하는 단계와, 상기 분석된 보안 프로그램의 코드를 분할하는 단계와, 상기 분할된 코드를 암호키를 이용하여 암호화 하는 단계와, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경하는 단계와, 그리고 상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트로 전송하는 단계를 포함한다.

Description

실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법{METHOD FOR PROCESSING SECURE PROGRAM USING KEY DISTRIBUTION PROTOCOL IN SERVER/CLIENT AND THE SERVER/CLIENT}
본 발명은 보안 프로그램을 처리하는 프로토콜에 대한 것이다. 보다 상세하게는 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법에 관한 것이다.
일반적으로, 프로그램 패킹은 바이러스 및 소프트웨어 라이센스 관리를 위해서 사용되고 있다. 예를 들어, 바이러스 프로그램은 자신이 바이러스이며 악의적인 코드를 가지고 있다는 내용을 바이러스 탐지기로부터 숨기기 위해서 자신의 코드를 숨기거나 암호화하여 저장하는 방식을 사용한다. 나아가, 일차적으로 저장될 때는 숨겨져 있던 코드가 실행 단계에서 활성화되는 특징을 가진다. 또한, 소프트웨어 라이센스 관리를 위해 프로그램 패킹이 사용되는 경우, 프로그램의 시작 부분에서 사용자가 정당한 라이센스를 가지고 있는지 검사하여 정당하지 않은 경우 프로그램을 강제로 종료하는 기능을 가진다.
그러나, 보안성이 보다 강하게 요구되는 보안 프로그램에 대하여 일반적인 프로그램 패킹 기술을 접목한다면, 해킹되었을 경우 심각한 데이터 손실의 가능성이 있다. 나아가, 예컨대 실시간 방송 서비스와 같은 높은 보안 등급을 요구하는 서비스에서 보안 프로그램은 불법적인 사용자의 접근을 차단하고, 불법 콘텐츠의 유통을 방지하기 위해서는 반드시 필요한 기능이다.
본 발명의 일실시예에 의하면, 범용적인 패킹 기술과 달리 온라인 프로그램 배포를 지원하는 방송 환경(예를 들어, IPTV 방송, 양방향 케이블 방송, 양방향 위성 방송 등)에서 보안 프로그램을 안전하게 배포하기 위해 실시간 키 분배를 통한 패킹/언패킹 기술을 제공하고자 한다.
나아가, 본 발명의 다른 일실시예에 의하면, 일반적인 패킹, 언 패킹 기술에 보안 코드를 암호화하고 이를 온라인 키 분배를 통해서 실시간 제어할 수 있는 기능을 추가함으로써, 추가적인 하드웨어 비용 없이 다운로드 기반의 보안 플랫폼을 제공하고자 한다.
그리고, 본 발명의 또 다른 일실시예에 의하면, 방송 시스템의 수신 제한 시스템(Conditional Access System, CAS)에서 EMM(Entitlement Management Message)을 통하여 제공하는 그룹 키와 연동함으로써, 문제가 있는 보안 프로그램의 접근 자체를 차단하여 보안 기능을 보다 강화한 보안 시스템을 제공하고자 한다.
본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버의 제어 방법은, 클라이언트에 전송하기 위한 보안 프로그램을 분석하는 단계와, 상기 분석된 보안 프로그램의 코드를 분할하는 단계와, 상기 분할된 코드를 암호키를 이용하여 암호화 하는 단계와, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경하는 단계와, 그리고 상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트로 전송하는 단계를 포함한다.
또한, 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 클라이언트의 제어 방법은, 상기 클라이언트와 네트워크를 통해 연결되어 있는 제1서버로부터 패킹 프로그램을 수신하는 단계(예컨대, 상기 패킹 프로그램은 암호화된 코드와 변경된 제1헤더를 포함하고 있음)와, 상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하는 단계와, 제2서버로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행하는 단계(예컨대, 상기 복호키는 상기 암호화된 코드에 사용된 암호키에 대응함)와, 그리고 상기 언패킹 프로세스가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하는 단계를 포함한다.
나아가, 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버는, 클라이언트에 전송하기 위한 보안 프로그램을 분석하는 분석 모듈과, 상기 분석된 보안 프로그램의 코드를 분할하는 분할 모듈과, 상기 분할된 코드를 암호키를 이용하여 암호화 하는 암호화 모듈과, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경하는 변경 모듈과, 그리고 상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트로 전송하는 전송 모듈을 포함한다.
그리고, 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 클라이언트는, 상기 클라이언트와 네트워크를 통해 연결되어 있는 제1서버로부터 패킹 프로그램을 수신하는 수신 모듈과, 상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하는 복원 모듈과, 제2서버로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행하는 언패킹 모듈과, 그리고 상기 언패킹 프로세스가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하는 실행 모듈을 포함한다.
본 발명의 일실시예에 의하면, 범용적인 패킹 기술과 달리 온라인 프로그램 배포를 지원하는 방송 환경(예를 들어, IPTV 방송, 양방향 케이블 방송, 양방향 위성 방송 등)에서 보안 프로그램을 안전하게 배포하기 위해 실시간 키 분배를 통한 패킹/언패킹 기술을 제공한다.
나아가, 본 발명의 다른 일실시예에 의하면, 일반적인 패킹, 언 패킹 기술에 보안 코드를 암호화하고 이를 온라인 키 분배를 통해서 실시간 제어할 수 있는 기능을 추가함으로써, 추가적인 하드웨어 비용 없이 다운로드 기반의 보안 플랫폼을 제공한다.
그리고, 본 발명의 또 다른 일실시예에 의하면, 방송 시스템의 수신 제한 시스템(Conditional Access System, CAS)에서 EMM(Entitlement Management Message)을 통하여 제공하는 그룹 키와 연동함으로써, 문제가 있는 보안 프로그램의 접근 자체를 차단하여 보안 기능을 보다 강화한 보안 시스템을 제공한다.
도 1은 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 시스템을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 클라이언트의 구체적인 모듈들을 보다 상세히 도시한 도면이다.
도 3은 본 발명의 다른 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 클라이언트의 구체적인 모듈들을 보다 상세히 도시한 도면이다.
도 4는 본 발명의 일실시예에 따라, 보안 프로그램을 실행하기에 앞서 1차 체크 및 2차 체크가 수행되는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 또 다른 일실시예에 따라, 도 2 또는 도 3에 도시된 키 분배 서버를 보다 상세히 도시한 도면이다.
도 6은 본 발명의 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 도시한 플로우 차트이다.
도 7은 도 6에 도시된 S601 단계를 보다 상세히 도시한 도면이다.
그리고, 도 8은 본 발명의 다른 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 도시한 플로우 차트이다.
이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 “연결”되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
또한, 본 명세서에서 기재한 모듈(module)이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현할 수 있다.
이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 시스템을 개략적으로 도시한 도면이다. 이하, 도 1을 참조하여 본 발명의 일실시예에 의한 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 시스템의 서버, 키 분배 서버, 그리고 클라이언트에 대하여 설명하면 다음과 같다.
본 발명의 일실시예에 의한 서버(100)는, 보안 프로그램을 분할, 암호화, 패킹 하는 과정을 거치며, 패킹된 보안 프로그램을 네트워크(예를 들어, IP 네트워크, 케이블 네트워크, 무선 네트워크 등)를 통해 클라이언트(120)로 전달한다. 다만, 상기 서버(100)는 키 분배 서버(110)로부터 수신된 암호키를 이용하여 보안 프로그램의 코드를 암호화 한다. 한편, 상기 클라이언트(120)는, 1차적으로 패킹된 프로그램을 검증하고, 언 패킹 과정읕 통해 원본 프로그램의 실행 위치를 복원하고 전술하여 설명한 암호화에 사용된 키에 대응하는 복호키를 분배 받아 복호화 과정을 수행한다. 그리고, 보안 프로그램을 복원하고 프로그램의 시작 주소를 복원하는 언 패킹 과정을 통해 원본 프로그램을 복원하게 된다. 즉, 키 분배 서버로부터 수신된 암호키, 복호키를 사용하게 되므로, 문제 있는 보안 프로그램에 대한 실행을 사전에 차단할 수 있는 장점이 있다. 이하, 도 2 내지 도 8을 참조하여 보다 상세히 설명하도록 하겠다.
도 2는 본 발명의 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 클라이언트의 구체적인 모듈들을 보다 상세히 도시한 도면이다. 이하, 도 2를 참조하여, 본 발명의 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 그리고 클라이언트의 구체적인 동작 프로세스를 설명하면 다음과 같다.
도 2에 도시된 바와 같이, 본 발명의 일실시예에 의한 서버(200)는 분석 모듈(201), 분할 모듈, 암호화 모듈(203), 변경 모듈(204), 그리고 전송 모듈(205) 등을 포함하여 이루어 진다. 다만, 이는 일실시예이며, 본 발명의 권리범위는 원칙적으로 특허청구범위에 의해 정해져야 한다.
상기 분석 모듈(201)은, 클라이언트(220)에 전송하기 위한 보안 프로그램을 분석하고, 분할 모듈(202)은 상기 분석된 보안 프로그램의 코드를 분할한다. 나아가, 상기 암호화 모듈(203)은, 상기 분할된 코드를 암호키를 이용하여 암호화 하고, 상기 변경 모듈(204)은, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경한다. 그리고, 상기 전송 모듈(205)은, 상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트(220)로 전송한다.
또한, 상기 분석 모듈(201)은, 상기 보안 프로그램을 분할하고자 하는 코드의 제1위치값을 설정하고, 그리고 상기 보안 프로그램의 패킹에 필요한 부가 코드의 제2위치값을 설정한다.
나아가, 상기 암호화 모듈(203)은, 상기 서버(200)와 네트워크로 연결된 키 분배 서버(210)로부터 실시간으로 수신된 암호키를 이용하여 암호화 프로세스를 수행하도록 설계된다.
한편, 본 발명의 일실시예에 의한 클라이언트(220)는, 수신 모듈(221), 언패킹 모듈(224), 복원 모듈(225), 그리고 실행부(226) 등을 포함하여 이루어 지며, 상기 수신 모듈(221)은 체킹 모듈(222) 및 제어부(223)를 더 포함하도록 설계된다. 다만, 이는 일실시예이며, 본 발명의 권리범위는 원칙적으로 특허청구범위에 의해 정해져야 한다.
상기 수신 모듈(221)은, 상기 클라이언트(220)와 네트워크를 통해 연결되어 있는 서버(200)로부터 패킹 프로그램을 수신한다. 상기 패킹 프로그램은, 예를 들어 상기 서버(200)에 의해 암호화된 코드와 변경된 제1헤더를 포함하고 있다.
상기 복원 모듈(225)은, 상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하고, 상기 언패킹 모듈(224)은, 키 분배 서버(210)로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행한다. 다만, 상기 복호키는 상기 암호화된 코드에 사용된 암호키에 대응한다.
그리고, 상기 실행 모듈(226)은, 상기 언패킹 프로세스가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하도록 설계된다.
나아가, 상기 수신 모듈(221)의 체킹 모듈(222)은, 상기 수신된 패킹 프로그램의 해킹 가능성 여부를 1차적으로 체크하고, 상기 수신 모듈(221)의 제어부(223)는 상기 해킹 가능성이 없는 경우에 한하여, 상기 복원하는 단계가 실행되도록 제어한다. 특히, 상기 체킹 모듈(222)은, 상기 수신된 패킹 프로그램이 실행되는 환경이 해킹에 노출되었는지 여부 및 해킹 툴(tool)의 존재 여부를 판단함으로써, 해킹 가능성을 1차적으로 체크한다.
도 3은 본 발명의 다른 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 클라이언트의 구체적인 모듈들을 보다 상세히 도시한 도면이다. 이하, 도 3을 참조하여, 본 발명의 다른 일실시예에 따라, 도 1에 도시된 서버, 키 분배 서버, 클라이언트의 구체적인 모듈들을 보다 상세히 설명하면 다음과 같다. 물론 도 2 및 도 3은 보충적으로 적용하여 해석할 수도 있다.
도 3에 도시된 바와 같이, 본 발명의 다른 일실시예에 의한 서버(300)는 보안 프로그램을 전송하며, 본 발명의 다른 일실시예에 의한 클라이언트(320)는 수신된 보안 프로그램을 실행하도록 설계된다.
상기 서버(300)의 보안 플랫폼(Security Platform)(305)은, 원본 보안 프로그램을 분석하고, 분할 모듈(Decomposition Module)(306)은 원본 보안 프로그램 코드를 분할하고, 분할된 코드를 블록(307)으로 컬렉트 되도록 설계된다. 인크립션 모듈(Encryption Module)(308)은, 분할된 코드를 암호화하고, 보안 프로그램의 실행 위치를 변형하여 체킹 모듈(330)을 설치하고, 패킹 모듈(309)은 원본 헤더 파일(303) 대신 변형된 헤더 파일(304)을 이용하여 인크립션된 데이터를 패킹한다.
한편, 본 발명의 다른 일실시예에 의하면, 보안 프로그램 검증 시스템을 2개의 프로세스로 구별하여, 1차 검증 프로세스를 위한 체킹 모듈(330)은, 키 분배 서버(310)와 접속하여 실시간 키를 분배 받는 과정을 실행하도록 설계된다. 나아가, 2차 검증 프로세스를 위한 2차 검증 블록(327)을 이용하여, 패킹된 보안 프로그램을 언패킹 하는 일과정을 수행하도록 설계된다. 이 과정에서 2차 검증 블록(327)은 암호화 되어 저장되어 있으며, 보안 프로그램의 코드 블록과 같이 복호화 되어 실행된다. 특히, 상기 2차 검증 블록(327)은, 전술한 체킹 모듈(330)의 동작에 따라 인증이 이루어진 경우에 한하여 실행되므로, 보안성이 더욱 강화된다.
패킹된 보안 프로그램을 수신하는 클라이언트(320)는, 언 패킹 모듈(unpacking module)(329)을 이용하여, 원본 보안 프로그램을 실행하기 위한 초기화 작업을 수행한다. 나아가, 체킹 모듈(330)을 구동하여, 인증에 성공한 경우, 패킹된 프로그램의 헤더 파일(324)을 수정하여 원본 프로그램의 헤더 파일(323)로 복원한다. 여기서, 헤더 파일을 복원한다는 것은 예를 들어, 정상적인 프로그램의 실행 위치에서 정상 실행되도록 제어한다는 것을 의미한다. 패킹된 보안 프로그램은 정상적인 보안 프로그램의 실행 위치를 포함(301, 302, 303, 321, 322, 323)하고 있으나 패킹 과정에서 실행 시작 위치를 프로그램 체킹 모듈(330) 위치로 변형(304, 324)하여 사용된다.
반면, 체킹 모듈(330)을 구동하여 인증에 실패한 경우, 보안 프로그램의 실행을 강제로 중단한다. 이는 전술한 바와 같이, 상기 키 분배 서버(310)와의 통신을 통해 이루어 질 수가 있다.
나아가, 1차 검증을 위한 상기 프로그램 체킹 모듈(330)은, 예컨대 실행 환경 및 해킹 도구들이 구동되고 있는지 검사하여 이상이 없는 경우에 한하여 상기 키 분배 서버(310)에 접속하여 언 패킹에 필요한 키를 분배 받는다. 또한, 상기 키를 분배 받는 방법은 2가지 방식이 가능하다. 일실시예로, 클라이언트 및 다운로드 받은 프로그램 정보를 서버에 전송하고 실시간 키를 전송 받는 방법이 사용된다. 다른 일실시예로, 방송의 수신 제한 시스템(Conditional Access System)에서 그룹 키를 공유하는 방법이 사용된다. 상기 수신 제한 시스템은, EMM(Entitlement Management Message)을 통해 클라이언트 또는 사용자가 정당한 수신 권한을 가지고 있는지 검사하고 키를 분배하는 기능을 수행한다. 상기 분배된 키 값을 이용하여 보안 프로그램을 분배하는 방식이다. 전술하여 설명한 도 1 내지 도 3의 키 분배 서버는 전술한 두 가지 실시예를 모두 구현할 수가 있다.
암호화 및 패킹되어 있는 코드 블록들은 키 분배 서버(310)에서 분배된 키 값들에 의해 보안 프로그램의 실행 권한이 달라진다. 즉, 암호화된 키와 매핑되어 있는 복호키를 키 분배 서버(310)로부터 정상적으로 수신한 경우에 한하여, 코드 블록(327)들이 재조합 되고, 합성 모듈(Composition Module)(326)은 코드를 복원한다. 또한, 상기 코드 블록들 사이에는 2차 검증 블록(327)이 포함되어 있어서, 체킹 모듈(330)에서의 인증이 성공한 경우에도, 상기 2차 검증 블록(327)을 통해 재검증이 이루어 진다.
1차 검증을 위한 상기 체킹 모듈(330)은, 예를 들어 패킹 기술을 제공하는 측에서 제공하며, 2차 검증 블록(327)은 보안 프로그램 제작자에 의해서 제공된다. 또한, 상기 체킹 모듈(330)과 상기 키 분배 서버(310)의 통신을 통해, 정당한 복호키를 수신한 디스크립션 모듈(Descryption Module)(328)은 암호화된 코드 블록들을 복호화 한다. 또한, 일반적인 코드 블록들과 달리, 보안 프로그램 헤더 파트는 체킹 모듈(330)을 거치면서, 변형된 헤더(324)가 정상의 헤더(323, 322, 321)로 복원된다.
상기 키 분배 서버(310)에서 제공하는 키로, 예를 들어 2가지 실시예가 가능하다. 제1실시예로서, 일반적인 키 값으로 보안 프로그램을 암호화할 때 하나의 키로 전체를 암호화하여 제공하는 방법이 있다. 나아가, 제2실시예로서, 키를 트리 형식으로 구조화하여 루트 키를 알면 하위 키를 알 수 있고, 중간 노드의 키를 알면 하위 노드들의 키를 알 수 있도록 하여 권한에 따라서 실행할 수 있는 키를 분배하는 방식이 있다. 또한 다수의 키를 통해 코드 블록(307, 327)을 암호화하여 전송하기 때문에 수신한 키의 등급에 따라서 전체 코드 블록을 복원할 수도 있고, 일부 코드 블록을 복원할 수도 있고, 또는 기본적인 코드 블록만을 복원할 수 있다. 이를 통해, 전송의 효율성을 제고하는 것이 가능하다.
즉, 본 발명의 다른 일실시예에 의한 클라이언트(320)는, 언 패킹 모듈(329) 부터 보안 플랫폼(325)까지의 과정을, 보안 프로그램이 구동될 때 마다 시도하여 불법적인 해킹이 발생하는 경우 즉각적으로 키 분배 서버(310)로의 접근을 차단할 수 있다.
도 4는 본 발명의 일실시예에 따라, 보안 프로그램을 실행하기에 앞서 1차 체크 및 2차 체크가 수행되는 과정을 설명하기 위한 도면이다. 이하, 도 3 및 도 4를 참조하여, 본 발명의 일실시예에 따라, 보안 프로그램을 실행하기에 앞서 1차 체크 및 2차 체크가 수행되는 과정을 요약하여 설명하면 다음과 같다.
도 3에 도시된 클라이언트의 체킹 모듈이 1차적으로 보안 프로그램의 인증 여부를 체크한다. 상기 1차적으로 보안 프로그램의 인증 여부 체크 결과 실패한 경우, 도 4에 도시된 바와 같이 더 이상 보안 프로그램을 언패키징 하는 프로세스를 진행하지 않는다.
한편, 상기 1차적으로 보안 프로그램의 인증 여부 체크 결과 성공한 경우, 일반 코드 블록들 사이에 위치한 2차 검증 블록을 체크한다. 상기 2차 검증 블록 체크 결과 실패한 경우, 도 4에 도시된 바와 같이 더 이상 보안 프로그램을 언패키징 하는 프로세스를 진행하지 않는다. 반면, 상기 2차 검증 블록 체크 결과 문제가 없는 경우, 도 4에 도시된 바와 같이, 보안 프로그램에 대한 정상적인 언패키징 프로세스를 진행하여, 보안 프로그램을 실행하도록 설계된다.
도 5는 본 발명의 또 다른 일실시예에 따라, 도 2 또는 도 3에 도시된 키 분배 서버를 보다 상세히 도시한 도면이다. 이하, 도 5를 참조하여, 본 발명의 또 다른 일실시예에 따라, 도 2 또는 도 3에 도시된 키 분배 서버를 보다 상세히 설명하면 다음과 같다.
도 5에 도시된 바와 같이, 키 분배 서버를 포함한 시스템(510)은 클라이언트(520)와 네트워크로 연결되어 있으며, 클라이언트의 상세한 모듈을 도시하지는 않았으나 도 2 및 도 3을 보충 해석할 수도 있다.
본 발명의 또 다른 일실시예에 의하면, 키 분배 서버(513)는, 실시간 방송 수신 제한 시스템과 연계되도록 설계된다. 상기 키 분배 서버(513)는 방송 수신 제한 모듈(512)과 연동되어 방송 스트림/EMM 수신 모듈(511)을 통해 수신된 방송 스트림의 EMM 데이터를 처리 하고, 그룹 키를 클라이언트(520)의 디스크립션 모듈(521)에 전송한다. 또한, 체킹 모듈(522)도 키 분배 서버(513)와 네트워크 통신이 이루어 지도록 설계된다. 한편, 예를 들어 보안성을 보다 강화하기 위하여, 키 분배 서버(513)의 기능은 수신 제한 모듈(512)을 제공하는 사업자가 제공한다.
도 6은 본 발명의 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 도시한 플로우 차트이다. 이하, 도 6을 참조하여, 본 발명의 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 시간 흐름순으로 설명하면 다음과 같다. 경우에 따라, 도 2에 도시된 블록들을 참조하여 해석할 수도 있다.
본 발명의 일실시예에 따라 설계된 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버는, 클라이언트에 전송하기 위한 보안 프로그램을 분석하고(S601), 상기 분석된 보안 프로그램의 코드를 분할한다(S602).
상기 서버는, 상기 분할된 코드를 암호키를 이용하여 암호화 하고 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경한다(S603). 또한, 상기 서버는, 상기 암호화된 코드와 변경된 제1헤더를 포함하도록 보안 프로그램을 패킹하고(S604), 상기 패킹된 보안 프로그램을 상기 클라이언트로 전송한다(S605).
나아가 예를 들어, 상기 분석하는 단계(S601)는, 도 7에 도시된 바와 같이 2가지 스텝으로 나누어 구현할 수도 있다. 즉, 상기 S601 단계는, 상기 보안 프로그램을 분할하고자 하는 코드의 제1위치값을 설정하는 단계(S701)와, 그리고 상기 보안 프로그램의 패킹에 필요한 부가 코드의 제2위치값을 설정하는 단계(S702)를 더 포함하도록 설계된다.
한편, 상기 암호화 하는 단계(S603)는, 상기 서버와 네트워크로 연결된 키 분배 서버로부터, 암호키를 수신하는 단계를 더 포함하도록 설계된다.
본 발명의 일실시예에 따라 설계된 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 클라이언트는, 상기 클라이언트와 네트워크를 통해 연결되어 있는 제1서버로부터 패킹 프로그램을 수신한다(S611). 상기 패킹 프로그램은, 예를 들어 상기 서버에 의해 암호화된 코드와 변경된 제1헤더를 포함하고 있다.
상기 클라이언트는, 상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하고(S621), 제2서버로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행한다(S613). 상기 복호키는, 예를 들어 상기 암호화된 코드에 사용된 암호키에 대응한다.
그리고, 상기 클라이언트는, 상기 언패킹 프로세스(S613)가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하도록 설계된다(S614).
나아가, 예를 들어, 상기 수신하는 단계(S611)는, 상기 수신된 패킹 프로그램의 해킹 가능성 여부를 1차적으로 체크하는 단계와, 그리고 상기 해킹 가능성이 없는 경우에 한하여, 상기 복원하는 단계가 실행되도록 제어하는 단계를 더 포함한다. 또한, 전술한 상기 1차적으로 체크하는 단계는, 상기 수신된 패킹 프로그램이 실행되는 환경이 해킹에 노출되었는지 여부 및 해킹 툴(tool)의 존재 여부를 판단함으로써, 1차 체크를 완료한다.
또한, 상기 수행하는 단계(S613)는, 2가지 다른 실시예로 구현 가능하다. 보다 구체적으로 설명하면, 제1실시예에 의하면, 상기 S613 단계는, 상기 클라이언트 및 수신된 패킹 프로그램의 정보를 상기 재2서버에 전송하는 단계와, 그리고 정당한 사용 권한이 있는 경우에 한하여, 상기 제2서버로부터 복호키를 수신하는 단계를 더 포함할 수도 있다. 반면, 제2실시예에 의하면, 상기 S613 단계는, EMM (Entitlement Management Message)을 이용하여 상기 클라이언트가 정당한 사용 권한을 가지고 있는지 여부를 판단한 상기 제2서버로부터, 복호키를 수신하는 단계를 더 포함할 수도 있다. 그리고, 상기 제2서버는, 예를 들어 키 분배 서버에 대응한다.
도 8은 본 발명의 다른 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 도시한 플로우 차트이다. 이하, 도 8을 참조하여, 본 발명의 다른 일실시예에 따라, 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버 및 클라이언트의 제어 방법을 시간흐름순에 따라 설명하면 다음과 같다. 필요에 따라, 도 3에 도시된 블록들을 참조하여 해석할 수도 있다.
제1서버는, 우선 보안 프로그램을 분석한다(S801). 이 때, 분할하고자 하는 코드의 초기 시작 위치 값 및 패킹에 필요한 프로그램 체킹 모듈에 어떤 코드를 추가할 것인지 여부를 결정한다.
상기 분석(S801)을 마친 프로그램은 프로그램 분할 프로세스(S802)를 거쳐 분할된 코드를 암호화 한다(S803). 상기 S803 단계는 전술한 제1서버에서 수행한다. 또한, 상기 S803 단계에서 사용되는 암호화키는 제2서버로부터 수신한다(S811). 상기 제2서버는, 예를 들어 상기 제1서버와 네트워크로 연결되어 있는 키 분배 서버(key distribution server)에 대응한다.
한편, 보안 프로그램의 헤더에 대한 수정 프로세스(S804)가 진행된다. 즉, 원본 보안 프로그램에 포함된 코드를 바로 실행하지 않고 프로그램 체킹 모듈을 먼저 수행하도록 원본 보안 프로그램의 헤더 등을 수정한다. 그리고, 상기 제1서버는 수정된 보안 프로그램에 대한 패킹 프로세스를 수행하고(S805), 그리고 패킹된 보안 프로그램을 클라이언트에 전송한다(S806).
클라이언트는, 패킹된 보안 프로그램을 수신하고(S821), 프로그램 체킹 모듈을 구동시켜(S823), 보안 프로그램에 대하여 1차적으로 실행 환경에 문제가 없는지, 또는 알려진 해킹 도구는 없는지 검사한다. 문제가 없는 경우, 원본 헤더가 복원된다(S825).
또한, 상기 클라이언트는 제2서버에 키를 요청하여 복호키를 수신하고(S812), 이를 이용하여 암호화된 코드 블록을 복호화 한다(S822). 그리고, 상기 클라이언트는, 상기 S825 단계 및 상기 S822 단계가 모두 성공적으로 완료한 경우, 보안 프로그램의 실행 위치를 복원한다(S826). 마지막으로, 상기 클라이언트는, 상기 실행 위치를 복원한 다음, 원본 보안 프로그램을 실행한다(S827).
따라서, 이와 같이 설계된 본 발명의 실시예들에 의하면, 예를 들어 IPTV 방송, 케이블 방송, 지상파 방송, 위성 방송 등에서 유료 방송 서비스를 제공하기 위해 다운로드 기반의 보안 프로그램을 안전하게 전송할 수가 있다. 이는, 일부 코드를 암호화하고 실시간 키 분배를 통해 정당하지 못한 사용자가 코드를 수행하지 못하도록 함으로써 가능하다.
또한, 지상파, 케이블, 위성, IPTV 방송과 같이 수신 제한 시스템(CAS, Conditional Access System)을 운영하고 있는 환경에서는 수신 제한 시스템(CAS)의 그룹 키와 연동하여 보안 프로그램의 실행을 제어하는 기능을 제공함으로써, 보안성을 제고할 수가 있다. 예컨대, 보안 프로그램이 실행될 때 마다 키를 확인하는 과정을 거치게 설계함으로써, 해킹으로 인한 오류 가능성을 제거한다.
한편, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양발명의 설명은 보충적으로 적용될 수가 있다.
본 발명에 따른 방법 발명은 모두 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
100 : 서버 (Server)
110 : 키 분배 서버 (Key Distribution Server)
120 : 클라이언트 (Client)

Claims (16)

  1. 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버의 제어 방법에 있어서,
    클라이언트에 전송하기 위한 보안 프로그램을 분석하는 단계;
    상기 분석된 보안 프로그램의 코드를 분할하는 단계;
    상기 분할된 코드를 암호키를 이용하여 암호화하고, 상기 보안 프로그램의 실행 위치를 변형하여 체킹 모듈을 설치하는 단계;
    상기 보안 프로그램의 코드에 앞서서 상기 체킹 모듈이 먼저 실행되어 패킹 프로그램의 해킹 가능성 여부를 1차적으로 체크하도록, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경하는 단계; 그리고
    상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트로 전송하는 단계
    를 포함하는, 서버의 제어 방법.
  2. 제1항에 있어서,
    상기 분석하는 단계는,
    상기 보안 프로그램을 분할하고자 하는 코드의 제1 위치값을 설정하는 단계;
    상기 제1 위치값을 이용하여 상기 보안 프로그램의 코드를 분할하는 단계; 및
    상기 체킹 모듈에 상기 보안 프로그램의 분할된 코드 중 어떤 코드를 추가할지를 결정하는 단계
    를 포함하는, 서버의 제어 방법.
  3. 제1항에 있어서,
    상기 암호화 하는 단계는,
    상기 서버가, 네트워크를 통하여 키 분배 서버로부터, 암호키를 수신하는 단계; 및
    상기 수신된 암호키를 이용하여 상기 분할된 코드를 암호화하는 단계
    를 포함하며,
    상기 수신된 암호키를 이용하여 상기 분할된 코드를 암호화하는 단계는,
    상기 키 분배 서버로부터 제공되는 복수의 암호키를 이용하여 상기 분할된 코드를 각각 암호화하는 방법과, 상기 키 분배 서버로부터 제공되는 하나의 암호키를 이용하여 상기 분할된 코드 전체를 암호화하는 방법 중 하나의 방법으로 암호화하는, 서버의 제어 방법.
  4. 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 클라이언트의 제어 방법에 있어서,
    상기 클라이언트와 네트워크를 통해 연결되어 있는 제1서버로부터 패킹 프로그램을 수신하는 단계--상기 패킹 프로그램은 암호화된 코드와 변경된 제1헤더를 포함하고 있음--;
    상기 수신된 패킹 프로그램의 해킹 가능성 여부를 1차적으로 체크하는 단계;
    상기 해킹 가능성이 없는 경우에 상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하는 단계;
    제2서버로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행하는 단계--상기 복호키는 상기 암호화된 코드에 사용된 암호키에 대응함--; 그리고
    상기 언패킹 프로세스가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하는 단계를 포함하는, 클라이언트의 제어 방법.
  5. 제4항에 있어서,
    상기 패킹 프로그램은 체킹 모듈을 포함하며, 상기 제1 헤더는 상기 패킹 프로그램에 대응하는 보안 프로그램에 우선하여 상기 체킹 모듈이 먼저 실행되도록 변경되어 있으며,
    상기 1차적으로 체크하는 단계는
    상기 패킹 프로그램의 상기 체킹 모듈이 실행되면서 상기 패킹 프로그램의 해킹 가능성 여부를 체크하는, 클라이언트의 제어 방법.
  6. 제4항에 있어서,
    상기 1차적으로 체크하는 단계는, 상기 수신된 패킹 프로그램이 실행되는 환경이 해킹에 노출되었는지 여부 및 해킹 툴(tool)의 존재 여부를 판단하는, 클라이언트의 제어 방법.
  7. 제4항에 있어서,
    상기 수행하는 단계는,
    상기 클라이언트 및 수신된 패킹 프로그램의 정보를 상기 제2서버에 전송하는 단계; 그리고
    정당한 사용 권한이 있는 경우에 한하여, 상기 제2서버로부터 복호키를 수신하는 단계를 더 포함하는, 클라이언트의 제어 방법.
  8. 제4항에 있어서,
    상기 수행하는 단계는,
    EMM (Entitlement Management Message)을 이용하여 상기 클라이언트가 정당한 사용 권한을 가지고 있는지 여부를 판단한 상기 제2서버로부터, 복호키를 수신하는 단계를 더 포함하는, 클라이언트의 제어 방법.
  9. 제4항에 있어서,
    상기 제2서버는 키 분배 서버에 대응하고,
    상기 패킹 프로그램의 암호화 코드들은 상기 키 분배 서버로부터 실시간으로 제공되는 복수의 암호키를 토대로 각각 암호화되어 있으며,
    상기 클라이언트는 상기 수신한 복호키의 등급에 따라, 상기 패킹 프로그램의 전체 암호화된 코드를 복원하거나 상기 암호화된 코드들 중 일부를 복원하는, 클라이언트의 제어 방법.
  10. 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버에 있어서,
    클라이언트에 전송하기 위한 보안 프로그램을 분석하는 분석 모듈;
    상기 분석된 보안 프로그램의 코드를 분할하는 분할 모듈;
    상기 분할된 코드를 암호키를 이용하여 암호화하고, 상기 보안 프로그램의 실행 위치를 변형하여 체킹 모듈을 설치하는 암호화 모듈;
    상기 보안 프로그램의 코드에 앞서서 상기 체킹 모듈이 먼저 실행되어 패킹 프로그램의 해킹 가능성 여부를 1차적으로 체크하도록, 상기 보안 프로그램의 오리지날 헤더를 제1헤더로 변경하는 변경 모듈; 그리고
    상기 암호화된 코드와 변경된 제1헤더를 포함하는 패킹 프로그램을 상기 클라이언트로 전송하는 전송 모듈을 포함하는, 서버.
  11. 제10항에 있어서,
    상기 분석 모듈은,
    상기 보안 프로그램을 분할하고자 하는 코드의 제1위치값을 설정하고, 그리고
    상기 보안 프로그램의 패킹에 필요한 부가 코드의 제2위치값을 설정하는 서버.
  12. 제10항에 있어서,
    상기 암호화 모듈은, 상기 서버와 네트워크로 연결된 키 분배 서버로부터 수신된 암호키를 이용하여,
    상기 키 분배 서버로부터 제공되는 복수의 암호키를 이용하여 상기 분할된 코드를 각각 암호화하는 방법과, 상기 키 분배 서버로부터 제공되는 하나의 암호키를 이용하여 상기 분할된 코드 전체를 암호화하는 방법 중 하나의 방법으로 상기 분할된 코드를 암호화하는, 서버.
  13. 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 클라이언트에 있어서,
    상기 클라이언트와 네트워크를 통해 연결되어 있는 제1서버로부터 패킹 프로그램을 수신하는 수신 모듈--상기 패킹 프로그램은 암호화된 코드와 변경된 제1헤더를 포함하고 있음--;
    상기 패킹 프로그램의 변경된 제1헤더를 오리지널 헤더로 복원하는 복원 모듈;
    제2서버로부터 수신된 복호키를 이용하여 상기 패킹 프로그램에 대한 언패킹 프로세스를 수행하는 언패킹 모듈--상기 복호키는 상기 암호화된 코드에 사용된 암호키에 대응함--; 그리고
    상기 언패킹 프로세스가 종료한 경우, 상기 패킹 프로그램에 대응하는 보안 프로그램을 실행하는 실행 모듈을 포함하며,
    상기 수신된 패킹 프로그램의 해킹 가능성 여부가 1차적으로 체크된 다음에, 상기 해킹 가능성이 없는 경우에 한하여, 상기 복원 모듈이 동작하는, 클라이언트.
  14. 제13항에 있어서,
    상기 패킹 프로그램은 체킹 모듈을 포함하며, 상기 제1 헤더는 상기 패킹 프로그램에 대응하는 보안 프로그램에 우선하여 상기 체킹 모듈이 먼저 실행되도록 변경되어 있으며,
    상기 수신 모듈은 상기 체킹 모듈을 실행시켜, 상기 수신된 패킹 프로그램이 실행되는 환경이 해킹에 노출되었는지의 여부 및 해킹 툴(tool)의 존재 여부를 체크하는, 클라이언트.
  15. 제14항에 있어서,
    상기 패킹 프로그램은 2차 검증 블록을 포함하며,
    상기 체킹 모듈의 실행에 따라 상기 해킹 가능성이 없는 것으로 판단된 경우, 상기 2차 검증 블록이 2차 검증을 수행하며,
    상기 2차 검증이 이루어진 다음에 상기 언패킹 모듈에 의한 언패킹 프로세스가 수행되는, 클라이언트.
  16. 제13항에 있어서,
    상기 제2서버는 키 분배 서버에 대응하고,
    상기 패킹 프로그램의 암호화 코드들은 상기 키 분배 서버로부터 실시간으로 제공되는 복수의 암호키를 토대로 각각 암호화되어 있으며,
    상기 클라이언트는 상기 수신한 복호키의 등급에 따라, 상기 패킹 프로그램의 전체 암호화된 코드를 복원하거나 상기 암호화된 코드들 중 일부를 복원하는, 클라이언트.
KR1020100126408A 2010-12-10 2010-12-10 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법 KR101747954B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100126408A KR101747954B1 (ko) 2010-12-10 2010-12-10 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법
US13/315,926 US8639924B2 (en) 2010-12-10 2011-12-09 Method for processing secure program using key distribution protocol in server/client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100126408A KR101747954B1 (ko) 2010-12-10 2010-12-10 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20120065080A KR20120065080A (ko) 2012-06-20
KR101747954B1 true KR101747954B1 (ko) 2017-06-27

Family

ID=46200631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100126408A KR101747954B1 (ko) 2010-12-10 2010-12-10 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법

Country Status (2)

Country Link
US (1) US8639924B2 (ko)
KR (1) KR101747954B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102071365B1 (ko) 2015-08-04 2020-01-30 한국전자통신연구원 리던던트 시스템에서의 프로세스 인증 장치 및 방법
KR102385342B1 (ko) 2020-12-24 2022-04-08 정한영 시간 동기화 암호체계

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080178299A1 (en) * 2001-05-09 2008-07-24 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484209B1 (ko) * 1998-09-24 2005-09-30 삼성전자주식회사 디지털컨텐트암호화/해독화장치및그방법
US7325127B2 (en) * 2000-04-25 2008-01-29 Secure Data In Motion, Inc. Security server system
US8213612B2 (en) 2007-12-07 2012-07-03 Inside Contactless S.A. Secure software download
KR101009420B1 (ko) 2008-10-08 2011-01-19 한국전자통신연구원 통합네트워크에서 단말 시각 동기화 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080178299A1 (en) * 2001-05-09 2008-07-24 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content

Also Published As

Publication number Publication date
US8639924B2 (en) 2014-01-28
KR20120065080A (ko) 2012-06-20
US20120151208A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
US11675880B2 (en) Securing webpages, webapps and applications
US20080209231A1 (en) Contents Encryption Method, System and Method for Providing Contents Through Network Using the Encryption Method
EP3210332B1 (en) Providing access to content
US10027683B2 (en) Shared symmetric key encryption
US20150172739A1 (en) Device authentication
KR20160112019A (ko) 하드웨어 신뢰 루트를 구축하고 보호 콘텐츠 처리를 개방 컴퓨팅 플랫폼 내에 제공하는 방법 및 장치
EP2289013B1 (en) A method and a device for protecting private content
CN113438086A (zh) 一种数据安全防护方法和系统
US20100241855A1 (en) Systems and Methods for Secure Execution of Code Using a Hardware Protection Module
TWI492602B (zh) 無揭露之訊息鑑別碼驗證技術
CN103095462A (zh) 基于代理重加密和安全芯片的数据广播分发保护方法
KR20120042469A (ko) 부가 정보와 암호키 결합을 이용한 콘텐츠 보호 장치 및 그 방법
KR101747954B1 (ko) 실시간 암호키 분배 방식을 이용하여 보안 프로그램을 처리하는 서버와 클라이언트 및 그 제어 방법
Bahaa-Eldin et al. A comprehensive software copy protection and digital rights management platform
US20120155633A1 (en) Audio content protection
KR101141428B1 (ko) 보안 모듈의 고유 정보를 이용한 불법적인 시청 방지 방법
CN110912941A (zh) 组播数据的传输处理方法及装置
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
KR101445483B1 (ko) 조건부 프록시 재암호화 기법을 이용한 데이터 전송 방법 및 시스템
US11329967B2 (en) Key-ladder protected personalization data conversion from global to unique encryption
KR20160139914A (ko) 소프트웨어의 변조 여부 탐지 시스템 및 방법
KR20170008514A (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
KR20140082408A (ko) 어플리케이션 관리 방법 및 그 관리 장치
KR102644153B1 (ko) 데이터 보안 장치 및 방법
KR101512241B1 (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