KR100360996B1 - 소프트웨어 보안 메커니즘 - Google Patents

소프트웨어 보안 메커니즘 Download PDF

Info

Publication number
KR100360996B1
KR100360996B1 KR1020000074257A KR20000074257A KR100360996B1 KR 100360996 B1 KR100360996 B1 KR 100360996B1 KR 1020000074257 A KR1020000074257 A KR 1020000074257A KR 20000074257 A KR20000074257 A KR 20000074257A KR 100360996 B1 KR100360996 B1 KR 100360996B1
Authority
KR
South Korea
Prior art keywords
computer
password
program
software
computer program
Prior art date
Application number
KR1020000074257A
Other languages
English (en)
Other versions
KR20010062220A (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 KR20010062220A publication Critical patent/KR20010062220A/ko
Application granted granted Critical
Publication of KR100360996B1 publication Critical patent/KR100360996B1/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

로드 프로그램은 컴퓨터 시스템 클럭 및 운영 체계 ID로부터 판독 시간의 함수로써 사용자 컴퓨터가 중간 코드를 생성하도록 한다. 소프트웨어 지원자는 사용자로부터 중간 코드를 수신하고, 사용자가 설치하기를 희망하는 소프트웨어에 대해 중간 코드의 함수로써의 패스워드 및 비밀 프로덕트 ID 코드를 생성한다. 사용자 컴퓨터 내의 로드 프로그램은 로드 프로그램의 다음 실행까지 내부 키를 산출하기 위해 동일한 수학적 알고리즘을 사용한다. 내부 키는 지원자 패스워드를 입력하기 위한 로드 프로그램으로부터 프롬프트 다음에 있는 소프트웨어 지원자 패스워드와 비교된다. 소프트웨어 지원자 패스워드 및 내부에서 생성된 패스워드 모두는 사용자가 설치하기 희망하는 소프트웨어의 실행을 로드 프로그램이 허가하기 전에 일치되어야 한다.

Description

소프트웨어 보안 메커니즘{SOFTWARE SECURITY MECHANISM}
본 발명은 소프트웨어의 허가되지 않은 사용을 방지하기 위한 보안 메커니즘에 관한 것이고, 특히 하나 이상의 컴퓨터에서 허가되지 않은 소프트웨어의 사용을방지하는 메커니즘에 관한 것이다.
다양한 보안 메커니즘이 소프트웨어 지원자의 허가 없는 소프트웨어 사용을 방지하기 위해 지금까지 발명되어져 왔다. 이는 하드웨어 보안 장치를 포함하는데, 소프트웨어가 컴퓨터에서 실행될 수 있기 전에 컴퓨터에 부착되어야 한다. 통상적으로, 실행될 소프트웨어는 하드웨어 장치가 설치되었다는 표시를 찾는 조사를 포함한다. 그러한 하드웨어 보안 장치는 소프트웨어가 임의의 어느 한 시간에 하나의 컴퓨터에서만 수행될 것이라는 것을 보증한다. 이러한 하드웨어 장치는 그러나 상대적으로 비쌀 수 있고 게다가 그들이 부착될 다양한 형태의 컴퓨터에 채택될 수 있어야 할 필요가 있다.
다른 보안 메커니즘은 임의의 하드웨어 장치의 존재 보다 소프트웨어가 설치될 컴퓨터의 식별자를 찾는 소프트웨어 장치를 포함한다. 그러한 소프트웨어 장치는 종종 호스트 컴퓨터의 식별자와 함게 실행될 프로그램의 유일한 조합을 생성하기 위해 복잡한 알고리즘을 필요로 한다. 이러한 소프트웨어 장치는 타켓 컴퓨터와 함께 실행될 프로그램의 유일한 조합을 설치하기 위해 호스트 컴퓨터에 접속될 다른 하드웨어 장치를 여전히 필요로 할 수도 있다. 그러한 시스템은 호스트 컴퓨터와 함께 실행될 프로그램을 조합하기 위해 사용되는 카드 판독기를 필요로 하는 미국 특허 제4,683,553호에 개시된다.
본 발명의 목적은 타겟 컴퓨터에 매우 복잡한 알고리즘 혹은 임의의 추가적인 장치의 부착을 필요로 하지 않는 방법으로 단일 컴퓨터를 실행시키기 위해 소프트웨어의 조합을 생성한 이후에만 단지 어떠한 소프트웨어의 실행 시간 수행을 허가하는 소프트웨어 보안 메커니즘을 제공하기 위한 것이다.
본 발명의 여러 목적들은 사용자가 타겟이 된 컴퓨터에 특정한 소프트웨어가 설치되기를 희망하는 임의의 시간에 타겟이 된 컴퓨터에 의해 성공적으로 실행되어야 하는 로드 프로그램에 의해 달성된다. 로드 프로그램은 소프트웨어가 설치될 컴퓨터 내에 내부 시스템 클럭에 의해 지시된 시간의 양을 타겟이 된 컴퓨터가 판독하도록 한다. 컴퓨터는 시스템으로부터 시간의 양을 판독하는 기능과 내부에서 코드된 운영 체계의 식별자의 함수인 중간 코드 생성을 시작한다. 그렇게 산출된(computed) 코드는 바람직하게 사용자에게 표시된다.
바람직한 실시예에 있어서, 사용자는 표시된 코드가 사용자가 컴퓨터 내에 설치되기를 희망하는 소프트웨어의 간단한 설명과 함께 소프트웨어 지원자에게 전달될 것임을 이해한다. 소프트웨어 지원자는 설명된 소프트웨어에 대해 비밀 ID 코드를 보존한다. 소프트웨어 지원자는 설명된 소프트웨어를 위해 사용자 컴퓨터에 의해 생성된 코드 및 비밀 ID 코드의 함수인 패스워드를 생성한다. 이렇게 생성된 패스워드는 로드 프로그램을 다시 실행하기 위한 지시와 함께 사용자에게 전달된다.
로드 프로그램이 다시 실행될 때, 시스템 클럭에 의해 지시된 이전에 저장된 시간은 운영 체계의 내부에서 코드된 식별자와 함께 판독된다. 상기 두 값들은 사용자에게 미리 표시된 중간 코드를 산출하는데 다시 사용된다. 컴퓨터는 사용자에게 전달된 패스워드를 산출하기 위해 지원자에 의해 사용된 동일한 수학적 함수를사용하여 내부 키를 산출하기 시작한다. 이러한 수학적 함수는 설치될 소프트웨어를 위해 새롭게 생성된 중간 코드 및 비밀 ID 코드의 함수이다. 이러한 점에 있어서, 설치될 소프트웨어를 위한 비밀 ID 코드는 바람직하게 소프트웨어에 내장되어 로드 프로그램에 의해 판독 될 수 있다. 다음에, 로드 프로그램은 소프트웨어 지원자에 의해 제공되는 패스워드를 사용자가 입력하도록 요청하는 타겟 컴퓨터를 필요로 한다. 소프트웨어 지원자에 의해 제공된 사용자가 입력한 패스워드는 그 때 소프트웨어 제공자에 의해 사용된 동일한 수학적 알고리즘을 사용하여 생성된 내부에서 산출된 키와 비교된다. 로드 프로그램은 내부에서 산출된 키가 입력된 패스워드와 부합할 경우에 특정한 소프트웨어의 실행을 허가한다.
도 1은 운영 체계, 로드 프로그램, 및 로드 프로그램에 의한 다음 허가를 컴퓨터 상에서 실행할 응용 프로그램 사이의 관계를 기술한 도면.
도 2a 및 도 2b는 도 1의 응용 프로그램을 실행하기 위해 도 1의 운영 체계를 갖는 컴퓨터를 허가하는 로드 프로그램의 순서도.
도 3은 도 2a 및 도 2b의 로드 프로그램에 입력될 패스워드를 생성하기 위해, 응용 소프트웨어의 지원자에 의해 사용된 계산 과정(coputational process)에 대한 순서도.
<도면의 주요 부분에 대한 부호의 설명>
10 : 운영 체계
12 : 로드 프로그램
14 : 응용 소프트웨어 프로덕트
본 발명의 완전한 이해를 위해, 첨부된 도면과 관련하여 얻어진 다음의 상세한 설명을 참조로 한다.
도 1을 참조하면, 운영 체계(10)가 로드 프로그램의 실행을 지원하고, 차례로 응용 소프트웨어 프로덕트(14)의 실행을 허가한다. 운영 체계(10)는 로드 프로그램 및 응용 소프트웨어 프로덕트가 설치될 컴퓨터 시스템 내에 존재하는 것이 바람직할 것이다. 응용 소프트웨어 프로덕트를 성공적으로 설치하고 실행하기 위해, 로드 프로그램(12)이 응용 소프트웨어 프로덕트(14)의 정확한 실행을 허가하는 것은 필수적이다.
도 2a 및 도 2b를 참조하면, 로드 프로그램(12)의 순서도가 기술된다. 로드 프로그램은 단계 20과 함께 시작하고, 이는 시작 시간 "T"가 시스템 레지스트리내에 저장되었는지를 묻는다. 이러한 점에 있어서, 도 1의 운영 체계(10)는 바람직하게 운영 체계가 세워 지도록 미리 한정된 다양한 값의 파라미터가 있는 시스템 레지스트리를 포함한다. 마이크로소프트사로부터 이용가능하게 된 운영 체계인 윈도우는 로드 프로그램에 의해 판독될 수 있는 그러한 시스템 레지스트리를 포함한다는 것이 주목될 것이다.
로드 프로그램이 제1 시간 동안 실행을 시작한다고 가정하면, 시작 시간 "T"는 운영 체계의 시스템 레지스트리 내에 존재하지 않을 것이다. 이는 단계 22에서 로드 프로그램이 경로 없이 시작하도록 실행하는 프로세서를 고무할 것이다. 단계 22를 참조하면, 시스템 클럭이 운영 체계(10)에 정규적으로 설치되거나 혹은 그렇지 않으면 운영 체계를 실행하는 컴퓨터 내에 존재하는 시스템 클럭은 바람직하게 초 단위로 판독될 것이다. 초의 수는 바람직하게는 한 밤중 혹은 12:00AM 이래로 초 단위 시간의 양일 것이다. 시스템 클럭이 이러한 시간을 직접 지시하지 않는 경우에, 그 때 루틴은 한 밤중 이래로 초의 수를 바람직하게 판정할 것이다. 어떠한 경우에는, 수행된 컴퓨터가 로드 프로그램의 단계 22를 수행한 이후에 한 밤중으로부터 경과된 시간을 바람직하게 지시하는 명확한 수일 것이다. 초 단위로 판독하는 것은 단계 24에서 시작 시간 "T"로서 운영 체계의 시스템 레지스트리 내에 저장될 것이다. 로드 프로그램을 수행하는 컴퓨터는 다음에 단계 26으로 진행할 것이고 운영 체계(10)의 식별 번호를 판독할 것이다. 이러한 점에 있어서, 운영 체계(10)는 바람직하게는 운영 체계의 특정한 카피에 대해 내부에서 코드된 유일한 식별 번호를 갖는 윈도우 운영 체계일 것이다. 이러한 운영 체계 ID는 운영 체계의 시스템 레지스트리 내에 저장될 것이다. 이렇게 운영 체계를 판독하는 것은 단계 26에서 OS_ID 로서 저장될 것이다. 로드 프로그램을 수행하는 컴퓨터는 다음에 단계 28로 진행할 것이고 중간 코드 "IC"를 산출할 것이다. 산출된 중간 코드는 함수 "f1(OS_ID,T)일 것이다. 특정한 수학적 함수 f1(OS_ID,T)는 두 개의 변수 "OS_ID" 및 "T"의 수학적 함수로 거의 독단적으로 정의될 수 있다. 다음에, 로드 프로그램을 수행하는 프로세서는 응용 소프트웨어 프로덕트(14) 내에 내장된 소프트 프로덕트 ID를 판독할 것이다. 본 발명에 따르면, 이러한 소프트웨어 프로덕트 ID는 소프트웨어 지원자에 의해 제공된 특정한 소프트웨어 프로덕트에 할당된 유일한 번호일 것이다. 이러한 소프트웨어 프로덕트 ID는 "SP_ID"로서 저장된다. 로드 프로그램을 수행하는 프로세서는 단계 32로 진행할 것이고 여기서 변수 "KEY"의 값이 산출된다. KEY 변수는 함수 f2(IC,SP_ID)로 나타날 것이다. f2(IC,SP_ID)는 중간 코드 "IC" 및 소프트웨어 프로덕트 ID, SP_ID의 수학적 알고리즘으로서 독단적으로 정의될 수다는 것이 바람직할 것이다. 단계 32의 다음 수행에서, 로드 프로그램은 단계 34로 진행하기 위한 컴퓨터를 필요로 하고 여기서 "PASSWORD"가 운영 체계(10)의 시스템 레지스트리 내에 나타나는 지를 묻는다. 어떤 패스워드도 아직 입력되지 않았다고 가정하면, 로드 프로그램은 컴퓨터가 단계 36으로 진행하도록 요구할 것이고, 중간 코드 "IC"를 표시할 것이다. 로드 프로그램은 또한 사용자가 패스워드 혹은 취소 응답을 입력함으로써 응답하는지에 대한 요청을 표시하도록 할 것이다.
로드 프로그램을 실행하는 컴퓨터는 단계 38로 진행할 것이고 패스워드가 입력됐는지 혹은 취소가 선택되었는지를 물을 것이다. 로드 프로그램이 처음 수행될 때 어떠한 패스워드도 사용자에게 제공되지 않으므로 사용자는 보통 취소를 입력할 것이라는 것이 이해될 것이다. 이것은 중단 단계 40으로 진행하도록 컴퓨터가 로드 프로그램을 실행하는 것을 고무할 것이다.
허가된 사용자는 컴퓨터 상에 설치될 특정한 응용 소프트웨어 프로덕트의 간단한 설명과 함께 소프트웨어 지원자에게 사용자의 컴퓨터 상에 나타나는 중간 코드를 향하도록 바람직하게 지시될 것이다. 응용 소프트웨어 프로덕트의 설명은 예컨데, 응용 소프트웨어 프로덕트의 타이틀일 수 있고 혹은 소프트웨어 지원자에 의해 제공될 수 있는 다른 소프트웨어로부터 특정한 응용 소프트웨어를 구별하는 임의의 다른 종류의 정보일 수도 있다.
도 3을 참조하면, 중간 코드의 수신 및 사용자로부터의 응용 소프트웨어의 설명에 응하여 소프트웨어 지원자에 의해 사용된 산출 과정의 순서도가 기술된다. 소프트웨어 지원자는 전술된 정보를 수동적으로 수신할 수 있거나 혹은 그것이 사용자의 컴퓨터와 직접 전달 링크를 갖는 컴퓨터 시스템에 의해 수신될 수 있고 이로써 사용자 컴퓨터로부터의 정보는 소프트웨어 제공자의 컴퓨터로 직접 전달 되는 것이 바람직할 것이다. 어떠한 경우에, 소프트웨어 제공자는 바람직하게 단계 50에서 중간 코드를 전달하는 사용자가 사실은 획득된 응용 소프트웨어 프로덕트 패키지의, 등록되고 허가된 사용자임을 증명하는 방식을 가질 것이다. 그들이 있는 경우에는, 소프트웨어 제공자가 사용자로부터 수신된 응용 소프트웨어 프로덕트의설명을 위해 대응하는 소프트웨어 프로덕트 ID를 찾도록 단계 52로 진행할 것이다. 이러한 소프트웨어 프로덕트 ID는 사용자에게 제공된 소프트웨어 프로덕트 내에 내장된 소프트웨어 프로덕트 ID와 동일할 것이다. 소프트웨어 지원자는 단계 54로 진행할 것이고 바람직하게는 사용자에 의해 로컬 산출 장치- 컴퓨터 시스템일 수 있음 -로 중간 코드를 입력할 것이다. 산출 시스템은 단계 56에서 "PASSWORD"를 산출할 것이다. PASSWORD의 산출된 값은 도 2a 및 도 2b의 로드 프로그램 내에서 "KEY"변수를 산출하는데 사용되는 함수 "f2"에 따를 것이다. 이러한 점에서, 수학적 알고리즘 "f2"는 중간 코드 IC 및 소프트웨어 프로덕트 ID의 함수일 것이다. 본 발명에 따르면, 소프트웨어 제공자는 그렇게 산출된 패스워드를 사용자에게 전달할 것이다. 미리 논의된 바와 같이, 이것은 사용자의 컴퓨터와 대화식 전달 링크 (interactive communication link)를 통해 이루어질 수 있다.
도 2a 및 도 2b를 다시 참조하면, 소프트웨어 제공자로부터 전달된 패스워드의 수신시, 사용자는 로드 프로그램 및 응용 소프트웨어를 사용자의 컴퓨터에 설치할 것이다. 이것은 로드 프로그램이 다시 단계 20을 수행하도록 고무할 것이고, 여기서 시작 시간 "T"가 운영 체계의 시스템 레지스트리 내에 저장되었는지를 묻는다. 시작 시간은 로드 프로그램의 첫 번째 혹은 초기 수행 동안 시스템 레지스트리로 미리 입력될 것이고, 사용자의 컴퓨터는 시작 시간 "T"를 판독하도록 단계 42로 진행할 것이다. 로드 프로그램을 실행하는 컴퓨터는 다음에 단계 26으로 진행할 것이고 운영 체계 ID를 판독하고, OS_ID 로서 저장할 것이다. 컴퓨터는 다시중간 코드, OS_ID의 함수로서 "IC" 및 판독 시작 시간 "T"를 단계 42로부터 산출할 것이다. 로드 프로그램은 다음에 컴퓨터가 소프트웨어 프로덕트 ID를 판독하도록 요구하고 단계 32에서 "KEY"를 산출하기 전에, SP_ID로서 저장할 것이다. "KEY"는 단계 30에서 판독된, 중간 코드 "IC" 및 소프트웨어 프로덕트 ID, SP_ID의 수학적 함수로서 산출된다는 것이 다시 주목될 것이다. 로드 프로그램을 실행하는 컴퓨터는 단계 34로 진행될 것이고 패스워드가 시스템 레지스트리로 입력되었는지의 여부를 물을 것이다. 사용자가 패스워드를 아직 입력하지 않았으므로, 컴퓨터는 단계 36으로 진행할 것이고, 산출된 중간 코드를 표시하고 패스워드의 입력을 요청할 것이다. 스크린 상에 보여질 때, 이러한 특정한 프롬프트에 패스워드를 입력하도록 사용자에게 지시될 것임이 이해될 것이다. 이것은 단계 38에서 패스워드의 입력을 주목하도록 컴퓨터가 로드 프로그램을 실행한 결과이다. 입력된 패스워드는 단계 44에서 시스템 레지스트리 내에 "PASSWORD"로 저장된다. 이것은 컴퓨터가 다시 단계 34로 진행하여 패스워드가 시스템 레지스트리에 있는지를 묻도록 고무할 것이다. 패스워드는 이제 시스템 레지스트리 내에 있지 않을 것으므로, 컴퓨터는 PASSWORD의 값이 단계 46에서 KEY의 값과 동일한지를 묻도록 단계 46으로 진행할 것이다. 동일한 변수, 즉 중간 코드, IC, 및 소프트웨어 프로덕트 ID, SP_ID에 대하여 동일한 수학적 함수 f2가 사용되었으므로, PASSWORD의 값은 KEY의 값과 동일해야 한다는 것이 이해될 것이다. 이것은 컴퓨터가 정규적으로 단계 48로 진행하도록 고무하고, 여기서 실행 허가는 소프트웨어 프로덕트 식별자 SP_ID를 갖는 소프트웨어 프로덕트를 위해 제공될 것이다.
단계 46을 다시 참조하면, 사용자가 로드 프로그램 및 응용 소프트웨어를 다른 컴퓨터에 로드하는 경우에, 시작 시간은 로드 프로그램이 먼저 설치된 동안 판정되었던 것과 동일하지 않을 것이다. 이러한 점에 있어서, 제2 컴퓨터가 동일한 시작 시간을 생성한다는 것은 상당히 불가능하다. 제2 컴퓨터는 또한 제1 컴퓨터에 있는 운영 체계와 동일한 정확한 카피를 갖지는 않을 것이다. 제2 컴퓨터에 있는 운영 체계의 카피는 그것에 할당된 다른 운영 체계 ID 번호를 가질 것이다. 이것은 서로 다른 "T" 및 OS_ID 모두의 값에 의거한 제2 컴퓨터에서 발생될 다른 중간 코드의 결과이다. 이것은 따라서 제2 컴퓨터에서 산출되는 KEY의 다른 값의 결과이다. 사용자에게 미리 제공된 패스워드를 입력하는 임의의 시도는 입력된 패스워드가 산출된 KEY와 동일하지 않은 결과이다. 이러한 것이 발생할 때, 로드 프로그램은 제2 컴퓨터 상에 로드 프로그램 및 수반하는 응용 소프트웨어 프로덕트를 설치하도록 시도하기 위해, 사용자가 포기할 때까지 단계 36-38, 44-46 사이 주변을 계속 순환할 것이다.
특정한 실별된 운영 체계를 실행하는 특정한 컴퓨터에 소프트웨어 프로덕트를 유일하게 시도하기 위한 과정을 구현하는 로드 프로그램의 바람직한 실시예가 개시됨이 이해될 것이다.
본 발명에 따르면, 타겟 컴퓨터에 매우 복잡한 알고리즘 혹은 임의의 추가적인 장치의 부착을 필요로 하지 않는 방법으로 단일 컴퓨터를 실행시키기 위해 소프트웨어의 조합을 생성한 이후에만 단지 어떠한 소프트웨어의 실행 시간 수행을 허가하는 소프트웨어 보안 메커니즘을 제공할 수 있다.
본 발명의 범주로부터 벗어나지 않는 한 개시된 과정에 변경 및 수정이 실시될 수도 있다. 특히, 로드 프로그램은 중간 코드를 산출하기 위한 준비에 있어서 운영 체계 ID 및 시스템 클럭 값을 주의하기 위해 약간 다른 단계를 포함할 수도 있다. 로드 프로그램은 또한 내부에서 산출된 KEY에 패스워드를 비교할 뿐만 아니라 사용자의 응답 및 패스워드의 입력을 고무하기 위한 다른 단계들을 포함할 수도 있다. 따라서, 앞선 설명은 단지 실시예를 통한 것이고, 본 발명은 다음 청구항에 의해 한정될 것이다.

Claims (8)

  1. 그 내부에 설치된 운영 체계를 갖는 컴퓨터 내에 설치될 컴퓨터 프로그램의 허가되지 않은 사용을 방지하는 방법에 있어서,
    상기 컴퓨터 프로그램이 먼저 설치된 시간에 의존하는 변수값을, 상기 컴퓨터 내에서 결정하는 단계;
    상기 컴퓨터 내에 설치된 상기 운영 체계의 식별자(identification)를, 상기 컴퓨터 내에서 판독하는 단계;
    상기 컴퓨터 프로그램이 설치된 시간에 의존하는 상기 변수 및 상기 운영 체계의 판독 식별자(read identification) 모두의 수학적 함수인 중간 코드를, 상기 컴퓨터 내에서 산출(computing)하는 단계;
    상기 컴퓨터 프로그램의 상기 중간 코드 및 비밀, 미리 할당된 식별자 모두의 선정된 수학적 함수인 패스워드를, 상기 컴퓨터로부터 외부에서 산출하고, 상기 컴퓨터에 상기 산출된 패스워드를 입력으로 전송(forwarding)하는 단계;
    상기 외부에서 산출된 패스워드와 비교될 키- 상기 키는 상기 패스워드를 외부에서 산출하도록 사용된 상기 컴퓨터 프로그램의 상기 중간 코드 및 상기 비밀, 미리 할당된 식별자의 상기 동일한 수학적 함수에 따라 산출됨 -를, 상기 컴퓨터 내에서 산출하는 단계; 및
    상기 패스워드가 상기 키와 동일한 경우에 상기 비밀, 미리 할당된 식별자를 갖는 상기 컴퓨터 프로그램의 상기 실행을, 상기 컴퓨터 내에서 허가하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 컴퓨터 프로그램이 설치되는 상기 시간에 의존하는 상기 변수값을 결정하는 상기 단계는,
    날짜의 선정된 시간으로부터 경과된 시간의 양을 한정하는 시스템 클럭을 판독하는 단계; 및
    상기 컴퓨터 프로그램이 설치된 상기 시간에 의존하는 상기 변수를 상기 시스템 클럭으로부터의 상기 판독 시간과 동일하게 설정하여, 상기 변수의 상기 한정된 값이 상기 중간 코드를 산출하는데 반복적으로 사용될 수 있는 단계
    를 포함하는 방법.
  3. 제1항에 있어서, 상기 키를 산출하기 전에, 상기 설치된 컴퓨터 프로그램 내에 내장된 위치로부터 상기 컴퓨터 프로그램의 상기 비밀, 미리 할당된 식별자를 판독하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 컴퓨터 프로그램이 패스워드를 외부에서 산출하는 상기 단계로 진행하기 전에 상기 컴퓨터 프로그램을 설치하고 사용하도록 허가하는 부분에 의해 설치될 것임을, 상기 컴퓨터로부터 외부에서 증명하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서, 상기 컴퓨터의 상기 사용자가 상기 컴퓨터로부터 상기 중간 코드를 먼 위치- 상기 패스워드의 외부 산출이 발생함 -로 전송할 수 있도록 하기 위해 상기 산출된 중간 코드의 값을, 상기 컴퓨터 내에서 표시하는 단계를 더 포함하는 방법.
  6. 로드 프로그램, 및 상기 로드 프로그램을 사용하여 컴퓨터 내에 설치될 컴퓨터 프로그램을 포함하는 매체에 있어서,
    상기 로드 프로그램의 초기 실행 동안 상기 컴퓨터 내에 있는 시스템 클럭에 의해 지시된 상기 시간을 판독하기 위한 지시;
    상기 판독 시간이, 상기 로드 프로그램이 실행되는 각 시간에 상기 로드 프로그램을 실행하는 상기 컴퓨터에 의해 사용될 수 있도록 하기 위해, 상기 판독 시간을 기억하기 위한 지시;
    상기 컴퓨터 내에 있는 상기 운영 체계의 식별자를 판독하기 위한 지시;
    상기 운영 체계의 상기 판독 시간 및 상기 판독 식별자의 함수로서 중간 코드를 산출하기 위한 지시; 및
    상기 컴퓨터 내에 설치될 상기 컴퓨터 프로그램의 상기 중간 코드 및 식별자의 함수인 키를 더 산출하기 위한 지시
    를 포함하는 매체.
  7. 제6항에 있어서, 상기 로드 프로그램은, 상기 산출된 키를 외부에서 입력된패스워드와 비교하고, 상기 산출된 키가 상기 외부에서 입력된 패스워드와 선정된 관계를 갖는 경우에 상기 컴퓨터 프로그램의 실행을 허가하기 위한 지시를 더 포함하는 매체.
  8. 제7항에 있어서, 상기 로드 프로그램이 설치된 상기 동일한 컴퓨터 상에서 상기 키가 산출된다면 상기 입력된 패스워드는 상기 산출된 키와 동일한 매체.
KR1020000074257A 1999-12-08 2000-12-07 소프트웨어 보안 메커니즘 KR100360996B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/456,354 US6742129B1 (en) 1999-12-08 1999-12-08 Software security mechanism
US09/456,354 1999-12-08

Publications (2)

Publication Number Publication Date
KR20010062220A KR20010062220A (ko) 2001-07-07
KR100360996B1 true KR100360996B1 (ko) 2002-11-21

Family

ID=23812426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000074257A KR100360996B1 (ko) 1999-12-08 2000-12-07 소프트웨어 보안 메커니즘

Country Status (5)

Country Link
US (1) US6742129B1 (ko)
EP (1) EP1107088A3 (ko)
KR (1) KR100360996B1 (ko)
CN (1) CN1305151A (ko)
SG (1) SG124231A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325065B1 (en) * 2001-12-21 2008-01-29 Aol Llc, A Delaware Limited Liability Company Identifying unauthorized communication systems using a system-specific identifier
US7587613B2 (en) * 2001-12-21 2009-09-08 Creative Mines Llc Method and apparatus for selectively enabling a microprocessor-based system
GB0221984D0 (en) * 2002-09-21 2002-10-30 Bitarts Ltd Software protection
US7962760B2 (en) * 2002-12-20 2011-06-14 The Invention Science Fund I Method and apparatus for selectively enabling a microprocessor-based system
US8881270B2 (en) 2002-12-20 2014-11-04 Creative Mines Llc Method and apparatus for selectively enabling a microprocessor-based system
US20040215278A1 (en) * 2003-04-25 2004-10-28 Wim Stegink Method and apparatus for locally upgrading implanted reprogrammable medical devices
US7602910B2 (en) * 2004-11-17 2009-10-13 Microsoft Corporation Password protection
JP4856182B2 (ja) * 2005-08-12 2012-01-18 エヌエックスピー ビー ヴィ ソフトウェアアプリケーションセキュリティ方法およびシステム
US7825908B2 (en) * 2006-08-08 2010-11-02 Carrier Corporation Method for resetting configuration on a touchscreen interface
KR101012872B1 (ko) 2009-09-16 2011-02-08 주식회사 팬택 플랫폼 보안 장치 및 방법
US8549314B2 (en) 2010-04-29 2013-10-01 King Saud University Password generation methods and systems
CN102547671B (zh) * 2010-12-08 2015-02-18 中国电信股份有限公司 对应用程序进行授权检测的方法和系统
CN102523338B (zh) * 2011-12-02 2014-01-29 鸿富锦精密工业(深圳)有限公司 具有解锁功能的手持终端及其解锁方法
EP2741444A1 (en) * 2012-12-10 2014-06-11 Gemalto SA Method for server assisted keystore protection
CN103049683B (zh) * 2012-12-18 2016-04-06 惠州市亿能电子有限公司 一种bms上位机程序授权保密方法
JP6340872B2 (ja) * 2014-03-31 2018-06-13 富士通株式会社 購入制御装置、購入制御方法及び購入制御プログラム
CN108256297B (zh) * 2016-12-29 2020-07-14 北京博瑞彤芸文化传播股份有限公司 软件的试用授权验证方法
EP3879422A1 (en) 2020-03-09 2021-09-15 Carrier Corporation Network identifier and authentication information generation for building automation system controllers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757907A (en) * 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
KR19980070252A (ko) * 1997-01-16 1998-10-26 가네꼬히사시 의사 난수 발생 회로 및 이를 채용한 데이터 통신 시스템
WO1999035786A1 (fr) * 1998-01-07 1999-07-15 Sony Corporation Systeme, dispositif et procede de traitement de donnees
WO2000058827A1 (fr) * 1999-03-30 2000-10-05 Sony Corporation Systeme de traitement d'informations

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796220A (en) 1986-12-15 1989-01-03 Pride Software Development Corp. Method of controlling the copying of software
US4908861A (en) * 1987-08-28 1990-03-13 International Business Machines Corporation Data authentication using modification detection codes based on a public one way encryption function
US4959861A (en) * 1988-07-13 1990-09-25 Howlette Edward L Security system for computer software
US5182770A (en) 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software
IL107044A0 (en) 1992-09-21 1993-12-28 Uniloc Singapore Private Ltd System for software registration
US5949882A (en) * 1996-12-13 1999-09-07 Compaq Computer Corporation Method and apparatus for allowing access to secured computer resources by utilzing a password and an external encryption algorithm
US5887131A (en) * 1996-12-31 1999-03-23 Compaq Computer Corporation Method for controlling access to a computer system by utilizing an external device containing a hash value representation of a user password
US5953422A (en) * 1996-12-31 1999-09-14 Compaq Computer Corporation Secure two-piece user authentication in a computer network
US6003136A (en) * 1997-06-27 1999-12-14 Unisys Corporation Message control system for managing message response in a kerberos environment
US6226744B1 (en) * 1997-10-09 2001-05-01 At&T Corp Method and apparatus for authenticating users on a network using a smart card
US6018712A (en) * 1997-12-19 2000-01-25 Pactong; Alberto Method and apparatus for remote program execution to use in computer software protection without the use of encryption
US6243816B1 (en) * 1998-04-30 2001-06-05 International Business Machines Corporation Single sign-on (SSO) mechanism personal key manager
US6275944B1 (en) * 1998-04-30 2001-08-14 International Business Machines Corporation Method and system for single sign on using configuration directives with respect to target types
US6178511B1 (en) * 1998-04-30 2001-01-23 International Business Machines Corporation Coordinating user target logons in a single sign-on (SSO) environment
US6389541B1 (en) 1998-05-15 2002-05-14 First Union National Bank Regulating access to digital content
US6282304B1 (en) * 1999-05-14 2001-08-28 Biolink Technologies International, Inc. Biometric system for biometric input, comparison, authentication and access control and method therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757907A (en) * 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
KR19980070252A (ko) * 1997-01-16 1998-10-26 가네꼬히사시 의사 난수 발생 회로 및 이를 채용한 데이터 통신 시스템
WO1999035786A1 (fr) * 1998-01-07 1999-07-15 Sony Corporation Systeme, dispositif et procede de traitement de donnees
WO2000058827A1 (fr) * 1999-03-30 2000-10-05 Sony Corporation Systeme de traitement d'informations

Also Published As

Publication number Publication date
SG124231A1 (en) 2006-08-30
EP1107088A3 (en) 2002-11-13
US6742129B1 (en) 2004-05-25
CN1305151A (zh) 2001-07-25
KR20010062220A (ko) 2001-07-07
EP1107088A2 (en) 2001-06-13

Similar Documents

Publication Publication Date Title
KR100360996B1 (ko) 소프트웨어 보안 메커니즘
US6223284B1 (en) Method and apparatus for remote ROM flashing and security management for a computer system
US6609199B1 (en) Method and apparatus for authenticating an open system application to a portable IC device
US9824194B2 (en) Application security framework
EP0932953B1 (en) Bios protected by a security processor
US6484262B1 (en) Network controlled computer system security
US9117082B2 (en) Authentications integrated into a boot code image
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US6728880B1 (en) Secure time on computers with insecure clocks
EP1023664B1 (en) Method and apparatus for enforcing software licenses
US7191464B2 (en) Method and system for tracking a secure boot in a trusted computing environment
US8185918B2 (en) Method and system for managing access to add-on data files
US20100011444A1 (en) Systems and Methods for Detecting A Security Breach in a Computer System
EP2013807B1 (en) Trusted platform field upgrade system and method
US20020087876A1 (en) Adaptive software installation process supporting multiple layers of security-related attributes
US7810074B2 (en) Information processing device, information processing system, and program
US7870376B2 (en) System, method and program product for controlling access to computer system
US7930527B2 (en) Information processing apparatus and time and date information change method
JP2002503365A (ja) 一意的にカスタマイズされ、認証かつ追跡可能なソフトウェア・アプリケーションのネットワーク化インストール方法およびシステム
JPH10269078A (ja) ソフトウエア流通方法およびサーバ装置およびクライアント装置
US9098677B2 (en) System and method for automated clock wind back recovery
AU2009213049B2 (en) Key protecting method and a computing apparatus
JP2004051056A (ja) 自動車用電子制御装置
JP5277935B2 (ja) ライセンス管理システム及び方法
KR20030036895A (ko) 소프트웨어 무단복제를 방지하는 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee