KR20040096583A - 소프트웨어 보호 방법 및 장치 - Google Patents

소프트웨어 보호 방법 및 장치 Download PDF

Info

Publication number
KR20040096583A
KR20040096583A KR10-2004-7012837A KR20047012837A KR20040096583A KR 20040096583 A KR20040096583 A KR 20040096583A KR 20047012837 A KR20047012837 A KR 20047012837A KR 20040096583 A KR20040096583 A KR 20040096583A
Authority
KR
South Korea
Prior art keywords
software
code
unit
lock unit
authorization
Prior art date
Application number
KR10-2004-7012837A
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 더글라스 런드홀름
Publication of KR20040096583A publication Critical patent/KR20040096583A/ko

Links

Classifications

    • 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/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]
    • 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/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Emergency Protection Circuit Devices (AREA)

Abstract

허가 협약에 의해 보호되는 소프트웨어(106)의 동시 사용자의 수를 제한하는 방법 및 장치가 제공된다. 소프트웨어가 워크스테이션(102)에 의해 활성화될 시에, 개시 요구는 소프트웨어에서 로크 유닛(108)으로 전송되며, 그 후, 로크 유닛에 접속되고, 소프트웨어에 대응하는 어떤 물리적 허가 유닛(110)이 자유 사용자 위치를 갖는 지가 조사된다. 자유 사용자 위치가 있을 경우에는 소프트웨어가 개시되지만, 자유 사용자 위치가 없을 경우에는 소프트웨어가 종료된다. 솔루션은 동시 사용자의 수가 허가 협약에 의해 보호되는 것을 초과할 수 없는 제어 및 보안성 증가 뿐만 아니라, 허가 협약의 간단한 업그레이드를 제공한다.

Description

소프트웨어 보호 방법 및 장치{A METHOD AND ARRANGEMENT FOR PROTECTING SOFTWARE}
상당량의 소프트웨어는, 개인용 컴퓨터, 또는 여기에 접속된 단말기를 가진 중앙 컴퓨터와 같은 컴퓨터에 설치 및 사용을 위해 시장에서 구입할 수 있다. 소프트웨어의 일부분은 또한 데이터 네트워크를 통해 중앙 서버에 접속된 컴퓨터로부터 접근 가능한 중앙 서버내에 설치될 수 있다. 이와 같은 소프트웨어 제품은 종종 소정수의 사용자가 판매된 소프트웨어를 사용하게 하는 허가와 함께 판매된다.
판매된 소프트웨어 제품의 사용을 제한하기 위해서는, 사전에 식별될 수 있는 특정수의 사용자 또는 사용자 그룹에 유효하도록 허가증을 발행할 수 있다. 예컨대, 허가증은, 학교 또는 회사에서와 같이, 사람의 수를 제한한 사용자 그룹에 유효할 수 있다. 사실상, 이것은, 제한된 수의 워크스테이션내의 소프트웨어를 동시에 사용하도록 허용된다는 것을 의미한다.
그러나, 판매된 소프트웨어 제품이 종종 허가 협약에 의해 보호되지 않는 사람, 즉 불법으로 사용되는 문제가 있다. 이것은, 불가능하지 않다면, 특정 지원 수단없이 판매 및 설치 후에 관리하기가 곤란하다. 또한, 판매된 많은 프로그램이 불법으로 쉽게 복제되어, 제어할 수 없는 범위까지 다수의 컴퓨터내에 설치되어, 추가적인 불법 사용을 유발시킬 수 있는 문제가 있다.
3D 처리 프로그램과 같은 값비싼 제품은 종종 판매된 소프트웨어 제품에 관련하여 허가를 수반한 소위 하드웨어 로크(locks)에 의해 불법 사용에 대해 보호된다. 이런 종류의 하드웨어 로크는, 보증된 사용자의 워크스테이션 또는 컴퓨터의 병렬 포트(parallel port)에 접속하기 위한 작은 박스와 같은 로크 유닛으로 구성된다. 보호 프로그램이 활성화될 시에, 프로그램은 병렬 포트를 먼저 조사할 필요가 있고, 유효 로크가 거기에서 발견되지 않으면, 프로그램은 개시될 수 없다. 프로그램을 개시하기 위해서는, 로크 유닛에 형성되는 개인 코드의 입력이 필요할 수도 있다.
그러나, 다수의 워크스테이션 또는 컴퓨터에서 다수의 사용자에게 허가된 덜 고가의 컴퓨터 프로그램은 통상적으로 이런 종류의 로킹 보호를 갖지 않는다. 이것은, 이와 같은 상당량의 로크 유닛이 대응하는 수의 워크스테이션 또는 사용자에 필요로 하여, 고가로 되게 한다는 사실에 기인한다. 더욱이, 매우 제한된 수의 로크 유닛만이 호환성 및 물리적 공간 양방에 대해 완전히 동일한 컴퓨터에 접속되어, 이 컴퓨터내의 다수의 보호 프로그램을 사용할 수 있도록 한다. 보통, 이런 종류의 로크 유닛은, 예컨대, 학교에서는 문제일 수 있는 권한 부여받지 않은 사람에 의해 쉽게 제거될 수 있는 결점이 있다.
로크 유닛없이, 소프트웨어는 소프트웨어 제작자 및 그것을 사용하는 고객간의 허가 협약에 의해서만 보호된다. 네트워크내의 제품을 동시에 이용하는 사용자의 수를 외부에서 검사하기가 곤란하므로, 회사는, 예컨대, 특정수의 사용자에게 유효한 허가에 대한 대금을 지불하여, 사실상 보다 많은 사용자가 제품을 불법으로 이용하게 할 수 있다. 소프트웨어 제작자로부터의 검사자가 회사를 방문하여 사용을 체크할 경우, 회사에서의 데이터 관리자는, 예컨대, 사용을 단지 일시적으로 쉽게 제한하여, 보다 많은 불법적인 사용자의 수를 다시 찾을 수 있다.
따라서, 판매된 소프트웨어 제품의 사용을, 발행된 허가 협약이 유효한 사용자 또는 사용자 그룹으로 제한하는 문제가 있다.
본 발명은 허가된 소프트웨어를 불법 사용 및/또는 복제로부터 보호하는 방법 및 장치에 관한 것이다.
본 발명은 첨부한 도면을 참조로 아래에 더욱 상세히 기술된다.
도 1은 한 실시예에 따른 데이터 네트워크의 개략적인 블록 다이어그램이다.
도 2는 다른 실시예에 따른 컴퓨터 프로그램과 로크 유닛 간의 개략적인 신호 다이어그램이다.
도 3은 다른 실시예에 따른 데이터 네트워크의 개략적인 블록도이다.
도 4는 다른 실시예에 따른 컴퓨터 프로그램과 로크 유닛 간의 개략적인 신호 다이어그램이다.
본 발명의 목적은 유효한 허가 협약이 미치지 않는 곳에서 소프트웨어 제품의 불법 사용을 방지하는 해결책을 획득하기 위한 것이다. 특히, 본 발명은 허가에 의해 보호되는 소프트웨어 제품이 허가에 의해 보호되는 사용자보다 더 많은 수의 사용자에 의해 사용되지 못하게 하는 것이다.
본 발명의 다른 목적은 허가된 소프트웨어 제품의 제어되지 않은 복제를 방지하기 위한 것이다.
이런 목적 및 다른 목적은, 동시 사용자의 수를, 허가에 의해 보호되고, 다수의 네트워크 접속 워크스테이션에서 활성화될 수 있는 소프트웨어로 제한하는 방법 및 장치를 제공함으로써 획득된다. 소프트웨어가 워크스테이션에 의해 활성화될 시에, 개시 요구는 소프트웨어에서 네트워크 접속 로크 유닛으로 전송되며, 보호 소프트웨어와 관련된 하나 이상의 물리적 허가 유닛은 로크 유닛에 접속되고, 사용자 위치의 제한된 수를 갖는다. 그 후, 로크 유닛에 접속되고, 소프트웨어에 대응하는 어떤 허가 유닛이 자유(free) 사용자 위치를 갖는 지가 조사된다. 자유 사용자 위치가 있을 경우에는 소프트웨어가 개시되지만, 자유 사용자 위치가 없을 경우에는 소프트웨어가 종료된다.
자유 허가 유닛을 결정하기 위해서는, 고유 식별 코드가 로크 유닛에 접속되는 허가 유닛의 각각에서 판독될 수 있는데, 여기서, 소프트웨어에 대응하는 하나 이상의 허가 유닛은 식별되고, 어떤 식별 허가 유닛이 자유 사용자 위치를 갖는 지가 조사된다. 그 후, 판독된 식별 코드의 리스트는 로크 유닛으로부터 소프트웨어로 전송될 수 있고, 새로운 리스트는 작성되어 로크 유닛으로 전송될 수 있으며, 이 로크 유닛은 허용된 최대수의 사용자를 각 식별된 허가 유닛에 부여하는 최대수와 함께 식별된 허가 유닛의 식별 코드를 포함한다. 그 후, 로크 유닛은 이와 같은 최대수의 각각을 현재 대응하는 허가 유닛에 점유된(occupied) 사용자 위치의 수와 비교할 수 있다.
로크 유닛은, 접속되는 허가 유닛에 관한 정보 및, 현재 각 허가 유닛내에 점유된 대응하는 사용자 위치의 수에 관한 정보를 유지할 수 있다.
소프트웨어는 로크 유닛으로 전송되는 난수 등을 생성시킬 수 있으며, 여기서, 로크 유닛은 이 난수를 다시 소프트웨어로 전송하여, 소프트웨어를 개시할 수 있도록 자유 사용자 위치가 발견됨을 나타내도록 한다.
전송된 데이터를 도청으로부터 보호하기 위해서는, 공중 암호화 키가 로크 유닛으로부터 소프트웨어로 전송되는 곳에서 암호화를 사용할 수 있고, 난수는 소프트웨어에 의해 생성된 세션 키로 암호화되며, 세션 키는 공중 키로 암호화되고, 난수 및 세션 키는 암화화 메시지로서 소프트웨어로부터 로크 유닛으로 전송된다. 이에 의해, 로크 유닛은 세션 키를 공중 키에 대응하는 개인 키로 해독한 후, 난수를 세션 키로 해독할 수 있다.
어떠한 자유 사용자 위치도 어떤 허가 유닛에서 발견되지 않을 경우, 로크 유닛은 이 사실을 나타내도록 잘못된 난수를 소프트웨어로 전송하여, 소프트웨어를 종료하도록 한다.
소프트웨어의 사용이 초기화되면, 로크 유닛은 소프트웨어의 개시 시간을 등록하여, 대응하는 사용자 위치의 점유 기간이 체크되어 제한될 수 있도록 할 수 있다. 워크스테이션이 활동적인 트랙을 유지하여 허가 유닛내의 사용자 위치를 점유하기 위해, 로크 유닛은 임시 식별 코드를 워크스테이션에 지정할 수 있고, 이 워크스테이션은 현재 개시 시간과 함께 로크 유닛내에 보관된다. 그 후, 로크 유닛은 또한 워크스테이션의 임시 식별 코드를 통해 소프트웨어로 전송한다.
이 소프트웨어는, 소정의 시간 구간(T) 후에 갱신(renewal) 메시지를 로크 유닛에 전송하고, 지정된 임시 식별 코드를 포함함으로써, 취해진 사용자 위치를 정규적으로 갱신할 수 있다.
다른 실시예에 따르면, 하나 이상의 자유 사용자 위치를 가진 소프트웨어와 관련된 허가 유닛를 먼저 선택함으로써 보안성이 증가될 수 있고, 그 후, 하나 이상의 부호 코드(MAC)는 소프트웨어에 의해 알려진 하나 이상의 파라미터에 기초하여 작성되어, 로크 유닛으로부터 소프트웨어로 전송된다. 그리고 나서, 소프트웨어는 대응하는 부호 코드를 국부적으로 작성하고, 이 코드는 수신된 부호 코드와 비교된다. 이 소프트웨어는, 수신되어 국부적으로 작성된 부호 코드가 서로 일치할 경우에는 개시되고, 수신되어 국부적으로 작성된 부호 코드가 서로 일치하지 않을 경우에는 종료된다.
허가 유닛은, 로크 유닛(L)에 의해 생성되어 전송되는 리스트(l'1)으로부터 소프트웨어에 의해 선택될 수 있고, 로크 유닛에 접속되는 모든 허가 유닛에 대한 고유 식별 코드 및, 각 허가 유닛에 대해, 얼마나 많은 사용자가 현재 활동하고, 허가 유닛내의 사용자 위치를 점유하는 가에 관한 정보를 포함할 수 있다.
상기 부호 코드(MAC)는, 소프트웨어와의 통신에 지정된 세션 코드(SID), 소프트웨어와의 통신이 일어났을 시에 클록 시간을 식별하는 작성된 타임스탬프(TM) 및 현재 활동 사용자의 수(AA)와 함께 소프트웨어로 전송될 수 있다.
상기 부호 코드(MAC)는, 다음의 파라미터, 즉, 선택된 허가 유닛의 판독 가능 식별 코드(AID), 허가 유닛의 숨겨진 식별 코드(DAID), 로크 유닛의 판독 가능 식별 코드(LID), 로크 유닛의 숨겨진 식별 코드(DLID), 로크 유닛의 기능의 기능 코드(PLID), 소프트웨어에 생성되어 전송되는 난수(st1), 세션 코드(SID), 타임스탬프(TM) 및 현재 사용자의 수(AA) 중 하나 이상에 기초하여 작성될 수 있다.
AID 코드와 DAID 코드 간의 관계는 DAID 코드가 AID 코드로부터 유도될 수 있도록 소프트웨어에서 사전에 결정될 수 있다. 더욱이, LID 코드와 DLID 코드 간의 관계는 DLID 코드가 LID 코드로부터 유도될 수 있도록 소프트웨어에서 사전에결정될 수 있다.
상기 부호 코드(MAC)는 제 1 부호 코드(MAC1) 및 제 2 부호 코드(MAC2)를 포함할 수 있는데, MAC1은 st1, SID, AID, AA, TM, LID, DLID 및 PLID 중 하나 이상에 기초로 하고, MAC2는 st1, SID, TM, AA, AID 및 DAID 중 하나 이상에 기초로 한다.
소프트웨어는, 소정의 시간 구간(T) 후에 갱신 메시지를 로크 유닛에 전송하고, 지정된 세션 코드(SID) 및 신규 생성된 난수(st2)를 포함함으로써, 취해진 사용자 위치를 자주 갱신할 수 있다. 이에 의해, 로크 유닛은, 소프트웨어, 사용된 허가 유닛 및 최후에 보관된 타임스탬프(TM)를 이용하여 워크스테이션을 식별하여, 계속 사용이 허용될 수 있는 지를 결정할 수 있다.
신규 타임스탬프(TM')는 현재 시간점에 대응하여 작성될 수 있고, 제 3 부호 코드(MAC3)는 작성되어, 로크 유닛으로부터 소프트웨어로 전송될 수 있으며, 여기서, MAC3는 st1, SID, TM, TM', AID 및 DAID 중 하나 이상에 기초로 한다.
본 발명은 네트워크에 기초하는데, 이는, 허가 협약에 의해 보호되는 소프트웨어 제품이 로컬 네트워크, 인트라넷 또는 인터넷와 같은 네트워크를 통해 특정 중앙 로크 유닛에 접속된 워크스테이션 또는 컴퓨터 내에 사용될 수 있다는 것을 의미한다. 이것은 솔루션을 특히 관심을 끌게 하는데, 그 이유는 허가 보호되는 소프트웨어가 보통 개인용 컴퓨터를 네트워크내에 서로 접속한 회사 및 학교로 판매되기 때문이다.
다음에서, 용어 "워크스테이션"은, 사용자가 네트워크를 통해 통신하여 보호 소프트웨어를 활성화시킬 수 있는 모든 타입의 단말기, 스테이션 또는 개인용 컴퓨터를 보호하는데 이용된다. 보호 소프트웨어는, 워크스테이션으로부터 접근 가능한 컴퓨터 또는 서버 내에 중심으로 설치되거나, 각 워크스테이션내에 국부적으로 설치되는 어떠한 타입의 컴퓨터 프로그램일 수 있다.
도 1에는, 다수의 워크스테이션(102)을 접속한 데이터 네트워크(100)가 도시된다. 또한, 이 도면에는 컴퓨터 프로그램과 같은 보호 소프트웨어(106)를 설치한 데이터 네트워크(100)에 접속된 서버(104)가 도시된다. 소프트웨어(106)는 접근 가능하고, 다수의 워크스테이션(102)으로부터 활성화될 수 있으며, 제한되고 미리 정해진 수의 사용자에 유효한 허가 협약에 의해 보호된다. 상술한 바와 같이, 보호 소프트웨어(106)는 선택적으로 워크스테이션(102) 내에 국부적으로 설치될 수 있다.
중앙 로크 유닛(108)은 또한 데이터 네트워크(100)에 접속되고, 이 데이터 네트워크(100)는, 허가 협약에 따라, 사용을 제어하여, 보호 소프트웨어(106)의 동시 사용자의 수를 제한하는데 이용될 수 있다. 로그 유닛(108)은 사실상 네트워크를 접속한 프로그램 가능한 컴퓨터를 포함할 수 있다. 사용자의 수를 제어하기 위해, 로그 유닛(108)에는 분리 가능한 물리적 허가 유닛(110)의 임의의 수가 구비되며, 이 유닛(110)의 각각은, 아래에 더욱 상세히 기술되는 바와 같이, 미리 정해진 수의 워크스테이션(102)으로부터 보호 소프트웨어(106)를 사용할 수 있다. 따라서, 로크 유닛에 접속되는 허가 유닛(110)의 수는 허가 협약에 의해 보호되는 워크스테이션의 수에 대응한다.
각 허가 유닛(110)은, 판독 가능한 고유 식별 코드, 또는 협약 식별(AID), 일련 번호 등을 포함하는 작고 매우 간단한 물리적 유닛이며, 이는 카드, 칩 등에 번(burn)될 수 있다. 따라서, 고유 식별 코드는 소프트웨어(106) 및 허가 협약과 관련되어 있고, 하나 이상의 워크스테이션(102)에서 소프트웨어의 사용을 허용하며, 이 소프트웨어는 허가 협약에 따라 사전에 결정된다.
로크 유닛(108)에 대한 기본 하드웨어는, 예컨대, 컴파니 달라스 세미컨덕터에 의해 생산되는 "TINI"(Tiny Internet Interface)라고 시장에서 이미 알려진 제품으로 구성될 수 있다. 더욱이, 허가 유닛(110)은, 예컨대, 동일한 회사에 의해 생산되는 "iButtons"이라고 하는 소형 전자 버튼으로 구성될 수 있으며, 이 버튼의 각각은 레이저 번트 고유 일련 번호를 포함한다. 오늘날, 이들 버튼은 종종 도어등에 대한 전자 키로서 사용된다. 그러나, 본 발명은 로크 유닛(108) 및/또는 허가 유닛(110)의 어떤 특정 설계로 제한되지 않아, 더 이상 기술되지 않는다.
간략하게는, 본 발명의 로크 장치는 다음과 같은 방식으로 동작한다. 로크 유닛(108)은, 예컨대, 소프트웨어(106)의 설치에 관련하여 사전에 프로그램되어, 현재 소프트웨어(106)를 이용하여 워크스테이션(102)의 리스트를 유지하고, 사용 기간 동안에 "점유된" 것으로서 대응 허가 유닛(110)을 등록하도록 한다. 각 허가 유닛(110)은, 허가 협약이 어떻게 구성된 가에 따라, 하나 이상의 사용자 사이트를 포함할 수 있다. 각 허가 유닛(110)은 어떤 지정된 워크스테이션(102) 또는 지정되지 않은 워크스테이션(102)의 특정수에 더 유효할 수 있다. 이런 종류의 허가 유닛(110)은 또한 협약에 의해 보호되는 다수의 프로그램에 사용될 수 있다. 보호 소프트웨어(106)는, 다음의 것에 따라, 이용 가능하기 전에, 로크 유닛(108)과 함께 체크 루틴를 먼저 실행한다.
사용자가 먼저 워크스테이션(102)으로부터 보호 소프트웨어(106)를 활성화할 시에, 소프트웨어(106)는 개시 요구를 로크 유닛(108)에 전송한다. 그 후, 소프트웨어(106)에 대응하는 어떤 허가 유닛(110)이 로크 유닛(108)에 접속되어, 자유 사용자 위치를 갖는 지가 조사되거나, 모든 사용자 위치가 현재 다른 워크스테이션에 의해 점유되는 지가 조사된다. 소프트웨어(106)에 대한 어떤 허가 유닛(110)에 자유 사용자 위치가 있을 경우, 소프트웨어(106)는 워크스테이션(102)에서 사용하기 위해 개시될 수 있다. 그러나, 소프트웨어와 관련된 허가 유닛(110)이 점유된 것으로 등록되었을 경우, 또는 소프트웨어와 관련된 어떤 허가 유닛도 발견되지 않을경우, 소프트웨어(106)는 그 자체가 종료한다.
따라서, 이런 장치에 의해 보호되는 소프트웨어(106)를 개시 및 사용을 위해, 로크 유닛(108)은 상기 제어 루틴에서 상호 작용하는 특정 컴퓨터 프로그램을 포함하는 데이터 네트워크(100)내에 이용 가능해야 한다. 허가가 접속된 허가 유닛(110) 및 고유 식별 코드와 관련된 소프트웨어(106)가 요구된다. 예컨대, 회사는 소프트웨어 제품으로의 액세스를 획득하기 위해 원하는 허가의 수의 허가 유닛(110)을 구입하여 접속할 수 있다. 그 후, 이런 종류의 허가 유닛(110)은 하나 이상의 허가 협약에 상응할 수 있으며, 여기서, 각 협약은 접속된 허가 유닛의 수가 감소될 수 있도록 하나 이상의 사용자 또는 워크스테이션을 포함한다. 또한, 필요하다면, 추가적인 허가 유닛(110)을 로크 유닛(108)에 접속함으로써, 요구 시에 보호 소프트웨어에 대한 추가적인 허가를 부가할 수 있다. 그러나, 이것은, 어떤 경우에, 보호 소프트웨어가 부가된 허가 유닛(110)으로 갱신되도록 할 필요가 있다. 또한, 허가 유닛(110)의 수를 대응하는 방식으로 감소시킬 수 있다.
더욱이, 제품과 관련된 하나 이상의 허가 유닛(110)이 접속됨을 확인하기 위해, 소프트웨어 제작자는, 로크 유닛(108)에 의해 데이터 네트워크(100)를 통해 허가 유닛(110)을 체크함으로써, 제품을 보호할 수 있다. 허용된 수의 사용자만이 현재 소프트웨어(106)를 이용하여 현재 허가 유닛(110)내의 사용자 위치를 점유하는 워크스테이션의 유지된 리스트에 의해 제품을 동시에 사용할 수 있도록 로크 유닛(108)는 프로그램된다. 이와 같이, 회사가 대금을 지불한 사용자의 수만이 이 제품을 동시에 사용할 수 있다. 자유 사용자 위치를 가진 어떤 허가 유닛도 발견되지않는다면, 소프트웨어(106)는 종료한다.
제어 루틴 동안에 워크스테이션(102)과 로크 유닛(108) 사이로 전송된 데이터는 바람직하게는 또한 암호화에 의해 보호될 수 있다. 이는 아래에 더 기술된다. 이를 위해, 암호화 방법은 세션 키 및 공중/개인 키 양방으로 사용될 수 있다.
세션 키는, 예컨대, 데이터 전송을 위해 하나의 세션 동안에만 사용되고, 전송자와 수신자 양방에 의해 알려질 필요가 있는 특정 길이의 랜덤하게 선택된 수이다. 이와 같은 키의 이점은 데이터 암호화가 비교적 고속으로 실행될 수 있다는 것이다. 메시지의 해독을 할 수 있도록 수신자로 전송되는 키는 그 자체가 도중에 어떤 사람에 의한 가로채기(interception)를 방지하도록 암호화되어, 완전한 메시지를 판독할 수 있어야 한다. 이를 위해, 공중 키가 비밀로 유지되는 개인 키와 함께 사용될 수 있다. 세션 키를 암호화하기 위해, 공중 키는 전송자에 의해 사용되는 반면에, 개인 키는 해독을 위해 수신자에 의해 사용된다. 따라서, 세션 키는 실제 메시지를 암호화하지만, 공중 키는 세션 키를 암호화하여, 개인 키를 가진 수신자를 제외하고, 메시지를 모든 사람에게 판독할 수 없게 한다.
도 2를 참조하면, 본 발명이 제 1 실시예에 따라 사용될 수 있는 방법에 대해 더욱 상세한 예가 아래에 기술된다. 도 2는 보호 컴퓨터 프로그램(P)와 중앙 네트워크 접속 로크 유닛(L) 간의 신호 다이어그램을 도시한 것이다. 사실상, 컴퓨터 프로그램(P)는 허가 협약에 의해 보호되는 어떤 소프트웨어일 수 있다. 간략화를 위해, 신호가 공동 데이터 네트워크를 통해 워크스테이션과 로그 유닛(L) 사이에서 물리적으로 전송되도록, 프로그램(P)는 다른 네트워크 접속 워크스테이션내에 국부적으로 설치되는 것으로 추정된다. 그러나, 도 1에 도시된 바와 같이, 프로그램(P)는 선택적으로 워크스테이션에 접근 가능한 서버내에 중심으로 설치될 수 있다.
프로그램(P)은 허가 유닛이 관련된 정보 뿐만 아니라 대응하는 사용자 위치의 수를 포함한다. 그 다음, 로크 유닛은 접속되는 허가 유닛에 관한 정보 및, 현재 각 허가 유닛내에 점유된 대응하는 사용자 위치의 수에 관한 정보를 유지한다.
프로그램(P)가 워크스테이션에 의해 활성화될 시에, 개시 요구(SF)는, 제 1 단계(200)에서, 프로그램의 설치 중에 지정되는 로크 유닛(L)으로 전송된다. 데이터 네트워크에 접속되고, 네트워크 어드레스에 의해 식별되는 다수의 그런 로크 유닛이 있을 수 있다. 개시 요구에 응답하여, 로크 유닛(L)은, 로크 유닛에 접속되는 각 허가 유닛 상에서 일련 번호와 같은 고유 식별 코드를 판독하여, 이들 식별 코드의 리스트(l1)를 작성한다. 따라서, 각 로크 유닛은 다수의 보호 컴퓨터 프로그램과 관련된 허가 유닛을 포함할 수 있다. 완전 동일한 허가 유닛은 다수의 컴퓨터 프로그램에 대한 사용자 위치를 더 포함할 수 있다.
로크 유닛은 공중 암호화를 위한 신규 키의 쌍을 생성시키도록 더 프로그램된다. 이런 키의 생성은 시간이 소비되어, 바람직하게는 배경에서 연속적으로 진행하는데, 그 이유는 고 임의 소수(prime numbers)가 안전한 키의 쌍을 작성하기 위해 생성되어야 하기 때문이다. 로크 유닛내의 프로세서에 따라, 필요한 계산이 실행을 위해 수 시간 걸릴 수 있다. 신규 키가 생성되면, 그것은 어떤 도청자가 공중 키로부터 개인 키를 크랙(crack)하기 위해 관리하기 전에, 적어도 얼마의 시간 동안, 전송된 정보의 보안을 유지하는데 사용될 수 있다.
다음 단계(202)에서, 접속된 모든 허가 유닛의 리스트(l1)는, 최후 생성된 공중 키(pn)와 함께, 로크 유닛(L)으로부터 컴퓨터 프로그램(P)으로 전송된다. 로크 유닛(L)만이 대응하는 개인 키를 가지므로, 공중 키(pn)로 암호화된 데이터는 로크 유닛(L)에 의해서만 해독될 수 있다.
그 다음, 프로그램(P)은 이와 관련된 리스트(l1)내의 허가 유닛을 식별한다. 이들로부터, 프로그램(P)은, 각 허가 유닛에 대해 허용된 사용자의 최대수를 나타내는 최대수와 함께 관련된 허가 유닛의 식별을 포함하는 새로운 리스트(l2)를 작성한다. 이와 같이 관련된 어떤 허가 유닛도 리스트(l1)에서 발견되지 않을 경우, 보호 프로그램(P)은 자동으로 워크스테이션에서 종료된다.
새로운 리스트(l2)가 작성되었을 시에, 프로그램(P)은 세션 키(sn1) 및 특정 난수(st1) 등을 더 생성시키며, 이들은, 아래에 기술되는 바와 같이, 프로그램이 개시되는 것을 확인하기 위해 나중에 사용된다.
리스트(l2) 및 난수(st1)는, 예컨대, TEA(Tiny Encryption Algorithm)라 하는 알고리즘에 따라, 세션 키(sn1)로 암호화된다. 그 후, 세션 키(sn1)는, 예컨대, RSA(Rivest, Shamir, Adleman)라 하는 알고리즘에 따라, 공중 키(pn)로 암호화된다. 그 후, 다음 단계(204)에서, 리스트(l2), 난수(st1) 및 세션 키(sn1)는, 프로그램(P)으로부터의 암호화 메시지로서 로크 유닛으로 다시 전송되며, 여기서, 로크 유닛(L)은 세션 키(sn1)를 개인 키로 해독하고나서, 잔여 메시지를 세션 키(sn1)로 해독할 수 있다.
프로그램 및 최대수에 관련된 허가 유닛의 해독 리스트(l2)에 의해, 로크 유닛(L)은, 허가 유닛에 허용된 최대수로서 프로그램(P)에 의해 주어진 최대수보다 적은 사용자 량으로 현재 채워지는 어떤 접속된 허가 유닛을 갖는 지를 조사한다. 그 다음, 로크 유닛은 이와 같은 최대수의 각각을 대응하는 허가 유닛에 현재 점유되는 사용자 위치의 수와 비교한다. 자유 사용자 위치를 가진 어떤 허가 유닛도 발견되지 않을 경우, 선택적인 단계(206a)에서, 로크 유닛(L)은 잘못된 난수(st)(에러)를 프로그램(P)으로 재전송하도록 프로그램되어, 자동으로 종료된다. 그러나, 하나 이상의 자유 사용자 위치를 가진 허가 유닛이 접속되는 경우, 현재 워크스테이션은 허가 유닛에 대한 활동 리스트에 부가됨으로써, 로크 유닛은 사용자 위치가 이제 점유됨을 알게 된다.
로크 유닛(L)은, 대응하는 사용자 위치의 점유 기간이 체크되어 제한될 수 있도록 개시 시간을 등록한다. 그 후, 사용자 위치는 소정의 시간 후에 자동으로 해제되거나, 워크스테이션이 그의 사용을 빈번한 구간에서 갱신시킬 시에 남아있을 수 있으며, 이는 아래에 더욱 상세히 설명된다. 그 다음, 선택적인 단계(206b)에서, 정확히 해독된 난수(st1)는 프로그램(P)으로 전송되어, 워크스테이션에서의 사용을 위해 개시될 수 있다.
워크스테이션이 활동적인 트랙을 유지하여, 허가 유닛내의 사용자 위치를 점유하기 위해, 로크 유닛(L)은 바람직하게는 또한 임시 식별 코드(TID)를 워크스테이션에 지정하여, 현재 개시 시간 및 워크스테이션의 세션 키(sn1)와 함께 로크 유닛(L)내에 보관된다. TID 코드는 또한 단계(206b)에서 프로그램(P)로 전송되며, 여기서, TID 코드는 로그 유닛(L) 및 프로그램(P)만이 TID 코드를 판독할 수 있도록 세션 키(sn1)로 암호화된다.
그 후, 프로그램(P)은 로크 유닛이 여전히 사용되는 지에 관해 갱신되도록 취해진 사용자 위치를 갱신시킬 수 있다. 따라서, 미리 정해진 시간 구간(T), 예컨대, 1 분 후에, 단계(208)에서, 프로그램(P)은 갱신 메시지를 로크 유닛(L)으로 전송하고, 예컨대, 해독 포맷의 지정된 TID 코드를 포함할 뿐만 아니라, 양자 모두 이전의 세션 키(sn2)로 암호화된 신규 난수(st2) 및 신규 생성된 세션 키(sn2)를 포함한다. 이런 키의 변경으로 오랜 시간 주기 동안에 키의 보안이 유지된다. 허가받지 않은 사람이 공중 키를 크랙(crack)하도록 관리하여, 제 1 세션 키를 검색할 지라도, 이와 같은 키의 변경을 제각기 가로채기하여 최후 유효 세션 키를 폭로할 필요가 있다.
수신된 TID 코드에 의해, 로크 유닛(L)은, 단계(204) 후에 양자 모두 저장되는 프로그램(P) 뿐만 아니라 대응하는 이전의 세션 키(sn1)를 이용하여 워크스테이션을 식별할 수 있으며, 여기서, 신규 세션 키(sn2) 및 난수(st2)는 이전의 세션 키(sn1)에 의해 해독될 수 있다. 선택적으로, 난수(st2)는 신규 세션 키(sn2)로 암호화될 수 있다. 신규 개시 시간은 등록되고, 신규 세션 키(sn2)는 보관된다. 선택적인 단계(206a, 206b)와 유사하게도, 단계(208)에서 주어진 TID 코드가 로크 유닛(L)내에서 발견되는 지에 따라, 선택적인 단계(210a 또는 210b)에서 정확하거나 잘못된 난수는 프로그램(P)로 재전송된다. 선택적인 단계(210b)에서 정확한 난수(st2)가 수신될 경우에는 프로그램(P)이 활동적이고, 선택적인 단계(210a)에서 잘못된 난수(st)(에러)가 수신될 경우에는 프로그램(P)이 자동으로 종료된다. 또한 어떤 난수나 응답도 특정 시간 한계내에서 수신되지 않을 경우에는 프로그램(P)이 자동으로 종료할 수 있다.
따라서, 단계(208 및 210b)는 프로그램(P)을 계속 사용하도록 특정 시간 구간에서 반복될 수 있다. 보안성을 더욱 높이기 위하여, 신규 TID 코드는 프로그램(P)이 갱신을 전송할 때마다 로크 유닛(L)에 의해 작성되어, 단계(210b)에서 프로그램(P)으로 전송될 수 있으며, 이는 도시되어 있지 않다.
또한, 로크 유닛(L) 자체가, 프로그램(P)에 관련되고, 자유 사용자 위치를 가진 어떤 허가 유닛이 발견되는 지를 조사하도록, 도 2에 기술된 절차를 수정할 수 있다. 이 경우에, 프로그램(P)은 식별되고, 로크 유닛(L)은 각 허가 유닛이 유효하고, 최대수가 대응하는 사용자 위치에 허용되는 어느 양방의 프로그램을 등록할 필요가 있다. 이에 의해, 리스트(l1및 l2)의 전송은 제각기 단계(202 및 204)에서 생략될 수 있다. 그 후, 양호한 보안성을 획득을 하기 위해, 프로그램(P)의 식별은 암호화 형식으로 전송되어야 한다.
상술한 바와 같이, 프로그램(P)와 로크 유닛(L) 사이로 전송되는 메시지의 암호화를 이용하는 대신에, 또는 이 암호화에 대한 보수(complement)로서, 선택적인 실시예에 따라 신호 절차가 이용될 수 있다. 도 3은 이에 따라 로크 유닛(108) 및 접속된 허가 유닛(110)의 선택적인 실시예를 예시한 것이다. 그렇지 않으면, 도 1과 동일한 참조 번호가 도 3의 대응하는 소자에 이용된다. 이 실시예에서, 허가 유닛(110)에는, 예컨대, 마이크로컴퓨터 및 통신 유닛을 포함하는 칩의 형태로, 데이터를 처리하여 로크 유닛(108)으로 전송하는 수단이 제공된다. 더욱이, 각 허가 유닛(110)에는, 외부로부터 판독 가능한 대응하는 허가 협약에 대한 식별 코드(AID) 및, 또한 외부로부터 판독될 수 없지만, 원래의 코드가 상실될 경우에 신규 코드에 의해서만 중복 기재(overwrite)되는 숨겨진 식별 코드(DAID) 양방이 제공된다. AID 코드와 DAID 코드 간의 관계는 사전에 프로그램(P)에 설정됨으로써, 예컨대, 알고리즘 또는 테이블에 의해 AID 코드로부터 DAID 코드를 유도할 수 있도록 한다.
또한, 로크 유닛(108)에는, 판독 가능한 식별 코드(LID) 뿐만 아니라, 숨겨진 식별 코드(DLID)가 제공되며, 또한 로크 유닛의 기능을 특별히 식별하는 추가적인 기능 코드(PLID)가 제공되며, 이들은 바람직하게는 로크 유닛의 프로그램된 프로그램 또는 소프트웨어 코드로부터 유도될 수 있다. 예컨대, 코드(LID, DLID 및 PLID)는, 로크 유닛(108)내의 내부 메모리 내에 저장되거나, 도 3의 점선으로 표시된 바와 같이, 허가 유닛(110)과 동일한 타입일 수 있는 로크 유닛(108)에 접속된개별 식별 유닛(300) 내에 저장될 수 있다. 이 실시예에서, 이들 코드(AID, DAID, LID, DLID 및 PLID)는, 다음과 같이, 허가 유닛(110) 및 로크 유닛(108)이 위조(fake)되지 않도록 보호하고, 전송 메시지를 보호하기 위해, 부호 절차로 이용될 수 있다.
각 허가 유닛(110)은, 제공된 데이터에 의해, 숨겨진 코드(DAID)를 포함하는 MAC(Message Authentication Code)라 하는 부호 코드를 작성할 수 있다. 이 코드는 리버스(reverse)될 수 없다. 즉, 이와 같은 코드에 의해 숨겨진 식별 코드를 발견할 수 없다.
DAID 코드 이외에, MAC 코드는 리버스할 수 없는 어떤 정보를 포함할 수 있으며, 이 정보는 MAC 코드를 작성하는 요구와 관련하여 로크 유닛으로부터 전송된다.
프로그램(P)이 AID 코드에 의해 DAID 코드를 작성할 수 있으므로, 프로그램(P)은 마찬가지로 로컬 MAC* 코드를 작성할 수 있다. 로컬 MAC*와, 허가 유닛(110)에 의해 작성된 MAC를 비교하여, 로크 유닛(108)을 통해 프로그램(P)으로 전송함으로써, 허가 유닛이 인증된 여부가 결정될 수 있다. 로크 유닛이 프로그램(P)으로 전송되는 MAC 코드내에 데이터를 매입(embed)할 경우, 이것은 또한 전송된 데이터가 인증된 여부를 결정할 수 있다.
유사한 신호 절차가 또한, LID 코드 및 DLID 코드와, 선택적으로 또한 PLID 코드를 이용함으로써, 로크 유닛(108)의 인증을 확실히 하는데 이용될 수 있다. LID 코드와 DLID 코드와, 또한 PLID 코드 간의 관계는 또한 사전에 프로그램(P)에설정됨으로써, 이들 코드는 대응하여 유도될 수 있다. 따라서, 로크 유닛의 식별은 또한, 로크 유닛 내에 보관된 정보와 함께, 프로그램(P)으로 전송되고, 허가 유닛(110)에 대한 것과 유사한 방식으로 체크되는 MAC 코드의 형태로 부호화될 수 있다.
도 4를 참조하면, 다른 양호한 실시예에 따라, 본 발명이 이용되는 방법에 대해 기술된다. 도 2와 마찬가지로, 도 4는 보호 프로그램(P)과 로크 유닛(L) 간의 신호 다이어그램을 도시한 것이다. 물론, 여기서, 프로그램(P)은 또한 워크스테이션내에 국부적으로 설치되거나 서버내에 중심으로 설치될 수 있다. 프로그램(P)은 허가 유닛이 관련된 정보 뿐만 아니라, 대응하는 사용자 위치의 수에 관한 정보를 포함한다. 로크 유닛은 접속되는 허가 유닛에 관한 정보 뿐만 아니라, 현재 허가 유닛내에 점유되는 대응하는 사용자 위치의 수에 관한 정보를 유지한다.
프로그램(P)이 워크스테이션내에서 활성화되면, 제 1 단계(400)에서, 개시 요구(SF)는 로크 유닛(L)으로 전송된다. 개시 요구에 응답하여, 로크 유닛(L)은, 로크 유닛(L)에 접속되는 모든 허가 유닛에 대한 고유 식별 코드, 이 경우에는 AID 코드의 리스트(l'1)를 생성시킨다. 이 실시예에서, 각 허가 유닛에 대해, 리스트(l'1)는 또한 얼마나 많은 사용자가 현재 활동적이고, 이에 의해 허가 유닛내의 사용자 위치를 점유하는 가에 관한 정보를 포함한다.
다음 단계(402)에서, 리스트(l'1)는, LID 코드와 함께 로크 유닛(L)으로부터 프로그램(P)으로 전송되어, 이 프로그램과 관련된 리스트(l'1)내의 허가 유닛을 식별한다. 그 다음, 프로그램(P)은, 하나 이상의 자유 사용자 위치, 즉, 허용된 최대수(AAmax) 보다 적은 현재 활동 사용자의 수(AA)를 가진 프로그램과 관련된 허가 유닛을 선택한다. 자유 위치를 가진 하나 이상의 그런 허가 유닛이 리스트(l'1)에서 발견되면, 그들 중 하나는 임의로 선택될 수 있다. 그러나, 자유 위치와 관련된 어떤 허가 유닛도 발견되지 않으면, 보호 프로그램(P)은 워크스테이션에서 자동으로 종료된다.
프로그램(P)이 부착한 AID 코드를 가진 허가 유닛을 선택하면, 그것은, 아래에 기술되는 바와 같이, 고유 부호 코드를 작성할 시에 사용하는 제 1 난수(st1)를 더 생성시킨다.
그 후, 다음 단계(404)에서, 선택된 허가 유닛의 AID 코드 및 난수(st1)는 프로그램(P)으로부터 로크 유닛(L)으로 전송된다. 그 다음, 로크 유닛(L)은 프로그램(P)과의 통신을 식별하는 세션 코드(SID) 뿐만 아니라, 이런 통신이 일어나는 크록 시간을 식별하는 타임스템프(TM)를 작성한다. 더욱이, 로크 유닛(L)은 접속된 허가 유닛에 대한 SID 코드의 활동 리스트를 유지한다. 따라서, 현재 SID 코드는 부착 AID 코드를 가진 선택된 허가 유닛에 대한 활동 리스트에 부가되며, 여기서, SID 코드 및 타임스탬프(TM)는 보관되어, 결과적으로 현재 허가 유닛의 사용자의 수(AA)가 1씩 증가된다.
그 다음, 한 쌍의 부호 코드(MAC1및 MAC2)를 작성할 시에, 로크 유닛(L)은 부호 절차에 의해 이런 통신 뿐만 아니라 로크 유닛의 인증을 확인할 것이다. 따라서, 제 1 부호 코드(MAC1)는 로크 유닛에 의해 작성되고, 다음의 파라미터, 즉, 수신된 난수(st1), 세션 코드(SID), 허가 유닛의 AID 코드, 현재 사용자의 수(AA), 작성된 타임스탬프(TM) 뿐만 아니라, 로크 유닛의 식별 코드(LID, DLID 및 PLID) 중 하나 이상에 기초한다. 실제 구현 시에, MAC1코드는, 이와 같이 사용될 경우에 로크 유닛(L)에 접속된 개별 식별 유닛(300)에서 작성되거나, 로크 유닛에서 내부적으로 작성될 수 있다.
대응하여, 제 2 부호 코드(MAC2)는 허가 유닛에 의해 작성되고, 다음의 파라미터, 즉, 난수(st1), 세션 코드(SID), 타임스탬프(TM), 사용자의 수(AA) 뿐만 아니라, 로크 유닛 자체의 식별 코드(AID 및 DAID) 중 하나 이상에 기초한다. MAC1및 MAC2는 상술한 파라미터 중 하나 이상을 포함할 경우에 사전 설정된 알고리즘에 의해 작성될 수 있다. 바람직하게는, 어떤 응용에서는 몇몇 파라미터가 충분할 수 있지만, 상기 리스트된 파라미터의 모두가 최대 보안을 제공하는데 이용된다. 따라서, 다음의 것이 양호한 경우에 적용한다:
MAC1= (st1, SID, AID, AA, TM, LID, DLID, PLID)
MAC2= (st1, SID, TM, AA, AID 및 DAID)
다시 도 4를 참조하면, 2개의 부호 코드(MAC1및 MAC2), SID 코드, 타임스탬프(TM) 및 사용자의 수(AA)는 다음 단계(406)에서 프로그램(P)로 전송된다. 이런정보가 수신되었다면, 프로그램(P)은, 허가 유닛 및 식별 유닛에서와 동일한 방식으로, 대응하는 부호 코드(MAC1* 및 MAC2*)를 국부적으로 작성한다. 이것은, 제각기, SID, TM 및 AA이 명백한 언어로 수신되고, AIS, LID 및 PLID가 이미 프로그램내에 저장되며, 그리고 DAID 및 DLID가 AID 및 LID로부터 유도될 수 있기 때문에, 가능하다. 더욱이, 프로그램에 의해 생성된 난수(st1)가 포함되어, 이 통신에 고유한 부호 코드를 작성한다.
그 후, 프로그램(P)에 의해 국부적으로 작성된 부호 코드(MAC1* 및 MAC2*)는 제각기 수신된 부호 코드(MAC1및 MAC2)와 비교되며, 여기서 프로그램은 그들이 ㄴ서로 일치하지 않을 경우에 자동으로 종료된다. 한편, 국부적으로 작성된 부호 코드가 수신된 코드와 일치할 경우, 프로그램(P)은 개시되어 사용될 수 있다. 더욱이, 부호화되어 확실히 인증된 현재의 사용자의 수(AA)는 코드(AID)에 의해 식별되는 협약에 대한 최대 사용자의 수(AAmax)와 비교될 수 있다. 사용자의 수(AA)는 또한 신규 추가된 사용자를 포함하여, 결과적으로 AA가 AAmax 보다 클 경우에는 프로그램을 종료시킨다. 그렇지 않으면, 프로그램(P)은 워크스테이션에서 사용하기 위해 개시될 수 있다.
이전의 실시예에서와 같이, 로크 유닛(L)은, 예컨대, 타임스탬프(TM)를 이용하여, 프로그램 사용의 개시 시간을 등록함으로써, 대응하는 사용자 위치의 점유 기간을 체크하여 제한할 수 있다.
또한, 이 실시예에서, 프로그램은 허가 유닛 상의 취해진 사용자 위치를 자주 갱신함으로써, 로크 유닛(L)이 계속 사용할 시에 갱신된다. 따라서, 미리 정해진 시간 구간(T) 후에, 단계(408)에서, 프로그램(P)은 갱신 메시지를 로크 유닛(L)으로 전송하고, 지정된 세션 코드(SID) 및 신규 생성된 난수(st2)를 포함한다. 수신된 SID 코드에 의해, 로크 유닛(L)은, 계속 사용을 허용해야 하는 지를 결정하기 위해, 프로그램(P), 현재 AID 코드 및 최후 보관된 타임스탬프(TM)를 이용하여 워크스테이션을 식별할 수 있다.
그 후, 로크 유닛(L)은 사용자의 리스트 내에 보관되는 현재의 시점에 대응하는 신규 타임스탬프(TM')를 작성하여, 이전의 타임스탬프(TM)를 신규 타임스탬프(TM')로 대체하도록 한다. 이런 통신을 부호화하고, 사용된 허가 유닛이 로크 유닛(L)에 여전히 접속되는 것을 보증하기 위해, 제 3 부호 코드(MAC3)는, 다음의 파라미터, 즉, 수신된 난수(st2), SID 코드, 이전의 타임스탬프(TM), 신규 타임스탬프(TM'), 뿐만 아니라 현재 허가 유닛에 대한 AID 코드 및 DAID 코드 중 하나 이상, 바람직하게는 모두에 기초하여, 허가 유닛(L)내에 작성된다. 따라서, 다음과 같은 것이 양호한 경우에 적용한다.
MAC3= (st2, SID, TM, TM', AID, DAID)
그러나, 로그 유닛(L)이 사용자의 리스트에서 세션 번호(SID)를 발견하지 못하거나, AID 코드에 대응하는 허가 유닛이 더 이상 접속되지 않음을 발견한다면, 선택적인 단계(410a)에서 에러 메지지(FM)는 프로그램(P)로 재전송된다. 에러 메지지(FM)에 응답하여, 프로그램은, 자동으로 종료되어야 하는 지를 선택하거나, 단계(404)로부터 동일한 AID가 사용될 수 있거나, 단계(400)로부터 신규 AID가 요구될 경우, 절차를 반복함으로써 신규 사용자 위치를 점유하기를 시도한다. 그렇지 않으면, 선택적인 단계(410b)에서, 부호 코드(MAC3) 및 타임스탬프(TM')는 프로그램(P)으로 전송되어, 워크스테이션에서 활동적으로 남을 수 있다. 더욱이, 프로그램(P)이 활동적으로 되거나 자동으로 종료되는 지를 결정하기 위해, 프로그램(P)은 대응하는 부호 코드(MAC3*)를 작성하여, MAC1및 MAC2에 대한 방식과 동일한 방식으로, 부호 코드(MAC3*)를 수신된 부호 코드(MAC3)와 비교한다. 그러나, 더욱 간단한 실시예에서, 로크 유닛(L)은, 단계(410b)에서, 연속 사용을 승인하는 메시지를 전송한다.
이 실시예에서, 프로그램(P)은 또한, 단계(408)에서 갱신 메시지를 전송한 후에 특정 시간 주기 내에서 로크 유닛(L)으로부터 어떤 응답도 수신되지 않을 경우에 자동으로 종료될 수 있다.
단계(408 및 410)는 또한 프로그램(P)의 계속 사용을 위한 특정 시간 구간에서 반복될 수 있다. 보안성을 더욱 증가시키기 위해, 신규 SID 코드는, 프로그램(P)이 갱신 요구를 전송할 때마다 로크 유닛(L)에 의해 작성되어, 단계(410b)에서 프로그램(P)으로 전송될 수 있으며, 이는 도시되어 있지 않다. 더욱이, 신규 SID 코드 및 이전의 SID 코드 양방은 허가 유닛(L)에 의해 작성되는 제 3 부호 코드(MAC3)내에 파라미터로서 포함될 수 있다.
본 발명은, 제어 및 보안성 증가, 중앙 집중식 관리 및 감독, 자유 병렬 포트 뿐만 아니라, 허가 및 허가 수의 간단한 업그레이드에 의해 보호 소프트웨어의 사용자에게 이득을 제공한다. 동시 사용자의 수가 고객이 대금을 지불한 허가 협약을 초과할 수 없으므로, 소프트웨어 제작자에 대한 명백한 이득은 잠재적으로 더 높은 허가 수입을 갖는다. 더욱이, 필요한 장비는 비교적 값싸고, 다루기가 간편하다.
당연히, 상술한 실시예의 다양한 변경 및 조합은 이들에 의해 제한되지 않는 본 발명의 범주내에서 가능하다. 예컨대, 도 2 및 도 4에 기술된 단계는 원하고, 적절한 보안 레벨에 따라 변화될 수 있다. 상기에 사용된 "난수"의 개념은 물론 숫자 및/또는 문자와 같은 하나 이상의 선택적 캐릭터를 사용할 수 있도록 변화될 수 있다.

Claims (20)

  1. 허가 협약에 의해 보호되고, 다수의 네트워크 접속 워크스테이션에 의해 활성화될 수 있는 소프트웨어의 동시 사용자의 수를 제한하는 방법에 있어서,
    1) 상기 소프트웨어가 워크스테이션에 의해 활성화될 시에, 개시 요구를 소프트웨어에서 네트워크 접속 로크 유닛으로 전송하는 단계로서, 보호 소프트웨어와 관련된 하나 이상의 물리적 허가 유닛은 로크 유닛에 접속되고, 사용자 위치의 제한된 수를 갖는 단계,
    2) 상기 로크 유닛에 접속되고, 상기 소프트웨어에 대응하는 어떤 허가 유닛이 자유 사용자 위치를 갖는 지를 조사하는 단계,
    3) 자유 사용자 위치가 단계 2)에서 발견될 경우에는 상기 워크스테이션내에서 사용하기 위한 소프트웨어를 개시하는 단계 및,
    4) 어떤 자유 사용자 위치도 단계 2)에서 발견되지 않을 경우에는 소프트웨어를 종료하는 단계를 포함하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  2. 제 1 항에 있어서,
    상기 단계 2)는,
    5) 상기 로크 유닛에 접속되는 각 허가 유닛 상의 고유 식별 코드를 판독하는 단계,
    6) 상기 소프트웨어에 대응하는 하나 이상의 허가 유닛을 식별하는 단계 및,
    7) 단계 6)에서 식별된 어떤 허가 유닛이 자유 사용자 위치를 갖는 지를 조사하는 단계를 포함하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  3. 제 2 항에 있어서,
    상기 단계 5)에서 판독된 식별 코드의 리스트는 상기 로크 유닛으로부터 소프트웨어로 전송되고, 신규 리스트는 작성되어 로크 유닛으로 전송되는데, 상기 로크 유닛은 허용된 최대수의 사용자를 각 식별된 허가 유닛에 부여하는 최대수와 함께 단계 6)에서 식별된 허가 유닛의 식별 코드를 포함하고, 이와 같은 최대수의 각각을 현재 대응하는 허가 유닛에 점유된 사용자 위치의 수와 비교하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  4. 제 3 항에 있어서,
    상기 로크 유닛은, 접속되는 허가 유닛에 관한 정보 및, 현재 각 허가 유닛내에 점유된 대응하는 사용자 위치의 수에 관한 정보를 유지하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 소프트웨어는 상기 로크 유닛으로 전송되는 난수 등을 생성시킬 수 있는데, 상기 로크 유닛은 이 난수를 다시 상기 소프트웨어로 전송하여, 상기 소프트웨어를 단계 3)에서 개시할 수 있도록 자유 사용자 위치가 단계 2)에서 발견되는 지를 나타내는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  6. 제 5 항에 있어서,
    공중 암호화 키는 상기 로크 유닛으로부터 소프트웨어로 전송되고, 상기 난수는 상기 소프트웨어에 의해 생성된 세션 키로 암호화되며, 상기 세션 키는 공중 키로 암호화되고, 상기 난수 및 세션 키는 암화화 메시지로서 상기 소프트웨어로부터 상기 로크 유닛으로 전송됨으로써, 상기 로크 유닛은 세션 키를 공중 키에 대응하는 개인 키로 해독한 후, 상기 난수를 세션 키로 해독할 수 있는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    어떠한 자유 사용자 위치도 단계 2)에서 발견되지 않을 경우, 상기 로크 유닛은 이 사실을 나타내도록 잘못된 난수를 상기 소프트웨어로 전송함으로써, 상기 소프트웨어가 단계 4)에서 종료되는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 로크 유닛은 단계 3)에서 소프트웨어의 개시 시간을 등록함으로써, 대응하는 사용자 위치의 점유 기간이 체크되어 제한될 수 있는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  9. 제 8 항에 있어서,
    상기 로크 유닛은, 워크스테이션이 활동적인 트랙을 유지하여 허가 유닛내의 사용자 위치를 점유하기 위해, 임시 식별 코드를 현재 개시 시간과 함께 로크 유닛내에 보관되는 워크스테이션에 지정하는데, 상기 로크 유닛은 또한 상기 워크스테이션의 임시 식별 코드를 통해 상기 소프트웨어로 전송하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  10. 제 9 항에 있어서,
    상기 소프트웨어는, 미리 정해진 시간 구간(T) 후에 갱신 메시지를 상기 로크 유닛에 전송하고, 지정된 임시 식별 코드를 포함함으로써, 취해진 사용자 위치를 정규적으로 갱신하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    하나 이상의 자유 사용자 위치를 가진 소프트웨어와 관련된 허가 유닛이 선택되고, 하나 이상의 부호 코드(MAC)는 상기 소프트웨어에 의해 알려진 하나 이상의 파라미터에 기초하여 작성되어, 상기 로크 유닛으로부터 상기 소프트웨어로 전송되며, 상기 소프트웨어는 수신된 부호 코드와 비교되는 대응하는 부호 코드를 국부적으로 작성하는데, 상기 소프트웨어는, 수신되어 국부적으로 작성된 부호 코드가 서로 일치할 경우에는 개시되고, 수신되어 국부적으로 작성된 부호 코드가 서로 일치하지 않을 경우에는 종료되는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  12. 제 11 항에 있어서,
    상기 허가 유닛은, 상기 소프트웨어에 의해, 로크 유닛(L)에 의해 생성되어 전송되는 리스트(l'1)으로부터 선택되고, 상기 로크 유닛에 접속되는 모든 허가 유닛에 대한 고유 식별 코드 및, 각 허가 유닛에 대해, 얼마나 많은 사용자가 현재 활동하여, 상기 허가 유닛내의 사용자 위치를 점유하는 가에 관한 정보를 포함하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 부호 코드(MAC)는, 상기 소프트웨어와의 통신에 지정된 세션 코드(SID), 상기 소프트웨어와의 통신이 일어났을 시에 클록 시간을 식별하는 작성된 타임스탬프(TM) 및 현재 활동 사용자의 수(AA)와 함께 상기 소프트웨어로 전송되는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  14. 제 13 항에 있어서,
    상기 부호 코드(MAC)는, 다음의 파라미터, 즉, 선택된 허가 유닛의 판독 가능 식별 코드(AID), 허가 유닛의 숨겨진 식별 코드(DAID), 로크 유닛의 판독 가능 식별 코드(LID), 로크 유닛의 숨겨진 식별 코드(DLID), 로크 유닛의 기능의 기능 코드(PLID), 상기 소프트웨어에 생성되어 전송되는 난수(st1), 세션 코드(SID), 타임스탬프(TM) 및 현재 사용자의 수(AA) 중 하나 이상에 기초하여 작성되는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  15. 제 14 항에 있어서,
    상기 AID 코드와 DAID 코드 간의 관계는 상기 DAID 코드가 상기 AID 코드로부터 유도될 수 있도록 사전에 상기 소프트웨어에서 결정되고, 상기 LID 코드와 DLID 코드 간의 관계는 상기 DLID 코드가 상기 LID 코드로부터 유도될 수 있도록 사전에 상기 소프트웨어에서 결정되는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  16. 제 14 항 또는 제 15 항에 있어서,
    상기 부호 코드(MAC)는 제 1 부호 코드(MAC1) 및 제 2 부호 코드(MAC2)를 포함하는데, MAC1은 st1, SID, AID, AA, TM, LID, DLID 및 PLID 중 하나 이상에 기초로 하고, MAC2는 st1, SID, TM, AA, AID 및 DAID 중 하나 이상에 기초로 하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  17. 제 16 항에 있어서,
    상기 소프트웨어는, 소정의 시간 구간(T) 후에 갱신 메시지를 로크 유닛에 전송하고, 지정된 세션 코드(SID) 및 신규 생성된 난수(st2)를 포함하여, 취해진 사용자 위치를 자주 갱신함으로써, 상기 로크 유닛은, 소프트웨어, 사용된 허가 유닛 및 최후에 보관된 타임스탬프(TM)를 이용하여 워크스테이션을 식별하여, 계속 사용이 허용될 수 있는 지를 결정할 수 있는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  18. 제 17 항에 있어서,
    신규 타임스탬프(TM')는 현재 시간점에 대응하여 작성되고, 제 3 부호 코드(MAC3)는 작성되어, 상기 로크 유닛으로부터 소프트웨어로 전송되는데, MAC3는 st1, SID, TM, TM', AID 및 DAID 중 하나 이상에 기초로 하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 방법.
  19. 허가 협약에 의해 보호되고, 다수의 네트워크 접속 워크스테이션에 의해 활성화될 수 있는 소프트웨어의 동시 사용자의 수를 제한하는 장치에 있어서,
    선택적인 수의 물리적 허가 유닛이 접속될 수 있는 네트워크 접속 로크 유닛으로서, 각 허가 유닛은 제한된 수의 사용자 위치를 가지고, 고유 식별 코드를 구비하며, 하나 이상의 허가 협약과 관련되는 네트워크 접속 로크 유닛,
    상기 소프트웨어가 워크스테이션에 의해 활성화될 시에 개시 요구를 상기 로크 유닛으로 전송하는 소프트웨어,
    상기 로크 유닛에 접속되고, 상기 소프트웨어에 대응하는 어떤 허가 유닛이 자유 사용자 위치를 갖는 지를 조사하는 수단,
    자유 사용자 위치가 있을 경우에 상기 워크스테이션내에서 사용하기 위한 소프트웨어를 개시하는 수단 및,
    자유 사용자 위치가 없을 경우에는 소프트웨어를 종료하는 수단을 포함하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 장치.
  20. 제 19 항에 있어서,
    상기 로크 유닛은, 접속되는 허가 유닛에 관한 정보 및, 현재 각 허가 유닛내에 점유된 대응하는 사용자 위치의 수에 관한 정보를 유지하는 것을 특징으로 하는 소프트웨어의 동시 사용자의 수를 제한하는 장치.
KR10-2004-7012837A 2002-02-19 2003-02-19 소프트웨어 보호 방법 및 장치 KR20040096583A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0200484A SE524778C2 (sv) 2002-02-19 2002-02-19 Förfarande och arrangemang för att skydda mjukvara för otillbörlig användning eller kopiering
SE0200484-4 2002-02-19
PCT/SE2003/000276 WO2003071404A1 (en) 2002-02-19 2003-02-19 A method and arrangement for protecting software

Publications (1)

Publication Number Publication Date
KR20040096583A true KR20040096583A (ko) 2004-11-16

Family

ID=20287008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7012837A KR20040096583A (ko) 2002-02-19 2003-02-19 소프트웨어 보호 방법 및 장치

Country Status (11)

Country Link
US (1) US20050160049A1 (ko)
EP (1) EP1485769B1 (ko)
JP (1) JP2005518041A (ko)
KR (1) KR20040096583A (ko)
CN (1) CN1633632A (ko)
AT (1) ATE306689T1 (ko)
AU (1) AU2003206561A1 (ko)
CA (1) CA2476465A1 (ko)
DE (1) DE60301872D1 (ko)
SE (1) SE524778C2 (ko)
WO (1) WO2003071404A1 (ko)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2862149A1 (fr) * 2003-11-06 2005-05-13 France Telecom Procede de controle automatique des fraudes dans un systeme de transactions electroniques
US7113765B2 (en) * 2004-01-13 2006-09-26 Qualcomm Inc. System and method for allowing user based application licensing across multiple wireless communications devices
CN102468969A (zh) * 2010-10-29 2012-05-23 北大方正集团有限公司 一种客户端注册数量的控制方法及系统
DE102013108713B8 (de) * 2013-08-12 2016-10-13 WebID Solutions GmbH Verfahren zum Verifizieren der ldentität eines Nutzers
RU2587422C2 (ru) 2013-12-27 2016-06-20 Закрытое акционерное общество "Лаборатория Касперского" Способ и система автоматического управления лицензиями
US11574621B1 (en) * 2014-12-23 2023-02-07 Amazon Technologies, Inc. Stateless third party interactions
JP6287964B2 (ja) * 2015-06-09 2018-03-07 株式会社デンソー ソフトウェア複製防止システム
DE112016003268T8 (de) * 2015-07-20 2018-05-24 Google Llc Systeme, Verfahren und Medien für Mediensitzungs-Parallelitätsmanagement mit wiederkehrenden Lizenzerneuerungen
US10546444B2 (en) 2018-06-21 2020-01-28 Capital One Services, Llc Systems and methods for secure read-only authentication
US10680824B2 (en) 2018-10-02 2020-06-09 Capital One Services, Llc Systems and methods for inventory management using cryptographic authentication of contactless cards
US10909527B2 (en) 2018-10-02 2021-02-02 Capital One Services, Llc Systems and methods for performing a reissue of a contactless card
WO2020072670A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
JP2022508010A (ja) 2018-10-02 2022-01-19 キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー 非接触カードの暗号化認証のためのシステムおよび方法
US10582386B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072552A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10949520B2 (en) 2018-10-02 2021-03-16 Capital One Services, Llc Systems and methods for cross coupling risk analytics and one-time-passcodes
US10565587B1 (en) 2018-10-02 2020-02-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3113590A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
SG11202101874SA (en) 2018-10-02 2021-03-30 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US10771254B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for email-based card activation
US10579998B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
KR20210068028A (ko) 2018-10-02 2021-06-08 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
CA3115084A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10511443B1 (en) 2018-10-02 2019-12-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771253B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10489781B1 (en) 2018-10-02 2019-11-26 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10542036B1 (en) 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
US10554411B1 (en) 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
JP2022502891A (ja) 2018-10-02 2022-01-11 キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニーCapital One Services, LLC 非接触カードの暗号化認証のためのシステムおよび方法
AU2019354421A1 (en) 2018-10-02 2021-04-29 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10505738B1 (en) 2018-10-02 2019-12-10 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3115064A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10733645B2 (en) 2018-10-02 2020-08-04 Capital One Services, Llc Systems and methods for establishing identity for order pick up
US11210664B2 (en) 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
US10607214B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10607216B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072474A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11361302B2 (en) 2019-01-11 2022-06-14 Capital One Services, Llc Systems and methods for touch screen interface interaction using a card overlay
US11037136B2 (en) 2019-01-24 2021-06-15 Capital One Services, Llc Tap to autofill card data
US10510074B1 (en) 2019-02-01 2019-12-17 Capital One Services, Llc One-tap payment using a contactless card
US11120453B2 (en) 2019-02-01 2021-09-14 Capital One Services, Llc Tap card to securely generate card data to copy to clipboard
US11082229B2 (en) 2019-03-18 2021-08-03 Capital One Services, Llc System and method for pre-authentication of customer support calls
US10643420B1 (en) 2019-03-20 2020-05-05 Capital One Services, Llc Contextual tapping engine
US10984416B2 (en) 2019-03-20 2021-04-20 Capital One Services, Llc NFC mobile currency transfer
US10535062B1 (en) 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US10970712B2 (en) 2019-03-21 2021-04-06 Capital One Services, Llc Delegated administration of permissions using a contactless card
US11521262B2 (en) 2019-05-28 2022-12-06 Capital One Services, Llc NFC enhanced augmented reality information overlays
US10516447B1 (en) 2019-06-17 2019-12-24 Capital One Services, Llc Dynamic power levels in NFC card communications
US11392933B2 (en) 2019-07-03 2022-07-19 Capital One Services, Llc Systems and methods for providing online and hybridcard interactions
US11694187B2 (en) 2019-07-03 2023-07-04 Capital One Services, Llc Constraining transactional capabilities for contactless cards
US10871958B1 (en) 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
US10713649B1 (en) 2019-07-09 2020-07-14 Capital One Services, Llc System and method enabling mobile near-field communication to update display on a payment card
US10885514B1 (en) 2019-07-15 2021-01-05 Capital One Services, Llc System and method for using image data to trigger contactless card transactions
US10733601B1 (en) 2019-07-17 2020-08-04 Capital One Services, Llc Body area network facilitated authentication or payment authorization
US11182771B2 (en) 2019-07-17 2021-11-23 Capital One Services, Llc System for value loading onto in-vehicle device
US10832271B1 (en) 2019-07-17 2020-11-10 Capital One Services, Llc Verified reviews using a contactless card
US11521213B2 (en) 2019-07-18 2022-12-06 Capital One Services, Llc Continuous authentication for digital services based on contactless card positioning
US10506426B1 (en) 2019-07-19 2019-12-10 Capital One Services, Llc Techniques for call authentication
US10541995B1 (en) 2019-07-23 2020-01-21 Capital One Services, Llc First factor contactless card authentication system and method
KR20220071211A (ko) 2019-10-02 2022-05-31 캐피탈 원 서비시즈, 엘엘씨 비접촉식 레거시 자기 스트라이프 데이터를 사용한 클라이언트 디바이스 인증
US11615395B2 (en) 2019-12-23 2023-03-28 Capital One Services, Llc Authentication for third party digital wallet provisioning
US10862540B1 (en) 2019-12-23 2020-12-08 Capital One Services, Llc Method for mapping NFC field strength and location on mobile devices
US10885410B1 (en) 2019-12-23 2021-01-05 Capital One Services, Llc Generating barcodes utilizing cryptographic techniques
US11113685B2 (en) 2019-12-23 2021-09-07 Capital One Services, Llc Card issuing with restricted virtual numbers
US11651361B2 (en) 2019-12-23 2023-05-16 Capital One Services, Llc Secure authentication based on passport data stored in a contactless card
US10733283B1 (en) 2019-12-23 2020-08-04 Capital One Services, Llc Secure password generation and management using NFC and contactless smart cards
US10657754B1 (en) 2019-12-23 2020-05-19 Capital One Services, Llc Contactless card and personal identification system
US10664941B1 (en) 2019-12-24 2020-05-26 Capital One Services, Llc Steganographic image encoding of biometric template information on a card
US11200563B2 (en) 2019-12-24 2021-12-14 Capital One Services, Llc Account registration using a contactless card
US10853795B1 (en) 2019-12-24 2020-12-01 Capital One Services, Llc Secure authentication based on identity data stored in a contactless card
US10909544B1 (en) 2019-12-26 2021-02-02 Capital One Services, Llc Accessing and utilizing multiple loyalty point accounts
US10757574B1 (en) 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US11038688B1 (en) 2019-12-30 2021-06-15 Capital One Services, Llc Techniques to control applets for contactless cards
US10860914B1 (en) 2019-12-31 2020-12-08 Capital One Services, Llc Contactless card and method of assembly
US11455620B2 (en) 2019-12-31 2022-09-27 Capital One Services, Llc Tapping a contactless card to a computing device to provision a virtual number
US11210656B2 (en) 2020-04-13 2021-12-28 Capital One Services, Llc Determining specific terms for contactless card activation
US11222342B2 (en) 2020-04-30 2022-01-11 Capital One Services, Llc Accurate images in graphical user interfaces to enable data transfer
US10915888B1 (en) 2020-04-30 2021-02-09 Capital One Services, Llc Contactless card with multiple rotating security keys
US10861006B1 (en) 2020-04-30 2020-12-08 Capital One Services, Llc Systems and methods for data access control using a short-range transceiver
US11823175B2 (en) 2020-04-30 2023-11-21 Capital One Services, Llc Intelligent card unlock
US11030339B1 (en) 2020-04-30 2021-06-08 Capital One Services, Llc Systems and methods for data access control of personal user data using a short-range transceiver
US10963865B1 (en) 2020-05-12 2021-03-30 Capital One Services, Llc Augmented reality card activation experience
US11063979B1 (en) 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
US11100511B1 (en) 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
US11062098B1 (en) 2020-08-11 2021-07-13 Capital One Services, Llc Augmented reality information display and interaction via NFC based authentication
US11165586B1 (en) 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
US11482312B2 (en) 2020-10-30 2022-10-25 Capital One Services, Llc Secure verification of medical status using a contactless card
US11373169B2 (en) 2020-11-03 2022-06-28 Capital One Services, Llc Web-based activation of contactless cards
US11216799B1 (en) 2021-01-04 2022-01-04 Capital One Services, Llc Secure generation of one-time passcodes using a contactless card
US11682012B2 (en) 2021-01-27 2023-06-20 Capital One Services, Llc Contactless delivery systems and methods
US11562358B2 (en) 2021-01-28 2023-01-24 Capital One Services, Llc Systems and methods for near field contactless card communication and cryptographic authentication
US11687930B2 (en) 2021-01-28 2023-06-27 Capital One Services, Llc Systems and methods for authentication of access tokens
US11792001B2 (en) 2021-01-28 2023-10-17 Capital One Services, Llc Systems and methods for secure reprovisioning
US11438329B2 (en) 2021-01-29 2022-09-06 Capital One Services, Llc Systems and methods for authenticated peer-to-peer data transfer using resource locators
US11777933B2 (en) 2021-02-03 2023-10-03 Capital One Services, Llc URL-based authentication for payment cards
US11637826B2 (en) 2021-02-24 2023-04-25 Capital One Services, Llc Establishing authentication persistence
US11245438B1 (en) 2021-03-26 2022-02-08 Capital One Services, Llc Network-enabled smart apparatus and systems and methods for activating and provisioning same
US11961089B2 (en) 2021-04-20 2024-04-16 Capital One Services, Llc On-demand applications to extend web services
US11935035B2 (en) 2021-04-20 2024-03-19 Capital One Services, Llc Techniques to utilize resource locators by a contactless card to perform a sequence of operations
US11902442B2 (en) 2021-04-22 2024-02-13 Capital One Services, Llc Secure management of accounts on display devices using a contactless card
US11354555B1 (en) 2021-05-04 2022-06-07 Capital One Services, Llc Methods, mediums, and systems for applying a display to a transaction card

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023907A (en) * 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
WO1993011480A1 (en) * 1991-11-27 1993-06-10 Intergraph Corporation System and method for network license administration
US5343526A (en) * 1992-10-30 1994-08-30 At&T Bell Laboratories Method for establishing licensor changeable limits on software usage
US5905860A (en) * 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US6029145A (en) * 1997-01-06 2000-02-22 Isogon Corporation Software license verification process and apparatus
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US7013294B1 (en) * 1997-07-15 2006-03-14 Shinko Electric Industries Co., Ltd. License management system
GB2343025A (en) * 1998-10-23 2000-04-26 Ibm License management system
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
GB2346989A (en) * 1999-02-19 2000-08-23 Ibm Software licence management system uses clustered licence servers
WO2000054127A1 (en) * 1999-03-08 2000-09-14 Spyrus, Inc. Method and system for enforcing access to a computing resource using a licensing certificate
US6453305B1 (en) * 1999-05-21 2002-09-17 Compaq Computer Corporation Method and system for enforcing licenses on an open network
US6842896B1 (en) * 1999-09-03 2005-01-11 Rainbow Technologies, Inc. System and method for selecting a server in a multiple server license management system
US6810389B1 (en) * 2000-11-08 2004-10-26 Synopsys, Inc. System and method for flexible packaging of software application licenses

Also Published As

Publication number Publication date
SE524778C2 (sv) 2004-10-05
SE0200484L (sv) 2003-08-20
AU2003206561A1 (en) 2003-09-09
DE60301872D1 (de) 2005-11-17
ATE306689T1 (de) 2005-10-15
EP1485769B1 (en) 2005-10-12
SE0200484D0 (sv) 2002-02-19
JP2005518041A (ja) 2005-06-16
CN1633632A (zh) 2005-06-29
US20050160049A1 (en) 2005-07-21
EP1485769A1 (en) 2004-12-15
WO2003071404A1 (en) 2003-08-28
CA2476465A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
KR20040096583A (ko) 소프트웨어 보호 방법 및 장치
CN101872399B (zh) 基于双重身份认证的动态数字版权保护方法
US7975312B2 (en) Token passing technique for media playback devices
US6233567B1 (en) Method and apparatus for software licensing electronically distributed programs
JP4113274B2 (ja) 認証装置および方法
US5473692A (en) Roving software license for a hardware agent
KR100912276B1 (ko) 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템
US6070171A (en) Method and system for copy-tracking distributed software featuring tokens containing a key field and a usage field
CN110162936A (zh) 一种软件内容的使用授权方法
US20110113235A1 (en) PC Security Lock Device Using Permanent ID and Hidden Keys
US20010014157A1 (en) Method and system for distributing programs using tamper resistant processor
JPH10508438A (ja) キー・エスクローおよびデータ・エスクロー暗号化のためのシステムおよび方法
WO2004086166A2 (en) Data protection management apparatus and data protection management method
CN101142599A (zh) 基于硬件识别的数字权利管理系统
WO2004038568A2 (en) Method and device for authorizing content operations
JP2004295271A (ja) カード及びパスコード生成器
CN109598104A (zh) 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法
US6651169B1 (en) Protection of software using a challenge-response protocol embedded in the software
JP4137468B2 (ja) プログラム使用認証方法
CN113592497A (zh) 基于区块链的金融交易服务安全认证方法及装置
CN100410831C (zh) 随机捆绑软件安装方法
KR20040038031A (ko) 불법 복제 방지용 콘텐츠 생성 및 실행 방법
KR100948599B1 (ko) 이동통신 단말의 보안성 강화 방법 및 그 시스템
JPH1013402A (ja) 公開鍵暗号の秘密鍵管理方法および装置
JP2008306685A (ja) セキュリティ情報設定システム、そのマスタ端末、一般端末、プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid