KR20100131618A - Usb를 이용한 소프트웨어 락 방법 및 락 해제 방법 - Google Patents

Usb를 이용한 소프트웨어 락 방법 및 락 해제 방법 Download PDF

Info

Publication number
KR20100131618A
KR20100131618A KR1020090050306A KR20090050306A KR20100131618A KR 20100131618 A KR20100131618 A KR 20100131618A KR 1020090050306 A KR1020090050306 A KR 1020090050306A KR 20090050306 A KR20090050306 A KR 20090050306A KR 20100131618 A KR20100131618 A KR 20100131618A
Authority
KR
South Korea
Prior art keywords
usb
lock
software
file
executable file
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020090050306A
Other languages
English (en)
Other versions
KR101042294B1 (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 박상진
Priority to KR1020090050306A priority Critical patent/KR101042294B1/ko
Publication of KR20100131618A publication Critical patent/KR20100131618A/ko
Application granted granted Critical
Publication of KR101042294B1 publication Critical patent/KR101042294B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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]
    • G06F21/12Protecting executable software
    • 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/107License processing; Key processing
    • 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
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • H04L9/3234Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Landscapes

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

Abstract

본 발명은 USB를 이용한 소프트웨어 락 방법 및 락 해제 방법에 관한 것으로서, USB 고유 시리얼 번호와 사용자 암호를 이용하여 암호키를 생성하여 소프트웨어 실행파일을 암호화시켜 USB에 저장하고, USB락 체크를 위하여 암호화시킨 USB 고유 시리얼 번호를 USB에 저장하고, 사용자 암호화 암호화된 체크데이터를 락 해제 실행파일에 저장하여 락해제 실행파일을 USB에 저장하여 락을 걸고, 락 해제 실행파일을 실행시킬때 USB고유 시리얼 번호와 사용자 암호에 의해 복호키를 생성하여, 암호화시켜 저장해둔 USB고유 시리얼 번호의 일치성을 체크하여 USB락을 체크하고, 소프트웨어 실행파일을 실행시킨 후, 실행파일이 종료되면 자동으로 실행파일을 삭제하여 락이 걸린상태로 복귀하도록 한 것이다.
소프트웨어, 락, 보안, USB, 락체크, 체크 데이터, 실행파일, 헤더

Description

USB를 이용한 소프트웨어 락 방법 및 락 해제 방법{The software lock method which uses usb memory stick}
본 발명은 소프트웨어 락 방법에 관한 것으로서, 더욱 상세하게는 소프트웨어의 실행파일을 USB메모리 장치를 이용하여 암호화하여 복제 사용을 방지할 수 있도록 한 소프트웨어 락 방법 및 락 해제 방법에 관한 것이다.
컴퓨터를 이용함에 있어서 불법 복제 소프트웨어로 인한 여러가지 문제점들이 대두되고, 이러한 소프트웨어 불법 복제를 방지하고자 다양한 방법이 이용되고 제안된바 있으나 불법 복제를 확실하게 방지할 수 있는 방안이 없어서 현재에도 수많은 불법 복제 소프트웨어들이 유통되고 있는 실정이다.
소프트웨어 불법 복제 방지를 위한 방법으로 가장 기본적으로는 소프트웨어를 암호화하여 제공하고, 정품 구매자에게 암호키를 제공하여 불법복제를 방지하는 방법이 제공되고 있으나, 이러한 방법도 암호키의 유출이나, 소프트웨어 해킹으로 인하여 불법복제가 행해지고 있다.
그런데, 소프트웨어의 소스 코드를 알고 있는 소프트웨어 개발자나, 소스코 드를 제공받은 유통업자인 경우에는 그나마도 소프트웨어 자체에 일부를 암호화하여 암호키를 제공하는 방식으로 불법복제를 방지할 수 있으나, 소스코드를 제공하지 않는 소프트웨어를 유통하고자 하는 경우는 소프트웨어의 파일 내부 코드에 손댈수 업는 즉, 일부 암호화 처리등을 할 수 없기 때문에 단순히 보안키를 제공하여 압축을 해제하여 설치하는 제한 정도에 그치고 있었다.
한편, 종래 USB락장치가 알려져 있으나, 종래 USB 락장치는 일반 USB 메모리장치를 이용하는 것이 아니고, 고가의 스마트칩을 USB 메모모리 장치로 제작하여 컴퓨터에 장착하고, 정품 소프트웨어를 인증하도록 하는 USB 락 장치가 알려져 있다.
그런데 스마트 칩을 이용하는 종래 USB락 장치는, 즉, 스마트칩을 이용하는 USB락은 스마트 칩의 특성상 하드웨어적으로 USB 데이터를 복사하는 것은 방지되나, 소프트웨어 어플리케이션에서 USB 락 데이터를 요구했을때 제공하는 락 데이터의 인터페이스가 DLL 형태로 제공된다. 그러므로 USB 모니터링 툴을 활용하게 되면, USB 인터페이스 데이터를 알아낼 수 있게 된다. 즉, USB 모니터링 툴에서 USB에서 락 데이터로 제공되는 DLL 정보가 해킹될 수 있는 것이다. 이렇게 해킹된 락 데이터인 DLL 정보를 동일 조건으로 생성하여 저장시킨 USB 락장치를 복제할 수 있게 되므로 소프트웨어 락이 해킹될 수 있다는 단점이 있다.
이와 같이 종래 스마트칩을 이용하는 USB 락장치는 USB 인터페이스 데이터를 알아낼수 있게 되어 동일한 DLL을 생성하여 제공한다면 소프트웨어 락 해킹이 가능해진다는 단점이 있는 것이다.
본 발명은 종래의 소프트웨어 보안 방법의 문제점과 값비싼 스마트 칩을 내장한 USB 보안방법의 문제점을 감안하여 유에스비(USB) 메모리를 이용하여 소프트웨어의 보안처리를 확실하게 함으로써 불법 복제를 방지할 수 있도록 한 소프트웨어 락 방법 및 락 해제 방법을 제공하기 위한 것이다.
본 발명에 의한 소프트웨어 락 방법은,
락을 걸 소프트웨어 실행파일을 선택하는 실행파일 선택과정과;
소프트웨어 암호화를 위한 사용자 암호를 입력받고, USB 메모리로부터 USB 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 고유 시리얼 번호를 조합하여 새로운 암호키를 생성하는 암호키 생성과정과;
상기 암호키에 의거하여 상기 USB 고유 시리얼 번호를 암호화 하여 상기 USB 메모리에 저장함과 아울러 상기 사용자 암호를 락 해제 실행파일(LOCKexe.exe)에 저장하는 암호 저장과정과;
상기 실행파일 선택과정에서 선택된 실행파일을 상기 암호키 생성과정에서 성성된 암호키에 의해 암호화하는 암호화 과정과;
상기 락 해제 실행파일을 실행하기 위한 환경 정보를 설정하는 락해제 환경 설정과정과;
상기 락 해제 실행파일, 암호화된 실행파일, 실행파일을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB메모리에 저장하는 USB저장과정; 을 수행함으로써 소프트웨어를 락 시키는 것을 특징으로 한다.
상기 실행파일 선택과정은, 락을 걸 소프트웨어의 실행파일을 암호화할때 실행파일 전체를 암호화 할 것인지 헤더만 암호화 할 것인지를 선택한다.
또한, 상기 실행파일의 암호화 과정 이후에 체크데이터를 생성하여 실행파일 실행시 USB를 체크하기 위한 체크데이터 생성 저장과정을 더 수행하되, 상기 체크데이터 생성 저장과정은, 실행파일 체크용 데이터를 생성하는 체크데이터 생성단계와; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하여 USB메모리에 저장하는 체크 데이터 USB저장단계와; 상기 암호키에 의거하여 암호화된 상기 체크데이터를 상기 락해제 실행파일(LOCKexe.exe)에 저장하는 체크데이터 저장단계를 포함하여 수행하도록 이루어진다.
상기 락 해제 환경 설정과정은, 상기 락 해제 실행파일(LOCKexe.exe)를 실행시킬때 사용할 환경정보를 설정하는 것으로서, 소프트웨어 실행파일명을 그대로 변경없이 유지하도록 선택하거나, 상기 소프트웨어 실행파일의 파일명을 사용자가 선택 입력하거나, 랜덤하게 새로운 파일명으로 생성하는 가변생성을 하도록 선택하여 소프트웨어 실행파일명 생성단계와; 상기 소프트웨어 실행파일을 생성할 폴더인 워킹 폴더(Working Folder)를 선택하는 워킹폴더 선택단계와, 락 해제 실행파일의 파일명을 입력한 파일명으로 설정하는 파일명 선택단계와, 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계를 포함하여 수행하도록 이루어진 다.
또한, 본 발명은 상기 락 해제 환경설정과정 이후에 자동 설치프로그램 환경 정보를 설정하여 설치 프로그램을 저장하는 설치프로그램 작성과정을 더 포함하되,
상기 설치프로그램 작성과정은, 상기 락 해제 실행파일(LOCKexe.exe) 설치폴더 설정단계와, 선택한 폴더와 파일들을 USB에서 자동으로 설치해 주도록 하는 프로그램을 작성하는 파일설치 프로그램작성단계를 포함하여 이루어진다.
또한 본 발명은 소스가 있는 응용 프로그램에서 사용할 수 있는 두가지 보안기능을 포함할 수 있다. 첫 번째는 보안 자료(Search Key + Data)데이타를 입력하는 응용프로그램 락 과정을 더 포함할 수 있으며, 응용프로그램 락 과정은, 해당 소프트웨어의 응용프로그램에서 사용할 보안 자료를 암호처리하여 USB에 저장하여두고, 해당 소프트웨어 실행시 제공받은 API를 통하여 USB로부터 해당 보안 자료를 읽어서 응용프로그램을 실행시킬 수 있다. 있도록 하기 위한 것이다. 두 번째는 응용프로그램에서 사용하는 주요 기능을 포함한 DLL을 암호화하고 윈도우 탐색기에서 해당 DLL이 보이지 않도록 하는 플러그-인 DLL 선택하는 과정을 더 포함할 수 있으며, 실행 시 제공받은 API를 통하여 암호화 되어있는 플러그-인 기능을 실행 할 수 있다. 즉, 소스가 있는 어플리케이션의 플러그-인 DLL에서 어플리케이션에서 사용하는 주요 DLL을 암호화하여 런 타입시 제공하는 플러그-인 DLL을 제공한다.
한편, 상기와 같은 방법을 소프트웨어 락을 걸은 경우에, 해당 소프트웨어의 락 해제 방법은,
락 해제 실행파일(LOCKexe.exe)을 USB메모리로부터 불러서 실행시키는 과정과;
상기 락 해제 실행파일을 실행하면, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정과;
상기 USB메모리에서 암호화하여 저장해둔 USB 고유 시리얼 번호를 읽어서 복호화하고 이를 실제 USB 고유 시리얼 번호와 일치하는 지를 체크하여 USB 락이 올바른 락인지를 확인하는 USB 락 확인 과정과;
복호화된 USB 고유 시리얼 번호와, USB 메모리로부터 읽어들인 USB 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리에 저장해둔 해당 소프트웨어의 실행파일을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정과;
락해제 실행파일에 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일을 설정되어 있는 파일명을 생성하고, 별도의 쓰레드를 하나 생성하여 소프트웨어 실행파일을 실행시키면서 해당 소프트웨어 실행파일이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정과;
설정되어 있는 시간마다 USB 메모리에 저장된 체크데이타와 락해제 파일에 저장된 체크데이터를 비교하여 USB락 체크를 하는 USB 체크과정과;
실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행파일을 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 락체크를 종료하면서 락 해제 실행파일(LOCKexe.exe)의 프로세스를 종료하는 종료과정을 포함하는 것을 특징으로 한다.
본 발명은, 상기와 같이 USB메모리를 이용한 실행파일 암호화 방법에 있어서, 실행시 속도를 위하여 실행파일의 헤더 부분만을 암호화하거나, 실행파일 전체를 암호화하거나, 또는 프로그램 전체를 암호화할 수 있으며, 이는 사용자의 선택에 따라 선택적으로 암호화한다.
또한, 본 발명은 상기와 같이 암호화과정을 거쳐 보안 처리한 소프트웨어를 실행시키기 위해서는, 암호화 정보를 저장하고 있는 USB메모리를 장착하고, 해당 소프트웨어를 컴퓨터의 하드 디스크 또는 CD에 저장해두고, 본 발명에 의한 소프트웨어 보안 프로그램을 실행시켜 암호해독에 의해 해당 소프트웨어를 실행시킬 수 있게 된다.
이와 같은 본 발명은, USB 고유 시리얼 번호와 사용자 암호를 이용하여 암호키를 생성하여 락을 걸 소프트웨어의 실행파일을 암호화하고, USB고유 시리얼 번호를 상기 암호키에 의해 암호화하며, 체크데이터를 암호키에 의해 암호화하며, 락 해제 실행파일에 사용자 암호와 암호화된 체크데이터를 저장하며, 상기 락해제 실행파일과 상기 암호화된 정보들을 USB에 저장하여 소프트웨어 락을 걸고, 락이 걸린 소프트웨어는 상기 USB 메모리를 이용해서만 락을 해제시킬 수 있도록 함으로서, USB를 이용해서 소프트웨어 락 및 락 해제를 할 수 있도록 보안 처리가 가능하며, USB정보를 복사하여 다른 USB에 저장해도 실행을 할 수 없기 때문에 소프트웨어 불법복제를 확실하게 방지할 수 있는 효과가 있다.
이하 본 발명의 실시 예를 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.
도 1은 본 발명에 의한 USB를 이용한 소프트웨어 락 방법을 설명하기 위한 개요도이고, 도 2는 본 발명에 의한 USB를 이용한 소프트웨어 락 방법 순서도이다.
도 2에 도시된 바와 같이,
락을 걸 소프트웨어 실행파일(11)을 선택하는 실행파일 선택과정(S10)과;
소프트웨어 암호화를 위한 사용자 암호를 입력받고, USB 메모리(40)로부터 USB 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 고유 시리얼 번호를 조합하여 새로운 암호키를 생성하는 암호키 생성과정(S20)과;
상기 암호키에 의거하여 상기 USB 고유 시리얼 번호를 암호화 하여 상기 USB 메모리(40)에 저장(S30)함과 아울러 상기 사용자 암호를 락 해제 실행파일(LOCKexe.exe)(30)에 저장하는 암호 저장과정(S40)과;
상기 실행파일 선택과정(S10)에서 선택된 소프트웨어 실행파일(11)을 상기 암호키 생성과정(S20)에서 성성된 암호키에 의해 암호화하는 암호화 과정(S50)과;
상기 락 해제 실행파일(30)을 실행하기 위한 환경 정보를 설정하는 락해제 환경 설정과정(S70)과;
상기 락 해제 실행파일, 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB메모리(40)에 저장 하는 USB저장과정(S80); 을 수행함으로써 소프트웨어를 락 시키는 것을 특징으로 한다.
이와 같은 본 발명에 의한 소프트웨어 락 방법은,
락을 걸 소프트웨어(10)에서 소프트웨어 실행파일(11)을 암호화하여 USB메모리(40)에 저장한다. 이때 암호화하기 위한 암호키를 USB메모리(40)의 고유 시리얼 번호와 사용자 암호에 의해 생성하도록 한다. 이와 같이 생성된 암호키에 의해 락을 걸 소프트웨어 실행파일(11)을 암호화하여 USB메모리(40)에 저장하는 것이다. 상기 USB 메모리(40)의 고유 시리얼 번호는 USB 메모리(40)마다 생산에 따른 코드로서 부여되는 것으로서, 각 하드웨어 장치별로 각기 다른 고유 시리얼 번호를 가지므로, 임의의 USB메모리를 이용하여 소프트웨어 락을 걸게 되면, 반드시 락을 걸때 사용된 USB 메모리만을 이용하여 락을 해제하여 실행파일을 실행시킬 수 있도록 하기 위한 것이다.
이러한 소프트웨어 락 방법은, 소프트웨어 락 제어프로그램(20)을 제공하고, 상기 소프트웨어 락 제어프로그램(20)을 실행시켜, 락을 걸 소프트웨어(10)로부터 사용자에 의해 소프트웨어 실행파일(11)을 선택할 수 있게 하고, USB메모리(40)로부터 USB 고유 시리얼 번호를 입력받는다. USB고유 시리얼 번호와 사용자가 입력하는 사용자 암호에 의거하여 암호키를 생성한다.
사용자 암호화 USB고유 시리얼 번호에 의거하여 암호키를 생성하게 되면, 상기 암호키에 의거하여 상기 USB메모리(40)의 USB고유 시리얼 번호를 암호화하여 USB메모리(40)에 저장한다. 아울러 사용자 암호는 락 해제 실행파 일(LOCKexe.exe)(30)에 저장한다. 여기서 락 해제 실행파일(30)은, 소프트웨어 락 제어프로그램(20)을 이용하여 소프트웨어(10)의 소프트웨어 실행파일(11)을 암호화하여 USB메모리(40)에 저장해두고, 소프트웨어 사용자가 락을 해제시켜 소프트웨어(10)을 실행시킬 수 있도록 하기 위한 것으로서 락해제 실행파일로 작성한다.
상기 실행파일 선택과정(S10)은, 락을 걸 소프트웨어(10)의 소프트웨어 실행파일(11)을 암호화할 때 실행파일 전체를 암호화할 것인지 헤더만 암호화 할 것인지를 선택한다. 즉, 이는 사용자가 락을 걸 소프트웨어 실행파일(11)을 선택하는 과정에서 옵션을 부여하여 헤더만 암호화할 것인지 실행파일 전체를 암호화 할 것인지를 선택하게 한다.
또한, 상기 실행파일의 암호화 과정(S50) 이후에, USB 락 체크데이터를 생성하여 소프트웨어 실행파일(11) 실행시 USB를 체크하기 위한 체크데이터 생성 저장과정(S60)을 더 수행하되, 상기 체크데이터 생성 저장과정(S60)은, 실행파일 체크용 데이터를 생성하는 체크데이터 생성단계(S61)와; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하는 체크데이터 암호화단계(S62)와, 상기 암호화된 체크데이타를 USB메모리(40)에 저장하는 체크 데이터 USB저장단계(S63)와; 상기 암호키에 의거하여 암호화된 상기 체크데이터를 상기 락해제 실행파일(LOCKexe.exe)(30)에 저장하는 체크데이터 저장단계(S64)를 포함하여 수행하도록 이루어진다.
이러한 체크데이터 생성 저장과정(S60)은 소프트웨어 실행파일(11)을 실행시키는 과정중에 락이 걸린 USB가 그대로 연결되어 있는지를 체크하는 것으로서, 설정된 락 체크 시간마다 주기적으로 락 해제 체크파일(30)에 저장된 체크데이터와 USB 메모리(40)에 저장된 체크데이타를 비교하여 락 체크를 하기 위한 것이다.
상기 락 해제 환경 설정과정(S70)은, 상기 락 해제 실행파일(LOCKexe.exe)(30)를 실행시킬 때 사용할 환경정보를 설정하는 것으로서, 소프트웨어 실행파일명을 그대로 변경없이 유지하도록 선택하거나, 상기 소프트웨어 실행파일의 파일명을 사용자가 선택 입력하거나, 랜덤하게 새로운 파일명으로 생성하는 가변생성을 하도록 선택하여 소프트웨어 실행파일명 생성단계와; 소프트웨어 실행파일(11)을 생성할 폴더인 워킹 폴더(Working Folder)를 선택하는 워킹폴더 선택단계와, 락 해제 실행파일의 파일명을 입력한 파일명으로 설정하는 파일명 선택단계와, 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계를 포함하여 수행하도록 이루어진다. 이는 락을 해제시켜 소프트웨어 실행파일(11)을 실행시키기 위한 환경정보와 체크데이터를 이용한 락 체크 시간을 설정하며, 사용자에 의해 락 해제 실행파일명을 원하는 파일명으로 입력하여 락 해제 실행파일로 저장한다.
또한, 본 발명은 상기 락 해제 환경설정과정(S70)에서 자동 설치프로그램 환경 정보를 설정하여 설치 프로그램을 저장하는 설치프로그램 작성과정을 더 포함하되, 상기 설치프로그램 작성과정은, 상기 락 해제 실행파일(LOCKexe.exe) 설치폴더 설정단계와, 선택한 폴더와 파일들을 USB에서 자동으로 설치해 주도록 하는 프로그램을 작성하는 파일설치 프로그램작성단계를 포함하여 이루어진다. 이는 소프트웨어(10)를 최초 설치하는 경우에 필요한 것으로서, 파일 설치 프로그램을 작성하여 락 해제 파일을 설치하기 위한 폴더를 설정하여 주고, 설치 프로그램에 필요한 폴 더와 파일들을 USB에서 자동으로 설치(복사)해 주도록 하는 프로그램으로 작성한다.
또한 본 발명은 응용 프로그램에서 사용할 수 있는 보안 자료(Search Key + Data)데이타를 입력하는 응용프로그램 락 과정을 더 포함할 수 있으며, 응용프로그램 락 과정은, 해당 소프트웨어의 응용프로그램에서 사용할 보안 자료를 암호처리하여 USB에 저장하여두고, 해당 소프트웨어 실행시 USB로부터 해당 보안 자료를 읽어서 응용프로그램을 실행시킬 수 있도록 하기 위한 것이다. 즉, 락을 걸 소프트웨어(10)의 응용프로그램중 플러그 인 DLL(12)에 대해서도 사용자 데이터를 입력하여 상기 암호키를 이용하여 암호화하여 USB에 저장하여 보안을 걸 수 있도록 하는 것이다. 이는 소스가 있는 어플리케이션의 플러그-인 DLL에서 어플리케이션에서 사용하는 주요 DLL을 암호화하여 런 타입시 제공하는 플러그-인 DLL을 제공한다.
상기와 같은 과정들을 거쳐 소프트웨어 실행파일(11)을 암호화시킨 후, 상기 락 해제 실행파일(30), 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB메모리(40)에 저장하는 USB저장과정(S80)을 수행한다. 이때 USB메모리(40)에는 일반 파일 탐색기에서 보이는 일반 영역(42)과, 파일 탐색기에서 보이지 않도록 숨겨진 히든영역(41)을 설정하고, 상기 암호키에 의해 암호화된 락정보들은 상기 히든영역(41)에 저장하며, 암호화처리하지 않은 일반 데이터들은 상기 일반 영역(42) 내에 저장하도록 한다.
USB 메모리 스틱 제조사에서 제공하는 API(내장 콘트롤러 제어)를 사용하여 탐색기에서 보이지 않는 영역으로 설정하며, 이 히든 영역(41)을 보안 데이터 영역 으로 이용한다. 히든 영역(41)에는 암호화된 USB장치의 고유 시리얼 번호(보안 영역 불법 복제시 체크용으로 사용하기 위함), 사용자가 USB 메모리 최초 사용시 본 발명의 소프트웨어 락 제어프로그램(20)에서 가변으로 생성한 락 체크용 데이터, 락을 걸고자 하는 소프트웨어의 암호화된 소프트웨어 실행파일(이는 사용자 선택에 의해 실행파일 헤더만 암호하하여 저장할 수 있다)을 저장한다.
또한, 사용자가 입력한 데이터, 사용자 옵션에 의해 헤더를 뺀 락을 락을 걸고자 하는 소프트웨어 실행파일 데이타, 사용자가 옵션으로 선택한 파일 자료들, 사용자가 작성한 플로그-인 DLL, 사용자가 작성한 기능 파일등을 저장한다.
상기 일반 영역(42)에는 사용자가 선택한 폴더와 파일들을 저장하며, 기타 남는 공간에는 일반 USB 메모리와 같이 최종 사용자가 사용할 수 있는 저장공간으로 사용할 수 있도록 제공한다.
따라서, 일반 탐색기에서 USB메모리(40)를 불러오기 하였을 때, 히든 영역(41)에 저장된 암호화된 락정보는 보이지 않기 때문에 보안에 더욱 안전성을 향상시킨다.
도 4는 본 발명에 의한 USB를 이용한 소프트웨어 락 해제 방법 순서도이다.
상기와 같은 방법을 소프트웨어 락을 걸은 경우에, 해당 소프트웨어의 락을 해제하여 실행시키기 위한 방법은,
락 해제 실행파일(LOCKexe.exe)(30)을 USB메모리(40)로부터 불러서 실행시키는 과정(S110)과;
상기 락 해제 실행파일을 실행하면, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정(S120)과;
상기 USB메모리(40)에서 암호화하여 저장해둔 USB 고유 시리얼 번호를 읽어서 복호화하고 이를 실제 USB 고유 시리얼 번호와 일치하는 지를 체크하여 USB 락이 올바른 락인지를 확인하는 USB 락 확인 과정(S130)과;
복호화된 USB 고유 시리얼 번호와, USB 메모리(40)로부터 읽어들인 USB 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리(40)에 저장해둔 해당 소프트웨어의 실행파일(11)을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정(S140)과;
락해제 실행파일(30)에 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일(11)을 설정되어 있는 파일명을 생성하고, 별도의 쓰레드를 하나 생성하여 소프트웨어 실행파일(11)을 실행시키면서 해당 소프트웨어 실행파일(11)이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정(S150)과;
설정되어 있는 시간마다 USB 메모리(40)에 저장된 체크데이타와 락해제 파일에 저장된 체크데이터를 비교하여 USB락 체크를 하는 USB 체크과정(S160)과;
실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행파일(11)을 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 락체크를 종료하면서 락 해제 실행파일(LOCKexe.exe)(30)의 프로세스를 종료하는 종료과정(S170)을 수행하도록 이루어진다.
상기와 같이 락해제 실행파일(LOCKexe.exe)(30)를 실행시켜 암호화된 소프트웨어 실행파일(11)을 복호화하고 이를 별도의 쓰레드를 생성하여 실행시킴으로써, 사용자가 락을 건 소프트웨어(10)를 실행시켜 사용할 수 있게 된다. 이후 해당 실행파일이 종료되면, 별도 생성되었던 쓰레드가 웨이크업되면서, 해당 소프트웨어 실행파일을 삭제하고 쓰레드를 종료한다.
따라서, 이후 해당 소프트웨어를 실행시키기 위해서는, 다시 상기 락해제 실행파일을 실행시켜 상기 과정을 반복하여야만 소프트웨어 실행파일을 실행시킬 수 있게 되며, 소프트웨어 실행파일 실행중에는 락 체크 시간마다 USB메모리(40)에 암호화시켜 저장해둔 락 체크데이터를 불러서 복호화하고, 락 해제 실행파일(30)에 저장되어 있는 락 체크데이터와 비교하여 일치성 여부를 판단한다.
상기와 같은 락 해제 과정을 실행하는 중에 USB 시리얼 번호가 일치되지 않으면, 복호키가 달라지기 때문에 암호화시킨 정보들을 복호화 할 수 없으며, 락을 해제하여 소프트웨어 실행파일을 실행시키는 과정중에 USB메모리를 탈착하게 되면 체크데이터 에러가 발생되어 소프트웨어 실행파일이 종료되게 한다.
이와 같이 본 발명은, 소프트웨어의 락을 걸기 위해서 USB를 이용하되, USB고유 시리얼 번호와 사용자 암호를 이용해 원하는 소프트웨어 실행파일을 암호하하고, 락 체크를 위한 정보들을 암호화시켜 USB 메모리의 히든영역에 저장하며, 락헤제 실행시 USB메모리 고유 시리얼 번호의 일치성을 체크하고, 복호키를 생성하여 복호화하여 소프트웨어 실행파일을 실행시키며, 소프트웨어 실행파일이 종료되면, 생성된 소프트웨어 실행파일을 삭제함으로서 다시 락이 걸린 상태로 종료하게 되는 것이다.
또한, 본 발명은 상기와 같이 암호화과정을 거쳐 보안 처리한 소프트웨어를 실행시키기 위해서는, 암호화 정보를 저장하고 있는 USB메모리를 장착하고, 해당 소프트웨어를 컴퓨터의 하드 디스크 또는 CD에 저장해두고, 본 발명에 의한 소프트웨어 보안 프로그램을 실행시켜 암호해독에 의해 해당 소프트웨어를 실행시킬 수 있게 된다.
도 1은 본 발명에 의한 USB를 이용한 소프트웨어 락 방법을 설명하기 위한 개요도.
도 2는 본 발명에 의한 USB를 이용한 소프트웨어 락 방법 순서도.
도 3은 본 발명에 의한 체크데이터 생성 저장과정의 순서도.
도 4는 본 발명에 의한 USB를 이용한 소프트웨어 락 해제방법 순서도이다.
<도면의 주요부분에 대한 부호의 설명>
10 : 락을 걸 소프트웨어 11 : 소프트웨어 실행파일
12 : 플러그-인 DLL 20 : 소프트웨어 락 제어 프로그램
30 : 락 해제 실행파일(LOCKexe.exe) 40 : USB메모리
41 : 히든 영역 42 : 일반 영역

Claims (9)

  1. 락을 걸 소프트웨어 실행파일(11)을 선택하는 실행파일 선택과정(S10)과;
    소프트웨어 암호화를 위한 사용자 암호를 입력받고, USB 메모리(40)로부터 USB 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 고유 시리얼 번호를 조합하여 새로운 암호키를 생성하는 암호키 생성과정(S20)과;
    상기 암호키에 의거하여 상기 USB 고유 시리얼 번호를 암호화 하여 상기 USB 메모리(40)에 저장(S30)함과 아울러 상기 사용자 암호를 락 해제 실행파일(LOCKexe.exe)(30)에 저장하는 암호 저장과정(S40)과;
    상기 실행파일 선택과정(S10)에서 선택된 소프트웨어 실행파일(11)을 상기 암호키 생성과정(S20)에서 성성된 암호키에 의해 암호화하는 암호화 과정(S50)과;
    상기 락 해제 실행파일(30)을 실행하기 위한 환경 정보를 설정하는 락해제 환경 설정과정(S70)과;
    상기 락 해제 실행파일, 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB메모리(40)에 저장하는 USB저장과정(S80); 을 포함하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  2. 제 1 항에 있어서, 상기 실행파일 선택과정(S10)은,
    락을 걸 소프트웨어(10)의 소프트웨어 실행파일(11)을 선택하고, 선택된 소 프트웨어 실행파일(11)을 암호화할 때 실행파일 전체를 암호화할 것인지, 또는 해당 소프트웨어 실행파일의 헤더만 암호화할 것인지를 선택하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  3. 제 1 항에 있어서, 상기 실행파일의 암호화 과정(S50) 이후에,
    USB 락 체크데이터를 생성하여 소프트웨어 실행파일(11) 실행시 USB를 체크하기 위한 체크데이터 생성 저장과정(S60)을 더 포함하되,
    상기 체크데이터 생성 저장과정(S60)은, 실행파일 체크용 데이터를 생성하는 체크데이터 생성단계(S61)와; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하는 체크데이터 암호화단계(S62)와, 상기 암호화된 체크데이타를 USB메모리(40)에 저장하는 체크 데이터 USB저장단계(S63)와; 상기 암호키에 의거하여 암호화된 상기 체크데이터를 상기 락해제 실행파일(LOCKexe.exe)(30)에 저장하는 체크데이터 저장단계(S64)를 포함하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  4. 제 1 항에 있어서, 상기 락 해제 환경 설정과정(S70)은,
    상기 락 해제 실행파일(LOCKexe.exe)(30)를 실행시킬때 사용할 환경정보를 설정하되, 소프트웨어 실행파일명을 그대로 변경없이 유지하도록 선택하거나, 상기 소프트웨어 실행파일의 파일명을 사용자가 선택 입력하거나, 랜덤하게 새로운 파일명으로 생성하는 가변생성을 하도록 선택하여 소프트웨어 실행파일명 생성단계와; 소프트웨어 실행파일(11)을 생성할 폴더인 워킹 폴더(Working Folder)를 선택 하는 워킹폴더 선택단계와; 락 해제 실행파일의 파일명을 입력한 파일명으로 설정하는 파일명 선택단계와, 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계;를 포함하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  5. 제 1 항에 있어서, 상기 락 해제 환경설정과정(S70)에서 자동 설치프로그램 환경 정보를 설정하여 설치 프로그램을 저장하는 설치프로그램 작성과정을 더 포함하되,
    상기 설치프로그램 작성과정은, 상기 락 해제 실행파일(LOCKexe.exe) 설치폴더 설정단계와, 선택한 폴더와 파일들을 USB에서 자동으로 설치해 주도록 하는 프로그램을 작성하는 파일설치 프로그램작성단계를 포함하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  6. 제 1 항에 있어서, 상기 USB를 이용한 소프트웨어 락 방법은, 응용 프로그램에서 사용할 수 있는 보안 자료(Search Key + Data)데이타를 입력하는 응용프로그램 락 과정을 더 포함하며,
    상기 응용프로그램 락 과정은, 소스가 있는 어플리케이션의 플러그-인 DLL에서 어플리케이션에서 사용하는 주요 DLL을 암호화하여 USB에 저장하여두고, 해당 소프트웨어 실행시 USB로부터 암호화된 주요 DLL을 읽어서 복호화하여 응용프로그램을 실행시킬 수 있도록 하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  7. 제 1 항에 있어서, 상기 USB저장과정(S80)은,
    USB메모리(40)에 일반 파일 탐색기에서 보이는 일반 영역(42)과, 파일 탐색기에서 보이지 않도록 숨겨진 히든영역(41)을 설정하고, 상기 암호키에 의해 암호화된 락정보들은 상기 히든영역(41)에 저장하며, 암호화처리하지 않은 일반 데이터들은 상기 일반 영역(42) 내에 저장하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  8. 제 7 항에 있어서, 상기 히든 영역(41)에는 암호화된 USB장치의 고유 시리얼 번호, 사용자가 USB 메모리 최초 사용시 본 발명의 소프트웨어 락 제어프로그램(20)에서 가변으로 생성한 락 체크용 데이터, 락을 걸고자 하는 소프트웨어의 암호화된 소프트웨어 실행파일을 저장하며,
    사용자가 입력한 데이터, 사용자 옵션에 의해 헤더를 뺀 락을 락을 걸고자 하는 소프트웨어 실행파일 데이타, 사용자가 옵션으로 선택한 파일 자료들, 사용자가 작성한 플로그-인 DLL, 사용자가 작성한 기능 파일을 저장하고,
    상기 일반 영역(42)에는 사용자가 선택한 폴더와 파일들을 저장하며, 기타 남는 공간에는 일반 USB 메모리와 같이 최종 사용자가 사용할 수 있는 저장공간으로 사용할 수 있도록 제공하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
  9. USB를 이용한 소프트웨어 락 방법에 의해 락을 건 소프트웨어의 락 해제 방법에 있어서,
    락 해제 실행파일(LOCKexe.exe)(30)을 USB메모리(40)로부터 불러서 실행시키는 과정(S110)과;
    상기 락 해제 실행파일을 실행하면, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정(S120)과;
    상기 USB메모리(40)에서 암호화하여 저장해둔 USB 고유 시리얼 번호를 읽어서 복호화하고 이를 실제 USB 고유 시리얼 번호와 일치하는 지를 체크하여 USB 락이 올바른 락인지를 확인하는 USB 락 확인 과정(S130)과;
    복호화된 USB 고유 시리얼 번호와, USB 메모리(40)로부터 읽어들인 USB 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리(40)에 저장해둔 해당 소프트웨어의 실행파일(11)을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정(S140)과;
    락해제 실행파일(30)에 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일(11)을 설정되어 있는 파일명을 생성하고, 별도의 쓰레드를 하나 생성하여 소프트웨어 실행파일(11)을 실행시키면서 해당 소프트웨어 실행파일(11)이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정(S150)과;
    설정되어 있는 시간마다 USB 메모리(40)에 저장된 체크데이타와 락해제 파일에 저장된 체크데이터를 비교하여 USB락 체크를 하는 USB 체크과정(S160)과;
    실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행 파일(11)을 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 락체크를 종료하면서 락 해제 실행파일(LOCKexe.exe)(30)의 프로세스를 종료하는 종료과정(S170)을 포함하는 것을 특징으로 하는 USB를 이용한 소프트웨어 락 방법.
KR1020090050306A 2009-06-08 2009-06-08 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법 Expired - Fee Related KR101042294B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090050306A KR101042294B1 (ko) 2009-06-08 2009-06-08 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090050306A KR101042294B1 (ko) 2009-06-08 2009-06-08 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법

Publications (2)

Publication Number Publication Date
KR20100131618A true KR20100131618A (ko) 2010-12-16
KR101042294B1 KR101042294B1 (ko) 2011-06-22

Family

ID=43507538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090050306A Expired - Fee Related KR101042294B1 (ko) 2009-06-08 2009-06-08 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법

Country Status (1)

Country Link
KR (1) KR101042294B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101078546B1 (ko) * 2011-06-27 2011-11-01 박주혁 범용 저장장치의 식별정보를 기반으로 하는 보안 데이터 파일 암호화 및 복호화 장치, 그를 이용한 전자 서명 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079414A (ko) * 1998-04-06 1999-11-05 강승희 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법
KR100834990B1 (ko) * 2005-08-01 2008-06-04 민정홍 이동식저장장치에서 실행되는 보안시스템

Also Published As

Publication number Publication date
KR101042294B1 (ko) 2011-06-22

Similar Documents

Publication Publication Date Title
US10049207B2 (en) Methods of operating storage systems including encrypting a key salt
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
JP4880029B2 (ja) 暗号化されたストレージデバイスについてのチップセット鍵管理サービスの利用の強制
US7890993B2 (en) Secret file access authorization system with fingerprint limitation
US8745409B2 (en) System and method for securing portable data
CN102508791B (zh) 一种对硬盘分区进行加密的方法及装置
US20080181406A1 (en) System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
EP2264640B1 (en) Feature specific keys for executable code
US8503674B2 (en) Cryptographic key attack mitigation
JP6072091B2 (ja) アプリケーション・プログラム用の安全なアクセス方法および安全なアクセス装置
WO2005006109A2 (en) System and method for authenticating software using hidden intermediate keys
TW200937249A (en) Handling of secure storage key in always on domain
JP4610557B2 (ja) データ管理方法、そのプログラム及びプログラムの記録媒体
JP2008219871A (ja) ハードウェア鍵を介するストレージデバイスのセットのデータ暗号化およびデータアクセスのシステムおよび方法
JP3976638B2 (ja) 電子機器及びその不正使用防止方法並びにその不正使用防止プログラム
KR101042294B1 (ko) Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법
US20050086528A1 (en) Method for hiding information on a computer
HORÁČEK Hardware-encrypted disks in Linux
CN116432195A (zh) 加密方法及装置、加密锁、电子设备和存储介质
KR20230124434A (ko) 전자 장치의 사용자 인증 방법 및 이를 수행하는 전자 장치
JP2010092301A (ja) 記憶装置、制御方法及び制御システム
KR20140136166A (ko) 관리자 권한 획득 방지 방법 및 장치
JP2007011796A (ja) セキュリティ管理システムおよびその方法
KR20070046363A (ko) 데이터 유출차단장치 및 이를 포함하는 데이터 보안저장장치

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20090608

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20101130

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20110531

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20110610

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20110610

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20140626

Start annual number: 4

End annual number: 4

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20170509