一种进行点对点数据安全传输的方法和系统的制作方法

文档序号:7979550阅读:237来源:国知局
一种进行点对点数据安全传输的方法和系统的制作方法
【专利摘要】本发明提供一种进行点对点数据安全传输的方法及系统,在近场通信NFC的应用层设置安全层作为应用层的子层,负责在对等通信的节点间建立安全连接,并进行加密数据传输和正确性验证,包括:发起终端在与目标终端建立安全连接后,生成一个随机密钥;发起终端的安全层从公钥服务器获取目标终端应用程序的公钥;发起终端的安全层使用目标终端应用程序的公钥加密随机密钥,得到密文;发起终端的安全层将所述密文发送至目标终端的安全层;目标终端的安全层用应用程序的私钥解密密文,得到随机密钥;目标终端的安全层向发起终端的安全层发送收到密钥确认消息;发起终端的安全层在确认目标终端的安全层已收到密钥后,向发起终端发送开始连接确认消息。本发明能够提供更安全的NFC点对点通信方法,能够解决现有网络的安全隐患。
【专利说明】一种进行点对点数据安全传输的方法和系统
【技术领域】
[0001]本发明涉及近场通信(Near Field Communication,NFC)【技术领域】,特别涉及一种在NFC设备中进行点对点数据安全传输的方法和系统。
【背景技术】
[0002]目前 NFC 技术由非接触式射频识别(Radio Frequency Identification, RFID)技术和点对点通信技术融合演变而来,在0到20cm距离内工作于13.56MHz频率范围,以106kbit/s、212kbit/s、424kbit/s的传输速率进行数据传输,并可以在不同的传输速率之间自动切换。NFC 技术符合 IS018092、IS021481、ECMA (340,352 和 356)及 ETSITS102 标准,同时也兼容以IS014441A为基础的感应式智能卡基础架构。
[0003]NFC定义了三种使用模式:卡模式(Card Emulation Mode)、点对点通信模式(Peer-to-Peer Communication)、读 / 写卡器模式(Reader/Write Mode)。其中点对点通信模式用于实现NFC终端之间的数据交换,将多个具备NFC功能的设备链接起来,通过链路层通信协议NFC-1P实现数据点对点传输,如共享下载音乐、交换图片或者同步地址薄。因此通过NFC的点对点通信模式,多个设备如计算机、掌上电脑(Personal Digital Assistant,PDA)、数字相机、手机之间都可以进行无线传输,交换数据。NFC点对点通信的协议结构如图1所示。
[0004]由于NFC的点对点通信模式是通过无线方式在NFC设备之间进行通信,存在着被监听、欺骗等网络安全隐患,因此需要对NFC点对点通信提供一种安全数据传输方法,希望这种安全数据传输方法能够使攻击者无法通过监听的方法获得数据传输内容,此外,还希望这种安全数据传输方法能够使攻击者无法对数据传输过程进行欺骗,以及在通信信道受干扰或出错的情况下,在开销尽可能少的情况下恢复出错数据。

【发明内容】

[0005]为了解决上述问题,本发明提供一种在NFC设备中进行点对点数据安全传输的方法和系统,能够提供更安全的NFC点对点通信方法,基本解决了上述的网络安全隐患。
[0006]本发明的进行点对点数据安全传输的方法,在近场通信NFC的应用层设置安全层作为应用层的子层,负责在对等通信的节点间建立安全连接,并进行加密数据传输和正确性验证,包括:
[0007]发起终端在与目标终端建立安全连接后,生成一个随机密钥RandomKey ;
[0008]发起终端的安全层312从公钥服务器获取目标终端应用程序314的公钥Public_Key_314 ;其中,发起终端的安全层312根据目标终端的应用程序314的标识符Application_ID_314,从公钥服务器获取目标终端应用程序314的公钥Public_Key_314 ;
[0009]发起终端的安全层312使用目标终端应用程序的公钥PubliC_Key_314加密随机密钥RandomKey,得到密文CText ;
[0010]发起终端的安全层312将所述密文CText发送至目标终端的安全层;[0011]目标终端的安全层313用应用程序314的私钥Private_Key_314解密密文CText,得到随机密钥RandomKey ;
[0012]目标终端的安全层313向发起终端的安全层312发送“收到密钥确认”消息;
[0013]发起终端的安全层312在确认目标终端的安全层313已收到密钥后,向发起终端上运行的应用程序311发送“开始连接确认”消息。
[0014]其中,在进行应用层安全数据传输之前,参与数据传输的发起终端和目标终端先要将各自的公钥注册到公钥服务器上。
[0015]其中,发起终端与目标终端建立安全连接包括下列步骤:
[0016]发起终端的安全层312将“建立安全连接请求”消息发送至目标终端的安全层313,该消息中包含发起终端的应用程序311的标识符Application_ID_311与Set_App_Sec,其中Set_App_Sec表示发起终端301请求建立应用层安全数据连接响应;
[0017]目标终端的安全层313将“开始连接请求”消息发送到目标终端的应用程序314,该消息中包含发起终端的应用程序311的标识符Application_ID_311 ;
[0018]目标终端的应用程序314将“开始连接确认”消息发送到目标终端的安全层313,该消息中包含应用程序314的标识符Application_ID_314 ;
[0019]目标终端的安全层313将“建立安全连接确认”消息发送至发起终端的安全层312,该消息中包含应用程序 314 的标识符 Application_ID_314 与 Set_App_Sec_Response,其中Set_App_Sec_Response表示目标终端确认建立应用层安全数据连接响应。
[0020]进一步地,发起终端的安全层312将“建立安全连接请求”消息发送至目标终端的安全层313之前,进一步包括:发起终端上运行的应用程序311向发起终端上的安全层312发送开始连接请求消息;其中,该消息中包含发起终端应用程序311的标识符Application_ID_3II。
[0021]进一步地,在发起终端与目标终端建立安全连接后,进行数据安全传输时,包括下列步骤:
[0022]发起终端上运行的应用程序将欲发送的文件数据发送到发起终端的安全层;
[0023]发起终端的安全层将文件数据F分为若干个文件块Bi,每个文件块的大小相等,随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证;
[0024]发起终端的安全层使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C(BilHi);
[0025]发起终端的安全层将密文C(Bi, Hi)发送到目标终端的安全层;
[0026]目标终端的安全层用随机密钥RandomKey对密文C(Bi, Hi)解密,获得文件块Bi和散列值Hi ;
[0027]目标终端的安全层使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块Bi传输正确,否则说明数据传输过程中出现错误;若无数据传输错误,目标终端的安全层在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端上运行的应用程序,至此完成发起终端与目标终端之间的安全数据传输。
[0028]进一步地,在出现数据传输错误时,需要进行数据错误处理,具体包括:
[0029]若目标终端的安全层获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块&;
[0030]目标终端的安全层向发起终端的安全层发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号BlockIndex ;
[0031]发起终端的安全层根据BlockIndex的内容,将密文C (BB1()C;kIndex,HBlockIndex)重新发送至目标终端的安全层。
[0032]本发明的在NFC设备中进行点对点数据安全传输的系统,包括发起终端、目标终端和公钥服务器,其中,发起终端,用于在与目标终端建立安全连接后,生成一个随机密钥RandomKey ;发起终端的安全层312从公钥服务器获取目标终端应用程序314的公钥Pub I i c_Key_314,并使用所述公钥Pub I i c_Key_314加密随机密钥RandomKey,得到密文CText ;由发起终端的安全层312将所述密文CText发送至目标终端的安全层;以及用于在确认目标终端的安全层313已收到密钥后,向发起终端上运行的应用程序311发送“开始连接确认”消息;其中,发起终端的安全层312根据目标终端的应用程序314的标识符Application_ID_314,从公钥服务器获取目标终端应用程序314的公钥Public_Key_314 ;目标终端,用于通过目标终端的安全层313用目标终端应用程序314的私钥Private_Key_314解密密文 CText,得到随机密钥RandomKey ;并向发起终端的安全层312发送“收到密钥确认”消息。
[0033]其中,所述发起终端,进一步用于通过其安全层312将“建立安全连接请求”消息发送至目标终端的安全层313,该消息中包含发起终端的应用程序311的标识符Application_ID_311与Set_App_Sec,其中Set_App_Sec表示发起终端301请求建立应用层安全数据连接响应;
[0034]所述目标终端,进一步用于通过其安全层313将“开始连接请求”消息发送到目标终端的应用程序314,该消息中包含发起终端的应用程序311的标识符ApplicationID_311 ;以及,通过其应用程序314将“开始连接确认”消息发送到其安全层313,该消息中包含应用程序314的标识符AppliCation_ID_314 ;以及,通过其安全层313将“建立安全连接确认”消息发送至发起终端的安全层312,该消息中包含应用程序314的标识符Application_ID_314 与 Set_App_Sec_Response,其中 Set_App_Sec_Response 表不目标终端确认建立应用层安全数据连接响应。
[0035]进一步地,在发起终端与目标终端建立安全连接后,进行数据安全传输时,所述发起终端,进一步用于通过发起终端上运行的应用程序将欲发送的文件数据发送到发起终端的安全层;并通过发起终端的安全层将文件数据F分为若干个文件块Bi,每个文件块的大小相等,随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证;发起终端的安全层使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C^Bi, Hi),并将密文C(BpHi)发送到目标终端的安全层;所述目标终端,进一步用于通过目标终端的安全层用随机密钥RandomKey对密文C (Bi, Hi)解密,获得文件块Bi和散列值Hi ;目标终端的安全层使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块Bi传输正确,否则说明数据传输过程中出现错误;若无数据传输错误,目标终端的安全层在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端上运行的应用程序,至此完成发起终端与目标终端之间的安全数据传输。
[0036]此外,在出现数据传输错误时,需要进行数据错误处理时,所述目标终端,进一步用于在目标终端的安全层获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块Bi,并向发起终端的安全层发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号BlockIndex ;所述发起终端,进一步用于发起终端的安全层根据BlockIndex的内容,将
常文 C (BBlockIndex,
BlockIndex )重新发送至目标终端的安全层。
[0037]本发明的有益效果是:依照本发明的在NFC设备中进行点对点数据安全传输的方法和系统,通过在发起终端和目标终端之间交换安全请求和安全响应来开始应用层安全数据传输,在发起终端和目标终端的应用层对传输的数据和校验信息加密,能够提供更安全的NFC点对点通信方法,基本解决了现有网络的安全隐患;此外,通过将数据分割成数据块进行传输,并对数据块进行正确性校验,当传输出现错误时,以数据块为单位进行错误数据恢复,进一步提高了传输的准确性;并通过在发起终端和目标终端之间交换终止安全请求和终止安全响应来灵活地结束应用层安全数据传输。
【专利附图】

【附图说明】
[0038]图1为现有标准的NFC点对点通信协议结构;
[0039]图2为本发明实施例的NFC点对点通信协议结构;
[0040]图3为本发明实施例的用于NFC对等通信应用层建立安全连接的信号流程图;
[0041]图4为本发明实施例的用于NFC对等通信应用层进行安全数据传输的信号流程图;
[0042]图5为本发明实施例的在数据传输发生错误后进行数据错误处理的信号流程图;
[0043]图6为本发明实施例的在数据传输结束后解除安全连接的信号流程图。
【具体实施方式】
[0044]以下,参考附图2飞详细描述本发明的在NFC设备中进行点对点数据安全传输的方法和系统。
[0045]图2为根据本发明实施例的NFC点对点通信协议结构。如图2所示,RF层200是符合国际标准化组织(ISO) /国际电工委员会(IEC) 18092和14443A、B类标准以及非接触式智能卡技术(Felica)协议堆栈规范的最低层。RF层200与IS0/0SI参考模型的物理层相对应,负责进行数据的调制/解调和无线传输。NFC链路层210的协议被称为NFC-1P协议层,负责编码、设定传输速率、定义RF层接口的帧格式、初始化方案以及进行初始化所必须的数据冲突控制。此外,NFC-1P协议还定义了传输层协议,包括协议激活和数据交换方法。应用层220负责为一般的程序提供服务以保证通信。安全层230是应用层220的子层,负责在对等通信的节点间建立安全连接,并进行加密数据传输和正确性验证。
[0046]方法实施例
[0047]图3描述了安全层230建立安全连接的过程。如图3所示,本发明中节点间建立安全连接的过程涉及3个实体,分别是对等通信的发起终端301、对等通信的目标终端302,以及公钥服务器303。其中,发起终端301发起NFC对等通信,目标终端302是对等通信的接收方,公钥服务器303是由应用程序发布者提供的可信的服务器,用于存放使用该应用程序的用户公钥信息。应用程序311与安全层312位于发起终端301的应用层,安全层313与应用程序314位于目标终端302的应用层。[0048]步骤320,在某一个特定应用程序进行应用层安全数据传输之前,参与数据传输的发起终端301需要首先将自己的公钥注册到公钥服务器303上。注册过程由发起终端301的应用程序311来完成。公钥的注册可以是一次性的,即在终端第一次进行应用层安全数据传输时注册公钥,之后一直使用该公钥;也可以是周期性注册不同的公钥,以提高公钥的安全性。公钥服务器303由可信的第三方来提供,一般是应用程序的发布者。
[0049]步骤321,目标终端302也需要将自己的公钥注册到公钥服务器303上,注册过程由目标终端302的应用程序314来完成,注册过程与步骤320相同,本步骤不在详述。
[0050]步骤322,发起终端301上运行的应用程序311向安全层312发送“开始连接请求”消息,消息中包含应用程序311的标识符Application_ID_311。
[0051]步骤323,发起终端301上的安全层312将“建立安全连接请求”消息发送至目标终端 302 的安全层 313,消息中包含 Application_ID_311 与 Set_App_Sec,其中,Set_App_Sec表示发起终端301请求建立应用层安全数据连接响应。
[0052]步骤324,目标终端302的安全层313将“开始连接请求”消息发送到目标终端302的应用程序314,消息中包含Application_ID_311。
[0053]步骤325,目标终端302的应用程序314将“开始连接确认”消息发送到目标终端302的安全层313,消息中包含应用程序314的标识符AppliCation_ID_314。
[0054]步骤326,目标终端302的安全层313将“建立安全连接确认”消息发送至发起终端 301 上的安全层 312,消息中包含 Application_ID_314 与 Set_App_Sec_Response,其中Set_App_Sec_Response表示目标终端确认建立应用层安全数据连接。
[0055]步骤327,发起终端301的安全层312在收到“建立安全连接确认”消息后,生成一个随机密钥RandomKey。密钥长度取决于后续的加密过程中使用的对称加密算法。
[0056]步骤328,发起终端301的安全层312根据Application_ID_314,从公钥服务器303获取应用程序314的公钥Public_Key_314。
[0057]步骤329,发起终端301的安全层312使用Public_Key_314加密RandomKey,得到密文CText。
[0058]步骤330,发起终端301上的安全层312将CText发送至目标终端302的安全层313。
[0059]步骤331,目标终端302的安全层313用应用程序314的私钥Private_Key_314解密密文CText,得到随机密钥RandomKey。
[0060]步骤332,目标终端302的安全层313向发起终端301的安全层312发送“收到密钥确认”消息。
[0061]步骤333,发起终端301的安全层312在确认目标终端302的安全层313已收到密钥后,向发起终端301上运行的应用程序311发送“开始连接确认”消息,消息中包含Application_ID_314。至此,发起终端301与目标终端302之间的安全连接已建立起来,可以开始数据传输。
[0062]图4描述了发起终端401与目标终端402进行加密数据传输和正确性验证的过程。
[0063]步骤421,发起终端401上运行的应用程序411将欲发送的文件数据发送到发起终端401的安全层412。[0064]步骤422,发起终端401的安全层412将文件数据F分为若干个文件块Bi,每个文件块的大小相等,默认为64KB (位于文件数据末尾的文件块大小可能小于64KB),也可以根据文件大小的情况进行更改。随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证。单向散列算法可根据需要选择信息-摘要算法5(Message_Digest Algorithm
5,MD5)、译作安全散列算法(Secure Hash Algorithm, SHA)等。
[0065]步骤423,发起终端401的安全层412使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C(BpHi)。
[0066]步骤424,发起终端401的安全层412将密文C (Bi, Hi)发送到目标终端402的安全层413。
[0067]步骤425,目标终端402的安全层413用随机密钥RandomKey对密文C (Bi, Hi)解密,获得文件块Bi和散列值氏。
[0068]步骤426,目标终端402的安全层413使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块Bi传输正确,否则说明数据传输过程中出现错误。
[0069]步骤427,若在步骤426出现数据传输错误,则进行数据错误处理,具体步骤参见图5。
[0070]步骤428,若在步骤426无数据传输错误,目标终端402的安全层413在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端402上运行的应用程序414。至此,发起终端401与目标终端402之间的安全数据传输完成。
[0071]图5描述了数据传输发生错误后,进行数据错误处理的过程。
[0072]步骤521,若目标终端502的安全层512获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块B”
[0073]步骤522,目标终端502的安全层512向发起终端501的安全层511发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号Blocklndex。
[0074]步骤523,发起终端501的安全层511根据Blocklndex的内容,将密文C (Belocklndex,Helocklndex)重新发送至目标终端502的安全层512。
[0075]图6描述了数据传输结束后,解除安全连接的过程。
[0076]步骤621,发起终端601的安全层612向目标终端602的安全层613发送“终止安全连接请求”消息,消息中包含应用程序611的标识符Application_ID_611。
[0077]步骤622,目标终端602的安全层613向发起终端601的安全层612发送“终止安全连接确认”消息,消息中包含应用程序614的标识符Application_ID_611。至此,断开安全连接的请求得到确认,应用层安全连接断开。
[0078]系统实施例:
[0079]本发明的在NFC设备中进行点对点数据安全传输的系统,包括发起终端、目标终端和公钥服务器,其中,发起终端,用于在与目标终端建立安全连接后,生成一个随机密钥RandomKey ;发起终端的安全层312从公钥服务器获取目标终端应用程序314的公钥Pub I i c_Key_314,并使用所述公钥Pub I i c_Key_314加密随机密钥RandomKey,得到密文CText ;由发起终端的安全层312将所述密文CText发送至目标终端的安全层;以及用于在确认目标终端的安全层313已收到密钥后,向发起终端上运行的应用程序311发送“开始连接确认”消息;其中,发起终端的安全层312根据目标终端的应用程序314的标识符Application_ID_314,从公钥服务器获取目标终端应用程序314的公钥Public_Key_314 ;
[0080]目标终端,用于通过目标终端的安全层313用目标终端应用程序314的私钥Private_Key_314解密密文CText,得到随机密钥RandomKey ;并向发起终端的安全层312发送“收到密钥确认”消息。
[0081 ] 此外,发起终端,进一步用于通过其安全层312将“建立安全连接请求”消息发送至目标终端的安全层313,该消息中包含发起终端的应用程序311的标识符ApplicationID_311与Set_App_Sec,其中Set_App_Sec表示发起终端301请求建立应用层安全数据连接响应;
[0082]所述目标终端,进一步用于通过其安全层313将“开始连接请求”消息发送到目标终端的应用程序314,该消息中包含发起终端的应用程序311的标识符ApplicationID_311 ;以及,通过其应用程序314将“开始连接确认”消息发送到其安全层313,该消息中包含应用程序314的标识符AppliCation_ID_314 ;以及,通过其安全层313将“建立安全连接确认”消息发送至发起终端的安全层312,该消息中包含应用程序314的标识符Application_ID_314 与 Set_App_Sec_Response,其中 Set_App_Sec_Response 表不目标终端确认建立应用层安全数据连接响应。
[0083]另外,在发起终端与目标终端建立安全连接后,进行数据安全传输时,发起终端,进一步用于通过发起终端上运行的应用程序将欲发送的文件数据发送到发起终端的安全层;并通过发起终端的安全层将文件数据F分为若干个文件块Bi,每个文件块的大小相等,随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证;发起终端的安全层使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C (Bi, Hi),并将密文C(BilHi)发送到目标终端的安全层。目标终端,进一步用于通过目标终端的安全层用随机密钥RandomKey对密文C (Bi, Hi)解密,获得文件块Bi和散列值Hi ;目标终端的安全层使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块&传输正确,否则说明数据传输过程中出现错误;若无数据传输错误,目标终端的安全层在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端上运行的应用程序,至此完成发起终端与目标终端之间的安全数据传输。
[0084]在出现数据传输错误时,需要进行数据错误处理时,目标终端,进一步用于在目标终端的安全层获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块Bi,并向发起终端的安全层发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号Blocklndex ;发起终端,进一步用于发起终端的安全层根据Blocklndex的内容,将密文
^ ^BlockIndex? ^Blocklndex )重新发送至目标终端的安全层。
[0085]综上所述,依照本发明的在NFC设备中进行点对点数据安全传输的方法和系统,通过在发起终端和目标终端之间交换安全请求和安全响应来开始应用层安全数据传输,在发起终端和目标终端的应用层对传输的数据和校验信息加密,能够提供更安全的NFC点对点通信方法,基本解决了现有网络的安全隐患;此外,通过将数据分割成数据块进行传输,并对数据块进行正确性校验,当传输出现错误时,以数据块为单位进行错误数据恢复,进一步提高了传输的准确性;并通过在发起终端和目标终端之间交换终止安全请求和终止安全响应来灵活地结束应用层安全数据传输。[0086]以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。
【权利要求】
1.一种进行点对点数据安全传输的方法,其特征在于,在近场通信NFC的应用层设置安全层作为应用层的子层,负责在对等通信的节点间建立安全连接,并进行加密数据传输和正确性验证;所述方法包括: 发起终端在与目标终端建立安全连接后,生成一个随机密钥RandomKey ;发起终端的安全层(312)从公钥服务器获取目标终端应用程序(314)的公钥Public_Key_314;其中,发起终端的安全层(312)根据目标终端的应用程序(314)的标识符Application_ID_314,从公钥服务器获取目标终端应用程序314的公钥Public_Key_314 ;发起终端的安全层(312)使用目标终端的应用程序(314)的公钥Public_Key_314加密随机密钥RandomKey,得到密文CText ; 发起终端的安全层(312)将所述密文CText发送至目标终端的安全层(313); 目标终端的安全层(313)用应用程序(314)的私钥Private_Key_314解密密文CText,得到随机密钥RandomKey ; 目标终端的安全层(313)向发起终端的安全层(312)发送“收到密钥确认”消息; 发起终端的安全层(312)在确认目标终端的安全层(313)已收到密钥后,向发起终端上运行的应用程序(311)发送“开始连接确认”消息;发起终端与目标终端进行数据传输。
2.如权利要求1所述的进行点对点数据安全传输的方法,其特征在于,在进行应用层安全数据传输之前,参与数据传输的发起终端和目标终端先要将各自的公钥注册到公钥服务器上。
3.如权利要求2所述的进行点对点数据安全传输的方法,其特征在于,发起终端与目标终端建立安全连接包括下列步骤:` 发起终端的安全层(312)将“建立安全连接请求”消息发送至目标终端的安全层(313),该消息中包含发起终端的应用程序(311)的标识符Application_ID_311与Set_App_Sec,其中Set_App_Sec表示发起终端请求建立应用层安全数据连接响应; 目标终端的安全层(313)将“开始连接请求”消息发送到目标终端的应用程序(314),该消息中包含发起终端的应用程序(311)的标识符Application_ID_311 ; 目标终端的应用程序(314)将“开始连接确认”消息发送到目标终端的安全层(313),该消息中包含应用程序(314)的标识符Application_ID_314 ; 目标终端的安全层(313)将“建立安全连接确认”消息发送至发起终端的安全层(312),该消息中包含应用程序(314)的标识符Application_ID_314与Set_App_Sec_Response,其中Set_App_Sec_Response表示目标终端确认建立应用层安全数据连接响应。
4.如权利要求3所述的进行点对点数据安全传输的方法,其特征在于, 发起终端的安全层(312)将“建立安全连接请求”消息发送至目标终端的安全层(313)之前,进一步包括:发起终端上运行的应用程序(311)向发起终端上的安全层(312)发送开始连接请求消息;其中,该消息中包含发起终端应用程序(311)的标识符Appl ication_ID_311。
5.如权利要求1至4中任一项所述的进行点对点数据安全传输的方法,其特征在于,在发起终端与目标终端建立安全连接后,进行数据安全传输时,包括下列步骤: 发起终端上运行的应用程序将欲发送的文件数据发送到发起终端的安全层; 发起终端的安全层将文件数据F分为若干个文件块Bi,每个文件块的大小相等,随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证; 发起终端的安全层使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C(BilHi); 发起终端的安全层将密文C(Bi, Hi)发送到目标终端的安全层; 目标终端的安全层用随机密钥RandomKey对密文C (Bi, Hi)解密,获得文件块Bi和散列it Hi ; 目标终端的安全层使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块Bi传输正确,否则说明数据传输过程中出现错误;若无数据传输错误,目标终端的安全层在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端上运行的应用程序,至此完成发起终端与目标终端之间的安全数据传输。
6.如权利要求5所述的进行点对点数据安全传输的方法,其特征在于, 在出现数据传输错误时,需要进行数据错误处理,具体包括: 若目标终端的安全层获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块Bi; 目标终端的安全层向发起终端的安全层发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号BlockI ndex ; 发起终端的安全层根据BlockIndex的内容,将密文C(BB1(K:kInde;x, HBlockIndex)重新发送至目标终端的安全层。
7.一种实现权利要求1所述方法的系统,其特征在于,包括发起终端、目标终端和公钥服务器,其中, 发起终端,用于在与目标终端建立安全连接后,生成一个随机密钥RandomKey ;发起终端的安全层(312)从公钥服务器获取目标终端应用程序(314)的公钥PubliC_Key_314,并使用所述公钥Public_Key_314加密随机密钥RandomKey,得到密文CText ;由发起终端的安全层(312)将所述密文CText发送至目标终端的安全层;以及用于在确认目标终端的安全层(313)已收到密钥后,向发起终端上运行的应用程序(311)发送“开始连接确认”消息;其中,发起终端的安全层(312)根据目标终端的应用程序(314)的标识符ApplicationID_314,从公钥服务器获取目标终端应用程序(314)的公钥Public_Key_314 ; 目标终端,用于通过目标终端的安全层(313)用目标终端应用程序(314)的私钥Private_Key_314解密密文CText,得到随机密钥RandomKey ;并向发起终端的安全层(312)发送“收到密钥确认”消息。
8.如权利要求7所述的系统,其特征在于,所述发起终端,进一步用于通过其安全层(312)将“建立安全连接请求”消息发送至目标终端的安全层(313),该消息中包含发起终端的应用程序(311)的标识符 Application_ID_311 与 Set_App_Sec,其中 Set_App_Sec 表示发起终端(301)请求建立应用层安全数据连接响应; 所述目标终端,进一步用于通过其安全层(313)将“开始连接请求”消息发送到目标终端的应用程序(314),该消息中包含发起终端的应用程序(311)的标识符ApplicationID_311 ;以及,通过其应用程序(314)将“开始连接确认”消息发送到其安全层(313),该消息中包含应用程序(314 )的标识符AppI ication_ID_314 ;以及,通过其安全层(313 )将“建立安全连接确认”消息发送至发起终端的安全层(312),该消息中包含应用程序(314)的标识符 Application_ID_314 与 Set_App_Sec_Response,其中 Set_App_Sec_Response 表不目标终端确认建立应用层安全数据连接响应。
9.如权利要求8所述的系统,其特征在于,在发起终端与目标终端建立安全连接后,进行数据安全传输时, 所述发起终端,进一步用于通过发起终端上运行的应用程序将欲发送的文件数据发送到发起终端的安全层;并通过发起终端的安全层将文件数据F分为若干个文件块Bi,每个文件块的大小相等,随后使用单向散列算法计算每个文件块的散列值Hi,以进行正确性验证;发起终端的安全层使用随机密钥RandomKey加密文件块Bi和散列值Hi,得到密文C(Bi, Hi),并将密文C(Bi, Hi)发送到目标终端的安全层; 所述目标终端,进一步用于通过目标终端的安全层用随机密钥RandomKey对密文C(BilHi)解密,获得文件块Bi和散列值Hi ;目标终端的安全层使用单向散列算法对获得的各文件块Bi计算散列值H/,并与获得的散列值Hi进行比较,若相同,则文件块Bi传输正确,否则说明数据传输过程中出现错误;若无数据传输错误,目标终端的安全层在确认各文件块Bi都正确接收到后,将Bi重新组装成原始的文件数据F,并发送给目标终端上运行的应用程序,至此完成发起终端与目标终端之间的安全数据传输。
10.如权利要求8所述的系统,其特征在于,在出现数据传输错误时,需要进行数据错误处理时, 所述目标终端,进一步用于在目标终端的安全层获得的文件块Bi无法通过正确性验证,则丢弃已获得的文件块Bi,并向发起终端的安全层发送“错误数据重传”请求,消息中包含丢弃的文件块的索引编号BlockIndex ; 所述发起终端,进一步用于发起终端的安全层根据BlockIndex的内容,将密文(CBlockIndex,HBlockIndex )重新发送至目标终端的安全层。
【文档编号】H04L9/30GK103457724SQ201210181412
【公开日】2013年12月18日 申请日期:2012年6月5日 优先权日:2012年6月5日
【发明者】郭帅, 钟冬, 伍燕, 孔劼, 蔡燕燕, 张博 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1