发明内容
本发明的实施例提供了一种第三方数字签名方法和数据传输系统,利用第三方设备对数据传输的安全进行控制,增强了系统的安全性;并且减少了数字证书的使用,降低了管理数字证书的开销,进而降低了系统的复杂度。
一种第三方数字签名方法,包括:
第一数据传输设备向可签名设备发送签名请求,所述签名请求携带待签名数据或待签名数据的信息摘要,请求所述可签名设备对所述待签名数据进行数字签名;
所述可签名设备对所述待签名数据或待签名数据的信息摘要进行数字签名,得到该待签名数据或待签名数据的信息摘要的数字签名信息,并向所述第一数据传输设备发送所述数字签名信息;
所述第一数据传输设备接收所述数字签名信息,并向第二数据传输设备发送所述数字签名信息和所述待签名数据。
进一步地,所述第三方数字签名方法还包括:
所述第一数据传输设备存储所述待签名数据的数字签名信息;
当再发送所述待签名数据时,所述第一数据传输设备直接向所述第二数据传输设备发送所述数字签名信息和所述待签名数据。
进一步地,所述第三方数字签名方法还包括:
所述第二数据传输设备向所述可签名设备发送请求,请求获取标准数字证书;
所述可签名设备接收所述请求,向所述第二数据传输设备发送标准数字证书;
所述第二数据传输设备接收所述标准数字证书。
进一步的,所述第一数据传输设备接收所述数字签名信息,并向第二数据传输设备发送所述数字签名信息和所述待签名数据的步骤之后,还包括:
所述第二数据传输设备接收所述第一数据传输设备发送的所述待签名数据和所述数字签名信息;
所述第二数据传输设备根据所述标准数字证书和所述数字签名信息,对所述待签名数据进行验证。
进一步地,所述数字签名信息为所述待签名数据的数字签名,根据所述标准数字证书和所述数字签名信息,对所述待签名数据进行验证具体为:
使用所述标准数字证书对所述数字签名进行验证,以确定所述待签名数据是否正确。
进一步地,所述数字签名信息包括所述待签名数据的数字签名和该数字签名对应的数字证书,根据所述标准数字证书和所述数字签名信息,对所述待签名数据进行验证包括:
使用所述数字证书对所述数字签名进行验证,以初步确定所述待签名数据是否正确;
在初步确定所述待签名数据正确时,比较所述标准数字证书与所述数字证书是否相同;
如果所述标准数字证书与所述数字证书相同,确认所述待签名数据正确;或,
如果所述标准数字证书与所述数字证书不同,则所述待签名数据错误。
本发明的实施例还提供了一种数据传输系统,包括第一数据传输设备,第二数据传输设备,和可签名设备;
所述第一数据传输设备,用于向所述可签名设备发送签名请求,所述签名请求携带待签名数据或待签名数据的信息摘要,请求所述可签名设备对所述待签名数据进行数字签名,接收所述可签名设备发送的所述待签名数据或待签名数据的信息摘要的数字签名信息,向第二数据传输设备发送所述数字签名信息和所述待签名数据;
第二数据传输设备,用于接收所述第一数据传输设备发送的待签名数据和该待签名数据对应的数字签名信息;
所述可签名设备,用于接收所述第一数据传输设备发送的待签名数据或待签名数据的信息摘要,并对所述待签名数据或待签名数据的信息摘要进行数字签名,得到该待签名数据的数字签名信息,并向所述第一数据传输设备发送所述数字签名信息。
进一步地,所述第二数据传输设备还用于向所述可签名设备发送请求,请求获取标准数字证书,并根据所述标准数字证书和所述数字签名信息,对所述待签名数据进行验证。
进一步地,所述第一数据传输设备还用于存储所述数字签名信息,当再发送所述待签名数据时,直接向所述第二数据传输设备发送所述数字签名信息和所述待签名数据。
进一步地,所述可签名设备还用于接收所述第二数据传输设备发送的指示向第二传输设备发送标准数字证书的请求,并向所述第二数据传输设备发送所述标准数字证书。
本发明实施例提供的第三方数字签名方法和数据传输系统,在需要进行安全的数据传输时,首先将待签名数据发送至可签名设备,由可签名设备完成对所述待签名数据的数字签名,并将数字签名信息反馈给数据发送方;在对接收到的待签名数据进行验证时,由可签名设备提供标准数字证书,作为接收方的第二数据传输设备根据所述标准数字证书对接收到的数据进行验证;数字签名由较可靠的第三方完成,并且不需要为数据发送方签发数字证书,在保证数据传输安全性的同时降低了数字证书管理的复杂度。
具体实施方式
为了保证数据传输的安全性和降低数字证书管理的复杂度,本发明的实施例一提供了一种第三方数字签名的方法,下面结合具体实施例,对该方法进行详细说明。
首先,结合附图,对本发明的实施例一进行说明。
本发明实施例中,第一数据传输设备与第二数据传输设备之间需要进行数据安全传输,可签名设备具有数字签名能力,能够对需要安全传输的数据进行数字签名。
当第一数据传输设备需要向第二数据传输设备发送数据,且需要保证数据传输的安全和数据完整性,如果第一数据传输设备没有数字证书,就不能对数据进行数字签名,故将需要传输的待签名数据发送给可签名设备,以使得可签名设备对该待签名数据进行数字签名。
此外,当第一数据传输设备和第二数据传输设备处于非安全场合时,非法设备可以攻击该非安全场合,利用网络中的合法设备并使用合法设备的数字证书发送非法数据,这时,即使第一数据传输设备拥有合法的数字证书,在第一数据传输设备向第二数据传输设备发送数据时,第二数据传输设备仍无法确认接收到的数据是否可靠。
为了保证上述情况下数据传输的安全性,本发明实施例提供了一种第三方数字签名方法,使用该方法在第一数据传输设备和第二数据传输设备之间完成数据安全传输的流程如图2所示,包括:
步骤201、第一数据传输设备向可签名设备发送待签名数据或待签名数据的信息摘要;
为了更好的说明本发明实施例提供的技术方案,现对数字签名的概念及数字签名过程进行简单说明:
数字签名是一个广泛应用的数字安全技术。它建立在非对称密钥算法和数字摘要的基础上。非对称密钥算法采用一对密钥进行加解密的操作,公钥加密,私钥解密,用于保密性要求;私钥加密,公钥解密,用于不可否认性要求。公钥存在于加密一方的数字证书中。
在进行数字签名时,首先对需要进行数字签名的待签名数据经过散列算法的处理,得到一个特征序列,该特征序列称为待签名数据的信息摘要;接着,用可签名设备的私钥对信息摘要进行加密,这样,就生成了该数据的数字签名。
本发明实施例中,以所述第一数据传输设备为OMC(Operations &Maintenance Center,操作维护中心),所述第二数据传输设备为NE(NetEquipment,网络设备),所述可签名设备为SeGW(Security Gateway,安全网关)为例进行说明。
当NE需要从OMC下载软件时,需要保证软件下载过程的安全性,故将NE请求下载的软件先发送到具有数字签名能力的第三方可签名设备,即SeGW,进行数字签名。
需要说明的是,一般情况下,SeGW的作用包括安全和内容过滤,其工作量是相当大的,这时,为了减少SeGW的工作压力,可以由OMC对软件进行散列算法处理得到信息摘要,再将信息摘要发送给SeGW以进行数字签名,具体实施时,可依实际网络情况选择签名流程,本发明实施例对此不作限定。
本领域技术人员显然知道,软件下载只是一种数据安全传输的情况,本发明实施例仅以此为例进行说明,任何需要通过数字签名实现数据安全传输的情况,皆在本发明的保护范围之内。
步骤202、可签名设备对所述待签名数据或待签名数据的信息摘要进行数字签名,得到数字签名信息;
本发明实施例中,OMC和网络设备NE共享同一散列算法。
本步骤中,如果步骤201中第一数据传输设备发送过来的是软件,则SeGW对步骤201中OMC发送的软件进行数字签名,首先用散列算法对软件进行处理,得到信息摘要,再对该信息摘要进行数字签名,得到数字签名信息,本发明实施例中,所述数字签名信息即为软件的数字签名。
如果步骤201中第一数据传输设备发送过来的是软件的信息摘要,则SeGW直接对该摘要进行数字签名。
需要说明的是,在可签名设备上可以有两种及两种以上的数字证书,可以根据待签名数据的需求选择使用相应的数字证书的私钥对所述待签名数据进行签名。
步骤203、可签名设备向第一数据传输设备发送所述数字签名信息;
本步骤中,所述数字签名信息具体为软件的数字签名,SeGW将步骤202中获取的数字签名发送给OMC。
可选的,本步骤中,SeGW还可以将软件或软件的信息摘要发送给OMC。
此外,第一数据传输设备在接收到待签名数据的数字签名后,可以将该数字签名存储起来,如果之后需要再发送同样的待签名数据,直接使用存储的数字签名即可,不需要再向可签名设备请求数字签名了。
步骤204、第一数据传输设备向第二数据传输设备发送所述数字签名信息和待签名数据;
本步骤中,OMC在软件下载时,将软件的数字签名和软件发送给NE。
可选的,OMC还可以将软件的信息摘要发送给NE。
步骤205、第二数据传输设备从可签名设备获取标准数字证书;
本步骤中,NE在接收到步骤204中SeGW发送的软件后,向为软件进行签名的SeGW请求获取数字证书,以对软件进行验证。由于本步骤请求获取的数字证书为直接从可签名设备获取,来源可靠,故以直接从可签名设备获取的证书为标准数字证书。
NE使用所述标准数字证书来确定软件来源安全及软件的完整,获取所述标准数字证书的流程需要进行一系列的协议交换,如图3所示,包括:
步骤2051、NE向SeGW发送IKE_SA_INT request(交换密钥安全关联初始化请求)消息;
所述IKE_SA_INT request用于请求在NE和SeGW建立一个交换密钥安全关联,用于后续数字证书的传输。
步骤2052、SeGW向NE回复IKE_SA_INT response(交换密钥安全关联初始化响应)消息;
所述IKE_SA_INT response用来响应步骤3051中NE发出的请求,表示同意建立交换密钥安全关联。
步骤2053、NE向SeGW发送IKE_SA_AUTH request(交换密钥安全关联授权请求);
所述IKE_SA_AUTH request用来请求SeGW向NE发送标准数字证书,在所述消息中可以携带接收的待签名数据的数据类型,SeGW会根据待签名数据的类型返回相应的证书。
步骤2054、SeGW向NE回复IKE_SA_AUTH response(交换密钥安全关联授权响应);
本步骤中,SeGW验证NE的身份,当NE为合法设备时,向NE发送IKE_SA_AUTH response消息,用来响应步骤2053中NE的请求,表示接受NE的请求,并在该消息中携带标准数字证书。
步骤2055、NE验证接收到的标准数字证书。
至此,NE获取标准数字证书的流程结束。
NE也可以直接向SeGW发送获取标准数字证书的请求,然后SeGW在返回的响应消息中携带所述标准数字证书。
步骤206、第二数据传输设备使用所述标准数字证书验证所述待签名数据是否正确;
为了更好的说明本发明实施例,现对使用标准数字证书验证数据的过程进行介绍。
本发明实施例中,在第二数据传输设备内置有TrE(Trust Enviorment,可信环境),在该环境内进行的操作对于外部网络来说是不可见的,这样,就进一步保证了操作的安全性,本发明实施例中对所述待签名数据进行验证的过程(包括软件的信息摘要的计算,软件的数字签名的验证)在所述TrE中进行,TrE存储所述数字签名。
首先,第二数据传输设备读入待签名数据与待签名数据的数字签名,根据标准数字证书中的公钥对数字签名进行解密,得到待签名数据的信息摘要,对所述待签名数据进行摘要,得到新的数据摘要,对比信息摘要和新的数据摘要是否一致,如果一致,则认为数据正确,如果不一致,刚认为待签名数据在传输过程中受到篡改。
本步骤中,NE通过散列算法处理所述软件,得到数据摘要,根据获取的标准数字证书中的公钥,对软件的数字签名进行处理,获取信息摘要;然后对比数据摘要与信息摘要是否相同,进而确定数据源是否安全,得到的软件是否是完整的。
如果步骤204中OMC将软件的信息摘要发送给NE,则本步骤中可以将步骤204中OMC发送的信息摘要与对软件进行处理获取的数据摘要进行对比,进而判断所述软件是否完整。
如果步骤206的判断结果为软件来源不安全,则会触发相应的处理流程,如重启设备。
本发明实施例中的步骤205与步骤201至步骤204并无严格的时间顺序,第二数据传输设备可以在接收数据之前就预先获取并存储可签名设备的任何数字证书,也可以在接收到第一数据传输设备发送的数据后,过一段时间再去获取标准数字证书。
需要说明的是,当第二传输设备需要以数据安全传输方式向第一传输设备发送数据时,其流程与上述第一传输设备向第二传输设备发送的流程无异,不再赘述。
本发明实施例中,为第一数据传输设备进行数字签名的可签名设备以及供第二数据传输设备获取标准数字证书的可签名设备可以在网络初始化时指定,在第一数据传输设备、第二数据传输设备和可签名设备之间建立关联关系。例如,系统根据第一数据传输设备或第二数据传输设备的地址分配对应的可签名设备,或人为将第一数据传输设备或第二数据传输设备指向可签名设备,本领域技术人员显然知道,能在第一数据传输设备或第二数据传输设备与可签名设备之间建立关联关系的方式不局限于上述举例,本发明实施例在此不再一一详述。
下面结合附图,对本发明的实施例二进行说明。
本发明实施例中,第一数据传输设备与第二数据传输设备之间需要进行数据安全传输,可签名设备具有数字签名能力,能够对需要安全传输的数据进行数据签名。本发明的提供了一种数据签名方法和数据验证方法,使用上述方法在第一数据传输设备和第二数据传输设备之间完成数据安全传输的流程如图4所示,其中,步骤401和步骤402与本发明实施例一中的步骤201和步骤202无异,在些不再说明。
步骤403、可签名设备向第一数据传输设备发送所述数字签名信息;
本步骤中,所述数字签名信息包括软件的数字签名及SeGW的数字证书。
可选的,本步骤中,SeGW还可以将软件或信息摘要发送给OMC。
此外,第一数据传输设备在接收到待签名数据的数字签名和数字证书后,可以将所述数字签名和数字证书存储起来,如果之后需要再发送同样的待签名数据,直接使用存储的数字签名和数字证书即可,不需要再向可签名设备请求数字签名了。
步骤404、第一数据传输设备向第二数据传输设备发送所述数字签名信息和所述待签名数据;
本步骤中,OMC在软件下载时,将软件的数字签名、SeGW的数字证书和软件发送给NE。
可选的,OMC还可以将软件的信息摘要发送给NE。
步骤405、第二数据传输设备根据所述数字证书初步验证所述待签名数据是否正确;
本步骤中,NE通过散列算法处理软件,得到数据摘要,根据接收到的SeGW的数字证书中的公钥,对软件的数字签名进行处理,获取信息摘要;然后对比数据摘要与信息摘要是否相同,进而确定接收到的软件是否是完整的。
如果步骤404中OMC将软件的信息摘要发送给NE,则本步骤中可以将步骤404中OMC发送的信息摘要与对软件进行处理获取的数据摘要进行对比,进而判断所述软件是否完整。
本发明实施例中,在第二数据传输设备内置有TrE,在该环境内进行的操作对于外部网络来说是不可见的,这样,就进一步保证了操作的安全性,本发明实施例中对所述待签名数据进行验证的过程(包括软件的信息摘要的计算,软件的数字签名的验证)在所述TrE中进行,TrE存储所述数字签名和数字证书。
步骤406、第二数据传输设备从可签名设备获取标准数字证书;
本步骤中,NE向SeGW请求获取标准数字证书,以对软件进行验证,确定软件来源安全,具体获取过程参见图3。
步骤407、第二数据传输设备根据所述标准数字证书确认接收到的所述待签名数据是否正确;
本步骤中,NE认为从SeGW获取的标准数字证书来源可靠,将从OMC获取的数字证书与从SeGW获取的标准数字证书进行对比,如果结果一致,则说明软件的来源是可靠的,最终确定所述待签名数据正确;如果结果不一致,则说明软件的来源有可能是非法的,这时,认为软件的来源是不安全的。
如果步骤407的判断结果为软件来源不安全,则会触发相应的处理流程,如重启设备。
本发明实施例中的步骤406与步骤401至步骤405并无严格的时间顺序,第二数据传输设备可以在接收数据之前就预先获取并存储可签名设备的任何数字证书。
如果当前网络较忙,则步骤406与步骤407也可以押后进行,即在验证完数据完整性后,并不立刻获取标准数字证书去验证第一数据传输设备的安全性,而是在网络较空闲时获取,减轻网络压力;还可以设置的一个获取标准数字证书的周期,即一次性的获取一个周期内接收的全部数据对应的标准数字证书,这样,对于多个同类的数据,获取标准数字的操作只需要进行一次,进一步减轻了设备压力,提高了工作效率。
需要说明的是,当第二传输设备需要以数据安全传输方向向第一传输设备发送数据时,其流程与上述第一传输设备向第二传输设备发送的流程无异,不再赘述。
本发明实施例中,为第一数据传输设备进行数字签名的可签名设备以及供第二数据传输设备获取标准数字证书的可签名设备可以在网络初始化时指定,在第一数据传输设备、第二数据传输设备和可签名设备之间建立关联关系。例如,系统根据第一数据传输设备或第二数据传输设备的地址分配对应的可签名设备,或人为将第一数据传输设备或第二数据传输设备指向可签名设备,本领域技术人员显然知道,能在第一数据传输设备或第二数据传输设备与可签名设备之间建立关联关系的方式不局限于上述举例,本发明实施例在此不再一一详述。
本发明的实施例提供的第三方数字签名方法,在第一数据传输设备向第二数据传输设备发送待签名数据时,由作为第三方的可签名设备对待签名数据进行签名,并将得到的数字签名信息反馈给第一数据传输设备,再由第一数据传输设备发送给第二数据传输设备;第二设备传输设备在接收到数据及其对应的数字签名信息后,向可签名数据传输设备索要标准数字证书,验证接收到的数据的正确性。在这一数据传输过程中,由安全场合内的可签名设备对所述待签名数据进行数字签名,并且不需要为数据发送方签发数字证书,在保证了数据传输安全性的同时,减少了数字证书管理的复杂性。
本发明的实施例还提供了一种数据传输系统,该系统结构如图5所示,包括:第一数据传输设备501,第二数据传输设备502和可签名设备503。
其中,所述第一数据传输设备501,用于向所述可签名设备503发送待签名数据,以使得所述可签名设备503对所述待签名数据进行数字签名,接收所述可签名设备503发送的所述待签名数据的数字签名信息,向第二数据传输设备502发送所述数字签名信息和所述待签名数据。
所述第二数据传输设备502,用于接收所述第一数据传输设备501发送的待签名数据和该待签名数据对应的数字签名信息;
所述可签名设备503,用于接收所述第一数据传输设备501发送的待签名数据,并对所述待签名数据进行数字签名,得到该待签名数据的数字签名信息,并向所述第一数据传输设备501发送所述数字签名信息。
进一步地,所述第二数据传输设备502,还用于向所述可签名设备503发送请求,以获取标准数字证书,并根据所述标准数字证书和所述数字签名信息,对所述待签名数据进行验证。
进一步地,所述第一数据传输设备501还用于存储所述数字签名信息,当再发送所述待签名数据时,直接向所述第二数据传输设备502发送所述数字签名信息和所述待签名数据。
进一步地,所述可签名设备503还用于接收所述第二数据传输设备502发送的指示向第二传输设备502发送标准数字证书的请求,并向所述第二数据传输设备502发送所述标准数字证书。
本发明实施例提供的数据传输系统,可以与本发明的实施例提供的一种第三方数字签名方法相结合,在需要进行安全的数据传输时,数字签名由处于安全场合的第三方可签名设备完成,保证了数据传输的安全性,并且不需要为数据发送方签发数字证书,降低了数字证书管理的复杂度。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。