- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种安全启动手机方法
一种安全启动手机的方法
【摘要】 本文提供了一种对手机的代码的合法性进行鉴定的管理方法,利用Nand Flash的OTP(One Time Programmable)区域来存放hash签名中的密钥。在手机启动时对手机运行代码进行认证,可以确保手机代码没有经过攻击者的修改,避免了手机被恶意修改从而被非法使用的现象。
【关键字】 OTP区 安全认证
一、技术领域
本文涉及嵌入式系统技术,更具体地,涉及对手机安全启动的技术。
二、背景技术
随着移动通讯技术的发展,手机已经进入千家万户。手机的代码却有着一定的脆弱性,市场上的某些人可能将手机的存储介质中的代码进行修改,以达到一定的目的。或者手机可能被非法下载其他代码。所有这些对于手机设备商或运营商而言都是不希望看到的。有鉴于此,本文提出了一种可以对手机中将要运行的代码进行认证的方法,如果是设备商认可的代码,则可以允许该代码在手机中运行,如果该代码不能通过手机的安全认证,则不允许该代码在手机中启动运行。OTP区,在一般的NAND FLASH器件上都会有一块OTP区域,OTP含义是 One Time Programmable,即一次可编程区,OTP(一次可编程)存储区的特性与一般FLASH存储器不同,一般FLASH存储器可以通过擦除命令恢复出厂状态(0xFF),然后可以重新写入数据,而OTP存储区一旦写入数据后,就无法通过擦除命令恢复出厂状态,即对于每个bit位,只能从“1”改写为“0”,而不能从“0”改写为“1”,即不可逆。存储器厂家保证OTP区域的可使用性,不会有坏块的情况。
三、具体内容
为了解决现有技术中的问题,本方法提供了一种手机安全启动的方法,手机的启动过程同大多数嵌入式式系统一样,分为boot阶段和OS操作系统阶段。不论是手机产品还是嵌入式系统,都需要一个OS系统(或封闭式OS系统,或开发式OS系统),系统上电后,总是先运行启动代码boot,完成CPU的初始化,以及各种外设和外部存储器(NandFlash,Sdram)然后将处理权交给OS系统,运行各式应用程序。这一段启动代码就是我们通常所说的boot代码。此处所讲的OS代码,不仅仅指的是手机的嵌入式操作系统,还有与之相关的在该操作系统上运行的其他应用任务程序代码。正常的手机启动过程是手机上电,系统自动将boot代码加载到ram中运行,此时boot的任务就是初始化CPU,初始化NandFlash,Sdram,加载下一级运行代码OS到Sdram中。等到OS加载完成后,从boot手中将CPU控制权交到OS控制,开始执行OS代码。但是在有些非法使用者在拿到手机后会用一些手段防止有些手机在未经授权的情况下被非法用户通过强力手段,通过TRACE32或类似的擦写Flash的方法将原来存在的代码擦除掉,然后再将修改过的或者未经授权认证的代码下载到手机中使用。
本方法的一个方面提供了一种在手机启动时boot阶段对手机即将运行的操作系统及相关应用代码进行安全认证的方法。本方法将boot阶段认证操作系统及相关应用代码认证的密钥存放在NAND FLASH的OTP区域,该区域不存在坏块问题,可以确保密钥不会遭到非法修改。
对OTP区的读写操作同其他的NAND FLASH的block不同,对于sumsung的Nand Flash对OTP区域的读写命令。OTP(One Time Programmable)block是Nand Flash里一个隐藏的block,该block必须使用特殊的指令来存取,以三星的Nand Flash为例,对普通block的一个page进行读操作的时序其指令部分只有一个字节(0x00),对OTP block的一个page进行读操作的时序其指令部分有三个字节(0x30,0x65和0x00)。对普通block的一个page进行写操作的时序其指令部分只有一个字节(0x80), 对OTP block的一个page进行写操作的时序其指令部分有三个字节(0x30,0x65和0x80)。通过这种不同的读写操作,OTP区域page的读写与普通的block的page读写区别开来。所以我们可以将密钥存储在OTP区域中,不会担心会被正常的NandFlash读写操作所访问到,确保该密钥是安全的,而且由于OTP区域的信息是一次写好的,如果对它进行修改的话也是不成功的。
下面分别介绍这种安全启动的方法:
一般的手机启动过程分为2个阶段,Boot阶段和操作系统运行阶段。手机上电后首先将Boot代码从NandFlash中加载到内部Ram或者外部Sdram中进行运行,主要内容就是将系统的硬件部分进行初始化,初始化NandFlash,初始化Sdram,还有与系统相关的一些寄存器,在这部分完成后
文档评论(0)