More and more daily activities are moved onto the network as the fast development of network and e-commerce technologies in recent years. For example, governmental affairs, banking transactions, and shopping can all be carried out online. Inevitably, some personal information or sensitive information, such as business secrets, is transmitted through the network, and then is possibly associated with some malicious threats (e.g. viruses, hackers, phishing attacks, and other frauds), which can bring losses or damages to legitimate online users.
The information security device is a small hardware device with a processor and a memory. It communicates with the computer through a data communication interface of the computer. It provides functions of key generation, secure storage of keys, preset encryption algorithms, and anti-attack, etc. The calculation relating to keys is fully carried out within the information security device. The information security device typically communicates with the computer through a USB (Universal Serial Bus) interface. Thus, it is often referred to as the USB key or the USB token. The manufacturer of the information security device, the software developer, and the users of the information security can store some information in this device. The advanced information security device is programmable. In other words, the code can be stored in the information security device and be executed then.
Typically, the information security device contains a security-designed chip to perform security functions. In addition to the functions of common embedded microcontrollers, the security-designed chip provides more security functions. Special processing relating to security is applied to the architecture of the security-designed chip during its design phase. For example, the security-designed chip employs a specific security kernel, which provides supports for multiple states with different right definitions, so as to implement management of access to hardware resources, support for randomization of instruction execution time (i.e. instruction cycle), and support for switching of chip states through its interrupt system, so as to implement control over different levels of security to support multi-application. In addition, the kernel may also contain a MMU (Memory Management Unit) for separating logic addresses from physical addresses and mapping addresses, providing supports for the implementation of application (or multi-application) and security from the architecture and forming a hardware firewall along with the different states. The interrupt system can also support passing and switching of interfaces and privileges for system databases and user programs. The security-designed chip can be equipped with a non-volatile memory as its storage medium. Generally, the security-designed chip is made to comply with some standards or is certified by authorities to guarantee its security. These standards and certification include, for example, TCG TPM v1.2, ISO15408, and certain standards of China Password Administration Committee. One of the commercially available security-designed chips is ST19WP18 from STMicroelectronics, which has been successfully certified by EAL5+ (Common Criteria Evaluation Assurance Level 5 plus), which is one of the highest levels for this kind of product in ISO15408 standard.
The operations that can be performed by the information security device mainly include data interacting (encrypting of data to be written to the device, or decrypting of data to be read from the device), authentication information processing, storing/verifying a password, storing/verifying a signature, storing/verifying a certificate, access right managing, and presetting code and executing data computation. Presetting code includes presetting a user software fragment, which cannot be read out of the device and performs data computation within the device, and presetting a software protection application interface function, which is an interface-level function between the device and the applications of software developer.
The hardware identifier is a globally unique identification number defined by the device manufacturer. For the information security device, the hardware identifier is usually stored in the device or labeled on the device. The hardware identifier includes the product number and the manufacturer number. The configuration of the device can also be distinguished by the hardware identifier.
Small Computer System Interface, or SCSI, is a set of interface standards for physically connecting between computers and peripheral devices, providing a higher data transfer rate. The SCSI-based USB device uses the SCSI software protocol only. This simplifies programming of the driver of the USB device. The SCSI-based USB device simulates a USB mass storage device. Thus, the USB device can be driven by the USB flash disk driver integrated with the host. By some means, the USB device can be recognized as a non-drive device by the operating system to avoid the misoperation of users. Alternatively, the USB device can also be designed to be recognized as a real drive by the host. Thus, the software on the USB device can be designed to be automatically played at least on the Win32 platforms, so that it is easier to use.
USB Chip/Smart Card Interface Devices, or CCID, is a standard established by some world-leading IT enterprises, providing a possibility of communicating between the smartcard reader and the host (including the embedded host). The CCID device must be a chip/smart card interface device, which communicates with the host via the USB interface, and communicates with the smartcard in accordance with the ISO 7816 standard. The CCID driver is provided and supported by Microsoft Windows 2000 or higher. Thus, manufacturers are able to develop devices complying with the CCID interface standard easily. In addition, the CCID standard supports PC/SC (Personal Computer/Smart Card) interface calling. A number of open source CCID drivers are also available for other open source operating systems, such as the various versions of Linux.
The HID (Human Interface Device) is a kind of the first USB device configuration supported by the Windows operating system. Applications on the computer using Windows 98 (or higher) can communicate with the HID device, which works with the built-in driver of the operating system. For this reason, the USB device of the HID class can be easily set to work. Some features of the HID class are: 1) the exchanged data resides in a structure known as a “report”; 2) each transaction contains a small-to-medium amount of data; and 3) the device can send information to the computer in an unpredictable time period. Although the data is mostly transferred from the device to the computer, the data transfer from the computer to the HID device is also possible. Any devices that work within the limitations of the HID class can be deemed as the HID device. These devices can transmit data to the computer, and receive device configuration requests from the computer. The HID device can be a low-speed device or a full-speed device.
The descriptor is a formatted block of a data result or information. It is used to recognize the device by the host. A descriptor may contain the overall information regarding the device, or merely the information regarding an element of the device.
In accordance with the USB-SCSI interface standards, byte 0 of the interface descriptor is the length of the descriptor (in bytes) and its value is 09h; byte 1 is the configuration of the descriptor and its value is 04h; byte 4 is the number of the endpoint that is supported; byte 5 is the class code and its value is 08h; byte 6 is the subclass code and its value is 00h; and byte 7 is the protocol code and its value is 50h. In the configuration descriptor, byte 0 is the length of the descriptor (in bytes); and byte 2 is the version number of the SCSI specification. The bytes of other descriptors (e.g. the device descriptor) and other bytes of the interface descriptor and the configuration descriptor should be specified according to the USB protocol.
In accordance with the CCID standard, byte 0 of the interface descriptor is the length of the descriptor (in bytes) and its value is 09h; byte 1 is the fixed endpoint and its value is 04h; byte 4 is the supported endpoint number (excluding endpoint 0) and its value is 02h or 03h; byte 5 is the class code and its value is 0Bh; byte 6 is the subclass code and its value is 00h; and byte 7 is the protocol code and its value is 00h. In the configuration descriptor, byte 0 is the length of the descriptor (in bytes) and its value is 36h; byte 2 is the version number of the CCID specification, which is a decimal represented using a binary code, and its value is 0100h; and byte 52 is PIN support and its value is 00h to 03h. Bytes of other descriptors (e.g. the device descriptor) of the device complying with the CCID standard and other bytes of the interface descriptor and the configuration descriptor should be specified according to the USB protocol.
In accordance with the HID standard, byte 0 of the interface descriptor of the device complying with the HID standard is the length of the descriptor (in bytes) and its value is 09h; byte 1 is the descriptor configuration and its value is 04h; byte 4 is the supported endpoint number and its value is 01h; byte 5 is the class code and its value is 03h; byte 6 is the subclass code and its value is 00h; and byte 7 is the protocol code and its value is 00h. In the configuration descriptor, byte 0 is the length of the descriptor (in bytes); byte 1 is the HID class and its value is 21h; and byte 2 is the release number of the HID specification, which is represented in a binary-coded decimal format (for example, 1.0 is represented as 0100h; and 1.1 is represented as 0110h). Bytes of other descriptors (e.g. the device descriptor) of the device complying with the HID standard and other bytes of the interface descriptor and the configuration descriptor should be specified according to the USB protocol.
In Chinese application No. 200610002400.1, published on Jul. 26, 2006 and entitled “Information Security Apparatus Of Universal Serial Bus Human Interface Device Class and Its Control Method”, an information security apparatus based on the USB HID class and its control method are disclosed. The apparatus comprises a master chip with built-in HID descriptors and a USB interface module coupled to the master chip. The portable and easy-to-use apparatus provides powerful functions. HID is broadly applied to removable hard disks, USB flash disks, keyboards, and mice.
The HID and CCID devices provide a lot of advantages. For example, the HID and CCID device are not restricted by user permissions, and in Windows operating system, the HID and CCID devices are accessible to both the user and the administrator. In addition, the user can use the device easily, without requiring installation of its driver; it is not necessary for the user to deal with continuously upgraded versions of the driver and consider the compatibility between the drivers of different products. Furthermore, the user will not face the risk in working with the operating system, which is caused by the driver, and worry about the influence of installing/uninstalling the driver on the system. Normally, if the host system supports the smartcard logon, the CCID protocol is used. Otherwise, the HID protocol is used. Thus, the HID and CCID device are increasingly used in recent years. But a problem emerges accordingly that the HID and CCID devices cannot be played automatically like the USB-SCSI device. In other words, the relevant application programs of the device cannot be installed automatically.
The versions of the kernel of the Linux operating system can be 2.4 or 2.6. The host working with Version 2.4 supports only transfers of packets that are less than 64 bytes in size. The host with Version 2.6 also supports transfer of packets that are greater than 64 bytes in size.
Currently, the information security device is used in a wide range of fields. The internal configuration of the information security device often cannot satisfy the needs of communicating with the host. Devices with various configuration scenarios may be needed. As a result, the cost will be increased. Also, the operation will be more inconvenient.