开放、不可信互联网环境下安全即时通信方法及系统的制作方法

文档序号:7818241阅读:154来源:国知局
开放、不可信互联网环境下安全即时通信方法及系统的制作方法
【专利摘要】本发明公开了开放、不可信互联网环境下安全即时通信方法,包括:第一客户端将与第二客户端通信的请求发送给服务器,服务器将通信的请求转发给第二客户端;第二客户端将同意通信的响应返回给服务器,服务器将同意通信的响应转发给第一客户端;生成第一客户端与第二客户端之间的会话密钥;建立第一客户端与第二客户端的通信链接;第一客户端采集原始通信信息并通过自定义的数据格式对原始通信信息进行封装得到封装通信信息;第一客户端根据会话密钥对封装通信信息进行加密得到加密通信信息;第一客户端将加密通信信息发送给第二客户端;第二客户端根据会话密钥对接收到的加密通信信息进行解密得到封装通信信息。
【专利说明】开放、不可信互联网环境下安全即时通信方法及系统

【技术领域】
[0001] 本发明涉及一种即时通信技术,尤其涉及一种开放、不可信互联网环境下安全即 时通信方法及系统。

【背景技术】
[0002] 目前,我们正快速进入一个崭新的(移动)互联网时代。即时语音/视频通信作为 移动互联网的重要基础,大量的应用,如"社交、娱乐、购物、休闲、金融"等,均基于其展开。 但是,如何在开放、不可信的环境下保证即时语音/视频通信的安全性(保密性)却仍然是 一个有待解决的关键问题。
[0003] 目前国内主流的即时通信软件,如微信、QQ和来往等,虽然提供了一定的安全保 密功能,但是它们并不支持通信双方在开放、不可信的环境下自主、动态地协商会话密钥, 换句话说,这些软件的加密通信过程(如果有的话)必须依赖于软件提供商的服务器。然 而,软件提供商的服务器并不是完全可信的,虽然软件提供商已经尽可能保证服务器的安 全性,但是在特定的情况下(如公司内部攻击者,网络攻击事件等),服务器仍然可能被攻 击者所控制,从而危害到即时通信的安全。
[0004] 一篇中国专利文献(申请号为200410021688. 8)公开了一种手机话音和数据的端 到端加密方法,其无线端用户采用外置的终端保密装置与支持蓝牙数据通信功能的GSM蓝 牙移动台连接,从而实现GSM网络话音和数据业务的端到端加密。然而,这种方法需要外置 的移动保密装置,普通商业硬件并不具备该装置,用户需要额外定制。
[0005] 另一篇中国专利文献(申请号为200910306202. 8)公开了一种CDMA端到端加密 通信系统及其密钥分发方法,其包括CDMA网络及其终端手机、公共交换电话网及其终端座 机、短信中心,还包括以下三种密码处理单元:手机终端的密码芯片、密钥分发管理中心,网 管移动交换中心的Firmware密码模块,由此形成一种安全的CDMA端到端加密通信的密钥 分发方法。但是,该专利也需要对用户终端进行相应的改造,实施起来并不方便,且只支持 CDMA网络间通信,具有一定局限性。
[0006] 可以看出,基于现有技术保证即时通信的安全性的方法存在以下缺陷:
[0007] 1、加密通信过程所使用的会话密钥只能由软件提供商的服务器生成,这一方面使 得用户无法动态、自主和可控地协商会话密钥;另一方面也导致会话密钥本身、甚至整个通 信加密过程的安全性必须依赖于服务器的安全性,但是服务器却不是绝对可信的。
[0008] 2、需要对用户终端进行特殊的改造,实施起来不方便,且需要额外成本。
[0009] 3、需要外置的移动保密装置,但普通商业移动智能终端并不具备这类装置,用户 需要额外定制,成本较高。


【发明内容】

[0010] 有鉴于此,有必要提供一种在开放、不可信互联网环境下进行安全即时通信的方 法及系统。
[0011] 本发明具有如下特点:
[0012] 1、通信双方利用会话密钥对即时通信信息进行透明加解密保护,确保通信信息的 安全性,整个过程无需用户干预。
[0013] 2、通信双方在每次通话之前,都会重新协商会话密钥,确保会话密钥的安全性。
[0014] 3、通信双方基于本发明所设计的会话密钥协商协议自主、可控地进行会话密 钥协商。会话密钥协商协议从理论上保证了,无论网络通信环境是否可信、以及无论即 时通信服务器是否可信,只要会话密钥能够协商成功,那么生成的会话密钥一定是真实 (Authenticity)、新鲜(Freshness)和保密(Confidentiality)的。
[0015] 4、本发明适用于普通商用移动智能终端,无需对终端做任何内置或外置硬软件安 全增强,不增加额外成本。
[0016] 6、本发明模块化,扩展性好。可以根据需要方便地替换使用各类密码学算法,并且 可以容易地扩展到Android、iOS等各类操作系统之上。
[0017] 本发明解决其技术问题所采用的技术方案是:构造一种开放、不可信互联网环境 下安全即时通信方法,其包括以下步骤:
[0018] S01、第一客户端将与第二客户端通信的请求发送给服务器,所述服务器将所述通 信的请求转发给所述第二客户端;所述第二客户端将同意通信的响应返回给所述服务器, 所述服务器将所述同意通信的响应转发给所述第一客户端;
[0019] S02、生成所述第一客户端与所述第二客户端之间的会话密钥;
[0020] S03、建立所述第一客户端与所述第二客户端的通信链接;所述第一客户端采集原 始通信信息并通过自定义的数据格式对所述原始通信信息进行封装得到封装通信信息;所 述第一客户端根据所述会话密钥对所述封装通信信息进行加密得到加密通信信息;所述第 一客户端将所述加密通信信息发送给所述第二客户端;所述第二客户端根据所述会话密钥 对接收到的所述加密通信信息进行解密得到所述封装通信信息;所述第二客户端根据所述 自定义的数据格式对所述封装信息进行解封得到所述原始通信信息。
[0021] 本发明还提供一种开放、不可信互联网环境下安全即时通信系统,其包括以下模 块:
[0022] 通信请求模块,用于通过第一客户端将与第二客户端通信的请求发送给服务器, 所述服务器将所述通信的请求转发给所述第二客户端;通过所述第二客户端将同意通信的 响应返回给所述服务器,通过所述服务器将所述同意通信的响应转发给所述第一客户端; [0023] 会话密钥生成模块,用于生成所述第一客户端与所述第二客户端之间的会话密 钥;
[0024] 加密通信模块,用于建立所述第一客户端与所述第二客户端的通信链接;通过所 述第一客户端采集原始通信信息并通过自定义的数据格式对所述原始通信信息进行封装 得到封装通信信息;通过所述第一客户端根据所述会话密钥对所述封装通信信息进行加密 得到加密通信信息;通过所述第一客户端将所述加密通信信息发送给所述第二客户端;通 过所述第二客户端根据所述会话密钥对所述加密通信信息进行解密得到所述封装通信信 息;通过所述第二客户端根据所述自定义数据格式对所述封装通信信息进行解封得到所述 原始通信信息。
[0025] 本发明提供的开放、不可信互联网环境下安全即时通信方法及系统,基于普通商 用移动智能终端,在无需对终端做任何硬软件安全增强、以及默认即时通信服务器不可信 的前提下,利用本发明所设计的会话密钥协商协议,使得第一客户端和第二客户端在进行 通即时信之前,首先协商生成会话密钥,并确保所生成会话密钥的真实性、新鲜性和保密 性,之后利用透明加解密技术自动对第一客户端和第二客户端之间的即时通信信息进行加 密保护,从而实现在开放、不可信互联网环境下进行安全保密的即时通信。

【专利附图】

【附图说明】
[0026] 图1是本发明一较佳实施例的开放、不可信互联网环境下安全即时通信方法的流 程图;
[0027] 图2是图1中步骤S02的子流程图;
[0028] 图3是图2中步骤S1的子流程图;
[0029] 图4是图2中步骤S2的子流程图;
[0030] 图5是图2中步骤S5的子流程图;
[0031] 图6是本发明一较佳实施例的开放、不可信互联网环境下安全即时通信系统的结 构框图;
[0032] 图7是图6中会话密钥生成模块的子结构框图;
[0033] 图8是图7中第一公私钥对生成子模块的子结构框图;
[0034] 图9是图7中第一客户端公钥发送子模块的子结构框图;
[0035] 图10是图7中会话密钥前半部分生成子模块的子结构框图。

【具体实施方式】
[0036] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明 本发明的【具体实施方式】,下述【具体实施方式】以及附图,仅为更好地理解本发明,并不对本发 明做任何限制。可选地,作为本发明的一种实现选择,本实施例基于运行Android系统的平 台进行了实现。基于本发明的思想,也可以容易地扩展到其他操作系统(如i〇S、Windows Phone等)进行实现。
[0037] 图1为本发明实施例提供一种开放、不可信互联网环境下安全即时通信方法,其 包括以下步骤:
[0038] S01、第一客户端将与第二客户端通信的请求发送给服务器,所述服务器将所述通 信的请求转发给所述第二客户端;所述第二客户端将同意通信的响应返回给所述服务器, 所述服务器将所述同意通信的响应转发给所述第一客户端。
[0039] 其中,所述第一客户端和所述第二客户端即通常的具备互联网连接能力(WIFI或 者3G/4G/5G等)的移动智能终端。所述服务器即普通即时通信服务器,具备即时通信服务 器的基本功能,如:对移动智能终端即时通信用户的注册、管理和上下线监控等等。所述服 务器可以通过Internet进行访问。
[0040] 和常见的即时通信软件一样,在实际使用中,所述第一客户端与所述第二客户端 均需先在所述服务器上进行注册,以便由所述服务器实现对客户端的上下线管理、通信请 求发送、通信请求响应等等。
[0041] 所述第一客户端首先通过所述服务器查询所述第二客户端是否在线(所述服务 器通过监听所有注册客户端的心跳包可以确认某个客户端是否在线,并将此信息定期刷新 到服务器的数据库中)。如果所述第二客户端在线,所述第一客户端会向所述服务器发出与 所述第二客户端通信的请求。所述服务器将此请求转发给所述第二客户端。如果所述第二 客户端同意进行安全通信,则所述第二客户端向所述服务器返回同意通信的响应,并自动 进入后续步骤S02,准备协商生成会话密钥;否则所述第二客户端向所述服务器返回拒绝 通信的响应。可选地,所述服务器可以进一步将所述第二客户端的响应转发给所述第一客 户端。最后,如果所述第一客户端收到所述第二客户端同意进行安全通信的响应,则所述第 一、第二客户端双方自动进入所述步骤S02 ;否则如果所述第一客户端收到所述第二客户 端拒绝进行安全通信的响应,则通信过程自动终止。
[0042] S02、生成所述第一客户端与所述第二客户端之间的会话密钥。
[0043] 在完成所述步骤S01之后,为了提高会话密钥的安全性,防止会话密钥泄露所导 致的安全问题,在每次后续步骤S03建立一个新的安全通信链接之前,所述第一客户端和 所述第二客户端双方都必须主动进行会话密钥协商。只有新的会话密钥协商成功之后(即 使原来已经协商会话密钥,只要重新建立通信链接,则原有会话密钥一律失效,必须重新协 商新的会话密钥),通信双方才能够进入安全保密通信阶段。
[0044] 为了在开放、不可信的互联网网环境下自主安全地协商会话密钥,本发明设计并 实现了一个可信密钥协商协议。所述可信密钥协商协议从理论上保证了只要所述会话密钥 能够协商成功,则所述会话密钥一定是真实的、新鲜的和机密的。所述可信密钥协商协议能 够防止常见的伪造、篡改(真实性)和回放攻击(新鲜性),并确保除了通信双方之外,其他 任何第三方都无法获知所协商的会话密钥(机密性)。
[0045] 为了更清楚地理解会话密钥协商过程,以下对所述可信密钥协商协议的背景进行 三点说明如下。
[0046] 说明1:通信双方位于开放、不可信的网络环境,攻击者拥有足够的资源和能力。 与目前主流的即时通信软件不同,本发明实施例并不将通信的安全性建立在即时通信服务 器的安全性之上,相反,本发明认为所述即时通信服务器也是不可信的。例如,在极端情况 下,一个内部攻击者完全能够控制所述即时通信服务器,甚至可以获知或者更改所述即时 通信服务器所使用的私钥等信息。
[0047] 说明2 :假设所述即时通信服务器的公钥等信息已经公开,任何终端都可以安全 可信地获取所述即时通信服务器的公钥(如通过证书等方式)。但是,如说明1所述,本发 明并不假设所述即时通信服务器的私钥是安全的,更进一步地,将所述即时通信服务器也 视为可能的攻击者。
[0048] 说明3 :所述可信密钥协商协议基于普通的商用移动智能终端实现,并不需要对 移动智能终端做任何额外的硬软件安全增强或改造。
[0049] 本实施例中,所述可信密钥协商协议采用了国际标准的RSA和AES等密码算法。在 国内商用中,RSA和AES可以对应更换为国家的SM2和SM1/SM4等商密算法,哈希运算可以 更换为SM3等,以符合国内商用密码产品的要求。如果运用在军队等更需要高安全性的领 域,亦可以更换为军方所使用的密码算法。除了加密算法之外,在实际使用中,还可以控制 密钥生成的强度,以满足效率、安全性和国家安全等各方面的平衡需要。
[0050] S03、建立所述第一客户端与所述第二客户端的通信链接。所述第一客户端采集原 始通信信息并通过自定义的数据格式对所述原始通信信息进行封装得到封装通信信息。所 述第一客户端根据所述会话密钥对所述封装通信信息进行加密得到加密通信信息。所述第 一客户端将所述加密通信信息发送给所述第二客户端。所述第二客户端根据所述会话密钥 对所述加密通信信息进行解密得到所述封装通信信息。所述第二客户端根据所述自定义的 数据格式对所述封装通信信息进行解封得到所述原始通信信息。
[0051]即时通信包括但不限于语音/视频的即时通信。以视频即时通信为例(其他即时 通信方式如语音通信等是类似的):首先,所述第一客户端通过摄像头采集原始视频信息。 接下来,所述第一客户端通过调用自定义的数据格式对采集到的原始视频信息进行封装, 这种封装数据格式不同于TCP/IP的通信协议,以下是一种优选地的封装数据格式:

【权利要求】
1. 一种开放、不可信互联网环境下安全即时通信方法,其特征在于,其包括以下步骤: 501、 第一客户端将与第二客户端通信的请求发送给服务器,所述服务器将所述通信的 请求转发给所述第二客户端;所述第二客户端将同意通信的响应返回给所述服务器,所述 服务器将所述同意通信的响应转发给所述第一客户端; 502、 生成所述第一客户端与所述第二客户端之间的会话密钥; 503、 建立所述第一客户端与所述第二客户端的通信链接;所述第一客户端采集原始通 信信息并通过自定义的数据格式对所述原始通信信息进行封装得到封装通信信息;所述第 一客户端根据所述会话密钥对所述封装通信信息进行加密得到加密通信信息;所述第一客 户端将所述加密通信信息发送给所述第二客户端;所述第二客户端根据所述会话密钥对接 收到的所述加密通信信息进行解密得到所述封装通信信息;所述第二客户端根据所述自定 义数据格式对所述封装通信信息进行解封得到所述原始通信信息。
2. 根据权利要求1所述的开放、不可信互联网环境下安全即时通信方法,其特征在于, 所述步骤S02包括以下子步骤: 51、 所述第一客户端生成第一客户端的公钥kea和第一客户端的私钥kda,并将所述公 钥ke a发送给所述服务器;所述服务器根据接收到的公钥kea'生成签名Siga,并将所述签名 siga发送给所述第一客户端; 52、 所述第一客户端将所述公钥kea真实、新鲜地发送给所述第二客户端; 53、 所述第二客户端生成第二客户端的公钥keb和第二客户端的私钥kdb,并将所述公 钥ke b发送给所述服务器;所述服务器根据接收到的公钥keb'生成签名sigb,并将所述签名 sigb发送给所述第一客户端; 54、 所述第二客户端将所述公钥keb真实、新鲜地发送给所述第一客户端; 55、 所述第一客户端生成会话密钥的前半部分aeSl,并将所述会话密钥的前半部分 aeSi真实、新鲜和保密地发送给所述第二客户端; 56、 所述第二客户端生成会话密钥的后半部分aes2,并将所述会话密钥的后半部分 aes2真实、新鲜和保密地发送给所述第一客户端,以使所述第一客户端和所述第二客户端 得到完整的会话密钥AES。
3. 根据权利要求2所述的开放、不可信互联网环境下安全即时通信方法,其特征在于, 所述步骤Sl包括如下子步骤: 511、 所述第一客户端生成第一客户端的公钥kea和第一客户端的私钥kda,并将所述公 钥ke a发送给所述服务器; 512、 所述服务器对实际接收到的公钥kea'进行数字签名得到签名Siga ; 513、 所述服务器将所述公钥kea'和所述签名Siga发送给所述第一客户端; 514、 所述第一客户端验证所述签名Siga并比较所述公钥kea与所述kea'是否一致;当 所述签名Sig a验证通过并所述公钥kea与所述kea' 一致时,跳转到下一步骤。
4. 根据权利要求3所述的开放、不可信互联网环境下即时通信方法,其特征在于,所述 步骤S2包括如下子步骤: 521、 所述第一客户端生成随机数ma,并根据所述私钥kda对所述随机数ma进行解密得 到 Dma ; 522、 所述第一客户端将所述公钥kea、所述签名Siga和所述Dma,即<ke a,siga,Dma>发送 给所述第二客户端; 523、 所述第二客户端接收到<kea',siga',Dma' >之后,验证所述签名siga',所述第二 客户端在所述签名Siga'验证通过后根据所述公钥ke a'对所述Dma'进行加密得到叫'; 524、 所述第二客户端将所述%'发送到所述第一客户端; 525、 所述第一客户端判断所述ma与接收到的所述%'是否一致;当所述ma与接收到的 所述m a' 一致时,跳转到下一步骤。
5. 根据权利要求4所述的开放、不可信互联网环境下安全即时通信方法,其特征在于, 所述步骤S5包括如下子步骤: 551、 所述第一客户端生成会话密钥的前半部分aeSl,并根据所述私钥kda对所述aeSl 进行数字签名得到Sigaesl ; 552、 所述第一客户端通过所述公钥keb对所述aeSi和所述Sigaesl加密生成Eaesl,所述 第一客户端将所述E aesl发送给所述第二客户端; 553、 所述第二客户端接收到Eaesl'之后,根据所述私钥kdb对所述Eaesl'进行解密得到 aes!,和 Sigaesl,; 554、 所述第二客户端对所述Sigaesl'进行验证;当所述Sigaesl'通过验证时,所述第二 客户端真实、新鲜和保密地获得了所述ae Sl,并跳转到下一步骤。
6. -种开放、不可信互联网环境下安全即时通信系统,其特征在于,其包括以下模块: 通信请求模块,用于通过第一客户端将与第二客户端通信的请求发送给服务器,所述 服务器将所述通信的请求转发给所述第二客户端;通过所述第二客户端将同意通信的响应 返回给所述服务器,通过所述服务器将所述同意通信的响应转发给所述第一客户端; 会话密钥生成模块,用于生成所述第一客户端与所述第二客户端之间的会话密钥; 加密通信模块,用于建立所述第一客户端与所述第二客户端的通信链接;通过第一客 户端采集原始通信信息并通过自定义的数据格式对所述原始通信信息进行封装得到封装 通信信息;通过第一客户端根据所述会话密钥对所述封装通信信息进行加密得到加密通信 信息;通过所述第一客户端将所述加密通信信息发送给所述第二客户端;通过所述第二客 户端利用所述会话密钥对所接收到的所述加密通信信息进行解密得到所述封装通信信息; 通过所述第二客户端根据所述自定义的数据格式对所述封装通信信息进行解封得到所述 原始通信信息。
7. 根据权利要求6所述的开放、不可信互联网环境下安全即时通信系统,其特征在于, 所述会话密钥生成模块包括以下子模块: 第一公私钥对生成子模块,用于通过所述第一客户端生成第一客户端的公钥kea和第 一客户端的私钥kda并将所述公钥kea发送给所述服务器;通过所述服务器根据接收到的公 钥ke a'生成签名Siga并将所述签名Siga发送给所述第一客户端; 第一客户端公钥发送子模块,用于通过所述第一客户端将所述公钥kea真实、新鲜地发 送给所述第二客户端; 第二公私钥对生成子模块,用于通过所述第二客户端生成第二客户端的公钥keb和第 二客户端的私钥kdb并将所述公钥keb发送给所述服务器;所述服务器根据接收到的公钥 keb'生成签名Sigb并将所述签名Sigb发送给所述第二客户端; 第二客户端公钥发送子模块,用于通过所述第二客户端将所述公钥keb真实、新鲜地发 送给所述第一客户端; 会话密钥前半部分生成子模块,用于通过所述第一客户端生成会话密钥的前半部分 aeSl,并将所述会话密钥的前半部分aeSl真实、新鲜和保密地发送给所述第二客户端; 会话密钥后半部分生成子模块,用于通过所述第二客户端生成会话密钥的后半部分 aes2,并将所述会话密钥的后半部分aes2真实、新鲜和保密地发送给所述第一客户端,以使 所述第一客户端和所述第二客户端得到完整的会话密钥AES。
8. 根据权利要求7所述的开放、不可信互联网环境下安全即时通信系统,其特征在于, 第一公私钥对生成子模块包括如下单元: 第一公私钥对生成单元,用于通过所述第一客户端生成第一客户端的公钥kea和第一 客户端的私钥kda,并将所述公钥kea发送给所述服务器; 服务器数字签名单元,用于通过所述服务器对实际接收到的公钥kea'进行数字签名得 到签名Siga ; 第一发送单元,用于通过所述服务器将所述公钥kea'和所述签名siga&送给所述第一 客户端; 第一验证单元,用于通过所述第一客户端验证所述签名Siga并比较所述公钥kea与所 述kea'是否一致;当所述签名Siga验证通过并所述公钥kea与所述ke a' 一致时,启动所述 第一客户端公钥发送子模块的功能。
9. 根据权利要求8所述的开放、不可信互联网环境下安全即时通信系统,其特征在于, 第一客户端公钥发送子模块包括如下单元: 随机数生成单元,用于通过所述第一客户端生成随机数ma,并根据所述私钥kda对所述 随机数ma进行解密得到Dma; 第二发送单元,用于通过所述第一客户端将所述公钥kea、所述签名Siga、所述Dma,即 <kea,siga,Dma>发送给所述第二客户端; 第一加密单元,用于通过所述第二客户端在实际接收到<kea',siga',Dm a' >之后,验证 所述签名siga',并在Siga'验证通过后根据所述公钥kea'对所述Dm a'加密得到ma' ; 第三发送单元,用于通过所述第二客户端将所述ma'发送到所述第一客户端; 第二验证单元,用于通过所述第一客户端判断所述1113与接收到的所述%'是否一致;当 所述ma与接收到的所述ma' 一致时,启动所述第二公私钥对生成子模块的功能。
10. 根据权利要求9所述的开放、不可信互联网环境下安全即时通信系统,其特征在 于,所述会话密钥前半部分生成子模块包括如下单元: 会话密钥前半部分生成单元,用于通过所述第一客户端生成会话密钥的前半部分 aeSl,并根据所述私钥kda对所述aeSl进行数字签名得到Sig aesl ; 第二加密单元,用于通过所述第一客户端通过所述公钥keb对所述aeSl和所述Sigaesl 加密生成Eaesl,所述第一客户端将所述Eaesl发送给所述第二客户端; 解密单元,用于通过所述第二客户端在实际接收到Eaesl'之后,根据所述私钥kdb对所 述Eaesl '进行解密得到aes/和Sigaes/ ; 第三验证单元,用于通过所述第二客户端对所述Sigaesl'进行验证;在所述Sigaesl'通 过验证时,启动所述会话密钥后半部分生成子模块的功能。
【文档编号】H04L29/06GK104320329SQ201410594643
【公开日】2015年1月28日 申请日期:2014年10月29日 优先权日:2014年10月29日
【发明者】张帆, 张聪, 徐明迪, 杨明慧 申请人:武汉轻工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1