KR20090015281A - 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법 - Google Patents

응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법 Download PDF

Info

Publication number
KR20090015281A
KR20090015281A KR1020070079493A KR20070079493A KR20090015281A KR 20090015281 A KR20090015281 A KR 20090015281A KR 1020070079493 A KR1020070079493 A KR 1020070079493A KR 20070079493 A KR20070079493 A KR 20070079493A KR 20090015281 A KR20090015281 A KR 20090015281A
Authority
KR
South Korea
Prior art keywords
application software
authentication key
user authentication
code
user
Prior art date
Application number
KR1020070079493A
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 KR1020070079493A priority Critical patent/KR20090015281A/ko
Publication of KR20090015281A publication Critical patent/KR20090015281A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

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

Abstract

본 발명은 스펙트럼 분석기와 같은 장치의 운용에 필요한 응용 소프트웨어인 소프트웨어 옵션의 정당 사용자 인증을 위한 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법에 관한 것이다. 이러한 본 발명은 사용자 인증을 위한 키를 생성하는 장치에 있어서, 응용 소프트웨어의 종류에 따른 코드와 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합한 스트링 데이터를 해쉬 함수를 통해 암호화하여 인증키를 생성하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치를 제공한다. 본 발명에 의하면, 해쉬 코드가 일치하지 않는 장치에 대해서는 소프트웨어 옵션의 이용을 불허하여 소프트웨어 옵션의 불법 사용을 방지하는 효과를 발생시킬 수 있다. 더불어, 소프트웨어 옵션이 판매용일 경우 이를 생산하는 업체에게는 매출 증대 효과를 발생시킬 수 있게 된다.
응용 소프트웨어, 소프트웨어 옵션(S/W option), 사용자 인증, 시리얼 넘버(S/N), 해쉬함수 알고리즘, 해쉬 코드, 롬, 스펙트럼 분석기(spectrum analyzer)

Description

응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법 {Device for generating user authentication key of application software, and (generating) method therefor, and system for authenticating user using the said key, and (authenticating) method therefor}
본 발명은 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법에 관한 것이다. 보다 상세하게는, 장치(예컨대, 스펙트럼 분석기)의 운용에 필요한 응용 소프트웨어인 소프트웨어 옵션(S/W option)의 정당 사용자 인증을 위한 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법에 관한 것이다.
일반적으로 스펙트럼 분석기(spectrum analyzer)라 함은 임의의 신호의 스펙트럼이나 주파수를 분해하여 성분을 분석하며, 이로부터 취득된 값(크기)을 화면에 표시하는 계측기기를 말한다. 이러한 스펙트럼 분석기는 피변조 신호(AM, FM 등)의 에너지 분포, 잡음의 주파수 분석, 신호의 고저조파 성분 분석, 스퓨리어스(spurious) 강도, 전송선로의 특성 등을 측정하는 데에 주로 사용되는데, 크게 스웹트(swept) 스펙트럼 분석기와 FFT(Fast Fourier Transform) 기반의 스펙트럼 분석기로 분류된다. 스웹트 스펙트럼 분석기는 예컨대 미국 특허공개공보 제2003-146743호(발명의 명칭 : Very fast swept spectrum analyzer)에 제안된 바와 같이 구현될 수 있다. 그리고, FFT 기반의 스펙트럼 분석기는 예컨대 미국 특허공개공보 제2002-191632호(발명의 명칭 : Spread spectrum receiver with progressive fourier transform)에 제안된 바를 참조하여 구현될 수 있다.
그런데, 이러한 스펙트럼 분석기가 원활하게 구동되기 위해서는 소프트웨어 옵션이 필요하다. 소프트웨어 옵션은 스펙트럼 분석기와 같은 장치의 운용에 필요한 응용 소프트웨어로서 상기 장치를 구매한 자에 한해 제공되며, 보통 패스워드(password) 입력을 통하여 사용자를 인증한다. 이러한 소프트웨어 옵션은 최근 들어 사용자의 편리성을 위해서 홈페이지를 통해서도 제공됨이 일반이다.
그런데, 종래에는 각 제조회사마다 동일 유형 장치의 모든 소프트웨어 옵션에 대해 동일한 패스워드를 적용시켰다. 이로 인하여 패스워드가 외부에 노출되는 경우에는 누구나 홈페이지에 접속하여 상기 소프트웨어 옵션을 다운로드받은 후 사용하는 것(즉, 불법 사용)이 가능하게 되는 문제점이 발생하였다. 게다가, 유사한 기능을 하는 다른 장치에 이 소프트웨어 옵션을 적용시키는 것이 가능하게 되며, 사용제한 기능의 유명무실에 따라 판매용일 경우 매출에 악영향을 끼치기도 하였다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 소프트웨어 옵션의 종류마다 설정된 고유한 코드와 상기 소프트웨어 옵션이 적용되는 장치의 시리얼 넘버를 기반으로 해쉬함수 알고리즘에 따른 인증키를 생성하는 것을 제1 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법을 제공함을 목적으로 한다.
또한, 본 발명은 상기 생성된 해쉬 코드를 이용하여 사용자를 인증하는 것을 제2 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및 이 인증키를 이용한 사용자 인증 시스템과 그 방법을 제공함을 목적으로 한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 사용자 인증을 위한 키를 생성하는 장치에 있어서, 응용 소프트웨어의 종류에 따른 코드와 상기 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합한 스트링 데이터를 해쉬 함수를 통해 암호화하여 인증키를 생성하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치를 제공한다.
바람직하게는, 상기 인증키에는 암호화를 통해 생성한 해쉬 코드 외에 상기 응용 소프트웨어의 종류에 따른 코드가 삽입된다.
바람직하게는, 상기 사용자 인증키 생성 장치는 상기 응용 소프트웨어의 종류에 따른 코드를 설정하는 코드 설정부; 상기 설정된 코드와 저장된 상기 응용 소 프트웨어를 수용하는 장치의 식별 정보를 결합하여 바이너리 파일 형태의 스트링 데이터를 생성하는 스트링 데이터 생성부; 및 해쉬 함수를 이용한 암호화를 통해 상기 스트링 데이터에서 해쉬 코드를 생성하고, 상기 해쉬 코드에 상기 응용 소프트웨어의 종류에 따른 코드를 삽입하여 인증키를 생성하는 인증키 생성부를 포함하여 구성된다.
더 바람직하게는, 상기 사용자 인증키 생성 장치는 상기 식별 정보가 저장되어 있지 않을 경우 상기 식별 정보를 상기 응용 소프트웨어를 수용하는 장치를 생산하는 자, 상기 응용 소프트웨어를 사용하는 자 및 상기 응용 소프트웨어를 제공하는 자 중 어느 하나로부터 입력받는 입력부; 및 유무선 통신망을 통하여 상기 식별 정보를 수신하는 통신부를 더 포함한다.
또한, 본 발명은 사용자 인증을 위한 키를 생성하는 방법에 있어서, (a) 응용 소프트웨어의 종류에 따른 코드와 상기 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합하여 스트링 데이터를 생성하는 단계; 및 (b) 상기 스트링 데이터를 해쉬 함수를 통해 암호화하여 인증키를 생성하는 단계를 포함하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법을 제공한다.
바람직하게는, 상기 (a) 단계의 이전 단계에, (aa) 상기 식별 정보가 저장되어 있는지를 판별하는 단계; 및 (ab) 상기 식별 정보가 저장되어 있지 않을 경우 상기 식별 정보를 요청하는 단계를 포함한다.
또한, 본 발명은 응용 소프트웨어를 이용하는 사용자를 인증하는 시스템에 있어서, 상술한 사용자 인증키 생성 장치에 의해 생성된 인증키를 이용하여 상기 응용 소프트웨어의 록킹을 해정하는 사용자 인증 장치를 구비하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템을 제공한다.
바람직하게는, 상기 사용자 인증 장치는 상기 응용 소프트웨어에서 응용 소프트웨어의 종류에 따른 코드를 추출하고, 저장된 상기 인증키에서 응용 소프트웨어의 종류에 따른 코드와 해쉬 코드를 독출하며, 상기 추출 또는 독출된 두 코드가 일치하는지 비교하여 불일치하면 다른 인증키를 요청하고, 일치하면 상기 추출된 코드를 다른 사용자 인증 장치와 식별되는 정보와 결합하여 해쉬 함수를 통해 해쉬 코드를 생성하며, 상기 독출 또는 생성된 두 해쉬 코드를 비교하여 일치하는 경우 상기 응용 소프트웨어의 록킹을 해정하는 식으로 운용된다.
또한, 본 발명은 응용 소프트웨어를 이용하는 사용자를 인증하는 방법에 있어서, 상술한 사용자 인증키 생성 방법을 통해 생성된 인증키를 이용하여 상기 응용 소프트웨어의 록킹을 해정하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 방법을 제공한다.
바람직하게는, 상기 인증키를 이용한 상기 응용 소프트웨어의 록킹 해정 방법은, (a) 상기 응용 소프트웨어에서 응용 소프트웨어의 종류에 따른 코드를 추출하는 단계; (b) 저장된 상기 인증키에서 응용 소프트웨어의 종류에 따른 코드와 해쉬 코드를 독출하는 단계; (c) 상기 추출된 코드와 상기 독출된 코드가 일치하는지 판별하는 단계; (d) 일치하는 경우 상기 추출된 코드를 시리얼 넘버와 결합하여 해쉬 함수를 통해 해쉬 코드를 생성하며, 불일치하는 경우 상기 추출된 코드가 삽입된 인증키를 요청하는 단계; (e) 상기 생성된 해쉬 코드와 상기 독출된 해쉬 코드 가 일치하는지 판별하는 단계; 및 (f) 일치하는 경우 상기 응용 소프트웨어의 록킹을 해정하는 단계로 이루어진다.
본 발명은 상기한 구성 및 방법에 따라 다음과 같은 효과를 발생시킨다. 첫째, 본 발명은 제1·2 특징에 따라 해쉬 코드가 일치하지 않는 장치에 대해서는 소프트웨어 옵션의 이용을 불허하여 상기 소프트웨어 옵션의 불법 사용을 방지하는 효과를 발생시킨다.
둘째, 본 발명은 제1·2 특징에 따라 소프트웨어 옵션이 판매용으로써 적합하게 하며, 상기 소프트웨어 옵션을 생산하는 업체에게는 매출 증대 효과를 발생시킨다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 사용자 인증키 생성 장치의 내부 구성을 도시한 블록도이다. 그리고, 도 2는 본 발명의 바람직한 실시예에 따른 사용자 인증키 생성 장치의 사용자 인증키 생성 방법을 도시한 순서도이다. 먼저, 도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 사용자 인증키 생성 장치(100)는 코드 설정부(110), 입력부(115), 통신부(120), 스트링 데이터 생성부(125), 메모리부(130), 인증키 생성부(135), 전원부(140) 및 제어부(145)를 포함한다.
코드 설정부(110)는 본 발명의 실시예에서 소프트웨어 옵션의 종류에 따라 고유한 코드를 설정하는 기능을 수행한다. 이러한 코드(이하, 이를 '소프트웨어 옵션 코드'라 칭함)는 바이너리(binary) 파일의 생성을 용이하게 하기 위한 것으로써 소프트웨어 옵션의 종류에 따라 일정한 내용을 담고 있다. 물론, 소프트웨어 옵션 코드는 상황에 따라 그 내용이 가변되는 것도 가능하다. 소프트웨어 옵션의 종류별 구분은 용도(예컨대, CDMA용, WCDMA용, GSM용 등)가 그 기준이 될 수 있겠으나 반드시 이에 한정되는 것은 아니다.
스트링 데이터 생성부(125)는 본 발명의 실시예에서 소프트웨어 옵션 코드와 소프트웨어 옵션이 적용되는 장치의 시리얼 넘버(S/N; Serial Number)를 결합하여 바이너리 파일 형태의 스트링 데이터(string data)를 생성하는 기능을 수행한다. 스트링 데이터 생성부(125)는 이러한 스트링 데이터를 JSON(Java-Script Object Notation) 포맷으로 생성할 수 있는데, 이는 변수(variable)의 적용이 제한되지 않아 다른 객체나 특정 포맷으로의 변환이 용이하며, AJAX(Asynchronous Java-Script and XML) 애플리케이션에서 요청 스트링으로 사용할 수 있는 잇점이 있다. 그러나, 본 발명의 실시예에서 스트링 데이터는 JSON 포맷으로 생성됨에 한정되는 것은 아 니며, 웹에서의 편리한 제공을 참작하여 마크업 언어(markup language)를 이용하여 XML 포맷으로 생성됨도 가능하다.
스트링 데이터 생성부(125)는 본 발명의 실시예에서 상술한 스트링 데이터를 생성함에 있어서 미국 특허공개공보 제2006-179075호(발명의 명칭 : Method and system for obfuscating data structures by deterministic natural data substitution)에 제안된 바를 참조할 수 있다.
스트링 데이터 생성부(125)는 스트링 데이터를 생성함에 앞서 소프트웨어 옵션이 적용되는 장치의 시리얼 넘버를 요구하는데, 이는 메모리부(130)에 저장되어 있음이 보통이다. 그러나, 시리얼 넘버의 미비현상이 발생할 가능성도 있으므로 사용자 인증키 생성 장치(100)는 이를 감안하여 시리얼 넘버를 제공받기 위한 수단으로 입력부(115)나 통신부(120)를 더 구비할 수 있다. 입력부(115)는 특정인으로부터 시리얼 넘버를 입력받기 위해 키보드, 키패드, 마이크 등으로 구현될 수 있다. 여기에서, 특정인이라 함은 상기 장치를 생산하는 자, 상기 장치의 사용자, 소프트웨어 옵션을 제공하는 자 등을 말한다. 통신부(120)는 PSTN망, 이동통신망, 인터넷망 등 유무선 통신망을 통하여 상기 장치 또는 그 사용자와 연결되며, 이들로부터 시리얼 넘버를 수신한다. 한편, 상기에서 입력부(115)나 통신부(120)를 통해 수신하는 정보가 꼭 시리얼 넘버일 필요는 없다. 이는 장치들을 식별할 수 있는 정보(이하, 장치식별정보)이면 어느 것이든 무방하므로 본 발명에서는 넓게 장치식별정보로 이해함이 가장 바람직하겠다.
한편, 소프트웨어 옵션이 적용되는 장치는 본 발명의 실시예에서 사용자 인 증 장치를 말하는데, 사용자 인증 장치에 대해서는 후술시 상세하게 설명하기로 한다. 소프트웨어 옵션이 적용되는 장치(또는 사용자 인증 장치)로는 예컨대 스펙트럼 분석기가 이용될 수 있다.
인증키 생성부(135)는 본 발명의 실시예에서 해쉬함수 알고리즘(hash function algorithm)을 이용하여 스트링 데이터에서 인증키를 생성하는 기능을 수행한다. 구체적으로, 인증키 생성부(135)는 가변 길이의 입력 스트링(arbitrary input)에 스트링 데이터를 입력하고, 이를 해쉬 함수를 통해 암호화하며, 이후 생성 출력되는 일정 길이의 해쉬 코드(fixed length output)에 소프트웨어 옵션 코드를 삽입하는 과정을 통해 인증키를 생성한다(즉, 상술한 바를 통해 본 발명에 따른 인증키는 해쉬 코드와 소프트웨어 옵션 코드가 구비됨을 알 수 있다).
해쉬함수 알고리즘은 일반적으로 임의의 길이를 가지는 입력 비트열(스트링 데이터)에서 일정한 길이를 가지는 출력 비트열(해쉬 코드)을 생성하는 대칭키 방식의 암호화 알고리즘을 말한다. 이러한 해쉬함수 알고리즘은 다음 두가지 특징에 기인하여 오늘날 정보보호 메커니즘에서 다양하게 이용되고 있다. 첫째, 해쉬함수 알고리즘은 생성된 해쉬 코드에서 기반이 된 스트링 데이터를 도출하는 것이 불가능하다(일방향성). 둘째, 해쉬함수 알고리즘은 주어진 스트링 데이터에 대하여 동일한 해쉬 코드를 생성하는 또다른 스트링 데이터를 찾아내는 것이 불가능하다(충돌회피성). 이와 같은 특징들을 가지는 해쉬함수 알고리즘은 본 발명의 실시예에서 데이터 무결성(data integrity)을 수반하는 것이 가능하게 된다.
한편, 본 발명에 따른 해쉬함수 알고리즘은 MDx(Message Digest x), RIPEMD- 160, RIPEMD-128, SHA(Secure Hash Algorithm)-1 등 중에서 어느 하나가 이용될 수 있다. 물론, 이외 다른 알고리즘(SNEFRU, N-HASH 등)이 본 발명에 적용되는 것도 가능하다. 이와 같은 본 발명에 따른 해쉬함수 알고리즘은 예컨대 대한민국 특허공개공보 제2007-34834호(발명의 명칭 : SHA-1 연산방법 및 장치)나 PCT 국제공개공보 제2006-23334호(발명의 명칭 : Permutation data transform to enhance security)에 제안된 바가 참조될 수 있다.
전원부(140)는 본 발명의 실시예에서 사용자 인증키 생성 장치(100)를 구성하는 모든 구성부에 전원을 공급하는 기능을 수행한다.
제어부(145)는 본 발명의 실시예에서 사용자 인증키 생성 장치(100)를 구성하는 모든 구성부의 전체 작동을 제어하는 기능을 수행한다.
다음으로, 도 2를 참조하여 사용자 인증키 생성 장치(100)의 사용자 인증키 생성 방법을 설명한다.
먼저, 코드 설정부(110)가 소프트웨어 옵션의 종류에 따른 고유한 코드 즉, 소프트웨어 옵션 코드를 설정한다(S200). 이후, 설정된 소프트웨어 옵션 코드는 제어부(145)에 의해 스트링 데이터 생성부(125)로 전달된다(S205).
다음, 제어부(145)가 메모리부(130)에 저장된 특정 장치의 시리얼 넘버를 스트링 데이터 생성부(125)로 전송시킨다(S210). 이 S210 단계는 제어부(145)가 소프트웨어 옵션 코드를 스트링 데이터 생성부(125)로 전달시킨 이후 즉시 수행됨이 보통이나, 본 발명에서는 스트링 데이터 생성부(125)의 요청에 의해 수반됨도 가능하 다. 이후, 스트링 데이터 생성부(125)는 소프트웨어 옵션 코드와 시리얼 넘버를 결합하여 스트링 데이터를 생성한다(S215). 이후, 생성된 스트링 데이터는 제어부(145)에 의해 인증키 생성부(135)로 전달된다(S220).
다음, 인증키 생성부(135)는 구비된 해쉬함수 알고리즘을 이용하여 데이터 암호화(즉, 스트링 데이터에서 인증키를 생성함)를 수행한다(S225). 이후, 제어부(145)는 생성된 인증키를 시리얼 넘버를 참작하여 해당 장치에 저장시킨다(S230). 또한, 제어부(145)는 인증키 요청에 빠른 대처가 가능하도록 생성된 인증키를 메모리부(130)에 저장 보관한다(S235).
다음으로, 도 1 및 도 2에 따른 인증키를 이용하여 사용자를 인증하는 시스템 및 방법을 설명한다. 도 3은 본 발명의 바람직한 실시예에 따른 사용자 인증 시스템의 내부 구성을 도시한 개념도이다. 그리고, 도 4는 본 발명의 바람직한 실시예에 따른 사용자 인증 시스템의 사용자 인증 방법을 도시한 순서도이다. 먼저, 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 사용자 인증 시스템(300)은 사용자 인증 장치(310), 사용자 인증키 제공 서버(320) 및 사용자 인증키 제공 데이터베이스(325)를 포함한다.
사용자 인증 장치(310)는 제공되는 소프트웨어 옵션을 해석하여 구동에 반영시키는 장치로서, 예컨대 스펙트럼 분석기가 이에 해당할 수 있다. 이러한 사용자 인증 장치(310)는 본 발명의 실시예에서 제공되는 소프트웨어 옵션에 대해 저장된 인증키를 이용하여 정당한 사용자임을 입증한 후 상기 소프트웨어 옵션을 해석하는 기능을 수행한다. 구체적으로, 사용자 인증 장치(310)는 다음 데이터 복호화 과정을 거쳐 상기 기능을 수행하게 된다.
먼저, 사용자 인증 장치(310)는 소프트웨어 옵션이 제공되면 이로부터 소프트웨어 옵션 코드를 추출한다. 동시에, 사용자 인증 장치(310)는 저장된 인증키에서 소프트웨어 옵션 코드와 해쉬 코드를 독출한다. 이후, 사용자 인증 장치(310)는 추출된 소프트웨어 옵션 코드가 독출된 소프트웨어 옵션 코드와 일치하는지 여부를 확인한다. 사용자 인증 장치(310)는 추출된 소프트웨어 옵션 코드가 불일치하는 것으로 확인하면 상기 소프트웨어 옵션 코드가 포함된 인증키를 요청한다. 요청된 바는 사용자 인증키 제공 서버(320)에서 사용자 인증 장치(310)로 전달된다. 물론, 본 발명에서는 사용자 인증키 제공 서버(320)가 새로운 인증키가 생성되면 이를 사용자 인증 장치(310)나 상기 장치(310)의 이용자에게 제공하는 식으로 이루어짐도 가능하다. 이용자에게 제공되는 방법으로는 인증키를 이용자의 이메일 계정으로 전송하는 방법, 이용자의 휴대폰에 새로이 생성된 인증키가 있음을 통보하여 이용자로 하여금 홈페이지(사용자 인증키 제공 서버(320)의 웹사이트)에 접속하여 이를 다운로드받게 하는 방법 등이 있을 수 있다. 한편, 본 발명의 실시예에서 사용자 인증 장치(310)는 유무선 통신망을 통하여 사용자 인증키 생성 장치(100)에 직접 연결되어 인증키를 전달받는 것도 가능하다.
사용자 인증 장치(310)는 소프트웨어 옵션 코드를 추출한 후에는 저장된 자신의 시리얼 넘버를 독출한다. 이때, 사용자 인증 장치(310)는 사용자에 의해 시리얼 넘버를 입력받음도 가능하다. 사용자 인증 장치(310)는 소프트웨어 옵션 코드와 시리얼 넘버가 확보되면 상술한 해쉬함수 알고리즘을 이용하여 해쉬 코드를 생성한다. 이후, 사용자 인증 장치(310)는 생성된 해쉬 코드가 상기 인증키에서 독출된 해쉬 코드와 일치하는지 여부를 확인한다. 사용자 인증 장치(310)는 생성된 해쉬 코드가 일치하는 것으로 확인되면 소프트웨어 옵션을 해석하며, 해석된 내용을 반영하여 자체 업그레이드를 수행한다. 물론, 생성된 해쉬 코드가 불일치하는 경우에는 소프트웨어 옵션의 해석이 불가능하게 되어 사용자 인증 장치(310)가 업그레이드되지 못함은 당연하다.
사용자 인증 장치(310)는 스펙트럼 분석기를 예로 들었지만 하드디스크를 구비하지 않는 경우가 종종 있을 수 있다. 이에, 본 발명에서는 사용자 인증 장치(310)의 롬(ROM)에서 인증키, 시리얼 넘버 등의 리드(read)가 가능하도록 함이 가장 바람직하다.
사용자 인증키 제공 서버(320)는 본 발명의 실시예에서 사용자 인증키 제공 데이터베이스(325)와 연동하여 사용자 인증 장치(310)에 인증키를 제공하는 기능을 수행한다. 이러한 사용자 인증키 제공 서버(320)는 통상의 웹서버로 구현되며, 웹사이트를 통해 경로가 지정되어 사용자가 이용할 수 있도록 제공된다.
사용자 인증키 제공 서버(320)는 본 발명의 실시예에서 모든 사용자의 이력을 관리하는 기능을 수행한다. 사용자 인증키 제공 서버(320)는 이를 토대로 특정 장치의 소프트웨어 옵션과 인증키가 생성되면 이를 자동적으로 상기 특정 장치를 이용하는 자에게 제공하게 된다.
사용자 인증키 제공 데이터베이스(325)는 본 발명의 실시예에서 인증키를 저 장한다.
사용자 인증키 제공 서버(320)와 사용자 인증키 제공 데이터베이스(325)는 사용자에게 편리성을 제공하기 위한 수단으로서 본 발명에서는 구비되지 않아도 무방하다.
다음으로, 도 4를 참조하여 사용자 인증 시스템의 사용자 인증 방법을 설명한다. 대체적인 내용은 도 3을 빌어 상술하였으므로 여기서는 약술하기로 한다.
먼저, 특정 소프트웨어 옵션이 제공되면 사용자 인증 장치(310)는 이에서 소프트웨어 옵션 코드를 추출한다(S400). 이후, 사용자 인증 장치(310)는 인증키를 리드하여 소프트웨어 옵션 코드와 해쉬 코드를 독출한다(S405). 이후, 사용자 인증 장치(310)는 소프트웨어 옵션에서 추출된 소프트웨어 옵션 코드가 인증키에서 독출된 소프트웨어 옵션 코드와 일치하는지 여부를 판단한다(S410). 사용자 인증 장치(310)는 불일치를 확인하면 사용자 인증키 생성 장치(100)나 사용자 인증키 제공 서버(320)에 다른 인증키를 요청한다(S415). 이때, 다른 인증키는 소프트웨어 옵션에서 추출한 소프트웨어 옵션 코드를 포함하고 있는 것임은 물론이다.
일치시엔 사용자 인증 장치(310)는 저장된 자신의 시리얼 넘버를 독출한다(S420). 이후, 사용자 인증 장치(310)는 취득된 소프트웨어 옵션 코드와 시리얼 넘버를 결합하고, 해쉬함수 알고리즘을 이용하여 결합된 데이터에서 해쉬 코드를 생성한다(S425).
다음, 사용자 인증 장치(310)는 생성된 해쉬 코드가 인증키에서 독출된 해쉬 코드와 일치하는지 여부를 판단한다(S430). 생성된 해쉬 코드가 일치하는 경우에는 사용자 인증 장치(310)는 소프트웨어 옵션을 복호화하며, 상기 소프트웨어 옵션을 해석하여 이의 내용을 자체 업그레이드에 반영한다(S435).
상술한 방법에 따라 각각의 소프트웨어 옵션에 대해 사용자 인증을 시행하게 되면 소프트웨어 옵션의 위변조, 불법복제 또는 불법사용이 불가능하게 된다. 게다가, 이미 구매한 장치에 추가적으로 소프트웨어 옵션을 반영시켜야 하는 경우에도 상기 장치를 생산업체(공장)로 가져가야 하는 불편이 해소된다. 더욱이, 이러한 소프트웨어 옵션은 판매용으로써 적합하여 생산업체나 제공업체에 수익증대 효과도 제공하여 준다.
한편, 상술한 사용자 인증은 웹 서버를 통해 수행됨도 가능하다. 이 경우, 본 발명은 대한민국 특허공개공보 제2004-83272호(발명의 명칭 : 챌린지(challenge)/레스펀스(response)에 기반한 무선일회용 비밀번호 모듈이 탑재된 이동통신 단말기를 이용한 웹 및/또는 무선 네트워크 상에서의 사용자 인증 방법 및 시스템)나 대한민국 특허공개공보 제2003-16073호(발명의 명칭 : 웹 상에서 쿠키를 통한 사용자 인증 방법 및 인증 시스템)에 제안된 바를 참고할 수 있다.
이상의 설명은 본 발명의 기술사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면 에 의하여 본 발명의 기술사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 목적은 프로그램 형태의 응용 소프트웨어를 위변조, 불법복제 또는 불법사용함을 방지함에 있다. 이를 참작할 때 본 발명은 이러한 응용 소프트웨어들이 업그레이드에 이용되는 전자기기에 적용될 수 있겠다.
도 1은 본 발명의 바람직한 실시예에 따른 사용자 인증키 생성 장치의 내부 구성을 도시한 블록도,
도 2는 본 발명의 바람직한 실시예에 따른 사용자 인증키 생성 장치의 사용자 인증키 생성 방법을 도시한 순서도,
도 3은 본 발명의 바람직한 실시예에 따른 사용자 인증 시스템의 내부 구성을 도시한 개념도,
도 4는 본 발명의 바람직한 실시예에 따른 사용자 인증 시스템의 사용자 인증 방법을 도시한 순서도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100 : 사용자 인증키 생성 장치 110 : 코드 설정부
115 : 입력부 120 : 통신부
125 : 스트링 데이터 생성부 130 : 메모리부
135 : 인증키 생성부 140 : 전원부
145 : 제어부 300 : 사용자 인증 시스템
310 : 사용자 인증 장치 320 : 사용자 인증키 제공 서버
325 : 사용자 인증키 제공 데이터베이스

Claims (19)

  1. 사용자 인증을 위한 키를 생성하는 장치에 있어서,
    응용 소프트웨어의 종류에 따른 코드와 상기 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합한 스트링 데이터를 해쉬 함수를 통해 암호화하여 인증키를 생성하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  2. 제 1 항에 있어서,
    상기 응용 소프트웨어는 상기 응용 소프트웨어를 수용하는 장치를 업그레이드시키는 데에 사용되는 소프트웨어 옵션인 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  3. 제 1 항에 있어서,
    상기 응용 소프트웨어를 수용하는 장치의 식별 정보는 시리얼 넘버인 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  4. 제 1 항에 있어서,
    상기 인증키에는 암호화를 통해 생성한 해쉬 코드 외에 상기 응용 소프트웨어의 종류에 따른 코드가 삽입된 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 응용 소프트웨어의 종류에 따른 코드를 설정하는 코드 설정부;
    상기 설정된 코드와 저장된 상기 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합하여 바이너리 파일 형태의 스트링 데이터를 생성하는 스트링 데이터 생성부; 및
    해쉬 함수를 이용한 암호화를 통해 상기 스트링 데이터에서 해쉬 코드를 생성하고, 상기 해쉬 코드에 상기 응용 소프트웨어의 종류에 따른 코드를 삽입하여 인증키를 생성하는 인증키 생성부
    를 포함하여 이루어지는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  6. 제 5 항에 있어서,
    상기 식별 정보가 저장되어 있지 않을 경우 상기 식별 정보를 상기 응용 소프트웨어를 수용하는 장치를 생산하는 자, 상기 응용 소프트웨어를 사용하는 자 및 상기 응용 소프트웨어를 제공하는 자 중 어느 하나로부터 입력받는 입력부; 및
    유무선 통신망을 통하여 상기 식별 정보를 수신하는 통신부
    를 더 포함하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 장치.
  7. 사용자 인증을 위한 키를 생성하는 방법에 있어서,
    (a) 응용 소프트웨어의 종류에 따른 코드와 상기 응용 소프트웨어를 수용하는 장치의 식별 정보를 결합하여 스트링 데이터를 생성하는 단계; 및
    (b) 상기 스트링 데이터를 해쉬 함수를 통해 암호화하여 인증키를 생성하는 단계
    를 포함하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법.
  8. 제 7 항에 있어서,
    상기 (a) 단계의 이전 단계에,
    (aa) 상기 식별 정보가 저장되어 있는지를 판별하는 단계; 및
    (ab) 상기 식별 정보가 저장되어 있지 않을 경우 상기 식별 정보를 요청하는 단계
    를 포함하는 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법.
  9. 제 7 항에 있어서,
    상기 응용 소프트웨어는 상기 응용 소프트웨어를 수용하는 장치를 업그레이드시키는 데에 사용되는 소프트웨어 옵션인 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법.
  10. 제 7 항에 있어서,
    상기 응용 소프트웨어를 수용하는 장치의 식별 정보는 시리얼 넘버인 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법.
  11. 제 7 항에 있어서,
    상기 인증키에는 암호화를 통해 생성한 해쉬 코드 외에 상기 응용 소프트웨어의 종류에 따른 코드가 삽입된 것을 특징으로 하는 응용 소프트웨어의 사용자 인증키 생성 방법.
  12. 응용 소프트웨어를 이용하는 사용자를 인증하는 시스템에 있어서,
    제 1 항 내지 제 6 항 중 어느 한 항에 따른 인증키를 이용하여 상기 응용 소프트웨어의 록킹을 해정하는 사용자 인증 장치
    를 구비하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템.
  13. 제 12 항에 있어서,
    상기 사용자 인증 장치는 스펙트럼 분석기인 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템.
  14. 제 12 항에 있어서,
    상기 사용자 인증 장치는 상기 응용 소프트웨어에서 응용 소프트웨어의 종류에 따른 코드를 추출하고, 저장된 상기 인증키에서 응용 소프트웨어의 종류에 따른 코드와 해쉬 코드를 독출하며, 상기 추출 또는 독출된 두 코드가 일치하는지 비교하여 불일치하면 다른 인증키를 요청하고, 일치하면 상기 추출된 코드를 다른 사용자 인증 장치와 식별되는 정보와 결합하여 해쉬 함수를 통해 해쉬 코드를 생성하며, 상기 독출 또는 생성된 두 해쉬 코드를 비교하여 일치하는 경우 상기 응용 소프트웨어의 록킹을 해정하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템.
  15. 제 12 항에 있어서,
    상기 사용자 인증 장치는 롬을 통해 상기 인증키나 다른 사용자 인증 장치와 식별되는 정보를 리드하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템.
  16. 제 12 항 내지 제 15 항 중 어느 한 항에 있어서,
    다른 인증키에 대한 요청이 있거나 상기 다른 인증키가 존재하는 것이 확인되면 상기 다른 인증키를 해당 사용자에게 제공하는 사용자 인증키 제공 서버; 및
    상기 다른 인증키와 이의 제공을 위한 사용자의 이력을 저장하는 사용자 인증키 제공 데이터베이스
    를 더 포함하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 시스템.
  17. 응용 소프트웨어를 이용하는 사용자를 인증하는 방법에 있어서,
    제 7 항 내지 제 11 항 중 어느 한 항에 따라 생성된 인증키를 이용하여 상기 응용 소프트웨어의 록킹을 해정하는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 방법.
  18. 제 17 항에 있어서,
    상기 응용 소프트웨어의 록킹을 해정하는 장치는 스펙트럼 분석기인 것을 특징으로 하는 응용 소프트웨어 사용자 인증 방법.
  19. 제 17 항에 있어서,
    상기 인증키를 이용한 상기 응용 소프트웨어의 록킹 해정 방법은,
    (a) 상기 응용 소프트웨어에서 응용 소프트웨어의 종류에 따른 코드를 추출하는 단계;
    (b) 저장된 상기 인증키에서 응용 소프트웨어의 종류에 따른 코드와 해쉬 코드를 독출하는 단계;
    (c) 상기 추출된 코드와 상기 독출된 코드가 일치하는지 판별하는 단계;
    (d) 일치하는 경우 상기 추출된 코드를 시리얼 넘버와 결합하여 해쉬 함수를 통해 해쉬 코드를 생성하며, 불일치하는 경우 상기 추출된 코드가 삽입된 인증키를 요청하는 단계;
    (e) 상기 생성된 해쉬 코드와 상기 독출된 해쉬 코드가 일치하는지 판별하는 단계; 및
    (f) 일치하는 경우 상기 응용 소프트웨어의 록킹을 해정하는 단계
    로 이루어지는 것을 특징으로 하는 응용 소프트웨어 사용자 인증 방법.
KR1020070079493A 2007-08-08 2007-08-08 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법 KR20090015281A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070079493A KR20090015281A (ko) 2007-08-08 2007-08-08 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070079493A KR20090015281A (ko) 2007-08-08 2007-08-08 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법

Publications (1)

Publication Number Publication Date
KR20090015281A true KR20090015281A (ko) 2009-02-12

Family

ID=40684877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070079493A KR20090015281A (ko) 2007-08-08 2007-08-08 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법

Country Status (1)

Country Link
KR (1) KR20090015281A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101325096B1 (ko) * 2012-04-06 2013-11-21 주식회사 니벤스컴퍼니 불법 복제 방지 시스템 및 불법 복제 방지 방법
WO2014035220A2 (ko) * 2012-09-03 2014-03-06 엘지이노텍 주식회사 프로그램 인증 방법 및 시스템
KR20150001206A (ko) * 2013-06-26 2015-01-06 단국대학교 산학협력단 암복호화 키 생성 방법 및 장치
KR101601841B1 (ko) * 2015-11-13 2016-03-09 주식회사 센스톤 가상키패드를 이용한 사용자 인증방법
WO2016039568A1 (ko) * 2014-09-11 2016-03-17 임용훈 사용자 인증을 위한 장치 및 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101325096B1 (ko) * 2012-04-06 2013-11-21 주식회사 니벤스컴퍼니 불법 복제 방지 시스템 및 불법 복제 방지 방법
WO2014035220A2 (ko) * 2012-09-03 2014-03-06 엘지이노텍 주식회사 프로그램 인증 방법 및 시스템
WO2014035220A3 (ko) * 2012-09-03 2014-04-24 엘지이노텍 주식회사 프로그램 인증 방법 및 시스템
US9355243B2 (en) 2012-09-03 2016-05-31 Lg Innotek Co., Ltd. Method and system for program authentication
KR20150001206A (ko) * 2013-06-26 2015-01-06 단국대학교 산학협력단 암복호화 키 생성 방법 및 장치
WO2016039568A1 (ko) * 2014-09-11 2016-03-17 임용훈 사용자 인증을 위한 장치 및 방법
KR101601841B1 (ko) * 2015-11-13 2016-03-09 주식회사 센스톤 가상키패드를 이용한 사용자 인증방법
WO2017082483A1 (ko) * 2015-11-13 2017-05-18 주식회사 센스톤 가상키패드를 이용한 사용자 인증방법

Similar Documents

Publication Publication Date Title
US8620818B2 (en) Activation system architecture
US8984293B2 (en) Secure software product identifier for product validation and activation
DK1479187T4 (en) MANAGEMENT OF ACCESS LEVELS IN PHONES USING CERTIFICATES
KR101477295B1 (ko) 인증서 발행을 위한 포맷-독립적 시스템 및 방법
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
JP5572209B2 (ja) 電子チケット処理の方法及び装置
US7953225B2 (en) Mobile wireless communications device with software installation and verification features and related methods
US8775797B2 (en) Reliable software product validation and activation with redundant security
KR100711722B1 (ko) 이동통신 단말기의 소프트웨어 인증 장치 및 그 방법
US20060095795A1 (en) Document management apparatus and document management method, and storage medium storing program
CN100472550C (zh) 产生证书的方法以及使用证书提供内容的方法和设备
JP2016520230A (ja) 安全な承認システム及び方法
CN102177678B (zh) 可信和机密的远程tpm初始化
KR20030059267A (ko) 안전 파일 전송 방법 및 시스템
KR101125088B1 (ko) 고객 인증방법 및 시스템과 이를 위한 서버와 기록매체
US8638932B2 (en) Security method and system and computer-readable medium storing computer program for executing the security method
US20020099733A1 (en) Method and apparatus for attaching electronic signature to document having structure
US20060059350A1 (en) Strong names
US20080320306A1 (en) Tag authentication system
KR20090015281A (ko) 응용 소프트웨어의 사용자 인증키 생성 장치와 그 방법, 및이 인증키를 이용한 사용자 인증 시스템과 그 방법
JP5278495B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
EP1805570B1 (en) Methods for improved authenticity and integrity verification of software and devices capable for carrying out the methods
JP5136161B2 (ja) ソフトウェア・ライセンス管理システム、ソフトウェアをインストール可能な端末装置、ライセンス管理装置、およびプログラム
KR20060125077A (ko) 다운로드된 응용 프로그램의 변조 판단 시스템
CN117892290A (zh) 车辆刷写方法、装置、终端设备以及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application