本发明涉及一种基于韧体层的软件防护加密认证方法,通过增加韧体加密的方式,实现更可靠的计算机软件防护加密认证,属于工业计算机软件安全防护技术领域。
背景技术:
随着工业计算机需求的不断扩大,那为了实现工业计算机的特殊应用而设计的应用软件的安全认证安装问题也越来越受到重视,为了保证工业计算机应用软件的安全性能,行业技术人员采用了各种各样的软件安全认证方法。
但是,现在很多关于软件安全认证的方法,大部分都是采用计算机软件加密的方式,在过现实情况中,计算机软件加密的方式是很多应用软件都可以轻易破解,从而大大降低了工业计算机软件的安全性能,因此需要考虑如何进行更可靠的计算机软件防护。
为了增加应用软件的安全性,本发明提出一种基于韧体的安全认证方法,不仅仅只依赖于计算机软件加密,还增加了韧体加密认证。此方法是把对应的工业计算机和对应的应用软件联系起来,应用软件只有在相应的授权计算机上才能得到安装和运行。
技术实现要素:
发明目的:针对现有技术中计算机软件安全认证存在的技术缺陷及空白区,本发明提供一种基于韧体层的软件防护加密认证方法,在硬件层和韧体层对计算机软件进行安全加密认证,尤其对特殊工业计算机软件的安全认证。
技术方案:一种基于韧体层的软件防护加密认证方法,实现过程包括如下步骤:
步骤1,在进行计算机主板设计的时候增设嵌入式控制芯片,嵌入式控制芯片通过LPC总线与南桥通信,无需其他电路支持,实现简单,在嵌入式控制芯片内运行韧体程序;
进一步地,所述嵌入式控制芯片内运行的韧体程序主要实现如下功能的操作:
1-1)通过系统I/O端口接收密钥;
1-2)通过系统I/O端口接收明文;
1-3)进行AES加密,加密明文;
1-4)通过系统I/O端口发送密文;
1-5)升级密钥;
1-6)把AES加密过的密钥解密,用来对明文进行加密。
步骤2,在计算机应用软件设计过程中要加入对嵌入式控制芯片进行读写的操作;
进一步地,所述计算机应用软件设计过程中加入的对嵌入式控制芯片进行读写的操作主要包括如下内容:
2-1)通过ACPI协议把明文写入到嵌入式控制芯片;
2-2)通过ACPI协议从嵌入式控制芯片读取密文;
进一步地,所述计算机应用软件还需进行AES解密,解密密文。
步骤3,升级密钥;
步骤3中的密钥升级需要和嵌入式控制芯片内运行的韧体程序同步使用,把新的密钥文件通过系统I/O端口写入到嵌入式控制芯片内,从而实现密钥更新。
步骤4,AES密钥生成;用于生成AES加密过的密钥文件。
有益效果:相对于现有技术,本发明提供的基于韧体层的软件防护加密认证方法,具有如下优点:
1、安全性高,破解难;
2、可实现随时更新密钥;
3、更新密钥简单;
4、实用性强。
附图说明
图1为本发明实施例的原理图;
图2为本发明实施例中密钥生成工具流程图;
图3为本发明实施例中升级密钥工具流程图;
图4为本发明实施例中写明文流程图;
图5为本发明实施例中获取密文及认证流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,基于韧体层的软件防护加密认证方法,实现过程包括如下步骤:
步骤1,在进行计算机主板设计的时候增设嵌入式控制芯片,嵌入式控制芯片通过LPC总线与南桥通信,无需其他电路支持,实现简单,在嵌入式控制芯片内运行韧体程序;当嵌入式控制芯片上电之后,此韧体程序就开始运行;
步骤2,在APP层使用AES密钥生成工具生成加密后的AES密钥文件;
步骤3,在APP层使用升级密钥工具通过系统I/O端口把新的AES密钥文件写入到嵌入式控制芯片中的ROM(非易失存储器),从而实现密钥更新;
步骤4,韧体程序通过系统I/O端口接收到加密过的密钥文件,把加密过的密钥文件通过AES解密生成真正的密钥,通过中间转换可以更有效的保证安全性;
步骤5,计算机软件安装或运行时通过系统I/O向嵌入式控制芯片写入明文,等待韧体程序返回密文;
步骤6,韧体程序接收到明文之后,使用步骤4得到的密钥把明文转换成密文;
步骤7,随后嵌入式控制芯片通过系统I/O端口把密文发送给计算机应用软件,计算机应用软件接收密文,并且通过AES解密密文,和原明文比较完成认证。
如图2所示,AES密钥生成工具的流程为:
首先,读取加密AES的密钥keykey;
其次,根据AES扩展密钥算法获取keykey的扩展密钥expkey;
然后,从AES密钥文件读取一组AES密钥;
最后,根据AES密钥算法使用expKey扩展密钥加密AES密钥,保存到一个二进制文件中。
如图3所示,升级密钥工具的流程为:
(1)读取加密的AES密钥文件;所述AES密钥文件为AES密钥生成工具保存的二进制文件;
(2)通过ACPI命令对嵌入式控制芯片的韧体程序进行升级密钥初始化;初始化内容:升级密钥工具通过ACPI命令让韧体获取FLASH ROM型号、存储大小、扇区大小,并反馈给工具,然后工具通过命令使韧体处于RAM中运行,不主动读取FLASH ROM,等待工具发指令进行擦除,编程操作;
(3)通过韧体程序对嵌入式控制芯片的FLASH ROM进行擦除操作;
(4)通过韧体程序把加密的AES密钥文件数据写入到FLASH ROM中;
(5)通过ACPI命令使韧体重启。
如图4所示,写明文的流程为:
(1)通过ACPI命令向韧体写0x36命令;
(2)等待韧体响应,如果韧体没有响应,则程序错误退出;如果韧体响应,则通过ACPI命令向韧体写入明文,之后,等待韧体响应,如果韧体没有响应,则程序错误退出;如果韧体响应,结束流程。
如图5所示,获取密文及认证的流程为:
(1)通过ACPI命令从韧体读取密文;
(2)保存密文到BUFFER;
(3)根据AES算法生成AES扩展密钥;
(4)根据AES密钥算法使用AES扩展密钥解密密文为明文;
(5)认证明文是否正确,如果不正确,认证失败,否则,认证成功。