一种嵌入式设备软件保护方法技术

技术编号:8453203 阅读:290 留言:0更新日期:2013-03-21 18:08
本发明专利技术公开了一种嵌入式设备软件保护方法,包括下列步骤:在所述网络设备的动态内存中划出一块存储空间,用于存储校验码;软件启动,读取烧录信息,所述烧录信息包括所述MAC地址和一序列号;对所述MAC地址和所述序列号进行校验;如果校验失败,进入校验码输入模式,并将新输入的校验码写入所述动态内存中,软件重启动;如果校验成功,软件正常启动。本发明专利技术采取通过MAC地址的验证方法,利用网络设备需要烧录MAC地址且MAC地址全球唯一的特性,在烧录MAC过程中,同时进行软件合法性校验和防拷贝校验,无需设备联网即可验证,和MAC地址绑定,但通过加密算法计算使烧录信息有较大的不可逆性。

【技术实现步骤摘要】
一种嵌入式设备软件保护方法
本专利技术涉及软件保护方法,尤其涉及一种嵌入式设备软件保护方法。
技术介绍
传统的网络接入设备功能简单,通常软件直接固化在芯片之中,嵌入式软件从以前单纯的硬件附加产品转化为突出硬件产品市场竞争力的增值产品,不但可做为硬件的附加产品,更可单独出来做为功能扩展而商品化。在这样的前景趋势下,对软件本身的版权保护也较以往更为重要。家庭网关设备的复杂度越来越高,能实现的功能也越来越多。但随之而来的问题就是,嵌入式软件由于其特性,通常是固化在硬件设备内,直接在生产的过程中通过烧录方式存放在flash中,只要能获取到设备,可轻易通过读取flash内容来复制软件。以现有通常的软件版权保护方式为例,一般有两种方法能进行软件的认证保护:1、软件序列号输入法在软件启动时要求用户输入一定的序列号,通过软件校验序列号的合法性。2、网络认证法通过内嵌代码自动连接互联网并回传认证信息给相应服务器,对现有软件进行认证。但上述两种保护方式各有弊端。第一种验证方式要求网络设备必需要有一个用户接口,能提供用户进行验证序列号的输入和保存;且用户可大量输入相同序列号,软件无法进行识别。第二种验证方式较第一种方式灵活,但如果客户所使用网络设备无法联入互联网而只在内部网络使用,将无法进行软件验证;且该种方式有泄露用户信息的隐患,安全性差。
技术实现思路
针对上述存在的问题,本专利技术的目的是提供一种嵌入式设备软件保护方法,通过相应算法对软件进行保护验证,以达到管控烧录次数的目的,以现在的主流的网络接入嵌入式设备为蓝本,通过对现有软件流程进行改动,对软件进行版权保护,提高了安全性。本专利技术的目的是通过下述技术方案实现的:一种嵌入式设备软件保护方法,应用于一种在出厂之前进行MAC地址烧录的网络设备中,其中,包括下列步骤:在所述网络设备的动态内存中划出一块存储空间,用于存储随所述MAC地址同时进行烧录的校验码;软件启动,读取烧录信息,所述烧录信息包括所述MAC地址和一序列号;对所述MAC地址和所述序列号进行校验;如果校验失败,进入校验码输入模式,并将新输入的校验码写入所述动态内存中,软件重启动;如果校验成功,软件正常启动。上述嵌入式设备软件保护方法,其中,对所述MAC地址和所述序列号进行校验采用基于SHA-256的HMAC文件校验器。上述嵌入式设备软件保护方法,其中,用于接收新输入的校验码的接口为TELNET接口或HTTP接口或CONSOLE接口。上述嵌入式设备软件保护方法,其中,所述存储空间大小为4KB至128KB。上述嵌入式设备软件保护方法,其中,还包括升级管控步骤:每个版本软件只在设置成相同的所述序列号时才允许升级。与已有技术相比,本专利技术的有益效果在于:本专利技术采取通过MAC地址的验证方法,利用网络设备需要烧录MAC地址且MAC地址全球唯一的特性,在烧录MAC过程中,同时进行软件合法性校验和防拷贝校验,无需设备联网即可验证,和MAC地址绑定,但通过加密算法计算使烧录信息有较大的不可逆性。附图说明图1是本专利技术嵌入式设备软件保护方法的流程示意框图。具体实施方式下面结合原理图和具体操作实施例对本专利技术作进一步说明。本专利技术有一个前提假设:在该网络设备中,在出厂之前必需会有一个MAC地址烧录的动作,且动态内存(Flash)中的划块中有不小于一个block的预留空间,由于Flash的特殊物理构造,一个block空间从4KB到128KB不等,大约占Flash大小的0.2%-0.5%,该部分空间用于存储随MAC地址同时进行烧录的校验码。在这个前提假设下,Flash在软件内会有一块区域进行存储认证信息。在软件本身的执行结构中,首先对应每一个版本的嵌入式软件,软件本身会有一个8位的序列号,对应软件版本自身编号,此处定义为FIRMWARE_NUMBER,该编号也将做为HMAC算法的KEY。其次,在通过出厂烧录MAC的同时,对应每一个MAC,为了进行验证,会同时对应一组32字节(对应成16进制数为长度64位的字串)的序列号,此处定义为SERIAL_NUMBER。同时,MAC地址为一串6个字节的无重复字串(对应成16进制数为长度12位的字串),此处定义为MAC_ADDRESS。在本流程中:读取的烧录信息为MAC地址和同时烧录在Flash中的序列号。对所述MAC地址和所述序列号进行校验采用基于SHA-256的HMAC文件校验器,校验步骤为:通过对MAC_ADDRESS和软件本身的FIRMWARE_NUMBER进行HMAC计算,算法采用HMAC_SHA256加密算法,HMAC即带密钥的HASH函数,用它产生的报文鉴别码(MAC)可以实现报文鉴别,将生成的Digest字串同SERIAL_NUMBER进行匹配比较,如果字串匹配,则认为软件通过较验。由于将算法的密钥做为固定数固化在软件内,又由于采用MAC_ADDRESS作为算法随机数,在烧录过程中只知道随机数的情况下,较难逆算出序列号,以此保证序列号本身不可被伪造的特性。当校验不成功后,软件无法正常启动,但会启动一个后台应用,用来接收从相应接口重新输入的序列号,在本专利技术的优选实施例中,用于接收新输入的校验码的接口为TELNET接口或HTTP接口或CONSOLE接口,并将新序列号写入FLASH中,软件自动重启。重新进入读取校验步骤。软件除了能通过工厂进行出厂烧录外,还能通过HTTP等接口进行软件升级,现有加密机制环境下也已将此流程纳入管控。每个版本软件可设置相同或不同的FIRMWARE_NUMBER,设置相同编号时,软件无需重新验证,可直接升级,并且新版本软件能正常工作,保证普通维护升级不影响用户使用;设置不同编号时,软件升级后将无法工作,除非获得并输入新的序列号,使得即使获得升级软件但没有新序列号的用户也无法使用该软件。本专利技术采取通过MAC地址的验证方法,利用网络设备需要烧录MAC地址且MAC地址全球唯一的特性,在烧录MAC过程中,同时进行软件合法性校验和防拷贝校验,无需设备联网即可验证,和MAC地址绑定,但通过加密算法计算使烧录信息有较大的不可逆性。以上对本专利技术的具体实施例进行了详细描述,但本专利技术并不限制于以上描述的具体实施例,其只是作为范例。对于本领域技术人员而言,任何等同修改和替代也都在本专利技术的范畴之中。因此,在不脱离本专利技术的精神和范围下所作出的均等变换和修改,都应涵盖在本专利技术的范围内。本文档来自技高网...
一种嵌入式设备软件保护方法

【技术保护点】
一种嵌入式设备软件保护方法,应用于一种在出厂之前进行MAC地址烧录的网络设备中,其特征在于,包括下列步骤:在所述网络设备的动态内存中划出一块存储空间,用于存储随所述MAC地址同时进行烧录的校验码;软件启动,读取烧录信息,所述烧录信息包括所述MAC地址和一序列号;对所述MAC地址和所述序列号进行校验;如果校验失败,进入校验码输入模式,并将新输入的校验码写入所述动态内存中,软件重启动;如果校验成功,软件正常启动。

【技术特征摘要】
1.一种嵌入式设备软件保护方法,应用于一种在出厂之前进行MAC地址烧录的网络设备中,其特征在于,包括下列步骤:在所述网络设备的动态内存中划出一块存储空间,用于存储随所述MAC地址同时进行烧录的校验码;所述存储空间大小为4KB至128KB;软件本身有一个8位的序列号,对应软件版本自身编号,此处定义为FIRMWARE_NUMBER;出厂烧录MAC的同时,对应每一个MAC,为了进行验证,会同时对应一组32字节的序列号,此处定义为SERIAL_NUMBER;软件启动,读取烧录信息,所述烧录信息包括所述MAC地址和一序列号;具体的读取的烧录信息为MAC地址和同时烧录在动态内存中的序列号,即SERIAL_NUMBER;对所述MAC地址和所述序列号进行校验;对所述MAC地址和所述序列号进行校验采用基于S...

【专利技术属性】
技术研发人员:周宸晏
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1