KR20150060182A - 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체 - Google Patents

라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체 Download PDF

Info

Publication number
KR20150060182A
KR20150060182A KR1020130144314A KR20130144314A KR20150060182A KR 20150060182 A KR20150060182 A KR 20150060182A KR 1020130144314 A KR1020130144314 A KR 1020130144314A KR 20130144314 A KR20130144314 A KR 20130144314A KR 20150060182 A KR20150060182 A KR 20150060182A
Authority
KR
South Korea
Prior art keywords
package
license management
eigenvalue
program
encrypted
Prior art date
Application number
KR1020130144314A
Other languages
English (en)
Other versions
KR101545940B1 (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 KR1020130144314A priority Critical patent/KR101545940B1/ko
Publication of KR20150060182A publication Critical patent/KR20150060182A/ko
Application granted granted Critical
Publication of KR101545940B1 publication Critical patent/KR101545940B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

라이센스 관리 장치가 개시된다. 라이센스 관리 장치는 고유 값을 생성하여 프로그램 실행 파일을 암호화하는 제어부, 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 생성부, 고유 값 및 패키지 ID를 저장하는 저장부 및 단말 장치와 통신을 수행하는 통신부를 포함한다. 이에 따라, 라이센스 관리 장치는 라이센스를 동적으로 관리함으로써 무단 배포나 복제를 방지할 수 있다.

Description

라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체{License management Apparatus, license management systmem, license management method and storage medium}
본 발명은 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체에 관한 것으로, 더욱 상세하게는 라이센스를 동적으로 관리하는 라이센스 관리 장치. 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체에 관한 것이다.
컴퓨터를 이용한 다양한 작업은 다양한 응용 소프트웨어를 구동시켜 수행될 수 있다. 일반적으로 응용 소프트웨어는 사전에 컴파일하여 패키지 형태로 제작되므로 동일한 소프트웨어로 배포된다. 소프트웨어는 고유한 값이 없기 때문에 무단으로 복제나 배포를 추적하기 곤란하다.
이러한 무단 복제나 배포를 막기 위해 사용자 컴퓨터의 고유 값을 이용하는 방법이 고려될 수 있다. 그러나, 사용자의 컴퓨터 자체에는 활용 가능한 고유 값이 거의 없다. 네트워크 카드의 MAC 과 같은 값이 고려될 수 있으나, 하드웨어 교체 또는 가상화의 경우 이러한 고유 값은 기능을 상실하는 문제점이 있다.
그리고, 소프트웨어 제작시 고유의 시리얼 값을 입력하는 방법이 있다. 그러나, 시리얼 생성기 사용 또는 기존 시리얼의 재사용과 같은 방법으로 무단 복제나 배포가 가능하다는 문제점이 있다.
또는, 소프트웨어의 시리얼 값의 유효성을 판단하여 실행하는 방법이 있다. 그러나, 해커 등이 유효성 판단 루틴을 해킹하여 크랙 버전을 배포할 가능성이 존재한다.
따라서, 소프트웨어의 무단 복제 또는 배포를 방지할 수 있는 기술에 대한 필요성이 대두되고 있다.
본 발명은 상술한 필요성에 따라 안출된 것으로, 본 발명의 목적은 소프트웨어의 무단 복제 또는 배포를 방지할 수 있도록 동적으로 라이센스를 관리하는 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체를 제공함에 있다.
본 발명의 상술한 목적을 달성하기 위한 일 실시 예로서, 라이센스 관리 장치는 고유 값을 생성하여 프로그램 실행파일을 암호화하는 제어부, 상기 암호화된 프로그램 실행파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 생성부, 상기 고유 값 및 상기 패키지 ID를 저장하는 저장부 및 단말 장치와 통신을 수행하는 통신부를 포함한다.
그리고, 상기 통신부는 사용자로부터 사용자 ID를 입력받으면 상기 사용자의 단말 장치로부터 패키지 ID를 수신하고, 상기 제어부는 상기 수신된 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하며, 라이센스 관리 장치의 개인키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션키를 생성하고, 상기 세션키를 이용하여 상기 전자 서명을 암호화하여 상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 고유 값은 각 소프트웨어 패키지마다 별개로 생성될 수 있다.
본 발명의 상술한 목적을 달성하기 위한 일 실시 예로서, 라이센스 관리 장치 및 단말 장치를 포함하는 라이센스 관리 시스템은 고유 값을 생성하여 프로그램 실행파일을 암호화하고, 상기 암호화된 프로그램 실행파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하며, 상기 고유 값 및 상기 패키지 ID를 저장하는 라이센스 관리 장치 및 상기 라이센스 관리 장치와 통신을 수행하는 단말 장치를 포함한다.
그리고, 상기 단말 장치는 사용자 ID 및 패키지 ID를 상기 라이센스 관리 장치로 전송하고, 상기 라이센스 관리 장치는 상기 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하며, 라이센스 관리 장치의 개인키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션키를 생성하고, 상기 세션키를 이용하여 상기 전자 서명을 암호화하여 상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하며, 상기 단말 장치는 상기 암호화된 전자 서명을 수신하여 복호화하고, 상기 전자 서명에 포함된 상기 암호화된 고유 값을 상기 프로그램 개인 키 연산을 수행하는 파일을 이용하여 복호화하며, 상기 복호화된 고유 값을 이용하여 상기 프로그램 실행파일을 복호화하여 프로그램을 설치할 수 있다.
한편, 상기 고유 값은 각 소프트웨어 패키지마다 별개로 생성될 수 있다.
본 발명의 상술한 목적을 달성하기 위한 일 실시 예로서, 라이센스 관리 방법은 고유 값을 생성하여 프로그램 실행파일을 암호화하는 단계, 상기 암호화된 프로그램 실행파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 단계, 상기 고유 값 및 상기 패키지 ID를 저장하는 단계 및 단말 장치와 통신을 수행하는 단계를 포함한다.
그리고, 상기 통신을 수행하는 단계는 사용자로부터 사용자 ID를 입력받으면 상기 사용자의 단말 장치로부터 패키지 ID를 수신하고, 상기 라이센스 관리 방법은 상기 수신된 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하는 단계, 라이센스 관리 장치의 개인키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션키를 생성하고, 상기 세션키를 이용하여 상기 전자 서명을 암호화하는 단계 및 상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하는 단계를 더 포함할 수 있다.
한편, 상기 고유 값은 각 소프트웨어 패키지마다 별개로 생성될 수 있다.
본 발명의 상술한 목적을 달성하기 위한 일 실시 예로서, 저장매체는 고유 값을 이용하여 암호화된 프로그램 실행파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하고, 라이센스 관리 장치로부터 암호화된 전자 서명을 수신하여 복호화하고, 상기 전자 서명에 포함된 상기 암호화된 고유 값을 상기 프로그램 개인 키 연산을 수행하는 파일을 이용하여 복호화하며, 상기 복호화된 고유 값을 이용하여 상기 프로그램 실행파일을 복호화하여 프로그램을 설치하는 소프트웨어 패키지가 저장될 수 있다.
그리고, 상기 고유 값은 각 소프트웨어 패키지마다 별개로 생성될 수 있다.
상술한 다양한 실시 예에 따르면, 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체는 라이센스를 동적으로 관리함으로써 무단 배포나 복제를 방지할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 라이센스 관리 시스템을 설명하는 도면.
도 2는 본 발명의 일 실시 예에 따른 라이센스 관리 장치의 블록도.
도 3은 본 발명의 일 실시 예에 따른 소프트웨어 패키지의 구조를 설명하는 도면.
도 4는 본 발명의 일 실시 예에 따른 라이센스 관리 방법의 흐름도.
도 5는 본 발명의 일 실시 예에 따른 라이센스 관리 시스템의 타이밍도.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시 예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
도 1은 본 발명의 일 실시 예에 따른 라이센스 관리 시스템을 설명하는 도면이다.
도 1을 참조하면 라이센스 관리 시스템(1000)은 라이센스 관리 장치(100) 및 단말 장치(200)를 포함한다.
라이센스 관리 장치(100)는 동적 소프트웨어 패키지를 생성한다. 소프트웨어 패키지는 응용 프로그램을 설치하고 실행할 수 있는 파일들의 집합을 의미한다. 예를 들어, 소프트웨어 패키지는 데이터 파일, 바이너리 파일, 실행 파일, 헤더 파일 등을 포함할 수 있다. 라이센스 관리 장치(100)는 배포하는 소프트웨어 패키지 별로 고유 값을 생성한다. 고유 값은 각 소프트웨어 패키지마다 별개로 생성된다. 라이센스 관리 장치(100)는 프로그램을 컴파일하여 소프트웨어 패키지를 만들 때 생성된 고유 값을 이용하여 프로그램 실행 파일을 암호화한다. 암호화는 프로그램 실행 파일 일부분에 대해 수행될 수 있다.
라이센스 관리 장치(100)는 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하고, 고유 값 및 패키지 ID를 저장한다. 프로그램 개인 키 연산을 수행하는 파일은 프로그램 비밀 키(SWprv)를 포함한다. 라이센스 관리 장치(100)는 생성된 소프트웨어 패키지를 저장 매체(10)에 저장할 수 있고, 저장부에 저장할 수 있다. 소프트웨어 패키지가 저장된 저장 매체(10)는 오프라인으로 사용자에게 배포될 수 있고, 저장부에 저장된 소프트웨어 패키지는 온라인으로 사용자에게 배포될 수 있다.
소프트웨어 패키지가 온라인으로 배포된 경우, 사용자가 다운로드시 라이센스 관리 장치(100)는 사용자 ID와 패키지 ID를 관련시켜 동작을 수행할 수 있다. 소프트웨어 패키지가 저장 매체(10)를 통해 오프라인으로 배포된 경우, 사용자가 패키지 인스톨시 라이센스 관리 장치(100)는 사용자 ID와 패키지 ID를 관련시켜 동작을 수행할 수 있다.
사용자가 소프트웨어 패키지를 다운로드 또는 인스톨하는 경우 라이센스 관리 장치(100)에 로그인하는 과정이 요구된다. 즉, 사용자가 소프트웨어 패키지를 설치하려는 단말 장치(200)는 라이센스 관리 장치(100)와 통신을 수행한다. 단말 장치(200)는 사용자 ID 및 패키지 ID를 라이센스 관리 장치(100)로 전송한다.
라이센스 관리 장치(100)는 수신한 패키지 ID를 기초로 저장된 패키지 ID 중 일치하는 패키지 ID를 검색하고 대응되는 고유 값을 확인한다. 라이센스 관리 장치(100)는 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화하며, 라이센스 관리 장치의 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성한다. 이 때, 라이센스 관리 장치(100)와 단말 장치(200)는 상호 인증 절차를 수행한다. 라이센스 관리 장치(100)는 세션 키(Kpu)를 이용하여 전자 서명을 암호화하여 단말 장치(200)로 전송한다.
단말 장치(200)는 암호화된 전자 서명을 수신하여 복호화하여 전자 서명에 포함된 암호화된 고유 값을 검출한다. 단말 장치(200)는 암호화된 고유 값을 프로그램 개인 키(SWprv) 연산을 수행하는 파일을 이용하여 복호화한다. 단말 장치(200)는 복호화된 고유 값을 이용하여 프로그램 실행 파일을 복호화하여 프로그램을 설치한다.
지금까지 라이센스 관리 장치(100)와 단말 장치(200)를 포함하는 라이센스 관리 시스템(1000)에 대해 설명하였다. 라이센스 관리 장치(100)는 별개의 장치로 구현될 수 있다. 즉, 라이센스 관리 장치(100)는 동적 소프트웨어 패키지를 생성하는 제1 장치(미도시)와 단말 장치(200)와 통신을 수행하고 암호화된 고유 키를 전송하는 제2 장치(미도시)로 구현될 수 있다.
제1 장치는 배포하는 소프트웨어 패키지 별로 고유 값을 생성하고, 프로그램을 컴파일하여 소프트웨어 패키지를 만들 때 생성된 고유 값을 이용하여 프로그램 실행 파일을 암호화할 수 있다. 제1 장치는 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성할 수 있다.
제2 장치는 고유 값 및 패키지 ID를 저장한다. 사용자가 소프트웨어 패키지를 다운로드 또는 인스톨하는 경우 제2 장치에 로그인하는 과정이 요구된다. 즉, 사용자가 소프트웨어 패키지를 설치하려는 단말 장치(200)는 제2 장치와 통신을 수행한다. 단말 장치(200)는 사용자 ID 및 패키지 ID를 제2 장치로 전송한다. 제2 장치는 수신한 패키지 ID를 기초로 저장된 패키지 ID 중 일치하는 패키지 ID를 검색하고 대응되는 고유 값을 확인한다. 제2 장치는 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화하며, 제2 장치의 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성한다. 이 때, 제2 장치와 단말 장치(200)는 상호 인증 절차를 수행한다. 제2 장치는 세션 키(Kpu)를 이용하여 전자 서명을 암호화하여 단말 장치(200)로 전송한다.
아래에서는 라이센스 관리 장치(100)의 구성에 대해 설명하기로 한다.
도 2는 본 발명의 일 실시 예에 따른 라이센스 관리 장치의 블록도이다.
라이센스 관리 장치(100)는 제어부(110), 생성부(120), 저장부(130), 통신부(140)를 포함한다.
제어부(110)는 고유 값을 생성하여 프로그램 실행 파일을 암호화한다. 고유 값은 각 소프트웨어 패키지마다 별개로 생성된다. 제어부(110)는 기 설정된 알고리즘에 따라 라이센스 관리 장치(100)의 각 구성부를 제어할 수 있다.
단말 장치가 사용자 ID를 이용하여 라이센스 관리 장치(100)에 접속되면 라이센스 관리 장치(100)는 단말 장치로부터 패키지 ID를 수신한다. 제어부(110)는 저장된 패키지 ID 중에서 수신된 패키지 ID와 일치하는 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인한다. 라이센스 관리 장치(100)는 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화하며, 라이센스 관리 장치의 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성한다. 라이센스 관리 장치(100)와 단말 장치(200)는 상호 인증 과정을 수행한다. 라이센스 관리 장치(100)는 세션 키(Kpu)를 이용하여 전자 서명을 암호화하여 사용자의 단말 장치로 암호화된 전자 서명을 전송하도록 통신부를 제어한다.
생성부(120)는 암호화된 프로그램 실행 파일, 프로그램 개인 키(SWprv) 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성한다. 프로그램 실행 파일은 일부분에 대해 암호화될 수 있다.
저장부(130)는 고유 값 및 패키지 ID를 저장한다. 통신부(140)는 단말 장치와 통신을 수행한다. 통신부(140)는 사용자로부터 사용자 ID를 입력받으면 사용자의 단말 장치로부터 패키지 ID를 수신한다.
상술한 바와 같이, 라이센스 관리 장치(100)는 별개의 장치로 구현될 수 있다. 즉, 라이센스 관리 장치(100)는 동적 소프트웨어 패키지를 생성하는 제1 장치(미도시)와 단말 장치(200)와 통신을 수행하고 암호화된 고유 키를 전송하는 제2 장치(미도시)로 구현될 수 있다.
제1 장치는 배포하는 소프트웨어 패키지 별로 고유 값을 생성하는 생성부(미도시), 프로그램을 컴파일하여 소프트웨어 패키지를 만들 때 생성된 고유 값을 이용하여 프로그램 실행 파일을 암호화하며, 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 제어부(미도시)를 포함할 수 있다. 또한, 생성된 소프트웨어 패키지를 출력하는 출력부(미도시)를 더 포함할 수 있다.
제2 장치는 고유 값 및 패키지 ID를 저장하는 저장부(미도시), 단말 장치와 통신을 수행하는 통신부(미도시), 수신한 패키지 ID를 기초로 저장된 패키지 ID 중 일치하는 패키지 ID를 검색하고 대응되는 고유 값을 확인하는 제어부(미도시)를 포함할 수 있다. 또한, 제어부는 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화하며, 제2 장치의 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성할 수 있다. 통신부는 세션 키(Kpu)를 이용하여 전자 서명을 암호화하여 단말 장치로 전송할 수 있다.
이와 같이 생성된 소프트웨어 패키지는 정적 파트와 동적 파트로 구분될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 소프트웨어 패키지의 구조를 설명하는 도면이다.
도 3을 참조하면, 소프트웨어 패키지(20)는 정적 파트(21)와 동적 파트(22)를 포함할 수 있다. 정적 파트(21)는 각 소프트웨어 패키지(20)에 공통적으로 포함될 수 있는 부분을 의미한다. 동적 파트(22)는 각 소프트웨어 패키지(20)마다 차이가 있는 부분을 의미한다.
정적 파트(21)는 어플리케이션(21-1), 일반 암/복호 엔진(21-2)를 포함할 수 있고, 동적 파트(22)는 암호화된 실행 파일(22-1), 프로그램 개인 키 연산 파일(22-2)를 포함할 수 있다.
어플리케이션(21-1)은 구현하려는 동작을 수행하는 응용 프로그램을 의미한다. 일반 암/복호 엔진(21-2)는 메시지를 암호화하여 전송하고, 암호화된 메시지를 수신하여 복호화하는 부분을 의미한다.
암호화된 실행 파일(22-1)은 프로그램을 설치하기 위한 실행 파일로서 소프트웨어 패키지마다 별개로 생성된 고유 키를 이용하여 암호화된 파일을 의미한다. 실행 파일은 일부분에 대해서만 암호화될 수 있다.
프로그램 개인 키 연산 파일(22-2)은 프로그램 개인 키(SWprv)를 연산하는 부분이다. 라이센스 관리 장치는 프로그램 공개 키(SWpub)를 이용하여 고유 키가 포함된 메시지를 암호화하여 단말 장치로 전송한다. 단말 장치가 암호화된 고유 키가 포함된 메시지를 수신하면, 프로그램 개인 키 연산 파일(22-2)은 프로그램 개인 키(SWprv)를 이용하여 메시지를 복호화하여 고유 키를 얻는다.
소프트웨어 패키지(20)는 개념적으로 정적 파트(21)와 동적 파트(22)로 구분하였으나, 이러한 구분은 물리적으로 엄밀하게 나누어져 있다는 의미는 아니다. 예를 들어, A 실행 파일, B 데이터 파일, C 라이브러리 파일은 정적 파트(21), D 실행 파일, E 데이터 파일은 동적 파트(22)와 같이 물리적으로 명확히 나누어지는 것은 아니다. 소프트웨어 패키지(20)의 일부 파일은 정적 파트(21), 다른 일부 파일은 동적 파트(22)로 나누어질 수 있지만, 또 다른 일부 파일의 일부분은 정적 파트(21)에 포함되고, 나머지 일부분은 동적 파트(22)에 포함될 수 있다. 경우에 따라, 소프트웨어 패키지(20)는 하나의 파일로 구성되고, 일부 영역은 정적 파트(21), 다른 일부 영역은 동적 파트(22)와 같이 구현될 수도 있다.
아래에서는 라이센스 관리 방법 및 라이센스 관리 장치와 단말 장치간 메시지 전송 과정에 대해 설명하기로 한다.
도 4는 본 발명의 일 실시 예에 따른 라이센스 관리 방법의 흐름도이다.
도 4를 참조하면, 라이센스 관리 장치는 고유 값을 생성하여 프로그램 실행 파일을 암호화한다(S410). 고유 값은 각 소프트웨어 패키지마다 별개로 생성된다. 프로그램 실행 파일은 전체적 또는 일부분만 암호화될 수 있다.
라이센스 관리 장치는 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성한다(S420). 소프트웨어 패키지는 저장 매체를 저장되어 오프라인으로 배포될 수 있고, 인터넷 등과 같은 유무선 통신 방식을 이용하여 온라인으로 배포될 수 있다.
라이센스 관리 장치는 고유 값 및 패키지 ID를 저장한다(S430). 고유 값은 각 소프트웨어 패키지마다 별개로 생성되고 패키지 ID와 연관되어 저장될 수 있다.
라이센스 관리 장치는 단말 장치와 통신을 수행한다(S440). 라이센스 관리 장치는 온라인 방식으로 소프트웨어 패키지를 사용자 단말 장치로 전송할 있다. 라이센스 관리 장치는 사용자 등록 과정을 수행할 수 있으며, 단말 장치로부터 사용자 ID 및 패키지 ID를 수신할 수 있다.
라이센스 관리 장치는 저장된 패키지 ID를 검색하여 수신된 패키지 ID와 일치하는 패키지 ID를 검색한다. 라이센스 관리 장치는 검색된 패키지 ID에 대응되는 고유 값을 확인하고, 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화할 수 있다.
라이센스 관리 장치는 라이센스 관리 장치 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성하고, 상기 세션 키(Kpu)를 이용하여 상기 전자 서명을 암호화할 수 있다. 라이센스 관리 장치는 단말 장치로 암호화된 전자 서명을 전송할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 라이센스 관리 시스템의 타이밍도이다.
도 5를 참조하면, 단말 장치(200)는 라이센스 관리 장치(100)로 사용자 ID 및 패키지 ID를 전송한다(S510).
라이센스 관리 장치(100)는 저장된 패키지 ID 중 수신된 패키지 ID와 일치하는 패키지 ID를 검색하여 고유 값을 확인한다(S520). 라이센스 관리 장치(100)는 프로그램 공개 키(SWpub)를 이용하여 고유 값을 암호화한다(S530). 라이센스 관리 장치(100)와 단말 장치(200)는 상호 인증 과정을 수행할 수 있다. 라이센스 관리 장치(100)는 장치의 개인 키(Pprv)를 이용하여 암호화된 고유 값에 대한 전자 서명 및 세션 키(Kpu)를 생성한다(S540). 라이센스 관리 장치(100)는 암호화된 전자 서명을 단말 장치로 전송한다(S550).
단말 장치(200)는 암호화된 전자 서명을 수신하여 복호화한다(S560). 단말 장치(200)는 프로그램 개인 키(SWprv)를 이용하여 암호화된 고유 값을 복호화한다(S570). 단말 장치(200)는 복호화된 고유 값을 이용하여 프로그램 실행 파일을 복호화한다(S580). 단말 장치(200)는 프로그램을 설치한다(S590).
이와 같이 라이센스 관리 장치는 사용자와 소프트웨어 패키지의 강력한 연계를 통해 패키지에 대한 추적성(traceability)을 향상시킬 수 있다. 소프트웨어 패키지의 실행 파일에 정보가 배치(embed)되므로 해킹 등에 대한 보안이 강화될 수 있다. 또한, 본 발명은 시리얼 생성기의 제작을 방지할 수 있고 라이센스 점검 부분을 건너뛰는 간단한 크랙을 방지할 수 있다. 아울러, 암호 키를 파일로 처리하지 않고, 메모리에서만 처리하므로 안전성을 향상시킬 수 있다.
본 발명에 따른 라이센스 관리 장치, 라이센스 관리 시스템 및 라이센스 관리 방법은 상술한 실시 예들의 구성과 방법으로 한정되어 적용되는 것이 아니라, 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 다양한 변형이 이루어질 수 있다.
라이센스 관리 장치에 의해 생성된 소프트웨어 패키지는 프로세서가 읽을 수 있는 저장 매체의 형태로 구현될 수 있다. 저장 매체는 고유 값을 이용하여 암호화된 프로그램 실행파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하고, 프로그램을 설치하는 경우, 라이센스 관리 장치로부터 암호화된 전자 서명을 수신하여 복호화하고, 전자 서명에 포함된 암호화된 고유 값을 프로그램 개인 키 연산을 수행하는 파일을 이용하여 복호화하며, 복호화된 고유 값을 이용하여 프로그램 실행파일을 복호화하여 프로그램을 설치하는 소프트웨어 패키지를 저장할 수 있다.
한편, 본 발명의 라이센스 관리 방법은 라이센스 관리 장치에 구비된 프로세서가 읽을 수 있는 저장 매체에 프로세서가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 프로세서가 읽을 수 있는 저장 매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 프로세서가 읽을 수 있는 저장 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
1000 : 라이센스 관리 시스템
100 : 라이센스 관리 장치 200 : 단말 장치
110 : 제어부 120 : 생성부
130 : 저장부 140 : 통신부
10 : 저장 매체

Claims (11)

  1. 고유 값을 생성하여 프로그램 실행 파일을 암호화하는 제어부;
    상기 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 생성부;
    상기 고유 값 및 상기 패키지 ID를 저장하는 저장부; 및
    단말 장치와 통신을 수행하는 통신부;를 포함하는 라이센스 관리 장치.
  2. 제1항에 있어서,
    상기 통신부는,
    사용자로부터 사용자 ID를 입력받으면 상기 사용자의 단말 장치로부터 패키지 ID를 수신하고,
    상기 제어부는,
    상기 수신된 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하며, 라이센스 관리 장치의 개인 키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션 키를 생성하고, 상기 세션 키를 이용하여 상기 전자 서명을 암호화하여 상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 라이센스 관리 장치.
  3. 제1항에 있어서,
    상기 고유 값은,
    각 소프트웨어 패키지마다 별개로 생성되는 것을 특징으로 하는 라이센스 관리 장치.
  4. 라이센스 관리 장치 및 단말 장치를 포함하는 라이센스 관리 시스템에 있어서,
    고유 값을 생성하여 프로그램 실행 파일을 암호화하고, 상기 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하며, 상기 고유 값 및 상기 패키지 ID를 저장하는 라이센스 관리 장치; 및
    상기 라이센스 관리 장치와 통신을 수행하는 단말 장치;를 포함하는 라이센스 관리 시스템.
  5. 제4항에 있어서,
    상기 단말 장치는,
    사용자 ID 및 패키지 ID를 상기 라이센스 관리 장치로 전송하고,
    상기 라이센스 관리 장치는,
    상기 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하며, 라이센스 관리 장치의 개인키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션 키를 생성하고, 상기 세션 키를 이용하여 상기 전자 서명을 암호화하여 상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하며,
    상기 단말 장치는,
    상기 암호화된 전자 서명을 수신하여 복호화하고, 상기 전자 서명에 포함된 상기 암호화된 고유 값을 상기 프로그램 개인 키 연산을 수행하는 파일을 이용하여 복호화하며, 상기 복호화된 고유 값을 이용하여 상기 프로그램 실행 파일을 복호화하여 프로그램을 설치하는 것을 특징으로 하는 라이센스 관리 시스템.
  6. 제4항에 있어서,
    상기 고유 값은,
    각 소프트웨어 패키지마다 별개로 생성되는 것을 특징으로 하는 라이센스 관리 시스템.
  7. 고유 값을 생성하여 프로그램 실행 파일을 암호화하는 단계;
    상기 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하는 소프트웨어 패키지를 생성하는 단계;
    상기 고유 값 및 상기 패키지 ID를 저장하는 단계; 및
    단말 장치와 통신을 수행하는 단계;를 포함하는 라이센스 관리 방법.
  8. 제7항에 있어서,
    상기 통신을 수행하는 단계는,
    사용자로부터 사용자 ID를 입력받으면 상기 사용자의 단말 장치로부터 패키지 ID를 수신하고,
    상기 라이센스 관리 방법은,
    상기 수신된 패키지 ID와 일치하는 상기 저장된 패키지 ID를 검색하여 대응되는 상기 고유 값을 확인하고, 프로그램 공개 키를 이용하여 상기 고유 값을 암호화하는 단계;
    라이센스 관리 장치의 개인 키를 이용하여 상기 암호화된 고유 값에 대한 전자 서명 및 세션 키를 생성하고, 상기 세션 키를 이용하여 상기 전자 서명을 암호화하는 단계; 및
    상기 사용자의 단말 장치로 상기 암호화된 전자 서명을 전송하는 단계;를 더 포함하는 라이센스 관리 방법.
  9. 제7항에 있어서,
    상기 고유 값은,
    각 소프트웨어 패키지마다 별개로 생성되는 것을 특징으로 하는 라이센스 관리 방법.
  10. 고유 값을 이용하여 암호화된 프로그램 실행 파일, 프로그램 개인 키 연산을 수행하는 파일 및 패키지 ID를 포함하고, 라이센스 관리 장치로부터 암호화된 전자 서명을 수신하여 복호화하고, 상기 전자 서명에 포함된 상기 암호화된 고유 값을 상기 프로그램 개인 키 연산을 수행하는 파일을 이용하여 복호화하며, 상기 복호화된 고유 값을 이용하여 상기 프로그램 실행 파일을 복호화하여 프로그램을 설치하는 소프트웨어 패키지가 저장된 저장매체.
  11. 제10항에 있어서,
    상기 고유 값은,
    각 소프트웨어 패키지마다 별개로 생성된 것을 특징으로 하는 소프트웨어 패키지가 저장된 저장매체.
KR1020130144314A 2013-11-26 2013-11-26 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체 KR101545940B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130144314A KR101545940B1 (ko) 2013-11-26 2013-11-26 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130144314A KR101545940B1 (ko) 2013-11-26 2013-11-26 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체

Publications (2)

Publication Number Publication Date
KR20150060182A true KR20150060182A (ko) 2015-06-03
KR101545940B1 KR101545940B1 (ko) 2015-08-20

Family

ID=53504853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130144314A KR101545940B1 (ko) 2013-11-26 2013-11-26 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체

Country Status (1)

Country Link
KR (1) KR101545940B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018062761A1 (ko) * 2016-09-27 2018-04-05 시큐리티플랫폼 주식회사 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
KR20190078273A (ko) * 2017-12-26 2019-07-04 전자부품연구원 소프트웨어 라이센스 관리 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3926233B2 (ja) 2002-07-24 2007-06-06 日本電気株式会社 ライセンス管理システムおよびライセンス管理方法
JP2009032165A (ja) 2007-07-30 2009-02-12 Fujitsu Telecom Networks Ltd ソフトウェアのライセンス管理システム、プログラム及び装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018062761A1 (ko) * 2016-09-27 2018-04-05 시큐리티플랫폼 주식회사 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
CN109937419A (zh) * 2016-09-27 2019-06-25 微安科技有限公司 安全功能强化的设备的初始化方法及设备的固件更新方法
CN109937419B (zh) * 2016-09-27 2023-08-11 微安科技有限公司 安全功能强化的设备的初始化方法及设备的固件更新方法
KR20190078273A (ko) * 2017-12-26 2019-07-04 전자부품연구원 소프트웨어 라이센스 관리 방법

Also Published As

Publication number Publication date
KR101545940B1 (ko) 2015-08-20

Similar Documents

Publication Publication Date Title
KR101010040B1 (ko) 파일의 암호화·복호화 방법, 장치, 프로그램 및 이프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US8660964B2 (en) Secure device licensing
JP5564453B2 (ja) 情報処理システム、及び情報処理方法
EP2264639B1 (en) Securing executable code integrity using auto-derivative key
US8175269B2 (en) System and method for enterprise security including symmetric key protection
CN101872404B (zh) 一种保护Java软件程序的方法
EP3025235B1 (en) Anti-piracy protection for software
US7587045B2 (en) System and method for securing document transmittal
CN102087605A (zh) 一种基于android平台应用安装控制方法及系统
WO2016019790A1 (zh) 一种安装包的校验方法、客户端、服务器及系统
US8638932B2 (en) Security method and system and computer-readable medium storing computer program for executing the security method
US20130124867A1 (en) System and method for secure software license distribution
EP1785901B1 (en) Secure License Key Method and System
JP6796861B2 (ja) アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
KR101545940B1 (ko) 라이센스 관리 장치, 라이센스 관리 시스템, 라이센스 관리 방법 및 저장매체
CN113545021B (zh) 预先授权设备的注册
JP2008234220A (ja) 情報処理装置、ソフトウェア起動方法及び画像処理装置
JP2009199147A (ja) 通信制御方法および通信制御プログラム
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN108933766B (zh) 一种提高设备id安全性的方法和客户端
CN113316915B (zh) 解锁数据存储设备
KR101415786B1 (ko) 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
KR102259674B1 (ko) 블록체인을 활용한 운영프로그램 인증 방법
EP1805570B1 (en) Methods for improved authenticity and integrity verification of software and devices capable for carrying out the methods
de Winter et al. Gnu Privacy Guard (GnuPG) Mini Howto

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190902

Year of fee payment: 5