一种互联网数据验证方法及系统与流程

文档序号:18135299发布日期:2019-07-10 10:33阅读:407来源:国知局
一种互联网数据验证方法及系统与流程

本发明实施例涉及信息安全技术领域,尤其涉及一种互联网数据验证方法及系统。



背景技术:

目前大多数互联网服务已经把过去基于http协议的互联网内容转变为基于https协议的内容,使这些内容获得更好的机密性和完整性保护。但是,这种保护仅仅针对服务端和客户端两方,依然缺少一种高效、安全的方法,可以向第三方证明通信内容是没有被篡改的,且证明方法具有标准化、不可否认的特性。这种不可否认的特性将使得用户可以向第三方证明,在特定信源处获得的内容的确由该服务方提供,内容真实且在传输过程中未被篡改。

目前用户记录和共享互联网上所见内容的常用方法之一是截图,而截图容易被篡改和伪造,在现有技术中,tlsnotary提供的服务,允许第三方审核员证明服务器和客户端之间的安全传输层协议(tls)连接。如果客户端与第三方审核员遵循特定协议,则在启动与服务器的连接时,第三方审核员能够证明客户端提供了源自服务器的数据。tlsnotary通过利用tls1.0和tls1.1的特定属性,来修改客户端的tls握手协议。具体而言,客户端不能生成srvermackey,只有第三方审核员能够这样做,有效地防止客户端伪造看似源自服务器的数据。客户端提供数据哈希后,第三方审核员释放tlssevermackey。然后,客户端可以完成与服务端的会话过程。

在现有技术中,虽然tlsnotary提供了一种证明客户端与服务端安全可信传输数据的方案,但它同时存在一些限制和安全问题。虽然tlsnotary提供了一种证明客户端与服务端安全可信传输数据的方案,但它同时存在一些限制和安全问题。

首先,tlsnotary仅支持tls1.0与tls1.1版本,不支持基于tls1.2和1.3的传输协议,而tls1.1及以下版本被认为不如tls1.2及以上版本安全;其次,tlsnotary只能使用散列函数md5和sha-1,但出于安全考虑,这两种散列函数都不被推荐使用;此外tlsnotary仅支持rsa密钥交换,它不提供前向保密;最后tlsnotary在大多数用例中需要通过可信的第三方,提供数据审核服务。现有的tlsnotary实现中,并没有从技术手段保证审核服务的安全有效。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种互联网数据验证方法及系统。

第一方面,本发明实施例提供一种互联网数据验证方法,包括:

接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端;

tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据;

将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端;其中,所述tls客户端在飞地中运行。

其中,所述将所述服务端数据发送给认证服务器进行认证的步骤之前,还包括:根据所述服务端数据,生成飞地报告,将所述飞地报告在引述飞地中进行签名,生成引述。

其中,所述将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件的步骤,具体包括:将所述引述发送给认证服务器进行认证,接收所述认证服务器返回的认证报告;将所述认证报告写入证据文件中,生成由所述认证服务器认证后的证明文件。

其中,根据所述服务端数据,生成飞地报告的步骤,具体包括:计算所述网络服务器的请求和响应内容的哈希值,并调用intel服务,生成飞地报告。

其中,所述在所述预言机线程中创建tls客户端的步骤之前,还包括:获取召回列表;相应的,所述在所述预言机线程中创建tls客户端的步骤之后,还包括,将所述召回列表发送至所述tls客户端。

第二方面,本发明实施例提供一种互联网数据验证系统,包括:

预言机线程生成模块,用于接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端;

数据请求模块,用于tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据;

证据文件生成模块,用于将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端;其中,所述tls客户端在飞地中运行。

其中,所述系统还包括:引述生成模块,用于根据所述服务端数据,生成飞地报告,将所述飞地报告在引述飞地中进行签名,生成引述。

其中,所述证据文件生成模块具体用于:将所述引述发送给认证服务器进行认证,接收所述认证服务器返回的认证报告;将所述认证报告写入证据文件中,生成由所述认证服务器认证后的证明文件。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所提供的互联网数据验证方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所提供的互联网数据验证方法的步骤。

本发明实施例提供的互联网数据验证方法及系统,提供一个web服务。用户提交他们想要安全抓取的https协议的数据源的网址,该服务将安全可信的获取tls协议的数据,并且生成一个独立完备可验证的证据文件。应用intelsgx技术,将tls客户端运行在可信安全计算环境飞地中,可以保证没有人能够篡改tls客户端的代码和获取tls连接中的对称密钥,因此没有人能够篡改tls客户端从server获得的数据,实现了对证据文件的验证程序,可供任何第三方来验证证据文件的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的互联网数据验证方法的流程示意图;

图2为本发明一实施例提供的互联网数据验证系统的结构示意图;

图3为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考图1,图1为本发明一实施例提供的互联网数据验证方法的流程示意图,所提供的方法包括:

s1,接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端。

s2,tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据。

s3,将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端。

其中,所述tls客户端在飞地中运行。

具体的,本实施例中,结合intelsgx技术,提供了一套验证服务。当运行在安全计算环境中的客户端获得可信的数据后,可以通过验证服务确保代码的一致性,及代码执行过程的可靠性。

sgx全称intelsoftwareguardextensions,顾名思义,其是对因特尔体系(ia)的一个扩展,用于增强软件的安全性。这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个飞地(enclave)中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统或者和vmm(hypervisor)也无法影响enclave里面的代码和数据。enclave的安全边界只包含cpu和它自身。sgx创建的enclave也可以理解为一个可信执行环境tee(trustedexecutionenvironment)。

在本实施例中,当用户通过用户终端向预言机服务器发出一个数据获取请求时,服务器先解析出用户想要获得的数据源的统一资源定位符(url),然后服务器会生成一个独立的线程,即预言机线程,在新建立的预言机线程中创建一个tls客户端,这个tls客户端和tls连接都放在飞地中,由预言机线程控制tls客户端的生成、销毁、建立连接、读取数据等全生命周期操作。此外,由于处于飞地中的代码无法进行i/o(输出/输出)操作,因此本实施例中使用了ecall和ocall来和飞地中的tls客户端传递数据。

飞地中的tls客户端生成并保存着建立tls安全信道所需要的各种密钥。这些信息只能被飞地中的代码所使用,在飞地外的程序无法读取这些信息。因此,在飞地中获取的数据是安全可靠的,不可能被飞地外的任何中间人或代码篡改伪造。由于飞地中的代码无法进行i/o操作,因此我们使用ecall和ocall的方式,把飞地中的i/o读写部分转发给飞地外,由预言机线程帮助完成i/o操作。

tls客户端通过解析数据获取请求中的url,向url对应的网络服务器请求服务端数据,在获取了服务端数据后,预言机线程会对服务端数据进行认证。具体的认证过程包括,将服务端数据发送至认证服务器(intelattestationservice),并且通过intel远程验证服务得到intel的背书,然后生成一个由intel背书的证明文件,最后把证明文件返回给用户终端,以完成数据验证的全过程。

通过此方法,提供一个web服务。用户提交他们想要安全抓取的https协议的数据源的网址,该服务将安全可信的获取tls协议的数据,并且生成一个独立完备可验证的证据文件。应用intelsgx技术,将tls客户端运行在可信安全计算环境飞地中,可以保证没有人能够篡改tls客户端的代码和获取tls连接中的对称密钥,因此没有人能够篡改tls客户端从server获得的数据,实现了对证据文件的验证程序,可供任何第三方来验证证据文件的可靠性。

本实施例提供的互联网数据验证方法,可以应用于多个应用场景,如版权保护、供应链金融、保险理赔等领域。以版权保护为例,基于安全计算环境的预言机数据获取方法,有助于解决数据版权保护中的存证难题。原创作者在互联网上公布了自己创作的数字内容后,可能会有其他人或者组织,在未经许可的情况下盗版其内容。原创作者想要把这些侵权内容存证,以维护自己的合法权利,但缺少有效的存证技术方案。因为现有基于https的互联网传输协议,并不支持“不可否认的数据传输”,存证人无法向第三方证明,他在某个时刻看到某个网页上的内容,确实存在侵权(网站服务商可能会将内容替换,存证人自身也可能会说谎)。采用基于安全计算环境的预言机技术,就可以将取证时刻网站上显示的侵权内容,安全可信的保留下来,并在取证后将证据交由第三方进行审计,通过技术手段确认侵权存证的有效性。此外,基于安全计算环境的预言机技术,可以为区块链智能合约,从可靠信源处获取安全、可信、可审计的外部数据。这将允许将现实世界事件与区块链无缝连接,从而有助于智能合约开启新的应用场景。

在上述实施例的基础上,所述将所述服务端数据发送给认证服务器进行认证的步骤之前,还包括:根据所述服务端数据,生成飞地报告,将所述飞地报告在引述飞地中进行签名,生成引述。

所述将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件的步骤,具体包括:将所述引述发送给认证服务器进行认证,接收所述认证服务器返回的认证报告;将所述认证报告写入证据文件中,生成由所述认证服务器认证后的证明文件。

根据所述服务端数据,生成飞地报告的步骤,具体包括:计算所述网络服务器的请求和响应内容的哈希值,并调用intel服务,生成飞地报告。

具体的,当每个飞地中的tls客户端抓取到服务端数据后,会对服务端请求和响应内容计算哈希值,并调用intel服务生成一份飞地报告,预言机线程会把该飞地报告转发给引述飞地(quoteenclave),引述飞地会对该报告签名,生成一个引述;最后,预言机线程会把该引述发送给intel进行验证,并把intel返回的最终报告写入证据文件中。

在具体实施中,飞地中运行的预言机程序调用intelsgx安全计算平台的相关库函数,生成一份飞地报告(report);飞地外的服务器程序把飞地报告转交给intelsgx安全计算平台提供的本地的引述飞地,生成一份飞地引述(quote);服务器程序把飞地引述通过互联网https双向连接提交给intel远程验证服务;intel远程验证服务会验证用户的飞地引述是否有效,验证结果包括一下项目:生成该飞地quote的平台是否是intelsgx安全计算平台。该安全计算平台使用的密钥是否在召回列表中。该安全计算平台上运行的代码的hash值。该预言机线程所抓取的数据的hash值。有了这样一份intel的报告,任何一个第三方用户都可以验证并信任上述过程,因此可以相信预言机服务准确无误地抓取到了远程数据源上的数据。

通过此方法,用于对网络侵权内容,进行安全、可靠的存证;并通过技术手段,为第三方提供证据文件,验证整个取证过程的有效性。

在上述实施例的基础上,所述在所述预言机线程中创建tls客户端的步骤之前,还包括:获取召回列表;相应的,所述在所述预言机线程中创建tls客户端的步骤之后,还包括,将所述召回列表发送至所述tls客户端。

具体的,每个支持intelsgx技术的cpu芯片上都有两个硬件密钥rootkey和sealkey,通过物理不可复制单元(puf)技术制造。其中rootkey的对应公钥是intel所知晓的,私钥是刻在cpu芯片上无人能读取的。使用召回列表机制,intel可以更好的应对密钥泄漏或者软硬件缺陷。如果某一intelsgx平台被攻破或者由于使用不当发生密钥泄漏情况后,intel会把该平台的公钥加入召回列表。之后该平台上进行的计算就会被intel标记为不安全。

预言机服务要先获取到召回列表,然后调用intelsgxsdk相关库函数,把召回列表和抓取到的数据一起作为参数传入,生成一份飞地报告。intelsgxsdk相关函数会使用一些密码学技术,证明当前安全计算平台的rootkey对应的公钥不在召回列表中。这些密码学证据会包含在相应的飞地报告中。

综上所述,本发明实施例提供的互联网数据验证方法,将tls客户端运行在可信安全计算环境飞地中,可以保证没有人能够篡改tls客户端的代码和获取tls连接中的对称密钥,因此没有人能够篡改tls客户端从服务端获得的数据,当运行在飞地中的tls客户端获得可信的数据后,再通过远程验证服务,检验代码执行过程的可靠性。通过这个验证过程可以确保:所执行的代码(tls客户端)未被篡改;代码运行在正确部署的可信计算环境中,数据获取过程安全可靠。可以为智能合约提供提供安全可信的外部触发条件,也可以为区块链提供可信的外部数据,还可以为版权存证、数据确权等业务,提供技术实现,应用面广泛。

参考图2,图2为本发明一实施例提供的互联网数据验证系统的结构示意图,所提供的系统包括:预言机线程生成模块21,数据请求模块22和证据文件生成模块23。

其中,预言机线程生成模块21用于接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端。

数据请求模块22用于tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据。

证据文件生成模块23用于将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端。

其中,所述tls客户端在飞地中运行。

本发明实施例提供的互联网数据验证系统,具体执行上述各互联网数据验证方法实施例流程,具体请详见上述各互联网数据验证方法实施例的内容,在此不再赘述。

在上述实施例的基础上,所述系统还包括:引述生成模块,用于根据所述服务端数据,生成飞地报告,将所述飞地报告在引述飞地中进行签名,生成引述。

所述证据文件生成模块具体用于:将所述引述发送给认证服务器进行认证,接收所述认证服务器返回的认证报告;将所述认证报告写入证据文件中,生成由所述认证服务器认证后的证明文件。

具体的,预言机线程在飞地外先访问intel远程验证服务获取召回列表,并转交到飞地环境中。预言机线程在飞地中建立tls客户端,抓取远程数据;使用召回列表和抓取到的远程数据,飞地中运行的预言机程序调用intelsgx安全计算平台的相关库函数,生成一份飞地报告(report);飞地外的服务器程序把飞地报告转交给intelsgx安全计算平台提供的本地的引述飞地,生成一份飞地引述(quote);服务器程序把飞地引述通过互联网https双向连接提交给intel远程验证服务;intel远程验证服务会验证用户的飞地引述是否有效,验证结果包括一下项目:生成该飞地quote的平台是否是intelsgx安全计算平台。该安全计算平台使用的密钥是否在召回列表中。该安全计算平台上运行的代码的hash值。该预言机线程所抓取的数据的hash值。有了这样一份intel的报告,任何一个第三方用户都可以验证并信任上述过程,因此可以相信预言机服务准确无误地抓取到了远程数据源上的数据。

图3示例了一种电子设备的结构示意图,如图3所示,该服务器可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和总线340,其中,处理器310,通信接口320,存储器330通过总线340完成相互间的通信。通信接口340可以用于服务器与智能电视之间的信息传输。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端;tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据;将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端;其中,所述tls客户端在飞地中运行。

本实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端;tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据;将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端;其中,所述tls客户端在飞地中运行。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收用户终端发送的数据获取请求,生成预言机线程,在所述预言机线程中创建tls客户端;tls客户端根据所述数据获取请求中的统一资源定位符,向所述统一资源定位符对应的网络服务器请求服务端数据;将所述服务端数据发送给认证服务器进行认证,生成由所述认证服务器认证后的证明文件,并将证明文件发送给用户终端;其中,所述tls客户端在飞地中运行。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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