KR101042294B1 - The software lock method which uses USB memory stick - Google Patents

The software lock method which uses USB memory stick Download PDF

Info

Publication number
KR101042294B1
KR101042294B1 KR1020090050306A KR20090050306A KR101042294B1 KR 101042294 B1 KR101042294 B1 KR 101042294B1 KR 1020090050306 A KR1020090050306 A KR 1020090050306A KR 20090050306 A KR20090050306 A KR 20090050306A KR 101042294 B1 KR101042294 B1 KR 101042294B1
Authority
KR
South Korea
Prior art keywords
usb memory
software
lock
file
executable file
Prior art date
Application number
KR1020090050306A
Other languages
Korean (ko)
Other versions
KR20100131618A (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 KR1020090050306A priority Critical patent/KR101042294B1/en
Publication of KR20100131618A publication Critical patent/KR20100131618A/en
Application granted granted Critical
Publication of KR101042294B1 publication Critical patent/KR101042294B1/en

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 메모리 락을 체크하고, 소프트웨어 실행파일을 실행시킨 후, 실행파일이 종료되면 자동으로 실행파일을 삭제하여 락이 걸린상태로 복귀하도록 한 것이다. The present invention relates to a software lock control method and a lock release control method using a USB memory, generating an encryption key using a unique serial number and a user password of a USB memory, encrypting a software executable file, and storing it in a USB memory. Save the unique serial number encrypted to the USB memory for the lock check in the USB memory, and save the user encrypted encrypted check data to the unlock file to lock the unlock file to the USB memory, and unlock the executable file. When you run the program, create a decryption key based on the USB memory unique serial number and the user password, check the USB memory lock by checking the correspondence between the encrypted and stored USB memory unique serial number, and run the software executable file. When the executable file ends, it automatically deletes the executable file It was to return to the state.

소프트웨어, 락, 보안, USB 메모리 , 락체크, 체크 데이터, 실행파일, 헤더Software, Lock, Security, USB Memory, Lock Check, Check Data, Executable, Header

Description

USB를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법{The software lock method which uses USB memory stick}The software lock method and lock release control method using the USB {The software lock method which uses USB memory stick}

본 발명은 소프트웨어 락 제어방법에 관한 것으로서, 더욱 상세하게는 소프트웨어의 실행파일을 USB 메모리를 이용하여 암호화하여 복제 사용을 방지할 수 있도록 한 USB 메모리를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법에 관한 것이다.The present invention relates to a software lock control method, and more particularly, to a software lock control method and a lock release control method using a USB memory to prevent the use of duplication by encrypting an executable file of the software using a USB memory. will be.

컴퓨터를 이용함에 있어서 불법 복제 소프트웨어로 인한 여러가지 문제점들이 대두되고, 이러한 소프트웨어 불법 복제를 방지하고자 다양한 방법이 이용되고 제안된바 있으나 불법 복제를 확실하게 방지할 수 있는 방안이 없어서 현재에도 수많은 불법 복제 소프트웨어들이 유통되고 있는 실정이다.In computer use, various problems caused by pirated software have emerged, and various methods have been used and proposed to prevent such software piracy, but there is no way to reliably prevent piracy. Are in circulation.

소프트웨어 불법 복제 방지를 위한 방법으로 가장 기본적으로는 소프트웨어를 암호화하여 제공하고, 정품 구매자에게 암호키를 제공하여 불법복제를 방지하는 방법이 제공되고 있으나, 이러한 방법도 암호키의 유출이나, 소프트웨어 해킹으로 인하여 불법복제가 행해지고 있다.As a method to prevent software piracy, the most basic method is to encrypt the software and provide encryption keys to genuine buyers to prevent illegal copying. Due to this piracy is being done.

그런데, 소프트웨어의 소스 코드를 알고 있는 소프트웨어 개발자나, 소스코 드를 제공받은 유통업자인 경우에는 그나마도 소프트웨어 자체에 일부를 암호화하여 암호키를 제공하는 방식으로 불법복제를 방지할 수 있으나, 소스코드를 제공하지 않는 소프트웨어를 유통하고자 하는 경우는 소프트웨어의 파일 내부 코드에 손댈수 업는 즉, 일부 암호화 처리등을 할 수 없기 때문에 단순히 보안키를 제공하여 압축을 해제하여 설치하는 제한 정도에 그치고 있었다.However, in the case of a software developer who knows the source code of the software, or a distributor provided with the source code, it is possible to prevent illegal copying by encrypting a part of the software itself and providing an encryption key. If you don't want to distribute software that you don't want, you can't touch the internal code of the software, that is, you can't do some encryption processing.

한편, 종래 USB 메모리 락장치가 알려져 있으나, 종래 USB 메모리 락장치는 일반 USB 메모리 장치를 이용하는 것이 아니고, 고가의 스마트칩을 USB 메모리 장치로 제작하여 컴퓨터에 장착하고, 정품 소프트웨어를 인증하도록 하는 USB 메모리 락 장치가 알려져 있다.Meanwhile, although a conventional USB memory lock device is known, a conventional USB memory lock device does not use a general USB memory device, but a USB memory that makes an expensive smart chip into a USB memory device, mounts it on a computer, and authenticates genuine software. Locking devices are known.

그런데 스마트 칩을 이용하는 종래 USB 메모리 락 장치는, 즉, 스마트칩을 이용하는 USB 메모리 락은 스마트 칩의 특성상 하드웨어적으로 USB 메모리 데이터를 복사하는 것은 방지되나, 소프트웨어 소프트웨어에서 USB 메모리 락 데이터를 요구했을때 제공하는 락 데이터의 인터페이스가 DLL 형태로 제공된다. 그러므로 USB 메모리 모니터링 툴을 활용하게 되면, USB 메모리 인터페이스 데이터를 알아낼 수 있게 된다. 즉, USB 메모리 모니터링 툴에서 USB 메모리에서 락 데이터로 제공되는 DLL 정보가 해킹될 수 있는 것이다. 이렇게 해킹된 락 데이터인 DLL 정보를 동일 조건으로 생성하여 저장시킨 USB 메모리 락장치를 복제할 수 있게 되므로 소프트웨어 락이 해킹될 수 있다는 단점이 있다.However, the conventional USB memory lock device using the smart chip, that is, the USB memory lock using the smart chip is prevented from copying the USB memory data in hardware due to the characteristics of the smart chip, but when the software software requests the USB memory lock data The interface of the lock data provided is provided in the form of a DLL. Therefore, if you use the USB memory monitoring tool, you can find out the USB memory interface data. That is, the DLL information provided as lock data in the USB memory may be hacked by the USB memory monitoring tool. Since the USB memory lock device that generates and stores the DLL information as the hacked lock data under the same condition can be duplicated, there is a disadvantage that the software lock can be hacked.

이와 같이 종래 스마트칩을 이용하는 USB 메모리 락장치는 USB 메모리 인터페이스 데이터를 알아낼수 있게 되어 동일한 DLL을 생성하여 제공한다면 소프트웨어 락 해킹이 가능해진다는 단점이 있는 것이다.As such, the conventional USB memory lock device using a smart chip has a disadvantage of being able to detect the USB memory interface data, so that a software lock hack is possible if the same DLL is generated and provided.

본 발명은 종래의 소프트웨어 보안 방법의 문제점과 값비싼 스마트 칩을 내장한 USB 메모리 보안방법의 문제점을 감안하여 유에스비(USB 메모리 ) 메모리를 이용하여 소프트웨어의 보안처리를 확실하게 함으로써 불법 복제를 방지할 수 있도록 한 소프트웨어 락 제어방법 및 락 해제 제어방법을 제공하기 위한 것이다.SUMMARY OF THE INVENTION In view of the problems of the conventional software security method and the problem of the USB memory security method incorporating an expensive smart chip, the present invention can prevent illegal copying by ensuring the security processing of the software using the USB memory. To provide a software lock control method and a lock release control method.

본 발명에 의한 소프트웨어 락 제어방법은, 컴퓨터 단말기 내에 소프트웨어 락 제어프로그램을 설치함과 아울러 USB 메모리(40)를 장착하여 상기 소프트웨어 락 제어프로그램에 의해 수행되는 하기의 과정으로 컴퓨터 단말기에 설치된 소프트웨어에 대해서 소프트웨어 락 및 해제를 제어하는 USB 메모리를 이용한 소프트웨어 락 제어 방법으로서, 상기 소프트웨어 락 제어프로그램은,
락을 걸 소프트웨어 실행파일을 선택하는 실행파일 선택과정과;
The software lock control method according to the present invention includes a software lock control program installed in a computer terminal and a software installed on the computer terminal by the following procedure performed by the software lock control program by installing a USB memory 40. A software lock control method using a USB memory for controlling software lock and release, wherein the software lock control program includes:
An executable file selection process of selecting a software executable file to be locked;

삭제delete

소프트웨어 암호화를 위한 사용자 암호를 입력받고, USB 메모리 로부터 USB 메모리 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 메모리 고유 시리얼 번호를 조합하여 새로운 암호키를 생성하는 암호키 생성과정과;An encryption key generation process of receiving a user password for software encryption, receiving a USB memory unique serial number from a USB memory, and generating a new encryption key by combining the user password and the USB memory unique serial number;

상기 암호키에 의거하여 상기 USB 메모리 고유 시리얼 번호를 암호화 하여 상기 USB 메모리에 저장함과 아울러 상기 사용자 암호를 락 해제 실행파일(LOCKexe.exe)에 저장하는 암호 저장과정과;Encrypting the unique serial number of the USB memory based on the encryption key and storing the encrypted password in the USB memory and storing the user password in a lock unlock execution file (LOCKexe.exe);

상기 실행파일 선택과정에서 선택된 실행파일을 상기 암호키 생성과정에서 성성된 암호키에 의해 암호화하는 암호화 과정과;An encryption process of encrypting the execution file selected in the execution file selection process by the encryption key generated in the encryption key generation process;

상기 락 해제 실행파일을 실행하기 위한 환경 정보를 설정하는 락해제 환경 설정과정과;A lock release environment setting step of setting environment information for executing the lock release executable file;

상기 락 해제 실행파일, 암호화된 실행파일, 실행파일을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB 메모리에 저장하는 USB 메모리 저장과정; 을 수행함으로써 소프트웨어를 락 시키는 것을 특징으로 한다.A USB memory storing process of storing the unlocking executable file, the encrypted executable file, folder information and files necessary for executing the executable file in the USB memory; It is characterized by locking the software by performing.

상기 실행파일 선택과정은, 락을 걸 소프트웨어의 실행파일을 암호화할때 실행파일 전체를 암호화 할 것인지 헤더만 암호화 할 것인지를 선택한다.The executable file selection process selects whether to encrypt the entire executable file or only the header when encrypting the executable file of the software to be locked.

또한, 상기 실행파일의 암호화 과정 이후에 체크데이터를 생성하여 실행파일 실행시 USB 메모리를 체크하기 위한 체크데이터 생성 저장과정을 더 수행하되, 상기 체크데이터 생성 저장과정은, 실행파일 체크용 데이터를 생성하는 체크데이터 생성단계와; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하여 USB 메모리에 저장하는 체크 데이터 USB 메모리 저장단계와; 상기 암호키에 의거하여 암호화된 상기 체크데이터를 상기 락해제 실행파일(LOCKexe.exe)에 저장하는 체크데이터 저장단계를 포함하여 수행하도록 이루어진다.Further, after generating the check data after the encryption process of the executable file, the check data generation and storing process for checking the USB memory when the executable file is executed is further performed, but the check data generation and storing process generates data for checking the executable file. Generating check data; A check data USB memory storing step of encrypting the check data based on the encryption key and storing the check data in a USB memory; And a check data storing step of storing the check data encrypted based on the encryption key in the unlock execution file (LOCKexe.exe).

상기 락 해제 환경 설정과정은, 상기 락 해제 실행파일(LOCKexe.exe)를 실행시킬때 사용할 환경정보를 설정하는 것으로서, 소프트웨어 실행파일명을 그대로 변경없이 유지하도록 선택하거나, 상기 소프트웨어 실행파일의 파일명을 사용자가 선택 입력하거나, 랜덤하게 새로운 파일명으로 생성하는 가변생성을 하도록 선택하는 소프트웨어 실행파일명 생성단계와; 상기 소프트웨어 실행파일을 생성할 폴더인 워킹 폴더(Working Folder)를 선택하는 워킹폴더 선택단계와, 락 해제 실행파일의 파일명을 입력한 파일명으로 설정하는 파일명 선택단계와, 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계를 포함하여 수행하도록 이루어진다.The lock release environment setting process is for setting environment information to be used when executing the lock release executable file (LOCKexe.exe), and selecting to keep the software executable file name as it is or changing the file name of the software executable file. A software execution file name generation step of selecting and inputting a variable or selecting a variable to randomly generate a new file name; A working folder selection step of selecting a working folder which is a folder for generating the software executable file, a file name selection step of setting a file name of the unlocking execution file as an input file name, and a lock check time period during software execution And a lock check time setting step of setting.

또한, 본 발명은 상기 락 해제 환경설정과정 이후에 자동 설치프로그램 환경 정보를 설정하여 설치 프로그램을 저장하는 설치프로그램 작성과정을 더 포함하되,In addition, the present invention further includes an installation program creation process for storing the installation program by setting the automatic installation environment information after the lock release environment setting process,

상기 설치프로그램 작성과정은, 상기 락 해제 실행파일(LOCKexe.exe) 설치폴더 설정단계와, 선택한 폴더와 파일들을 USB 메모리에서 자동으로 설치해 주도록 하는 프로그램을 작성하는 파일설치 프로그램작성단계를 포함하여 이루어진다.The installation program creation process includes a step of setting a lock release execution file (LOCKexe.exe) installation folder and a file installation program creation step of creating a program for automatically installing selected folders and files from a USB memory.

또한 본 발명은 소스가 있는 소프트웨어에서 사용할 수 있는 두가지 보안기능을 포함할 수 있다. 첫 번째는 보안 자료(Search Key + Data)데이터를 입력받아 상기 암호키를 이용해 암호화하여 저장하는 보안자료 락 과정을 더 포함할 수 있으며, 보안자료 락 과정은, 해당 소프트웨어에서 사용할 보안 자료를 입력받아 상기 암호키를 이용하여 암호처리하여 USB 메모리에 저장하여두고, 해당 소프트웨어 실행시 제공받은 API를 통하여 USB 메모리로부터 해당 보안 자료를 읽어서 소프트웨어를 실행시킬 수 있도록 하기 위한 것이다. 두 번째는 소프트웨어에서 사용하는 주요 기능을 포함한 DLL을 서용자 선택 데이터로 입력받아 상기 암호키를 이용하여 암호화하여 저장하고 윈도우 탐색기에서 해당 DLL이 보이지 않도록 하는 플러그-인 DLL 선택하는 과정을 더 포함할 수 있으며, 실행 시 제공받은 API를 통하여 암호화 되어있는 플러그-인 기능을 실행 할 수 있다. 즉, 소스가 있는 소프트웨어의 플러그-인 DLL에서 소프트웨어에서 사용하는 주요 DLL을 암호화하여 런 타입시 제공하는 플러그-인 DLL을 제공한다.The present invention may also include two security functions that can be used in sourced software. The first may further include a security data lock process of receiving the security data (Search Key + Data) data and encrypting and storing the data using the encryption key. The security data lock process may be performed by receiving a security data to be used by the corresponding software. The encryption key is processed using the encryption key and stored in the USB memory, so that the software can be executed by reading the corresponding security data from the USB memory through the API provided when the corresponding software is executed. The second step may further include selecting a plug-in DLL that receives the DLL including the main functions used in the software as user selection data, encrypts and stores it using the encryption key, and makes the DLL invisible in Windows Explorer. You can execute the encrypted plug-in function through the API provided at the time of execution. In other words, it provides a plug-in DLL provided at run type by encrypting the main DLL used in the software from the plug-in DLL of the source software.

한편, 상기와 같은 방법을 소프트웨어 락을 걸은 경우에, 해당 소프트웨어의 락 해제 제어방법은,On the other hand, when the software lock is applied to the above method, the lock release control method of the software,

락 해제 실행파일(LOCKexe.exe)을 USB 메모리 로부터 불러서 실행시키는 과정과;Loading and executing the unlock file (LOCKexe.exe) from the USB memory;

상기 락 해제 실행파일을 실행하면, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 메모리 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정과;A decryption key generation process of generating a decryption key by combining the user password and the USB memory serial number stored in the lock release execution file when executing the lock release execution file;

상기 USB 메모리에서 암호화하여 저장해둔 USB 메모리 고유 시리얼 번호를 읽어서 복호화하고 이를 실제 USB 메모리 고유 시리얼 번호와 일치하는 지를 체크하여 USB 메모리 락이 올바른 락인지를 확인하는 USB 메모리 락 확인 과정과;A USB memory lock checking process of reading and decrypting the USB memory unique serial number encrypted and stored in the USB memory and checking whether the USB memory unique serial number matches the actual USB memory unique serial number;

복호화된 USB 메모리 고유 시리얼 번호와, USB 메모리 로부터 읽어들인 USB 메모리 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리에 저장해둔 해당 소프트웨어의 실행파일을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정과;Decrypting the decrypted USB memory by reading the executable file of the corresponding software encrypted and stored in the USB memory when the decrypted USB memory unique serial number and the USB memory unique serial number read from the USB memory match each other;

락해제 실행파일에 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일을 설정되어 있는 파일명을 생성하고, 별도의 쓰레드를 하나 생성하여 소프트웨어 실행파일을 실행시키면서 해당 소프트웨어 실행파일이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정과;It creates a file name that sets the decrypted software executable file in the working folder set in the unlocked executable file, creates a separate thread to execute the software executable file, and sleeps until the software executable file ends. A waiting execution file execution process;

설정되어 있는 시간마다 USB 메모리에 저장된 체크데이터와 락해제 파일에 저장된 체크데이터를 비교하여 USB 메모리 락 체크를 하는 USB 메모리 체크과정과;A USB memory check process of performing a USB memory lock check by comparing the check data stored in the USB memory with the check data stored in the unlocking file every set time;

실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행파일을 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 락체크를 종료하면서 락 해제 실행파일(LOCKexe.exe)의 프로세스를 종료하는 종료과정을 포함하는 것을 특징으로 한다.When the thread is waked up and the thread is woken up, the software executable file is deleted and the thread is terminated. When the thread is terminated, the lock check is terminated and the process of the unlocking executable file (LOCKexe.exe) is terminated. Characterized in that it comprises a termination process.

본 발명은, 상기와 같이 USB 메모리를 이용한 실행파일 암호화 방법에 있어서, 실행시 속도를 위하여 실행파일의 헤더 부분만을 암호화하거나, 실행파일 전체를 암호화하거나, 또는 프로그램 전체를 암호화할 수 있으며, 이는 사용자의 선택에 따라 선택적으로 암호화한다.According to the present invention, in the executable file encryption method using the USB memory as described above, only the header portion of the executable file, the entire executable file, or the entire program can be encrypted for execution speed. Optionally encrypt according to your choice.

또한, 본 발명은 상기와 같이 암호화과정을 거쳐 보안 처리한 소프트웨어를 실행시키기 위해서는, 암호화 정보를 저장하고 있는 USB 메모리를 장착하고, 해당 소프트웨어를 컴퓨터의 하드 디스크 또는 CD에 저장해두고, 본 발명에 의한 소프트웨어 보안 프로그램을 실행시켜 암호해독에 의해 해당 소프트웨어를 실행시킬 수 있게 된다.In addition, according to the present invention, in order to execute the software secured through the encryption process as described above, a USB memory storing encryption information is mounted, and the software is stored in a hard disk or CD of a computer. By running a software security program, the software can be executed by decryption.

이와 같은 본 발명은, USB 메모리 고유 시리얼 번호와 사용자 암호를 이용하여 암호키를 생성하여 락을 걸 소프트웨어의 실행파일을 암호화하고, USB 메모리 고유 시리얼 번호를 상기 암호키에 의해 암호화하며, 체크데이터를 암호키에 의해 암호화하며, 락 해제 실행파일에 사용자 암호와 암호화된 체크데이터를 저장하며, 상기 락해제 실행파일과 상기 암호화된 정보들을 USB 메모리에 저장하여 소프트웨어 락을 걸고, 락이 걸린 소프트웨어는 상기 USB 메모리를 이용해서만 락을 해제시킬 수 있도록 함으로서, USB 메모리를 이용해서 소프트웨어 락 및 락 해제를 할 수 있도록 보안 처리가 가능하며, USB 메모리 정보를 복사하여 다른 USB 메모리에 저장해도 실행을 할 수 없기 때문에 소프트웨어 불법복제를 확실하게 방지할 수 있는 효과가 있다.In the present invention, the encryption key is generated using the USB memory unique serial number and the user password to encrypt the executable file of the software to be locked, the USB memory unique serial number is encrypted by the encryption key, and the check data is encrypted. Encrypting with an encryption key, storing a user password and encrypted check data in the unlocking executable file, and storing the unlocking executable file and the encrypted information in a USB memory to lock the software, and the locked software stores the USB The lock can only be unlocked using the memory, so security processing can be performed to lock and unlock the software using the USB memory, and the USB memory information cannot be executed by copying it to another USB memory. As a result, software piracy can be reliably prevented.

이하 본 발명의 실시 예를 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 제어방법을 설명하기 위한 개요도이고, 도 2는 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 제어방법 순서도이다. 1 is a schematic diagram for explaining a software lock control method using a USB memory according to the present invention, Figure 2 is a flow chart of a software lock control method using a USB memory according to the present invention.

도 2에 도시된 바와 같이, 컴퓨터 단말기 내에 소프트웨어 락 제어프로그램(20)을 설치함과 아울러 USB 메모리(40)를 장착하여 상기 소프트웨어 락 제어프로그램(20)에서 상기 USB 메모리(40)를 이용하여 하기의 과정으로 컴퓨터 단말기에 설치된 소프트웨어에 대해서 소프트웨어 락 및 해제 제어를 하는 USB 메모리를 이용한 소프트웨어 락 제어 방법에 있어서, 상기 소프트웨어 락 제어프로그램(20)은, As shown in FIG. 2, a software lock control program 20 is installed in a computer terminal and a USB memory 40 is mounted to use the USB memory 40 in the software lock control program 20. In the software lock control method using a USB memory for performing software lock and release control for the software installed in the computer terminal in the process of, the software lock control program 20,

사용자의 선택신호를 입력받아 락을 걸 소프트웨어(10)의 실행파일(11)을 선택하는 실행파일 선택과정(S10)과;An executable file selection process (S10) of selecting an executable file 11 of the software 10 to be locked by receiving a user's selection signal;

소프트웨어 암호화를 위한 사용자 암호를 사용자로부터 입력받고, USB 메모리(40)로부터 USB 메모리 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 메모리 고유 시리얼 번호를 조합하여 새로운 암호키를 생성하는 암호키 생성과정(S20)과;An encryption key generation process for receiving a user password for software encryption from a user, receiving a USB memory unique serial number from a USB memory 40, and generating a new encryption key by combining the user password and the USB memory unique serial number. (S20);

상기 암호키에 의거하여 상기 USB 메모리 고유 시리얼 번호를 암호화 하여 상기 USB 메모리(40)에 저장(S30)함과 아울러 락 해제 실행파일(LOCKexe.exe)(30)을 생성하여 상기 사용자 암호를 락 해제 실행파일(LOCKexe.exe)(30)에 저장하는 암호 저장과정(S40)과;Based on the encryption key, the USB memory unique serial number is encrypted and stored in the USB memory 40 (S30), and a lock release executable file (LOCKexe.exe) 30 is generated to unlock the user password. A password storing process (S40) for storing in the executable file (LOCKexe.exe) 30;

상기 실행파일 선택과정(S10)에서 선택된 소프트웨어 실행파일(11)을 상기 암호키 생성과정(S20)에서 성성된 암호키에 의해 암호화하는 암호화 과정(S50)과;An encryption step (S50) of encrypting the software executable file (11) selected in the execution file selection step (S10) with the encryption key generated in the encryption key generation step (S20);

상기 락 해제 실행파일(30)을 실행하기 위한 환경 정보를 사용자로부터 입력받아 설정하는 락해제 환경 설정과정(S70)과;A lock release environment setting step (S70) of receiving and setting environment information for executing the lock release execution file 30 from a user;

상기 락 해제 실행파일, 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB 메모리(40)에 저장하는 USB 메모리 저장과정(S80); 을 수행함으로써 소프트웨어를 락 시키는 것을 특징으로 한다.A USB memory storing step (S80) of storing the unlocking executable file, the encrypted software executable file (11), folder information and files necessary for executing the software executable file (11) in the USB memory (40); It is characterized by locking the software by performing.

이와 같은 본 발명에 의한 소프트웨어 락 제어방법은,Such a software lock control method according to the present invention,

락을 걸 소프트웨어(10)에서 소프트웨어 실행파일(11)을 암호화하여 USB 메모리(40)에 저장한다. 이때 암호화하기 위한 암호키를 USB 메모리(40)의 고유 시리얼 번호와 사용자 암호에 의해 생성하도록 한다. 이와 같이 생성된 암호키에 의해 락을 걸 소프트웨어 실행파일(11)을 암호화하여 USB 메모리(40)에 저장하는 것이다. 상기 USB 메모리(40)의 고유 시리얼 번호는 USB 메모리(40)마다 생산에 따른 코드로서 부여되는 것으로서, 각 하드웨어 장치별로 각기 다른 고유 시리얼 번호를 가지므로, 임의의 USB 메모리를 이용하여 소프트웨어 락을 걸게 되면, 반드시 락을 걸때 사용된 USB 메모리 만을 이용하여 락을 해제하여 실행파일을 실행시킬 수 있도록 하기 위한 것이다.The software executable file 11 is encrypted by the software 10 to be locked and stored in the USB memory 40. At this time, the encryption key for encryption is generated by the unique serial number of the USB memory 40 and the user password. The software execution file 11 to be locked by the encryption key generated as described above is encrypted and stored in the USB memory 40. The unique serial number of the USB memory 40 is assigned as a code according to production for each of the USB memories 40, and has a unique serial number for each hardware device, so that a software lock can be performed using any USB memory. If necessary, the lock must be unlocked using only the USB memory used to lock the executable file.

이러한 소프트웨어 락 제어방법은, 소프트웨어 락 제어프로그램(20)을 제공하고, 상기 소프트웨어 락 제어프로그램(20)을 실행시켜, 락을 걸 소프트웨어(10)로부터 사용자에 의해 소프트웨어 실행파일(11)을 선택할 수 있게 하고, USB 메모리(40)로부터 USB 메모리 고유 시리얼 번호를 입력받는다. USB 메모리 고유 시리얼 번호와 사용자가 입력하는 사용자 암호에 의거하여 암호키를 생성한다.This software lock control method can provide a software lock control program 20, execute the software lock control program 20, and select the software executable file 11 by the user from the software 10 to be locked. And the USB memory 40 receives a unique serial number from the USB memory 40. The encryption key is generated based on the USB memory unique serial number and the user password entered by the user.

사용자 암호화 USB 메모리 고유 시리얼 번호에 의거하여 암호키를 생성하게 되면, 상기 암호키에 의거하여 상기 USB 메모리(40)의 USB 메모리 고유 시리얼 번호를 암호화하여 USB 메모리(40)에 저장한다. 아울러 사용자 암호는 락 해제 실행파일(LOCKexe.exe)(30)에 저장한다. 여기서 락 해제 실행파일(30)은, 소프트웨어 락 제어프로그램(20)을 이용하여 소프트웨어(10)의 소프트웨어 실행파일(11)을 암호화하여 USB 메모리(40)에 저장해두고, 소프트웨어 사용자가 락을 해제시켜 소프트웨어(10)을 실행시킬 수 있도록 하기 위한 것으로서 락해제 실행파일로 작성한다.When the encryption key is generated based on the user encrypted USB memory unique serial number, the USB memory 40 serially encrypts the USB memory 40 based on the encryption key and stores the encrypted encryption key. In addition, the user password is stored in the unlock file (LOCKexe.exe) (30). Here, the lock release executable file 30 encrypts the software executable file 11 of the software 10 by using the software lock control program 20 and stores it in the USB memory 40. The software user releases the lock. The software 10 is executed so that the software can be executed as an unlocked executable file.

상기 실행파일 선택과정(S10)은, 락을 걸 소프트웨어(10)의 소프트웨어 실행파일(11)을 암호화할 때 실행파일 전체를 암호화할 것인지 헤더만 암호화 할 것인지를 선택한다. 즉, 이는 사용자가 락을 걸 소프트웨어 실행파일(11)을 선택하는 과정에서 옵션을 부여하여 헤더만 암호화할 것인지 실행파일 전체를 암호화 할 것인지를 선택하게 한다.In the execution file selection process (S10), when encrypting the software executable file 11 of the software 10 to be locked, it selects whether to encrypt the entire executable file or only the header. That is, the user gives an option in the process of selecting the software executable file 11 to be locked so as to select whether to encrypt only the header or the entire executable file.

또한, 상기 실행파일의 암호화 과정(S50) 이후에, USB 메모리 락 체크데이터를 생성하여 소프트웨어 실행파일(11) 실행시 USB 메모리를 체크하기 위한 체크데이터 생성 저장과정(S60)을 더 수행하되, 상기 체크데이터 생성 저장과정(S60)은, 실행파일 체크용 데이터를 생성하는 체크데이터 생성단계(S61)와; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하는 체크데이터 암호화단계(S62)와, 상기 암호화된 체크데이터를 USB 메모리(40)에 저장하는 체크 데이터 USB 메모리 저장단계(S63)와; 상기 암호키에 의거하여 암호화된 상기 체크데이터를 상기 락해제 실행파일(LOCKexe.exe)(30)에 저장하는 체크데이터 저장단계(S64)를 포함하여 수행하도록 이루어진다.In addition, after the encryption process (S50) of the executable file, the USB memory lock check data is generated to further perform the check data generation and storage process (S60) for checking the USB memory when the software executable file 11 is executed. Check data generation and storing step (S60), and check data generation step (S61) for generating data for the execution file check; A check data encryption step (S62) for encrypting the check data based on the encryption key (S62), and a check data USB memory storage step (S63) for storing the encrypted check data in the USB memory (40); And a check data storage step (S64) of storing the check data encrypted based on the encryption key in the unlock execution file (LOCKexe.exe) 30.

이러한 체크데이터 생성 저장과정(S60)은 소프트웨어 실행파일(11)을 실행시키는 과정중에 락이 걸린 USB 메모리 가 그대로 연결되어 있는지를 체크하는 것으로서, 설정된 락 체크 시간마다 주기적으로 락 해제 체크파일(30)에 저장된 체크데이터와 USB 메모리(40)에 저장된 체크데이터를 비교하여 락 체크를 하기 위한 것이다. This check data generation and storage process (S60) is to check whether the locked USB memory is connected as it is during the process of executing the software executable file (11), periodically to the lock release check file (30) every set lock check time The lock check is performed by comparing the stored check data with the check data stored in the USB memory 40.

상기 락 해제 환경 설정과정(S70)은, 상기 락 해제 실행파일(LOCKexe.exe)(30)를 실행시킬 때 사용할 환경정보를 설정하는 것으로서, 소프트웨어 실행파일명을 그대로 변경없이 유지하도록 선택하거나, 상기 소프트웨어 실행파일의 파일명을 사용자가 선택 입력하거나, 랜덤하게 새로운 파일명으로 생성하는 가변생성을 하도록 선택하는 소프트웨어 실행파일명 생성단계와; 소프트웨어 실행파일(11)을 생성할 폴더인 워킹 폴더(Working Folder)를 선택하는 워킹폴더 선택단계와, 락 해제 실행파일의 파일명을 입력한 파일명으로 설정하는 파일명 선택단계와, 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계를 포함하여 수행하도록 이루어진다. 이는 락을 해제시켜 소프트웨어 실행파일(11)을 실행시키기 위한 환경정보와 체크데이터를 이용한 락 체크 시간을 설정하며, 사용자에 의해 락 해제 실행파일명을 원하는 파일명으로 입력하여 락 해제 실행파일로 저장한다.The lock release environment setting process (S70) is for setting environment information to be used when executing the lock release executable file (LOCKexe.exe) 30, and selecting to keep the software executable file name as it is or without changing the software. A software executable file name generation step of selecting a file name of the executable file by the user or selecting to generate a variable to randomly generate a new file name; A working folder selection step of selecting a working folder, which is a folder in which the software executable file 11 is to be created, a file name selection step of setting a file name of an unlocked executable file as an input file name, and a lock check time at software execution time. And a lock check time setting step of setting a period. This sets the lock check time using the environment information and the check data to release the lock to execute the software executable file 11, and inputs the unlock release executable file name as a desired file name by the user and stores it as the unlock release executable file.

또한, 본 발명은 상기 락 해제 환경설정과정(S70)에서 자동 설치프로그램 환경 정보를 설정하여 설치 프로그램을 저장하는 설치프로그램 작성과정을 더 포함하되, 상기 설치프로그램 작성과정은, 상기 락 해제 실행파일(LOCKexe.exe) 설치폴더 설정단계와, 선택한 폴더와 파일들을 USB 메모리에서 자동으로 설치해 주도록 하는 프로그램을 작성하는 파일설치 프로그램작성단계를 포함하여 이루어진다. 이는 소프트웨어(10)를 최초 설치하는 경우에 필요한 것으로서, 파일 설치 프로그램을 작성하여 락 해제 파일을 설치하기 위한 폴더를 설정하여 주고, 설치 프로그램에 필요한 폴더와 파일들을 USB 메모리에서 자동으로 설치(복사)해 주도록 하는 프로그램으로 작성한다.In addition, the present invention further includes an installation program creation process for storing the installation program by setting the automatic installation environment information in the lock release environment setting process (S70), wherein the installation program creation process, the lock release execution file ( LOCKexe.exe) consists of setting up the installation folder and creating a file installation program for creating a program to automatically install selected folders and files from the USB memory. This is necessary when installing the software 10 for the first time, and creates a file installation program to set a folder for installing the unlock file, and automatically installs (copys) folders and files necessary for the installation program from the USB memory. Write in a program to do it.

또한 본 발명은 소프트웨어에서 사용할 수 있는 보안 자료(Search Key + Data)데이터를 입력받아 암호처리하여 저장하는 보안자료 락 과정을 더 포함할 수 있으며, 보안 자료 락 과정은, 해당 소프트웨어에서 사용할 보안 자료를 사용자로부터 입력받아 상기 암호키를 이용하여 암호처리하여 USB 메모리에 저장하여두고, 해당 소프트웨어 실행시 USB 메모리 로부터 해당 보안 자료를 읽어서 암호 해제후 소프트웨어를 실행시킬 수 있도록 하기 위한 것이다. 또한 락을 걸 소프트웨어(10)의 플러그 인 DLL(12)에 대해서도 사용자가 DLL(12) 선택데이터를 입력하고, 해당 DLL을 상기 암호키를 이용하여 암호화하여 USB 메모리에 저장하여 보안을 걸 수 있도록 하는 것이다. 이는 소스가 있는 소프트웨어의 플러그-인 DLL에서 소프트웨어에서 사용하는 주요 DLL을 암호화하여 런 타입시 제공하는 플러그-인 DLL을 제공한다.In another aspect, the present invention may further include a security data lock process for receiving the encrypted security data (Search Key + Data) data that can be used in the software and encrypting and storing the data, the security data lock process, the security data to be used in the software It is to receive the input from the user and process the encryption using the encryption key and store it in the USB memory, so that the software can be executed after decryption by reading the security data from the USB memory when the corresponding software is executed. In addition, the user inputs the DLL 12 selection data for the plug-in DLL 12 of the software 10 to be locked, and encrypts the DLL using the encryption key to store the data in a USB memory for security. It is. It provides a plug-in DLL provided at run time by encrypting the main DLL used in the software in the plug-in DLL of the source software.

상기와 같은 과정들을 거쳐 소프트웨어 실행파일(11)을 암호화시킨 후, 상기 락 해제 실행파일(30), 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 폴더정보 및 파일들을 상기 USB 메모리(40)에 저장하는 USB 메모리 저장과정(S80)을 수행한다. 이때 USB 메모리(40)에는 일반 파일 탐색기에서 보이는 일반 영역(42)과, 파일 탐색기에서 보이지 않도록 숨겨진 히든영역(41)을 설정하고, 상기 암호키에 의해 암호화된 락정보들은 상기 히든영역(41)에 저장하며, 암호화처리하지 않은 일반 데이터들은 상기 일반 영역(42) 내에 저장하도록 한다.After encrypting the software executable file 11 through the above processes, folder information and files necessary for executing the unlock release executable file 30, the encrypted software executable file 11, and the software executable file 11 are stored. A USB memory storing process (S80) of storing the USB memory 40 is performed. In this case, the USB memory 40 has a general area 42 visible from the general file explorer and a hidden hidden area 41 not visible from the file explorer, and the lock information encrypted by the encryption key is hidden from the hidden area 41. The non-encrypted general data is stored in the general area 42.

USB 메모리 스틱 제조사에서 제공하는 API(내장 콘트롤러 제어)를 사용하여 탐색기에서 보이지 않는 영역으로 설정하며, 이 히든 영역(41)을 보안 데이터 영역으로 이용한다. 히든 영역(41)에는 암호화된 USB 메모리 장치의 고유 시리얼 번호(보안 영역 불법 복제시 체크용으로 사용하기 위함), 사용자가 USB 메모리 최초 사용시 본 발명의 소프트웨어 락 제어프로그램(20)에서 가변으로 생성한 락 체크용 데이터, 락을 걸고자 하는 소프트웨어의 암호화된 소프트웨어 실행파일(이는 사용자 선택에 의해 실행파일 헤더만 암호하하여 저장할 수 있다)을 저장한다.Using the API (built-in controller control) provided by the USB memory stick manufacturer, it is set as an invisible area in the explorer, and the hidden area 41 is used as the security data area. In the hidden area 41, a unique serial number of the encrypted USB memory device (to be used for checking in case of illegal copying of the secure area), and the user generates the variable in the software lock control program 20 of the present invention when the USB memory is first used. Stores the lock check data and the encrypted software executable file of the software to be locked (which can only be stored by encrypting the executable file header by user selection).

또한, 사용자가 입력한 데이터, 사용자 옵션에 의해 헤더를 뺀 락을 락을 걸고자 하는 소프트웨어 실행파일 데이터, 사용자가 옵션으로 선택한 파일 자료들, 사용자가 작성한 플로그-인 DLL, 사용자가 작성한 기능 파일등을 저장한다.Also, data entered by the user, software executable data to lock the lock without the header by the user option, file data selected by the user, plug-in DLL created by the user, function file created by the user, etc. Save it.

상기 일반 영역(42)에는 사용자가 선택한 폴더와 파일들을 저장하며, 기타 남는 공간에는 일반 USB 메모리 와 같이 최종 사용자가 사용할 수 있는 저장공간으로 사용할 수 있도록 제공한다.The general area 42 stores folders and files selected by the user, and provides the remaining space to be used as a storage space that can be used by the end user, such as a general USB memory.

따라서, 일반 탐색기에서 USB 메모리(40)를 불러오기 하였을 때, 히든 영역(41)에 저장된 암호화된 락정보는 보이지 않기 때문에 보안에 더욱 안전성을 향상시킨다.Therefore, when the USB memory 40 is loaded from the general explorer, the encrypted lock information stored in the hidden area 41 is not visible, thereby further improving security.

도 4는 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 해제 제어방법 순서도이다.4 is a flowchart illustrating a method for controlling software lock release using a USB memory according to the present invention.

상기와 같은 방법을 소프트웨어 락을 걸은 경우에, 해당 소프트웨어의 락을 해제하여 실행시키기 위한 방법은,In the case where the software lock is performed as described above, the method for releasing and executing the lock of the software is as follows.

락 해제 실행파일(LOCKexe.exe)(30)을 USB 메모리(40)로부터 불러서 실행시키는 과정(S110)과;Loading and executing the unlock file (LOCKexe.exe) 30 from the USB memory 40 (S110);

상기 락 해제 실행파일을 실행하면, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 메모리 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정(S120)과;A decryption key generation step (S120) of generating a decryption key by combining the user password and the USB memory serial number stored in the lock release execution file when executing the lock release execution file;

상기 USB 메모리(40)에서 암호화하여 저장해둔 USB 메모리 고유 시리얼 번호를 읽어서 복호화하고 이를 실제 USB 메모리 고유 시리얼 번호와 일치하는 지를 체크하여 USB 메모리 락이 올바른 락인지를 확인하는 USB 메모리 락 확인 과정(S130)과;The USB memory lock checking process of reading and decrypting the USB memory unique serial number encrypted and stored in the USB memory 40 and checking whether the USB memory unique serial number matches the actual USB memory unique serial number to confirm whether the USB memory lock is the correct lock (S130). and;

복호화된 USB 메모리 고유 시리얼 번호와, USB 메모리(40)로부터 읽어들인 USB 메모리 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리(40)에 저장해둔 해당 소프트웨어의 실행파일(11)을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정(S140)과;When the decrypted USB memory unique serial number and the USB memory unique serial number read from the USB memory 40 match each other, the decryption is performed by reading the executable file 11 of the software encrypted and stored in the USB memory 40. Decryption process (S140) for decrypting by the key;

락해제 실행파일(30)에 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일(11)을 설정되어 있는 파일명을 생성하고, 별도의 쓰레드를 하나 생성하여 소프트웨어 실행파일(11)을 실행시키면서 해당 소프트웨어 실행파일(11)이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정(S150)과;Create a file name in which the decrypted software executable file 11 is set in the working folder set in the unlocked executable file 30, and create a separate thread to execute the software executable file 11 while executing the corresponding software executable file ( 11) an execution file execution process (S150) for waiting in a sleep state until the end;

설정되어 있는 시간마다 USB 메모리(40)에 저장된 체크데이터와 락해제 파일에 저장된 체크데이터를 비교하여 USB 메모리 락 체크를 하는 USB 메모리 체크과정(S160)과;A USB memory check process (S160) for performing a USB memory lock check by comparing the check data stored in the USB memory 40 and the check data stored in the unlocking file every set time;

실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행파일(11)을 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 락체크를 종료하면서 락 해제 실행파일(LOCKexe.exe)(30)의 프로세스를 종료하는 종료과정(S170)을 수행하도록 이루어진다.When the execution file is terminated and the thread wakes up, the software execution file 11 is deleted and the thread is terminated. When the thread is terminated, the lock check execution file (LOCKexe.exe) ends (30). End process (S170) of terminating the process of) is made.

상기와 같이 락해제 실행파일(LOCKexe.exe)(30)를 실행시켜 암호화된 소프트웨어 실행파일(11)을 복호화하고 이를 별도의 쓰레드를 생성하여 실행시킴으로써, 사용자가 락을 건 소프트웨어(10)를 실행시켜 사용할 수 있게 된다. 이후 해당 실행파일이 종료되면, 별도 생성되었던 쓰레드가 웨이크업되면서, 해당 소프트웨어 실행파일을 삭제하고 쓰레드를 종료한다.By executing the unlocking executable file (LOCKexe.exe) 30 as described above, the encrypted software executable file 11 is decrypted and a separate thread is created and executed to execute the software 10 that the user has locked. Can be used. Then, when the executable file is terminated, the created thread wakes up, deletes the software executable file and terminates the thread.

따라서, 이후 해당 소프트웨어를 실행시키기 위해서는, 다시 상기 락해제 실행파일을 실행시켜 상기 과정을 반복하여야만 소프트웨어 실행파일을 실행시킬 수 있게 되며, 소프트웨어 실행파일 실행중에는 락 체크 시간마다 USB 메모리(40)에 암호화시켜 저장해둔 락 체크데이터를 불러서 복호화하고, 락 해제 실행파일(30)에 저장되어 있는 락 체크데이터와 비교하여 일치성 여부를 판단한다.Therefore, in order to execute the corresponding software, the software executable file can be executed only after executing the unlocking executable file again and repeating the above procedure. The lock check data stored in the lock release data is read and decoded, and it is compared with the lock check data stored in the lock release execution file 30 to determine whether or not there is a match.

상기와 같은 락 해제 과정을 실행하는 중에 USB 메모리 시리얼 번호가 일치되지 않으면, 복호키가 달라지기 때문에 암호화시킨 정보들을 복호화 할 수 없으며, 락을 해제하여 소프트웨어 실행파일을 실행시키는 과정중에 USB 메모리를 탈착하게 되면 체크데이터 에러가 발생되어 소프트웨어 실행파일이 종료되게 한다.If the USB memory serial numbers do not match during the above lock release process, the decryption key will be different, so the encrypted information cannot be decrypted, and the USB memory can be removed during the process of releasing the lock and executing the software executable file. This will cause a check data error and cause the software executable to terminate.

이와 같이 본 발명은, 소프트웨어의 락을 걸기 위해서 USB 메모리를 이용하되, USB 메모리 고유 시리얼 번호와 사용자 암호를 이용해 원하는 소프트웨어 실행파일을 암호하하고, 락 체크를 위한 정보들을 암호화시켜 USB 메모리 의 히든영역에 저장하며, 락헤제 실행시 USB 메모리 고유 시리얼 번호의 일치성을 체크하고, 복호키를 생성하여 복호화하여 소프트웨어 실행파일을 실행시키며, 소프트웨어 실행파일이 종료되면, 생성된 소프트웨어 실행파일을 삭제함으로서 다시 락이 걸린 상태로 종료하게 되는 것이다.As described above, the present invention uses a USB memory to lock a software, encrypts a desired software executable file using a USB memory unique serial number and a user password, and encrypts information for a lock check to hide a hidden area of the USB memory. To the USB memory, and check the correspondence of the serial number of the USB memory when executing Lockheze, generate the decryption key and execute the software executable file. When the software executable file is terminated, delete the created software executable file again. The lock is terminated.

또한, 본 발명은 상기와 같이 암호화과정을 거쳐 보안 처리한 소프트웨어를 실행시키기 위해서는, 암호화 정보를 저장하고 있는 USB 메모리를 장착하고, 해당 소프트웨어를 컴퓨터의 하드 디스크 또는 CD에 저장해두고, 본 발명에 의한 소프트웨어 보안 프로그램을 실행시켜 암호해독에 의해 해당 소프트웨어를 실행시킬 수 있게 된다.In addition, according to the present invention, in order to execute the software secured through the encryption process as described above, a USB memory storing encryption information is mounted, and the software is stored in a hard disk or CD of a computer. By running a software security program, the software can be executed by decryption.

도 1은 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 제어방법을 설명하기 위한 개요도.1 is a schematic diagram for explaining a software lock control method using a USB memory according to the present invention.

도 2는 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 제어방법 순서도.2 is a flowchart illustrating a software lock control method using a USB memory according to the present invention.

도 3은 본 발명에 의한 체크데이터 생성 저장과정의 순서도.Figure 3 is a flow chart of the check data generation and storage process according to the present invention.

도 4는 본 발명에 의한 USB 메모리를 이용한 소프트웨어 락 해제방법 순서도이다.4 is a flowchart illustrating a software lock release method using a USB memory according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

10 : 락을 걸 소프트웨어 11 : 소프트웨어 실행파일10: software to lock 11: software executable

12 : 플러그-인 DLL 20 : 소프트웨어 락 제어 프로그램12: plug-in DLL 20: software lock control program

30 : 락 해제 실행파일(LOCKexe.exe) 40 : USB 메모리 30: unlock file (LOCKexe.exe) 40: USB memory

41 : 히든 영역 42 : 일반 영역 41: hidden area 42: general area

Claims (9)

컴퓨터 단말기 내에 소프트웨어 락 제어프로그램(20)을 설치함과 아울러 USB 메모리(40)를 장착하여 상기 소프트웨어 락 제어프로그램(20)에 의해 수행되는 하기의 과정으로 컴퓨터 단말기에 설치된 소프트웨어에 대해서 소프트웨어 락 및 해제를 제어하는 USB 메모리를 이용한 소프트웨어 락 제어 방법으로서,In addition to installing the software lock control program 20 in the computer terminal, and installing the USB memory 40, the software lock and release for the software installed in the computer terminal in the following process performed by the software lock control program 20 A software lock control method using a USB memory to control the 상기 소프트웨어 락 제어프로그램(20)은, The software lock control program 20, 사용자의 선택신호를 입력받아 락을 걸 소프트웨어(10)의 실행파일(11)을 선택하는 실행파일 선택과정(S10)과;An executable file selection process (S10) of selecting an executable file 11 of the software 10 to be locked by receiving a user's selection signal; 사용자로부터 소프트웨어 암호화를 위한 사용자 암호를 입력받고, USB 메모리(40)로부터 USB 메모리 고유 시리얼 번호를 입력받아, 상기 사용자 암호와 상기 USB 메모리 고유 시리얼 번호를 조합하여 암호키를 생성하는 암호키 생성과정(S20)과;An encryption key generation process of receiving a user password for software encryption from a user, receiving a USB memory unique serial number from the USB memory 40, and generating an encryption key by combining the user password and the USB memory unique serial number ( S20); 상기 암호키에 의거하여 상기 USB 메모리 고유 시리얼 번호를 암호화하여 상기 USB 메모리(40)에 저장(S30)함과 아울러 상기 사용자 암호를 이용하여 락을 해제시킬 락 해제 실행파일(LOCKexe.exe)(30)을 생성하여 사용자 암호를 해당 락 해제 실행 파일에 저장하는 암호 저장과정(S40)과;The lock release execution file (LOCKexe.exe) 30 which encrypts the unique serial number of the USB memory based on the encryption key and stores it in the USB memory 40 (S30) and releases the lock using the user password. Generating a user password and storing the user password in a corresponding unlock release file (S40); 상기 실행파일 선택과정(S10)에서 선택된 소프트웨어 실행파일(11)을 상기 암호키 생성과정(S20)에서 생성된 암호키에 의해 암호화하는 암호화 과정(S50)과;An encryption process (S50) of encrypting the software executable file (11) selected in the execution file selection process (S10) by the encryption key generated in the encryption key generation process (S20); 소프트웨어 실행파일(11) 실행시 USB 메모리를 체크하기 위한 체크데이터 생성하여 저장하는 체크데이터 생성 저장과정(S60)과;A check data generation and storing process of generating and storing check data for checking the USB memory when the software executable file 11 is executed (S60); 상기 락 해제 실행파일(30)을 실행하기 위한 워킹폴더 및 실행 파일명, 락 체크를 위한 시간 간격을 포함하는 락해제 환경 정보를 사용자로부터 입력받아 설정하는 락해제 환경 설정과정(S70)과;A lock release environment setting step (S70) of receiving and setting lock release environment information including a working folder for executing the lock release execution file 30, an execution file name, and a time interval for a lock check from a user; 상기 락 해제 실행파일, 암호화된 소프트웨어 실행파일(11), 소프트웨어 실행파일(11)을 실행하는데 필요한 락 해제 환경정보와 폴더 및 파일들을 상기 USB 메모리(40)에 저장하는 USB 메모리 저장과정(S80); 을 수행하되,USB memory storing process (S80) of storing the unlocking environment information, folders and files necessary for executing the unlocking executable file, the encrypted software executable file 11, the software executable file 11 in the USB memory 40 ; But do 상기 체크데이터 생성 저장과정(S60)은,The check data generation and storage process (S60), 체크 데이터를 자동 생성하는 체크데이터 생성단계(S61)와;A check data generation step (S61) of automatically generating check data; 상기 체크 데이터를 상기 암호키에 의거하여 암호화하는 체크데이터 암호화단계(S62)와;A check data encryption step (S62) for encrypting the check data based on the encryption key; 상기 암호화단계(S62)에서 암호화된 체크 데이터를 USB 메모리(40)에 저장하는 체크 데이터 USB 메모리 저장단계(S63)와;A check data USB memory storage step (S63) for storing the check data encrypted in the encryption step (S62) in the USB memory 40; 상기 암호키에 의거하여 암호화된 상기 체크 데이터를 상기 락해제 실행파일(LOCKexe.exe)(30)에 저장하는 체크데이터 저장단계(S64)를 포함하는 것을 특징으로 하는 USB 메모리를 이용한 소프트웨어 락 제어방법.And a check data storage step (S64) of storing the check data encrypted based on the encryption key in the unlock execution file (LOCKexe.exe) 30. . 제 1 항에 있어서, 상기 실행파일 선택과정(S10)은,The method of claim 1, wherein the execution file selection process (S10), 사용자의 선택신호를 입력받아, 락을 걸 소프트웨어(10)의 소프트웨어 실행파일(11)을 선택하고, 선택된 소프트웨어 실행파일(11)을 암호화할 때 실행파일 전체를 암호화할 것인지, 또는 해당 소프트웨어 실행파일의 헤더만 암호화할 것인지를 사용자의 선택신호에 의해 설정하는 것을 특징으로 하는 USB 메모리를 이용한 소프트웨어 락 제어방법.Receives a user's selection signal, selects the software executable file 11 of the software 10 to be locked, and encrypts the entire executable file when encrypting the selected software executable file 11 or the corresponding software executable file. The control method of a software lock using a USB memory, characterized by setting whether or not to encrypt only the header of the user's selection signal. 삭제delete 제 1 항에 있어서, 상기 소프트웨어 락 제어프로그램(20)에 의해 수행되는 상기 락 해제 환경 설정과정(S70)은,The lock release environment setting process (S70) performed by the software lock control program 20, 상기 락 해제 실행파일(LOCKexe.exe)(30)를 실행시킬 때 사용할 환경정보를 사용자의 선택정보 또는 미리 설정된 디폴트 정보에 의해 설정하되,Set the environment information to be used when executing the lock release execution file (LOCKexe.exe) 30 by the user's selection information or preset default information, 사용자의 선택 입력에 의거하여 소프트웨어 실행파일명을 그대로 변경없이 설정하거나, 사용자가 선택 입력한 파일명으로 변경하여 설정하거나, 랜덤하게 새로운 파일명으로 자동 생성하는 소프트웨어 실행파일명 생성단계와;A software executable file name generation step of setting the software executable file name without change based on the user's selection input as it is, changing the file name selected and input by the user, or automatically generating a new file name at random; 사용자의 선택입력에 의해 소프트웨어 실행파일(11)을 생성할 폴더인 워킹 폴더(Working Folder)를 선택하여 설정하는 워킹폴더 선택단계와;A working folder selecting step of selecting and setting a working folder, which is a folder in which the software executable file 11 is to be generated, by a user's selection input; 락 해제 실행파일의 파일명을 사용자가 입력한 파일명으로 설정하는 파일명 선택단계와;A file name selection step of setting a file name of the unlock release file to a file name input by the user; 사용자의 선택입력에 의거하여 소프트웨어 실행시 락 체크시간 주기를 설정하는 락 체크 시간 설정단계;를 포함하는 것을 특징으로 하는 USB 메모리를 이용한 소프트웨어 락 제어방법.And a lock check time setting step of setting a lock check time period when the software is executed based on a selection input of a user. 삭제delete 삭제delete 제 1 항에 있어서, 상기 USB 메모리 저장과정(S80)은,The method of claim 1, wherein the USB memory storage process (S80), USB 메모리(40)에 일반 파일 탐색기에서 보이는 일반 영역(42)과, 파일 탐색기에서 보이지 않도록 숨겨진 히든영역(41)을 설정하고, 상기 암호키에 의해 암호화된 락정보들은 상기 히든영역(41)에 저장하며, 암호화처리하지 않은 일반 데이터들은 상기 일반 영역(42) 내에 저장하는 것을 특징으로 하는 USB 메모리를 이용한 소프트웨어 락 제어방법.In the USB memory 40, a general area 42 visible from the general file explorer and a hidden hidden area 41 are hidden from the file explorer, and lock information encrypted by the encryption key is stored in the hidden area 41. The software lock control method using a USB memory, characterized in that for storing and storing the unencrypted general data in the general area (42). 삭제delete 상기 제 1 항의 USB 메모리를 이용한 소프트웨어 락 제어 방법으로 락을 건 소프트웨어의 락 해제를 제어하는 방법으로서,A method of controlling unlocking of software locked by the software lock control method using the USB memory of claim 1, 사용자가 락 해제 실행파일(LOCKexe.exe)(30)을 USB 메모리(40)로부터 불러서 실행하면,When the user loads and unlocks the executable file (LOCKexe.exe) 30 from the USB memory 40, 상기 소프트웨어 락 제어프로그램(20)은,The software lock control program 20, 상기 락 해제 실행파일에 저장된 사용자 암호와 USB 메모리 시리얼번호를 조합하여 복호화키를 생성하는 복호키 생성과정(S120)과;A decryption key generation step (S120) of generating a decryption key by combining a user password and a USB memory serial number stored in the unlocking execution file; 상기 USB 메모리(40)로부터 암호화하여 저장해둔 USB 메모리 고유 시리얼 번호를 읽어서 복호화하여, 실제 장착되어 있는 USB 메모리(40)로 부터 USB 메모리 고유 시리얼 번호를 읽어들여 일치하는 지를 체크하여 USB 메모리 락이 올바른 락인지를 확인하는 USB 메모리 락 확인 과정(S130)과;Reads and decrypts the USB memory unique serial number encrypted and stored from the USB memory 40, reads the USB memory unique serial number from the actually installed USB memory 40, checks whether it matches, and locks the USB memory lock correctly. Checking the USB memory lock step (S130) to confirm whether it is checked; 복호화된 USB 메모리 고유 시리얼 번호와, USB 메모리(40)로부터 읽어들인 USB 메모리 고유 시리얼 번호가 서로 일치되는 경우, 암호화되어 USB 메모리(40)에 저장해둔 해당 소프트웨어의 실행파일(11)을 읽어서 상기 복호화키에 의해 복호화하는 복호화과정(S140)과;When the decrypted USB memory unique serial number and the USB memory unique serial number read from the USB memory 40 match each other, the decryption is performed by reading the executable file 11 of the software encrypted and stored in the USB memory 40. Decryption process (S140) for decrypting by the key; 락해제 실행파일(30)에 저장되어 있는 락해제 환경정보로 설정된 워킹 폴더에 복호화된 소프트웨어 실행파일(11)을 락해제 환경정보로 설정된 실행 파일명으로 생성하고, 별도의 쓰레드를 하나 생성하여 복호화된 소프트웨어 실행파일(11)을 실행시키면서 해당 소프트웨어 실행파일(11)이 종료될때까지 대기(Sleep) 상태로 대기하는 실행파일 실행과정(S150)과;The software executable file 11 decrypted in the working folder set as the unlocked environment information stored in the unlocked executable file 30 is generated with the executable file name set as the unlocked environment information, and a separate thread is generated and decrypted. An execution file execution process (S150) of waiting for the software execution file 11 to end while executing the software execution file 11; 상기 실행파일 실행과정(S150) 중에 락해제 환경정보로 설정되어 있는 락 체크를 위한 시간 간격마다 USB 메모리(40)에 저장된 체크데이터와 락해제 실행파일(30)에 저장된 체크데이터를 비교하여 일치되지 않으면 소프트웨어 실행을 중지하는 USB 메모리 체크과정(S160)과;The check data stored in the USB memory 40 and the check data stored in the unlocking execution file 30 are not matched at every time interval for the lock check set as the unlocking environment information during the execution file execution process (S150). USB memory check process (S160) to stop the software execution if not; 상기 실행파일 실행과정(S150)에서 실행된 실행파일이 종료되어 상기 쓰레드가 웨이크업(Wakeup)되면 소프트웨어 실행파일(11)을 해당 컴퓨터 장치에서 삭제하고 해당 쓰레드를 종료하며, 해당 쓰레드가 종료되면 상기 USB 메모리 체크과정(S160)을 종료하면서 락 해제 실행파일(LOCKexe.exe)(30)의 프로세스를 종료하는 종료과정(S170)을 포함하는 것을 특징으로 하는 USB 메모리를 이용한 소프트웨어 락 해제 제어방법.When the execution file executed in the execution file execution process (S150) is terminated and the thread wakes up, the software execution file 11 is deleted from the computer device and the corresponding thread is terminated. And a terminating process (S170) of terminating the process of the unlocking executable file (LOCKexe.exe) 30 while terminating the USB memory checking process (S160).
KR1020090050306A 2009-06-08 2009-06-08 The software lock method which uses USB memory stick KR101042294B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090050306A KR101042294B1 (en) 2009-06-08 2009-06-08 The software lock method which uses USB memory stick

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090050306A KR101042294B1 (en) 2009-06-08 2009-06-08 The software lock method which uses USB memory stick

Publications (2)

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

Family

ID=43507538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090050306A KR101042294B1 (en) 2009-06-08 2009-06-08 The software lock method which uses USB memory stick

Country Status (1)

Country Link
KR (1) KR101042294B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101078546B1 (en) * 2011-06-27 2011-11-01 박주혁 Apparatus for coding and decoding of security data file based on data storage unit idedtification, system for electronic signature using the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079414A (en) * 1998-04-06 1999-11-05 강승희 How to encrypt programs and how to run encrypted programs to protect software
KR100834990B1 (en) * 2005-08-01 2008-06-04 민정홍 Security system operatable on the portable storage device by usb interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079414A (en) * 1998-04-06 1999-11-05 강승희 How to encrypt programs and how to run encrypted programs to protect software
KR100834990B1 (en) * 2005-08-01 2008-06-04 민정홍 Security system operatable on the portable storage device by usb interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101078546B1 (en) * 2011-06-27 2011-11-01 박주혁 Apparatus for coding and decoding of security data file based on data storage unit idedtification, system for electronic signature using the same

Also Published As

Publication number Publication date
KR20100131618A (en) 2010-12-16

Similar Documents

Publication Publication Date Title
KR100625365B1 (en) System and method for authentication
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US7765373B1 (en) System for controlling use of a solid-state storage subsystem
KR100896625B1 (en) System and method for authenticating software using hidden intermediate keys
US8745409B2 (en) System and method for securing portable data
RU2295834C2 (en) Initialization, maintenance, renewal and restoration of protected mode of operation of integrated system, using device for controlling access to data
CN102508791B (en) Method and device for encrypting hard disk partition
US9251381B1 (en) Solid-state storage subsystem security solution
JP4610557B2 (en) DATA MANAGEMENT METHOD, PROGRAM THEREOF, AND PROGRAM RECORDING MEDIUM
US20080181406A1 (en) System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
US7840795B2 (en) Method and apparatus for limiting access to sensitive data
JP6072091B2 (en) Secure access method and secure access device for application programs
US20070074038A1 (en) Method, apparatus and program storage device for providing a secure password manager
US8910301B2 (en) System and method for locking and unlocking storage device
EP2264640A2 (en) Feature specific keys for executable code
GB2384885A (en) System and method for protection of data stored on a storage medium device
JP2020030527A (en) Storage device and program
JP3976638B2 (en) Electronic device, method for preventing unauthorized use thereof, and program for preventing unauthorized use thereof
KR101042294B1 (en) The software lock method which uses USB memory stick
JP4502898B2 (en) External hard disk storage device, external hard disk storage device control method, and external hard disk storage device control program
KR20110080121A (en) Method and device for detecting if a computer file has been copied and method and device for enabling such detection
US20050086528A1 (en) Method for hiding information on a computer
KR20070046363A (en) Apparatus for preventing outflow of data and storage device including the same
KR101617089B1 (en) Non-volatile memory chip for enhancing security and method for data security using the non-volatile memory chip
CN114692108A (en) Chip and method for verification and debugging

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee