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

未命名 08-03 阅读:119 评论:0
1.本技术涉及信息处理
技术领域
:,特别涉及远程证明的方法、设备及系统。
背景技术
::2.随着信息技术的不断发展,信息安全问题成为关注重点,远程证明应运而生。在远程证明过程中,由远程证明服务器(remoteattestationserver,ras)向远程证明客户端(remoteattestationclient,rac)发起挑战,以对rac的软件进行远程证明。在ras对rac的软件进行远程证明的过程中,ras需要使用rac的软件对应的基线文件。3.现有技术中,rac的软件对应的基线文件由软件编译人员在软件的编译过程中生成。此种基线文件的生成方式使得现有技术所提供的远程证明的方式不够智能,且灵活性较差。技术实现要素: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.第七方面,提供了一种计算机程序(产品)。计算机程序(产品)包括:计算机程序代码。当计算机程序代码被计算机运行时,使得计算机执行上述各方面中的方法。62.第八方面,提供了一种计算机可读存储介质。计算机可读存储介质存储程序或指令。当程序或指令在计算机上运行时,上述各方面中的方法被执行。63.第九方面,提供了一种芯片,包括处理器。用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述各方面中的方法。64.第十方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器。输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述各方面中的方法。附图说明65.图1为本技术实施例提供的一种远程证明的系统的结构示意图;66.图2为本技术实施例提供的又一种远程证明的系统的结构示意图;67.图3为本技术实施例提供的一种对数据进行可信存储的示意图;68.图4为本技术实施例提供的一种静态软件转换至运行态软件的示意图;69.图5为本技术实施例提供的一种远程证明的方法的流程图;70.图6为本技术实施例提供的又一种远程证明的方法的流程图;71.图7为本技术实施例提供的一种远程证明的装置的结构示意图;72.图8为本技术实施例提供的又一种远程证明的装置的结构示意图;73.图9为本技术实施例提供的一种远程证明的设备的结构示意图。具体实施方式74.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。75.图1为本技术实施例提供的一种远程证明的系统的结构示意图。本技术实施例提供了一种远程证明的方法,该方法应用于图1所示的实施环境中。图1所示的系统包括第一网络设备11和至少一个第二网络设备12。第一网络设备11和各个第二网络设备12分别通信连接。第一网络设备11用于作为远程证明的ras。作为ras的第一网络设备11执行的步骤包括获取第二网络设备的软件对应的第一基线文件和度量日志。响应于确认第一基线文件和度量日志可信,基于第一基线文件和度量日志对软件进行远程证明。其中,第一基线文件用于记录软件在可信情况下的基准值。度量日志用于记录软件的度量值。此外,各个第二网络设备12分别用于作为远程证明的rac。作为rac的第二网络设备12执行的步骤包括生成第一基线文件和度量日志。向第一网络设备发送第一基线文件和度量日志。第二网络设备12的数量可以根据实际需求进行设置。对此,本技术不做限定。76.图2为本技术实施例提供的又一种远程证明的系统的结构示意图。如图2所示,第一网络设备11中安装有具有ras功能的软件,使得第一网络设备11可以作为远程证明的ras。ras功能用于实现上文说明中第一网络设备11执行的步骤。示例性地,第一网络设备11可以对可信的第一基线文件进行存储,以便在后续的远程证明过程中进行使用。第二网络设备12中的用户空间中具有rac功能的软件,使得第二网络设备12可以作为远程证明的rac。rac功能用于实现上文说明中第二网络设备12执行的步骤。77.此外,第二网络设备12还包括富计算环境(richexecutionenvironment,ree)内核。ree内核包括第一度量模块。第一度量模块用于生成需要进行远程证明的软件对应的第一基线文件和度量日志。第一度量模块将第一基线文件存储于ree内核中,将度量日志存储于用户空间中。例如,软件为图2所示的文件系统中的静态软件,或者图2所示的内存中的运行态软件。具有ras功能的软件可以从ree内核中获取第一基线文件,并从用户空间中获取度量日志。在一些实施方式中,ree内核存储有度量目标列表,ree内核基于该度量目标列表生成第一基线文件。度量目标列表又称完整性度量架构(integritymeasurementarchitecture,ima)列表,度量目标列表以及基于度量目标列表生成第一基线文件的方式参见下文方法实施例。78.示例性地,第二网络设备12还包括可信计算环境(trustedexecutionenvironment,tee)内核。tee内核包括第二度量模块。第二度量模块用于生成基线文件校验值。基线文件校验值用于校验第一基线文件是否可信。示例性地,第二度量模块将基线文件校验值写入可信平台模块(trustedplatformmodule,tpm)芯片的平台配置寄存器(platformconfigurationregister,pcr)中,以保证基线文件校验值不被篡改。示例性地,tpm芯片具有接口。例如,接口为tpm_pcr_extend()接口。第二度量模块通过接口将基线文件校验值写入tpm芯片的pcr中。79.示例性地,在生成基线文件校验值的过程中,tee内核包括的第二度量模块按照一定的算法和计算顺序对第一基线文件包括的基准值进行叠加计算,得到基线文件校验值。通过tpm芯片的接口将基线文件校验值写入tpm芯片的pcr中。其中,算法为用于进行计算的数学方法。例如,如图3所示,计算顺序为基准值1、基准值2、……、基准值n。第二度量模块首先将基准值1写入一个pcr。按照一定的算法对基准值1进行计算,得到计算结果1。之后,再将基准值2写入同一个pcr。按照一定的算法对计算结果1和基准值2进行计算,得到计算结果2。以此类推,将基准值n(n为不小于1的整数)写入同一个pcr。按照一定的算法对计算结果(n-1)和基准值n进行计算,得到计算结果n。该计算结果即为基线文件校验值。80.此外,示例性地,ree内核包括的第一度量模块还用于生成度量日志校验值。度量日志校验值用于校验度量日志是否可信。其中,第一度量模块按照一定的算法和计算顺序对可信的度量日志记录的基准值进行叠加计算。通过tpm芯片的接口将计算得到的度量日志校验值写入tpm芯片的pcr中。存储有度量日志校验值的pcr与存储有基线文件校验值的pcr为两个不同的pcr。其中,第一度量模块将度量日志校验值写入pcr的方式参见上文第二度量模块将基线文件校验值写入pcr的方式即可,在此不再重复。81.在示例性实施例中,第二网络设备中的需要进行远程证明的软件为静态软件和运行态软件中的至少一种。静态软件存储于第二网络设备的文件系统中。示例性地,静态软件包括但不限于可执行与可链接格式(executableandlinkableformat,elf)文件、内核镜像(kernelimage,ki)文件和内核对象(kernelobject,ko)文件。参见图4,通过链接过程和加载过程,可以使得静态软件转换为运行态软件。其中,链接过程是指第二网络设备的操作系统的动态连接器在运行过程中,根据静态文件记录的共享对象的符号定义加载共享库,然后完成重定向。加载过程是指第二网络设备的操作系统的加载器将静态软件拷贝到内存并运行的过程。由此,可以得到位于内存中的运行态软件。内存与静态软件所在的文件系统是第二网络设备中的两个不同的存储位置。82.示例性地,运行态软件为用户态软件和内核态软件中的至少一种。用户态软件位于内存的用户态地址空间中,内核态软件位于内存的内核态地址空间中。83.基于以上的图1-2所示的系统,本技术实施例提供了一种远程证明的方法。该方法应用于第一网络设备和第二网络设备。第一网络设备用于作为远程证明的ras,第二网络设备用于作为远程证明的rac。如图5所示,该方法包括如下的步骤501-505。84.步骤501,第二网络设备生成第二网络设备的软件对应的第一基线文件,第一基线文件用于记录软件在可信情况下的基准值。85.其中,第二网络设备中存储有软件对应的度量目标列表。度量目标列表用于记录至少一个度量目标标识,度量目标标识用于指示软件对应的度量目标。软件对应的度量目标也即是对软件进行远程证明时需要度量的目标。示例性地,软件具有一定的度量范围。软件对应的度量模块基于度量范围确定。对于静态软件而言,度量范围为静态软件本身。度量目标为静态软件包括的所有二进制数据。对于用户态软件而言,度量范围包括但不限于进程(process)和共享库(library)。度量目标包括但不限于进程的代码段(text)、进程的只读数据段(readonlydata)、共享库的代码段和共享库的只读数据段。对于内核态软件而言,度量范围包括但不限于线程(thread)、ki和ko,度量目标包括但不限于线程的代码段、线程的只读数据段、ki的代码段、ki的只读数据段、ko的代码段和ko的只读数据段。86.示例性地,第二网络设备生成第二网络设备的软件对应的第一基线文件,包括:第二网络设备在软件可信的情况下,基于软件对应的度量目标列表生成软件对应的第一基线文件。示例性地,第二网络设备在第二网络设备可信的情况下,基于度量目标列表确定需要度量的至少一个度量目标。对各个度量目标进行一次遍历,以对各个度量目标进行度量,从而得到各个度量目标对应的基准值。之后,记录各个度量目标对应的基准值,得到第一基线文件。该第一基线文件包括度量目标标识以及度量目标标识所指示的度量目标对应的基准值。度量目标标识与基准值一一对应。其中,在第二网络设备可信的情况下,软件也可信。第一基线文件所记录的各个度量目标对应的基准值,也即是软件在可信情况下的基准值。87.对于第二网络设备确认第二网络设备可信的方式,示例性地,第二网络设备进行可信启动。在第二网络设备可信的情况下,第二网络设备才能够完成可信启动。因而如果第二网络设备能够完成可信启动,则可以确认第二网络设备可信。示例性地,在完成可信启动之后的第一时段内,也确认第二网络设备可信。本技术实施例不对第一时段的时长加以限定,第一时段的时长可以根据经验或者实际需求灵活设置。在一些实施方式中,进行可信启动的方式包括但不限于安全启动或者度量启动。88.对于第二网络设备对度量目标进行度量的方式,示例性地,第二网络设备对各个度量目标进行度量是指第二网络设备按照一定的算法对各个度量目标进行计算,得到各个度量目标对应的值。例如,在软件可信的情况下,计算得到的各个度量目标对应的值即为上文说明中的各个度量目标对应的基准值。需要说明的是,通过计算得到的各个度量目标对应的值相当于度量目标的指纹信息。如果一个度量目标被篡改,则计算得到的该度量目标对应的值与该度量目标对应的基准值不同。本技术实施例不对算法加以限定。在一些实施方式中,该算法为哈希(hash)算法。按照哈希算法计算得到的各个度量目标对应的值称为哈希值,哈希值又称散列值。89.示例性地,对于软件为静态软件的情况,从文件系统中直接获取静态软件。之后,即可按照上述说明中的方式生成静态软件对应的第一基线文件。或者,示例性地,对于软件为运行态软件的情况,第二网络设备生成第二网络设备的软件对应的第一基线文件,包括:第二网络设备查询第二网络设备的内存包括的多个内存页,得到运行态软件的数据。第二网络设备拼接数据得到运行态软件,生成运行态软件对应的第一基线文件。90.根据上文图4对应的说明可知,运行态软件位于内存中。由于内存包括多个内存页,因而第二网络设备需要查询多个内存页。从多个内存页中的至少一个内存页中获得数据。第二网络设备拼接数据得到运行态软件,从而形成运行态软件的度量目标。之后,第二网络设备便可以按照上文说明中的方式,对各个度量目标进行度量,得到第一基线文件。得到第一基线文件的过程在此不再进行赘述。91.以上生成第一基线文件的方式均为举例,不用于对第二网络设备生成第一基线文件的方式造成限定。示例性地,在第二网络设备生成第一基线文件之后,第二网络设备可以对第一基线文件进行存储。在后续需要使用第一基线文件时,读取已存储的第一基线文件。92.需要说明的是,虽然第二网络设备生成的第一基线文件是可信的,但在第一基线文件的存储过程中,第一基线文件可能被篡改。第一基线文件被篡改包括:第一基线文件中记录的基准值以及基准值在第一基线文件中的排列顺序中的至少一种被篡改。如果第一基线文件被篡改,则读取到的第一基线文件与第二网络设备生成的可信的第一基线文件不同。或者说读取到的第一基线文件不可信。因此,本技术实施例需要针对读取到的第一基线文件提供校验方式。以便校验读取到的第一基线文件是否可信。避免由于读取到的第一基线文件不可信而影响后续远程证明过程的准确性。示例性地,第二网络设备对可信的第一基线文件记录的基准值进行计算,得到基线文件校验值。该基线文件校验值用于校验第一基线文件是否可信。在计算过程中,第二网络设备按照一定的算法和计算顺序对各个基准值进行叠加计算,从而得到基线文件校验值。93.示例性地,本技术实施例在计算得到基线文件校验值之后,还对基线文件校验值进行存储,在需要使用基线文件校验值时再进行读取。例如,第二网络设备将基线文件校验值存储于tpm芯片的一个pcr中。此种存储方式能够保证基线文件校验值不被篡改。又例如,第二网络设备将基线文件校验值存储于tee内核中。虽然tee内核不能够保证基线文件校验值不被篡改,但tee内核的读取速度高于pcr的读取速度,可以减少读取基线文件校验值所需消耗的时间,提高远程证明过程的效率。且能够避免读取pcr所造成的pcr的性能损耗。此外,该基线文件校验值的使用过程参见后文说明,此处暂不进行赘述。94.步骤502,第二网络设备生成软件对应的度量日志,度量日志用于记录软件的度量值。95.随着第二网络设备的运行,第二网络设备的软件可能被篡改,则软件的可信情况未知。也就是说,第二网络设备不能确认软件是否可信。在不能确认软件是否可信的情况下,第二网络设备基于软件对应的度量目标列表生成软件对应的度量日志。其中,第二网络设备基于度量目标列表确定需要度量的至少一个度量目标。对至少一个度量目标进行至少一次遍历,以对各个度量目标进行至少一次度量,得到各个度量目标对应的度量值。之后,基于各个度量目标对应的度量值生成软件对应的度量日志。该度量日志包括度量目标标识和度量目标标识所指示的度量目标对应的度量值,度量目标标识与度量值一一对应。96.在一些实施方式中,第二网络设备记录各个度量目标对应的度量值,得到软件对应的度量日志。例如,度量目标的数量为10个,第二网络设备对各个度量目标进行了2次遍历。则度量日志包括一一对应的10个度量目标标识和第1次遍历过程中的10个度量值,以及一一对应的10个度量目标标识和第2次遍历过程中的10个度量值。97.在另一些实施方式中,对于任一度量目标,任一度量目标在第一基线文件中对应的基准值与任一度量日志对应的度量值不同。也就是说,第二网络设备在得到各个度量目标对应的度量值之后,会与第一基线文件进行对比。即对各个度量目标对应的度量值和各个度量目标在第一基线文件中对应的基准值进行对比。如果存在不同,再记录存在不同的度量目标对应的度量值,得到软件对应的度量日志。仍以度量目标的数量为10个、第二网络设备对各个度量目标进行了2次遍历为例。如果在2次遍历的过程中,10个度量目标中仅有1个度量目标对应的度量值不同于该度量目标在第一基线文件中对应的基准值,则度量日志仅包括相对应的1个度量目标标识和第1次遍历过程中的1个度量值,以及相对应的1个度量目标标识和第2次遍历过程中的1个度量值。98.相比于直接记录各个度量目标对应的度量值的方式,仅记录存在不同的度量目标对应的度量值的方式可以使得度量日志的数据量较少。降低了度量日志所需占用的存储空间的增长速度,延缓了存储空间爆炸现象的发生。其中,存储空间爆炸现象是指随着第二网络设备的运行时间的累积,度量日志所需占用的存储空间不断增大,导致存储空间的占用率大于占用率阈值,从而产生故障。99.在示例性实施例中,对于仅记录存在不同的度量目标对应的度量值的方式,响应于确认第一基线文件可信,第二网络设备再生成软件对应的度量日志。也就是说,第二网络设备在确认第一基线文件可信的情况下,再对比各个度量目标对应的度量值与第一基线文件,从而生成软件对应的度量日志。根据上文步骤501中的说明可知,本技术实施例可以对第一基线文件进行存储。第一基线文件在存储过程中可能被篡改,从而导致读取到的第一基线文件不可信。如果将各个度量目标对应的度量值与不可信的第一基线文件进行了对比,则会导致度量日志有误。由于远程证明过程需要使用度量日志,因而度量日志有误会导致远程证明过程得到的远程证明结果也有误。因此,在对比各个度量目标对应的度量值与第一基线文件之前,第二网络设备需要确认读取到的第一基线文件可信。避免度量日志有误,保证后续得到的远程证明结果的准确性。100.对于第二网络设备确认读取到的第一基线文件可信的方式,示例性地,第二网络设备对读取到的第一基线文件记录的基准值进行计算,得到第一参考数值。第一参考数值与基线文件校验值的计算方式相同。计算方式相同为算法相同,或者为算法和计算顺序均相同。响应于第一参考数值与基线文件校验值相同,第二网络设备确认读取到的第一基线文件可信。响应于第一参考数值与基线文件校验值不同,第二网络设备确认读取到的第一基线文件不可信。示例性地,在确认读取到的第一基线文件不可信的情况下,第二网络设备还可以向第一网络设备进行告警。在一些实施方式中,此处使用的基线文件校验值是存储于tee内核中的基线文件校验值。101.在一些实施方式中,计算方式相同为算法相同。此种方式中使用的算法不受计算顺序的影响。例如,算法为乘法。在第一基线文件记录的基准值可能被篡改而基准值的排列顺序不会被篡改的情况下,适用此种方式。102.例如,第一基线文件包括一一对应的10个度量目标标识和10个基准值。10个基准值分别为基准值1、基准值2、……、基准值10。第二网络设备对可信的第一基线文件中的基准值1至基准值10依次相乘,得到基线文件校验值。第一网络设备可以按照任意计算顺序对读取的第一基线文件中的基准值1至基准值10相乘,得到第一参考数值。如果第一参考数值与基线文件校验值相同,说明读取的第一基线文件中的基准值均未被篡改,读取的第一基线文件可信。如果第一参考数值与基线文件校验值不同,说明读取的第一基线文件中的至少一个基准值被篡改,读取的第一基线文件不可信。103.在一些实施方式中,计算方式相同为算法和计算顺序均相同。此种方式中使用的算法受计算顺序的影响。例如,算法为哈希算法。在第一基线文件记录的基准值和/或基准值的排列顺序可能被篡改的情况下适用此种方式。104.例如,第一基线文件包括一一对应的10个度量目标标识和10个基准值。10个基准值分别为基准值1、基准值2、……、基准值10。第二网络设备按照哈希算法依次对可信的第一基线文件中的基准值1至基准值10进行叠加计算,得到基线文件校验值。第一网络设备也按照哈希算法依次对读取的第一基线文件中的基准值1至基准值10进行叠加计算,得到第一参考数值。如果第一参考数值与基线文件校验值相同,说明读取的第一基线文件中的基准值和基准值的排列顺序均未被篡改,读取的第一基线文件可信。如果第一参考数值与基线文件校验值不同,说明读取的第一基线文件中的基准值和/或基准值的排列顺序被篡改,读取的第一基线文件不可信。105.此外,无论采用何种方式生成度量日志,第二网络设备均可以按照度量顺序将用于指示度量目标的度量目标标识和该度量目标对应的度量值相对应的写入度量日志。则度量目标标识在度量日志中的排列顺序(也即是度量值在度量日志中的排列顺序)即为度量顺序。例如,度量日志中依次包括:相对应的度量目标标识1和度量值1,相对应的度量目标标识2和度量值2。则通过度量日志可以确定,第二网络设备是先对度量目标标识1指示的度量目标进行了度量。再对度量目标标识2指示的度量目标进行了度量。由此,使得度量日志不仅用于记录各个度量目标的度量值,还用于记录度量顺序。从而,使得度量日志能够体现出第二网络设备进行度量的流程。106.以上生成度量日志的方式仅为举例,不用对第二网络设备生成度量日志的方式造成限定。示例性地,在第二网络设备生成度量日志之后,对度量日志进行存储。在后续需要使用度量日志时,再读取已存储的度量日志。107.需要说明的是,虽然第二网络设备生成的度量日志可信,但是度量日志在存储过程中也可能被篡改。度量日志被篡改包括:度量日志中记录的度量值以及度量值在度量日志中的排列顺序中的至少一种被篡改。如果度量日志被篡改,则读取到的度量日志与第二网络设备生成的可信的度量日志不同。也即度量日志不可信。从而导致使用度量日志的远程证明过程得到的远程证明结果也有误。因此,本技术实施例需要针对读取到的度量日志提供校验方式,以便校验读取到的度量日志是否可信,避免影响到后续的远程证明过程的准确性。在示例性实施例中,第二网络设备对可信的度量日志记录的度量值进行计算,得到度量日志校验值。该度量日志校验值用于校验度量日志是否可信。在计算过程中,第二网络设备按照一定的算法和计算顺序对各个度量值进行叠加计算,从而得到度量日志校验值。108.示例性地,本技术实施例在计算得到度量日志校验值之后,还对度量日志校验值进行存储。在需要使用度量日志校验值时再进行读取。例如,第二网络设备将度量日志校验值存储于tee内核中。又例如,第二网络设备将度量日志校验值存储于tpm芯片的一个pcr中,此种存储方式能够保证度量日志校验值不被篡改。需要说明的是,在基线文件校验值和度量日志校验值均存储于tpm芯片中的情况下,基线文件校验值和度量日志校验值需要位于tpm芯片中的两个不同的pcr中,以避免基线文件校验值和度量日志校验值发生混淆。例如,tpm芯片包括pcr_x和pcr_y,基线文件校验值位于pcr_x中,度量日志校验值位于pcr_y中。109.此外,还需要说明的是,本技术实施例不对步骤501和步骤502的执行顺序加以限定。步骤501和步骤502的执行顺序可以根据经验或实际需求确定。110.步骤503,第二网络设备向第一网络设备发送第一基线文件和度量日志。111.由于第二网络设备已通过上述步骤501和步骤502生成第一基线文件和度量日志,因而第二网络设备可以向第一网络设备发送第一基线文件和度量日志。本技术实施例不对第一基线文件和度量日志的发送顺序加以限定。112.在示例性实施例中,第二网络设备向第一网络设备发送第一基线文件和度量日志,包括但不限于如下的三种方式。113.发送方式一,第一网络设备向第二网络设备发送挑战请求。挑战请求用于请求第二网络设备发送第一基线文件和度量日志。第二网络设备接收第一网络设备发送的挑战请求,向第二网络设备发送第一基线文件和度量日志。也就是说,第二网络设备是基于第一网络设备发送的挑战请求向第一网络设备发送第一基线文件和度量日志的。114.其中,第一网络设备可以向第二网络设备发送一个挑战请求。第二网络设备基于这一个挑战请求,既向第一网络设备发送读取到的第一基线文件,又向第一网络设备发送读取到的度量日志。或者,第一网络设备可以向第二网络设备发送两个不同的挑战请求。其中一个挑战请求用于请求第二网络设备发送第一基线文件,另一个挑战请求用于请求第二网络设备发送度量日志。第二网络设备基于这两个挑战请求分别向第一网络设备发送读取到的第一基线文件和读取到的度量日志。115.在示例性实施例中,由于读取到的第一基线文件和读取到的度量日志均有可能是不可信的,因而除了读取到的第一基线文件和读取到的度量日志之外,第二网络设备还向第一网络设备发送可信的基线文件校验值和可信的度量日志校验值中的至少一个。以便于第一网络设备使用接收到基线文件校验值来校验接收到的第一基线文件是否可信,以及使用接收到的度量日志校验值来校验接收到的度量日志是否可信。在一些实施方式中,第二网络设备从tpm芯片的一个pcr中读取基线文件校验值并发送,从tpm芯片的另一个pcr中读取度量日志校验值并发送,以保证发送的基线文件校验值和度量日志校验值是可信的。另外,第一网络设备进行校验的方式参见下文步骤505中的说明,此处暂不进行赘述。116.发送方式二,第二网络设备在确认第一基线文件和度量日志可信的情况下,向第一网络设备推送第一基线文件和度量日志。117.在一些实施方式中,第二网络设备在生成可信的第一基线文件和可信的度量日志之后,对可信的第一基线文件和可信的度量日志进行可信存储。也即是将可信的第一基线文件和可信的度量日志存储于第二网络设备中不会被篡改的存储位置。则第二网络设备可以确认从该存储位置读取的第一基线文件和度量日志均是可信的。因此,第二网络设备在读取得到第一基线文件和度量日志之后,向第一网络设备推送所读取的第一基线文件和度量日志即可。118.在另一些实施方式中,第二网络设备在生成第一基线文件之后的第二时段内确认第一基线文件可信。在生成度量日志之后的第三时段内确认度量日志可信。本技术实施例不对第二时段的时长和第三时段的时长进行限定。因此,第二网络设备在生成第一基线文件之后的第二时段内向第一网络设备推送第一基线文件,在生成度量日志之后的第三时段内向第一网络设备推送度量日志,从而保证所推送的第一基线文件和度量日志均是可信的。119.在又一些实施方式中,第二网络设备基于基线文件校验值校验读取的第一基线文件是否可信,基于度量日志校验值校验读取的度量日志是否可信。在确认可信的情况下,再向第一网络设备推送读取到的第一基线文件和读取到的度量日志。120.其中,第二网络设备基于基线文件校验值校验读取的第一基线文件是否可信的方式,参见上文步骤502中的说明,此处不再赘述。在第二网络设备基于度量日志校验值校验读取的度量日志是否可信的过程中,第二网络设备对读取到的度量日志记录的度量值进行计算,得到第二参考数值。第二参考数值与度量日志校验值的计算方式相同,计算方式相同为算法相同,或者算法和计算顺序均相同。响应于第二参考数值与度量日志校验值相同,第二网络设备确认读取到的度量日志可信。响应于第二参考数值与度量日志校验值不同,第二网络设备确认读取到的度量日志不可信。在确认读取到的度量日志不可信的情况下,第二网络设备可以向第一网络设备进行告警。示例性地,此处使用的度量日志校验值是存储于tee内核中的度量日志校验值。121.示例性地,计算方式相同为算法相同。算法例如为乘法。则,计算第二参考数值时所使用的算法与计算度量日志校验值时所使用的算法相同,计算顺序可以不同。或者,计算方式相同为算法和计算顺序均相同。则,在计算第二参考数值时所使用的算法和计算顺序均与计算度量日志校验值时使用的算法和计算顺序相同。示例性地,所使用的计算顺序为度量值在度量日志中的排列顺序。122.发送方式三,第二网络设备在确认第一基线文件和度量日志可信的情况下,向其他网络设备推送第一基线文件和度量日志。由其他网络设备对第一基线文件和度量日志进行可信存储,并由其他网络设备向第一网络设备发送第一基线文件和度量日志。其中,其他网络设备为第一网络设备和第二网络设备之外的网络设备。123.其中,其他网络设备进行可信存储的方式参见上文发送方式二的说明。示例性地,第一网络设备向其他网络设备发送挑战请求。其他网络设备基于该挑战请求向第一网络设备发送第一基线文件和度量日志。挑战请求以及其他网络设备基于挑战请求进行发送的方式参见上文发送方式一中的说明,此处不再进行赘述。或者,其他网络设备向第一网络设备推送第一基线文件和度量日志。其他网络设备进行推送的方式参见上文发送方式二中的说明,此处不再进行赘述。124.步骤504,第一网络设备获取第二网络设备的软件对应的第一基线文件和度量日志。125.由于第二网络设备向第一网络设备发送了第一基线文件和度量日志,因而第一网络设备会获取到第一基线文件和度量日志。其中,第二网络设备采用的发送方式不同,则第一网络设备采用的获取方式也不同。在示例性实施例中,获取方式包括如下的三种。126.对应于发送方式一的获取方式一,第一网络设备接收第二网络设备基于挑战请求发送的第一基线文件和度量日志。此外,第一网络设备还接收第二网络设备发送的可信的基线文件校验值和可信的度量日志校验值中的至少一个。127.对应于发送方式二的获取方式二,第一网络设备接收第二网络设备推送的第一基线文件和度量日志。128.对应于发送方式三的获取方式三,第一网络设备接收其他网络设备基于挑战请求发送的第一基线文件和度量日志。或者,第一网络设备接收其他网络设备推送的第一基线文件和度量日志。129.步骤505,响应于确认第一基线文件和度量日志可信,第一网络设备基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果,软件对应的远程证明结果用于指示软件是否可信。130.由于在第一基线文件和度量日志可信的情况下,第一网络设备才会基于第一基线文件和度量日志对软件进行远程证明。因此,在示例性实施例中,在第一网络设备基于第一基线文件和度量日志对软件进行远程证明之前,第一网络设备首先需要确认第一基线文件和度量日志是否可信,参见如下的步骤5051。131.步骤5051,第一网络设备确认第一基线文件和度量日志可信。132.其中,第二网络设备采用的发送方式不同,则第一网络设备采用的确认方式也不同。在示例性实施例中,确认方式包括如下的三种。133.对应于发送方式一的确认方式一,第一网络设备基于基线文件校验值和度量日志校验值中的至少一个确认第一基线文件和度量日志可信。134.在第一网络设备接收到第二网络设备发送的可信的基线文件校验值的情况下,第一网络设备对接收到的第一基线文件记录的基准值进行计算,得到第一数值。第一数值与基线文件校验值的计算方式相同,计算方式相同为算法相同,或者算法和计算顺序均相同。其中,第一网络设备计算得到第一数值的方式,参见上文步骤502中第二网络设备计算得到第一参考数值的方式,在此不再赘述。135.响应于第一数值与基线文件校验值相同,第一网络设备确认第一基线文件可信。则在远程证明过程中可以使用该第一基线文件。或者,响应于第一数值与基线文件校验值不同,第一网络设备确认第一基线文件不可信。则在远程证明过程中不再使用该第一基线文件。136.在第一网络设备接收到第二网络设备发送的可信的度量日志校验值的情况下,第一网络设备对接收到的度量日志记录的度量值进行计算,得到第二数值。第二数值与度量日志校验值的计算方式相同,计算方式相同为算法相同,或者算法和计算顺序均相同。第一网络设备计算得到第二数值的方式,参见上文步骤503中第二网络设备计算得到第二参考数值的方式,在此不再赘述。137.响应于第二数值与度量日志校验值相同,第一网络设备确认度量日志可信。则可以使用度量日志进行后续的远程证明过程。响应于第二数值与度量日志校验值不同,第一网络设备确认度量日志不可信。则不再使用度量日志进行后续的远程证明过程。138.能够理解的是,基于基线文件校验值对第一基线文件进行校验的方式,以及基于度量日志校验值对度量日志进行校验的方式均为举例,不用于对校验方式造成限定。第一网络设备也可以采用其他方式来校验第一基线文件和度量日志是否可信。139.在示例性实施例中,除了通过步骤5051确认第一基线文件和度量日志可信之外,第一网络设备在基于第一基线文件和度量日志对软件进行远程证明之前,还执行如下的步骤5052-5056中的至少一个,以下分别进行说明。140.步骤5052,第一网络设备向第二网络设备发送的挑战请求包括基准挑战值,第一网络设备接收第二网络设备发送的挑战值,确定挑战值与基准挑战值相同。141.在挑战请求包括基准挑战值的情况下,第二网络设备通过挑战请求获得基准挑战值后,将该基准挑战值作为挑战值。在第二网络设备向第一网络设备发送第一基线文件和度量日志时,会一并发送挑战值,则第一网络设备会接收到第二网络设备发送的挑战值。示例性地,该基准挑战值是随机生成的数值。142.其中,第一网络设备对比挑战值与基准挑战值的作用在于:确定是否存在重放攻击。重放攻击是指恶意攻击的网络设备窃取第二网络设备已向第一网络设备发送过的数据。当第一网络设备向第二网络设备发送了新的挑战请求之后,恶意攻击的网络设备再向第一网络设备发送窃取到的数据,从而将窃取到的数据伪装成第二网络设备基于新的挑战请求向第一网络设备发送的数据。在挑战请求中携带基准挑战值的情况下,仅有基于新的挑战请求向第一网络设备发送的数据中能够携带与基准挑战值相同的挑战值。恶意攻击的网络设备窃取的已向第一网络设备发送过的数据,则不会携带与基准挑战值相同的挑战值。因此,通过对比挑战值与基准挑战值,可以确定是否存在重放攻击。143.则,响应于该挑战值与基准挑战值相同,第一网络设备确定第一基线文件和度量日志是第二网络设备基于挑战请求发送的,不存在重放攻击。可以继续基于第一基线文件和度量日志对软件进行远程证明。响应于该挑战值与基准挑战值不同,则存在重放攻击。第一网络设备不再基于第一基线文件和度量日志对软件进行远程证明。144.另外,根据上文步骤502的发送方式一中的说明可知,第一网络设备向第二网络设备发送的挑战请求的数量为一个或两个。响应于第一网络设备仅向第二网络设备发送一个挑战请求,则第二网络设备将该挑战请求中的基准挑战值作为挑战值。向第一网络设备发送该挑战值、第一基线文件和度量日志。或者,响应于第一网络设备向第二网络设备发送两个挑战请求,则第二网络设备将其中一个挑战请求中的基准挑战值作为第一挑战值。向第一网络设备发送第一挑战值和第一基线文件。第二网络设备还将另一个挑战请求中的基准挑战值作为第二挑战值,向第一网络设备发送第二挑战值和度量日志。145.步骤5053,第一网络设备确定发送时刻与接收时刻之间的时刻差值不大于时刻阈值,发送时刻为第一网络设备向第二网络设备发送挑战请求的时刻,接收时刻为第一网络设备接收第二网络设备发送的第一基线文件和度量日志的时刻。146.第一网络设备确定该时刻差值不大于时刻阈值的作用在于:确定第二网络设备是否可信。响应于该时刻差值不大于时刻阈值,则说明第二网络设备可信。第一网络设备可以继续基于第一基线文件和度量日志对软件进行远程证明。响应于该时刻差值大于时刻阈值,说明第二网络设备不可信。第一网络设备不再基于第一基线文件和度量日志对软件进行远程证明。示例性地,第一网络设备可以在第二网络设备不可信的情况下,认为第二网络设备的软件也不可信。示例性地,还可以认为第二网络设备发送的第一基线文件和度量日志也不可信。147.步骤5054,第一网络设备确定度量日志记录的度量值对应的度量目标属于第一基线文件记录的基线值对应的度量目标的子集。148.其中,度量日志包括相对应的度量目标标识和度量值。度量值对应的度量目标即为度量值对应的度量目标标识所指示的度量目标。第一基线文件包括相对应的度量目标标识和基准值。基准值对应的度量目标即为基准值对应的度量目标标识所指示的度量目标。第一网络设备确定是否属于子集的作用在于:确定第二网络设备是否可信。响应于属于子集,则说明第二网络设备上的度量目标列表和度量日志均未被篡改,第二网络设备可信。第一网络设备可以继续基于第一基线文件和度量日志对软件进行远程证明。响应于不属于子集,则说明第二网络设备上的度量目标列表和度量日志中的至少一个被篡改,第二网络设备不可信。第一网络设备不再基于第一基线文件和度量日志对软件进行远程证明。示例性地,第一网络设备可以在第二网络设备不可信的情况下,认为第二网络设备的软件也不可信。示例性地,还可以认为第二网络设备发送的第一基线文件和度量日志也不可信。149.步骤5055,第一网络设备接收第二网络设备发送的存储的第一基线文件,确定存储的第一基线文件与第一基线文件相同。此种情况下,第二网络设备除了向第一网络设备发送第一基线文件和度量日志之外,还需要向第一网络设备发送存储的第一基线文件。150.第一网络设备确定存储的第一基线文件与第一基线文件相同的作用在于:确定第二网络设备是否可信。响应于相同,则说明第一基线文件存储于第二网络设备的过程中未被篡改,第二网络设备可信。第一网络设备可以继续基于第一基线文件和度量日志对软件进行远程证明。响应于不同,则说明第一基线文件存储于第二网络设备的过程中被篡改,第二网络设备不可信。第一网络设备不再基于第一基线文件和度量日志对软件进行远程证明。示例性地,第一网络设备可以在第二网络设备不可信的情况下,认为第二网络设备的软件也不可信。示例性地,还可以认为第二网络设备发送的第一基线文件和度量日志也不可信。151.步骤5056,第一基线文件和度量日志已通过第二网络设备的私钥加密。第一网络设备获取私钥对应的公钥,通过公钥对第一基线文件和度量日志进行解密。152.其中,第一网络设备通过公钥进行解密的作用在于:确定第一基线文件和度量日志在传输过程中是否被恶意攻击的网络设备替换。由于第二网络设备的私钥由第二网络设备使用,且通过第二网络设备的私钥加密的数据仅能够通过该私钥对应的公钥进行解密。因而响应于第一网络设备可以通过公钥进行解密,则说明第一基线文件和度量日志是第二网络设备发送的,第一基线文件和度量日志在传输过程中未被替换。可以继续基于第一基线文件和度量日志对软件进行远程证明。响应于第一网络设备不可以通过公钥进行解密,则说明第一网络设备和度量日志在传输过程中已被替换。第一网络设备不再基于第一基线文件和度量日志对软件进行远程证明。153.能够理解的是,除了第一基线文件和度量日志之外,在第二网络设备还需要向第一网络设备发送其他数据(包括但不限于上述挑战值、存储的第一基线文件、基线文件校验值和度量日志校验值)的情况下,其他数据也已通过第二网络设备的私钥加密。154.本技术实施例不对上述步骤5051-5056的执行顺序进行限定。示例性地,第一网络设备先执行步骤5052-5056,再通过步骤5051确认第一基线文件和度量日志可信。之后,基于第一基线文件和度量日志对软件进行远程证明。155.对应于发送方式二的确认方式二,响应于第一网络设备确认第一基线文件和度量日志由第二网络设备发送,则第一网络设备确认第一基线文件和度量日志可信。例如,第一基线文件和度量日志可以通过第二网络设备的私钥加密。如果第一网络设备可以通过私钥对应的公钥进行解密,则第一网络设备确认第一基线文件和度量日志由第二网络设备发送。其原因参见上文步骤5056中的说明,在此不再重复。156.对应于发送方式三的确认方式三,响应于第一网络设备确认第一基线文件和度量日志由其他网络设备发送,则第一网络设备确认第一基线文件和度量日志可信。例如,第一基线文件和度量日志可以通过其他网络设备的私钥加密。如果第一网络设备可以通过私钥对应的公钥进行解密,则第一网络设备确认第一基线文件和度量日志由其他网络设备发送。其原因参见上文步骤5056中的说明,在此不再重复。157.在第一网络设备通过以上任一确认方式确认第一基线文件和度量日志可信之后,第一网络设备便可以基于第一基线文件和度量日志对软件进行远程证明,所得到的软件对应的远程证明结果用于指示软件是否可信。158.在远程证明过程中,第一网络设备对比第一基线文件记录的基准值和度量日志记录的度量值。响应于任一个度量目标标识在度量日志中对应的度量值与该度量目标标识在第一基线文件中对应的基准值不同,第一网络设备得到指示软件不可信的远程证明结果。或者,响应于各个度量目标标识在度量日志中对应的度量值均与该度量目标标识在第一基线文件中对应的基准值相同,第一网络设备得到指示软件可信的远程证明结果。159.由于本技术实施例中的软件可以为运行态软件,因而本技术实施例能够实现对运行态软件的远程证明,从而可以及时检测到针对运行态软件的攻击方法。由此,便可以及时采取相应的措施,从而避免了针对运行态软件的攻击方法影响到运行态软件及第二网络设备的安全性。在一些实施方式中,针对运行态软件的攻击方法包括但不限于高级持续威胁(advancedpersistentthreat,apt)。apt是一种通过缓冲区溢出漏洞注入恶意代码到内存的攻击方法。由于apt会通过技术手段对恶意代码进行隐藏,而这种隐藏可以避免恶意代码被第二网络设备的安全机制检测到,因而apt可以达到持久化入侵第二网络设备的目的。可以看出,apt隐蔽性较强、危害较大。通过本技术实施例提供的远程证明的方法对运行态软件进行远程证明,则可以及时发现apt攻击,以保证安全性。160.此外,在示例性实施例中,在第二网络设备的使用过程中,可能需要对第二网络设备进行运维(例如打热补丁),从而导致第二网络设备的软件发生更新。相应地,第二网络设备也需要对第一基线文件和基线文件校验值进行更新。第二网络设备向第一网络设备发送更新基线文件和更新的基线文件校验值。在后续对更新的软件进行远程证明的过程中,第一网络设备会使用更新基线文件和更新的基线文件校验值。161.示例性地,在第二网络设备进行更新之前,第二网络设备通过安全机制确定所进行的更新是否来自于被允许的管理员或程序。安全机制包括但不限于补丁签名校验或者管理员身份认证。在确定所进行的更新来自于被允许的管理员或程序的情况下,再进行更新。162.在一些实施方式中,软件发生更新例如为软件所具有的度量范围更新。此种更新可能使得软件对应的度量目标增加和/或度量目标对应的基准值发生改变。示例性地,如果此种更新使得度量目标对应的基准值发生改变,则第二网络设备基于更新的软件生成更新基线文件和更新的基线文件校验值。更新的基线文件校验值用于校验更新基线文件是否可信。生成方式参见上文步骤501中的说明。示例性地,如果此种更新仅使得软件对应的度量目标增加,则第二网络设备也可以不重新生成更新基线文件和更新的基线文件校验值。第二网络设备可以基于增加的度量目标生成新的基准值,将用于指示增加的度量目标的度量目标标识和新的基准值相对应的记录在第一基线文件中,得到更新基线文件。此外,第二网络设备在基线文件校验值的基础上,结合新的基准值进行叠加计算得到更新的基线文件校验值。163.在示例性实施例中,上述软件为运行态软件包括的内核态软件,方法还包括:第一网络设备获取第二网络设备的用户态软件对应的第二基线文件,第二基线文件基于用户态软件的编译过程生成。第一网络设备基于第二基线文件对用户态软件进行远程证明,得到用户态软件对应的远程证明结果。164.如上文所述,运行态软件位于第二网络设备的内存中。其中,在内核态软件被链接、加载至内存的过程中,内核态软件会被编译器修改(修改包括但不限于重定向改写,且此种修改与恶意篡改不同,此种修改是被允许的),从而使得加载前后内核态软件不一致。并且,此种修改是难以预知的。因而对于内核态软件而言,内核态软件对应的第一基线文件只能在内核态软件被链接、加载至内存之后,再由第二网络设备生成。不过,在用户态软件被链接、加载至内存的过程中,用户态软件不会被进行修改,因而加载前后用户态软件是一致的。则对于用户态软件而言,可以由第二网络设备生成用户态软件对应的第一基线文件。也可以在用户态软件的编译过程中就生成用户态软件对应的第二基线文件。第一基线文件和第二基线文件均可以用于对用户态软件进行远程证明。165.其中,在用户态软件的编译过程中生成第二基线文件的方式,可以参见上文步骤502中第二网络设备生成第一基线文件的方式,此处不再进行赘述。在生成第二基线文件之后,可以通过人工配置等方式,将第二基线文件配置于第一网络设备。该配置过程可以在第一网络设备进行远程证明之前完成。此外,对于软件为静态软件的情况,静态软件对应的基线文件可以由第二网络设备生成,也可以在静态软件的编译过程中生成。166.接下来,参见图6,对本技术实施例提供的远程证明的方法的整体流程进行举例说明,整体流程包括如下的四个阶段。167.第一阶段,第二网络设备生成第一基线文件。168.步骤601,ree内核中的第一度量模块基于ree内核存储的度量目标列表对软件进行度量,得到第一基线文件。在ree内核中存储第一基线文件。169.步骤602,ree内核中的第一度量模块向tee内核中的第二度量模块发送第一基线文件。170.步骤603,tee内核中的第二度量模块基于第一基线文件生成基线文件校验值。将基线文件校验值写入tpm芯片的pcr_x中。171.步骤604,tee内核中的第二度量模块告知ree内核中的第一度量模块已生成基线文件校验值。172.第二阶段,第一网络设备获取第一基线文件。173.步骤605,第一网络设备的ras向第二网络设备的rac发送挑战请求1。该挑战请求1包括基准挑战值1。174.步骤606,第二网络设备的rac获取ree内核存储的第一基线文件(步骤6061),获取pcr_x存储的基线文件校验值(步骤6062)。将基准挑战值1作为挑战值1。通过第二网络设备的私钥对第一基线文件、基线文件校验值和挑战值1进行加密,得到加密结果1。175.步骤607,第二网络设备的rac向第一网络设备的ras发送加密结果1。176.步骤608,第一网络设备的ras对加密结果1进行校验,得到可信的第一基线文件。之后,存储可信的第一基线文件。177.其中,校验过程包括第一网络设备的ras通过第二网络设备的私钥对加密结果1进行解密。得到第一基线文件、基线文件校验值和挑战值1。在确认挑战值1与基准挑战值1相同之后,基于基线文件校验值确认第一基线文件是否可信。如果确认第一基线文件可信,则得到可信的第一基线文件。178.步骤609,第一网络设备接收配置的第一基线文件,该第一基线文件在软件的编译过程中生成。179.需要说明的是,第一网络设备可以选择通过步骤605-608获取第一基线文件。或者,第一网络设备选择通过步骤609获取第一基线文件。180.第三阶段,第二网络设备生成度量日志。181.步骤610,ree内核的第一度量模块基于ree内核存储的度量目标列表再次对软件进行度量,得到多个度量值。182.步骤611,ree内核的第一度量模块对比第一基线文件和多个度量值。记录与第一基线文件不同的度量值得到度量日志,向用户空间发送度量日志。183.步骤612,用户空间存储度量日志。184.步骤613,ree内核的第一度量模块基于度量日志生成度量日志校验值,将度量日志校验值写入tpm芯片的pcr_y中。185.第四阶段,第一网络设备获取度量日志,基于第一基线文件和度量日志进行远程证明。186.步骤614,第一网络设备的ras向第二网络设备的rac发送挑战请求2。该挑战请求2包括基准挑战值2。187.步骤615,第二网络设备的rac获取用户空间存储的度量日志(步骤6151),获取pcr_y存储的度量日志校验值(步骤6152),从ree内核获取存储的第一基线文件(步骤6153)。再将基准挑战值2作为挑战值2。通过第二网络设备的私钥对度量日志、度量日志校验值、存储的第一基线文件、挑战值2进行加密,得到加密结果2。188.步骤616,第二网络设备的rac向第一网络设备的ras发送加密结果2。189.步骤617,第一网络设备的ras对加密结果2进行校验,得到可信的度量日志。对比度量日志与第一基线文件,得到远程证明结果,从而完成远程证明。190.其中,校验过程包括第一网络设备的ras通过第二网络设备的私钥对加密结果2进行解密。得到度量日志、度量日志校验值、存储的第一基线文件、挑战值2。第一网络设备确认挑战请求2的发送时刻与加密结果2的接收时刻之间的时刻差值不大于时刻阈值、存储的第一基线文件与可信的第一基线文件相同、挑战值2与基准挑战值相同2(确认顺序不进行限定)。之后,第一网络设备基于度量日志校验值确认度量日志是否可信。如果确认度量日志可信,则可以完成远程证明。191.综上所述,本技术实施例中第一网络设备在确认第一基线文件和度量日志可信的情况下,基于第一基线文件和度量日志对第二网络设备的软件进行远程证明,保证了所得到的远程证明结果的准确性。由于第一网络设备获取的第一基线文件和度量日志是由第二网络设备生成的,获取方式较为智能,因而使得本技术实施例提供的远程证明的方法也较为智能,具有较高的灵活性。192.以上介绍了本技术实施例提供的远程证明的方法,与上述方法对应,本技术实施例还提供了一种远程证明的装置。其中,该装置应用于第一网络设备。该装置用于通过图7所示的各个模块执行上述图5或图6中第一网络设备所执行的远程证明的方法。如图7所示,本技术实施例提供的远程证明的装置包括如下的获取模块701和远程证明模块702。193.其中,获取模块701用于执行上文的步骤504。远程证明模块702用于执行上文的步骤505。194.在一些实施方式中,获取模块701用于执行步骤605和步骤614。远程证明模块702用于执行步骤608和步骤616。在另一些实施方式中,获取模块701还用于执行步骤609,远程证明模块702用于执行步骤616。195.图7所示的远程证明的装置应用于第一网络设备,所具备的结构,与第二网络设备交互的详细过程,以及完成远程证明的详细过程,请参照前面图1-6相关的各实施例的描述,在这里不再重复。196.本技术实施例还提供了另一种远程证明的装置。该装置应用于第二网络设备,该装置用于通过图8所示的各个模块执行上述图5或图6中第二网络设备所执行的远程证明的方法。如图8所示,本技术实施例提供的远程证明的装置包括如下的生成模块801和发送模块802。197.其中,生成模块801用于执行上文的步骤501和步骤502,发送模块802用于执行上文的步骤503。198.在一些实施方式中,生成模块801用于执行步骤601-604、步骤606、步骤610-613和步骤615。发送模块802用于执行步骤607和步骤616。在另一些实施方式中,生成模块810用于执行步骤610-613和步骤615,发送模块802用于执行步骤616。199.图8所示的远程证明的装置应用于第二网络设备,所具备的结构,与第一网络设备交互的详细过程,请参照前面图1-6相关的各实施例的描述,在这里不再重复。200.综上所述,本技术实施例中第一网络设备在确认第一基线文件和度量日志可信的情况下,基于第一基线文件和度量日志对第二网络设备的软件进行远程证明,保证了所得到的远程证明结果的准确性。由于第一网络设备获取的第一基线文件和度量日志是由第二网络设备生成的,获取方式较为智能,因而使得本技术实施例提供的远程证明的方式也较为智能,灵活性较高。201.应理解的是,上述图7以及图8提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。202.图9示出了本技术一示例性的远程证明的设备900的结构示意图。如图9所示,该远程证明的设备900包括至少一个处理器901、存储器903以及至少一个网络接口904。203.处理器901例如是通用中央处理器(centralprocessingunit,cpu)、数字信号处理器(digitalsignalprocessor,dsp)、网络处理器(networkprocesser,np)、gpu、神经网络处理器(neural-networkprocessingunits,npu)、数据处理单元(dataprocessingunit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路或专用集成电路(application-specificintegratedcircuit,asic)、可编程逻辑器件(programmablelogicdevice,pld)、其他通用处理器或者其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件部件或者其任意组合。pld例如是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、现场可编程逻辑门阵列(field-programmablegatearray,fpga)、通用阵列逻辑(genericarraylogic,gal)或其任意组合。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advancedriscmachines,arm)架构的处理器。其可以实现或执行结合本技术公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,dsp和微处理器的组合等等。204.可选的,远程证明的设备900还包括总线902。总线902用于在远程证明的设备900的各组件之间传送信息。总线902可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。205.存储器903可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。206.通过示例性但不是限制性说明,许多形式的rom和ram可用。例如,rom为只读光盘(compactdiscread-onlymemory,cd-rom)。ram包括但不限于静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。207.存储器903还可以是可存储静态信息和指令的其它类型的存储设备。或者可以是可存储信息和指令的其它类型的动态存储设备。或者可以是其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器903例如是独立存在,并通过总线902与处理器901相连接。存储器903也可以和处理器901集成在一起。208.网络接口904使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信网络可以为以太网、无线接入网(radioaccessnetwork,ran)或无线局域网(wirelesslocalareanetwork,wlan)等。网络接口904可以包括有线网络接口,还可以包括无线网络接口。具体的,网络接口904可以为以太(ethernet)接口,如:快速以太(fastethernet,fe)接口、千兆以太(gigabitethernet,ge)接口,异步传输模式(asynchronoustransfermode,atm)接口,wlan接口,蜂窝网络接口或其组合。以太网接口可以是光接口,电接口或其组合。在本技术的一些实施方式中,网络接口904可以用于远程证明的设备900与其他设备进行通信。209.在具体实现中,作为一些实施方式,处理器901可以包括一个或多个cpu,如图9中所示的cpu0和cpu1。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。210.在具体实现中,作为一些实施方式,远程证明的设备900可以包括多个处理器。如图9中所示的处理器901和处理器905。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。211.在一些实施方式中,存储器903用于存储执行本技术方案的程序指令910,处理器901可以执行存储器903中存储的程序指令910。也即是,远程证明的设备900可以通过处理器901以及存储器903中的程序指令910,来实现方法实施例提供的方法,即图5或6中第一网络设备或第二网络设备所执行的方法。程序指令910中可以包括一个或多个软件模块。可选地,处理器901自身也可以存储执行本技术方案的程序指令。212.在具体实施过程中,本技术的远程证明的设备900可对应于用于执行上述方法的第一网络设备,远程证明的设备900中的处理器901读取存储器903中的指令,使图9所示的远程证明的设备900能够执行方法实施例中的全部或部分步骤。213.远程证明的设备900还可以对应于上述图7或图8所示的装置,图7或图8所示的装置中的每个功能模块采用远程证明的设备900的软件实现。换句话说,图7或图8所示的装置包括的功能模块为远程证明的设备900的处理器901读取存储器903中存储的程序指令910后生成的。214.其中,图5或6所示的方法的各步骤通过远程证明的设备900的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术所公开的方法实施例的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例的步骤,为避免重复,这里不再详细描述。215.在示例性实施例中,本技术实施例提供了一种远程证明的设备。该设备包括:包括网络接口、存储器及处理器。网络接口用于接收或发送数据,存储器中存储数据及至少一条指令。至少一条指令由处理器加载并执行,以使远程证明的设备实现图5或6中第一网络设备或第二网络设备执行的远程证明的方法。其中,网络接口接收或发送的数据及存储器中存储的数据可以参见上文图1-6对应的说明,在此不再赘述。216.在示例性实施例中,本技术实施例提供了一种远程证明的系统。该系统包括第一网络设备和至少一个第二网络设备。第一网络设备与至少一个第二网络设备通信连接。第一网络设备用于执行图5或6中第一网络设备所执行的方法,第二网络设备用于执行图5或6中第二网络设备所执行的方法。217.在示例性实施例中,本技术实施例提供了一种计算机程序(产品)。计算机程序(产品)包括:计算机程序代码。当计算机程序代码被计算机运行时,使得计算机执行图5或6中第一网络设备所执行的远程证明的方法。或者,使得计算机执行图5或6中第二网络设备所执行的方法。218.在示例性实施例中,本技术实施例提供了一种计算机可读存储介质。计算机可读存储介质存储程序或指令。当程序或指令在计算机上运行时,计算机执行上述图5或6中第一网络设备所执行的方法。或者,计算机执行上述图5或6中第二网络设备所执行的方法。219.在示例性实施例中,本技术实施例提供了一种芯片。该芯片包括处理器。处理器用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的设备执行图5或6中第一网络设备所执行的方法。或者,使得安装有芯片的设备执行图5或6中第二网络设备所执行的方法。220.在示例性实施例中,本技术实施例提供另一种芯片。该芯片包括输入接口、输出接口、处理器和存储器。输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。处理器用于执行存储器中的代码。当代码被执行时,处理器用于执行图5或6中第一网络设备所执行的方法。或者,处理器用于执行图5或6中第二网络设备所执行的方法。221.在上述实施例中,计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机可读存储介质存储的指令可以从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk)等。222.本技术中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分。应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。223.还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后。各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。224.本技术中术语“至少一个”的含义是指一个或多个。本技术中术语“多个”的含义是指两个或两个以上。例如,多个第二设备是指两个或两个以上的第二设备。本文中术语“系统”和“网络”经常可互换使用。225.还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中的字符“/”一般表示前后关联对象是一种“或”的关系。226.应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。227.还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。[0228]以上所述仅为本技术的实施例,并不用以限制本技术。凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种远程证明的方法,其特征在于,所述方法包括:第一网络设备获取第二网络设备的软件对应的第一基线文件和度量日志,所述第一基线文件和所述度量日志由所述第二网络设备生成,所述第一基线文件用于记录所述软件在可信情况下的基准值,所述度量日志用于记录所述软件的度量值;响应于确认所述第一基线文件和所述度量日志可信,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果,所述软件对应的远程证明结果用于指示所述软件是否可信。2.根据权利要求1所述的方法,其特征在于,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的可信的基线文件校验值,所述基线文件校验值用于校验所述第一基线文件是否可信;所述第一网络设备对所述第一基线文件记录的基准值进行计算,得到第一数值,所述第一数值与所述基线文件校验值的计算方式相同,所述计算方式相同为算法相同,或者为算法和计算顺序均相同;响应于所述第一数值与所述基线文件校验值相同,所述第一网络设备确认所述第一基线文件可信。3.根据权利要求1或2所述的方法,其特征在于,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的可信的度量日志校验值,所述度量日志校验值用于校验所述度量日志是否可信;所述第一网络设备对所述度量日志记录的度量值进行计算,得到第二数值,所述第二数值与所述度量日志校验值的计算方式相同,所述计算方式相同为算法相同,或者为算法和计算顺序均相同;响应于所述第二数值与所述度量日志校验值相同,所述第一网络设备确认所述度量日志可信。4.根据权利要求1-3任一所述的方法,其特征在于,所述第一基线文件和所述度量日志已通过所述第二网络设备的私钥加密,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备获取所述私钥对应的公钥,通过所述公钥对所述第一基线文件和所述度量日志进行解密。5.根据权利要求1-4任一所述的方法,其特征在于,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备确定所述度量日志记录的度量值对应的度量目标属于所述第一基线文件记录的基线值对应的度量目标的子集。6.根据权利要求1-5任一所述的方法,其特征在于,所述第一网络设备基于所述第一基
线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的存储的第一基线文件;所述第一网络设备确定所述存储的第一基线文件和所述第一基线文件相同。7.根据权利要求1-6任一所述的方法,其特征在于,所述第一网络设备获取第二网络设备生成的第一基线文件和度量日志,包括:所述第一网络设备向所述第二网络设备发送挑战请求,所述挑战请求用于请求所述第二网络设备发送所述第一基线文件和所述度量日志;所述第一网络设备接收所述第二网络设备发送的所述第一基线文件和所述度量日志。8.根据权利要求7所述的方法,其特征在于,所述挑战请求包括基准挑战值;所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的挑战值,确定所述挑战值与所述基准挑战值相同。9.根据权利要求7或8所述的方法,其特征在于,所述第一网络设备基于所述第一基线文件和所述度量日志对所述软件进行远程证明,得到所述软件对应的远程证明结果之前,所述方法还包括:所述第一网络设备确定发送时刻与接收时刻之间的时刻差值不大于时刻阈值,所述发送时刻为发送所述挑战请求的时刻,所述接收时刻为接收所述第一基线文件和所述度量日志的时刻。10.根据权利要求1-9任一所述的方法,其特征在于,所述软件为运行态软件,所述运行态软件的数据位于所述第二网络设备的内存包括的多个内存页中,所述第一基线文件由所述第二网络设备查询所述多个内存页得到所述数据、拼接所述数据得到所述运行态软件后生成,所述运行态软件为用户态软件和内核态软件中的至少一种。11.根据权利要求10所述的方法,其特征在于,所述运行态软件为所述内核态软件,所述方法还包括:所述第一网络设备获取所述第二网络设备的用户态软件对应的第二基线文件,所述第二基线文件在所述用户态软件的编译过程中生成;所述第一网络设备基于所述第二基线文件对所述用户态软件进行远程证明,得到所述用户态软件对应的远程证明结果。12.一种远程证明的方法,其特征在于,所述方法包括:第二网络设备生成所述第二网络设备的软件对应的第一基线文件,所述第一基线文件用于记录所述软件在可信情况下的基准值;所述第二网络设备生成所述软件对应的度量日志,所述度量日志用于记录所述软件的度量值;所述第二网络设备向第一网络设备发送所述第一基线文件和所述度量日志。13.根据权利要求12所述的方法,其特征在于,所述度量日志记录的度量值对应有度量目标,对于任一度量目标,所述任一度量目标在所述第一基线文件中对应的基准值与所述任一度量目标对应的度量值不同。
14.根据权利要求13所述的方法,其特征在于,所述第二网络设备生成所述软件对应的度量日志,包括:响应于确认所述第一基线文件可信,所述第二网络设备生成所述软件对应的度量日志。15.根据权利要求12-14任一所述的方法,其特征在于,所述方法还包括:所述第二网络设备对所述第一基线文件记录的基准值进行计算,得到基线文件校验值,所述基线文件校验值用于校验所述第一基线文件是否可信;所述第二网络设备向所述第一网络设备发送可信的基线文件校验值。16.根据权利要求12-15任一所述的方法,其特征在于,所述方法还包括:所述第二网络设备对所述度量日志记录的度量值进行计算,得到度量日志校验值,所述度量日志校验值用于校验所述度量日志是否可信;所述第二网络设备向所述第一网络设备发送可信的度量日志校验值。17.根据权利要求12-16任一所述的方法,其特征在于,所述第二网络设备向第一网络设备发送所述第一基线文件和所述度量日志,包括:所述第二网络设备向所述第一网络设备发送通过所述第二网络设备的私钥加密的第一基线文件和度量日志。18.根据权利要求12-17任一所述的方法,其特征在于,所述方法还包括:所述第二网络设备向所述第一网络设备发送存储的第一基线文件。19.根据权利要求12-18任一所述的方法,其特征在于,所述第二网络设备向第一网络设备发送所述第一基线文件和所述度量日志之前,所述方法还包括:所述第二网络设备接收所述第一网络设备发送的挑战请求,所述挑战请求用于请求所述第二网络设备发送所述第一基线文件和所述度量日志。20.根据权利要求19所述的方法,其特征在于,所述挑战请求包括基准挑战值,所述方法还包括:所述第二网络设备向所述第一网络设备发送挑战值,所述挑战值为所述基准挑战值。21.根据权利要求12-20任一所述的方法,其特征在于,所述软件为运行态软件,所述运行态软件为用户态软件和内核态软件中的至少一种,所述第二网络设备生成所述第二网络设备的软件对应的第一基线文件,包括:所述第二网络设备查询所述第二网络设备的内存包括的多个内存页,得到所述运行态软件的数据;所述第二网络设备拼接所述数据得到所述运行态软件,生成所述运行态软件对应的所述第一基线文件。22.一种远程证明的设备,其特征在于,所述设备包括网络接口、存储器及处理器;所述网络接口用于接收或发送数据,所述存储器中存储数据及至少一条指令,所述至少一条指令由所述处理器加载并执行,以使所述远程证明的设备实现权利要求1-21中任一所述的远程证明的方法。23.一种远程证明的系统,其特征在于,所述系统包括第一网络设备和至少一个第二网络设备,所述第一网络设备用于实现权利要求1-11中任一所述的远程证明的方法,所述至少一个第二网络设备中的任一第二网络设备用于实现权利要求12-21中任一所述的远程证
明的方法。

技术总结
本申请公开了远程证明的方法、设备及系统,属于信息处理技术领域。该方法包括:第一网络设备获取第二网络设备生成的第一基线文件和度量日志,第一基线文件用于记录第二网络设备的软件在可信情况下的基准值,度量日志用于记录该软件的度量值。第一网络设备在确认第一基线文件和度量日志可信的情况下,基于第一基线文件和度量日志对软件进行远程证明,得到软件对应的远程证明结果,软件对应的远程证明结果用于指示软件是否可信。由于本申请第一网络设备获取的第一基线文件和度量日志是由第二网络设备生成的,获取方式较为智能,因而使得本申请提供的远程证明的方法也较为智能,灵活性较高。性较高。性较高。


技术研发人员:范晓峰 范永强
受保护的技术使用者:华为技术有限公司
技术研发日:2022.01.19
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐