Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MOBILE TERMINAL AND METHOD FOR SYSTEM DATA ANTI-CLONING THEREOF
Document Type and Number:
WIPO Patent Application WO/2011/050655
Kind Code:
A1
Abstract:
A method for system data anti-cloning in a mobile terminal is provided in the present invention, and the method includes: the mobile terminal starts up from an on-chip memory which is located in a micro-processor of the mobile terminal; and the system data stored in a flash of the mobile terminal is decrypted, loaded and executed by utilizing a first public key stored in the on-chip memory.

Inventors:
SHI LINFENG (CN)
Application Number:
PCT/CN2010/076630
Publication Date:
May 05, 2011
Filing Date:
September 03, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
SHI LINFENG (CN)
International Classes:
H04W88/00; H04M1/72403; H04M1/72463
Foreign References:
CN1762170A2006-04-19
CN101238473A2008-08-06
US20080263676A12008-10-23
JP2002026902A2002-01-25
Attorney, Agent or Firm:
KANGXIN PARTNERS, P. C. (CN)
北京康信知识产权代理有限责任公司 (CN)
Download PDF:
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 是否相同; 若是, 则判定鉴权成功; 否则, 判定鉴权失败。

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 中存储的数据进行解密并加载执行, 解 决了现有技术存在的可被破解的问题,从而能 够有效地对抗现有的破解手段, 大大增强了移动终端的安全性。 其中, 片内存储器只能被烧写一次, 且片内存储器被烧写后微处理器只 能从片内存储器启动。 这样, 能够确保当移动终端启动时从片内存储器开始 启动。 优选地, 闪存中存储的系统数据包括引导程序(BOOTLOADE R )数据、 中间层软件 ( 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 ) 通过限制下载次数, 进一步确保了移动终端软件的保密和安全性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而, 可以将它们存储在存储装置中由计算装置来执 行, 或 者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制 作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软 件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的 ^"神和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。