KR20030015192A - 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법 - Google Patents

다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법 Download PDF

Info

Publication number
KR20030015192A
KR20030015192A KR1020027007852A KR20027007852A KR20030015192A KR 20030015192 A KR20030015192 A KR 20030015192A KR 1020027007852 A KR1020027007852 A KR 1020027007852A KR 20027007852 A KR20027007852 A KR 20027007852A KR 20030015192 A KR20030015192 A KR 20030015192A
Authority
KR
South Korea
Prior art keywords
software
computer device
protection
user
identity
Prior art date
Application number
KR1020027007852A
Other languages
English (en)
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 KR1020027007852A priority Critical patent/KR20030015192A/ko
Publication of KR20030015192A publication Critical patent/KR20030015192A/ko

Links

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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 정당한 사용자의 유료 계정에 대한 안전 동작이 포함되는 서비스 또는 소프트웨어 제품 또는 그와 같은 것들을 얻기 위해 중앙 컴퓨터 네트워크에 접속하는 정당한 사용자의 신원 정보를 제공하는 데에 사용되는 EI 하부 프로그램; 그리고 컴퓨터 내의 EI 하부 프로그램의 존재를 상기 컴퓨터 상에서 얻어지는 소프트웨어 제품의 사용을 허가하기 위한 예비 조건으로서 이용하는 AS 하부 프로그램으로 이루어지는 중앙 프로그램을 제공된다. 상기 중앙 프로그램은 AS 하부 프로그램이 개별적으로 복제되는 것을 막을 수 있도록 개개의 하부 프로그램을 제어하는 데에 이용된다.

Description

다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록 제한하는 소프트웨어 및 그 방법{Software for Restricting Other Software to be used by the Rightful User Only and Method therefor}
발명의 분야
본 발명은 상업용 소프트웨어의 보호에 관한 것이다. 보다 구체적으로는 본 발명은 상업용 소프트웨어에 대한 불법적 사용이나 복제로부터의 보호에 관한 것이다.
발명의 배경
종래에 있어서, 전화 시스템과 같은 통신망을 통하여 배포된 프로그램, 멀티미디어 소프트웨어와 같은 상업용 소프트웨어 제품을 보호하기 위한 소프트웨어 보호 방법들은 컴퓨터 상에서 운용되는 소프트웨어 프로그램에 의해서 인증 받기 위해서는 사용자의 컴퓨터에 암호 해독 열쇠와 컴퓨터 내부에 장착된 시스템으로 이루어지는 하드웨어가 설치되어 있어야 했다. 퍼스널 컴퓨터에 있어서 소프트웨어의 복제가 일반적으로 용이하기 때문에, 소프트웨어보다는 하드웨어가 이용되고 있다. 그러나, 이러한 것은 아주 성가실 뿐만 아니라, 사용자와 판매자 모두에게 짐이 되고 있다.
따라서, 본 발명의 목적은 상기에 언급된 하드웨어를 대체할 소프트웨어를 제공하기 위함이고, 이에 소프트웨어의 정당한 사용자는 심리적 장벽에 의해 다른 사람에게 상기 소프트웨어를 복제할 마음을 먹지 못하게 된다.
본 발명의 또 다른 목적은 정당한 사용자가 자신의 소프트웨어를 타인에게 복제하는 것을 막는 방법을 제공하기 위함이다.
발명의 요약
본 발명에 따른 첫 번째 구체예에서는 (1)암호화된 신원(Encrypted Identity)을 제공하는 하부 프로그램(이하 'EI 하부 프로그램'이라고 함), (2)소프트웨어 제품의 사용을 인증하는 하부 프로그램(이하 'AS 하부 프로그램'이라고 함), (3)사용자 컴퓨터를 인증하는 하부 프로그램(이하 'AC 하부 프로그램'이라고 함)으로 이루어진 중앙 프로그램이 제시되어 있다.
중앙 프로그램은 상기 개개의 하부 프로그램의 사용을 관리함으로써 AS 하부 프로그램이 곧바로 접속되는 것을 막고, 이에 따라 개별적으로 복제되는 것을 방지하는 데에 사용된다. EI 하부 프로그램은 정당한 소유자의 유료 사용자 계정(user account)에 대한 안전한 동작이 포함되어 있는 서비스 또는 소프트웨어 제품 또는 그와 같은 것들을 얻기 위해 중앙 컴퓨터 네트워크에 접속할 수 있는 정당한 소유자의 신원 정보(암호화된 신원)를 제공하는 데에 사용된다. AC 하부 프로그램은 소프트웨어의 방법을 통하여 컴퓨터의 하드웨어와 소프트웨어의 특성을 결정하고, 그 결과와 요구되는 결과를 상호 비교함으로써 상기 AC 하부 프로그램이 실행되고 있는 컴퓨터를 미리 정해진 특정 컴퓨터로 인증하는 데에 사용된다. AS 하부 프로그램은 AC 하부 프로그램의 인증 결과 및 인증되지 아니한 사용으로부터 보호되지 아니하고, 따라서 어떤 사용자에 의해서도 이용될 수 있는 EI 하부 프로그램의 존재를 당해 컴퓨터에서 사용되기 위하여 얻어진 상기 소프트웨어 제품을 인증하기 위한 예비 조건으로 이용하는 데에 사용된다.
중앙 프로그램 내에서 소프트웨어 제품이 정당한 사용자에게서 타인에게로 불법적으로 복제되는 것을 방지하는 것에 관해서는, AS 하부 프로그램이 보호를 요하는 유일한 하부 프로그램이며, 본 발명에 따라, AS 하부 프로그램이 정당한 사용자에 의해서 타인에게 불법적으로 복제되는 것이 방지된다는 것은 정당한 사용자가 소프트웨어 즉, EI 하부 프로그램이 존재하며, 불법적 사용자에 의해서 네트워크 서비스 또는 소프트웨어 제품을 얻기 위해 정당한 사용자의 계정을 이용하기 위하여 정당한 사용자의 신원 정보를 타인에게 제공하는 데에 이용될 수 있는 중앙 프로그램을 복제하지 않는다는 사실에 기초한다. 자동 출금 기계(ATM)의 마그네틱 카드의 사용에서 보이는 것처럼, 비록 쉽게 위조되기는 하지만, 상당히 안전하다는 것이 입증되었다.
본 발명에 따른 두 번째 구체예에 따라, 중앙 프로그램은 EI 하부 프로그램만으로 이루어지며, AS 하부 프로그램은 독립된 프로그램이 되는데, 상기 AS 하부 프로그램은 EI 하부 프로그램이 동일한 컴퓨터 내에 존재하는 때에만 소프트웨어 제품이 사용되도록 인증하며, EI 하부 프로그램의 암호화된 신원을 수신함으로써 결정된다.
세 번째 구체예에 따라, 정당한 사용자에 의하여 타인에게 AS 하부 프로그램을 복제하는 것은 EI 하부 프로그램을 타인에게 복제하는 것과 동일하며, 따라서, AS 하부 프로그램을 불법적인 복제나 사용으로부터 보호할 수 있다는 점에서 EI 하부 프로그램 및 AS 하부 프로그램은 기본적으로 동등하다.
도면의 간단한 설명
제1도는 중앙 프로그램의 블록 다이어그램이다.
제2도는 RAM 공간 내에서 B 부분이 암호화된 프로그램의 다이어그램이다.
발명의 구체예에 대한 상세한 설명
본 발명은 통신 네트워크를 통하여 배포된 소프트웨어 제품을 불법적 복제나 사용으로부터 보호하기 위하여 의도되었고, 간단히 말해서, 이하의 설명은 사용자의 IBM PC에 저장되어 있는 소프트웨어 제품을 보호하기 위해서 의도되었다. 그리고, 본 발명은 아래의 큰 제목에 따라 설명될 것이다.
(1) 중앙 프로그램
(2) 암호화된 신원을 제공하는 하부 프로그램(EI 하부 프로그램)
(3) 소프트웨어 제품의 사용을 인증하는 하부 프로그램(AS 하부 프로그램)
(4) 사용자의 컴퓨터를 인증하는 하부 프로그램(AC 하부 프로그램)
(5) 다른 구체예
(1) 중앙 프로그램
첫 번째 구체예에 따라, 실행 가능한 중앙 프로그램이 제공되는데, 상기 중앙 프로그램은 (a)사용자가 DOS 환경에서 파일 이름을 입력하고, (b)프로그램을 실행함으로써 구동된다. 제1도는 중앙 프로그램의 블록 다이어그램이며, 상세한 사항은 이하에 설명된다.
(a) 만일 사용자가 통신 링크를 통하여 중앙 컴퓨터 네트워크에 접속하고자 한다면, 사용자는 중앙 프로그램을 구동시켜야 한다. 중앙 프로그램은 그 구동을 위해서는 사용자에게 비밀번호를 입력할 것을 요구하게 되고, 만일 비밀번호가 요구되는 것과 일치한다면, 상기 중앙 프로그램은 사용자의 명령에 응하여 중앙 컴퓨터에 정당한 사용자 즉, 올바른 비밀번호를 입력한 사용자의 암호화된 신원을 전송하게 된다.
사용자 비밀번호를 요구하는 것은 타인이 중앙 컴퓨터에 접속하여 정당한 사용자의 계정을 허가 없이 이용하는 것을 막기 위하여 필요하다.
중앙 컴퓨터는 이하에서 상세히 설명될 EI 하부 프로그램을 구동시켜 중앙 컴퓨터에 사용자의 암호화된 신원을 제공하게 된다. 중앙 컴퓨터는, 만일 암호화된 신원이 정확하다면, 사용자로부터의 접속 요청을 허가할 것이고, 이는 이하 (2)에서 상세히 설명된다.
(b) 작동 중인 프로그램이 AS 하부 프로그램을 구동시키고, 계속하여 작동되도록 하고자 한다면, 우선, 그러한 요구를 중앙 프로그램에 지시하기 위한 입력 파라미터를 준비한 후에, RAM의 지정된 위치에 상기 입력 파라미터를 저장하고, 그런 다음에, 상기 목적을 위한 PC DOS 서비스 신호의 사용을 통하여 중앙 프로그램이 구동될 것이다. 만일 상기에 언급된 비밀번호에 의해서 중앙 프로그램이 이미 실행 중이라면, 상기 중앙 프로그램은 지정된 위치의 입력 파라미터에 접속할 것이고, 이로부터, 중앙 프로그램은 실행중인 프로그램이 AS 하부 프로그램으로부터 인증 명령을 요청하고 있다고 판단하게 되며, AS 하부 프로그램을 구동시키게 된다. 그렇지 않다면, 중앙 프로그램은 AS 하부 프로그램으로 하여금 실행중인 프로그램을 계속하여 실행되도록 인증하는 것을 허용치 않을 것이다. 상기 비밀번호는 EI 하부 프로그램뿐만 아니라, AS 하부 프로그램의 사용을 가능케 하는 비밀번호이므로, 타인이 자신의 AS 하부 프로그램을 사용할 수 있도록 하기 위하여 정당한 사용자가 타인에게 비밀번호를 제공하는 것을 막을 수 있다.
중앙 프로그램이 사용자에 의해서 실행 중인 경우에는, 유효한 또는 입력 파라미터는 존재치 않게 되고, 따라서, 중앙 프로그램은 이러한 사실을 알게되는 것이다.
(2) 암호화된 신원을 제공하는 하부 프로그램(EI 하부 프로그램)
본 하부 프로그램은 신원 인증을 위하여 IC 신용카드에서 사용되는 방법을 이용하며, 상기 하부 프로그램에서 암호화된 신원이 발생된다.
구동되면, 상기 EI 하부 프로그램은 중앙 컴퓨터에 접속 요청을 전송하게 되고, 이는 임의의 숫자로 되돌아온다. 그런 후에, 상기 EI 하부 프로그램은 미리 지정된 A1 알고리즘에 의하여 상기 임의의 숫자를 암호화하고, 그 결과를 중앙 컴퓨터에 전송하게 되며, 만일 이러한 결과가 중앙 컴퓨터가 상기 임의의 숫자에 동일한 암호화 알고리즘을 행함으로써 얻어지는 다른 결과와 일치한다면 중앙 컴퓨터는 접속을 허용하게 될 것이다.
각 사용자에 대해서는 각각에 대응하는 신원 인증을 위한 개개의 암호화 알고리즘이 있으며, 중앙 컴퓨터는 EI 하부 프로그램으로부터 수신된 암호화 결과를, 만일 그것이 올바른 결과라면, 네트워크 서비스 또는 소프트웨어 제품 또는 그와 같은 것들을 얻는 데 쓰이는 이용자 계정으로부터 대금 지불을 위한 이용자 인증으로 이용할 수 있다는 것이 언급되어야 한다.
(3) 소프트웨어 제품의 사용을 인증하는 하부 프로그램(AS 하부 프로그램)
본 발명에 의하면, 소프트웨어 제품을 인증하는 데에는 2 가지 접근 방법이 있다.
(i) 신원 인증을 위하여 상기 (2)에서 언급된 것과 유사한 방법으로서, 실행중인 소프트웨어 프로그램에 암호화된 명령을 전달하여 상기 소프트웨어가 계속하여 컴퓨터 상에서 실행될 수 있도록 인증하는 방법. 특히, 실행중인 소프트웨어 프로그램은, 상기 (1)의 (b)에서 언급된 것과 마찬가지로, 입력 파라미터 속에 상기 소프트웨어 프로그램이 만들어내고 그런 다음에 중앙 프로그램이 구동되도록 하여주는 임의의 숫자를 포함한다. 상기 (1)의 (b)에서 언급된 것과 같이, 중앙 프로그램에 의해서 구동되는 AS 하부 프로그램은 상기 임의의 숫자에 대한 미리 정해진 A2 암호화 알고리즘을 행함으로써 얻어진 결과를 실행중인 소프트웨어 프로그램에 전송하여, 만일 이 결과와 상기 임의의 숫자에 대하여 동일한 A2 알고리즘을 행함으로써 얻어지는 다른 결과가 일치한다면, 암호화된 명령을 받아들이고 계속하여 작동되도록 한다.
소프트웨어 프로그램의 계속적인 사용은 암호화된 명령들의 계속적인 수신이 요구된다는 것이 언급되어야 한다.
또한, 각각의 사용자에 대하여, 자신의 컴퓨터에 사용되는 각각의 소프트웨어 제품들은 동일한 개개의 A2 암호화 알고리즘을 사용하며, 상기 A2 암호화 알고리즘은 중앙 컴퓨터가 이용자 컴퓨터에 소프트웨어 제품을 공급할 때에 중앙 컴퓨터에 의해서 각각의 소프트웨어 제품에 포함된다는 것이 언급되어야 한다.
(ii) 소프트웨어 제품의 암호화된 일부분 또는 전체적으로 암호화된 소프트웨어 제품을 암호 해독하는 방법.
만일 소프트웨어 제품이 프로그램이라면, 불법적인 복제와 사용을 방지하기 위해서는 일부만을 암호화하는 것으로 충분하나, 만일 소프트웨어 제품이 음성/영상 멀티미디어 데이터 파일이라면, 전체 소프트웨어를 암호화하는 것이 더욱 바람직하다는 것이 언급되어야 한다.
일부만을 암호화하거나 또는 소프트웨어 제품 전체를 암호화하는 것은 RAM안에서 상기 소프트웨어를 일시적으로 복사한 후에 행해지며, 이러한 일시적인 복사는 불법적 복제를 방지하기 위하여 사용자가 상기 소프트웨어 제품을 사용하고 난 후에는 더 이상 보존되어서는 안 된다. 제2도는 RAM 내부에서 프로그램의 다이어그램을 보여주는 도면이며, 본 도면에서 B부분이 암호화되는 것이다. 도시된 바와 같이, AS 하부 프로그램이 B 부분의 암호를 해독하며, '암호 해독된 B 부분'에 그 결과를 저장하며, 그 결과의 크기는 암호화된 복사본과 크기가 동일해서는 안 된다.
AS 하부 프로그램은 '암호화된 B 부분'의 첫 번째 위치에 '암호 해독된 B 부분으로 점프할 것'이라고 덮어쓰게 되며, '암호 해독된 B 부분'의 끝에는 'C 부분으로 점프할 것'이라는 설명이 덧붙여지게 된다. 이런 방법에 의해서, 소프트웨어의 암호화된 부분은 실행되지 아니할 것이고, 대신에 암호 해독된 부분이 실행될 것이다.
음성/영상 멀티미디어 소프트웨어의 경우에는, 일부분에 이어서 다른 일부분을 해독하는 방식으로 암호 해독이 이루어지며, 상기 각 일부분들은 음성/영상 효과를 일으켜주는 음성/영상 프로그램에 의해 이용되는 순간에 암호 해독된다. 즉, 상기 음성/영상 프로그램은 상기 일부분을 해독하려고 할 때마다 상기 (1)의 (b)에서 기술된 방식에 의해서 AS 하부 프로그램을 실행시켜야 한다. 바람직하게는, 새로이 암호 해독된 일부분은 이전에 암호 해독된 일부분 위에 겹쳐 씌어짐으로써 암호 해독된 소프트웨어의 전체 복사 부분이 RAM 속에 남아있지 않게 하여야 한다.
(4) 사용자 컴퓨터를 인증하기 하부 프로그램(AC 하부 프로그램)
AC 하부 프로그램은 미리 정해진 컴퓨터로서 작동될 수 있도록 컴퓨터를 인증하며, 만일 인증된 컴퓨터가 아니라면 보호되는 소프트웨어의 사용을 막아 주는 데에 사용되며, 상기 AC 하부 프로그램의 동작은 중앙 프로그램의 제어를 받는다.
특히, 중앙 프로그램이 사용자 컴퓨터의 하드디스크에 설치되어 작동되는 경우에는, 상기 중앙 프로그램은 그 자체 내부에 저장되어 있는 암호화된 상태 정보를 확인하고, 그것으로부터 프로그램이 처음 구동되는 것이라는 것을 인지하여, 초기화 과정을 실행시킬 것이다. 상기 (2)에서 언급된 바와 같이, 초기화 과정에서 중앙 프로그램은 상기 중앙 프로그램의 정당한 사용자의 암호화되지 아니한 신원을 중앙 컴퓨터에 제공하며, 그런 후에 AC 하부 프로그램은 중앙 컴퓨터로부터의 암호화된 명령을 요청하게 되고, 상기 중앙 컴퓨터는, 만일 정당한 사용자가 폐지되지 아니한 유효한 계정을 가지고 있다면, 상기 (3)의 (i)에서 기술된 방식으로, 암호화된 명령을 제공하게 된다.
명령을 인증한 후에는, 상기 AC 하부 프로그램은 당해 발명이 속하는 기술 분야에서 잘 알려진 기술에 의해, 사용자 컴퓨터의 하드웨어와 소프트웨어의 특성을 결정하게 되는데, 이러한 특성에는 마우스, 조이스틱, 하드디스크와 플로피디스크 드라이브 등과 같은 주변 기기의 신원(identity); CPU 주파수, 캐쉬(cache) 메모리 크기 등과 같은 것의 함수인 작동 속도 결정; 하드디스크의 헤드(heads), 실린더, 섹터, 그리고 하드디스크 내의 배드 섹터(bad sectors)의 위치 등의 숫자; 시스템 구동 소프트웨어의 버전과 하드디스크의 중앙 프로그램에 포함되어 있는 특정 소프트웨어 제품의 물리적 위치; 컴퓨터의 하드웨어 신원 코드 또는 그러한 것들이 포함된다. 예를 들어, 작동 속도는 컴퓨터로 하여금 테스트 프로그램을 작동케 한 후에, 하드웨어 카운터를 초기화시키고, 상기 테스트 프로그램의 작동이 끝날 때까지 걸리는 시간을 측정함으로써 결정할 수 있다. 다른 예로서, 구동 시스템의 버전은 특정 DOS 서비스 신호를 이용함으로써 결정될 수 있다.
초기화되는 중앙 프로그램을 나타내는 결정 및 상태 정보는 하드디스크 내의 중앙프로그램의 미리 정해진 부분에 설치되어 있는 AC 하부 프로그램에 의하여 암호화된 데이터의 형식으로 저장된다. 그 이후에, 중앙 프로그램이 실행될 때마다, 중앙 프로그램은 상태 정보를 먼저 확인할 것이고, 초기화되었다는 것을 결정한 후에, 상기 (1)에서 언급된 것과 같이, 요청된 작업을 진행할 것이고, 또한, 자동적으로 AC 하부 프로그램을 실행시킴으로서 상기 프로그램이 실행되고 있는 컴퓨터의 적어도 한 부분의 상기 언급된 하드웨어와 소프트웨어의 특성을 결정하게 되며, 그리고, 만일, 상기 결정된 특성의 어떤 부분이라도 이전에 미리 암호화하여 저장한 대응 부분과 일치하지 않는다면, AC 하부 프로그램은 중앙 프로그램의 다른 미리 정해진 부분에 있는 지시 정보를 암호화하여 AS 하부 프로그램이 작동되지 않도록 할 것이다.
상기에 부가하여, 사용자가 중앙 프로그램을 구동시킬 때에 또 다른 초기화 과정이 자동적으로 이행 수 있도록 하고, 중앙 컴퓨터로부터 또 다른 암호화된 명령이 요구되는 상기 중앙 프로그램의 인증을 위하여, AC 하부 프로그램은 암호화된 상태 정보를 리셋(reset)할 것이다. 상기의 암호화된 명령은 무료로 제공되거나 보호되는 소프트웨어의 값과 비교하여 상대적으로 작아야 한다.
이러한 것이 사용자로 하여금 자신의 계정을 폐지한 후에 다른 사용자의 컴퓨터에 중앙 프로그램을 자유로이 실행시키는 것을 막아준다.
부가하여, 중앙 컴퓨터로부터의 암호화된 명령은 전화선 등을 통하여 사용자에게 제공될 수 있고, 그런 후에, 사용자에 의하여 사용자 컴퓨터에 입력될 수 있다. 특히, 암호화된 명령을 요청하기 위하여, AC 하부 프로그램은 임의의 숫자를 생성하고, 상기 임의의 숫자를 사용자에게 전달하는데, 이때 사용자는 전화기 숫자 판의 상기 임의의 숫자를 입력함으로써 만들어지는 전화기의 듀얼 톤(dual tone) 신호 방법에 의하여 중앙 컴퓨터로 전화선을 통하여 상기 임의의 숫자를 제공하게 되며, 상기 임의의 숫자를 암호화한 후에는, 중앙 컴퓨터는 음성 합성 장치를 이용하여 동일한 전화선을 통하여 상기 결과를 사용자에게 전송하게 된다.
(5) 다른 구체예
두 번째 구체예에 따라, AS 하부 프로그램은 중앙 프로그램으로부터 분리되어 독립한 프로그램이 되며, 상기 중앙 프로그램은 EI 하부 프로그램만으로 구성된다. EI 하부 프로그램이 동일한 컴퓨터 내에 존재할 경우에, AS 하부 프로그램만이 작동하도록 AS 하부 프로그램에 요청함으로서 AS 하부 프로그램은 EI 하부 프로그램에 구속된다. 특히, AS 프로그램은 작동 시에 AS 프로그램을 인증하기 위한 암호화된 신원을 발생시키기 위하여 EI 하부 프로그램을 구동시킬 수 있다. EI 하부 프로그램은, 상기 (1)의 (b)에서 언급된 입력 파라미터의 방법에 의해서, 이것이 사용자로부터의 중앙 컴퓨터에 접속하기 위한 암호화된 신원의 요청이 아니고, AS 프로그램으로부터의 암호화된 신원의 요청이라는 것을 인식하게된다.
나아가, 상기 EI 하부 프로그램은, AS 프로그램에 암호화된 신원을 전달하기 이전에, 예를 들어 첵크섬(checksum) 방법에 의하여, 우선 그 자체의 데이터 보전(integrity)을 확인할 수 있다. 교대로, AS 하부 프로그램이 상기의 확인을 하게 할 수도 있다. 그리고, 만일, 상기의 확인 결과가 EI 하부 프로그램 내의 변화된 어떤 데이터라면, 전자의 경우에는, EI 하부 프로그램이 AS 하부 프로그램에 암호화된 신원을 제공치 아니함으로써 상기 AS 하부 프로그램은 구동되지 아니할 것이며, 후자의 경우에는, AS 프로그램 그 자체가 구동되지 아니할 것이다.
세 번째 구체예에 따른 암호화 알고리즘 A1과 A2는 동일한 알고리즘으로서, 중앙 컴퓨터에 암호화된 신원을 제공하고, 소프트웨어 제품의 사용을 인증하기 위한 암호화된 명령을 발생키 위해 E1 하부 프로그램과 A1 하부 프로그램이 각각 사용하게 된다.
따라서, 만일 소프트웨어의 정당한 사용자가 자신의 EI 하부 프로그램을 타인에게 복제하는 것은, 자신의 AS 하부 프로그램을 타인에게 복제하여 주는 것과 동일한 것이 된다. 이러한 경우에, AS 하부 프로그램에 약간의 변형을 가하는 것은 EI 하부 프로그램에도 동일하게 행하여 질 수 있으며, 이는 간단한 인터페이스 프로그램을 부가하는 것을 포함하는데, 상기 인터페이스 프로그램은 중앙 컴퓨터로부터 임의의 숫자를 수신하고, AS 하부 프로그램으로 상기 임의의 숫자를 입력하고, AS 하부 프로그램으로부터 암호화된 결과를 수신하며, 상기 암호화된 결과를 중앙컴퓨터에 제공하는 데에 쓰이는데, 상기의 기능은 어떠한 네트워크 인터페이스 소프트웨어에서도 발견될 수 있는 것이다. 교대로, 상기 A1과 A2 알고리즘은 2 개의 다른 알고리즘일 수 있으나, A1 알고리즘의 대표적인 정보는 AS 하부 프로그램 속으로 포함되며, 사용자에 의해 접속될 수 있거나, 또는, AS 하부 프로그램이 실행 중일 때에는, 사용자가 이용할 수 있는 해당 암호화 기능을 수행키 위하여 AS 하부 프로그램에 의해서 이용될 수 있다.
부가하여, 본 발명에 따른 다른 구체예에 따라, 소프트웨어 제품과 AS 하부 프로그램은 사생활에 대한 법적 행동을 용이하게 하기 위하여 각각 정당한 사용자의 신원을 포함하고 있다. 나아가, 상기 AS 하부 프로그램은 구동되었을 때에는 상기 프로그램이 실행되는 컴퓨터 속에 저장되어 있는 소프트웨어 제품을 구동시키고, 그 내부의 신원(identity)과 같은 것을 확인하기 위하여 하드디스크로부터 RAM까지 차례로 특정 DOS 서비스 신호를 이용하여 각 소프트웨어 제품에 접속할 것이고, 만일, AS 하부 프로그램의 신원과 일치하지 아니하는 신원을 가지고 있는 소프트웨어 제품이 발견된다면, AS 하부 프로그램은 AS 하부 프로그램 그 자체를 포함하여 그 제어를 받고있는 모든 소프트웨어 제품의 사용을 막을 것이다. 상기와 같은 신원은 소프트웨어 제품의 미리 정해진 위치에 저장되어 있을 수 있으며, 각 소프트웨어 제품의 다른 위치에 암호화된 신원이 저장됨으로써 상기 신원이 바뀌어지는 것으로부터 보호되며, 상기 각각의 다른 위치는 각각의 소프트웨어 제품에서 상호 다르게 되어 있음으로써 상기 신원이 발견되거나 바뀌어지는 것을 막을 수 있다. 그리고, 상기의 각 소프트웨어 제품은 구동될 때에 암호화된 신원의 암호 해독된 결과에 대하여 소프트웨어 속에 저장된 암호화되지 아니한 신원을 자동적으로 확인할 것이고, 상기의 것들이 일치하지 않는다면, 소프트웨어 제품은 실행되지 않을 것이다. 정당한 사용자의 신원 또는 암호화된 신원은 중앙 컴퓨터가 사용자 컴퓨터에 상기의 동일한 신원을 제공하는 때에 중앙 컴퓨터에 의해서 각각의 소프트웨어 제품에 포함된다. 나아가, AS 하부 프로그램이 컴퓨터 속에 저장되어 있고, 중앙 컴퓨터에 의해서 제공되지 아니한 소프트웨어 제품을 그 제어 하에 있는 소프트웨어 제품으로 잘못 간주하는 것을 막기 위하여, 중앙 컴퓨터는 각 소프트웨어 제품의 제3의 미리 정해진 위치에 해당 소프트웨어 제품이 중앙 컴퓨터에 의해서 AS 하부 프로그램으로 제공된 것이라는 사실을 지시하는 정보를 더 포함하며, 각 소프트웨어 제품은 구동 시에 내부에 저장된 정보가 바뀌어진 것을 발견한다면 실행되지 않을 것이다.

Claims (17)

  1. 정당한 또는 허가된 사용자가 보호가 요구되는 소프트웨어 또는 그 복제품을 타인(들)이 사용하도록 허용하는 것을 막음으로써 상기 소프트웨어를 보호하는, 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어로서,
    상기 허가 소프트웨어는, 실행될 때에, (1) 상기 컴퓨터 장치에 접속 가능한 기억 장치 속에서 신원(identity) 소프트웨어의 존재를 결정하고; (2) 상기 결정의 결과를 상기 컴퓨터 장치의 상기 보호가 요구되는 소프트웨어의 사용을 허용할 것인지에 대한 예비 조건으로서 이용하며;
    상기 신원(identity) 소프트웨어는 상기 컴퓨터 장치에서 상기 사용자의 특정된 정보를 제공하는 데에 사용되며; 상기 정보는 상기 컴퓨터 장치에서 상기 사용자가 책임져야만 하는 작동을 가능케 하는 데에 기본적으로 사용되며; 그리고 상기 존재의 결정은 상기 작동이 행해지는 것을 야기하지 아니하면서 이루어지는 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어.
  2. 제1항에 있어서, 상기 컴퓨터 장치에 상기 신원(identity) 소프트웨어를 인증하는 데에 사용되는 소프트웨어를 더 포함하여 이루어지며; 만일, 상기 신원 소프트웨어의 인증의 결과가 바람직하지 않다면, 상기 신원 소프트웨어는 상기 컴퓨터 장치에 접속 가능한 기억 장치 속에 존재하지 않는 것으로 결정되는 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어.
  3. 제1항에 있어서, 상기 컴퓨터 장치를 미리 특정된 컴퓨터 장치로서 운용되도록 컴퓨터 장치를 인증하는 데에 사용되는 인증(authenticating) 소프트웨어를 더 포함하여 이루어지며, 만일, 컴퓨터 장치의 인증의 결과가 바람직하지 못하다면, 상기 허가(authorising) 소프트웨어는 상기 보호가 요구되는 소프트웨어의 사용을 허용치 아니할 것이며, 만일, 컴퓨터 장치의 상기 인증의 결과가 바람직하다면 상기 보호가 요구되는 소프트웨어의 사용을 허가할 것이고, 상기 신원 소프트웨어는 상기 허가 소프트웨어가 실행되는 컴퓨터 장치에 접속 가능한 기억 장치 속에 존재하는 것으로 결정되는 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어.
  4. 제1항에 있어서, 상기 작동은 상기 정당한 또는 허가된 사용자의 계정으로부터 대금이 지불되는 것에 관련된 작동인 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어.
  5. 제1항에 있어서, 상기 보호가 요구되는 소프트웨어는 복수개의 보호되는 소프트웨어들로 이루어지며; 상기 각각의 보호되는 소프트웨어는 두 번째의 미리 정해진 위치에 존재하는 정당한 사용자의 유효한 신원을 가리키기 위한 첫 번째 미리 정해진 위치에 유효 정보 및 정당한 사용자의 암호화된 신원을 가지며; 그리고 상기 각각의 보호되는 프로그램들은, 실행될 때에, 만일 상기 유효 정보가 바뀌었거나 또는 상기 신원과 상기 암호화된 신원의 암호 해독된 결과가 일치하지 아니한다면, 실행되지 아니하는 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가(authorising) 소프트웨어.
  6. 제5항에 있어서, 정당한 사용자의 암호화된 신원을 더 포함하여 이루어지며; 만일, 상기 컴퓨터 장치에 저장되어 있는 상기 보호되는 프로그램들이 상기 허가 소프트웨어 속의 상기 암호화된 신원의 암호 해독 결과와 일치하지 아니하는 유효한 사용자 신원을 가지는 경우에는 상기 허가 소프트웨어는 상기 보호되는 프로그램들의 사용을 허가하지 않는 것을 특징으로 하는, 장치에 저장되어 있거나 매개체 위에 물리적으로 존재하는 것을 특징으로 하는 허가(authorising) 소프트웨어.
  7. 정당한 또는 허가된 사용자가 타인(들)에게 보호가 요구되는 소프트웨어 또는 복제품을 사용하도록 허가하는 것을 막음으로써, 다른 상업용 소프트웨어를 보호하는 데에 사용되는, 컴퓨터 장치에 사용되는 보호 소프트웨어로서, 상기 보호소프트웨어는
    상기 컴퓨터 장치 내에서 상기 사용자의 특정 정보를 제공하는 데에 사용되는 상기 신원 소프트웨어; 상기 컴퓨터 장치에서 상기 사용자가 책임져야만 하는 작동을 가능케 하는 데에 사용되는 상기 정보; 및 실행될 때에, 컴퓨터 장치 내의 상기 보호가 요구되는 소프트웨어의 사용을 허가하는 허가 소프트웨어로 이루어지며;
    상기 신원 소프트웨어와 상기 허가 소프트웨어는 상기 보호 소프트웨어 내에 상기 허가 소프트웨어가 개별적으로 복제되는 것을 방지하는 방식으로 포함되어 있는 것을 특징으로 하는 컴퓨터 장치에 사용되는 보호 소프트웨어.
  8. 제7항에 있어서, 상기 동작은 상기 정당한 또는 허가된 사용자의 계정으로부터 대금이 지불되는 것과 관련된 작동인 것을 특징으로 하는 컴퓨터 장치에 사용되는 보호 소프트웨어.
  9. 제7항에 있어서, 상기 허가 소프트웨어는 상기 신원 소프트웨어를 포함하는 것을 특징으로 하는 컴퓨터 장치에 사용되는 보호 소프트웨어.
  10. 정당한 또는 허가된 사용자가 타인(들)에게 보호가 요구되는 소프트웨어 또는 복제품을 사용하도록 허가하는 것을 막음으로써, 다른 소프트웨어를 보호하는 데에 사용되는, 컴퓨터 장치에 사용되는 허가 프로그램으로서,
    상기 허가 프로그램은, 실행할 때에, 컴퓨터 장치 내의 상기 보호가 요구되는 소프트웨어의 사용을 허가하며;
    상기 허가 프로그램의 정당한 또는 허가된 사용자의 특정 정보는 상기 허가 프로그램과 상기 허가 프로그램의 사용자에게 접속 가능한 상기 정보 속에서 존재하고;
    상기 정보는 상기 컴퓨터 장치에서 정당한 또는 허가된 사용자가 책임져야만 하는 작동을 가능케 하는 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가 프로그램.
  11. 제10항에 있어서, 상기 작동은 상기 정당한 또는 허가된 사용자의 계정으로부터 대금이 지불되는 것과 관련된 작동인 것을 특징으로 하는 컴퓨터 장치에 사용되는 허가 프로그램.
  12. 정당한 또는 허가된 사용자가 타인(들)에게 보호가 요구되는 소프트웨어 또는 복제품을 사용하도록 허가하는 것을 막음으로써, 다른 상업용 소프트웨어를 보호하는 데에 사용되는, 컴퓨터 장치에 사용되는 보호 소프트웨어로서, 상기 보호 소프트웨어는
    불법적 사용자에 의하여 사용되는 것을 막기 위한 보호 암호를 가지고, 상기 사용자의 특정 정보를 제공하는 데에 사용되는 신원 소프트웨어; 상기 컴퓨터 장치에서 상기 사용자가 책임져야만 하는 작동을 가능케 하는 데에 사용되는 정보; 및 실행될 때에, 정확한 암호에 의해서 실행 가능하게 된 신원 소프트웨어를 상기 보호가 요구되는 소프트웨어의 사용을 허가하는 것에 대한 예비 조건으로서 이용하는 데에 사용되는 허가 프로그램으로 이루어지는 것을 특징으로 하는 컴퓨터 장치에 사용되는 보호 소프트웨어.
  13. 컴퓨터 장치의 제어 하에 있는 기억 장치 속의 신원 소프트웨어의 존재를 결정하고; 그리고
    상기 존재 결정의 바람직한 결과를 상기 컴퓨터 장치 내의 상기 보호가 요구되는 소프트웨어의 사용을 허가하는 것에 대한 예비 조건으로 이용하는 단계로 이루어지고,
    상기 신원 소프트웨어는 상기 허가 프로그램의 정당한 또는 허가된 사용자의 특정 정보를 포함하며; 상기 정보는 상기 컴퓨터 장치 내에서 정당한 또는 허가된 사용자가 책임져야만 하는 작동을 가능케 하는 데에 사용되며; 그리고 상기 존재의 결정은 상기 작동을 실행시키지 아니한 채로 이루어지는 것을 특징으로 하는 불법적 사용으로부터 소프트웨어를 보호하는 방법.
  14. 컴퓨터 장치 내에서 보호가 요구되는 소프트웨어의 사용을 허가하기 위한 "허가 소프트웨어"를 생성하고;
    "신원 소프트웨어"를 생성하며;
    상기 허가 소프트웨어가 개별적으로 복제되는 것을 막기 위한 방식으로 상기 신원 소프트웨어와 상기 허가 소프트웨어를 하나로 결합하여 "보호 소프트웨어"를 만들고; 그리고
    상기 보호 소프트웨어를 상기 컴퓨터 장치 내에 저장하는;
    단계로 이루어지고, 상기 보호 소프트웨어 내의 상기 신원 소프트웨어는 상기 허가 소프트웨어의 정당한 또는 허가된 사용자의 특정 정보를 함유하며; 상기 정보는 컴퓨터 장치 내에서 상기 정당한 또는 허가된 사용자가 책임져야만 하는 작동을 가능케 하는 데에 사용되는 것을 특징으로 하는, 불법적 사용으로부터 상업용 소프트웨어를 보호하는 방법.
  15. 컴퓨터 장치 내에서 보호가 요구되는 소프트웨어의 사용을 허가하는 데에 사용되는 허가 프로그램을 생성하고;
    상기 허가 프로그램 내에서 사용자의 특정 정보를 사용자에게 접속 가능하도록 하는 방식으로 상기 허가 프로그램의 정당한 또는 허가된 사용자의 특정 정보를 포함하고; 그리고
    상기 허가 프로그램을 상기 컴퓨터 장치 내에 저장하는;
    단계로 이루어지며, 상기 정보는 상기 컴퓨터 장치 내에서 상기 정당한 또는 허가된 사용자가 책임져야만 하는 작동을 가능케 하는 데에 사용되는 것을 특징으로 하는 불법적 사용으로부터 소프트웨어를 보호하는 방법.
  16. 컴퓨터 장치 내에서 실행 중인 보호 소프트웨어에 의하여 정당한 또는 허가된 사용자의 신원과 관련된 첫 번째 정보를 이격된 컴퓨터 수단(means)에 제공하고;
    상기 이격된 컴퓨터 수단에 의하여 상기 사용자가 유효한 계정을 가지고 있는지를 결정하며;
    상기 이격된 컴퓨터 수단에 의해서 상기 사용자가 유효한 계정을 가지고 있는지의 여부를 결정함에 있어서 무료로 또는 상기 계정에 대하여 상대적으로 적은 비용으로 상기 컴퓨터 장치에 두 번째 정보를 제공하며;
    상기 보호 소프트웨어에 의해서 상기 두 번째 정보를 인증하며;
    상기 보호 소프트웨어에 의해서 상기 컴퓨터 장치의 하드웨어 또는/그리고 소프트웨어의 특성을 결정하고;
    상기 보호 소프트웨어에 의하여 만일 상기 두 번째 정보가 인증된 경우에는결정된 상기 하드웨어 또는/그리고 소프트웨어의 특성을 보안된 방식으로 저장하고;
    상기 보호 소프트웨어에 의해서 상기 보호 소프트웨어가 실행 중인 컴퓨터 장치의 하드웨어 또는/그리고 소프트웨어의 특성의 적어도 한 부분을 결정하고;
    상기 보호 소프트웨어에 의해서 상기 하드웨어 또는/그리고 소프트웨어의 특성의 적어도 한 부분과 상기 저장된 하드웨어 또는/그리고 소프트웨어의 특성의 대응되는 부분을 비교하고;
    상기 보호 소프트웨어에 의하여 상기 비교의 바람직한 결과를 상기 보호 소프트웨어가 실행 중인 컴퓨터 장치 내의 보호가 요구되는 소프트웨어의 사용을 허가하는 것에 관한 예비 조건으로 이용하는;
    단계로 이루어지는 것을 특징으로 하는, 불법적 사용으로부터 비교적 고가의 소프트웨어를 보호하는 방법.
  17. 이격된 컴퓨터 수단에 정당한 또는 허가된 사용자의 신원에 관련된 첫 번째 정보를 제공하는 데에 사용되는, 컴퓨터 장치에 사용되는 보호 소프트웨어로 이루어지며,
    상기 이격된 컴퓨터 수단은 상기 사용자가 유효한 계정을 가지는 것으로 결정되는지에 대해 무료로 또는 상기 계정에 대해 상대적으로 적은 비용으로 상기 사용자가 유효한 계정을 가지고 있는지의 여부를 결정하고, 상기 컴퓨터 장치에 두번째 정보를 제공하는 데에 사용되며;
    상기 보호 소프트웨어는 또한
    (1)상기 두 번째 정보를 인증하고;
    (2)상기 컴퓨터 장치의 하드웨어 또는/그리고 소프트웨어의 특성을 결정하고;
    (3)만일 상기 두 번째 정보가 인증된다면 상기 결정된 하드웨어 또는/그리고 소프트웨어의 특성을 보안된 방식으로 저장하고;
    (4)상기 보호 소프트웨어가 실행 중인 컴퓨터 장치의 하드웨어 또는/그리고 소프트웨어의 특성의 적어도 한 부분을 결정하고;
    (5)상기 결정된 하드웨어 또는/그리고 소프트웨어의 특성의 적어도 한 부분과 상기 저장된 하드웨어 또는/그리고 소프트웨어의 특성의 대응되는 부분을 비교하고;
    (6)상기 비교의 바람직한 결과를 상기 보호 소프트웨어가 실행되는 컴퓨터 장치 내의 상기 보호가 요구되는 소프트웨어의 사용을 허가하기 위한 예비 조건으로 이용하는 것을 특징으로 하는, 불법적 사용으로부터 비교적 고가의 소프트웨어를 보호하기 위한 장치.
KR1020027007852A 2002-06-19 1999-12-20 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법 KR20030015192A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020027007852A KR20030015192A (ko) 2002-06-19 1999-12-20 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020027007852A KR20030015192A (ko) 2002-06-19 1999-12-20 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법

Publications (1)

Publication Number Publication Date
KR20030015192A true KR20030015192A (ko) 2003-02-20

Family

ID=49322867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027007852A KR20030015192A (ko) 2002-06-19 1999-12-20 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법

Country Status (1)

Country Link
KR (1) KR20030015192A (ko)

Similar Documents

Publication Publication Date Title
US7225333B2 (en) Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US8234700B2 (en) System and method for authentication
US4916738A (en) Remote access terminal security
US8572392B2 (en) Access authentication method, information processing unit, and computer product
EP2400362B1 (en) Adaptable security mechanism for preventing unauthorized access of digital data
US8005757B2 (en) Specifiying security for an element by assigning a scaled value representative of the relative security thereof
US7757077B2 (en) Specifying security for an element by assigning a scaled value representative of the relative security thereof
US6665797B1 (en) Protection of software again against unauthorized use
US20050138387A1 (en) System and method for authorizing software use
US20050066187A1 (en) Encrypting a digital object on a key ID selected therefor
US20030120923A1 (en) Secure data authentication apparatus
GB2404536A (en) Protection of data using software wrappers
AU2006337160A1 (en) Administration of data encryption in enterprise computer systems
US8266710B2 (en) Methods for preventing software piracy
JPWO2006004130A1 (ja) データ管理方法、そのプログラム及びプログラムの記録媒体
AU778380B2 (en) Portable authorization device for authorizing use of protected information and associated method
EP1471405A1 (en) Method and device for protecting information against unauthorised use
AU765841B2 (en) Software for restricting other software to be used by the rightful user only and method therefor
KR20030015192A (ko) 다른 소프트웨어가 정당한 사용자에 의해서만 사용되도록제한하는 소프트웨어 및 그 방법
JP2000207197A (ja) コンピュ―タソフトウェアのプロテクトシステム及び方法
JP2011044155A (ja) 他のソフトウェアの使用を正当なユーザのみに規制するためのソフトウェアおよびその方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination