远程证明的方法、设备及系统与流程

文档序号:34979676发布日期:2023-08-02 04:32阅读:39来源:国知局
远程证明的方法、设备及系统与流程

本技术涉及信息处理,特别涉及远程证明的方法、设备及系统。


背景技术:

1、随着信息技术的不断发展,信息安全问题成为关注重点,远程证明应运而生。在远程证明过程中,由远程证明服务器(remote attestation server,ras)向远程证明客户端(remote attestation client,rac)发起挑战,以对rac的软件进行远程证明。在ras对rac的软件进行远程证明的过程中,ras需要使用rac的软件对应的基线文件。

2、现有技术中,rac的软件对应的基线文件由软件编译人员在软件的编译过程中生成。此种基线文件的生成方式使得现有技术所提供的远程证明的方式不够智能,且灵活性较差。


技术实现思路

1、本技术提供了一种远程证明的方法、设备及系统,以解决现有技术提供的远程证明的方式不够智能,以及灵活性不高的问题,技术方案如下。

2、第一方面,提供了一种远程证明的方法。该方法包括:第一网络设备获取第二网络设备生成的第一基线文件和度量日志。第一基线文件用于记录第二网络设备的软件在可信情况下的基准值,度量日志用于记录该软件的度量值。第一网络设备在确认第一基线文件和度量日志可信的情况下,基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果。软件对应的远程证明结果用于指示软件是否可信。

3、由于第一网络设备在确认第一基线文件和度量日志可信的情况下,再基于第一基线文件和度量日志对第二网络设备的软件进行远程证明。这保证了所得到的远程证明结果的准确性。由于第一网络设备获取的第一基线文件和度量日志是由第二网络设备生成的,获取方式较为智能,因而使得本技术实施例提供的远程证明的方法也较为智能,且灵活性较高。

4、在一种可能的实现方式中,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备接收第二网络设备发送的可信的基线文件校验值,基线文件校验值用于校验第一基线文件是否可信。第一网络设备对第一基线文件记录的基准值进行计算,得到第一数值。第一数值与基线文件校验值的计算方式相同。计算方式相同为算法相同,或者为算法和计算顺序均相同。响应于第一数值与基线文件校验值相同,第一网络设备确认第一基线文件可信。

5、通过基线文件校验值校验第一基线文件是否可信的方式简洁准确。在通过校验确认第一基线文件可信的情况下,第一网络设备才会执行后续的远程证明过程。保证了得到的远程证明结果的准确性。而对于第一基线文件中记录的基准值被篡改、第一基线文件中记录的不同基准值之间的顺序被篡改、基准值以及不同基准值之间的顺序均被篡改的情况,通过此种方式会确认第一基线文件不可信。第一网络设备不再执行后续的远程证明过程。

6、在一种可能的实现方式中,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备接收第二网络设备发送的可信的度量日志校验值,度量日志校验值用于校验度量日志是否可信。第一网络设备对度量日志记录的度量值进行计算,得到第二数值。第二数值与度量日志校验值的计算方式相同。计算方式相同为算法相同,或者为算法和计算顺序均相同。响应于第二数值与度量日志校验值相同,第一网络设备确认度量日志可信。

7、在通过校验确认度量日志可信的情况下,第一网络设备才会执行后续的远程证明过程,保证了得到的远程证明结果的准确性。而对于度量日志中记录的度量值被篡改、度量日志中记录的不同度量值之间的顺序被篡改、度量值以及不同度量值之间的顺序均被篡改的情况,通过此种方式会确认度量日志不可信。第一网络设备不再执行后续的远程证明过程。

8、在一种可能的实现方式中,第一基线文件和度量日志已通过第二网络设备的私钥加密。第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备获取私钥对应的公钥,通过公钥对第一基线文件和度量日志进行解密。

9、如果第一网络设备能够通过公钥对第一基线文件和度量日志进行解密,则第一网络设备能够确认第一基线文件和度量日志是通过第二网络设备的私钥加密的。进而能够确认第一基线文件和度量日志是由第二网络设备发送的。通过此种方式,能够及时发现第一基线文件和度量日志在传输过程中被恶意替换的情况,避免对后续远程证明过程造成影响。

10、在一种可能的实现方式中,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备确定度量日志记录的度量值对应的度量目标属于第一基线文件记录的基线值对应的度量目标的子集。

11、该实现方式用于第一网络设备确认第二网络设备是否可信,在第二网络设备可信的情况下再执行后续的远程证明过程。而在度量日志记录的度量值对应的度量目标不属于第一基线文件记录的基线值对应的度量目标的子集的情况下,确认第二网络设备不可信。第一网络设备可以不再执行后续的远程证明过程,直接确定第二网络设备的软件不可信。

12、在一种可能的实现方式中,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备接收第二网络设备发送的存储的第一基线文件。第一网络设备确定存储的第一基线文件和第一基线文件相同。

13、该实现方式用于第一网络设备确认第二网络设备是否可信,在第二网络设备可信的情况下再执行后续的远程证明过程。如果存储的第一基线文件和第一网络设备已获取的第一基线文件不同,则说明在第二网络设备对第一基线文件的存储过程中第一基线文件被篡改,从而说明第二网络设备不可信。第一网络设备可以不再执行后续的远程证明过程,直接确定第二网络设备的软件不可信。

14、在一种可能的实现方式中,第一网络设备获取第二网络设备生成的第一基线文件和度量日志,包括:第一网络设备向第二网络设备发送挑战请求,挑战请求用于请求第二网络设备发送第一基线文件和度量日志。第一网络设备接收第二网络设备发送的第一基线文件和度量日志。此种获取方式简单便捷。

15、在一种可能的实现方式中,挑战请求包括基准挑战值。第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备接收第二网络设备发送的挑战值,确定挑战值与基准挑战值相同。

16、如果挑战值与基准挑战值相同,则第一网络设备能够确认接收到的第一基线文件和度量日志是针对挑战请求现去发送的,并非是第一网络设备曾接收过的其他基线文件和度量日志。从而能够确认不存在重放攻击,避免了重放攻击影响后续的远程证明过程,保证了远程证明过程的准确性。

17、在一种可能的实现方式中,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果之前,方法还包括:第一网络设备确定发送时刻与接收时刻之间的时刻差值不大于时刻阈值。发送时刻为发送挑战请求的时刻,接收时刻为接收第一基线文件和度量日志的时刻。

18、该实现方式用于第一网络设备确认第二网络设备是否可信,在第二网络设备可信的情况下再执行后续的远程证明过程。在发送时刻与接收时刻之间的时刻差值大于时刻阈值的情况下,第一网络设备可以确定第二网络设备不可信。第一网络设备可以不再执行后续的远程证明过程,直接确定第二网络设备的软件不可信。

19、在一种可能的实现方式中,软件为运行态软件,运行态软件的数据位于第二网络设备的内存包括的多个内存页中,第一基线文件由第二网络设备查询多个内存页得到数据、拼接数据得到运行态软件后生成,运行态软件为用户态软件和内核态软件中的至少一种。

20、运行态软件位于第二网络设备的内存中,且运行态软件的数据可能分散于内存的不同内存页中。因而第二网络设备需要查询各个内存页得到数据,拼接得到运行态软件。从而可以生成运行态软件对应的第一基线文件,进而可以实现针对运行态软件的远程证明。

21、在一种可能的实现方式中,运行态软件为内核态软件,方法还包括:第一网络设备获取第二网络设备的用户态软件对应的第二基线文件。第二基线文件在用户态软件的编译过程中生成。第一网络设备基于第二基线文件对用户态软件进行远程证明,得到用户态软件对应的远程证明结果。

22、如上文所述,运行态软件位于第二网络设备的内存中。其中,在内核态软件被加载至内存的过程中,内核态软件会被进行重定向改写等修改,从而使得加载前后内核态软件是不一致的。由于内核态软件被进行的修改是难以预知的,因而对于内核态软件而言,内核态软件对应的第一基线文件只能在内核态软件被加载至内存之后由第二网络设备生成。不过,在用户态软件被加载至内存的过程中,用户态软件不会被进行修改,因而加载前后用户态软件是一致的。因此,对于用户态软件而言,可以由第二网络设备生成用户态软件对应的第一基线文件。也可以在用户态软件的编译过程中就生成用户态软件对应的第二基线文件。第一基线文件和第二基线文件均可以用于对用户态软件进行远程证明。

23、第二方面,提供了一种远程证明的方法。该方法包括:第二网络设备生成第二网络设备的软件对应的第一基线文件,第一基线文件用于记录软件在可信情况下的基准值。第二网络设备生成软件对应的度量日志,度量日志用于记录软件的度量值。第二网络设备向第一网络设备发送第一基线文件和度量日志。

24、在一种可能的实现方式中,度量日志记录的度量值对应有度量目标。对于任一度量目标,任一度量目标在第一基线文件中对应的基准值与任一度量目标对应的度量值不同。

25、在该实现方式中,第二网络设备会对比第一基线文件和各个度量目标的度量值。仅记录与第一基线文件中的基准值不同的度量值,得到度量日志。相比于记录所有度量目标的度量值得到度量日志的方式,对比之后再记录的方式能够减少度量日志的数据量,减小度量日志所需占用的存储空间。

26、在一种可能的实现方式中,第二网络设备生成软件对应的度量日志,包括:响应于确认第一基线文件可信,第二网络设备生成软件对应的度量日志。

27、第二网络设备在确认第一基线文件可信的情况下,再对第一基线文件和各个度量目标的度量值进行对比。能够避免第一基线文件不可信的情况影响对比过程,保证了通过对比得到的度量日志的准确性。从而保证了后续的远程证明过程的准确性。

28、在一种可能的实现方式中,方法还包括:第二网络设备对第一基线文件记录的基准值进行计算,得到基线文件校验值。基线文件校验值用于校验第一基线文件是否可信。第二网络设备向第一网络设备发送可信的基线文件校验值。

29、在一种可能的实现方式中,方法还包括:第二网络设备对度量日志记录的度量值进行计算,得到度量日志校验值。度量日志校验值用于校验度量日志是否可信。第二网络设备向第一网络设备发送可信的度量日志校验值。

30、在一种可能的实现方式中,第二网络设备向第一网络设备发送第一基线文件和度量日志,包括:第二网络设备向第一网络设备发送通过第二网络设备的私钥加密的第一基线文件和度量日志。

31、在一种可能的实现方式中,方法还包括:第二网络设备向第一网络设备发送存储的第一基线文件。

32、在一种可能的实现方式中,第二网络设备向第一网络设备发送第一基线文件和度量日志之前,方法还包括:第二网络设备接收第一网络设备发送的挑战请求。挑战请求用于请求第二网络设备发送第一基线文件和度量日志。

33、在一种可能的实现方式中,挑战请求包括基准挑战值,方法还包括:第二网络设备向第一网络设备发送挑战值,挑战值为基准挑战值。

34、在一种可能的实现方式中,软件为运行态软件。运行态软件为用户态软件和内核态软件中的至少一种。第二网络设备生成第二网络设备的软件对应的第一基线文件,包括:第二网络设备查询第二网络设备的内存包括的多个内存页,得到运行态软件的数据。第二网络设备拼接数据得到运行态软件,生成运行态软件对应的第一基线文件。

35、第三方面,提供了一种远程证明的装置,该装置包括获取模块和远程证明模块。其中,获取模块用于获取第二网络设备的软件对应的第一基线文件和度量日志。第一基线文件和度量日志由第二网络设备生成。第一基线文件用于记录软件在可信情况下的基准值,度量日志用于记录软件的度量值。远程证明模块用于响应于确认第一基线文件和度量日志可信,基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果,软件对应的远程证明结果用于指示软件是否可信。

36、在一种可能的实现方式中,远程证明模块还用于接收第二网络设备发送的可信的基线文件校验值,基线文件校验值用于校验第一基线文件是否可信。对第一基线文件记录的基准值进行计算,得到第一数值。第一数值与基线文件校验值的计算方式相同。计算方式相同为算法相同,或者为算法和计算顺序均相同。响应于第一数值与基线文件校验值相同,确认第一基线文件可信。

37、在一种可能的实现方式中,远程证明模块还用于接收第二网络设备发送的可信的度量日志校验值。度量日志校验值用于校验度量日志是否可信。对度量日志记录的度量值进行计算,得到第二数值。第二数值与度量日志校验值的计算方式相同。计算方式相同为算法相同,或者为算法和计算顺序均相同。响应于第二数值与度量日志校验值相同,确认度量日志可信。

38、在一种可能的实现方式中,第一基线文件和度量日志已通过第二网络设备的私钥加密。远程证明模块还用于获取私钥对应的公钥,通过公钥对第一基线文件和度量日志进行解密。

39、在一种可能的实现方式中,远程证明模块还用于确定度量日志记录的度量值对应的度量目标属于第一基线文件记录的基线值对应的度量目标的子集。

40、在一种可能的实现方式中,远程证明模块还用于接收第二网络设备发送的存储的第一基线文件。确定存储的第一基线文件和第一基线文件相同。

41、在一种可能的实现方式中,获取模块用于向第二网络设备发送挑战请求。挑战请求用于请求第二网络设备发送第一基线文件和度量日志。接收第二网络设备发送的第一基线文件和度量日志。

42、在一种可能的实现方式中,远程证明模块还用于接收第二网络设备发送的挑战值,确定挑战值与基准挑战值相同。

43、在一种可能的实现方式中,远程证明模块还用于确定发送时刻与接收时刻之间的时刻差值不大于时刻阈值。发送时刻为发送挑战请求的时刻,接收时刻为接收第一基线文件和度量日志的时刻。

44、在一种可能的实现方式中,软件为运行态软件。运行态软件的数据位于第二网络设备的内存包括的多个内存页中。第一基线文件由第二网络设备查询多个内存页得到数据、拼接数据得到运行态软件后生成。运行态软件为用户态软件和内核态软件中的至少一种。

45、在一种可能的实现方式中,运行态软件为内核态软件。获取模块还用于获取第二网络设备的用户态软件对应的第二基线文件,第二基线文件在用户态软件的编译过程中生成。远程证明模块还用于基于第二基线文件对用户态软件进行远程证明,得到用户态软件对应的远程证明结果。

46、第四方面,提供了一种远程证明的装置,该装置包括生成模块和发送模块。其中,生成模块用于生成第二网络设备的软件对应的第一基线文件,第一基线文件用于记录软件在可信情况下的基准值。生成模块还用于生成软件对应的度量日志,度量日志用于记录软件的度量值。发送模块用于向第一网络设备发送第一基线文件和度量日志。

47、在一种可能的实现方式中,度量日志记录的度量值对应有度量目标。对于任一度量目标,任一度量目标在第一基线文件中对应的基准值与任一度量目标对应的度量值不同。

48、在一种可能的实现方式中,生成模块用于响应于确认第一基线文件可信,生成软件对应的度量日志。

49、在一种可能的实现方式中,发送模块还用于对第一基线文件记录的基准值进行计算,得到基线文件校验值。基线文件校验值用于校验第一基线文件是否可信。向第一网络设备发送可信的基线文件校验值。

50、在一种可能的实现方式中,发送模块还用于对度量日志记录的度量值进行计算,得到度量日志校验值。度量日志校验值用于校验度量日志是否可信。向第一网络设备发送可信的度量日志校验值。

51、在一种可能的实现方式中,发送模块用于向第一网络设备发送通过第二网络设备的私钥加密的第一基线文件和度量日志。

52、在一种可能的实现方式中,发送模块还用于向第一网络设备发送存储的第一基线文件。

53、在一种可能的实现方式中,发送模块还用于接收第一网络设备发送的挑战请求。挑战请求用于请求第二网络设备发送第一基线文件和度量日志。

54、在一种可能的实现方式中,挑战请求包括基准挑战值。发送模块还用于向第一网络设备发送挑战值,挑战值为基准挑战值。

55、在一种可能的实现方式中,软件为运行态软件。运行态软件为用户态软件和内核态软件中的至少一种。生成模块用于查询第二网络设备的内存包括的多个内存页,得到运行态软件的数据。拼接数据得到运行态软件。生成运行态软件对应的第一基线文件。

56、第五方面,提供了一种远程证明的设备,该设备包括:包括网络接口、存储器及处理器。网络接口用于接收或发送数据,存储器中存储有数据及至少一条指令,至少一条指令由处理器加载并执行,以使远程证明的设备实现第一方面或第一方面的任一可能的实现方式,或第二方面或第二方面的任一可能的实现方式所提供的远程证明的方法。

57、第六方面,提供了一种远程证明的系统。该系统包括第一网络设备和至少一个第二网络设备。第一网络设备用于实现第一方面或第一方面的任一可能的实现方式所提供的远程证明的方法,至少一个第二网络设备中的任一第二网络设备用于实现第二方面或第二方面的任一可能的实现方式所提供的远程证明的方法。

58、第七方面,提供了一种计算机程序(产品)。计算机程序(产品)包括:计算机程序代码。当计算机程序代码被计算机运行时,使得计算机执行上述各方面中的方法。

59、第八方面,提供了一种计算机可读存储介质。计算机可读存储介质存储程序或指令。当程序或指令在计算机上运行时,上述各方面中的方法被执行。

60、第九方面,提供了一种芯片,包括处理器。用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述各方面中的方法。

61、第十方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器。输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述各方面中的方法。

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