SHI LINFENG (CN)
CN1762170A | 2006-04-19 | |||
CN101238473A | 2008-08-06 | |||
US20080263676A1 | 2008-10-23 | |||
JP2002026902A | 2002-01-25 |
北京康信知识产权代理有限责任公司 (CN)
权 利 要 求 书 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 是否相同; 若是, 则判定鉴权成功; 否则, 判定鉴权失败。 |
① 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 ) 通过限制下载次数, 进一步确保了移动终端软件的保密和安全性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而, 可以将它们存储在存储装置中由计算装置来执 行, 或 者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制 作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软 件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的 ^"神和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。