一种密码机软件完整性的安全保护方法

文档序号:7799839阅读:476来源:国知局
一种密码机软件完整性的安全保护方法
【专利摘要】本发明公开了一种密码机软件完整性的安全保护方法,涉及信息安全密码【技术领域】。本发明技术要点:包括所述软件完整性校验码产生步骤:生产人员通过外部管理接口发送软件完整性校验码产生指令给密码机;密码机将其内部的所有软件代码、固件和属性文件的字节流送入安全存储器;安全存储器对输入的字节流进行校验码计算得到软件完整性校验码;以及软件完整性校验步骤:密码机启动,将其内部的所有软件代码、固件和属性文件的字节流送给安全存储器进行校验码计算;安全存储器比较新计算得到的软件完整性校验码与安全存储器上的软件完整性校验码是否一致,若一致,则完成启动并开始工作,否则密码机停止启动。
【专利说明】一种密码机软件完整性的安全保护方法
【技术领域】
[0001]本发明属于信息安全密码【技术领域】,其涉及一种增强密码机自身安全性的方法,采用一种安全、可靠的软件完整性保护方法,防止木马、病毒等恶意软件非法篡改密码机内部的软件、固件和属性文件,从而增强密码机的安全性,保证用户业务系统的安全和可靠。
【背景技术】
[0002]密码技术是信息安全的基础技术,密码机是密码技术安全应用的基础和信息化安全的核心。随着我国信息化产业的高速全面发展,作为信息安全基础核心的密码设备,在一直为信息产业与现代服务业发展提供安全的密码技术的同时,也面临越来越多的安全风险,密码机自身的安全性也变得日益重要。
[0003]由于软件具有可修改性,容易受到木马、病毒等恶意软件的攻击,通过修改、替换部分或全部代码,将导致密码机中的程序不按照设计步骤运行,对系统造成极大的安全风险,影响用户业务系统的安全运行,给用户造成损失。因此,在密码机自身的安全性上,最重要的如何保证其自身软件的完整性,软件完整性是设备是否按设计要求进行工作的基础保障。
[0004]进一步,为了增强密码机中一些关键程序的安全性,例如:密码算法或者密码算法参数,通常采用内部固化程序的方式存在,这部分程序也称为固件。更进一步,一般情况下,在密码机内部存在一些属性文件,存储密码设备的重要属性和关键参数,对这些文件的非法修改或替换,也会损伤密码机的安全性。因此,密码机中的固件、属性文件也需要保证其完整性,避免在工作时被非法修改和替换。
[0005]为了解决软件完整性问题,通常的方法是采用完整性校验码的方式解决。预先计算完好文件的完整性校验码,保存在设备中,在机器启动时,对所有文件重新计算其完整性校验码,比较新计算和保存的校验码,如果相同则完整性校验通过。
[0006]传统软件完整性校验方法存在一些缺点,不能有效地防止恶意软件非法修改软件文件。其中关键点是预先计算的完整性校验码和文件或以其它形式存储在同一存储介质中,不能有效地避免软件文件和完整性校验码同步修改或替换的攻击;更好的解决方法是是采用IC卡或USB KEY分开保存完整性校验码,但IC卡和USB KEY通常没有受到足够的物理安全防护保证其安全性,也存在不可靠的问题。另外,完整性校验码计算程序通常都没有足够的安全保护,非法攻击者可以通过修改或替换完整性校验码程序来达到攻击目的。

【发明内容】

[0007]为了解决上述密码机自身软件、固件和属性文件的完整性问题,本发明提出一种安全、可靠的软件完整性保护方法,防止其内部文件被非法篡改,增强密码机的安全性。
[0008]本发明提供的密码机软件完整性的安全保护方法,包括密码机生产过程中的软件完整性校验码产生步骤与密码机投入工作后的软件完整性校验步骤;其中,
所述软件完整性校验码产生步骤包括: 步骤Al:生产人员通过外部管理接口发送软件完整性校验码产生指令给密码机;所述外部管理接口在密码机出厂后不能被访问;
步骤A2:密码机将其内部的所有软件代码、固件和属性文件的字节流送入安全存储
器;
步骤A3:安全存储器对输入的字节流进行校验码计算得到软件完整性校验码;
步骤A4:安全存储器利用私钥对所述软件完整性校验码进行数字签名,存储签名后的软件完整性校验码结果,同时删除私钥;
所述软件完整性校验步骤包括:
步骤B1:密码机启动,将其内部的所有软件代码、固件和属性文件的字节流送给安全存储器进行校验码计算;
步骤B2:安全存储器利用与所述私钥对应的公钥对存储在其内部的软件完整性校验码进行验签;
步骤B3:安全存储器比较步骤BI计算得到的软件完整性校验码与步骤B2验签得到的软件完整性校验码是否一致,并将比较结果返回给密码机;并且将验签后的软件完整性校验码删除;
步骤B4:密码机查看比较结果,若一致,则完成启动并开始工作,否则说明密码机遭到非法篡改,密码机停止启动。
[0009]进一步,密码机工作过程中定时或不定时进行所述软件完整性校验步骤。
[0010]进一步,当检测到密码机遭到非法篡改时,密码机发出告警信号。
[0011 ] 进一步,安全存储器中的校验码计算工作由固件完成。
[0012]进一步,安全存储器利用密码学技术对字节流进行校验码计算.本发明还提供了一种软件完整性校验码产生方法,包括以下在密码机生产过程中执行的步骤:
步骤Al:生产人员通过外部管理接口发送软件完整性校验码产生指令给密码机;所述外部管理接口在密码机出厂后不能被访问;
步骤A2:密码机将其内部的所有软件代码、固件和属性文件的字节流送入安全存储
器;
步骤A3:安全存储器对输入的字节流进行校验码计算得到软件完整性校验码;
步骤A4:安全存储器利用私钥对所述软件完整性校验码进行数字签名,存储签名后的软件完整性校验码结果,同时删除私钥。
[0013]本发明还提供了一种软件完整性校验方法,在密码机启动或工作时执行以下步骤:
步骤B1:密码机启动,将其内部的所有软件代码、固件和属性文件的字节流送给安全存储器进行校验码计算;
步骤B2:安全存储器利用与所述私钥对应的公钥对存储在其内部的软件完整性校验码进行验签;
步骤B3:安全存储器比较步骤BI计算得到的软件完整性校验码与步骤B2验签得到的软件完整性校验码是否一致,并将比较结果返回给密码机;并且将验签后的软件完整性校验码删除; 步骤B4:密码机查看比较结果,若一致,则完成启动并开始工作,否则说明密码机遭到非法篡改,密码机停止启动。
[0014]综上所述,由于采用了上述技术方案,本发明的有益效果是:
首先,密码机出厂后其外部管理接口会失效,因此外部不能控制密码机的软件完整性校验工作。
[0015]其次,软件完整性校验码计算过程是在安全存储器内完成的,且采用硬件逻辑电路实现,出厂后是不能修改的。
[0016]进一步,完整性校验码也存储在安全存储器内进行,外部和密码机内的程序都不能访问完整性校验码,不受恶意软件、系统中其它软件部件、人工操作等外部因素的干扰从而保证其完好性。
[0017]更进一步,安全存储器集成在密码机内,而且受到强物理安全的防护,具有在检测到攻击时,自动销毁其内部存储内容的安全机制。当安全存储器销毁其存储内容后,密码机将给出明确的告警,且密码机将停止工作,不对外提供安全服务。
[0018]更进一步,软件完整性校验码的计算和比较都和密码机的内部程序无关,避免业务程序错误影响完整性检测的可靠性。
[0019]另外,完整性校验码采用密码学技术计算,比传统的CRC检验和方式更安全、可靠;软件完整性校验码采用厂商私钥进行签名,而厂商私钥保存在专用设备中,厂商严格控制私钥不外出的,进一步保证了安全存储器内的软件完整性校验码的安全、完整性。
[0020]综上,采用本发明的技术方法,能有效地防止密码机内置软件、固件和属性文件被非法篡改,被非法替换等安全风险,提升了密码机自身的安全性。
【专利附图】

【附图说明】
[0021]本发明将通过例子并参照附图的方式说明,其中:
图1为本发明软件完整性校验码产生过程示意图。
【具体实施方式】
[0022]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0023]本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0024]本发明提出的软件完整性的安全保护方法包括软件完整性校验码产生过程与软件完整性校验过程。软件完整性校验码产生过程在密码机生产时进行,出厂后不能更改。软件完整性校验过程密码机投入工作后进行,即密码机启动时强制进行校验,只有通过软件完整性校验后,密码机才启动工作。在其他实施例中,在密码机使用过程中,为了防止恶意软件对密码机文件的修改,也需要定期或不定期进行软件完整性校验。
[0025]下面分别详细说明软件完整校验码的产生和校验过程:
图1表示软件完整性校验码产生过程,此过程在密码机生产时完成。生产人员通过密码机的外部管理接口产生软件完整性校验码产生指令,此接口在密码机出厂后不能访问。此接口可以为以软件接口,只能使用生产管理软件才能访问;或者此接口为一硬件接口,出厂后该硬件接口被封闭。密码机接收到指令后,将其内部软件代码、固件和属性文件的字节流送入安全存储器,安全存储器对字节流进行计算得到软件完整性校验码,并且利用私钥将校验码进行数字签名,之后将签名后的校验码安全存储在其内部存储器中。所述签名算法可以是SM2/RSA算法等。
[0026]这里采用密码学技术计算校验码的一个【具体实施方式】为,安全存储器采用SM3、MD5或SHA-1等摘要算法计算接收到的字节流的摘要,将该摘要作为软件完整性校验码。
[0027]更具体的,软件完整性码产生步骤如下:
1.密码机生产过程中,生产人员操作管理界面,对密码机进行工厂初始化工作,初始化工作包括软件完整性校验码生成。
[0028]2.管理软件通过管理接口,发送软件完整性校验码产生指令给密码机,只有管理软件才能访问管理接口。
[0029]3.密码机解析管理指令,如果是软件完整性校验码指令,密码机请求安全存储器产生校验码,参数是密码机内部的软件、固件和属性的字节流。
[0030]4.安全存储器接收密码机发送的字节流,调用软件完整性校验码产生程序生成校验码。
[0031]5.校验码产生程序根据输入的字节流,生成完整性校验码。如果还没有接收到完成指令,继续接收字节流。
[0032]6.安全存储器接收到完成指令,用厂商私钥对软件完整性校验码进行签名,产生私钥使用后删除,不保存。
[0033]7.安全存储器保存签名后的软件完整性校验码到内部存储区。
[0034]8.安全存储器修改机器状态标志,指示校验码产生完成。
[0035]在其他实施例中,软件完整性校验码产生程序通过硬件固化形式实现,例如EEPR0M、数字处理电路或FPGA等但不限于这些方法实现,这样的好处是,硬件电路不易被篡改,由于该电路位于安全存储器内部,若检测到物理攻击,安全存储器会自动销毁。
[0036]密码机启动过程中,密码机需要校验完整性校验码,检查其内部软件、固件和属性文件的完整性,检测密码机是否受到非法篡改。密码机启动时将内部软件、固件和属性文件的字节流送给安全存储器进行校验码计算,校验码计算完成后,安全存储器用内部存储的公钥解密存储的校验码,然后比较新计算的校验码和其解密后的校验码,如果软件完整性校验码的比较结果相同,表示密码机内部软件、固件和属性文件是完整的,没有受到非法篡改。进一步,密码机正常启动并进入工作状态,为用户业务系统提供可靠的安全服务;如果软件完整性校验码比较结果不同,密码机停止启动,不为用户业务系统提供安全服务。
[0037]在其他实施例中,当完整性校验码不匹配时,表示密码机内部软件、固件和属性文件已被非法篡改,密码机将通过声音、状态灯告警,密码机管理员根据告警信息进行相应的处理。
[0038]在密码机使用过程中,密码机将根据用户配置的安全策略,进行内部软件、固件和属性完整性的运行过程校验。在密码机使用过程,如果没有通过完整性校验,密码机将同样将报警,并且停止对外提供安全服务。
[0039]安全策略包括软件完整性校验时间和校验的周期,例如每周的某个时刻开始进行完整性校验。实现用户可控制的、动态的、定时的软件完整性校验。
[0040]更具体的,软件完整性校验步骤如下:
1.密码机发送所有软件、固件和属性文件的字节流给安全存储器。
[0041 ] 2.安全存储器调用软件完整性校验码计算程序生成校验码。
[0042]3.校验码生成完成后,安全存储器用厂商公钥解密存储的签名完整性校验码。
[0043]4.安全存储器将新计算的校验码和解密后的校验码进行比较,并将比较结果返回给密码机,并且将解密后的校验码删除。
[0044]5.密码机根据安全存储器的返回值,确定软件是否通过完整性的校验。
[0045]a.如果校验正确,密码机正常启动,进入工作状态;
b.如果校验错误,密码机告警,而且不再启动停止外提供安全服务。
[0046]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【权利要求】
1.一种密码机软件完整性的安全保护方法,其特征在于,包括密码机生产过程中的软件完整性校验码产生步骤与密码机投入工作后的软件完整性校验步骤;其中, 所述软件完整性校验码产生步骤包括: 步骤Al:生产人员通过外部管理接口发送软件完整性校验码产生指令给密码机;所述外部管理接口在密码机出厂后不能被访问; 步骤A2:密码机将其内部的所有软件代码、固件和属性文件的字节流送入安全存储器; 步骤A3:安全存储器对输入的字节流进行校验码计算得到软件完整性校验码; 步骤A4:安全存储器利用私钥对所述软件完整性校验码进行数字签名,存储签名后的软件完整性校验码结果,同时删除私钥; 所述软件完整性校验步骤包括: 步骤B1:密码机启动,将其内部的所有软件代码、固件和属性文件的字节流送给安全存储器进行校验码计算; 步骤B2:安全存储器利用与所述私钥对应的公钥对存储在其内部的软件完整性校验码进行验签; 步骤B3:安全存储器比较步骤BI计算得到的软件完整性校验码与步骤B2验签得到的软件完整性校验码是否一致,并将比较结果返回给密码机;并且将验签后的软件完整性校验码删除; 步骤B4:密码机查看比较结果,若一致,则完成启动并开始工作,否则说明密码机遭到非法篡改,密码机 停止启动。
2.根据权利要求1所述的一种密码机软件完整性的安全保护方法,其特征在于,密码机工作过程中定时或不定时进行所述软件完整性校验步骤。
3.根据权利要求1或2所述的一种密码机软件完整性的安全保护方法,其特征在于,当检测到密码机遭到非法篡改时,密码机发出告警信号。
4.根据权利要求1所述的一种密码机软件完整性的安全保护方法,其特征在于,安全存储器中的校验码计算工作由固件完成。
5.根据权利要求1或2所述的一种密码机软件完整性的安全保护方法,其特征在于,安全存储器利用密码学技术对字节流进行校验码计算。
6.一种软件完整性校验码产生方法,其特征在于,包括以下在密码机生产过程中执行的步骤: 步骤Al:生产人员通过外部管理接口发送软件完整性校验码产生指令给密码机;所述外部管理接口在密码机出厂后不能被访问; 步骤A2:密码机将其内部的所有软件代码、固件和属性文件的字节流送入安全存储器; 步骤A3:安全存储器对输入的字节流进行校验码计算得到软件完整性校验码; 步骤A4:安全存储器利用私钥对所述软件完整性校验码进行数字签名,存储签名后的软件完整性校验码结果,同时删除私钥。
7.一种软件完整性校验方法,其特征在于,在密码机启动或工作时执行以下步骤: 步骤B1:密码机启动,将其内部的所有软件代码、固件和属性文件的字节流送给安全存储器进行校验码计算; 步骤B2:安全存储器利用与所述私钥对应的公钥对存储在其内部的软件完整性校验码进行验签; 步骤B3:安全存储器比较步骤BI计算得到的软件完整性校验码与步骤B2验签得到的软件完整性校验码是否一致,并将比较结果返回给密码机;并且将验签后的软件完整性校验码删除; 步骤B4:密码机查看比较结果,若一致,则完成启动并开始工作,否则说明密码机遭到非法篡改,密码机停止启动。
8.根据权利要求7所述的一种软件完整性校验方法,其特征在于,当检测到密码机遭到非法篡改时,密码机发出告警信号。
9.根据权利要求6或7所述的一种软件完整性校验方法,其特征在于,安全存储器中的校验码计算工作由逻辑电路完成。
10.根据权利要求6或7所述的一种软件完整性校验方法,其特征在于,安全存储器利用密码学技术对字节 流进行校验码计算。
【文档编号】H04L9/32GK103873238SQ201410114109
【公开日】2014年6月18日 申请日期:2014年3月26日 优先权日:2014年3月26日
【发明者】张世雄, 李元正 申请人:成都卫士通信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1