WO2011050655A1 - 移动终端及其***数据防克隆方法 - Google Patents
移动终端及其***数据防克隆方法 Download PDFInfo
- Publication number
- WO2011050655A1 WO2011050655A1 PCT/CN2010/076630 CN2010076630W WO2011050655A1 WO 2011050655 A1 WO2011050655 A1 WO 2011050655A1 CN 2010076630 W CN2010076630 W CN 2010076630W WO 2011050655 A1 WO2011050655 A1 WO 2011050655A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- cpuid
- flashid
- layer software
- authentication
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/126—Anti-theft arrangements, e.g. protection against subscriber identity module [SIM] cloning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Definitions
- the present invention relates to the field of communications and related electronics, and in particular to a mobile terminal and a system data anti-cloning method thereof.
- CPUs microprocessors
- BACKGROUND With the development and wide application of embedded systems, many high-tech products using CPUs (microprocessors), such as mobile terminals and intelligent instruments, face a headache, that is, new products have just been launched. It was copied and plagiarized. This phenomenon will cause great losses to product developers, and it also greatly dampens the enthusiasm of developers.
- Innovative development is the key to a company's competitiveness. How to protect its own labor results, in addition to using legal means, it is an indispensable link to make encryption before the product is available.
- Mobile terminal systems generally use the CPU+FLASH mode.
- FLASH flash memory
- flash memory flash memory
- its stored data can be easily read out, and the encryption protection function is reduced, which becomes a fatal defect that restricts its application.
- the inventors have found that at least the following problems exist in the prior art: Both existing encryption methods have fatal flaws, that is, the hardware bus snooping method and the static disassembly tracking method can be successfully cracked.
- a system data anti-cloning method for a mobile terminal including: a mobile terminal is booted from an on-chip memory, wherein an on-chip memory is located in a microprocessor of the mobile terminal; using an on-chip memory The first public key stored therein decrypts and loads the system data stored in the flash memory of the execution mobile terminal.
- the system data stored in the flash memory includes boot program data, middle layer software data, and application layer software data
- the middle layer software data includes operating system data and driver data
- the I program data is stored in the middle of the I program area.
- the layer software data is stored in the middle layer software area
- the application layer software data is stored in the application layer software area; wherein, the boot program area further stores first ciphertext data encrypted by using the first private key, and the encrypted data includes a CPUID,
- the entry code of the FLASHID and the boot program area, the CPUID is the identification identifier of the microprocessor, and the FLASHID is the identification identifier of the flash memory;
- the second layer software area also stores the second ciphertext data encrypted using the second private key, the encrypted data.
- the entry code including the CPUID, the FLASHID, and the middle layer software area; the third layer of ciphertext data encrypted by using the third private key is also stored in the application layer software area, and the encrypted data includes the CPUID, the FLASHID, and the entry code of the application layer software area.
- the first public key stored in the on-chip memory is used to decrypt the first ciphertext data; decrypting and loading the system data stored in the flash memory of the mobile terminal by using the public key stored in the on-chip memory includes: using the first public The key decrypts the first ciphertext data, and obtains the CPUID and the FLASHID in the first ciphertext data; authenticates the CPUID and the FLASHID obtained from the first ciphertext data; if the authentication succeeds, decrypts the first ciphertext according to the decryption The entry code of the bootstrap area that the data gets loaded is loaded and executed?
- decrypting and loading the system data stored in the flash memory of the mobile terminal by using the public key stored in the on-chip memory further includes: if the authentication fails, stopping loading the system data in the execution flash memory, and Turn off the mobile terminal.
- the method for authenticating the acquired CPUID and FLASHID includes: determining whether the acquired CPUID is the same as the CPUID read from the circuit board of the mobile terminal and the acquired FLASHID and the FLASHID read from the circuit board. If yes, it determines that the authentication is successful; otherwise, it determines that the authentication failed.
- the flash of the mobile terminal is decrypted and loaded using the public key stored in the on-chip memory
- the system data stored in the storage system further includes: downloading and storing the system data into the flash memory; wherein, at the time of downloading, acquiring the identification identifier of the startup processor and the identification identifier of the flash memory and transmitting the identification identifier to the authentication server;
- the server performs authentication according to the identifier of the received microprocessor and the identification identifier of the flash memory, and returns the authentication result; if the authentication result is that the authentication fails, the download is stopped.
- the authentication server is preset with a counter corresponding to the mobile terminal for counting the number of downloads for downloading system data into the flash memory; the authentication server performs the identifier according to the received identifier of the microprocessor and the identification identifier of the flash memory.
- the authentication includes: determining whether the value of the counter corresponding to the mobile terminal is less than a threshold of the preset number of downloads; if not, determining that the authentication has failed; if yes, determining that the authentication is successful, the counter is incremented by one.
- a mobile terminal including: a processor and a flash memory, wherein the microprocessor includes an on-chip memory, and starts from the on-chip memory when the mobile terminal is started, wherein the slice A first public key for decrypting and loading system data stored in the execution flash memory is stored in the internal memory.
- the system data stored in the flash memory includes boot program data, middle layer software data, and application layer software data
- the middle layer software data includes operating system data and driver data
- the boot program data is stored in the I program area and the middle layer.
- the software data is stored in the middle layer software area
- the application layer software data is stored in the application layer software area.
- the boot program area further stores the first ciphertext data encrypted by using the first private key, and the encrypted data includes the CPUID and the FLASHID.
- the entry code of the boot program area the CPUID is the identification identifier of the microprocessor, and the FLASHID is the identification identifier of the flash memory;
- the second layer software area further stores the second ciphertext data encrypted by using the second private key, and the encrypted data includes CPUID, FLASHID, and entry code of the middle layer software area;
- the application layer software area further stores third ciphertext data encrypted using the third private key, and the encrypted data includes the CPUID, the FLASHID, and the entry code of the application layer software area.
- the first public key stored in the on-chip memory is used to decrypt the first ciphertext data
- the flash memory further includes: an obtaining module, configured to decrypt the first ciphertext data by using the first public key, and obtain the first ciphertext data.
- the CPUID and the FLASHID are also used to decrypt the second ciphertext data using the second public key stored in the bootstrap region for decrypting the second ciphertext data, and obtain the CPUID and the FLASHID in the second ciphertext data;
- the third ciphertext data is decrypted by using a third public key stored in the middle layer software area for decrypting the third ciphertext data, and the CPUID and the FLASHID in the third ciphertext data are obtained;
- the authentication module is configured to The CPUID and the FLASHID obtained from the first ciphertext data are authenticated; the CPUID and the FLASHID obtained from the second ciphertext data are also used for authentication; and the third ciphertext data is also used for obtaining the data.
- the CPUID and FLASHID are authenticated; the execution module is loaded, When the authentication result of the authentication module is successful, the boot code data is loaded according to the entry code of the boot program area obtained by decrypting the first ciphertext data; and is also used when the authentication result of the authentication module is When the authentication succeeds, the middle layer software data is loaded according to the entry code of the middle layer software area obtained by decrypting the second ciphertext data; and is also used when the authentication result of the authentication module is successful for authentication, and then the decryption is performed.
- the entry code of the application layer software area obtained by the third ciphertext data is loaded to execute the application layer software data.
- the load execution module is further configured to stop loading the system data in the execution flash memory and close the mobile terminal when the authentication result of the authentication module is an authentication failure.
- the authentication module is further configured to determine whether the acquired CPUID is the same as the CPUID read from the circuit board of the mobile terminal and the obtained FLASHID and the FLASHID read from the circuit board; if yes, determining that the authentication succeeds Otherwise, the authentication fails. Since the public key for decrypting the ciphertext data stored in the FLASH (ie, the first public key) is stored in the on-chip memory of the CPU, the mobile terminal starts up from the on-chip memory when it starts up, and uses the public key.
- FIG. 1 is a flowchart showing a system data anti-cloning method of a mobile terminal according to an embodiment of the present invention
- FIG. 1 is a flowchart of a system data anti-cloning method for a mobile terminal according to an embodiment of the present invention, including the following steps: Step S10, the mobile terminal is booted from an on-chip memory (BOOTROM), and the on-chip memory is located.
- Step S10 the mobile terminal is booted from an on-chip memory (BOOTROM), and the on-chip memory is located.
- BOOTROM on-chip memory
- step S20 decrypting and loading the system data stored in the flash memory of the mobile terminal by using the first public key stored in the on-chip memory.
- the public key for decrypting the ciphertext data stored in the FLASH ie, the first public key
- the public key for decrypting the ciphertext data stored in the FLASH is stored in the on-chip memory of the CPU, when the mobile terminal starts up, it is first started from the on-chip memory, and is used.
- the public key decrypts and loads the data stored in the FLASH, and solves the problem that the existing technology can be cracked, thereby effectively fighting the existing cracking means and greatly enhancing the security of the mobile terminal.
- the on-chip memory can only be programmed once, and the microprocessor can only be booted from the on-chip memory after the on-chip memory is programmed. In this way, it is possible to ensure that the booting starts from the on-chip memory when the mobile terminal starts up.
- the system data stored in the flash memory includes bootloader (BOOTLOADER) data, middle layer software (MIDWARE) data, and application layer software (APP) data
- the middle layer software data includes operating system (OS) data and drivers (DRIVER) Data
- the boot program data is stored in the I program area
- the middle layer software data is stored in the middle layer software area
- the application layer software data is stored in the application layer software area; wherein the boot program area is further stored with the first private key encryption
- the first ciphertext data, the encrypted data includes the CPUID, the FLASHID, and the entry code of the bootloader area
- the CPUID is the identification identifier of the i processor
- the FLASHID is the identification identifier of the flash memory
- the second layer software area also stores the second use code.
- the second ciphertext data encrypted by the private key includes the CPUID, the FLASHID, and the entry code of the middle layer software area; the application layer software area further stores the third ciphertext data encrypted by using the third private key, which is encrypted.
- the data includes the CPUID, FLASHID and the entry code of the application layer software area i or.
- the first public key stored in the on-chip memory is used to decrypt the first ciphertext data
- the step S20 includes: decrypting the first ciphertext data by using the first public key, and acquiring the CPUID and the FLASHID in the first ciphertext data; The CPUID and the FLASHID obtained in the first ciphertext data are authenticated; if the authentication succeeds, the boot code data is loaded according to the entry code of the I-guided program area obtained by decrypting the first ciphertext data; The first for decrypting the second ciphertext data
- the second public key decrypts the second ciphertext data, and obtains the CPUID and the FLASHID in the second ciphertext data; the CPUID and the FLASHID obtained from the second ciphertext data are authenticated; if the authentication succeeds, the second decryption is performed according to the decryption
- the entry code of the middle layer software area acquired by the ciphertext data is loaded to execute the middle layer software data; the third cip
- Code loading executes application layer software data. If the authentication fails in step S20, the system data in the execution flash memory is stopped, and the mobile terminal is turned off. This saves power.
- the manner of authenticating the acquired CPUID and FLASHID in step S20 includes: determining the acquired CPUID and the CPUID read from the circuit board of the mobile terminal and the acquired FLASHID and reading from the circuit board. Whether the FLASHID is the same; if yes, it determines that the authentication is successful; otherwise, it determines that the authentication fails.
- the preferred embodiment described above provides a specific implementation for decrypting and loading data stored in a flash memory of a mobile terminal using a first public key stored in an on-chip memory.
- the entry code refers to a piece of data at the beginning of the data in the corresponding area (which can be program code, software code), and the length can be 64 bits or 128 bits.
- the first public key stored in the Boot ROM of the CPU, the second public key stored in the I-guide area, and the third public key stored in the middle layer software area are preset In the data, after programming the software, it is programmed to be downloaded to the BootROM and the flash memory together with the software data.
- the method further comprises: downloading and storing the system data into the flash memory; wherein, at the time of downloading, acquiring the identification identifier of the startup processor and the identification identifier of the flash memory and transmitting the identification identifier to the authentication server;
- the identification identifier of the obtained microprocessor and the identification identifier of the flash memory are authenticated, and the authentication result is returned; if the authentication result is that the authentication fails, the download is stopped.
- the system data can be downloaded and stored into the flash memory from the PC (Personal Computer) using the download software, and then the system data stored in the flash memory is loaded and executed in accordance with the method of the preferred embodiment described above.
- a counter corresponding to the mobile terminal for counting the number of downloads for downloading system data into the flash memory is preset in the authentication server; then the authentication server is based on the received microprocessor Identifying the identifier and the identification identifier of the flash memory for performing the verification includes: determining whether the value of the counter corresponding to the mobile terminal is less than a threshold of the preset number of downloads (the threshold may be preset in the authentication server); if not, determining that the authentication fails; if yes, Then it is determined that the authentication is successful, and the counter is incremented by one.
- the preferred embodiment can be authenticated by the authentication server, and the download is no longer allowed when the number of downloads exceeds a certain number (ie, the threshold of the number of downloads).
- the above preferred embodiment provides a complete encryption mechanism and proposes a systematic solution, which can effectively resist the existing cracking means, thereby greatly enhancing the security of the embedded system.
- the method proposed by the invention is independent of the mobile terminal that needs to be encrypted, does not change the function and structure of the embedded software, does not change the organization mode of the original program and the data, and has the same amount of data in the ciphertext and the plaintext, without increasing or decreasing the original storage space. No hardware changes to the hardware are required.
- FIG. 2 shows a schematic diagram of a mobile terminal according to a preferred embodiment of the present invention, comprising: a microprocessor 10 and a flash memory 20, including an on-chip memory 101 in the microprocessor 10, and starting from the on-chip memory 101 when the mobile terminal is booted up Initiating, wherein the first public key for decrypting and loading the system data stored in the execution flash memory is stored in the on-chip memory 101.
- the system data stored in the flash memory 20 includes boot program data, middle layer software data, and application layer software data
- the middle layer software data includes operating system data and driver data
- the boot program data is stored in the boot program area and the middle layer.
- the software data is stored in the middle layer software area
- the application layer software data is stored in the application layer software area.
- the boot program area further stores the first ciphertext data encrypted by using the first private key, and the encrypted data includes the CPUID and the FLASHID.
- the entry code of the boot program area the CPUID is the identification identifier of the microprocessor, and the FLASHID is the identification identifier of the flash memory;
- the second layer software area further stores the second ciphertext data encrypted by using the second private key, and the encrypted data includes CPUID, FLASHID, and entry code of the middle layer software area;
- the application layer software area further stores third ciphertext data encrypted using the third private key, and the encrypted data includes the CPUID, the FLASHID, and the entry code of the application layer software area.
- the first public key stored in the on-chip memory 101 is used to decrypt the first ciphertext data
- the flash memory 20 further includes: an obtaining module 201, configured to decrypt the first ciphertext data by using the first public key, and obtain the first ciphertext data.
- the CPUID and the FLASHID are also used to decrypt the second ciphertext data using the second public key stored in the guide area for decrypting the second ciphertext data, and obtain the CPUID and the FLASHID in the second ciphertext data.
- the third ciphertext data is decrypted by using the third public key stored in the middle layer software area for decrypting the third ciphertext data, and the CPUID and the FLASHID in the third ciphertext data are obtained;
- the authentication module 202 is configured to perform authentication on the CPUID and the FLASHID obtained from the first ciphertext data, and is also used to authenticate the CPUID and the FLASHID obtained from the second ciphertext data;
- the CPUID and the FLASHID obtained from the third ciphertext data are authenticated.
- the load execution module 203 is configured to: when the authentication result of the authentication module 202 is successful, the I obtained according to the decrypted first ciphertext data.
- the entry code of the driver area is loaded and executed?
- the I guide program data is further used to: when the authentication result of the authentication module 202 is successful, the middle layer software data is executed according to the entry code of the middle layer software area obtained by decrypting the second ciphertext data; When the authentication result of the authentication module 202 is successful, the application layer software data is loaded according to the entry code of the application layer software area obtained by decrypting the third ciphertext data.
- the load execution module 203 is further configured to: when the authentication result of the authentication module 202 is an authentication failure, stop loading the system data in the execution flash memory, and close the mobile terminal.
- the authentication module 202 is further configured to determine whether the acquired CPUID is the same as the CPUID read from the circuit board of the mobile terminal and the obtained FLASHID and the FLASHID read from the circuit board; if yes, determining that the authentication succeeds. Otherwise, the authentication fails.
- the security of this solution will be based on the following ⁇ _ settings:
- the CPU has a BOOTROM (on-chip memory) for storing the security code.
- the BOOTROM can only be programmed once after the CPU is shipped.
- CPUID CPU identification
- FLASHID FLASH identification;;
- the internal BOOTROM of the CPU will be programmed to start the CPU only from the BOOTROM.
- the software is divided into BOOTROM, BOOTLOADER (boot program;), MID WARE (middle layer software, APP (application layer software) four parts, where MID WARE includes OS (operating system) and DRIVER (driver).
- BOOTROM exists in CPU Internally, it can only be programmed once; BOOTLOADER, MID WARE, APP is stored in FLASH.
- For BOOTLOADER, MID WARE, APP use 3 different private keys respectively (separate 'J is the first private key, the second private key And the third private key) is encrypted, and the encrypted data is:
- the entry code for this zone i or (64-bit or 128-bit).
- the BOOTROM stores the public key used to decrypt the BOOTLOADER (ie, the first public key), the BOOTLOADER stores the public key used to decrypt the MID WARE (ie, the second public key), and the MID WARE stores the decrypted APP.
- the public key used ie the third public key.
- Step 4 S302, after the mobile phone is booted from the BootROM, the ciphertext of the BOOTLOADER part (ie, the first ciphertext data) is used by the public key of the BOOTLOADER in the BootROM (ie, the first public key).
- Decrypting extracting the CPUID and the FLASHID from the decrypted text
- Step S304 reading the CPUID and the FLASHID from the circuit board of the mobile terminal
- Step S306 comparing the extracted CPUID and FLASHID with the CPUID and FLASHID read on the circuit board, If the determination is the same, if yes, go to step S308, if no, go to step S330; step S308, execute the entry code of the BOOTLOADER obtained after decryption to execute
- Step S310 BOOTLOADER execution is completed, reading the public key (ie, the second public key) stored in the MIDWARE area i or the BOOTLOADER area i or the same; Step S312, using the public key to the ciphertext of the MIDWARE part (ie, the second The ciphertext data is decrypted, and the CPUID and the FLASHID are extracted from the decrypted text; Step S314, the CPUID and the FLASHID are read from the circuit board; Step S316, the extracted CPUID and the FLASHID are compared with the CPUID and the FLASHID read on the circuit board, If the determination is the same, if yes, go to step S318, if no, go to step S330; step S318, execute the entry code of the MIDWARE obtained after decryption to execute
- Step S320 the MIDWARE is loaded and executed, and reads the public key (ie, the third public key) stored in the MIDWARE area i or the APP area i or the same; Step S322, using the public key to the ciphertext of the APP part (third The ciphertext data is decrypted, and the CPUID and the FLASHID are extracted from the decrypted text; Step S324, the CPUID and the FLASHID are read from the circuit board; Step S326, comparing the extracted CPUID and FLASHID with the CPUID and FLASHID read on the circuit board to determine whether they are the same.
- the public key ie, the third public key
- Step S322 using the public key to the ciphertext of the APP part (third The ciphertext data is decrypted, and the CPUID and the FLASHID are extracted from the decrypted text; Step S324, the CPUID and the FLASHID are read from the circuit board; Step S326, comparing the extracted CPUID and FLASH
- Step S328 perform decryption to obtain The entry code of the APP is loaded to execute the APP; step S330, stopping execution of the code, closing the mobile terminal.
- step S330 stopping execution of the code, closing the mobile terminal.
- the specific approach is as follows: Use a computer placed on the Internet (Internet) to authenticate the SERVERC server;). The factory programming software (for downloading the mobile terminal software to the FLASH of the mobile terminal) will communicate with the authenticated SERVER through the INTERNET each time a mobile terminal is programmed, and there will be an authentication process between them.
- the present invention achieves the following technical effects: (1) can effectively combat existing cracking means, and greatly enhance the security of system data in the mobile terminal;
- modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device, or they may be separately fabricated into individual integrated circuit modules, or they may be Multiple modules or steps are made into a single integrated circuit module. Thus, the invention is not limited to any particular combination of hardware and software.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种移动终端的***数据防克隆方法,包括:移动终端从片内存储器启动,其中,片内存储器位于移动终端的微处理器内;利用片内存储器内存储的第一公钥解密并加载执行移动终端的闪存中存储的***数据。本发明还提供了一种移动终端。本发明能够有效地对抗现有的破解手段,大大增强了移动终端的安全性。
Description
移动终端及其***数据防克隆方法 技术领域 本发明涉及通信及相关电子领域, 具体而言, 涉及一种移动终端及其系 统数据防克隆方法。 背景技术 随着嵌入式***的发展和广泛应用, 许多使用 CPU (微处理器)的高新 技术产品诸如移动终端、 智能化仪器等都面临着一个令人头痛的问题, 那就 是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失, 同时也极大地挫伤了开发商的积极性。 创新开发是一个公司竟争力的关键, 如何保护好自己的劳动成果, 除用法律手段外, 在产品面市前作好加密是一 个必不可少的环节。 移动终端***一般都釆用 CPU+FLASH的模式。 FLASH (闪存)作为当 今嵌入式设备中的主流存储器件, 有着极其广泛的应用前景, 但它所存储的 数据可以被轻易读取出来, 艮少有加密保护功能, 成为制约其应用的致命缺 点。 当前针对 FLASH中数据进行加密的方法主要有两种, 一种是对 FLASH 中所存储的数据进行混乱加密, 另一种是对 FLASH提供的器件唯一识别号 进行加密。 发明人发现现有技术至少存在以下问题: 现有的两种加密方式都有着致 命的缺陷, 即使用硬件总线侦听法和静态反汇编跟踪方法可以成功破解。 发明内容 本发明旨在提供一种移动终端及其***数据防克隆方法, 以解决现有技 术存在的可被破解的问题。 才艮据本发明的一个方面, 提供了一种移动终端的***数据防克隆方法, 包括: 移动终端从片内存储器启动, 其中, 片内存储器位于移动终端的微处 理器内; 利用片内存储器内存储的第一公钥解密并加载执行移动终端的闪存 中存储的***数据。
优选地, 闪存中存储的***数据包括引导程序数据、 中间层软件数据、 和应用层软件数据, 中间层软件数据包括操作***数据和驱动程序数据, I 导程序数据存储于 I导程序区域、 中间层软件数据存储于中间层软件区域、 应用层软件数据存储于应用层软件区域; 其中, 引导程序区域中还存储有使 用第一私钥加密的第一密文数据, 被加密的数据包括 CPUID、 FLASHID和 引导程序区域的入口代码, CPUID是微处理器的识别标识、 FLASHID是闪 存的识别标识; 中间层软件区域中还存储有使用第二私钥加密的第二密文数 据, 被加密的数据包括 CPUID、 FLASHID和中间层软件区域的入口代码; 应用层软件区域中还存储有使用第三私钥加密的第三密文数据, 被加密的数 据包括 CPUID、 FLASHID和应用层软件区域的入口代码。 优选地, 片内存储器内存储的第一公钥用于解密第一密文数据; 利用片 内存储器内存储的公钥解密并加载执行移动终端的闪存中存储的***数据包 括: 使用第一公钥解密第一密文数据, 并获取第一密文数据中的 CPUID 和 FLASHID; 对从第一密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则根据解密第一密文数据获取到的引导程序区域的入口代码加载 执行? I导程序数据; 使用引导程序区域内存储的用于解密第二密文数据的第 二公钥解密第二密文数据, 并获取第二密文数据中的 CPUID和 FLASHID; 对从第二密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则 根据解密第二密文数据获取到的中间层软件区域的入口代码加载执行中间层 软件数据; 使用中间层软件区域内存储的用于解密第三密文数据的第三公钥 解密第三密文数据, 并获取第三密文数据中的 CPUID和 FLASHID; 对从第 三密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则根据解 密第三密文数据获取到的应用层软件区域的入口代码加载执行应用层软件数 据。 优选地, 在上述的方法中, 利用片内存储器内存储的公钥解密并加载执 行移动终端的闪存中存储的***数据还包括: 若鉴权失败, 则停止加载执行 闪存中的***数据, 并关闭移动终端。 优选地, 对获取到的 CPUID和 FLASHID进行鉴权的方式包括: 判断获 取到的 CPUID 与从移动终端的电路板上读取的 CPUID 以及获取到的 FLASHID与从电路板上读取的 FLASHID是否相同;若是,则判定鉴权成功; 否则, 判定鉴权失败。 优选地, 在利用片内存储器内存储的公钥解密并加载执行移动终端的闪
存中存储的***数据之前还包括: 将***数据下载并存储到所述闪存中; 其 中, 在下载时, 获取啟处理器的识别标识和闪存的识别标识并发送给认证月艮 务器; 认证服务器根据接收到的微处理器的识别标识和闪存的识别标识进行 认证, 并返回认证结果; 若认证结果为认证失败, 则停止下载。 优选地, 认证服务器中预先设置有与移动终端对应的用于对将***数据 下载到闪存中的下载次数进行计数的计数器; 认证服务器根据接收到的微处 理器的识别标识和闪存的识别标识进行认证包括: 判断移动终端对应的计数 器的值是否小于预设的下载次数的阈值; 若否, 则判定认证失败; 若是, 则 判定认证成功, 计数器加 1。 才艮据本发明的另一个方面, 还提供了一种移动终端, 包括: 处理器和 闪存, 微处理器内包括片内存储器, 且当移动终端启动时从片内存储器开始 启动, 其中, 片内存储器内存储用于解密并加载执行闪存中存储的***数据 的第一公钥。 优选地, 闪存中存储的***数据包括引导程序数据、 中间层软件数据、 和应用层软件数据, 中间层软件数据包括操作***数据和驱动程序数据, 引 导程序数据存储于 I导程序区域、 中间层软件数据存储于中间层软件区域、 应用层软件数据存储于应用层软件区域; 其中, 引导程序区域中还存储有使 用第一私钥加密的第一密文数据, 被加密的数据包括 CPUID、 FLASHID和 引导程序区域的入口代码, CPUID是微处理器的识别标识、 FLASHID是闪 存的识别标识; 中间层软件区域中还存储有使用第二私钥加密的第二密文数 据, 被加密的数据包括 CPUID、 FLASHID和中间层软件区域的入口代码; 应用层软件区域中还存储有使用第三私钥加密的第三密文数据, 被加密的数 据包括 CPUID、 FLASHID和应用层软件区域的入口代码。 优选地, 片内存储器内存储的第一公钥用于解密第一密文数据, 闪存还 包括: 获取模块, 用于使用第一公钥解密第一密文数据, 并获取第一密文数 据中的 CPUID和 FLASHID; 还用于使用引导程序区域内存储的用于解密第 二密文数据的第二公钥解密第二密文数据, 并获取第二密文数据中的 CPUID 和 FLASHID;还用于使用中间层软件区域内存储的用于解密第三密文数据的 第三公钥解密第三密文数据,并获取第三密文数据中的 CPUID和 FLASHID; 鉴权模块,用于对从第一密文数据中获取到的 CPUID和 FLASHID进行鉴权; 还用于对从第二密文数据中获取到的 CPUID和 FLASHID进行鉴权;还用于 对从第三密文数据中获取到的 CPUID和 FLASHID进行鉴权;加载执行模块,
用于当鉴权模块的鉴权结果为鉴权成功时, 根据解密第一密文数据获取到的 引导程序区域的入口代码加载执行引导程序数据; 还用于当鉴权模块的鉴权 结果为鉴权成功时, 根据解密第二密文数据获取到的中间层软件区域的入口 代码加载执行中间层软件数据; 还用于当鉴权模块的鉴权结果为鉴权成功, 才艮据解密第三密文数据获取到的应用层软件区域的入口代码加载执行应用层 软件数据。 优选地, 加载执行模块还用于当鉴权模块的鉴权结果为鉴权失败时, 停 止加载执行闪存中的***数据, 并关闭移动终端。 优选地, 鉴权模块还用于判断获取到的 CPUID 与从移动终端的电路板 上读取的 CPUID以及获取到的 FLASHID与从电路板上读取的 FLASHID是 否相同; 若是, 则判定鉴权成功; 否则, 判定鉴权失败。 因为通过将用于解密 FLASH 中存储的密文数据的公钥 (即第一公钥) 存储到 CPU 的片内存储器中, 当移动终端启动时首先从片内存储器开始启 动, 并使用该公钥对 FLASH 中存储的数据进行解密并加载执行, 解决了现 有技术存在的可被破解的问题, 从而能够有效地对抗现有的破解手段, 大大 增强了移动终端的安全性。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部 分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的 不当限定。 在附图中: 图 1示出了才艮据本发明实施例的移动终端的***数据防克隆方法的流程 图; 图 2示出了才艮据本发明优选实施例的移动终端的示意图; 图 3示出了才艮据本发明优选实施例的移动终端的***数据防克隆方法的 详细工作 ¾ϊ程图。 具体实施方式 下面将参考附图并结合实施例, 来详细说明本发明。
图 1示出了才艮据本发明实施例的移动终端的***数据防克隆方法的流程 图, 包括以下步 4聚: 步骤 S 10, 移动终端从片内存储器 (BOOTROM ) 启动, 片内存储器位 于移动终端的啟处理器 (CPU ) 内; 步骤 S20, 利用片内存储器内存储的第一公钥解密并加载执行移动终端 的闪存中存储的***数据。 该实施例因为通过将用于解密 FLASH 中存储的密文数据的公钥 (即第 一公钥)存储到 CPU的片内存储器中, 当移动终端启动时首先从片内存储器 开始启动, 并使用该公钥对 FLASH 中存储的数据进行解密并加载执行, 解 决了现有技术存在的可被破解的问题,从而能够有效地对抗现有的破解手段, 大大增强了移动终端的安全性。 其中, 片内存储器只能被烧写一次, 且片内存储器被烧写后微处理器只 能从片内存储器启动。 这样, 能够确保当移动终端启动时从片内存储器开始 启动。 优选地, 闪存中存储的***数据包括引导程序(BOOTLOADER )数据、 中间层软件 ( MIDWARE ) 数据、 和应用层软件 ( APP ) 数据, 中间层软件 数据包括操作*** (OS )数据和驱动程序 (DRIVER )数据, 引导程序数据 存储于 I导程序区域、 中间层软件数据存储于中间层软件区域、 应用层软件 数据存储于应用层软件区域; 其中, 引导程序区域中还存储有使用第一私钥 加密的第一密文数据, 被加密的数据包括 CPUID、 FLASHID和引导程序区 域的入口代码, CPUID是 i处理器的识别标识、 FLASHID是闪存的识别标 识; 中间层软件区域中还存储有使用第二私钥加密的第二密文数据, 被加密 的数据包括 CPUID、 FLASHID和中间层软件区域的入口代码; 应用层软件 区域中还存储有使用第三私钥加密的第三密文数据, 被加密的数据包括 CPUID, FLASHID和应用层软件区 i或的入口代码。 片内存储器内存储的第一公钥用于解密第一密文数据, 步骤 S20包括: 使用第一公钥解密第一密文数据, 并获取第一密文数据中的 CPUID 和 FLASHID; 对从第一密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则根据解密第一密文数据获取到的 I导程序区域的入口代码加载 执行引导程序数据; 使用引导程序区域内存储的用于解密第二密文数据的第
二公钥解密第二密文数据, 并获取第二密文数据中的 CPUID和 FLASHID; 对从第二密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则 根据解密第二密文数据获取到的中间层软件区域的入口代码加载执行中间层 软件数据; 使用中间层软件区域内存储的用于解密第三密文数据的第三公钥 解密第三密文数据, 并获取第三密文数据中的 CPUID和 FLASHID; 对从第 三密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则根据解 密第三密文数据获取到的应用层软件区域的入口代码加载执行应用层软件数 据。 其中, 在步骤 S20中若鉴权失败, 则停止加载执行闪存中的***数据, 并关闭移动终端。 这样可以省电。 其中,在步骤 S20中对获取到的 CPUID和 FLASHID进行鉴权的方式包 括: 判断获取到的 CPUID与从移动终端的电路板上读取的 CPUID以及获取 到的 FLASHID与从电路板上读取的 FLASHID是否相同; 若是, 则判定鉴权 成功; 否则, 判定鉴权失败。 上述优选实施例提供了利用片内存储器内存储的第一公钥解密并加载执 行移动终端的闪存中存储的数据的具体实施方案。 其中入口代码是指对应区 域内的数据 (可为程序代码、 软件代码) 的最起始位置的一段数据, 其长度 可以为 64位或者 128位。 在上述的优选实施例中, 存储在 CPU的 BOOTROM中的第一公钥、 存 储在 I导程序区域内的第二公钥、 以及存储在中间层软件区域内的第三公钥 是预先设定在数据中的, 在烧写软件后, 与软件数据一起烧写下载到 BOOTROM和闪存中。 优选地,在步骤 S20之前还包括: 将***数据下载并存储到所述闪存中; 其中, 在下载时, 获取啟处理器的识别标识和闪存的识别标识并发送给认证 服务器; 认证服务器根据接收到的微处理器的识别标识和闪存的识别标识进 行认证, 并返回认证结果; 若认证结果为认证失败, 则停止下载。 可以从 PC (个人电脑) 上利用下载软件将***数据下载并存储到闪存中, 然后, 按照 上述优选实施例的方法加载并执行存储在闪存中的***数据。 认证服务器中预先设置有与移动终端对应的用于对将***数据下载到闪 存中的下载次数进行计数的计数器; 则认证服务器根据接收到的微处理器的
识别标识和闪存的识别标识进行认证包括: 判断移动终端对应的计数器的值 是否小于预设的下载次数的阈值(该阈值可以预先设置在认证服务器中); 若 否, 则判定认证失败; 若是, 则判定认证成功, 计数器加 1。 该优选实施例可以通过认证月艮务器进行认证, 当下载次数超过一定数量 (即下载次数的阈值) 时则不再允许下载。 上述优选实施例根据 FLASH技术的特点, 提供了一套完善的加密机制, 提出一个***化的解决方案, 能够有效地对抗现有的破解手段, 从而大大增 强嵌入式***的安全性。本发明提出的方法独立于需要进行加密的移动终端, 它不改变嵌入式软件的功能和结构, 不改变原程序和数据的组织方式, 密文 与明文数据量相同, 无需增减原存储空间, 无需功能性更改硬件电路。 图 2示出了根据本发明优选实施例的移动终端的示意图, 包括: 微处理 器 10和闪存 20 , 微处理器 10内包括片内存储器 101 , 且当移动终端启动时 从片内存储器 101开始启动, 其中, 片内存储器 101 内存储用于解密并加载 执行闪存中存储的***数据的第一公钥。 优选地, 闪存 20 中存储的***数据包括引导程序数据、 中间层软件数 据、和应用层软件数据, 中间层软件数据包括操作***数据和驱动程序数据, 引导程序数据存储于引导程序区域、中间层软件数据存储于中间层软件区域、 应用层软件数据存储于应用层软件区域; 其中, 引导程序区域中还存储有使 用第一私钥加密的第一密文数据, 被加密的数据包括 CPUID、 FLASHID和 引导程序区域的入口代码, CPUID是微处理器的识别标识、 FLASHID是闪 存的识别标识; 中间层软件区域中还存储有使用第二私钥加密的第二密文数 据, 被加密的数据包括 CPUID、 FLASHID和中间层软件区域的入口代码; 应用层软件区域中还存储有使用第三私钥加密的第三密文数据, 被加密的数 据包括 CPUID、 FLASHID和应用层软件区域的入口代码。 片内存储器 101 内存储的第一公钥用于解密第一密文数据, 闪存 20还 包括: 获取模块 201 , 用于使用第一公钥解密第一密文数据, 并获取第一密 文数据中的 CPUID和 FLASHID; 还用于使用弓 |导程序区域内存储的用于解 密第二密文数据的第二公钥解密第二密文数据, 并获取第二密文数据中的 CPUID和 FLASHID; 还用于使用中间层软件区域内存储的用于解密第三密 文数据的第三公钥解密第三密文数据, 并获取第三密文数据中的 CPUID 和 FLASHID;
鉴权模块 202 , 用于对从第一密文数据中获取到的 CPUID和 FLASHID 进行鉴权; 还用于对从第二密文数据中获取到的 CPUID和 FLASHID进行鉴 权; 还用于对从第三密文数据中获取到的 CPUID和 FLASHID进行鉴权; 加载执行模块 203 , 用于当鉴权模块 202的鉴权结果为鉴权成功时, 根 据解密第一密文数据获取到的 I导程序区域的入口代码加载执行? I导程序数 据; 还用于当鉴权模块 202的鉴权结果为鉴权成功时, 根据解密第二密文数 据获取到的中间层软件区域的入口代码加载执行中间层软件数据; 还用于当 鉴权模块 202的鉴权结果为鉴权成功, 根据解密第三密文数据获取到的应用 层软件区域的入口代码加载执行应用层软件数据。 其中, 加载执行模块 203还用于当鉴权模块 202的鉴权结果为鉴权失败 时, 停止加载执行闪存中的***数据, 并关闭移动终端。 其中, 鉴权模块 202还用于判断获取到的 CPUID与从移动终端的电路 板上读取的 CPUID以及获取到的 FLASHID与从电路板上读取的 FLASHID 是否相同; 若是, 则判定鉴权成功; 否则, 判定鉴权失败。 本方案的安全性将基于以下几个^ _设:
① CPU内部有存放安全代码的 BOOTROM(片内存储器),该 BOOTROM 在 CPU出厂后只能被烧写一次;
②不同的 CPU和 FLASH都有唯一对应、 绝不相同的 ID: CPUID ( CPU 识别标识) 和 FLASHID ( FLASH识别标识;); ③ CPU内部的 BOOTROM被烧写后将使 CPU只能从 BOOTROM启动。 将软件分成 BOOTROM, BOOTLOADER (引导程序;), MID WARE (中 间层软件, APP (应用层软件) 4个部分, 其中, MID WARE包括 OS (操作 ***)和 DRIVER (驱动程序)。 BOOTROM存在于 CPU内部, 只能被烧写 一次; BOOTLOADER, MID WARE, APP存放于 FLASH上。 对 BOOTLOADER, MID WARE, APP分别用 3个不同的私钥 (分另 'J为 第一私钥、 第二私钥和第三私钥 ) 进行加密, 被加密的数据为:
CPUID+FLASHID+该区 i或的入口代码 ( 64位或者 128位)。 BOOTROM中存 放解密 BOOTLOADER用的公钥 (即第一公钥 ), BOOTLOADER中存放解 密 MID WARE用的公钥 (即第二公钥 ), 而 MID WARE 中则存放解密 APP
用的公钥 (即第三公钥)。 下面根据图 3对本发明作进一步详细说明: 步 4聚 S302 , 手机从 BOOTROM 启动后会用 BOOTROM 中的 BOOTLOADER的公钥(即第一公钥)对 BOOTLOADER部分的密文(即第 一密文数据) 进行解密, 从解密文中提取 CPUID和 FLASHID; 步骤 S304, 从移动终端的电路板上读取 CPUID和 FLASHID; 步骤 S306, 将提取的 CPUID和 FLASHID与电路板上读取的 CPUID和 FLASHID进行比较, 判断是否相同, 若是, 则转入步骤 S308, 若否, 则转 入步骤 S330; 步骤 S308 , 执行解密后得到的 BOOTLOADER 的入口代码以执行
BOOTLOADER; 步骤 S310, BOOTLOADER执行完毕, 读取存储在 BOOTLOADER区 i或的 MIDWARE区 i或的公钥 (即第二公钥 ); 步骤 S312, 用这个公钥对 MIDWARE部分的密文 (即第二密文数据 ) 进行解密, 从解密文中提取 CPUID和 FLASHID; 步骤 S314, 从电路板上读取 CPUID和 FLASHID; 步骤 S316, 将提取的 CPUID和 FLASHID与电路板上读取的 CPUID和 FLASHID进行比较, 判断是否相同, 若是, 则转入步骤 S318, 若否, 则转 入步骤 S330; 步骤 S318 , 执行解密后得到的 MIDWARE 的入口代码以执行
MIDWARE; 步骤 S320, MIDWARE加载执行完毕, 读取存储在 MIDWARE区 i或的 APP区 i或的公钥 (即第三公钥); 步骤 S322 , 用这个公钥对 APP部分的密文(第三密文数据)进行解密, 从解密文中提取 CPUID和 FLASHID; 步骤 S324, 从电路板上读取 CPUID和 FLASHID;
步骤 S326, 将提取的 CPUID和 FLASHID与电路板上读取的 CPUID和 FLASHID进行比较, 判断是否相同, 若是, 则转入步骤 S328, 若否, 则转 入步骤 S330; 步骤 S328, 执行解密后得到的 APP的入口代码以加载执行 APP; 步骤 S330, 停止执行代码, 关闭该移动终端。 此外, 为了进一步地对嵌入式软件进行保密, 还可以对软件下载次数进 行计数, 对达到一定下载次数的移动终端进行必要的限制。 具体做法如下: 用一台放在 INTERNETS互联网)上的计算机故认证 SERVERC月艮务器;)。 工厂用的烧写软件 (用于将移动终端软件下载到移动终端的 FLASH 中) 在 每次烧写一部移动终端的时候都会通过 INTERNET和认证 SERVER通信, 它们之间将有一个认证过程, 如果认证不通过烧写软件将停止烧写移动终端 软件, 每认证成功一次, 认证 SERVER上的计数器加一次, 这样就知道移动 终端软件被烧写的次数, 从而有效地增强嵌入式软件的安全性。 从以上的描述中, 可以看出, 本发明实现了如下技术效果: ( 1 ) 能够有效地对抗现有的破解手段, 大大增强了移动终端中的*** 数据的安全性;
( 2 ) 通过限制下载次数, 进一步确保了移动终端软件的保密和安全性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而, 可以将它们存储在存储装置中由计算装置来执行, 或 者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制 作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软 件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的 ^"神和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。
Claims
1. 一种移动终端的***数据防克隆方法, 其特征在于, 包括:
移动终端从片内存储器启动, 其中, 所述片内存储器位于所述移动 终端的 4啟处理器内;
利用所述片内存储器内存储的第一公钥解密并加载执行所述移动终 端的闪存中存储的***数据。
2. 根据权利要求 1所述的方法, 其特征在于, 所述闪存中存储的***数据 包括引导程序数据、 中间层软件数据、 和应用层软件数据, 所述中间层 软件数据包括操作***数据和驱动程序数据, 所述引导程序数据存储于 ? I导程序区域、 所述中间层软件数据存储于中间层软件区域、 所述应用 层软件数据存储于应用层软件区域;
其中, 所述引导程序区域中还存储有使用第一私钥加密的第一密文 数据, 被加密的数据包括 CPUID、 FLASHID和所述引导程序区域的入 口代码, 所述 CPUID是所述微处理器的识别标识、 所述 FLASHID是所 述闪存的识别标识;
所述中间层软件区域中还存储有使用第二私钥加密的第二密文数 据, 被加密的数据包括 CPUID、 FLASHID和所述中间层软件区域的入 代码; 所述应用层软件区域中还存储有使用第三私钥加密的第三密文数 据, 被加密的数据包括 CPUID、 FLASHID和所述应用层软件区域的入 口代码。
3. 根据权利要求 2所述的方法, 其特征在于, 所述片内存储器内存储的第 一公钥用于解密所述第一密文数据; 利用所述片内存储器内存储的第一 公钥解密并加载执行所述移动终端的闪存中存储的***数据包括:
使用所述第一公钥解密所述第一密文数据, 并获取所述第一密文数 据中的 CPUID和 FLASHID;
对从所述第一密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则根据解密所述第一密文数据获取到的 I导程序区域的 入口代码加载执行所述引导程序数据; 使用所述引导程序区域内存储的用于解密所述第二密文数据的第二 公钥解密所述第二密文数据, 并获取所述第二密文数据中的 CPUID 和 FLASHID;
对从所述第二密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则才艮据解密所述第二密文数据获取到的中间层软件区域 的入口代码加载执行所述中间层软件数据;
使用所述中间层软件区域内存储的用于解密所述第三密文数据的第 三公钥解密所述第三密文数据,并获取所述第三密文数据中的 CPUID和 FLASHID;
对从所述第三密文数据中获取到的 CPUID和 FLASHID进行鉴权; 鉴权成功, 则 居解密所述第三密文数据获取到的应用层软件区域 的入口代码加载执行所述应用层软件数据。
4. 根据权利要求 3所述的方法, 其特征在于, 利用所述片内存储器内存储 的第一公钥解密并加载执行所述移动终端的闪存中存储的***数据还包 括:
若鉴权失败, 则停止加载执行所述闪存中的***数据, 并关闭所述 移动终端。
5. 根据权利要求 3或 4所述的方法, 其特征在于, 对获取到的 CPUID和 FLASHID进行鉴权的方式包括:
判断所述获取到的 CPUID 与从所述移动终端的电路板上读取的 CPUID以及所述获取到的 FLASHID与从所述电路板上读取的 FLASHID 是否相同;
若是, 则判定鉴权成功;
否则, 判定鉴权失败。
6. 根据权利要求 1所述的方法, 其特征在于, 在利用所述片内存储器内存 储的公钥解密并加载执行所述移动终端的闪存中存储的***数据之前还 包括:
将所述***数据下载并存储到所述闪存中; 其中, 在下载时, 获取所述啟处理器的识别标识和所述闪存的识别 标识并发送给认证服务器;
所述认证服务器根据接收到的微处理器的识别标识和闪存的识别标 i只进行认证, 并返回认证结果;
若认证结果为认证失败, 则停止下载。
7. 根据权利要求 6所述的方法, 其特征在于, 所述认证服务器中预先设置 有与所述移动终端对应的用于对将***数据下载到所述闪存中的下载次 数进行计数的计数器; 所述认证服务器根据接收到的微处理器的识别标 识和闪存的识别标识进行认证包括:
判断所述移动终端对应的计数器的值是否小于预设的下载次数的阈 值;
若否, 则判定认证失败;
若是, 则判定认证成功, 所述计数器加 1。
8. —种移动终端, 其特征在于, 包括: 啟处理器和闪存, 所述啟处理器内 包括片内存储器,且当所述移动终端启动时从所述片内存储器开始启动, 其巾,
所述片内存储器内存储用于解密并加载执行所述闪存中存储的*** 数据的第一公钥。
9. 根据权利要求 8所述的移动终端, 其特征在于, 所述闪存中存储的*** 数据包括引导程序数据、 中间层软件数据、 和应用层软件数据, 所述中 间层软件数据包括操作***数据和驱动程序数据, 所述引导程序数据存 储于 I导程序区域、 所述中间层软件数据存储于中间层软件区域、 所述 应用层软件数据存储于应用层软件区域;
其中, 所述引导程序区域中还存储有使用第一私钥加密的第一密文 数据, 被加密的数据包括 CPUID、 FLASfflD和所述引导程序区域的入 口代码, 所述 CPUID是所述微处理器的识别标识、 所述 FLASHID是所 述闪存的识别标识;
所述中间层软件区域中还存储有使用第二私钥加密的第二密文数 据, 被加密的数据包括 CPUID、 FLASHID和所述中间层软件区域的入 代码; 所述应用层软件区域还中存储有使用第三私钥加密的第三密文数 据, 被加密的数据包括 CPUID、 FLASHID和所述应用层软件区域的入 口代码。
10. 根据权利要求 9所述的移动终端, 其特征在于, 所述片内存储器内存储 的第一公钥用于解密所述第一密文数据, 所述闪存还包括:
获取模块, 用于使用所述第一公钥解密所述第一密文数据, 并获取 所述第一密文数据中的 CPUID和 FLASHID; 还用于使用所述引导程序 区域内存储的用于解密所述第二密文数据的第二公钥解密所述第二密文 数据, 并获取所述第二密文数据中的 CPUID和 FLASHID; 还用于使用 所述中间层软件区域内存储的用于解密所述第三密文数据的第三公钥解 密所述第三密文数据, 并获取所述第三密文数据中的 CPUID 和 FLASHID;
鉴权模块, 用于对从所述第一密文数据中获取到的 CPUID 和 FLASHID进行鉴权; 还用于对从所述第二密文数据中获取到的 CPUID 和 FLASHID 进行鉴权; 还用于对从所述第三密文数据中获取到的 CPUID和 FLASHID进行鉴权;
加载执行模块, 用于当所述鉴权模块的鉴权结果为鉴权成功时, 根 据解密所述第一密文数据获取到的引导程序区域的入口代码加载执行所 述引导程序数据; 还用于当所述鉴权模块的鉴权结果为鉴权成功时, 根 据解密所述第二密文数据获取到的中间层软件区域的入口代码加载执行 所述中间层软件数据;还用于当所述鉴权模块的鉴权结果为鉴权成功时, 才艮据解密所述第三密文数据获取到的应用层软件区域的入口代码加载执 行所述应用层软件数据。
11. 居权利要求 10所述的移动终端, 其特征在于, 所述加载执行模块还用 于当所述鉴权模块的鉴权结果为鉴权失败时, 停止加载执行所述闪存中 的***数据, 并关闭所述移动终端。
12. 根据权利要求 10或 11所述的移动终端, 其特征在于, 所述鉴权模块还 用于判断所述获取到的 CPUID 与从所述移动终端的电路板上读取的 CPUID以及所述获取到的 FLASHID与从所述电路板上读取的 FLASHID 是否相同; 若是, 则判定鉴权成功; 否则, 判定鉴权失败。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910209640.2A CN102056339B (zh) | 2009-11-02 | 2009-11-02 | 移动终端及其***数据防克隆方法 |
CN200910209640.2 | 2009-11-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011050655A1 true WO2011050655A1 (zh) | 2011-05-05 |
Family
ID=43921304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2010/076630 WO2011050655A1 (zh) | 2009-11-02 | 2010-09-03 | 移动终端及其***数据防克隆方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102056339B (zh) |
WO (1) | WO2011050655A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595594A (zh) * | 2023-05-19 | 2023-08-15 | 无锡摩芯半导体有限公司 | 一种基于ucb的flash的安全控制方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201925B (zh) * | 2016-07-01 | 2019-03-22 | 四川效率源信息安全技术股份有限公司 | 一种西数硬盘的解密方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002026902A (ja) * | 2000-07-10 | 2002-01-25 | Matsushita Electric Ind Co Ltd | 受信端末装置 |
CN1762170A (zh) * | 2003-03-21 | 2006-04-19 | 格姆普拉斯公司 | 保护移动电话类型电信终端的方法 |
CN101238473A (zh) * | 2005-08-03 | 2008-08-06 | Nxp股份有限公司 | 保护密钥的安全终端、例程和方法 |
US20080263676A1 (en) * | 2007-04-17 | 2008-10-23 | Samsung Electronics Co., Ltd. | System and method for protecting data information stored in storage |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936843B (zh) * | 2006-10-23 | 2011-02-16 | 北京飞天诚信科技有限公司 | 一种内接存储设备的智能密钥装置及其使用方法 |
US20090024784A1 (en) * | 2007-07-20 | 2009-01-22 | Wang Liang-Yun | Method for writing data into storage on chip and system thereof |
-
2009
- 2009-11-02 CN CN200910209640.2A patent/CN102056339B/zh active Active
-
2010
- 2010-09-03 WO PCT/CN2010/076630 patent/WO2011050655A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002026902A (ja) * | 2000-07-10 | 2002-01-25 | Matsushita Electric Ind Co Ltd | 受信端末装置 |
CN1762170A (zh) * | 2003-03-21 | 2006-04-19 | 格姆普拉斯公司 | 保护移动电话类型电信终端的方法 |
CN101238473A (zh) * | 2005-08-03 | 2008-08-06 | Nxp股份有限公司 | 保护密钥的安全终端、例程和方法 |
US20080263676A1 (en) * | 2007-04-17 | 2008-10-23 | Samsung Electronics Co., Ltd. | System and method for protecting data information stored in storage |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595594A (zh) * | 2023-05-19 | 2023-08-15 | 无锡摩芯半导体有限公司 | 一种基于ucb的flash的安全控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102056339A (zh) | 2011-05-11 |
CN102056339B (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10142104B2 (en) | Securely recovering a computing device | |
US8560820B2 (en) | Single security model in booting a computing device | |
US8230412B2 (en) | Compatible trust in a computing device | |
JP5079803B2 (ja) | ゲーム装置を認証するシステムおよび方法 | |
US8291480B2 (en) | Trusting an unverified code image in a computing device | |
US9830456B2 (en) | Trust transference from a trusted processor to an untrusted processor | |
JP5576983B2 (ja) | 非ローカル記憶装置からのサブシステムのセキュアなブート及び構成 | |
KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
EP1944712A2 (en) | Methods and apparatus for protecting data | |
JP2002507307A (ja) | プログラムをプロセッサに読み込むための装置および方法 | |
WO2016073411A2 (en) | System and method for a renewable secure boot | |
TW200941278A (en) | Secure update of boot image without knowledge of secure key | |
US20060130130A1 (en) | Programmable processor supporting secure mode | |
JP2011522469A (ja) | 保護されたソフトウエアイメージを有する集積回路及びそのための方法 | |
CN113656086A (zh) | 安全存储及加载固件的方法及电子装置 | |
TWI570591B (zh) | 允許測試金鑰用於bios安裝之技術 | |
US8341389B2 (en) | Device, systems, and method for securely starting up a computer installation | |
CN109508529B (zh) | 一种支付终端安全启动校验的实现方法 | |
EP1465038B1 (en) | Memory security device for flexible software environment | |
WO2011050655A1 (zh) | 移动终端及其***数据防克隆方法 | |
CN115357948A (zh) | 一种基于tee及加密芯片的硬件防抄板加密方法及其装置 | |
Benadjila et al. | Wookey: Usb devices strike back | |
Cooper et al. | e paper title |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10826018 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10826018 Country of ref document: EP Kind code of ref document: A1 |