KR101070766B1 - Usb composite apparatus with memory function and hardware security module - Google Patents
Usb composite apparatus with memory function and hardware security module Download PDFInfo
- Publication number
- KR101070766B1 KR101070766B1 KR1020100008066A KR20100008066A KR101070766B1 KR 101070766 B1 KR101070766 B1 KR 101070766B1 KR 1020100008066 A KR1020100008066 A KR 1020100008066A KR 20100008066 A KR20100008066 A KR 20100008066A KR 101070766 B1 KR101070766 B1 KR 101070766B1
- Authority
- KR
- South Korea
- Prior art keywords
- usb
- block
- data
- host
- function
- Prior art date
Links
Images
Classifications
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01F—ADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
- E01F9/00—Arrangement of road signs or traffic signals; Arrangements for enforcing caution
- E01F9/60—Upright bodies, e.g. marker posts or bollards; Supports for road signs
- E01F9/604—Upright bodies, e.g. marker posts or bollards; Supports for road signs specially adapted for particular signalling purposes, e.g. for indicating curves, road works or pedestrian crossings
- E01F9/608—Upright bodies, e.g. marker posts or bollards; Supports for road signs specially adapted for particular signalling purposes, e.g. for indicating curves, road works or pedestrian crossings for guiding, warning or controlling traffic, e.g. delineator posts or milestones
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01F—ADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
- E01F15/00—Safety arrangements for slowing, redirecting or stopping errant vehicles, e.g. guard posts or bollards; Arrangements for reducing damage to roadside structures due to vehicular impact
- E01F15/003—Individual devices arranged in spaced relationship, e.g. buffer bollards
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01F—ADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
- E01F9/00—Arrangement of road signs or traffic signals; Arrangements for enforcing caution
- E01F9/60—Upright bodies, e.g. marker posts or bollards; Supports for road signs
- E01F9/604—Upright bodies, e.g. marker posts or bollards; Supports for road signs specially adapted for particular signalling purposes, e.g. for indicating curves, road works or pedestrian crossings
- E01F9/619—Upright bodies, e.g. marker posts or bollards; Supports for road signs specially adapted for particular signalling purposes, e.g. for indicating curves, road works or pedestrian crossings with reflectors; with means for keeping reflectors clean
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01F—ADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
- E01F9/00—Arrangement of road signs or traffic signals; Arrangements for enforcing caution
- E01F9/60—Upright bodies, e.g. marker posts or bollards; Supports for road signs
- E01F9/623—Upright bodies, e.g. marker posts or bollards; Supports for road signs characterised by form or by structural features, e.g. for enabling displacement or deflection
- E01F9/627—Upright bodies, e.g. marker posts or bollards; Supports for road signs characterised by form or by structural features, e.g. for enabling displacement or deflection self-righting after deflection or displacement
-
- E—FIXED CONSTRUCTIONS
- E01—CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
- E01F—ADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
- E01F9/00—Arrangement of road signs or traffic signals; Arrangements for enforcing caution
- E01F9/60—Upright bodies, e.g. marker posts or bollards; Supports for road signs
- E01F9/658—Upright bodies, e.g. marker posts or bollards; Supports for road signs characterised by means for fixing
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Storage Device Security (AREA)
- Information Transfer Systems (AREA)
Abstract
본 발명은 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치에 관한 것으로, USB 인터페이스 함수 블록에 포함된 디스크립터 정보 함수의 인터페이스 디스크립터에 USB 메모리 인터페이스 방식과 USB 보안토큰 인터페이스 방식이 정의되어 있고, 엔드포인트 디스크립터에 디스크립터 전송용 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포이트, 및 USB 보안토큰이 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트가 정의되어 있으며, 호스트에서 USB 메모리부로 전달되는 UFI 명령어는 USB 메모리부의 낸드 플래시 파일 시스템 블록으로 전달하여 USB 메모리부의 데이터 읽기/쓰기가 처리되게 하고, 호스트에서 USB 보안토큰부로 전달되는 APDU 명령어와 APDU 명령어의 처리 결과는 USB 메모리부의 GPIO 블록의 2개의 입출력 핀과 USB 보안토큰부의 GPIO 블록의 2개의 입출력 핀 사이의 2 Wire 통신 방식에 의해 USB 보안토큰부와 호스트 간에 주고받도록 하여 사용자 인증 혹은 보안 인증이 처리되게 하는 기능 선택부를 포함한다.
본 발명은 사용자가 금융거래시 사용자 인증, 기업이나 공공기관의 보안 인증에 사용할 뿐만 아니라, USB 메모리로도 편리하게 사용할 수 있다.The present invention relates to a USB composite device having a memory function and a security token function, wherein a USB memory interface method and a USB security token interface method are defined in an interface descriptor of a descriptor information function included in a USB interface function block. Endpoint 0 for sending a descriptor to the descriptor, two endpoints for reading and writing data to the USB memory, two endpoints for reading and writing data to the USB security token, and two USB secure tokens are normally connected to the host. An endpoint, an interrupt that transmits an interrupt signal, is defined.UFI commands sent from the host to the USB memory section are transferred to the NAND flash file system block of the USB memory section so that data read / write of the USB memory section is processed. A delivered to USB Security Token The processing result of the PDU command and APDU command is exchanged between the USB security token unit and the host by a 2-wire communication method between two input / output pins of the GPIO block of the USB memory unit and two input / output pins of the GPIO block of the USB security token unit. It includes a function selection unit that allows authentication or security authentication to be processed.
The present invention can be used not only for user authentication during financial transactions, security authentication of corporations or public institutions, but also conveniently used as a USB memory.
Description
본 발명은 USB(Universal Serial Bus) 복합장치에 관한 것이며, 더욱 상세히는 메모리 기능과 보안토큰(HSM; Hardware Security Module) 기능을 구비한 USB 복합장치에 관한 것이다.The present invention relates to a universal serial bus (USB) composite device, and more particularly, to a USB composite device having a memory function and a hardware security module (HSM) function.
보안토큰은 금융기관의 인터넷뱅킹 인증서를 담아 인터넷뱅킹을 통한 계좌이체 등의 금융거래시 사용자 인증에 사용되거나, 혹은 기업이나 공공기관의 보안 인증서를 담아 인트라넷이나 네트워크 로그인 장치로 사용된다.The security token is used for user authentication in financial transactions such as bank transfer through internet banking with the Internet banking certificate of the financial institution, or as an intranet or network login device with a security certificate of a company or a public institution.
상기와 같은 보안토큰은 주로 USB 타입, 예컨대 휴대 가능한 USB 메모리와 유사한 타입으로 개발이 되어 있어 휴대하기 간편하고 사용이 편리할 뿐만이 아니라, 특히 기기 내부에 CPU 및 암호 연산 장치가 있어 전자 서명 키 생성, 전자 서명 생성 및 검증 등이 가능하기 때문에 PC에 보안토큰이 연결되어 있더라도, 해킹에 의해서 보안토큰 내의 암호화된 개인 키를 절대 외부로 빼낼 수가 없으며, 그 안정성이 금융기관 등에서 인정되어 OTP(One Time Password)라고 하는 일회용 비밀번호 생성기와 더불어 1등급 보안매체로 널리 이용되고 있다.Such security token is mainly developed as a USB type, for example, a type similar to a portable USB memory, so that it is not only easy to carry and easy to use, but also has a CPU and a cryptographic device inside the device to generate an electronic signature key, Since it is possible to generate and verify electronic signatures, even if a security token is connected to the PC, the encrypted private key in the security token can never be taken out by hacking, and its stability is recognized by financial institutions, etc. In addition to the one-time password generator called), it is widely used as a first-class security medium.
도 1은 일반적인 USB 타입 보안토큰의 구성을 나타낸 블록도이다.1 is a block diagram showing the configuration of a general USB type security token.
도 1에 나타낸 바와 같이, 일반적인 USB 타입의 보안토큰(100)은 보안토큰 CPU(110)와 코드 메모리부(120) 및 데이터 메모리부(130)로 구성되며, 통상 이들(110,120,130)은 하나로 묶어 COB(CHIP ON BOARD) 형태로 되어 있다.As shown in FIG. 1, a general USB
상기 보안토큰 CPU(110)는 메인 CPU(111)와 크립토(CRYPTO) CPU(112), USB 블록(113), GPIO(General Purpose Input/Output pins) 블록(114), 클록(CLOCK) 블록(115)을 포함하여 구성된다.The
상기 메인 CPU(111)는 USB 핀(111a)을 통해 호스트(HOST)와 통신하면서 보안토큰(100)의 전체적인 동작을 제어할 수 있는 레지스터(Register)들을 포함한다.The
상기 호스트는 PC를 포함한 각종 USB 호스트 기능이 추가된 제품을 의미한다.The host means a product to which various USB host functions including a PC are added.
상기 크립토 CPU(112)는 암복호화 관련 명령을 수행하는 레지스터들과 RSA(Rivest Shamir Adleman)(1024bit/2048bit), DES(Data Encryption Standard)/3-DES 등의 암복호화 관련 기능을 지원하는 크립토-코프로세서(Crypto-coprocessor)를 가지고 있다.The
상기 USB 블록(113)은 보안토큰(100)과 호스트 간의 USB 통신을 위해 사용되는 컨트롤 레지스터인 엔드포인트(Endpoint)들을 포함한다.The
상기 엔드포인트는 USB 디바이스와 호스트가 USB 통신을 통해 데이터를 주고받는 논리 포트로서, 통상 하나의 USB 디바이스는 기본적으로 플러그 앤 플레이 방식으로 USB 디바이스의 디스크립터(Descriptor) 정보를 호스트로 전송하거나 호스트의 명령 신호를 받기 위해 최소한 하나의 디스크립터 전송용 엔드포인트(일명 '엔드포인트 0'라고 부름)을 가져야 하며, 특성에 따라 데이터의 읽기, 쓰기 등을 위해 2개 이상의 엔드포인트를 가질 수 있다. 또한, 이러한 엔드포인트는 데이터의 전송 방향에 따라 호스트로 보낼 데이터를 저장하는 벌크 인-엔드포인트(Bulk in-Endpoint)와 호스트로부터 수신한 데이터를 저장하는 벌크 아웃-엔드포인트(Bulk out-Endpoint)로 구분된다.The endpoint is a logical port through which the USB device and the host exchange data through USB communication. Typically, one USB device basically transmits descriptor information of the USB device to the host or commands of the host in a plug and play manner. You must have at least one endpoint for sending descriptors (called 'endpoint 0') to receive the signal, and depending on the characteristics, you can have more than one endpoint for reading, writing, and so on. In addition, these endpoints are bulk in-endpoints storing data to be sent to the host and bulk out-endpoints storing data received from the host, depending on the direction of data transmission. Separated by.
상기와 같은 보안토큰(100)은 일반적인 USB 디바이스와 달리 상기한 엔드포인트 0와 보안토큰(100)이 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트(Interrupt IN Endpoint)를 가져야 하며, 특성에 따라 데이터의 읽기, 쓰기 등을 위해 2개 이상의 엔드포인트를 가질 수 있다Unlike the general USB device, the
상기한 디스크립터는 USB 디바이스가 무슨 역할을 하는지에 대한 정보를 가지고 있는 자료 구조로서, USB 디바이스가 호스트의 USB 포트에 삽입되면 가장 먼저 호스트로 전달되는 정보이며, 디바이스의 기존 정보를 가지고 있는 디바이스(Device) 디스크립터, 디바이스의 세부 정보를 가지고 있는 컨피규레이션(Configuration) 디스크립터, 인터페이스 방식을 정의하는 인터페이스 디스크립터, 엔드포인트 사용 방식을 정의하는 엔드포인트 디스크립터로 구분된다.The descriptor is a data structure that contains information about the role of a USB device. When the USB device is inserted into a USB port of a host, the descriptor is transmitted to the host first, and the device having existing information of the device (Device ) Descriptor, configuration descriptor with device details, interface descriptor that defines the interface method, and endpoint descriptor that defines how the endpoint is used.
참고로, 상기 USB 디바이스가 호스트의 USB 포트에 삽입된 후 가장 먼저 호스트와 디스크립터를 주고 받는 과정을 이뉴머레이션(Enumeration)이라고 하며, 호스트에서는 이러한 이뉴머레이션 과정이 완료되면 USB 디바이스를 등록하고, 이후부터 USB 디바이스는 디스크립터에서 설정한 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다. For reference, the first process of exchanging a descriptor with the host after the USB device is inserted into a USB port of the host is called enumeration. The host registers the USB device when such enumeration is completed. From then on, USB devices exchange data with the host through the bulk in-end and bulk out-end points set in the descriptor.
상기와 같은 보안토큰(100)은 일반적인 USB 디바이스와 달리 호스트에서 이뉴머레이션 과정을 완료하고 보안토큰(100)을 등록하면, 그 직후에 상기한 인터럽트 인 엔드포인트를 통해 호스트에게 정상 연결 상태를 알리는 인터럽트 신호를 전송하고, 이후부터 디스크립터에서 설정한 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다. Unlike the general USB device, the
상기 GPIO 블록(114)은 보안토큰(100)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 입출력 핀들을 포함하며, 일반적으로 USB 디바이스의 전원 공급 상태를 나타내는 LED의 ON/OFF 혹은 다른 장치와의 통신을 목적으로 사용될 수 있다.The
상기 클록 블록(115)은 상기 메인 CPU(111), 크립토 CPU(112), USB 블록(113), GPIO 블록(114)에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함한다.The
상기 코드 메모리부(120)는 주로 보안토큰(100)의 기능을 구현하기 위한 소프트웨어들이 저장되어 있으며, 램(RAM)처럼 전원이 인가되어 있는 경우만 데이터가 저장되는 것이 아니라 한번 쓰기가 된 데이터는 전원이 없어지더라도 지워지지 않고 계속 저장되어 있는 롬(ROM)이다.The
상기 코드 메모리부(120)는 상기 보안토큰 CPU(110)가 가지고 있는 레지스터들의 값을 기능별로 직접 제어하기 위하여 보안토큰 파일시스템 블록(121)과 USB 인터페이스 함수 블록(122), 암복호 함수 블록(123), GPIO 제어 함수 블록(124)으로 구분된다.The
상기 보안토큰 파일시스템 블록(121)은 상기 데이터 메모리부(130)에 저장되는 데이터를 직접 관리하는 시스템 블록으로서, 일명 COS(Smart Card Operating System) 블록이라고 하며, USB 스마트 카드 클래스(USB SCC; Universal Serial Bus Smart Card Class)의 사양(Specification)에 맞게 호스트에서 스마트 카트 국제표준 프로토콜인 ISO 7816-4에 따른 APDU(Application Protocol Data Unit) 명령어들(예컨대, 개인 키 생성, 파일 읽기, 파일 쓰기, 암호화, 복호화, 서명, 서명 인증 등)이 상기 메인 CPU(111)를 통해 전달되었을 경우 구동된다. 통상, 호스트는 상기 데이터 메모리부(130)의 실제 주소를 알지 못하기 때문에 파일 인덱스(File Index) 값이나, 레코드 넘버(Record Number)를 이용하여 파일 읽기, 쓰기 동작의 APDU 명령어를 전달하게 된다. 이때, 상기 보안토큰 파일시스템 블록(121)은 전달받은 APDU 명령어에서 파일 인덱스나 레코드 넘버를 분석하여 상기 데이터 메모리부(130)의 실제 주소로 변경함으로써 실제 데이터에 접근하도록 하는 역할을 한다. 파일 읽기, 쓰기 동작의 APDU 명령어뿐만 아니라 보안토큰(100)과 관련된 ISO 7816-4에 해당하는 APDU 명령어 모두를 보안토큰 파일시스템 블록(121)이 처리를 하며, 암복호와 관련된 명령어(예컨대, 개인 키 생성, 암호화, 복호화, 서명, 서명 인증 등)가 전달되는 경우에는 상기 암복호 함수 블록(123)의 해당 암복호와 관련된 함수를 호출하여 상기 크립토 CPU(112)로 처리 요청하고, 상기 크립토 CPU(112)가 암복호와 관련된 명령을 수행한 결과를 수신하여 필요에 따라 호스트 측으로 전달하거나 상기 데이터 메모리부(130)에 저장한다.The secure token
상기 USB 인터페이스 함수 블록(122)은 상기 보안토큰 CPU(110)의 USB 블록(113)의 엔드포인트 레지스터들을 이용하여 데이터를 전달하는 기능과, USB 이뉴머레이션(Enumeration)에 필요한 디스크립터 정보를 가지는 함수를 포함하고 있다.The USB
상기 암복호 함수 블록(123)은 호스트로부터 전달되는 APDU 명령어가 암복호와 관련된 명령어일 경우 상기 보안토큰 파일시스템 블록(121)에 의해 호출되는 암복호와 관련된 함수(예컨대, 개인 키 생성 함수, RSA, DES 등의 암복호화 함수, 서명 및 서명 인증 함수)를 포함한다.The
상기 GPIO 제어 함수 블록(124)은 보안토큰(100)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(114)의 입출력 핀들의 입출력을 설정하는 입출력 제어 함수를 포함한다.The GPIO
상기 데이터 메모리부(130)는 호스트의 APDU 명령어(예컨대, 개인 키 생성, 파일 읽기, 파일 쓰기, 암호화, 복호화, 서명, 서명 인증 등)와 관련한 데이터(예컨대, 개인 키, 읽기/쓰기 데이터, 암호 데이터, 복호 데이터, 서명 키, 서명 인증 키 등)를 저장한다.The
상기와 같이 구성되는 종래의 보안토큰(100)은 다음과 같이 작동한다.The
상기 보안토큰(100)의 USB 핀(111a)이 PC와 같은 호스트의 USB 포트에 삽입되면, 가장 먼저 상기 메인 CPU(111)가 구동하여 호스트의 디스크립터 요청(request)을 수신하여 상기 보안토큰 파일 시스템 블록(121)으로 전달한다.When the
이에 따라서, 상기 보안토큰 파일 시스템 블록(121)은 상기 USB 인터페이스 함수 블록(122)의 디스크립터 정보 함수를 호출하여 이 디스크립터 정보 함수에서 설정한 디바이스 디스크립터, 컨피규레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터를 상기 메인 CPU(111)와 USB 핀(111a)을 통해 호스트로 전달하는 이뉴머레이션 과정을 수행한다.Accordingly, the secure token
이때, 또한 상기 메인 CPU(111)는 상기 GPIO 블록(114)으로 전원 온 신호를 전달하여, 상기 GPIO 블록(114)의 어느 하나의 출력 핀에 연결된 LED를 온시킴으로써 현재 보안토큰(100)이 전원 온 상태임을 사용자에게 알린다.At this time, the
이때, 또한 상기 메인 CPU(111)가 구동함과 동시에 상기 클록 블록(115)이 구동하여 상기 메인 CPU(111), 크립토 CPU(112), USB 블록(113), GPIO 블록(114)에 사용되는 클록 주파수를 발생한다.At this time, the
이와 같이 상기 보안토큰(100)과 호스트 간의 이뉴머레이션 과정이 완료되면 상기 호스트는 상기 보안토큰(100)을 등록하고, 그 직후에 상기 보안토큰(100)은 상기 USB 블록(113)의 인터럽트 인 엔드포인트를 통해 호스트에게 정상 연결 상태를 알리는 인터럽트 신호를 전송한다.As such, when the enumeration process between the
이와 같이 상기 보안토큰(100)은 상기 USB 블록(113)의 인터럽트 인 엔드포인트를 통해 호스트에게 정상 연결 상태를 알리는 인터럽트 신호를 전송하고 나면, 이후부터 엔드포인트 디스크립터에서 설정한 상기 USB 블록(113)의 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다.As described above, after the
예컨대, 호스트에서 파일 읽기 혹은 파일 쓰기를 위한 APDU 명령어를 보안토큰(100)의 메인 CPU(111)로 전달하면, 상기 메인 CPU(111)는 이 명령어를 상기 보안토큰 파일 시스템 블록(121)으로 전달한다.For example, when an APDU command for reading or writing a file is transmitted from the host to the
이에 따라서, 상기 보안토큰 파일 시스템 블록(121)은 상기 USB 블록(113)의 엔드포인트 레지스터들을 이용하여 데이터를 읽기 혹은 쓰기 하면서 호스트에서 상기 데이터 메모리부(130)로 전달하거나, 혹은 상기 데이터 메모리부(130)에서 호스트로 전달한다.Accordingly, the secure token
예컨대, 호스트에서 암복호와 관련된 명령어(예컨대, 개인 키 생성, 암호화, 복호화, 서명, 서명 인증 등)를 보안토큰(100)의 메인 CPU(111)로 전달하면, 상기 메인 CPU(111)는 이 명령어를 상기 보안토큰 파일 시스템 블록(121)으로 전달한다.For example, when a host transmits a command related to decryption (for example, a private key generation, encryption, decryption, signature, signature authentication, etc.) to the
이에 따라서, 상기 보안토큰 파일 시스템 블록(121)은 상기 암복호 함수 블록(123)의 해당 암복호와 관련한 함수(예컨대, 개인 키 생성 함수, RSA, DES 등의 암복호화 함수, 서명 및 서명 인증 함수)를 호출하여 상기 크립토 CPU(112)로 처리 요청하고, 상기 크립토 CPU(112)가 암복호와 관련 명령을 수행한 결과를 수신하여 필요에 따라 호스트 측으로 전달하거나 상기 데이터 메모리부(130)에 저장한다.Accordingly, the secure token
한편, 상기와 같이 작동하는 보안토큰(100)은 USB 타입, 예컨대 휴대 가능한 USB 메모리와 유사한 타입으로 개발이 되어 전적으로 금융거래시 사용자 인증에 사용되거나, 혹은 기업이나 공공기관의 보안 인증에 사용되므로, 사용자가 필요로 하는 USB 메모리 기능을 전혀 제공하지 못하는 단점이 있다.On the other hand, since the
참고로, 도 2는 일반적인 USB 메모리의 구성을 나타낸 블록도이다.For reference, FIG. 2 is a block diagram showing the configuration of a general USB memory.
도 2에 나타낸 바와 같이, 일반적인 USB 메모리(100')는 메모리 CPU(110')와 코드 메모리부(120') 및 데이터 메모리부(130')로 구성되며, 상기 메모리 CPU(110')와 코드 메모리부(120')는 원칩 형태로 이루어지고, 상기 데이터 메모리부(130')로는 주로 낸드 플래시 메모리가 사용된다.As shown in FIG. 2, a
상기 메모리 CPU(110')는 메인 CPU(111')와 USB 블록(112'), GPIO 블록(113'), 클록 블록(114')을 포함하여 구성된다.The memory CPU 110 'includes a main CPU 111', a USB block 112 ', a GPIO block 113', and a clock block 114 '.
상기 메인 CPU(111')는 USB 핀(111a')을 통해 호스트와 통신하면서 USB 메모리(100')의 전체적인 동작을 제어할 수 있는 레지스터(Register)들을 포함한다.The
상기 호스트는 PC를 포함한 각종 USB 호스트 기능이 추가된 제품을 의미한다.The host means a product to which various USB host functions including a PC are added.
상기 USB 블록(112')은 USB 메모리(100')와 호스트 간의 USB 통신을 위해 사용되는 컨트롤 레지스터인 엔드포인트(Endpoint)들을 포함하며, 기본적으로 상기한 이뉴머레이션을 위한 엔드포인트 0와 데이터의 읽기, 쓰기 등을 위해 2개 이상의 엔드포인트를 가질 수 있다.The USB block 112 'includes endpoints, which are control registers used for USB communication between the USB memory 100' and the host, and basically the endpoint 0 and data for the enumeration. You can have more than one endpoint for reading, writing, and so on.
상기와 같은 USB 메모리(100')는 호스트에서 이뉴머레이션 과정을 완료하고 USB 메모리(100')를 등록하면, 이후부터 디스크립터에서 설정한 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다. When the USB memory 100 'is completed with the enumeration process at the host and registers the USB memory 100', the USB memory 100 'is then connected with the host through the bulk in-end point and the bulk out-end point set in the descriptor. You exchange data.
상기 GPIO 블록(113')은 USB 메모리(100')의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 입출력 핀들을 포함하며, 일반적으로 USB 디바이스의 전원 공급 상태를 나타내는 LED의 ON/OFF 혹은 다른 장치와의 통신을 목적으로 사용될 수 있다.The GPIO block 113 'includes input / output pins that can set input / output of another device according to a user's purpose of the USB memory 100', and generally, an on / off of an LED indicating a power supply state of a USB device or It can be used for communication with other devices.
상기 클록 블록(114')은 상기 메인 CPU(111'), USB 블록(112'), GPIO 블록(113')에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함한다.The clock block 114 'includes registers for separately setting clock frequencies used in the main CPU 111', the USB block 112 ', and the GPIO block 113'.
상기 코드 메모리부(120')는 주로 USB 메모리(100')의 기능을 구현하기 위한 소프트웨어들이 저장되어 있으며, 한번 쓰기가 된 데이터는 전원이 없어지더라도 지워지지 않고 계속 저장되어 있는 롬(ROM)이다.The code memory unit 120 'mainly stores software for implementing the functions of the USB memory 100', and once written, the data is a ROM that is stored without being erased even if power is lost.
상기 코드 메모리부(120')는 상기 데이터 메모리부(130')에 저장되는 데이터를 직접 관리하기 위하여 낸드 플래시 파일시스템 블록(121')과 USB 인터페이스 함수 블록(122'), GPIO 제어 함수 블록(123')으로 구분된다.The
상기 낸드 플래시 파일시스템 블록(121')은 상기 데이터 메모리부(130')에 저장되는 데이터의 읽기/쓰기를 직접 관리하는 시스템 블록으로서, USB 대용량 저장장치 클래스(USB MSC; Universal Serial Bus Mass Storage Class)의 사양(Specification)에 맞게 호스트에서 UFI(USB Floppy Interface)의 기준에 따른 UFI 명령어들(예컨대, 데이터 읽기, 데이터 쓰기 등)이 상기 메인 CPU(111')를 통해 전달되었을 경우 구동된다. 참고로, 호스트는 낸드 플래시 기준의 실제 물리적 주소(Physical Address)가 아닌 PC에서 사용하는 파일 시스템을 기준으로 한 논리적 주소(Logical Address)의 형태로 이루어진 UFI 명령어를 USB 메모리(100')로 전달한다. 또한, PC에서 사용하는 파일 시스템은 읽기/쓰기(Read/Write) 동작의 최소 단위가 섹터(Sector)인 512 Bytes이고, 낸드 플래시 메모리는 읽기/쓰기 동작의 최소 단위가 페이지(Page)인 2048 Bytes이기 때문에 이와 같이 읽기/쓰기 동작의 최소 단위가 서로 다른 문제들을 해결하기 위해서는 반드시 상기 낸드 플래시 파일시스템 블록(121')을 통해 호스트에서 내려오는 논리적 주소를 물리적 주소로 바꾸어서 사용해야만 한다. 이는 USB 메모리(100')가 PC와 같은 호스트의 USB 포트에 연결되었을 때 PC 파일 시스템과 호환되는 낸드 플래시 파일시스템으로 포맷이 되어있어야만 호스트에서 사용 가능하기 때문이다. 또한, 낸드 플래시 파일 시스템은 단순히 주소변환 기능만 하는 것이 아니라, 낸드 플래시는 특성상 블록당 읽기/쓰기(Read/Write) 할 수 있는 횟수가 제한되어 있고 사용 중 배드 블록(Bad Block)이 발생할 수 있기 때문에 주기적으로 논리 주소에 맞는 물리 주소로 변환하는 플래시 변환층(FTL; Flash Translation Layer)도 구현되어 있어야 한다. 이렇게 플래시 변환층(FTL)을 포함한 낸드 플래시 파일시스템이 구현된 USB 메모리(100')는 호스트에 연결되었을 경우 마치 하드디스크처럼 인식되어 이동식 디스크로 사용할 수 있게 된다.The NAND flash file system block 121 ′ is a system block that directly manages read / write of data stored in the
상기 USB 인터페이스 함수 블록(122')은 상기 USB 메모리(100')의 USB 블록(112')의 엔드포인트 레지스터들을 이용하여 데이터를 전달하는 기능과, USB 이뉴머레이션에 필요한 디스크립터 정보를 가지는 함수를 포함하고 있다.The USB interface function block 122 'has a function of transferring data using endpoint registers of the USB block 112' of the USB memory 100 'and a function having descriptor information necessary for USB enumeration. It is included.
상기 GPIO 제어 함수 블록(123')은 USB 메모리(100')의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(113')의 입출력 핀들의 입출력을 설정하는 입출력 제어 함수를 포함한다.The GPIO control function block 123 'includes an input / output control function for setting the input / output of the input / output pins of the GPIO block 113' that can set the input / output of another device according to the user's purpose of the USB memory 100 '. do.
상기 데이터 메모리부(130')는 호스트의 UFI 명령어(예컨대, 데이터 읽기, 데이터 쓰기 등)와 관련한 데이터(예컨대, 읽기/쓰기 데이터 등)를 저장한다.The
상기와 같이 구성되는 종래의 USB 메모리(100')는 다음과 같이 작동한다.The conventional USB memory 100 'configured as described above operates as follows.
상기 USB 메모리(100')의 USB 핀(111a')이 PC와 같은 호스트의 USB 포트에 삽입되면, 가장 먼저 상기 메인 CPU(111')가 구동하여 호스트의 디스크립터 요청(request)을 수신하여 상기 낸드 플래시 파일 시스템 블록(121')으로 전달한다.When the
이에 따라서, 상기 낸드 플래시 파일 시스템 블록(121')은 상기 USB 인터페이스 함수 블록(122')의 디스크립터 정보 함수를 호출하여 이 디스크립터 정보 함수에서 설정한 디바이스 디스크립터, 컨피규레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터를 상기 메인 CPU(111')와 USB 핀(111a')을 통해 호스트로 전달하는 이뉴머레이션 과정을 수행한다.Accordingly, the NAND flash file system block 121 'calls the descriptor information function of the USB interface function block 122' to determine the device descriptor, configuration descriptor, interface descriptor, and endpoint descriptor set in the descriptor information function. The enumeration process is performed to the host via the main CPU 111 'and the
이때, 또한 상기 메인 CPU(111')는 상기 GPIO 블록(113')으로 전원 온 신호를 전달하여, 상기 GPIO 블록(113')의 어느 하나의 출력 핀에 연결된 LED를 온시킴으로써 현재 USB 메모리(100')가 전원 온 상태임을 사용자에게 알린다.At this time, the
이때, 또한 상기 메인 CPU(111')가 구동함과 동시에 상기 클록 블록(114')이 구동하여 상기 메인 CPU(111'), USB 블록(112'), GPIO 블록(113')에 사용되는 클록 주파수를 발생한다.At this time, the main CPU 111 'is driven and the clock block 114' is driven to drive the main CPU 111 ', the USB block 112', and the GPIO block 113 '. Generate frequency.
이와 같이 상기 USB 메모리(100')와 호스트 간의 이뉴머레이션 과정이 완료되면 상기 호스트는 상기 USB 메모리(100')를 등록하고, 이후부터 엔드포인트 디스크립터에서 설정한 상기 USB 블록(113')의 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다.As such, when the enumeration process between the USB memory 100 'and the host is completed, the host registers the USB memory 100', and thereafter, the bulk of the USB block 113 'set in the endpoint descriptor. Data is exchanged with the host through in-end points and bulk out-end points.
예컨대, 호스트에서 데이터 읽기 혹은 데이터 쓰기를 위한 UFI 명령어를 USB 메모리(100')의 메인 CPU(111')로 전달하면, 상기 메인 CPU(111')는 이 명령어를 상기 낸드 플래시 파일 시스템 블록(121')으로 전달한다.For example, when a UFI command for reading or writing data from a host is transferred to the
이에 따라서, 상기 낸드 플래시 파일 시스템 블록(121')은 상기 USB 블록(112')의 엔드포인트 레지스터들을 이용하여 데이터를 읽기 혹은 쓰기 하면서 호스트에서 상기 데이터 메모리부(130')로 전달하거나, 혹은 상기 데이터 메모리부(130')에서 호스트로 전달한다.Accordingly, the NAND flash file system block 121 'is transferred from the host to the data memory unit 130' while reading or writing data using the endpoint registers of the USB block 112 ', or The data is transferred from the memory unit 130 'to the host.
본 발명은 상기한 바와 같은 종래의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 USB 인터페이스 함수 블록에 포함된 디스크립터 정보 함수의 인터페이스 디스크립터에 USB 메모리 인터페이스 방식과 USB 보안토큰 인터페이스 방식이 정의되어 있고, USB 인터페이스 함수 블록에 포함된 디스크립터 정보 함수의 엔드포인트 디스크립터에 디스크립터 전송용 엔드포인트인 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, 및 USB 보안토큰이 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트가 정의되어 있으며, 호스트에서 USB 메모리부로 전달되는 명령어가 UFI 명령어인지 APDU 명령어인지를 구별하여 UFI 명령어는 USB 메모리부의 낸드 플래시 파일 시스템 블록으로 전달하여 USB 메모리부의 데이터 읽기/쓰기가 처리되게 하고, APDU 명령어와 APDU 명령어의 처리 결과는 USB 메모리부의 GPIO 블록에서 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀과 USB 보안토큰부의 GPIO 블록에서 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀 사이의 2 Wire 통신 방식에 의해 USB 보안토큰부와 호스트 간에 주고받도록 하여 사용자 인증 혹은 보안 인증이 처리되게 하는 기능 선택부를 포함하는 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치를 제공하는 것이다.The present invention is to solve the conventional problems as described above, an object of the present invention is to define the USB memory interface method and USB security token interface method in the interface descriptor of the descriptor information function included in the USB interface function block, The endpoint descriptor of the descriptor information function contained in the USB interface function block, endpoint 0, which is the endpoint for transferring the descriptor, and two endpoints for reading and writing data for the USB memory, and two for reading and writing data for the USB security token. Endpoints are defined, and an interrupt-in endpoint that transmits an interrupt signal indicating that the USB security token is normally connected to the host, and UFI is distinguished whether the command transmitted from the host to the USB memory unit is a UFI command or an APDU command. Command is USB memory part The data read / write of the USB memory part is processed by the flash file system block, and the result of processing the APDU command and APDU command is 2 input / output pins and the USB security token set as the clock pin and the data pin in the GPIO block of the USB memory part. Memory function including a function selection unit for allowing user authentication or security authentication to be processed by sending and receiving between the USB security token unit and the host by a 2-wire communication method between two input / output pins configured as clock pins and data pins in a negative GPIO block. It is to provide a USB composite device with a security token function.
상기한 바와 같은 본 발명의 목적을 달성하기 위하여, 본 발명에 따른 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치는, 호스트에서 UFI 명령어가 전달되면 데이터를 읽기 혹은 쓰기 기능을 수행하고, 호스트에서 APDU 명령어가 전달되면 외부로 전송하는 USB 메모리부; 및 상기 USB 메모리부에서 외부로 전송하는 APDU 명령어를 수신하면 상기 USB 메모리부를 통하여 호스트와 사용자 인증 혹은 보안 인증 기능을 수행하는 USB 보안토큰부(HIM);로 구성되는 것을 특징으로 한다.In order to achieve the object of the present invention as described above, a USB composite device having a memory function and a security token function according to the present invention, when a UFI command is transmitted from the host to perform a data read or write function, USB memory unit for transmitting to the outside when the APDU command is transmitted; And a USB security token unit (HIM) which performs a user authentication or security authentication function with a host through the USB memory unit when receiving the APDU command transmitted from the USB memory unit to the outside.
본 발명은 사용자가 금융거래시 사용자 인증, 기업이나 공공기관의 보안 인증에 사용할 뿐만 아니라, USB 메모리로도 편리하게 사용할 수 있다.The present invention can be used not only for user authentication during financial transactions, security authentication of corporations or public institutions, but also conveniently used as a USB memory.
도 1은 일반적인 USB 타입 보안토큰의 구성을 나타낸 블록도.
도 2는 일반적인 USB 메모리의 구성을 나타낸 블록도.
도 3은 본 발명에 따른 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치의 구성을 나타낸 블록도.1 is a block diagram showing the configuration of a general USB type security token.
2 is a block diagram showing a configuration of a general USB memory.
Figure 3 is a block diagram showing the configuration of a USB composite device having a memory function and a security token function according to the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 더욱 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 3을 참조하면, 본 발명에 따른 USB 복합장치(200)는 호스트에서 UFI 명령어가 전달되면 데이터를 읽기 혹은 쓰기 기능을 수행하고, 호스트에서 APDU 명령어가 전달되면 외부로 전송하는 USB 메모리부(MEM) 및 상기 USB 메모리부(MEM)에서 외부로 전송하는 APDU 명령어를 수신하면 상기 USB 메모리부(MEM)를 통하여 호스트와 사용자 인증 혹은 보안 인증 기능을 수행하는 USB 보안토큰부(HSM)로 구성된다.Referring to FIG. 3, the USB
상기 USB 메모리부(MEM)는 메모리 CPU(210)와 코드 메모리부(220) 및 데이터 메모리부(230)를 포함하여 구성되며, 상기 메모리 CPU(210)와 코드 메모리부(220)는 원칩 형태로 이루어지고, 상기 데이터 메모리부(230)로는 주로 낸드 플래시 메모리가 사용된다.The USB memory unit MEM includes a
상기 메모리 CPU(210)는 메인 CPU(211)와 USB 블록(212), GPIO 블록(213), 클록 블록(214)을 포함하여 구성된다.The
상기 메인 CPU(211)는 USB 핀(211a)을 통해 호스트와 통신하면서 호스트의 UFI 명령어와 APDU 명령어를 전달받고, USB 메모리부(MEM)의 전체적인 동작을 제어할 수 있는 레지스터들을 포함한다.The
상기 USB 블록(212)은 USB 메모리부(MEM)와 호스트 간의 USB 통신을 위해 사용되는 컨트롤 레지스터인 엔드포인트들을 포함하며, 기본적으로 디스크립터 전송용 엔드포인트인 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, 및 USB 보안토큰부(HSM)가 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트를 가진다.The
상기 GPIO 블록(213)은 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 입출력 핀들을 포함하며, 일반적으로 USB 디바이스의 전원 공급 상태를 나타내는 LED의 ON/OFF 혹은 다른 장치와의 통신을 목적으로 사용될 수 있다.The
상기 GPIO 블록(213)은 상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록(CLOCK) 핀과 데이터(DATA) 핀으로 설정된 2개의 입출력 핀을 포함한다.The
상기 클록 블록(214)은 상기 메인 CPU(211), USB 블록(212), GPIO 블록(213)에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함한다.The
상기 코드 메모리부(220)는 기능 선택부(221)와 낸드 플래시 파일 시스템 블록(222), USB 인터페이스 함수 블록(223), GPIO 제어 함수 블록(224)을 포함하여 구성된다.The
상기 기능 선택부(221)는 호스트에서 USB 메모리부(MEM)로 전달되는 명령어가 UFI 명령어인지 APDU 명령어인지를 구별하여 UFI 명령어는 상기 메인 CPU(211)를 통해 USB 메모리부(MEM)의 낸드 플래시 파일 시스템 블록(222)으로 전달하여 USB 메모리부(MEM)의 데이터 읽기/쓰기가 처리되게 한다.The
상기 기능 선택부(221)는 APDU 명령어와 APDU 명령어의 처리 결과는 USB 메모리부(MEM)의 GPIO 블록(213)의 2개의 입출력 핀과 USB 보안토큰부(HSM)의 GPIO 블록(244)에서 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀 사이의 2 Wire 통신 방식에 의해 USB 보안토큰부(HSM)와 호스트 간에 주고받도록 하여 사용자 인증 혹은 보안 인증이 처리되게 한다.The
상기 낸드 플래시 파일시스템 블록(222)은 상기 데이터 메모리부(230)에 저장되는 데이터의 읽기/쓰기를 직접 관리하는 시스템 블록으로서, USB 대용량 저장장치 클래스(USB MSC; Universal Serial Bus Mass Storage Class)의 사양에 맞게 호스트에서 UFI(USB Floppy Interface)의 기준에 따른 UFI 명령어들(예컨대, 데이터 읽기, 데이터 쓰기 등)이 상기 메인 CPU(211)를 통해 전달되었을 경우 구동한다. 참고로, 호스트는 낸드 플래시 기준의 실제 물리적 주소(Physical Address)가 아닌 PC에서 사용하는 파일 시스템을 기준으로 한 논리적 주소(Logical Address)의 형태로 이루어진 UFI 명령어를 USB 메모리부(MEM)로 전달한다. 또한, PC에서 사용하는 파일 시스템은 읽기/쓰기(Read/Write) 동작의 최소 단위가 섹터(Sector)인 512 Bytes이고, 낸드 플래시 메모리는 읽기/쓰기 동작의 최소 단위가 페이지(Page)인 2048 Bytes이기 때문에 이와 같이 읽기/쓰기 동작의 최소 단위가 서로 다른 문제들을 해결하기 위해서는 반드시 상기 낸드 플래시 파일시스템 블록(222)을 통해 호스트에서 내려오는 논리적 주소를 물리적 주소로 바꾸어서 사용해야만 한다. 이는 USB 메모리부(MEM)가 PC와 같은 호스트의 USB 포트에 연결되었을 때 PC 파일 시스템과 호환되는 낸드 플래시 파일시스템으로 포맷이 되어있어야만 호스트에서 사용 가능하기 때문이다. 또한, 낸드 플래시 파일 시스템은 단순히 주소변환 기능만 하는 것이 아니라, 낸드 플래시는 특성상 블록당 읽기/쓰기(Read/Write) 할 수 있는 횟수가 제한되어 있고 사용 중 배드 블록(Bad Block)이 발생할 수 있기 때문에 주기적으로 논리 주소에 맞는 물리 주소로 변환하는 플래시 변환층(FTL; Flash Translation Layer)도 구현되어 있어야 한다. 이렇게 플래시 변환층(FTL)을 포함한 낸드 플래시 파일시스템이 구현된 USB 메모리부(MEM)는 호스트에 연결되었을 경우 마치 하드디스크처럼 인식되어 이동식 디스크로 사용할 수 있게 된다.The NAND flash
상기 USB 인터페이스 함수 블록(223)은 USB 메모리부(MEM)의 USB 블록(212)의 엔드포인트 레지스터들을 이용하여 데이터를 전달하는 기능과, USB 이뉴머레이션에 필요한 디스크립터 정보를 가지는 함수를 포함하고 있다.The USB
상기 USB 인터페이스 함수 블록(223)은 특히, 디스크립터 정보를 가지는 함수의 인터페이스 디스크립터에 USB 메모리 인터페이스 방식과 USB 보안토큰 인터페이스 방식이 정의되어 있고, 디스크립터 정보 함수의 엔드포인트 디스크립터에 디스크립터 전송용 엔드포인트인 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, 및 USB 보안토큰이 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트가 정의되어 있다.In particular, the USB
상기 GPIO 제어 함수 블록(224)은 USB 메모리부(MEM)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(213)의 입출력 핀들 중 2개의 입출력 핀을 각각 클록 핀과 데이터 핀으로 설정하는 입출력 제어 함수를 포함한다.The GPIO
상기 데이터 메모리부(230)는 호스트의 UFI 명령어(예컨대, 데이터 읽기, 데이터 쓰기 등)와 관련한 데이터(예컨대, 읽기/쓰기 데이터 등)를 저장한다.The
상기 USB 보안토큰부(HSM)는 보안토큰 CPU(240)와 코드 메모리부(250) 및 데이터 메모리부(260)로 구성되며, 이들(240,250,260)은 하나로 묶어 COB(CHIP ON BOARD) 형태로 되어 있는 것이 바람직하다.The USB security token unit (HSM) is composed of a security
상기 보안토큰 CPU(240)는 메인 CPU(241)와 크립토 CPU(242), GPIO 블록(243), 클록 블록(244)을 포함하여 구성된다.The secure
상기 메인 CPU(241)는 USB 메모리부(MEM)를 통해 호스트와 통신하면서 USB 보안토큰부(HSM)의 전체적인 동작을 제어할 수 있는 레지스터들을 포함한다.The
상기 크립토 CPU(242)는 암복호화 관련 명령을 수행하는 레지스터들과 RSA(Rivest Shamir Adleman)(1024bit/2048bit), DES(Data Encryption Standard)/3-DES 등의 암복호화 관련 기능을 지원하는 크립토-코프로세서(Crypto-coprocessor)를 가지고 있다.The
상기 GPIO 블록(243)은 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 입출력 핀들을 포함하며, 상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀을 포함한다.The
상기 클록 블록(244)은 상기 메인 CPU(241), 크립토 CPU(242), GPIO 블록(243)에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함한다. The
상기 코드 메모리부(250)는 보안토큰 파일 시스템 블록(251)과 암복호 함수 블록(252), GPIO 제어 함수 블록(253)을 포함하여 구성된다.The
상기 보안토큰 파일 시스템 블록(251)은 상기 데이터 메모리부(260)에 저장되는 데이터를 직접 관리하는 시스템 블록으로서, 일명 COS 블록이라고 하며, USB 스마트 카드 클래스(USB SCC; Universal Serial Bus Smart Card Class)의 사양에 맞게 호스트에서 스마트 카트 국제표준 프로토콜인 ISO 7816-4에 따른 APDU(Application Protocol Data Unit) 명령어들(예컨대, 개인 키 생성, 파일 읽기, 파일 쓰기, 암호화, 복호화, 서명, 서명 인증 등)이 상기 메인 CPU(241)를 통해 전달되었을 경우 구동된다. 통상, 호스트는 상기 데이터 메모리부(260)의 실제 주소를 알지 못하기 때문에 파일 인덱스(File Index) 값이나, 레코드 넘버(Record Number)를 이용하여 파일 읽기, 쓰기 동작의 APDU 명령어를 전달하게 된다. 이때, 상기 보안토큰 파일시스템 블록(251)은 전달받은 APDU 명령어에서 파일 인덱스나 레코드 넘버를 분석하여 상기 데이터 메모리부(260)의 실제 주소로 변경함으로써 실제 데이터에 접근하도록 하는 역할을 한다. 파일 읽기, 쓰기 동작의 APDU 명령어뿐만 아니라 USB 보안토큰부(HSM)와 관련된 ISO 7816-4에 해당하는 APDU 명령어 모두를 보안토큰 파일시스템 블록(251)이 처리를 하며, 암복호와 관련된 명령어(예컨대, 개인 키 생성, 암호화, 복호화, 서명, 서명 인증 등)가 전달되는 경우에는 상기 암복호 함수 블록(252)의 해당 암복호와 관련된 함수를 호출하여 상기 크립토 CPU(242)로 처리 요청하고, 상기 크립토 CPU(242)가 암복호와 관련된 명령을 수행한 결과를 수신하여 필요에 따라 호스트 측으로 전달하거나 상기 데이터 메모리부(260)에 저장한다.The secure token
상기 암복호 함수 블록(252)은 호스트로부터 전달되는 APDU 명령어가 암복호와 관련된 명령어일 경우 상기 보안토큰 파일시스템 블록(251)에 의해 호출되는 암복호와 관련된 함수(예컨대, 개인 키 생성 함수, RSA, DES 등의 암복호화 함수, 서명 및 서명 인증 함수)를 포함한다.The
상기 GPIO 제어 함수 블록(253)은 USB 보안토큰부(HSM)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(243)의 입출력 핀들 중 2개의 입출력 핀을 각각 클록 핀과 데이터 핀으로 설정하는 입출력 제어 함수를 포함한다.The GPIO
상기 데이터 메모리부(260)는 호스트의 APDU 명령어(예컨대, 개인 키 생성, 파일 읽기, 파일 쓰기, 암호화, 복호화, 서명, 서명 인증 등)와 관련한 데이터(예컨대, 개인 키, 읽기/쓰기 데이터, 암호 데이터, 복호 데이터, 서명 키, 서명 인증 키 등)를 저장한다.The
상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀을 포함하는 상기 USB 메모리부(MEM)의 GPIO 블록(213)과 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)은 2 Wire 통신 방식에 의해 클록 핀의 동기에 맞춰 데이터 핀을 통해 데이터를 전달한다.
상기 USB 메모리부(MEM)의 GPIO 블록(213)과 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)은 2 Wire 통신 방식으로 데이터를 주고 받을 때 데이터 통신을 시작한다는 의미의 헤더(HEADER) 정보를 먼저 어느 일 측에 전송한 후, 통신할 데이터의 총 데이터 수를 의미하는 데이터 사이즈(DATASIZE)를 보낸 다음 최종적으로 실제 데이터를 전달한다.The header HEADER means that data communication is started when the GPIO block 213 of the USB memory unit MEM and the GPIO block 243 of the USB security token unit HSM exchange data. The information is first transmitted to one side, and then the data size (DATASIZE), which means the total number of data to be communicated, is sent, and finally the actual data is transmitted.
예컨대, 호스트로부터 USB 메모리부(MEM)로 전달된 UFI 명령어는 상기 낸드 플래시 파일 시스템(222)으로 바로 전달이 되지만, 호스트로부터 USB 메모리부(MEM)로 전달된 APDU 명령어는 USB 보안토큰부(HSM)로 전달하기 전에 상기 USB 메모리부(MEM)의 GPIO 블록(213)에서 데이터 통신을 시작한다는 의미의 헤더 정보를 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)으로 전송한 후, 통신할 데이터의 총 데이터 수를 의미하는 데이터 사이즈를 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)으로 보낸 다음 최종적으로 호스트에서 전달받은 APDU 명령어를 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)으로 전달한다.For example, the UFI command transferred from the host to the USB memory unit MEM is transferred directly to the NAND
상기와 같이 구성되는 본 발명에 따른 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치(200)는 다음과 같이 작동한다.The USB
상기 USB 복합장치(200)의 USB 핀(211a)이 PC와 같은 호스트의 USB 포트에 삽입되면, 가장 먼저 상기 USB 메모리부(MEM)의 메인 CPU(211)와 USB 보안토큰부(HSM)의 메인 CPU(241)가 구동하고, 이후 상기 USB 메모리부(MEM)는 호스트의 디스크립터 요청(request)을 수신하여 상기 낸드 플래시 파일 시스템 블록(222)으로 전달한다.When the
이에 따라서, 상기 낸드 플래시 파일 시스템 블록(222)은 상기 USB 인터페이스 함수 블록(223)의 디스크립터 정보 함수를 호출하여 이 디스크립터 정보 함수에서 설정한 디바이스 디스크립터, 컨피규레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터를 상기 메인 CPU(211)와 USB 핀(211a)을 통해 호스트로 전달하는 이뉴머레이션 과정을 수행한다.Accordingly, the NAND flash
이때, 또한 상기 USB 메모리부(MEM)의 메인 CPU(211)는 상기 GPIO 블록(213)으로 전원 온 신호를 전달하여, 상기 GPIO 블록(213)의 어느 하나의 출력 핀에 연결된 LED를 온시킴으로써 현재 USB 복합장치(200)가 전원 온 상태임을 사용자에게 알린다. At this time, the
이때, 또한 상기 USB 메모리부(MEM)의 메인 CPU(211)가 구동함과 동시에 상기 클록 블록(214)이 구동하여 상기 메인 CPU(211), USB 블록(212), GPIO 블록(213)에 사용되는 클록 주파수를 발생한다.At this time, the
이때, 또한 상기 USB 보안토큰부(HSM)의 메인 CPU(240)가 구동함과 동시에 상기 클록 블록(244)이 구동하여 상기 메인 CPU(241), 크립토 CPU(242), GPIO 블록(243)에 사용되는 클록 주파수를 발생한다.At this time, the
이와 같이 상기 USB 복합장치(200)와 호스트 간의 이뉴머레이션 과정이 완료되면 상기 호스트는 상기 USB 복합장치(200)를 등록하고, 그 직후에 상기 USB 복합장치(200)는 USB 메모리부(MEM)의 USB 블록(212)의 인터럽트 인 엔드포인트를 통해 호스트에게 정상 연결 상태를 알리는 인터럽트 신호를 전송한다.As such, when the enumeration process between the USB
이와 같이 상기 USB 복합장치(200)가 USB 메모리부(MEM)의 USB 블록(212)의 인터럽트 인 엔드포인트를 통해 호스트에게 정상 연결 상태를 알리는 인터럽트 신호를 전송하고 나면, 이후부터 상기 USB 인터페이스 함수 블록(223)의 엔드포인트 디스크립터에서 설정한 USB 메모리부(MEM)의 USB 블록(212)의 벌크 인-엔드포인트와 벌크 아웃-엔드포인트를 통해 호스트와 데이터를 주고받게 된다.As described above, after the USB
이때, 만약 호스트에서 데이터 읽기 혹은 데이터 쓰기를 위한 UFI 명령어를 USB 메모리부(MEM)의 메인 CPU(211)로 전달하거나, 혹은 호스트에서 파일 읽기 혹은 파일 쓰기를 위한 APDU 명령어를 USB 메모리부(MEM)의 메인 CPU(211)로 전달하거나, 혹은 호스트에서 암복호와 관련된 APDU 명령어(예컨대, 개인 키 생성, 암호화, 복호화, 서명, 서명 인증 등)를 USB 메모리부(MEM)의 메인 CPU(211)로 전달하면, 상기 메인 CPU(211)는 이 모든 명령어를 상기 기능 선택부(221)로 전달한다.At this time, if the host transfers UFI commands for reading or writing data to the
이에 따라서, 상기 기능 선택부(221)는 호스트에서 USB 메모리부(MEM)로 전달되는 명령어가 UFI 명령어인지 APDU 명령어인지를 구별한다.Accordingly, the
이때, 상기 기능 선택부(221)에서 구별한 UFI 명령어는 USB 메모리부(MEM)의 메인 CPU(211)를 통해 상기 낸드 플래시 파일 시스템 블록(222)으로 전달하여 USB 메모리부(MEM)의 데이터 읽기/쓰기가 처리되게 한다.At this time, the UFI command distinguished by the
이 경우, 상기 낸드 플래시 파일 시스템 블록(222)은 상기 USB 블록(212)의 엔드포인트 레지스터들을 이용하여 데이터를 읽기 혹은 쓰기 하면서 호스트에서 상기 데이터 메모리부(230)로 전달하거나, 혹은 상기 데이터 메모리부(230)에서 호스트로 전달한다.In this case, the NAND flash
이와 달리, 상기 기능 선택부(221)에서 구별한 APDU 명령어와 APDU 명령어의 처리 결과는 USB 메모리부(MEM)의 GPIO 블록(213)의 2개의 입출력 핀과 USB 보안토큰부(HSM)의 GPIO 블록(244)에서 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀 사이의 2 Wire 통신 방식에 의해 USB 보안토큰부(HSM)와 호스트 간에 주고받도록 하여 사용자 인증 혹은 보안 인증이 처리되게 한다.In contrast, the APDU command and the APDU command processing result distinguished by the
예컨대, 도 3에 나타낸 바와 같이, 상기 기능 선택부(221)에서 구별한 APDU 명령어는 2 Wire 통신 방식에 의해 각자의 클록 핀에 동기하여 각자의 데이터 핀을 통해 데이터를 주고받는 USB 메모리부(MEM)의 GPIO 블록(213)과 USB 보안토큰부(HSM)의 GPIO 블록(243) 간의 통신을 통해 USB 보안토큰부(HSM)의 메인 CPU(241)로 전달되며, 이때 상기 메인 CPU(241)는 이 APDU 명령어를 상기 보안토큰 파일 시스템 블록(251)으로 전달한다.For example, as shown in FIG. 3, the APDU command distinguished by the
이 경우, 상기 보안토큰 파일 시스템 블록(251)이 호스트에서 파일 읽기 혹은 파일 쓰기를 위한 APDU 명령어를 전달받으면, 상기 보안토큰 파일 시스템 블록(251)은 USB 메모리부(MEM)의 GPIO 블록(213)과 USB 보안토큰부(HSM)의 GPIO 블록(243) 간의 통신을 통해 상기 USB 메모리부(MEM)의 USB 블록(212)의 엔드포인트 레지스터들을 이용하여 데이터를 읽기 혹은 쓰기 하면서 호스트에서 상기 데이터 메모리부(260)로 전달하거나, 혹은 상기 데이터 메모리부(260)에서 호스트로 전달한다.In this case, when the secure token
또한, 상기 보안토큰 파일 시스템 블록(251)이 호스트에서 암복호와 관련된 APDU 명령어(예컨대, 개인 키 생성, 암호화, 복호화, 서명, 서명 인증 등)를 전달받으면, 상기 보안토큰 파일 시스템 블록(251)은 상기 암복호 함수 블록(252)의 해당 암복호와 관련한 함수(예컨대, 개인 키 생성 함수, RSA, DES 등의 암복호화 함수, 서명 및 서명 인증 함수)를 호출하여 상기 크립토 CPU(242)로 처리 요청하고, 상기 크립토 CPU(242)가 암복호와 관련 명령을 수행한 결과를 수신하여 메인 CPU(241)를 경유하여 필요에 따라 USB 메모리부(MEM)의 GPIO 블록(213)과 USB 보안토큰부(HSM)의 GPIO 블록(243) 간의 통신을 통해 호스트 측으로 전달하거나 상기 데이터 메모리부(260)에 저장한다.In addition, when the secure token
이상에서 설명한 본 발명에 따른 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치는 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양하게 변경하여 실시할 수 있는 범위까지 그 기술적 정신이 있다.The USB composite device having the memory function and the security token function according to the present invention described above is not limited to the above-described embodiment, and the present invention belongs without departing from the gist of the present invention as claimed in the following claims. To those skilled in the art, the technical spirit is to the extent that anyone can make various changes.
<도면의 주요부분에 대한 부호의 설명>
100: 보안토큰 100': USB 메모리
110: 보안토큰 CPU 110': 메모리 CPU
111,111': 메인 CPU 111a,111a': USB 핀
112: 크립토 CPU 113,112': USB 블록
114,113': GPIO 블록 115,114': 클록 블록
120,120': 코드 메모리부 121: 보안토큰 파일 시스템 블록
121': 낸드 플래시 파일 시스템 블록
122,122': USB 인터페이스 함수 블록
123: 암호화 블록 124,123': GPIO 제어 함수 블록
130,130': 데이터 메모리부 200: USB 복합장치
210: 메모리 CPU 211: 메인 CPU
211a: USB 핀 212: USB 블록
213: GPIO 블록 214: 클록 블록
220: 코드 메모리부 221: 기능 선택부
222: 낸드 플래시 파일 시스템 블록
223: USB 인터페이스 함수 블록
224: GPIO 제어 함수 블록 230,260: 데이터 메모리부
240: 보안토큰 CPU 241: 메인 CPU
242: 크립토 CPU 243: GPIO 블록
244: 클록 블록 250: 코드 메모리부
251: 보안토큰 파일 시스템 블록
252: 암복호 함수 블록 253: GPIO 제어 함수 블록
MEM: USB 메모리부 HSM: USB 보안토큰부<Description of the symbols for the main parts of the drawings>
100: security token 100 ': USB memory
110: security token CPU 110 ': memory CPU
111,111 ':
112: Crypto CPU 113,112 ': USB block
114,113 ': GPIO block 115,114': clock block
120,120 ': code memory section 121: secure token file system block
121 ': NAND Flash File System Block
122,122 ': USB interface function block
123: encryption block 124,123 ': GPIO control function block
130,130 ': data memory 200: USB composite device
210: memory CPU 211: main CPU
211a: USB Pin 212: USB Block
213: GPIO block 214: clock block
220: code memory unit 221: function selection unit
222: NAND flash file system block
223: USB interface function block
224: GPIO
240: secure token CPU 241: main CPU
242: crypto CPU 243: GPIO block
244: clock block 250: code memory section
251: Secure Token File System Block
252: decryption function block 253: GPIO control function block
MEM: USB memory section HSM: USB security token section
Claims (5)
상기 USB 메모리부(MEM)에서 외부로 전송하는 APDU 명령어를 수신하면 상기 USB 메모리부(MEM)를 통하여 호스트와 사용자 인증 혹은 보안 인증 기능을 수행하는 USB 보안토큰부(HSM);로 구성되는 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치에 있어서,
상기 USB 메모리부(MEM)는
USB 핀(121a)을 통해 호스트와 통신하면서 호스트의 UFI 명령어와 APDU 명령어를 전달받고, USB 메모리부(MEM)의 전체적인 동작을 제어할 수 있는 레지스터들을 포함하는 메인 CPU(211)와; USB 메모리부(MEM)와 호스트 간의 USB 통신을 위해 사용되는 컨트롤 레지스터인 엔드포인트들을 포함하며, 기본적으로 디스크립터 전송용 엔드포인트인 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, 및 USB 보안토큰부(HSM)가 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트를 가지는 USB 블록(212); 상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀을 포함하는 GPIO 블록(213); 및 상기 메인 CPU(211), USB 블록(212), GPIO 블록(213)에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함하는 클록 블록(214);을 포함하는 메모리 CPU(210)와;
호스트에서 USB 메모리부(MEM)로 전달되는 명령어가 UFI 명령어인지 APDU 명령어인지를 구별하여 UFI 명령어는 상기 메인 CPU(211)를 통해 USB 메모리부(MEM)의 낸드 플래시 파일 시스템 블록(222)으로 전달하여 USB 메모리부(MEM)의 데이터 읽기/쓰기가 처리되게 하고, APDU 명령어와 APDU 명령어의 처리 결과는 USB 메모리부(MEM)의 GPIO 블록(213)의 2개의 입출력 핀과 USB 보안토큰부(HSM)의 GPIO 블록(243)에서 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀 사이의 2 Wire 통신 방식에 의해 USB 보안토큰부(HSM)와 호스트 간에 주고받도록 하여 사용자 인증 혹은 보안 인증이 처리되게 하는 기능 선택부(221)와; 데이터 메모리부(230)에 저장되는 데이터의 읽기/쓰기를 직접 관리하는 시스템 블록으로서, USB 대용량 저장장치 클래스(USB MSC; Universal Serial Bus Mass Storage Class)의 사양에 맞게 호스트에서 UFI(USB Floppy Interface)의 기준에 따른 UFI 명령어들이 상기 메인 CPU(211)를 통해 전달되었을 경우 구동하는 낸드 플래시 파일시스템 블록(222); USB 메모리부(MEM)의 USB 블록(212)의 엔드포인트 레지스터들을 이용하여 데이터를 전달하는 기능과, USB 이뉴머레이션에 필요한 디스크립터 정보를 가지는 함수를 포함하고 있으며, 디스크립터 정보를 가지는 함수의 인터페이스 디스크립터에 USB 메모리 인터페이스 방식과 USB 보안토큰 인터페이스 방식이 정의되어 있고, 디스크립터 정보 함수의 엔드포인트 디스크립터에 디스크립터 전송용 엔드포인트인 엔드포인트 0와 USB 메모리용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, USB 보안토큰용 데이터 읽기, 쓰기를 위한 2개의 엔드포인트, 및 USB 보안토큰이 호스트에 정상 접속된 상태를 알리는 인터럽트 신호를 전송하는 인터럽트 인 엔드포인트가 정의되어 있는 USB 인터페이스 함수 블록(223); 및 USB 메모리부(MEM)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(213)의 입출력 핀들 중 2개의 입출력 핀을 각각 클록 핀과 데이터 핀으로 설정하는 입출력 제어 함수를 포함하는 GPIO 제어 함수 블록(224);을 포함하는 코드 메모리부(220); 및
호스트의 UFI 명령어와 관련한 데이터를 저장하는 데이터 메모리부(230);
를 포함하여 구성되는 것을 특징으로 하는 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치.
A USB memory unit (MEM) that performs data read or write function when a UFI command is transmitted from the host, and transmits externally when the APDU command is transmitted from the host; And
A USB security token unit (HSM) for performing a user authentication or security authentication function with a host through the USB memory unit (MEM) when receiving the APDU command transmitted from the USB memory unit (MEM) to the outside; In the USB composite device equipped with a security token function,
The USB memory unit (MEM) is
A main CPU 211 that receives registers for controlling the overall operation of the USB memory unit MEM while receiving a host UFI command and an APDU command while communicating with the host through the USB pin 121a; It includes endpoints, which are control registers used for USB communication between the USB memory section (MEM) and the host, basically endpoint 0 for descriptor transfer, two endpoints for reading and writing data for USB memory, A USB block 212 having two endpoints for reading and writing data for the USB security token, and an interrupt in endpoint for transmitting an interrupt signal informing that the USB security token unit (HSM) is normally connected to the host; A GPIO block 213 including two input / output pins configured as clock pins and data pins for communication between the USB memory unit MEM and the USB security token unit HSM; And a clock block (214) including registers for separately setting clock frequencies used in the main CPU (211), the USB block (212), and the GPIO block (213).
The UFI command is transmitted to the NAND flash file system block 222 of the USB memory unit MEM through the main CPU 211 by distinguishing whether the command transmitted from the host to the USB memory unit MEM is a UFI command or an APDU command. The data read / write of the USB memory unit MEM is processed, and the result of processing the APDU command and the APDU command is the two input / output pins of the GPIO block 213 of the USB memory unit MEM and the USB security token unit (HSM). In the GPIO block 243, the user can make a user authentication or security authentication by sending and receiving between the USB security token unit (HSM) and the host by a 2-wire communication method between two input / output pins configured as clock pins and data pins. A selection unit 221; As a system block that directly manages read / write of data stored in the data memory unit 230, the USB Floppy Interface (UFI) is used in the host according to the specification of the USB MSC (Universal Serial Bus Mass Storage Class). A NAND flash file system block 222 which is driven when UFI instructions according to the criteria of the present invention are transmitted through the main CPU 211; Interface descriptor of a function having descriptor information necessary for USB enumeration, and a function having data transfer function using endpoint registers of the USB block 212 of the USB memory unit MEM. The USB memory interface method and the USB security token interface method are defined in the endpoint descriptor of the descriptor information function, endpoint 0, which is a descriptor for transferring a descriptor, two endpoints for reading and writing data for a USB memory, and USB security. A USB interface function block 223 which defines two endpoints for reading and writing data for the token, and an interrupt in endpoint for transmitting an interrupt signal informing that the USB security token is normally connected to the host; And an input / output control function for setting two input / output pins of the input / output pins of the GPIO block 213 that can set input / output of another device according to a user's purpose of the USB memory unit MEM as clock pins and data pins, respectively. A code memory unit 220 including a GPIO control function block 224; And
A data memory unit 230 storing data related to a UFI command of the host;
USB composite device having a memory function and a security token function, characterized in that configured to include.
USB 메모리부(MEM)를 통해 호스트와 통신하면서 USB 보안토큰부(HSM)의 전체적인 동작을 제어할 수 있는 레지스터들을 포함하는 메인 CPU(241)와; 암복호화 관련 명령을 수행하는 레지스터들과 암복호화 관련 기능을 지원하는 프로세서를 가지고 있는 크립토 CPU(242); 상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀을 포함하는 GPIO 블록(243); 및 상기 메인 CPU(241), 크립토 CPU(242), GPIO 블록(243)에 사용되는 클록 주파수를 따로 설정할 수 있는 레지스터들을 포함하는 클록 블록(244);을 포함하는 보안토큰 CPU(240)와;
상기 데이터 메모리부(260)에 저장되는 데이터를 직접 관리하는 시스템 블록으로서, USB 스마트 카드 클래스(USB SCC; Universal Serial Bus Smart Card Class)의 사양에 맞게 호스트에서 스마트 카트 국제표준 프로토콜인 ISO 7816-4에 따른 APDU(Application Protocol Data Unit) 명령어들이 상기 메인 CPU(241)를 통해 전달되었을 경우 구동되는 보안토큰 파일 시스템 블록(251)과; 호스트로부터 전달되는 APDU 명령어가 암복호와 관련된 명령어일 경우 상기 보안토큰 파일시스템 블록(251)에 의해 호출되는 암복호와 관련된 함수를 포함하는 암복호 함수 블록(252); 및 USB 보안토큰부(HSM)의 사용자의 목적에 맞게 다른 장치의 입출력을 설정할 수 있는 상기 GPIO 블록(243)의 입출력 핀들 중 2개의 입출력 핀을 각각 클록 핀과 데이터 핀으로 설정하는 입출력 제어 함수를 포함하는 GPIO 제어 함수 블록(253);을 포함하는 코드 메모리부(250); 및
호스트의 APDU 명령어와 관련한 데이터를 저장하는 데이터 메모리부(260);
를 포함하여 구성되는 것을 특징으로 하는 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치.The method of claim 1, wherein the USB security token unit (HSM)
A main CPU 241 including registers for communicating with the host through the USB memory unit MEM and controlling the overall operation of the USB security token unit HSM; A crypto CPU 242 having registers for performing decryption related instructions and a processor supporting a decryption related function; A GPIO block 243 including two input / output pins configured as clock pins and data pins for communication between the USB memory unit MEM and the USB security token unit HSM; And a clock block (244) including registers for separately setting clock frequencies used in the main CPU (241), the crypto CPU (242), and the GPIO block (243).
As a system block that directly manages data stored in the data memory unit 260, an ISO 7816-4, which is an international standard protocol for smart carts in a host, meets the specifications of a universal serial bus smart card (USB SCC). A security token file system block 251 that is driven when APDU (Application Protocol Data Unit) instructions are transmitted through the main CPU 241; A decryption function block 252 including a function related to decryption called by the secure token file system block 251 when the APDU command transmitted from the host is a decryption related command; And an input / output control function for setting two input / output pins of the input / output pins of the GPIO block 243 that can set the input / output of another device according to the user's purpose of the USB security token unit (HSM) as clock pins and data pins, respectively. Code memory unit 250 including; GPIO control function block 253; And
A data memory unit 260 for storing data related to an APDU command of a host;
USB composite device having a memory function and a security token function, characterized in that configured to include.
상기 USB 메모리부(MEM)와 USB 보안토큰부(HSM) 간의 통신을 위하여 클록 핀과 데이터 핀으로 설정된 2개의 입출력 핀을 포함하는 상기 USB 메모리부(MEM)의 GPIO 블록(213)과 상기 USB 보안토큰부(HSM)의 GPIO 블록(243)은 2 Wire 통신 방식에 의해 클록 핀의 동기에 맞춰 데이터 핀을 통해 데이터를 전달하는 것을 특징으로 하는 메모리 기능과 보안토큰 기능을 구비한 USB 복합장치.The method according to claim 1 or 3,
GPIO block 213 and USB security of the USB memory unit MEM including two input / output pins configured as clock pins and data pins for communication between the USB memory unit MEM and the USB security token unit HSM. GPIO block 243 of the token unit (HSM) is a USB composite device having a memory function and a security token function, characterized in that for transferring data through the data pin in synchronization with the clock pin by a 2-wire communication method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100008066A KR101070766B1 (en) | 2010-01-28 | 2010-01-28 | Usb composite apparatus with memory function and hardware security module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100008066A KR101070766B1 (en) | 2010-01-28 | 2010-01-28 | Usb composite apparatus with memory function and hardware security module |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110088245A KR20110088245A (en) | 2011-08-03 |
KR101070766B1 true KR101070766B1 (en) | 2011-10-07 |
Family
ID=44926885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100008066A KR101070766B1 (en) | 2010-01-28 | 2010-01-28 | Usb composite apparatus with memory function and hardware security module |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101070766B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645000B2 (en) | 2019-12-03 | 2023-05-09 | Samsung Electronics Co., Ltd. | Storage device including memory controller, and non-volatile memory system including the same and operating method thereof |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260645A (en) * | 2015-10-09 | 2016-01-20 | 北京大明五洲科技有限公司 | Security authentication system |
KR101980487B1 (en) * | 2018-07-09 | 2019-05-20 | 박영훈 | Usb device for network security |
CN111708722A (en) * | 2020-07-09 | 2020-09-25 | 飞鱼网络技术(武汉)有限公司 | USB terminal equipment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004013438A (en) | 2002-06-05 | 2004-01-15 | Takeshi Sakamura | Electronic value data communication method, communication system, ic card, and portable terminal |
JP2004086584A (en) * | 2002-08-27 | 2004-03-18 | Ntt Comware Corp | Authentication device for personal computer |
-
2010
- 2010-01-28 KR KR1020100008066A patent/KR101070766B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004013438A (en) | 2002-06-05 | 2004-01-15 | Takeshi Sakamura | Electronic value data communication method, communication system, ic card, and portable terminal |
JP2004086584A (en) * | 2002-08-27 | 2004-03-18 | Ntt Comware Corp | Authentication device for personal computer |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645000B2 (en) | 2019-12-03 | 2023-05-09 | Samsung Electronics Co., Ltd. | Storage device including memory controller, and non-volatile memory system including the same and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20110088245A (en) | 2011-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414244B (en) | Encryption card, electronic equipment and encryption service method | |
KR100555003B1 (en) | Memory card | |
US7650503B2 (en) | Memory card | |
CN101853417B (en) | Working method and system of CF (Compact Flash) interface information safety equipment | |
CN100419663C (en) | Data security | |
US8627100B2 (en) | Separate type mass data encryption/decryption apparatus and implementing method therefor | |
US8122172B2 (en) | Portable information security device | |
CN108345806A (en) | A kind of hardware encryption card and encryption method | |
TWI451248B (en) | Data protecting method, memory controller and memory storage apparatus | |
CN105243344A (en) | Chipset with hard disk encryption function and host computer controller | |
US20120124380A1 (en) | Usb composite device and method therefor | |
US20100332855A1 (en) | Method and Memory Device for Performing an Operation on Data | |
TWI472927B (en) | Method for dispatching and transmitting data stream, memory controller and memory storage apparatus | |
KR20060102584A (en) | Secure data storage apparatus with usb interface, and method thereof | |
CN101561751A (en) | USB encryption and decryption bridging chip | |
KR101070766B1 (en) | Usb composite apparatus with memory function and hardware security module | |
CN103617127B (en) | The method of the storage device with subregion and memory partition | |
CN103903042A (en) | Data flow encryption SD card | |
CN101540191A (en) | Real-time encrypted U disk and high speed encryption-decryption method | |
TWI430104B (en) | Method for dispatching and transmitting data stream, memory controller and memory storage apparatus | |
CN109657502A (en) | A kind of SATA bridge based on domestic cryptographic algorithm connects real-time Transmission encryption system and method | |
CN107967432A (en) | A kind of safe storage device, system and method | |
CN110321317A (en) | A kind of chip of multiplex roles and more coprocessors | |
EP4086800A1 (en) | Integrated circuit module for information security | |
CN201048046Y (en) | Multifunctional identification card |
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 | ||
LAPS | Lapse due to unpaid annual fee |