KR20010054357A - Method for controlling Universal Serial Bus security module using crypto-chip - Google Patents
Method for controlling Universal Serial Bus security module using crypto-chip Download PDFInfo
- Publication number
- KR20010054357A KR20010054357A KR1019990055152A KR19990055152A KR20010054357A KR 20010054357 A KR20010054357 A KR 20010054357A KR 1019990055152 A KR1019990055152 A KR 1019990055152A KR 19990055152 A KR19990055152 A KR 19990055152A KR 20010054357 A KR20010054357 A KR 20010054357A
- Authority
- KR
- South Korea
- Prior art keywords
- security module
- usb
- error
- key
- code
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
- G06F2212/2146—Solid state disk being detachable, e.g.. USB memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Abstract
Description
본 발명은 PC 기반의 암호칩을 사용한 USB(Universal Serial Bus) 보안모듈 제어 방법에 관한 것으로써, 특히 소프트웨어 복제 방지 및 불법 사용자의 접근 차단을 위해 사용자 인증 및 데이터 암·복호화 알고리즘을 내장한 USB 보안 모듈을 제어하는 제어 프로그램에 의해 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법에 관한 것이다.The present invention relates to a USB (Universal Serial Bus) security module control method using a PC-based encryption chip, in particular USB security with built-in user authentication and data encryption and decryption algorithms for software copy protection and illegal user access blocking The present invention relates to a method of controlling a U.S. non-security module using a PC-based encryption chip by a control program for controlling a module.
일반적으로, 정보와 통신 기술이 발달함에 따라 개발된 소프트웨어의 무단 복제 및 불법 접근으로 인해 소프트웨어 개발자들은 많은 곤란을 격고 있으며, 소프트웨어 무단 복제에 대한 피해액은 국내에서만 무려 5억 달러가 넘으며, 소프트웨어 가격상승의 원인이 되었으며, 국내에서도 소프트웨어 기술력이 부족하여 국내 민간업체에서도 전용 보안칩이 거의 개발되지 않고 있다.In general, software developers are faced with many difficulties due to the unauthorized copying and illegal access of software developed with the development of information and communication technology. Due to the lack of software technology in Korea, private security chips are rarely developed in domestic private companies.
이러한 소프트웨어적인 방지 대책은 무단 복제 및 변경 가능성을 항상 가지고 있기 때문에 전세계의 보안 및 보호 장비 개발 회사들은 보안성 및 인증성이 훨씬 우수하고 복제가 불가능한 일반 신용카드 크기에 암호화된 신분을 증명할 수 있는 내용과 기타 정보를 포함하면서도 복제나 해킹이 불가능한 것으로 알려져 있다.Since these software protections always have the potential for unauthorized copying and alteration, security and protection equipment developers around the world are able to prove their identity to a much higher level of security and authenticity and non-replicable common credit card sizes. And other information, but are not known to be copied or hacked.
실제로 락(Lock)의 기능은 소프트웨어나 하드웨어로 구현하게 되는데, 락을 탑재한 응용 프로그램은 락과 정해진 방법으로 통신(lock checking)함으로써 락의 유무나 오류 등을 결정하게 된다. 도 1에 도시된 바와 같이, 락(Lock)이 처음 출현할 때에도 락의 내부에 시리얼 넘버(Serial Number)나 고유 ID등이 쉽게 노출되어지는 단점 때문에 하드웨어 락으로 발전하게 되었다.In fact, the function of the lock is implemented by software or hardware. An application equipped with a lock determines whether a lock is present or an error by locking checking with the lock in a predetermined manner. As shown in FIG. 1, even when a lock first appears, the lock has been developed into a hardware lock because a serial number or a unique ID is easily exposed inside the lock.
하드웨어 락은 대체적으로 EEPROM형식과 ASIC 형식으로 분류될 수 있다. EEPROM 형식은 롬 라이터(ROM writer)로 락에 고유한 값(시리얼 넘버나 고유 ID)을 기록(write)하는 방법으로써 복제 및 수정이 용이하며, ASIC칩으로 구성되어 있는 락(Lock)은 제조 당시를 제외하고는 그 값을 복제하거나 수정할 수 없다. 그래서 EEPROM일 경우에는 제 3 자에 의해 시리얼 넘버를 임의적으로 락(Lock)에 부여할 수 있지만 ASIC에 의해 제작된 칩일 경우에는 제작 당시에 동일하지 않은 시리얼 넘버를 가지게 되며, ASIC의 제작자와의 인증된 경로를 통해서만 동일한 시리얼 넘버를 갖는 락을 생산할 수 있다. 따라서, ASIC 칩으로 락을 제작하였을 경우에는 락 자체를 복제하는 것이 거의 불가능하게 되어 있다. 그러나, 이 방법 또한 락 시뮬레이터 등을 이용하여 송수신되는 자료를 체크하고 프로그램 기계어 코드로 변환하여 락을 무력화시켜 프로그램을 무단 복제할 수 있다. 현재, 우리 나라에서 시판 중인 락은 하드웨어 락이 대부분을 차지하고 있다.Hardware locks can generally be classified into EEPROM and ASIC formats. EEPROM format is a ROM writer that writes a unique value (serial number or unique ID) to the lock, making it easy to copy and modify. The lock, which consists of ASIC chips, is manufactured at the time of manufacture. You cannot duplicate or modify the value except for. Therefore, in case of EEPROM, serial number can be arbitrarily locked by a third party, but in case of chip made by ASIC, it has the same serial number at the time of manufacture. Only paths can produce locks with the same serial number. Therefore, when a lock is made of an ASIC chip, it is almost impossible to duplicate the lock itself. However, this method also checks the transmitted and received data using a lock simulator or the like and converts the program into machine code so that the lock can be disabled to copy the program without permission. Currently, most of the locks on the market in our country are hardware locks.
그러나, 하드웨어 락은 제조비용에 대한 복제 방지 능력이 소프트웨어 락의 복제 방지 능력과 별로 차이가 없기 때문에 정식 프로그램을 구매하는 것보다 무단복제를 많이 사용하는 나라에서는 판매량이 많은 소프트웨어일수록 소프트웨어 락이나 기능제한을 적용한 사용자 등록제(User Registration) 등의 방법을 이용하여 사후 관리의 차별화로 구매를 유도하는 경향이 두드러지고 있다. 그래서 국내외의 락 제조회사들은 제조비용 대 복제방지 능력을 높이기 위한 방법을 여러 가지로 강구하고 있다. 그 중 한가지가 실행 파일이나 데이터 파일을 암호화하고, 암호화에사용된 키(key)를 락에서 가져오는 방식을 사용하는 것이다(HASP). 이 방식은 NSTL(National Software Testing Laboratories)에서 우수 평가를 받은 방식이지만 락 체크의 빈도에 프로그램의 수행 시간이 많은 영향을 받는 것이 단점으로 지적되고 있다. 또한, 보안등급이나 유연성 면에서 높이 평가를 함에도 불구하고 소프트웨어에 의한 제어 구조이기 때문에 기계어 수준의 디버깅으로 불법 복제가 가능한 단점이 있다.However, hardware lock does not differ much from software lock copy protection because of the manufacturing cost, so in countries where more copies are used than in regular programs, more software is sold or restricted. There is a tendency to induce purchases by differentiation of post management by using a method such as user registration. Therefore, domestic and overseas lock manufacturers are looking for ways to increase manufacturing costs versus copy protection. One of them is to encrypt the executable or data file and to get the key used for encryption from the lock (HASP). This method has been well-received by National Software Testing Laboratories (NSTL), but it is pointed out that the program execution time is greatly affected by the frequency of lock checks. In addition, despite the high evaluation in terms of security level and flexibility, because of the control structure by software, illegal copying is possible by debugging at the machine level.
그러나, 단순하게 락(Lock) 내부에 마이크로 프로세서를 두어 락(Lock)이나 프로그램의 존재 및 일치 여부를 서로 체크하는 방법으로 되어 있어, 소프트웨어에 한 번 설정된 락(Lock)은 재활용이 불가능하거나 어렵고, 소프트웨어에 의한 데이터 암호화 등을 수행하므로 지원되는 부가 기능의 속도가 느리며, 단순 암호화 알고리즘 사용으로 비도가 낮으며, 소프트웨어 복제방지 기능만 존재하여 다양한 부가 기능을 넣기가 힘들며, 1 개의 락으로 1개의 소프트웨어만을 보호하므로 다수 소프트웨어에 맞는 락(Lock)을 전부 연결해야 하기 때문에 연결 공간 부족 문제나 프린터 등의 주변기기 인식 오류를 유발하고, 각각 소프트웨어에 락(Lock)이 따로 존재하므로 소프트웨어 구입가격이 인상 요인이 발생하며, 단품에 의한 판매에 그치게 되므로 개발자는 소프트웨어마다 락(Lock)을 필요로 하고 사용자는 구입한 소프트웨어의 락을 따로 관리해야 하는 단점이 있다.However, it is simply a method of placing a microprocessor inside the lock to check the existence and matching of the lock or the program, so that the lock set once in the software is impossible or difficult to recycle. Since data encryption by software is performed, the speed of supported additional functions is slow, and the cost is low by using simple encryption algorithm.It is difficult to put various additional functions because there is only software copy protection function. Since only the locks for multiple software must be connected, all the locks need to be connected, which causes problems of lack of connection space or errors in the recognition of peripheral devices such as printers, and there are separate locks in the software. And only sells separately. Need to lock (Lock) for each word, and the user has the disadvantage that must be managed separately rock of the software purchased.
본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 제안된 것으로써, 본 발명의 목적은 공개키 기반의 비대칭 암호화 알고리즘인 RSA 알고리즘과, 개선된DES 암호화 알고리즘인 KSE96 알고리즘 등 다양한 암복호화 알고리즘을 내장한 암호칩(Crypto-chip)을 복제방지용 락에 내장시키고 USB 포트를 이용하여 제어함으로써 PC 기반의 USB 인터페이스를 가지는 USB 보안 모듈과 암호칩을 사용한 정보 보호 장치를 제어하기 위한 제어 프로그램에 의해 PC의 불법 사용자에 의해 소프트웨어나 데이터의 불법적인 복제 및 수정을 방지하기 위한 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법을 제공한다.The present invention has been proposed to solve the above problems of the prior art, and an object of the present invention is to embed various encryption / decryption algorithms such as RSA algorithm, which is a public key-based asymmetric encryption algorithm, and KSE96 algorithm, which is an improved DES encryption algorithm. By embedding a crypto-chip in a copy protection lock and controlling it using a USB port, the PC is controlled by a USB security module having a PC-based USB interface and a control program for controlling an information protection device using a crypto chip. Provides a method for controlling a non-security module using PC-based encryption chips to prevent illegal copying and modification of software or data by illegal users.
도 1a와 1b는 종래의 실시예에 의한 프로그램 복제 방지 장치의 개략도.1A and 1B are schematic views of a program copy protection device according to a conventional embodiment.
도 2a는 본 발명의 무단 복제 및 불법 접근을 차단하기 위해 암ㆍ복호화에 의한 정보보호 시스템 개념도.Figure 2a is a conceptual diagram of an information protection system by encryption and decryption to block unauthorized copying and illegal access of the present invention.
도 2b는 본 발명에 따른 PC 기반의 USB를 이용한 보안 모듈.Figure 2b is a security module using a PC-based USB according to the present invention.
도 3은 본 발명에 의한 USB 보안 모듈과 프로그램 복제 방지 방법을 설명한 개략도.Figure 3 is a schematic diagram illustrating a USB security module and program copy protection method according to the present invention.
도 4는 본 발명에 의한 USB 보안 모듈과 제어 프로그램과의 동작을 나타낸 흐름도.4 is a flowchart showing the operation of the USB security module and the control program according to the present invention.
도 5a 내지 도 5c는 USB 보안 모듈내의 동작을 나타낸 흐름도.5A-5C are flow diagrams illustrating operations within the USB security module.
* 도면의 주요 부분에 대한 부호 설명 *Explanation of symbols on the main parts of the drawings
10 : 컴퓨터 7 : USB 탭10: Computer 7: USB Tab
17 : 제어 프로그램 20 : USB 보안 모듈17: control program 20: USB security module
23 : USB제어기 27 : 암호화칩23: USB controller 27: encryption chip
USB : 범용 직렬 버스(Universal Serial Bus)USB: Universal Serial Bus
상기한 목적을 달성하기 위해 본 발명은 제어 프로그램에 의해 디바이스 드라이버를 오픈하고(S1) 에러가 없으면(S2) USB 보안모듈의 시리얼 넘버인 장치 ID를 요청하고(S3) 에러가 없으면(S4) 상기 USB 보안모듈로 키를 전송하는 단계(S5); S5 과정에서 에러가 없으면(S6) 상기 USB 보안모듈로 소프트웨어에 존재하는 암호화된 디스크램블 코드(E(Discramble) code)를 전송하고(S7), 상기 USB 보안모듈로부터 복호화된 디스크램블 코드(Discramble code)를 제어프로그램으로 회송한(S8) 후 에러가 없으면(S9) 상기 디스크램블 코드의 CRC를 체크하는 단계(S10); CRC 체크 후, 에러를 체크하여(S11) 에러가 없으면 상기 USB 보안모듈로 키 KM을 사용하여 암호화되어 있는 실행 코드(EKM(Exe) 코드)를 전송하고(S12), 상기 USB 보안모듈로부터 키 KSR을 사용하여 암호화한 실행 코드(EKSR(Exe) 코드)를 회송하며(S13) 에러가 없으면(S14) 상기 EKSR(Exe) 코드를 제어 프로그램의 디스크램블링 프로시쥬어에서 디스크램블링(Discrambling)하여(S15) 제대로 복호화되어 있는지 CRC 검사하는 단계(S16); 및 S16 과정의 CRC 검사 후 에러를 체크하여(S17) 에러가 없으면 원래 프로그램의 위치로 점프 후 실행하며(S18), S2, S4, S6, S9 및 S14 과정에서 에러가 있으면 장치 오류 메시지를 출력하고(S19), S11 및 S17 과정에서 에러가 있으면 복호화 오류 메시지를 출력한(S20) 후 종료하는 단계로 구성되는 것을 특징으로 하는 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법을 제공한다.In order to achieve the above object, the present invention opens the device driver by the control program (S1) and if there is no error (S2) requests the device ID which is the serial number of the USB security module (S3) and if there is no error (S4) Transmitting a key to the USB security module (S5); In step S5, if there is no error (S6), an encrypted descramble code (E (Discramble) code) existing in software is transmitted to the USB security module (S7), and the descramble code (Discramble code) decrypted from the USB security module. Check the CRC of the descramble code if there is no error (S9) after returning the control program to the control program (S8); After the CRC check, the error is checked (S11) and if there is no error, the execution code (E KM (Exe) code) encrypted using the key KM is transmitted to the USB security module (S12), and the key is received from the USB security module. The execution code (E KSR (Exe) code) encrypted using the KSR is returned (S13) and if there is no error (S14), the E KSR (Exe) code is descrambled in the descrambling procedure of the control program (Sc). S15) CRC checking whether it is properly decoded (S16); And checks the error after the CRC check in step S16 (S17), if there is no error, jumps to the original program location and executes it (S18). (S19), if there is an error in the process S11 and S17 provides a method for controlling the U.S. non-security module using a PC-based encryption chip, characterized in that the step of outputting a decryption error message (S20) and ends. do.
이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2a는 무단 복제 및 불법 접근을 차단하기 위해 암ㆍ복호화에 의한 정보보호 시스템 개념도이다.2A is a conceptual diagram of an information protection system by encryption / decryption to prevent unauthorized copying and illegal access.
도 2b를 참조하면, PC 기반의 USB 보안 모듈(20)은 USB 제어기(USB Controller)(23)와 암호화칩(Crypto-chip)(27)으로 구성되며, 컴퓨터(10)의 USB 탭(7)에 연결되며 제어 프로그램(17)에 의해 제어된다.Referring to FIG. 2B, the PC-based USB security module 20 includes a USB controller 23 and a crypto-chip 27, and a USB tab 7 of the computer 10. Is controlled by the control program 17.
USB(Universal Serial Bus) 인터페이스는 PC의 전원의 ON/OFF에 관계없이 삽입이나 제거가 가능하며, 고속의 데이터 전송속도를 가지고 있기 때문에 PC 환경에서 USB 탭(7)에 연결된 USB 인터페이스를 내장한 상기 USB 보안 모듈(20)은 인증 및 데이터 보호 시스템으로 활용하기에 적합하다. 참고로, USB는 PC의 표준 입출력 인터페이스로써 PC의 주변기기에 국한되지 않고 팩스 같은 통신 기기에서 스피커(Speaker)까지 채택되고 있다.The USB (Universal Serial Bus) interface can be inserted or removed regardless of the PC's power on / off, and because it has a high data transfer speed, the USB interface connected to the USB tab 7 in the PC environment is built-in. The USB security module 20 is suitable for use as an authentication and data protection system. For reference, USB is a standard input / output interface of a PC, and is not limited to a PC peripheral device, but also a speaker from a communication device such as a fax machine.
본 발명은 세계 최초로 새로운 인터페이스 규격인 USB를 이용한 소프트웨어의 접근 통제 및 정보보호 그리고 사용자 인증 기능 및 암ㆍ복호화 기능을 갖도록상기 USB 보안모듈(20)내의 암호화칩(27)에 구현하고, 컴퓨터(10)에 내장된 USB 포트에 인터페이스하기 위한 커넥터인 USB 탭(7)에 상기 USB 보안 모듈(20)을 꽂아야만 사용이 가능하고 컴퓨터(10)에 제어 프로그램(17)을 설치하여 사용한다.The present invention is embodied in the encryption chip 27 in the USB security module 20 so as to have the world's first access control and information protection of software using USB, a new interface standard, a user authentication function, and an encryption / decryption function. Only when the USB security module 20 is plugged into the USB tab 7 which is a connector for interfacing to the built-in USB port, the control program 17 is installed and used in the computer 10.
상기 암호화칩(27)에는 암호 및 인증 알고리즘을 ASIC으로 제작하고, 개선된 DES 알고리즘인 비밀키 기반의 대칭 암호화 알고리즘인 KSE 96알고리즘과, 공개키 기반의 비대칭 암호화 알고리즘인 RSA 알고리즘 등 암호화 기능을 갖는 보안 모듈(Security Module)을 제작하여 데이터의 보호 및 소프트웨어의 무단 복제를 방지할 수 있으며, PC의 접근 통제 및 제어하는 기능을 포함한다.The encryption chip 27 has an encryption function such as a cryptographic and authentication algorithm made of ASIC, KSE 96 algorithm, which is an improved DES algorithm, a secret key based symmetric encryption algorithm, and an RSA algorithm, which is an asymmetric encryption algorithm based on a public key. Security Modules can be created to protect data and prevent unauthorized copying of software, and to include access control and control of PCs.
상기 제어 프로그램(17)은 보호되어지고 있는 소프트웨어와 상기 USB 보안 모듈(20) 사이에는 디바이스 드라이버(device driver)가 존재하며 상기 USB 보안 모듈(20)을 제어하는 역할을 한다. 이 때, PC상에서의 프로그램의 노출을 방지하기 위하여 상기 USB 보안 모듈(20)에서 상기 디바이스 드라이버를 통하여 PC의 상태를 감시하게 되며, 어떠한 디버거(debugger)를 포함한 모니터링 프로그램이 존재가 감지되면 그 즉시 실행을 중지하는 회로인 모드 체커(Mode Checker)를 상기 USB 보안 모듈 내에 탑재한다.The control program 17 has a device driver between the protected software and the USB security module 20 and controls the USB security module 20. At this time, in order to prevent the exposure of the program on the PC, the USB security module 20 monitors the state of the PC through the device driver and immediately detects the presence of a monitoring program including any debugger. A mode checker, a circuit for stopping execution, is mounted in the USB security module.
따라서, 본 발명에 의한 PC 기반의 USB 모듈 제어 프로그램은 상용 복제방지 제품에 비해 월등히 견고한 시스템이며 다음 기능을 가진다.Therefore, the PC-based USB module control program according to the present invention is a much more robust system than commercial copy protection products and has the following functions.
■소프트웨어의 무단 복제 및 불법 접근을 차단한다.■ Prevent unauthorized copying and illegal access of the software.
본 발명은 국내외적으로 사용하고 있는 기존의 일반적인 복제방지 락과는 차별성을 가지는 새로운 복제방지 방식으로 구현하여 복제방지 되어 있는 소프트웨어는 상기 USB 보안 모듈(20)이 존재시에만 수행할 수 있으며, 단순히 모듈의 존재 여부에 따라 소프트웨어의 수행을 결정하는 기존 방식과는 완전히 다른 방식이다.The present invention is implemented in a new copy protection method having a distinction from the existing general copy protection locks used at home and abroad can be carried out only when the USB security module 20 is present, the copy protection software, simply It is a completely different approach from the traditional way of determining the performance of software based on the presence of modules.
무단 복제 및 불법접근을 차단하는 시스템의 구성도는 도 2b에 도시한 바와 같이 실행 소프트웨어가 상기 USB 보안 모듈(20)에 의해서 암호화되어 판매되고, 사용자는 정당한 구매를 통해 사용자의 인증을 받은 상기 USB 보안 모듈(20)이 존재해야만 소프트웨어를 실행할 수 있으므로 소프트웨어의 불법적인 복제 및 접근이 방지된다.The configuration diagram of a system for preventing unauthorized copying and illegal access is shown in FIG. 2B, and the execution software is encrypted and sold by the USB security module 20, and the user receives the user's authentication through a legitimate purchase. Since the security module 20 must be present to execute the software, illegal copying and access of the software is prevented.
상기 실행 소프트웨어는 USB 보안 모듈에 의해 보호되고 있는 부분(E(code))을 상기 USB 보안 모듈(20)로 사용 가능하게 수정을 가하며, 필요에 따라 생성된 데이터의 암·복호화 작업을 상기 USB 보안모듈(20)을 이용하여 수행할 수 있다. 따라서, 상기 USB 보안 모듈(20)에 의해 보호된 데이터의 제 3자에 의한 유출은 같은 보안 모듈(Security Module)내에 존재하지 않는 한 불가능하게 된다.The execution software modifies the portion E (code) protected by the USB security module so that the USB security module 20 can be used, and encrypts / decrypts data generated as necessary. This can be done using the module 20. Therefore, the leakage by the third party of the data protected by the USB security module 20 becomes impossible unless it is in the same Security Module.
■사용자 인증을 수행한다.■ Perform user authentication.
사용자에게 발급되는 상기 USB 보안 모듈(20)은 내부에 유일한 ID를 가지고 있으며, 그에 따른 암호화 알고리즘이 내장되어 있어 견고한 인증 기능을 가지며, 상기 USB 보안 모듈(20)에 의해 암호화된 데이터는 같은 보안 모듈이나 허가된 ID를 갖는 모듈에서만 복호화가 이루어지므로 접근통제가 가능하다.The USB security module 20 issued to a user has a unique ID therein and has a built-in encryption algorithm, thereby having a robust authentication function, and the data encrypted by the USB security module 20 is the same security module. However, access control is possible because the decryption is performed only in the module with the authorized ID.
■데이터의 암ㆍ복호화 기능을 갖는다.■ It has a function of encrypting / decrypting data.
상기 USB 보안모듈(20)은 데이터의 고속 암ㆍ복호화 작업을 수행하게 되며, 상기 USB 보안 모듈(20)에 내장된 상기 KSE96 암호화 알고리즘이나 RSA 암호화 알고리즘은 필요에 따라 테이블을 변환할 수 있다. 따라서, 유일한 알고리즘으로 동작하게 되기 때문에 암호화에 이용한 모듈 없이는 복호화되지 않으므로 강력한 데이터 보호 기능을 발휘한다.The USB security module 20 performs a fast encryption / decryption operation of data, and the KSE96 encryption algorithm or the RSA encryption algorithm built in the USB security module 20 may convert a table as necessary. Therefore, since it operates with a unique algorithm, it cannot be decrypted without a module used for encryption, thus exhibiting a strong data protection function.
상기 USB 탭(7)은 컴퓨터(10)의 뒷면에 설치된 USB 커넥터의 연장형이며, 허브(HUB)의 기능을 같이 겸한다. 상기 USB 보안모듈(20)은 내부에 자체 설계하고 ASIC으로 제작하게 될 상기 암호칩(27)을 내장하고 있다. 사용자는 상기 USB 보안모듈(20)을 이용하여 PC에 접근할 수 있으며 또한 상기 USB 보안모듈(20)에 따른 접근 권한에 의해서 응용 프로그램의 수행 가능여부가 제한될 수 있다.The USB tab 7 is an extension of a USB connector installed on the back of the computer 10, and also serves as a hub. The USB security module 20 has a built-in encryption chip 27 to be designed in-house and ASIC. A user may access a PC using the USB security module 20 and may be limited whether or not an application program can be executed by an access right according to the USB security module 20.
○ 기능 및 규격○ Function and standard
▷ USB 보안모듈을 이용한 사용자 로그인/로그아웃 기능▷ User login / logout function using USB security module
인증 기능을 제공하는 기 상용 제품들은 자동 로그인/로그아웃(login/logout) 기능을 제공하지 않으며 사용자 환경을 분리해서 관리하지 않는다.Commercially available products that provide authentication do not provide automatic login / logout and do not manage user environments separately.
▷ 분리된 사용환경 설정 기능▷ Separate environment setting function
자동 로그인(login) 후 사용자에 따라 설정된 환경이 자동 셋팅된다. 또한, 로그아웃(logout)시 자동 저장되어 다음 로그인 시에 복구되어 진다.After the automatic login (login), the environment set by the user is automatically set. It is also automatically saved at logout and restored at the next login.
▷ 소프트웨어별 사용권한의 설정 및 접근통제 기능▷ Permission setting and access control function by software
클래스 아이디(Class ID)로 암호화되어 배급받은 S/W는 같은 Class ID를 내장한 USB 보안 모듈에 의해 수행 가능해 진다. 따라서, 같은 사무실내에서만 사용이 허가된 경우 사무실의 공통 Class ID를 이용하여 S/W를 보호할 수 있다.S / W encrypted with Class ID can be executed by USB security module with same Class ID. Therefore, if the use is allowed only in the same office, the S / W can be protected using the common Class ID of the office.
▷ 휴대의 간편성▷ Easy to carry
USB 보안모듈은 일반 도장 정도(60 mm x 15mm x 7mm)의 크기에 불과하며 휴대가 간편하고 동작 시스템 및 물리적 환경의 거의 영향을 받지 않는다.The USB security module is only about the size of a normal paint (60mm x 15mm x 7mm), is easy to carry and is hardly affected by the operating system and the physical environment.
▷ 복제의 불가능▷ No replication
기존의 복제 방지 시스템(Lock)의 문제점을 요약하면, 기존의 락은 접근하기 쉬운 소프트웨어에 락의 유무를 체크하는 기능이 있기 때문에 소프트웨어의 변경만으로 락의 기능을 제거할 수 있었다, 그러나 본 발명에서 적용한 알고리즘은 소프트웨어 실행시 수행해야 할 실행 코드(Execution code)를 암호화함으로써 근본적으로 소프트웨어의 변경을 불가능하게 하고 있다.Summarizing the problems of the existing copy protection system (Lock), since the existing lock has a function of checking the presence or absence of a lock in accessible software, the function of the lock can be removed only by changing the software. The applied algorithm encrypts execution code that must be executed when the software is executed, thereby making it impossible to change the software.
ㆍ 고속의 데이터 처리 기능 : 1.5 Mbps, 12 Mbpsㆍ High speed data processing function: 1.5 Mbps, 12 Mbps
ㆍ USB 표준 규격 지원 : V 1.1ㆍ USB standard specification support: V 1.1
ㆍ 다중 언어(language) 지원 :Multilanguage support:
C, C++, Clipper, Pascal,Visual Basic, Power Builder, DelphiC, C ++, Clipper, Pascal, Visual Basic, Power Builder, Delphi
ㆍ 자동 설치(install) 기능Automatic installation function
ㆍ 소프트웨어 복제방지 기능(Copy Protection)ㆍ Software Copy Protection
ㆍ 데이터 암호화ㆍ복호화 기능(Encryption/Decryption)ㆍ Data encryption / decryption function (Encryption / Decryption)
ㆍ 보안모듈 자동 보호 기능(Security Module Auto Protection)ㆍ Security Module Auto Protection
ㆍ 보안모듈 제어용 소프트웨어 crack 방지 기능ㆍ Software crack prevention function for security module control
(anti debugging, Tamper Resistance)(anti debugging, Tamper Resistance)
ㆍUSB 인터페이스 지원 장치와의 충돌 회피 기능ㆍ Collision avoidance with USB interface device
▷ USB 보안 모듈▷ USB Security Module
- 보안 모듈의 개발-Development of security modules
ㆍ암호칩 : 데이터의 암ㆍ복호화 기능, 사용자 인증기능ㆍ Chip Chip: Data encryption / decryption function, user authentication function
ㆍ인터페이스 보드 : USB 포트를 이용한 입출력, 전송 데이터의 보호 기능ㆍ Interface board: Protection of I / O and transmission data using USB port
ㆍUSB 보안모듈 제어기 : 데이터 보호 기능을 내장한 장치제어기 프로그램ㆍ USB Security Module Controller: Device controller program with built-in data protection
ㆍ실행형 데이터의 자동보호 TOOL : 실행 파일 및 데이터의 자동 락킹 툴ㆍ Automatic protection tool of executable data: Automatic locking tool of executable file and data
ㆍ실행형 데이터의 수동구현 Library :ㆍ Manual implementation library of executable data:
실행 파일의 소스를 적용한 라이브러리Library with source of executable
ㆍ개발자용 KIT : USB 보안모듈의 적용을 쉽게 하기 위한 개발자용 DKㆍ KIT for developers: DK for developers to easily apply USB security module
ㆍ모듈 Programmer : 모듈의 제작시 프로그래밍을 위한 H/W 기반의 툴ㆍ Module Programmer: H / W based tool for programming during module manufacturing
ㆍ모듈 테스터 : 보안기능이 있는 USB 보안 모듈 검증 H/W 툴ㆍ Module tester: USB security module verification H / W tool with security function
- 관리망의 개발-Development of management network
ㆍ모듈관리 P/G : 모듈 key값 관리를 위한 DB 관리ㆍ Module management P / G: DB management for module key value management
ㆍ인증 코드(Auth. Code) 제작 P/G : 보안기능이 있는 인증코드 발행 P/Gㆍ Authentication code (Auth. Code) production P / G: Authentication code issue with security function P / G
ㆍ최종 사용자의 접속을 위한 웹 사이트 설계ㆍ Web site design for end user access
현재 기 상용제품 중 인증을 위한 제품으로 스마트 카드(smart card), IC 카드, 자기띠 카드 그리고 생체인식 시스템 등이 있으며, 데이터 보호 및 소프트웨어 복제장치로는 HardLock과 Sentinel Lock 등과 같은 물리적인 제품이 많이 판매되고 있다. 다음 표 1은 타 제품과 본 발명의 개발품과 특성을 비교한 것이다.Currently, products for certification include smart cards, IC cards, magnetic stripe cards, and biometric systems, and there are many physical products such as HardLock and Sentinel Lock as data protection and software duplication devices. It is sold. Table 1 compares the developed products and the characteristics of other products and the present invention.
암ㆍ복호화 알고리즘 및 인증 알고리즘을 ASIC으로 제작한 암호칩(Crypto chip)에 암호화 기능을 갖는 USB 보안 모듈에 데이터의 보호 및 소프트웨어의 무단 복제를 방지하고, 암호칩을 이용하여 PC의 접근 통제 및 제어하는 사용자 인증 기능을 제공한 PC 기반의 USB 모듈을 제어 프로그램에 의해 제어한다.Protects data and prevents unauthorized copying of software in a USB security module that encrypts encryption / decryption algorithms and authentication algorithms with cryptographic chips made with ASICs, and controls and controls PC access using cryptographic chips. The PC-based USB module that provides the user authentication function is controlled by the control program.
도 3은 본 발명에 의한 USB 보안 모듈과 프로그램 복제 방지 방법을 설명한 개략도이다. 프로그램 제작자가 상기 USB 보안모듈(20)의 키테이블(22)에 저장되어 있는 키를 이용하여 프로그램의 실행 코드나 데이터를 암호화하여 보조저장매체(12)에 저장한다.3 is a schematic diagram illustrating a USB security module and a program copy protection method according to the present invention. The program maker encrypts the execution code or data of the program using the key stored in the key table 22 of the USB security module 20 and stores the encrypted code in the auxiliary storage medium 12.
상기 컴퓨터(10)는 제어 프로그램(17)에 따라 동작하여 상기 보조저장매체(12)에 저장된 암호화된 실행코드나 데이터와 디버그 모드 판별 비트를 함께 디바이스 드라이버(device driver)를 통하여 상기 USB 보안모듈(20)로 전송한다.The computer 10 operates in accordance with the control program 17 to share the encrypted execution code or data and the debug mode determination bits stored in the auxiliary storage medium 12 through a device driver. 20).
상기 USB 보안모듈(20)은 상기 컴퓨터(10)로부터 암호화된 실행코드나 데이터와 디버그 모드 판별 비트를 입력받아, 디버그 모드가 아닐 경우에만 암호화된 실행코드나 데이터를 미리 저장되어 있는 특정 키를 사용하여 복호화한 다음 상기 컴퓨터(10)로 전송한다.The USB security module 20 receives the encrypted execution code or data and the debug mode determination bit from the computer 10, and uses a specific key that stores the encrypted execution code or data in advance only in the debug mode. Then decrypt and transmit to the computer 10.
상기 모드 검사기(mode checker)(24)는 상기 버퍼를 통해 상기 컴퓨터(10)로부터 디버그 모드 판별 비트를 입력받아 디버그 모드인지 여부를 판별하여 디버그 모드가 아닐 경우에만 암ㆍ복호화 과정을 수행하도록 키테이블(22)에 저장된 특정 키를 암ㆍ복호화기(26)로 출력하도록 되어 있다.The mode checker 24 receives a debug mode determination bit from the computer 10 through the buffer, determines whether the mode is in the debug mode, and performs the encryption / decryption process only when the debug mode is not in the debug mode. The specific key stored in (22) is outputted to the encryption / decryptor 26.
상기 암ㆍ복호화기(26)는 상기 특정 키를 입력받아 상기 버퍼를 통해 입력되는 암호화된 실행코드나 데이터를 복호화하여 상기 컴퓨터(10)로 출력한다.The encryption / decryptor 26 receives the specific key and decrypts the encrypted execution code or data input through the buffer and outputs the decrypted execution code or data to the computer 10.
이때, 상기 키테이블(22)과 상기 모드 검사기(24) 및 상기 암ㆍ복호화기(26)는 하나의 응용 주문형 집적회로(ASIC)로 구현되어 상기 USB 보안모듈(20)에 내장되며, 상기 키 테이블(22)은 쓰기(write)만 가능한 형태로 제작되어 제작자 외에는 키를 알 수 없도록 하며, 필요에 따라 다수개의 프로그램에 대한 복제 방지를 동시에 지원하기 위해 다수개의 키가 저장될 수 있다.In this case, the key table 22, the mode checker 24 and the encryption / decryptor 26 are implemented as an application specific integrated circuit (ASIC) is embedded in the USB security module 20, the key The table 22 is made in a write-only form so that the key is unknown to the producer, and a plurality of keys may be stored to simultaneously support copy protection for a plurality of programs.
상기 보조저장매체(12)에 저장된 프로그램은 제어 프로그램과 상기 USB 보안모듈(20)의 키테이블(22)에 저장되어 있는 키를 이용하여 암호화된 실행코드나 데이터 및, 암호화되지 않은 실행코드나 데이터로 이루어져 있다. 상기 컴퓨터(10)의응용프로그램에 의해 상기 보조저장매체(12)에 저장된 프로그램을 실행하면 제어프로그램이 상기 컴퓨터(10)의 메모리에 저장되고, 상기 컴퓨터(10)는 상기 제어프로그램에 따라 암호화된 실행코드 및 데이터에 대한 위치 정보를 디바이스 드라이버(14)로 출력한다. 즉, 상기 응용 프로그램이 실행파일을 실행할 때에는 먼저 실행이 가능한 파일인지를 체크하고 실행 가능한 파일이면 실행 규칙에 따라 실행되는데, 프로그램이 실행되기 위해 먼저 프로그램을 적재할 수 있을 정도의 메모리가 존재하는지를 체크하고, 존재한다면 메모리에 실행모듈을 적재한다. 그리고, 실행파일의 내용중 재배치 정보를 읽어 실행모듈의 특정 부분들을 재배치한 다음 이후 상기 컴퓨터(10)의 CPU 레지스터에 시작 위치 등의 정보를 설정한다.The program stored in the secondary storage medium 12 is an executable code or data encrypted using a control program and a key stored in the key table 22 of the USB security module 20, and an unencrypted executable code or data. Consists of When a program stored in the auxiliary storage medium 12 is executed by an application program of the computer 10, a control program is stored in the memory of the computer 10, and the computer 10 is encrypted according to the control program. Position information on the execution code and data is output to the device driver 14. That is, when the application program executes an executable file, it is first checked whether the executable file is executable. If the executable file is executable, the program is executed according to an execution rule. In order to execute the program, it is checked whether there is enough memory to load the program. If it does exist, it loads the execution module into memory. Then, the relocation information is read from the contents of the executable file to reposition specific parts of the execution module, and then information such as a start position is set in the CPU register of the computer 10.
이와 같이, 실행 모듈의 특정 부분을 재배치함에 따라 메모리에 적재되어 있는 실행 모듈을 파일로 다시 저장하는 방법으로 복제하는 것이 불가능해진다.As such, repositioning a specific portion of an execution module makes it impossible to duplicate the execution module loaded in the memory by storing the file again as a file.
도 4는 본 발명에 의한 USB 보안 모듈과 제어 프로그램과의 동작을 나타낸 흐름도이다.4 is a flowchart showing the operation of the USB security module and the control program according to the present invention.
상기 제어 프로그램(17)에 의해 디바이스 드라이버를 오픈하고(단계 S1) 에러가 없으면(S2) USB 보안모듈(20)의 시리얼 넘버인 장치 ID를 요청하고(단계 S3) 에러가 없으면(단계 S4) 상기 USB 보안모듈(20)로 키를 전송한다(단계 S5).If the device driver is opened by the control program 17 (step S1) and there is no error (S2), the device ID which is the serial number of the USB security module 20 is requested (step S3), and if there is no error (step S4) The key is transmitted to the USB security module 20 (step S5).
S5 과정에서 에러가 없으면(단계 S6) 상기 USB 보안모듈(20)로 소프트웨어에 존재하는 암호화된 디스크램블 코드(E(Discramble) code)를 전송하고(단계 S7), 상기 USB 보안모듈(20)로부터 복호화된 디스크램블 코드(Discramble code)를 제어프로그램으로 회송한(단계 S8) 후 에러가 없으면(단계 S9) 상기 디스크램블 코드의CRC를 체크한다(단계 S10).If there is no error in step S5 (step S6), the encrypted descrambling code (E (Discramble) code) existing in the software is transmitted to the USB security module 20 (step S7), and from the USB security module 20 After the decoded descramble code is returned to the control program (step S8), if there is no error (step S9), the CRC of the descramble code is checked (step S10).
CRC 체크 후, 에러를 체크하여(단계 S11) 에러가 없으면 상기 USB 보안모듈(20)로 키 KM을 사용하여 암호화되어 있는 실행 코드(EKM(Exe) 코드)를 전송하고(단계 S12), 상기 USB 보안모듈로부터 키 KSR을 사용하여 암호화한 실행 코드(EKSR(Exe) 코드)를 암호화하여 회송하며(단계 S13) 에러가 없으면(단계 S14) 상기 EKSR(Exe) 코드를 제어 프로그램의 디스크램블링 프로시쥬어에서 디스크램블링(Discrambling)하여(단계 S15) 제대로 복호화되어 있는지 CRC 검사한다(단계 S16).After the CRC check, the error is checked (step S11) and if there is no error, the execution code (E KM (Exe) code) encrypted using the key KM is transmitted to the USB security module 20 (step S12). Encrypts and returns the executable code (E KSR (Exe) code) encrypted using the key KSR from the USB security module (step S13). If there is no error (step S14), the descrambling of the E KSR (Exe) code is performed. The procedure descrambling (discrambling) (step S15) and checks whether the CRC is correctly decoded (step S16).
S16 과정의 CRC 검사 후 에러를 체크하여(단계 S17) 에러가 없으면 원래 프로그램의 위치로 점프 후 실행하며(단계 S18), S2, S4, S6, S9 및 S14 과정에서 에러가 있으면 장치 오류 메시지를 출력하고(단계 S19), S11 및 S17 과정에서 에러가 있으면 복호화 오류 메시지를 출력한(단계 S20) 후 종료한다.Check the error after the CRC check in step S16 (step S17). If there is no error, jump to the original program position and then execute it (step S18). If there is an error in steps S2, S4, S6, S9, and S14, output an error message. (Step S19), if there is an error in steps S11 and S17, the decoding error message is output (step S20) and then terminated.
도 5a 내지 도 5c는 USB 보안 모듈내의 동작을 나타낸 흐름도이다.5A-5C are flow charts illustrating the operation within the USB security module.
컴퓨터의 운영체제에서 상기 USB 보안 모듈(20)로 사용허가를 요청하여(단계 S21) 허가되면(단계 S22) 상기 USB 보안모듈(20)내 제어기의 내부 레지스터를 초기화하고(단계 S23) 데이터가 입력인지를 체크하여(단계 S24) 데이터 입력이 아니면 장치가 제거되었는지를 체크하여(단계 S25) 제거되면 종료하고 제거되지 않았으면 데이터 입력을 다시 체크한다.The operating system of the computer requests permission to use the USB security module 20 (step S21), and if permission is granted (step S22), initializes an internal register of the controller in the USB security module 20 (step S23). Check (step S24), if it is not a data input, check whether the device has been removed (step S25). If it is removed, it ends. If not, it checks the data input again.
상기 데이터 입력이면 제어워드를 분석하고(단계 S26) 모듈 정보요청인지를체크하여(단계 S27) 모듈 정보이면 USB 포트를 통해 모듈 ID를 반환한(단계 S28) 후 S24 과정을 반복하고, 모듈 정보가 아니면 디버거 명령인지를 체크한다(단계 S29).If the data is input, the control word is analyzed (step S26) and the module information request is checked (step S27). If the module information is returned, the module ID is returned through the USB port (step S28). Otherwise, it is checked whether it is a debugger command (step S29).
상기 디버거 명령이면 입력값과 디버그 정보 테이블(Debug Info table)을 비교하고(단계 S30) 디버거 존재를 체크하여(단계 S31) 디버거가 존재하지 않으면 S24 단계로 귀환하고 디버거가 존재하면 USB 포트를 통해 에러를 반환하고(단계 S32) 상기 USB 보안모듈(20)을 강제로 정지한다(단계 S33).The debugger command compares the input value with the debug info table (step S30) and checks for the presence of the debugger (step S31). If the debugger does not exist, it returns to step S24. If the debugger exists, an error is detected through the USB port. Return (step S32) and forcibly stop the USB security module 20 (step S33).
상기 디버거 명령이 아니면 키 셋팅 명령인지를 체크하여(단계 S34) 키셋팅이 아니면 데이터 입출력 명령인지를 체크하여(단계 S35) 입출력 명령이 아니면 S24 과정으로 복귀한다.If it is not the debugger command, it is checked whether it is a key setting command (step S34). If it is not a key setting, it is checked whether it is a data input / output command (step S35).
상기 제어워드 분석결과가 상기 키 셋팅 명령이면 내부키 셋팅인지를 체크하여(단계 S36) 내부 키 셋팅이면 모듈 ID와 입력값으로 내부키를 생성하고(단계 S37) 내부 키를 셋팅하고(단계 38) S24 단계로 복귀한다.If the control word analysis result is the key setting command, it is checked whether it is an internal key setting (step S36). If an internal key setting, an internal key is generated using a module ID and an input value (step S37), and an internal key is set (step 38). Return to step S24.
상기 제어워드 분석결과가 상기 내부키 셋팅이 아니면 외부키 셋팅인지를 체크하여(단계 S39) 외부키 셋팅 이면 입력값으로 외부키를 셋팅한(단계 S40) 후 S24 단계로 복귀하고 외부키 셋팅이 아니면 스크램블키 셋팅인지를 체크하여(단계 S41) 모듈 ID와 입력값으로 스크램블키 생성함으로써(단계 S42) 스크램블키를 셋팅하고(단계 S43) S24 단계로 복귀하고, 스크램블키 셋팅이 아니면 S24 단계로 복귀한다.If the result of the control word analysis is not the internal key setting or the external key setting (step S39), if the external key setting is set, the external key is set as an input value (step S40), and then returns to step S24. By checking whether the scrambled key is set (step S41) and generating a scrambled key with the module ID and the input value (step S42), the scrambled key is set (step S43) and the process returns to step S24, and if not the scrambled key setting, returns to step S24. .
상기 제어워드 분석 후, 상기 제어워드 분석결과가 상기 데이터 입출력 명령이면 암호화인지를 체크하여(단계 S44) 암호화이면 상기 내부키 인지를 체크하여(단계 S45) 상기 내부키이면 내부키로 입력값을 암호화하고(단계 S46) 상기 내부키 이용이 아니면 상기 외부키로 입력값을 암호화한다(단계 S47).After the control word analysis, if the control word analysis result is the data input / output command, it is checked whether it is encryption (step S44). If it is encryption, it is checked whether it is the internal key (step S45). (Step S46) If the internal key is not used, the input value is encrypted with the foreign key (step S47).
S44 과정에서 암호화가 아니면 내부키 이용인지를 체크하여(단계 S48) 내부키 이용이면 내부키로 입력값을 복호화하고(단계 S49) 내부키 이용이 아니면 외부키로 입력값을 복호화한다(단계 S50).In step S44, it is checked whether the encryption is an internal key or not (step S48). If the internal key is used, the input value is decrypted with the internal key (step S49). If the internal key is not used, the input value is decrypted with the external key (step S50).
암호화 및 복호화 과정 후, 상기 제어 워드내에 설정되어 있는 플래그(flag) 비트에 의해 스크램블(Scramble)을 수행하는 지를 체크하여(단계 S51) 스크램블을 수행하면 결과값의 스크램블을 수행한(단계 S52) 후 USB 보안모듈(20)의 스크램블러, 버퍼, 디바이스 드라이버를 통해 상기 제어 프로그램(17)으로 결과값을 반환한(단계 S53) 다음 S24 단계로 복귀하고, 스크램블을 수행하지 않으면 곧바로 결과값을 반환한 다음 S24 단계로 복귀한다.After the encryption and decryption process, it is checked whether or not to perform scramble by the flag bit set in the control word (step S51), and then scrambles to perform scramble of the result value (step S52). After returning the result value to the control program 17 through the scrambler, buffer, and device driver of the USB security module 20 (step S53), the process returns to step S24, and if the scramble is not performed, the result value is immediately returned. Return to step S24.
따라서, 사용자 인증 및 데이터 암·복호화 알고리즘을 내장한 USB 보안 모듈의 제어 프로그램에 의해 PC 기반의 USB 암호칩을 제어하여 소프트웨어 복제 방지 및 불법 사용자의 접근을 차단할 수 있다.Therefore, the PC-based USB encryption chip can be controlled by the control program of the USB security module incorporating user authentication and data encryption / decryption algorithms, thereby preventing software copying and preventing unauthorized users from accessing.
상술한 바와 같이, 본 발명에 의한 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법은 USB 인터페이스에 연결된 제어 프로그램에 의해 RSA 암호화 알고리즘, KSE96알고리즘, 스크램블러(Scrambler) 등 암·복호화 알고리즘이 ASIC으로 내장된 암호화 칩을 포함한 USB 보안모듈을 제어함으로써 사용자 인증, 암호화칩을 이용하여 PC의 중요 데이터의 접근 통제 및 제어, USB 보안 모듈을 이용하여 중요 데이터의 암호화 및 복호화에 의해 소프트웨어 무단 복제 및 불법 접근을 차단할 수 있는 효과가 있다.As described above, the U.S. non-security module control method using a PC-based encryption chip according to the present invention is an encryption / decryption algorithm such as an RSA encryption algorithm, a KSE96 algorithm, a scrambler, and the like by a control program connected to a USB interface. By controlling the USB security module including the encryption chip built into this ASIC, user authentication, access control and control of important data on the PC using the encryption chip, and unauthorized copying of the software by encrypting and decrypting the important data using the USB security module And it is effective to block illegal access.
또한, 실행 소프트웨어는 USB 보안 모듈의 암호화 알고리즘 같은 알고리즘으로 암호화되어 판매되고 제어 프로그램은 실행 소프트웨어 중 암호화되어 있는 부분을 복호화 후 실행하며, 복호화된 S/W의 불법적인 크랙킹(Cracking) 방지를 위한 실행 종료 시점의 메모리 관리, 디버깅 툴 등 불투명한 실행 감지시 S/W의 수행 중지 기능과 USB 보안 모듈에는 클래스 아이디(Class ID)와 개인 아이디(Private ID)가 각각 10개 저장되며, 단일 모듈에 의한 다수개의 소프트웨어 보호 기능을 가지며 EEPROM을 사용함으로써 모듈의 재활용 및 사용 범위를 확대할 수 있다.In addition, the execution software is encrypted and sold with an algorithm such as an encryption algorithm of the USB security module, and the control program executes after decrypting the encrypted portion of the execution software, and executes to prevent illegal cracking of the decrypted S / W. When opaque execution is detected such as memory management and debugging tool at the end, S / W execution stop function and USB security module store 10 Class ID and Private ID, respectively. With multiple software protection features and the use of EEPROMs, the module can be reused and extended.
새로운 복제 방지 알고리즘이 내장된 암호화 칩은 USB 모듈뿐만 아니라 기존의 PCI 및 ISA 인터페이스 규격의 보안 카드나 복제 방지 시스템으로 적용할 수 있으며, USB 보안 모듈은 USB 포트를 통하여 PC에 꼽으면 절전기능의 복구와 함께 자동 로그인(login)을 수행하며 보안모듈이 제거되면 자동 로그 아웃(logout) 후 절전기 능이 가동되고 철저한 사용자 관리와 아울러 절전 효과를 가지며, USB 모안 모듈을 이용한 사용자 인증 기술은 기존의 패스워드를 이용한 소프트웨어 인증 기술 보다 인증 강도가 월등하다.The encryption chip with the new copy protection algorithm can be applied not only to the USB module but also to the security card or copy protection system of the PCI and ISA interface standard, and the USB security module can be restored to the power saving function by plugging it into the PC through the USB port. When the security module is removed and the security module is removed, the power saving function is activated after the automatic logout, and the user management with thorough user management is saved. The user authentication technology using the USB security module uses the existing password software. Certification strength is superior to certification technology.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention described in the claims below. It will be appreciated.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990055152A KR100310445B1 (en) | 1999-12-06 | 1999-12-06 | Method for controlling Universal Serial Bus security module using crypto-chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990055152A KR100310445B1 (en) | 1999-12-06 | 1999-12-06 | Method for controlling Universal Serial Bus security module using crypto-chip |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010054357A true KR20010054357A (en) | 2001-07-02 |
KR100310445B1 KR100310445B1 (en) | 2001-09-28 |
Family
ID=19623731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990055152A KR100310445B1 (en) | 1999-12-06 | 1999-12-06 | Method for controlling Universal Serial Bus security module using crypto-chip |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100310445B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030084373A (en) * | 2002-04-26 | 2003-11-01 | 주식회사 아이오셀 | Method for transmitting and receiving e-mail using usb memory device |
KR100734168B1 (en) * | 2005-07-11 | 2007-07-02 | 케이비 테크놀러지 (주) | Secure data storage apparatus with memory card interface |
KR101043255B1 (en) * | 2008-10-31 | 2011-06-21 | (주)엠티아이코리아 | Usb hub device for providing datasecurity and method for providing datasecurity using the same |
KR101049472B1 (en) * | 2009-11-09 | 2011-07-15 | 주식회사 프라이머스코즈 | A portable USB security module device, a method of registering and querying a document file using the portable USB security module device, and a program recording medium for executing the method |
CN115457687A (en) * | 2022-09-15 | 2022-12-09 | 深圳奇迹智慧网络有限公司 | Safety configuration method and system for intelligent pole |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI442258B (en) | 2008-12-31 | 2014-06-21 | Giga Byte Tech Co Ltd | A system operating method using a hardware lock, and an electronic device that is started with a hardware lock |
CN109239941B (en) | 2018-10-22 | 2020-04-10 | 徐源佑 | Novel frameless glasses |
-
1999
- 1999-12-06 KR KR1019990055152A patent/KR100310445B1/en not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030084373A (en) * | 2002-04-26 | 2003-11-01 | 주식회사 아이오셀 | Method for transmitting and receiving e-mail using usb memory device |
KR100734168B1 (en) * | 2005-07-11 | 2007-07-02 | 케이비 테크놀러지 (주) | Secure data storage apparatus with memory card interface |
KR101043255B1 (en) * | 2008-10-31 | 2011-06-21 | (주)엠티아이코리아 | Usb hub device for providing datasecurity and method for providing datasecurity using the same |
KR101049472B1 (en) * | 2009-11-09 | 2011-07-15 | 주식회사 프라이머스코즈 | A portable USB security module device, a method of registering and querying a document file using the portable USB security module device, and a program recording medium for executing the method |
CN115457687A (en) * | 2022-09-15 | 2022-12-09 | 深圳奇迹智慧网络有限公司 | Safety configuration method and system for intelligent pole |
Also Published As
Publication number | Publication date |
---|---|
KR100310445B1 (en) | 2001-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7516331B2 (en) | Tamper-resistant trusted java virtual machine and method of using the same | |
US5473692A (en) | Roving software license for a hardware agent | |
KR100889099B1 (en) | Data storage device security method and apparatus | |
US20040030911A1 (en) | Contents distribution scheme using tamper-resistant processor | |
KR19990028931A (en) | Software protection against unauthorized use | |
EP1449048B1 (en) | Method, system, device and computer program for mutual authentication and content protection | |
US7603566B2 (en) | Authenticated process switching on a microprocessor | |
KR100358705B1 (en) | An apparatus for information protection using Universal Serial Bus(USB) security module and crypto-chip based on PC | |
JP2007257626A (en) | Method and device for temporarily using content using temporary license | |
US20040255136A1 (en) | Method and device for protecting information against unauthorised use | |
KR100310445B1 (en) | Method for controlling Universal Serial Bus security module using crypto-chip | |
KR100361869B1 (en) | The Installing and Executing Method To Use The Chiper Key | |
JP2009080772A (en) | Software starting system, software starting method and software starting program | |
US8479014B1 (en) | Symmetric key based secure microprocessor and its applications | |
US20190044709A1 (en) | Incorporating software date information into a key exchange protocol to reduce software tampering | |
KR101711024B1 (en) | Method for accessing temper-proof device and apparatus enabling of the method | |
CN111523127B (en) | Authority authentication method and system for password equipment | |
KR100423506B1 (en) | method of preventing an illegal software copy on-line using an IC chip installed card | |
KR100298506B1 (en) | System for preventing illegal installation according to cooperation between integrated circuit card and program | |
KR19990064448A (en) | A Preventive Measure of Illegal Software Copy using the Smart Card | |
CN117763587A (en) | Algorithm encryption processing method, device, equipment and medium | |
CN116432195A (en) | Encryption method and device, encryption lock, electronic equipment and storage medium | |
KR20000032464A (en) | Apparatus and method for preventing program copy | |
CN114257877A (en) | Key deployment and use method and device for broadband digital video protection (HDCP) | |
WO2005092060A2 (en) | Apparatus and method for intellectual property protection using the microprocessor serial number |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20060919 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |