KR20080058173A - 보안 소프트웨어를 인스톨하는 방법 및 디바이스 - Google Patents

보안 소프트웨어를 인스톨하는 방법 및 디바이스 Download PDF

Info

Publication number
KR20080058173A
KR20080058173A KR1020070120793A KR20070120793A KR20080058173A KR 20080058173 A KR20080058173 A KR 20080058173A KR 1020070120793 A KR1020070120793 A KR 1020070120793A KR 20070120793 A KR20070120793 A KR 20070120793A KR 20080058173 A KR20080058173 A KR 20080058173A
Authority
KR
South Korea
Prior art keywords
software
installation
certificate
private key
key pair
Prior art date
Application number
KR1020070120793A
Other languages
English (en)
Other versions
KR101537027B1 (ko
Inventor
이브 마에트
에릭 디엘
알렝 듀랑
미셀 모르방
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20080058173A publication Critical patent/KR20080058173A/ko
Application granted granted Critical
Publication of KR101537027B1 publication Critical patent/KR101537027B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Abstract

본 발명은 소프트웨어 애플리케이션의 안전한 인스톨 방법에 관한 것이다. 사용자는 소프트웨어 제공자로부터 다수의 라이센스에 관한 부분적으로 암호화된 소프트웨어(130)와 인스톨 토큰(120)을 수신하고(200), 소프트웨어(130)와 인스톨 토큰(120)을 컴퓨터(110)에 접속시키며, 인스톨 애플리케이션을 개시한다. 보안 인증된 채널이 인스톨 애플리케이션과 인스톨 토큰(120) 사이에 확립하고, 컴퓨터(110)의 고유한 식별자가 인스톨 토큰(120)으로 보내진다. 인스톨 토큰(120)은 남아있는 라이센스가 존재함을 입증하고, 남아있는 라이센스를 감소시키며, 인스톨을 인가하고, 복호화 키와 증명서/키 쌍을 인스톨 애플리케이션에 보내서 소프트웨어를 복호화하고 인스톨함으로써, 바람직하게는 인스톨을 컴퓨터의 식별자에 링크시킨다. 일 변형예는 일단 인스톨 토큰이 소프트웨어 제공자에게 인스톨 횟수를 보고하고 필수적인 라이센스에 대해 지불하였다면, 시간 제한되지 않은 프로그램으로 변형되는 시간 제한된 프로그램의 무제한의 인스톨을 (사실상) 허용한다. 인스톨 토큰도 제공된다.

Description

보안 소프트웨어를 인스톨하는 방법 및 디바이스{METHODS AND A DEVICE FOR SECURE SOFTWARE INSTALLATION}
본 발명은 일반적으로 소프트웨어 인스톨에 관한 것으로, 특히 보안 라이센스 카운트(count)를 지닌 소프트웨어 인스톨에 관한 것이다.
이 섹션은 독자에게 아래에서 설명 및/또는 청구되는 본 발명의 다양한 양상에 관련될 수 있는 관련 분야의 다양한 양상을 소개하고자 하는 것이다. 이 논의는 본 발명의 다양한 양상의 더 나은 이해를 용이하게 하기 위해 배경 정보를 독자에게 제공하는데 도움이 될 것으로 믿는다. 따라서, 이들 서술문은 종래 기술의 시인이 아닌 위와 같은 관점에서 읽혀져야 한다는 점이 이해되어야 한다.
고객이 다수의 라이센스를 사는 소프트웨어 제품을 판매하는 소프트웨어 제조업자는, 자연스럽게 고객이 라이센스 비용을 지불한 것보다 많은 다수의 컴퓨터(즉 더 일반적으로는 플랫폼)에 소프트웨어 제품을 인스톨하지 않는다는 것을 보장할 것을 원한다. 또한 제조업자와 고객은 소프트웨어 제품을 인스톨하는 사용하기 간단한 방법을 가지고자 하는 욕구를 공유한다.
US 2003/0023966 A1은 고객이 제한된 횟수만큼 소프트웨어를 인스톨하는 것 을 허용하는 시스템을 가르치고 있다. 인스톨을 제한하는 카운트(install limited count)와 인스톨 카운트는 제거 가능한 기록 매체의 보호된 영역에 저장된다. 소프트웨어가 인스톨될 때마다, 인스톨 카운트가 인스톨을 제한하는 카운트를 초과하지 않는다는 것을 보장하는 비교가 이루어진다.
US 2005/0039006 A1은 소프트웨어의 인스톨 횟수를 제한하기 위해 인가 매체(플로피 디스크)가 사용되는 시스템을 가르치고 있다. 플로피 디스크는 소프트웨어가 인스톨될 수 있는 디바이스의 일련 번호의 목록을 포함한다. 대안적으로, 이러한 플로피 디스크는 수행된 인스톨의 횟수를 추적하고, 미리 결정된 횟수의 인스톨이 수행되었다면 소프트웨어 인스톨을 거부한다.
US 2006/007389 A1은 라이센스 카운트가 전자 키에 저장되는 시스템을 가르치고 있다. 일단 다운로드 기계의 메인 프로세서가 라이센스를 전달할 키에 접근하게 되면, 라이센스 카운트가 감소된다. 사용자는 키 상의 라이센스 카운트를 갱신하기 위해, 즉 추가 라이센스 구매를 위해 원격 서버에 접근할 수 있다.
US 2003/0041243 A1은 물리적인 키가 소프트웨어 인스톨을 제어하기 위해 사용되는 시스템을 가르치고 있다. 이 키는 수행된 인스톨의 횟수와 인스톨의 최대 횟수에 대한 정보를 포함한다. 또한, 수행된 인스톨의 횟수는 물리적인 키가 컴퓨터에 연결되면서 소프트웨어가 성공적으로 언인스톨(uninstall)되는 경우 감소한다.
US 6,226,747 B1은 플로피 디스크가 소프트웨어의 인스톨을 제어하기 위해 사용되는 시스템을 가르치고 있다. 이 플로피 디스크는 제한된 횟수의 인스톨을 허 용하고, 이용 가능한 라이센스의 횟수를 증가시키기 위해 소프트웨어를 언인스톨하는 것과 기계의 갑작스런 기능 정지(crash) 후에 다시 인스톨하는 것을 허용하기 위해, 다운로드 기계의 핑거 프린팅(fingerprinting)을 사용한다.
US 2005/0005137 A1은 라이센스 키가 플로피 디스크에 저장되는 시스템을 가르치고 있다. 소프트웨어의 인스톨은, 라이센스 키가 그 라이센스에 대응하는 소프트웨어가 한 번만 인스톨되는 것을 보장하는 원격 서버에 전달될 때까지의 단지 일시적일 뿐이다. 이것이 입증되면, 원격 서버는 인스톨을 영구적인 것으로 만들도록 정보를 보낸다.
또 다른 해결책은 각 소프트웨어 라이센스와 연관된 동글(dongle)을 사용하는 것이다. 그 소프트웨어가 어떤 일정한 기계에서 실행되도록 하기 위해서는, 먼저 동글을 그 기계에 연결하는 것이 필수적이다.
본 발명은 사용자가 소프트웨어와 연관된 라이센스를 존중하면서 소프트웨어를 인스톨할 수 있게 하는, 종래 기술과 연관된 문제점 중 적어도 일부를 개선하려고 시도한다.
제 1 양상에서, 본 발명은 제 1 디바이스에 소프트웨어를 인스톨하는 방법에 관한 것이다. 인스톨 애플리케이션을 실행하는 제 1 디바이스는, 제 2 디바이스와, 적어도 부분적으로 암호화된 소프트웨어를 저장하는 지원부에 기능적으로 연결된 다. 인스톨 애플리케이션과 제 2 디바이스 사이에 보안 연결이 확립된다. 암호화된 소프트웨어와 증명서/사설 키 쌍에 관한 복호화 키가 제 2 디바이스로부터 소프트웨어를 복호화하는 인스톨 애플리케이션에 보내진다. 이후 인스톨 애플리케이션은 소프트웨어가 실행될 때 제 1 디바이스에 그 증명서가 저장되는 것을 입증할 수 있도록, 소프트웨어를 인스톨하여 그 소프트웨어를 증명서에 링크시킨다.
바람직한 일 실시예에서, 인스톨 애플리케이션은 제 1 디바이스의 ID(identity)를 제 2 디바이스에 제공하고, 인스톨을 그 ID에 링크시켜, 소프트웨어가 실행될 때 그것이 그 ID에 대응하는 제 1 디바이스에서 실행되는 것을 입증할 수 있다.
또 다른 바람직한 실시예에서는, 증명서/사설 키 쌍이 유일한 것이다.
제 2 디바이스가 다수의 증명서/사설 키 쌍을 저장하고 각각의 수신된 식별자를 이전의 연관되지 않은 증명서/키 쌍에 연관시키는 것이 바람직하다. 제 2 디바이스는 자신이 적어도 하나의 연관되지 않은 증명서/사설 키 쌍을 저장하고, 그러한 쌍의 어떤 것도 이용 가능하지 않다면 인스톨을 중단한다는 것을 유리하게 입증한다.
대안적인 일 실시예에서는, 인스톨된 소프트웨어가 시간 제한을 받는다. 제 2 디바이스는 서버에 연결하여 이전 연결 이후에 수행된 소프트웨어 인스톨의 횟수를 보고한다. 소프트웨어 인스톨의 유효성이 인정되면, 시간 제한은 연장되거나 시간 제한된 인스톨된 소프트웨어가 영구적으로 인스톨된 소프트웨어로 변환된다. 시간 제한의 연장이나 시간 제한된 인스톨된 소프트웨어의 변환은, 서버에 의해 나온 변환 코드를 제 1 디바이스가 수신하게 되면 유리하게 수행된다.
또 다른 바람직한 실시예에서는, 보안 연결이 제 2 디바이스와 인스톨 애플리케이션의 증명서/사설 키 쌍을 사용하여 확립된 보안 인증 채널(Secure Authenticated Channel)이다. 보안 인증된 채널의 확립을 위해 사용된 증명서/사설 키 쌍은, 제 2 디바이스로부터 인스톨 애플리케이션으로 전달된 증명서/사설 키 쌍과는 상이한 것이다.
제 2 양상에서, 본 발명은 본 발명에 따른 소프트웨어를 인스톨하는 방법에 관여하도록 적응된 인스톨 토큰(token)에 관한 것이다. 이 인스톨 토큰은 인스톨 애플리케이션광의 사이에서 보안 인증 채널을 확립하도록 적응된 프로세서, 적어도 하나의 증명서/사설 키 쌍을 저장하도록 적응된 보안 메모리, 및 암호화된 소프트웨어에 관한 복호화 키와 증명서/사설 키 쌍을 인스톨 애플리케이션에 보내도록 적응된 인터페이스를 포함한다.
바람직한 일 실시예에서, 보안 메모리는 또한 소프트웨어가 인스톨된 제 1 디바이스의 적어도 하나의 식별자를 저장하도록 적응된다.
이제 본 발명과 그것의 바람직한 실시예의 다양한 특징과 장점을, 본 발명의 범주를 제한하지 않고, 예시하기 위한 첨부 도면을 참조하여 설명한다.
전술한 바와 같이, 본 발명은 소프트웨어 인스톨, 특히 보안 라이센스 카운트를 지닌 소프트웨어 인스톨에 이용 가능하다.
도 1은 본 발명의 바람직한 실시예에 따른 소프트웨어 인스톨을 위한 환경(100)을 도시한다. 이 환경(100)은 소프트웨어가 인스톨될 컴퓨터(110), 인스톨 토큰(120), 소프트웨어의 암호화된 복사본(130), 및 원격 서버(140)를 포함한다.
컴퓨터(110)는 인스톨 토큰(120)과 상호 작용하도록 적응된 인터페이스(112), 소프트웨어(130)를 다운로드하도록 적응된 인터페이스(114), 및 원격 서버와 상호작용하도록 적응된 인터페이스(116)를 포함한다.
인스톨 토큰(120)은, 예컨대 보안 토큰이나 유니버설 시리얼 버스(USB: Universal Serial Bus) 키일 수 있고 프로세서(122), 보안 메모리(124) 및 또 다른 실시예에서는 실시간 클록(126)을 포함한다. 인스톨 토큰은 이후 더 설명되는 것처럼, 하나 이상의 보안 연결을 확립하는데 사용하기 위한 증명서/사설 키 쌍을 포함한다. 인스톨 토큰(120)은 소프트웨어(130)와 마찬가지로, 함께 소프트웨어 제공자에 의해 제공된다.
소프트웨어(130)는 하나 이상의 CD-ROM이나 임의의 다른 적합한 종류의 저장 매체에 있을 수 있다. 소프트웨어(130)는 또한 로컬 네트워크나 인터넷과 같은 네트워크를 통해 접근 가능한 원격 저장 매체에 저장될 수 있다.
도 2는 본 발명에 따른 소프트웨어 인스톨의 바람직한 방법을 도시한다. 단계(200)에서는 사용자가 인스톨 토큰과 소프트웨어 복사본을 소프트웨어 제조업자로부터 직접적으로 또는 간접적으로 수신한다. 예시적인 실시예에서는, 그러한 소프트웨어가 CD-ROM에서 암호화되어 전달되고, 인스톨 토큰이 소프트웨어의 10번의 인스톨을 허용하도록 초기화된 USB 키라고 가정된다.
이후 사용자는 인스톨 토큰을 컴퓨터에 연결하여 CD-ROM을 적절한 판독기(reader)에 넣고(210), 그 후 사용자가 소프트웨어에 관한 인스톨 애플리케이션을 개시한다(220). 인스톨 애플리케이션은 암호화되지 않고, 따라서 적절한 키 또는 라이센스없이도 개시될 수 있음이 주목되어야 한다.
인스톨 애플리케이션은 복수의 인스톨 애플리케이션에 관한 공통이거나 유일한 것일 수 있고, 특정 인스톨 토큰에 전용으로 사용하는 것일 수 있는 증명서/사설 키 쌍을 포함한다. 이후 인스톨 애플리케이션은 증명서를 사용하여, 관련 분야에 공지된 임의의 적당한 방법을 사용하여 인스톨 토큰을 가지고 보안 인증 채널(SAC)을 확립한다(230). 컴퓨터에 관한 식별자가 SAC를 통해 인스톨 토큰에 보내진다(240). 식별자는 바람직하게는 컴퓨터에 유일한(또는 적어도 유일한 것에 준하는) 것이고, 예컨대 그 컴퓨터의 일련 번호, 마더보드(motherboard)의 일련 번호, 네트워크 카드의 일련 번호, MAC 어드레스, 하드 디스크 일련 번호, 프로세서의 타입, 또는 이들의 결합체일 수 있다. 식별자(또한 컴퓨터의 핑거 프린트라고 알려진)는 관련 분야의 공지된 임의의 적당한 방법에 따라 계산되고, 바람직하게는 하드웨어 땜납(soldering)을 위해 사용되며, 이는 이후 더 설명된다.
인스톨 토큰은 그것의 보안 메모리에 식별자의 목록을 보관하고, 그러한 보안 메모리에서는 나머지 라이센스의 개수, 즉 얼마나 더 많은 횟수만큼 소프트웨어가 인스톨될 수 있는지도 보관된다. 보안 메모리는 또한 바람직하게는 별개의 증명서/사설 키 쌍의 개수를 저장하는데, 그러한 쌍 중 한 쌍은 보안 연결을 확립하는데 있어 자체적으로 USB 키에 의해 사용된 것이고, 다른 한 쌍은 각각의 나머지 라 이센스에 관한 것이며, 가능하게는 이미 인스톨된 라이센스에 대응하는 쌍도 있다.
단계(250)에서 인스톨이 인가되면, 인스톨 토큰이 소프트웨어의 복호화에 필수적인 적어도 하나의 복호화 키를 SAC를 통해 보내고(260), 그러한 복호화 키는 인스톨 토큰의 보안 메모리에 저장된다. 인스톨 토큰은 또한 SAC를 통해 라이센스를 가지고 사용하기 위한 증명서/사설 키 쌍을 보내고, 그러한 증명서/사설 키 쌍은 SAC의 확립을 위해 사용된 증명서/사설 키 쌍과는 상이하다. 이후 1회 더 적은 인스톨이 수행될 수 있도록 인스톨 토큰이 나머지 라이센스의 개수를 수정한다. 이 예에서, 인스톨 토큰은 10개의 라이센스로 개시되었고, 이는 제 1 인스톨 이후로 9번의 횟수만이 남아있음을 의미한다.
복호화 키를 수신하면, 인스톨 애플리케이션은 소프트웨어를 복호화하고 인스톨하여(270) 인스톨된 소프트웨어를 증명서에 링크한다. 증명서가 오직 하나의 소프트웨어 인스톨에 주어지므로, 이 소프트웨어는 개인 전용화된다. 이러한 소프트웨어의 인스톨은 또한 그 컴퓨터에 관한 식별자를 사용하는 컴퓨터에 링크된다. 소프트웨어가 실행될 때마다 그 증명서를 입증하는 것이 바람직하고, 또한 그 식별자에 대응하는 컴퓨터에서 실행하는 것이 바람직하다. 만약 그렇다면 소프트웨어가 계속해서 실행되고, 그렇지 않다면 소프트웨어는 실행을 중지한다. 소프트웨어를 컴퓨터에 링크하는 것은 소프트웨어의 비트 단위(bit-to-bit) 복사를 불가능하게 한다.
일단 인스톨이 준비되면, 사용자는 인스톨 토큰과 소프트웨어를 또 다른 컴퓨터로 가져가 그곳에서도 마찬가지로 인스톨한다.
사용자가 라이센스가 떨어졌을 때에는, 추가 라이센스를 구매하기 위해, 예컨대 소프트웨어 공급자나 인가된 소매상에게 인스톨 토큰을 반납할 수 있다. 대안적으로, 사용자가 인스톨 토큰 상의 라이센스의 개수를 원격으로 수정하는 원격 서버에 인터넷을 경유하여 지불이 실행되는 특정 애플리케이션을 실행하는 것도 가능하다.
일 변형예에서, 컴퓨터의 식별자는 단계(240)에서 인스톨 토큰에 보내지지 않고, 그러한 경우 어떠한 식별자의 목록도 인스톨 토큰에 의해 저장되지 않는다. 하지만, 식별자의 사용은 선호되는데, 이는 그것이 추가 라이센스를 사용할 필요없이, 예컨대 갑자기 기능을 멈춘 컴퓨터에 소프트웨어를 다시 인스톨하는 것을 가능하게 하기 때문이다.
소프트웨어가 사용자로 하여금 컴퓨터에 그 소프트웨어를 언인스톨하는 것을 허용하는 언인스톨 애플리케이션을 지닌 소프트웨어가 전달되는 것이 유리한데, 그러한 경우 인스톨 토큰이 남은 라이센스의 개수를 증가시키고, 식별자의 목록이 사용되는 경우, 그러한 목록으로부터 식별자를 제거한다. 이러한 변형예에서, 인스톨 토큰이 인스톨된 라이센스에 관한 증명서/사설 키 쌍을 저장하여 그러한 쌍이 쉽게 다시 사용될 수 있게 하는 것이 유리할 수 있다.
또 다른 변형예에서는, 원격 컴퓨터나 서버(140)가 앞서 설명한 실시예에서의 인스톨 토큰(120)의 기능을 수행할 수 있다. 인스톨 애플리케이션은 원격 컴퓨터나 서버(140)를 네트워크를 통해 접촉하여, SAC를 확립하고, 이후 본 발명의 방법이 앞에서 설명한 바대로 진행된다. 이 변형예에서 사용하기 위한 서버는, 비록 그것이 도 3을 참조하여 설명한 방법에서 사용하기 위한 서버와 바람직하게는 동일할지라도, 반드시 동일할 필요는 없다는 것이 주목되어야 한다.
도 3은 본 발명에 따른 소프트웨어 인스톨을 위한 방법의 또 다른 바람직한 실시예를 도시한다. 이 실시예는 앞서 설명한 바와 같은 실시간 클록을 지닌 인스톨 토큰을 유리하게 사용한다.
단계(300)에서는, 많은 컴퓨터에 사용자가 소프트웨어를 X번 인스톨한다. 이 소프트웨어는 바람직하게는 도 2를 참조하여 설명된 방법에 따라 인스톨된다. 소프트웨어가 매번 인스톨될 때마다 증명서/사설 키 상을 인스톨하는 것이 특히 바람직하기 때문에, 라이센스의 개수를 제한하는 것이 비록 바람직할지라도, 반드시 그럴 필요는 없다는 것이 주목되어야 한다(비록, 본 발명이 소프트웨어 인스톨이 링크되는 증명서나 1회보다 많은 인스톨에 공통인 증명서의 사용 없이 사용될 수도 있을지라도). 또한 100개의 라이센스의 가능성이 보통 30개를 넘지 않는 라이센스를 원하는 사용자에게 제공되는 것과 같이, 사용자에게 무제한으로 나타나는 예상된 횟수의 사용된 라이센스에 관해 가능한 라이센스의 개수를 상당히 많이 만드는 것도 가능하다.
이후 사용자는 라이센스의 개수를 소프트웨어 제공자에게 보고하고 이들 라이센스에 대해 지불한다(310). 예컨대, 어떤 정해진 미리 설정된 개수의 라이센스가 인스톨되는 때, 소프트웨어가 잠시 동안, 또는 인스톨 토큰의 가장 최근의 보고 또는 수신의 한 달 내와 같은 특정 시간에서 다시 인스톨되지 않는다고 사용자가 생각하는 때와 같은 사용자가 보고 및 지불해야 하는 때에 대한 많은 가능성이 존 재한다. 후자의 옵션이 비록 그것이 나머지 옵션 중 하나 또는 모두와 결합될지라도 바람직한 것이다. 사용자는 인터넷에 인스톨 토큰을 연결하고, 또한 사용자가 지불할 수 있게 하는 특정 애플리케이션을 실행함으로써, 바람직하게 보고한다.
일 변형예에서는, 이후 본 발명의 방법이 단계(300)로 되돌아가서, 사용자가 소프트웨어를 다시 인스톨하지만, 바람직한 일 변형예에서는, 컴퓨터에 인스톨되는 소프트웨어가 시간 제한을 받는다. 인스톨된 소프트웨어가 특정 시간 - 바람직하게는 보고 간격에 링크되는 - 내에 원격 서버로부터 코드를 수신하지 않는다면, 소프트웨어는 작업이 중지된다. 하지만, 일단 사용자가 단계(310)에서 라이센스를 보고하고 정당함을 인정하였다면(예컨대, 그것들에 대해 지불함으로써), 원격 서버가 각 소프트웨어 인스톨이 영구적으로 되는(즉, 시간에 있어 제한되지 않는) 또는 연장될 시간 한계에 관한 필수적인 코드를 제공한다. 다른 인스톨에 관해서는 코드가 재사용되지 않는다는 것을 확인하기 위해, 특정 소프트웨어 인스톨에 코드가 링크되는 것이 바람직하다. 이는 인스톨 토큰이 컴퓨터의 식별자에 기초한 고유한 코드를 생성하게 하고, 인스톨 프로그램이 인스톨을 수정하게 함으로써 달성될 수 있다. 코드는, 주소가 인스톨 애플리케이션에 의해, 또는 인스톨 토큰이 적어도 직접적으로 소프트웨어 인스톨을 지닌 플랫폼이 위치하는 네트워크에 연결되어야 하는 경우인 인스톨 토큰을 경유하여, 인스톨 토큰에 제공된다는 가정하에 서버에 의해 직접적으로 소프트웨어 인스톨에 제공될 수 있다.
그러므로 소프트웨어 제공자의 권리를 존중하는 유연한 소프트웨어 인스톨을 제공함으로써, 종래 기술에 비해 본 발명이 개선되었음을 알 수 있다.
위의 상세한 설명, 예 및 도면은 본 발명의 구성의 제작 및 사용의 완전한 설명을 제공한다. 본 발명의 많은 실시예가 본 발명의 취지와 범주로부터 벗어나지 않으면서 만들어질 수 있으므로, 본 발명은 이후 본 명세서에 첨부된 청구항에 귀속된다.
설명부에서 개시된 각 특징과 (적절한 경우) 청구항 및 도면은 독립적으로 또는 임의의 적절한 결합으로 제공될 수 있다. 특징은 적절하게 하드웨어, 소프트웨어 또는 이들의 결합으로 구현될 수 있다.
본 명세서에서 "일 실시예" 또는 "실시예"라고 언급된 것은, 그러한 실시예와 관련하여 설명된 특별한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 구현예에 포함될 수 있음을 의미한다. 명세서의 다양한 곳에 있는 "일 실시예에서"라는 어구의 임의의 출현은 반드시 모두 동일한 실시예를 가리키는 것이 아니고, 독립적인 또는 대안적인 실시예가 반드시 다른 실시예에 관해 서로 양립할 수 없는 것은 아니다.
청구항에 나타나는 참조 번호는 예시의 목적으로 사용된 것이고 그 청구항의 범주에 대해 어떠한 제한하는 영향을 미치지는 않는다.
도 1은 본 발명의 바람직한 일 실시예에 따른 소프트웨어의 인스톨을 위한 환경을 도시하는 도면.
도 2는 본 발명에 따른 소프트웨어 인스톨의 바람직한 방법을 도시하는 도면.
도 3은 본 발명에 따른 소프트웨어 인스톨을 위한 방법의 대안적인 바람직한 실시예를 도시하는 도면.
※ 도면의 주요 부분에 대한 부호의 설명 ※
110: 컴퓨터 120: 인스톨 토큰
112: 인스톨 토큰(120)과 상호 작용하도록 적응된 인터페이스
114: 소프트웨어를 다운로드하도록 적응된 인터페이스
116: 원격 서버와 상호작용하도록 적응된 인터페이스
122: 프로세서 124: 보안 메모리
126: 실시간 클록 130: 소프트웨어의 암호화된 복사본
140: 원격 서버

Claims (10)

  1. 제 1 디바이스(110)에 소프트웨어를 인스톨하는 방법으로서, 상기 제 1 디바이스는 제 2 디바이스(120, 140)와, 적어도 부분적으로 암호화된 소프트웨어를 저장하는 지원부(130)에 기능상 연결되고, 인스톨 애플리케이션을 실행하며, 상기 방법은
    - 상기 인스톨 애플리케이션과 상기 제 2 디바이스 사이의 보안 연결을 확립하는 단계(230),
    - 상기 제 2 디바이스로부터의 암호화된 소프트웨어와 증명서/사설 키(certificate/private key) 쌍에 관한 복호화(decryption) 키를 상기 인스톨 애플리케이션에 보내는 단계(260),
    - 상기 인스톨 애플리케이션에 의해 소프트웨어를 복호화하는 단계(270) 및
    - 상기 소프트웨어를 상기 인스톨 애플리케이션에 의해 인스톨하여 상기 소프트웨어가 실행될 때 증명서가 상기 제 1 디바이스에 저장됨을 입증할 수 있도록, 증명서에 상기 소프트웨어를 링크하는 단계(270)를
    포함하는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  2. 제 1항에 있어서, 상기 인스톨 애플리케이션에서,
    - 상기 제 1 디바이스의 ID(identity)를 상기 제 2 디바이스에 제공하는 단계(240)와,
    - 상기 소프트웨어가, 실행될 때, 상기 ID에 대응하는 제 1 디바이스에서 실행됨을 입증할 수 있도록, 상기 ID에 상기 인스톨을 링크하는 단계(270)를
    더 포함하는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  3. 제 1항 또는 제 2항에 있어서, 상기 증명서/사설 키 쌍은 유일한 것인, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  4. 제 2항 또는 제 3항에 있어서, 상기 제 2 디바이스는 다수의 증명서/사설 키 쌍을 저장하고, 각 수신된 식별자(identifier)를 이전에 연관되지 않은 증명서/키 쌍에 연관시키는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  5. 제 4항에 있어서, 상기 제 2 디바이스가 적어도 하나의 연관되지 않은 증명서/사설 키 쌍을 저장함을 상기 제 2 디바이스에 의해 입증하고, 만약 어떠한 그러한 쌍도 이용 가능하지 않다면 상기 인스톨을 중단하는 단계(250)를 더 포함하는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  6. 제 2항에 있어서, 상기 인스톨된 소프트웨어는 시간 제한적이고, 상기 방법은
    - 상기 제 2 디바이스에 의해 서버를 연결하는 단계(310),
    - 상기 서버로의 이전 연결 이후에 수행된 소프트웨어 인스톨의 횟수를 상기 서버에 상기 제 2 디바이스에 의해 보고하는 단계(310),
    - 상기 소프트웨어 인스톨의 유효성 인정 후, 상기 시간 제한을 연장하고 상기 시간 제한된 인스톨된 소프트웨어를 영구적으로 인스톨된 소프트웨어로 변환하는 단계(320)를
    더 포함하는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  7. 제 6항에 있어서, 상기 시간 제한은 연장되거나 시간 제한된 인스톨된 소프트웨어가 상기 서버에 의해 나온 변환 코드의 상기 제 1 디바이스에 의한 수신시 변환되는, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  8. 제 1항에 있어서, 상기 보안 연결은 상기 제 2 디바이스와 상기 인스톨 애플리케이션의 증명서/사설 키 쌍을 사용하여 확립된 보안 인증 채널(Secure Authenticated Channel)이고, 상기 보안 인증 채널의 확립을 위해 사용된 상기 증명서/사설 키 쌍은 상기 제 2 디바이스로부터 상기 인스톨 애플리케이션으로 전달된 증명서/사설 키 쌍과는 상이한, 제 1 디바이스에 소프트웨어를 인스톨하는 방법.
  9. 제 1항 내지 제 6항 중 어느 한 항에 따른 소프트웨어 인스톨 방법에 관여하도록 적응된 인스톨 토큰(token)(120)으로서,
    - 인스톨 애플리케이션과의 사이에서 보안 인증 채널을 확립하도록 적응된 프로세서(122),
    - 적어도 하나의 증명서/사설 키 쌍을 저장하도록 적응된 보안 메모리(124), 및
    - 암호화된 소프트웨어에 관한 복호화 키와 증명서/사설 키 쌍을 인스톨 애플리케이션에 보내도록 적응된 인터페이스(126)를
    포함하는, 인스톨 토큰.
  10. 제 9항에 있어서, 상기 보안 메모리(124)는 또한 상기 소프트웨어가 인스톨된 제 1 디바이스의 적어도 하나의 식별자를 저장하도록 적응되는, 인스톨 토큰.
KR1020070120793A 2006-12-20 2007-11-26 보안 소프트웨어를 인스톨하는 방법 및 디바이스 KR101537027B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06301277.7 2006-12-20
EP06301277A EP1936531A1 (en) 2006-12-20 2006-12-20 Methods and device for secure software installation

Publications (2)

Publication Number Publication Date
KR20080058173A true KR20080058173A (ko) 2008-06-25
KR101537027B1 KR101537027B1 (ko) 2015-07-15

Family

ID=38006557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070120793A KR101537027B1 (ko) 2006-12-20 2007-11-26 보안 소프트웨어를 인스톨하는 방법 및 디바이스

Country Status (5)

Country Link
US (1) US8219828B2 (ko)
EP (1) EP1936531A1 (ko)
JP (1) JP2008159053A (ko)
KR (1) KR101537027B1 (ko)
CN (1) CN101206704A (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849017B2 (en) * 2006-06-29 2010-12-07 Flexera Software, Inc. Enforced seat-based licensing
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US20090287917A1 (en) * 2008-05-19 2009-11-19 Microsoft Corporation Secure software distribution
US8826005B1 (en) * 2008-08-21 2014-09-02 Adobe Systems Incorporated Security for software in a computing system
US20100056269A1 (en) * 2008-09-03 2010-03-04 Sony Computer Entertainment America Inc. Feature eroding video game demonstration software
JP5239755B2 (ja) * 2008-11-05 2013-07-17 株式会社リコー 情報処理装置、インストール方法、プログラム、記憶媒体
US8677506B2 (en) * 2009-12-03 2014-03-18 Osocad Remote Limited Liability Company System and method for loading application classes
JP5584548B2 (ja) * 2010-07-30 2014-09-03 株式会社日本デジタル研究所 プログラムおよびライセンス管理用の記憶媒体、サーバおよびコンピュータシステム
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
CN102063597A (zh) * 2010-12-29 2011-05-18 东莞市创锐电子技术有限公司 一种利用加密狗对软件进行鉴权的方法
US9881151B2 (en) * 2011-08-31 2018-01-30 Lenovo (Singapore) Pte. Ltd. Providing selective system privileges on an information handling device
CN103176805B (zh) * 2011-12-21 2017-09-19 富泰华工业(深圳)有限公司 可执行程序安装的方法及系统
CN103200175B (zh) * 2013-02-25 2015-08-26 捷德(中国)信息科技有限公司 一种应用在移动设备上安全安装方法及装置
US9124569B2 (en) * 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment
US9548867B2 (en) * 2013-11-26 2017-01-17 Rockwell Automation Technologies, Inc. Method and apparatus for secure distribution of embedded firmware
CN104217140B (zh) * 2014-08-29 2017-03-15 北京奇虎科技有限公司 一种应用程序的加固方法和装置
EP3001341B1 (en) * 2014-09-26 2020-01-15 Nxp B.V. NFC device, software installation method, software uninstallation method, computer program and article of manufacture
JP6514337B2 (ja) * 2014-12-29 2019-05-15 ヴァスコ データ セキュリティ インターナショナル ゲゼルシャフト ミット ベシュレンクテル ハフツング モバイルアプリケーションを安全にするための方法および装置
KR101611104B1 (ko) 2014-12-31 2016-04-08 한양대학교 산학협력단 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법
CN105184119B (zh) * 2015-10-09 2017-10-24 南京工程学院 一种软件的安全保护方法
JP6589835B2 (ja) * 2016-11-24 2019-10-16 京セラドキュメントソリューションズ株式会社 情報処理システムおよび管理サーバー
CN109840399A (zh) * 2019-03-01 2019-06-04 浙江安点科技有限责任公司 基于UsbKey对软件的授权方法
DE102019206302A1 (de) * 2019-05-02 2020-11-05 Continental Automotive Gmbh Verfahren und Vorrichtung zum Übertragen eines Boot-Codes mit verbesserter Datensicherheit

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5980772A (ja) * 1982-10-28 1984-05-10 Toyota Motor Corp マルエ−ジング鋼製フ−プの熱処理方法
US5472692A (en) * 1993-07-02 1995-12-05 New England Deaconess Hospital Corporation Pro-urokinase mutants
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
JP3507594B2 (ja) * 1995-07-31 2004-03-15 株式会社東芝 コンピュータ
US6226747B1 (en) 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6223288B1 (en) * 1998-05-22 2001-04-24 Protexis Inc. System for persistently encrypting critical software file to prevent installation of software program on unauthorized computers
US6898706B1 (en) * 1999-05-20 2005-05-24 Microsoft Corporation License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
NO311197B1 (no) 2000-03-02 2001-10-22 Ramirez Olguin Nelson Eric Sikkerhetssystem mot ulovlig bruk eller kopiering av elektronisk data
JP2002006974A (ja) * 2000-06-22 2002-01-11 Nippon Digital Kenkyusho:Kk プログラムのレンタル及び販売方法と、試供、レンタル又は販売したプログラムの管理方法及び端末にインストールされるプログラムの記録媒体
EP1184771B1 (de) * 2000-08-24 2004-08-04 Wibu-Systems AG Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE10134356A1 (de) * 2001-07-14 2003-01-23 Peter Klein Verfahren zur Verhinderung von missbräuchlicher Verwendung von lizenzierter Software auf Personalcomputern
JP2003044155A (ja) 2001-07-30 2003-02-14 Hitachi-Lg Data Storage Inc ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体
US7110982B2 (en) * 2001-08-27 2006-09-19 Dphi Acquisitions, Inc. Secure access method and system
US20030074323A1 (en) 2001-10-02 2003-04-17 Koninklijke Philips Electronics N.V. Business model for downloadable video games
JP4040424B2 (ja) * 2002-10-16 2008-01-30 Kddi株式会社 ソフトウェアライセンス管理方法、ソフトウェアライセンス管理システム、及びコンピュータプログラム
US20040093419A1 (en) * 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
JP2004272893A (ja) * 2003-02-21 2004-09-30 Matsushita Electric Ind Co Ltd ソフトウェア管理システム、記録媒体及び情報処理装置
US20050005137A1 (en) * 2003-06-16 2005-01-06 Microsoft Corporation System and method for individualizing installation media
US7213268B2 (en) 2003-07-25 2007-05-01 Aviation Communication And Surveillance Systems, Llc Method for controlling customer-implemented data updates
JP4454280B2 (ja) * 2003-10-14 2010-04-21 新光電気工業株式会社 ライセンス認証方法およびライセンス認証システム
US7467404B2 (en) 2004-09-27 2008-12-16 Bally Garning, Inc. System and method for distributing software licenses
JP2006146358A (ja) * 2004-11-16 2006-06-08 Nec Nexsolutions Ltd Usb周辺機器制御システム、及びusb周辺機器制御方法
US7849017B2 (en) * 2006-06-29 2010-12-07 Flexera Software, Inc. Enforced seat-based licensing

Also Published As

Publication number Publication date
US20080159540A1 (en) 2008-07-03
CN101206704A (zh) 2008-06-25
US8219828B2 (en) 2012-07-10
JP2008159053A (ja) 2008-07-10
KR101537027B1 (ko) 2015-07-15
EP1936531A1 (en) 2008-06-25

Similar Documents

Publication Publication Date Title
KR101537027B1 (ko) 보안 소프트웨어를 인스톨하는 방법 및 디바이스
US7055040B2 (en) Method and apparatus for uniquely and securely loading software to an individual computer
EP1443381B1 (en) System and method for secure software activation with volume licenses
JP4906854B2 (ja) 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路
US6799277B2 (en) System and method for monitoring software
JP4278327B2 (ja) コンピュータ・プラットフォームおよびその運用方法
US6857067B2 (en) System and method for preventing unauthorized access to electronic data
US6330670B1 (en) Digital rights management operating system
JP5373997B2 (ja) セキュアトランザクションを促進するために、ドメイン特定セキュリティサンドボックスを使用するためのシステムおよび方法
US20080300887A1 (en) Usage Model of Online/Offline License for Asset Control
US9336369B2 (en) Methods of licensing software programs and protecting them from unauthorized use
US20020116632A1 (en) Tamper-resistant computer system
CN110832479A (zh) 用于软件激活和许可证跟踪的系统和方法
WO2008137464A1 (en) Secure transfer of product-activated software to a new machine using a genuine service
CN101441692A (zh) 实现计算机硬件和软件绑定的方法
US20090177884A1 (en) Digital content security system, portable steering device and method of securing digital contents
TW200820076A (en) Portable mass storage with virtual machine activation
KR100391168B1 (ko) 소프트웨어 불법복제 방지 시스템 및 방법
EP1471405A1 (en) Method and device for protecting information against unauthorised use
US7577849B2 (en) Keyed-build system for controlling the distribution of software
US20090271875A1 (en) Upgrade Module, Application Program, Server, and Upgrade Module Distribution System
CN111611551B (zh) 一种基于国密算法的动态链接库保护方法及其系统
WO2006101765A2 (en) Method for preventing unauthorized installation of a software product
EP1939784A1 (en) Methods and a device for secure software installation
JP2004086588A (ja) ソフトウェア不正使用防止システム

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
LAPS Lapse due to unpaid annual fee