一种FPGA配置文件的安全更新系统与方法与流程

文档序号:18329024发布日期:2019-08-03 11:49阅读:157来源:国知局
一种FPGA配置文件的安全更新系统与方法与流程

本发明涉及服务器安全技术领域,特别是一种fpga配置文件的安全更新系统与方法。



背景技术:

fpga是可编程逻辑器件,用于实现各种算法、状态控制以及数字逻辑等功能,已广泛应用于电子信息、通信工程等领域。在服务器中fpga也有着广泛的应用,例如实现电源控制、密码算法以及加速单元等,是服务器不可缺少的部分。

近年来针对服务器的攻击已经从上层软件逐渐转移到了底层的硬件和固件,使第三方恶意者向服务器fpga中植入恶意代码、病毒以及木马等成为可能,fpga如果遭受到威胁攻击时,会引发控制功能失效、逻辑时序混乱等问题,从而导致服务器的拒绝服务,引起业务中断,严重情况下会使服务器被黑客从底层控制,造成系统的彻底崩溃。因此fpga的安全性直接影响到服务器整机的安全性。

由于fpga是易失性器件,掉电后其内部存储的程序会丢失,所以需要利用外部的非易失性存储器,例如flash等,来存储其程序文件,即配置文件。如图1所示,fpga的配置文件存储于fpga外部的flash中,每次上电后,fpga首先读取flash中的配置文件,加载到fpga内部的ram后再运行。

由于现有技术中未实现对配置文件的保护,恶意人员可以对配置文件进行替换和篡改,从而使fpga无法得到安全保障。



技术实现要素:

本发明的目的是提供一种fpga配置文件的安全更新系统与方法,旨在解决现有技术中fpga配置文件易被篡改和替换的问题,实现确保服务器厂商发行的fpga配置文件的完整性和合法性,有效提高fpga的安全性。

为达到上述技术目的,本发明提供了一种fpga配置文件的安全更新系统,所述系统包括:

服务器厂商端设置签名模块,用户端设置验证模块和更新模块;

所述签名模块用于通过rsa算法和sha-256算法对fpga配置文件进行签名;

所述验证模块用于通过rsa算法和sha-256算法对用户端接收到的fpga配置文件的完整性和合法性进行验证,并输出验证结果;

所述更新模块用于根据验证结果决定是否为用户提供配置文件更新的操作接口;

所述签名模块与验证模块之间通过传输通道进行fpga配置文件相关数据的传输。

优选地,所述签名模块包括sha-256算法单元和rsa算法单元;

所述sha-256算法单元用于对配置文件进行杂凑运算,得到摘要值0;

所述rsa算法单元用于生成一对公钥-私钥对,利用其中的私钥对所述摘要值0进行加密,得到一个签名值。

优选地,所述验证模块同样包括sha-256算法单元和rsa算法单元;

所述sha-256算法单元用于对配置文件进行杂凑运算,得到摘要值1,通过摘要值0与摘要值1的对比,完成完整性验证;

所述rsa算法单元用于利用厂商提供的公钥对配置文件的签名值进行验证签名操作,得到摘要值2,通过摘要值2与摘要值1的对比,完成合法性验证。

优选地,所述fpga配置文件相关数据包括服务器厂商新发行的fpga配置文件、配置文件的摘要值、配置文件的签名值、公钥数据。

优选地,所述传输通道为网络传输或光盘传输。

本发明还提供了一种fpga配置文件的安全更新方法,所述方法包括以下步骤:

s1、在服务器厂商端,通过rsa算法和sha-256算法对fpga配置文件进行签名,生成签名值;

s2、将fpga配置文件相关数据发送至用户端;

s3、用户端通过rsa算法和sha-256算法对用户端接收到的fpga配置文件的完整性和合法性进行验证,并输出验证结果;

s4、根据验证结果决定是否为用户提供配置文件更新的操作接口。

优选地,所述步骤s1具体包括以下操作:

利用sha-256算法对配置文件进行杂凑运算,得到一个摘要值0,并调用rsa算法生成一对公钥-私钥对,其中私钥由厂商保管,公钥分发给用户,利用rsa密钥对的私钥对配置文件的摘要值0进行加密操作,从而得到签名值。

优选地,所述fpga配置文件相关数据包括服务器厂商新发行的fpga配置文件、配置文件的摘要值、配置文件的签名值、公钥数据。

优选地,所述步骤s3具体包括以下操作:

调用sha-256算法对配置文件进行杂凑运算,得到摘要值1,之后与厂商提供给的摘要值0进行比对,完成完整性验证;

调用rsa算法利用厂商提供的公钥对配置文件的签名值进行解密操作,得到摘要值2,比对摘要值1和摘要值2完成合法性验证。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明提出了一种fpga配置文件的安全更新系统,应用于信息安全领域的服务器中,服务器厂商在发行新的fpga配置文件时,首先利用rsa算法和sha-256算法对配置文件进行数字签名,防止其被非法篡改。服务器用户端在更新fpga配置文件之前,利用rsa算法和sha-256算法对配置文件的完整性和合法性进行验证,只有通过验证后才能确保配置文件是完整和合法的,之后才能进行更新操作,通过该系统可以确保fpga更新过程中配置文件的完整性和合法性。本发明可确保服务器厂商发行的fpga配置文件的完整性和合法性,由于只有配置文件通过用户端的验证后才能允许进行更新操作,可有效保护fpga的安全性。

附图说明

图1为现有技术中所提供的一种fpga配置文件存储方式示意图;

图2为本发明实施例中所提供的一种fpga配置文件的安全更新系统结构框图;

图3为本发明实施例中所提供的一种fpga配置文件的安全更新方法流程图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种fpga配置文件的安全更新系统与方法进行详细说明。

如图2所示,本发明实施例公开了一种fpga配置文件的安全更新系统,所述系统包括:

服务器厂商端设置签名模块,用户端设置验证模块和更新模块;

所述签名模块用于通过rsa算法和sha-256算法对fpga配置文件进行签名;

所述验证模块用于通过rsa算法和sha-256算法对用户端接收到的fpga配置文件的完整性和合法性进行验证,并输出验证结果;

所述更新模块用于根据验证结果决定是否为用户提供配置文件更新的操作接口;

所述签名模块与验证模块之间通过传输通道进行fpga配置文件相关数据的传输。

所述签名模块包括rsa算法单元和sha-256算法单元,所述rsa算法单元实现公钥密码算法,所述sha-256算法单元实现杂凑算法。服务器厂商发行新的fpga配置文件时,首先调用sha-256算法单元对配置文件进行杂凑运算,得到一个摘要值,然后调用rsa算法单元生成一对公钥-私钥对,利用其中的私钥对该摘要值进行加密,得到一个签名值。

所述传输通道用于将服务器厂商新发行的fpga配置文件、配置文件的摘要值、配置文件的签名值、公钥等数据传递给用户端,该传输通道可以为网络传输或光盘传输等传输方式。

所述验证模块同样包括rsa算法单元和sha-256算法单元,用户端利用验证模块对得到的fpga配置文件的完整性和合法性进行验证。通过rsa算法单元验证配置文件的合法性,即验证厂商对其发行的配置文件的数字签名值的真伪。基于rsa密码算法,该签名值无法被其他非法人员伪造,厂商也不能否认自己的数字签名值,从而保证配置文件的合法性。通过sha-256算法单元验证配置文件的完整性,如果对厂商的配置文件进行了篡改,利用sha-256算法会得到不同的摘要值,从而保证了配置文件是完整的,没有被篡改。当配置文件通过验证后,验证模块发送“true”信号;当配置文件未通过验证时,验证模块发送“false”信号。

所述更新模块用于根据验证模块的验证结果决定是否为用户提供配置文件更新的操作接口。当接收到验证模块发送的“true”信号时,更新模块为用户提供更新配置文件操作的接口,之后用户可以执行对fpga进行配置文件的更新操作;当接收到验证模块发送的“false”信号时,表明配置文件受到了破坏,因此更新模块不会为用户提供更新配置文件的操作接口。

服务器厂商发行新的fpga配置文件时,利用签名模块的sha-256算法单元对配置文件进行杂凑运算,得到一个摘要值0,hash_value;并调用rsa算法单元生成一对公钥-私钥对,其中私钥由厂商保管,公钥分发给用户。利用rsa密钥对的私钥对配置文件的摘要值进行加密操作,从而得到签名值,即enc_rsa。

厂商通过网络等传输通道将fpga配置文件、配置文件的摘要值hash_value、配置文件的签名值enc_rsa以及公钥分发给用户。

用户端得到fpga配置文件、配置文件的摘要值hash_value、配置文件的签名值enc_rsa以及公钥之后,调用验证模块的sha-256算法单元对配置文件进行杂凑运算,得到摘要值1,即hash_value_user1,之后与厂商提供给的摘要值0进行比对,若摘要值0=摘要值1,则证明厂商提供的配置文件是完整的,没有被篡改,即证明了完整性;若若摘要值0≠摘要值1,证明厂商提供的配置文件被篡改了,不是完整的。

用户端通过验证模块的rsa算法单元利用厂商提供的公钥对配置文件的签名值进行验证签名操作,即对enc_rsa解密,得到摘要值2,即hash_value_user2,比对摘要值1和摘要值2,如果摘要值1=摘要值2,即证明配置文件的合法性,从而验证了厂商的数字签名。之后更新模块为用户提供更新配置文件的操作接口;如果摘要值1≠摘要值2,合法性没有通过验证,更新单元禁止用户进行配置文件的更新操作。

本发明实施例提出了一种fpga配置文件的安全更新系统,应用于信息安全领域的服务器中,服务器厂商在发行新的fpga配置文件时,首先利用rsa算法和sha-256算法对配置文件进行数字签名,防止其被非法篡改。服务器用户端在更新fpga配置文件之前,利用rsa算法和sha-256算法对配置文件的完整性和合法性进行验证,只有通过验证后才能确保配置文件是完整和合法的,之后才能进行更新操作,通过该系统可以确保fpga更新过程中配置文件的完整性和合法性。本发明可确保服务器厂商发行的fpga配置文件的完整性和合法性,由于只有配置文件通过用户端的验证后才能允许进行更新操作,可有效保护fpga的安全性。

如图3所示,本发明实施例还公开了一种fpga配置文件的安全更新方法,所述方法包括以下步骤:

s1、在服务器厂商端,通过rsa算法和sha-256算法对fpga配置文件进行签名,生成签名值;

s2、将fpga配置文件相关数据发送至用户端;

s3、用户端通过rsa算法和sha-256算法对用户端接收到的fpga配置文件的完整性和合法性进行验证,并输出验证结果;

s4、根据验证结果决定是否为用户提供配置文件更新的操作接口。

服务器厂商发行新的fpga配置文件时,利用sha-256算法对配置文件进行杂凑运算,得到一个摘要值0,hash_value;并调用rsa算法生成一对公钥-私钥对,其中私钥由厂商保管,公钥分发给用户。利用rsa密钥对的私钥对配置文件的摘要值进行加密操作,从而得到签名值,即enc_rsa。

厂商通过网络等传输通道将fpga配置文件、配置文件的摘要值hash_value、配置文件的签名值enc_rsa以及公钥分发给用户。

用户端得到fpga配置文件、配置文件的摘要值hash_value、配置文件的签名值enc_rsa以及公钥之后,调用sha-256算法对配置文件进行杂凑运算,得到摘要值1,即hash_value_user1,之后与厂商提供给的摘要值0进行比对,若摘要值0=摘要值1,则证明厂商提供的配置文件是完整的,没有被篡改,即证明了完整性;若若摘要值0≠摘要值1,证明厂商提供的配置文件被篡改了,不是完整的。

用户端通过rsa算法利用厂商提供的公钥对配置文件的签名值进行验证签名操作,即对enc_rsa解密,得到摘要值2,即hash_value_user2,比对摘要值1和摘要值2,如果摘要值1=摘要值2,即证明配置文件的合法性,从而验证了厂商的数字签名,之后为用户提供更新配置文件的操作接口;如果摘要值1≠摘要值2,合法性没有通过验证,禁止用户进行配置文件的更新操作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1