首页> 中国专利> 开放、不可信互联网环境下安全即时通信方法及系统

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

摘要

本发明公开了开放、不可信互联网环境下安全即时通信方法,包括:第一客户端将与第二客户端通信的请求发送给服务器,服务器将通信的请求转发给第二客户端;第二客户端将同意通信的响应返回给服务器,服务器将同意通信的响应转发给第一客户端;生成第一客户端与第二客户端之间的会话密钥;建立第一客户端与第二客户端的通信链接;第一客户端采集原始通信信息并通过自定义的数据格式对原始通信信息进行封装得到封装通信信息;第一客户端根据会话密钥对封装通信信息进行加密得到加密通信信息;第一客户端将加密通信信息发送给第二客户端;第二客户端根据会话密钥对接收到的加密通信信息进行解密得到封装通信信息。

著录项

  • 公开/公告号CN104320329A

    专利类型发明专利

  • 公开/公告日2015-01-28

    原文格式PDF

  • 申请/专利权人 武汉轻工大学;

    申请/专利号CN201410594643.3

  • 发明设计人 张帆;张聪;徐明迪;杨明慧;

    申请日2014-10-29

  • 分类号H04L12/58(20060101);H04L29/06(20060101);

  • 代理机构武汉河山金堂专利事务所;

  • 代理人胡清堂;覃波

  • 地址 430023 湖北省武汉市汉口常青花园学府南路68号

  • 入库时间 2023-12-17 04:36:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-26

    授权

    授权

  • 2015-02-25

    实质审查的生效 IPC(主分类):H04L12/58 申请日:20141029

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

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

背景技术

目前,我们正快速进入一个崭新的(移动)互联网时代。即时语音/视频 通信作为移动互联网的重要基础,大量的应用,如“社交、娱乐、购物、休闲、 金融”等,均基于其展开。但是,如何在开放、不可信的环境下保证即时语音 /视频通信的安全性(保密性)却仍然是一个有待解决的关键问题。

目前国内主流的即时通信软件,如微信、QQ和来往等,虽然提供了一定 的安全保密功能,但是它们并不支持通信双方在开放、不可信的环境下自主、 动态地协商会话密钥,换句话说,这些软件的加密通信过程(如果有的话)必 须依赖于软件提供商的服务器。然而,软件提供商的服务器并不是完全可信的, 虽然软件提供商已经尽可能保证服务器的安全性,但是在特定的情况下(如公 司内部攻击者,网络攻击事件等),服务器仍然可能被攻击者所控制,从而危 害到即时通信的安全。

一篇中国专利文献(申请号为200410021688.8)公开了一种手机话音和数 据的端到端加密方法,其无线端用户采用外置的终端保密装置与支持蓝牙数据 通信功能的GSM蓝牙移动台连接,从而实现GSM网络话音和数据业务的端 到端加密。然而,这种方法需要外置的移动保密装置,普通商业硬件并不具备 该装置,用户需要额外定制。

另一篇中国专利文献(申请号为200910306202.8)公开了一种CDMA端 到端加密通信系统及其密钥分发方法,其包括CDMA网络及其终端手机、公 共交换电话网及其终端座机、短信中心,还包括以下三种密码处理单元:手机 终端的密码芯片、密钥分发管理中心,网管移动交换中心的Firmware密码模 块,由此形成一种安全的CDMA端到端加密通信的密钥分发方法。但是,该 专利也需要对用户终端进行相应的改造,实施起来并不方便,且只支持CDMA 网络间通信,具有一定局限性。

可以看出,基于现有技术保证即时通信的安全性的方法存在以下缺陷:

1、加密通信过程所使用的会话密钥只能由软件提供商的服务器生成,这 一方面使得用户无法动态、自主和可控地协商会话密钥;另一方面也导致会话 密钥本身、甚至整个通信加密过程的安全性必须依赖于服务器的安全性,但是 服务器却不是绝对可信的。

2、需要对用户终端进行特殊的改造,实施起来不方便,且需要额外成本。

3、需要外置的移动保密装置,但普通商业移动智能终端并不具备这类装 置,用户需要额外定制,成本较高。

发明内容

有鉴于此,有必要提供一种在开放、不可信互联网环境下进行安全即时通 信的方法及系统。

本发明具有如下特点:

1、通信双方利用会话密钥对即时通信信息进行透明加解密保护,确保通 信信息的安全性,整个过程无需用户干预。

2、通信双方在每次通话之前,都会重新协商会话密钥,确保会话密钥的 安全性。

3、通信双方基于本发明所设计的会话密钥协商协议自主、可控地进行会 话密钥协商。会话密钥协商协议从理论上保证了,无论网络通信环境是否可信、 以及无论即时通信服务器是否可信,只要会话密钥能够协商成功,那么生成的 会话密钥一定是真实(Authenticity)、新鲜(Freshness)和保密(Confidentiality) 的。

4、本发明适用于普通商用移动智能终端,无需对终端做任何内置或外置 硬软件安全增强,不增加额外成本。

6、本发明模块化,扩展性好。可以根据需要方便地替换使用各类密码学 算法,并且可以容易地扩展到Android、iOS等各类操作系统之上。

本发明解决其技术问题所采用的技术方案是:构造一种开放、不可信互联 网环境下安全即时通信方法,其包括以下步骤:

S01、第一客户端将与第二客户端通信的请求发送给服务器,所述服务器 将所述通信的请求转发给所述第二客户端;所述第二客户端将同意通信的响应 返回给所述服务器,所述服务器将所述同意通信的响应转发给所述第一客户 端;

S02、生成所述第一客户端与所述第二客户端之间的会话密钥;

S03、建立所述第一客户端与所述第二客户端的通信链接;所述第一客户 端采集原始通信信息并通过自定义的数据格式对所述原始通信信息进行封装 得到封装通信信息;所述第一客户端根据所述会话密钥对所述封装通信信息进 行加密得到加密通信信息;所述第一客户端将所述加密通信信息发送给所述第 二客户端;所述第二客户端根据所述会话密钥对接收到的所述加密通信信息进 行解密得到所述封装通信信息;所述第二客户端根据所述自定义的数据格式对 所述封装信息进行解封得到所述原始通信信息。

本发明还提供一种开放、不可信互联网环境下安全即时通信系统,其包括 以下模块:

通信请求模块,用于通过第一客户端将与第二客户端通信的请求发送给服 务器,所述服务器将所述通信的请求转发给所述第二客户端;通过所述第二客 户端将同意通信的响应返回给所述服务器,通过所述服务器将所述同意通信的 响应转发给所述第一客户端;

会话密钥生成模块,用于生成所述第一客户端与所述第二客户端之间的会 话密钥;

加密通信模块,用于建立所述第一客户端与所述第二客户端的通信链接; 通过所述第一客户端采集原始通信信息并通过自定义的数据格式对所述原始 通信信息进行封装得到封装通信信息;通过所述第一客户端根据所述会话密钥 对所述封装通信信息进行加密得到加密通信信息;通过所述第一客户端将所述 加密通信信息发送给所述第二客户端;通过所述第二客户端根据所述会话密钥 对所述加密通信信息进行解密得到所述封装通信信息;通过所述第二客户端根 据所述自定义数据格式对所述封装通信信息进行解封得到所述原始通信信息。

本发明提供的开放、不可信互联网环境下安全即时通信方法及系统,基于 普通商用移动智能终端,在无需对终端做任何硬软件安全增强、以及默认即时 通信服务器不可信的前提下,利用本发明所设计的会话密钥协商协议,使得第 一客户端和第二客户端在进行通即时信之前,首先协商生成会话密钥,并确保 所生成会话密钥的真实性、新鲜性和保密性,之后利用透明加解密技术自动对 第一客户端和第二客户端之间的即时通信信息进行加密保护,从而实现在开 放、不可信互联网环境下进行安全保密的即时通信。

附图说明

图1是本发明一较佳实施例的开放、不可信互联网环境下安全即时通信方 法的流程图;

图2是图1中步骤S02的子流程图;

图3是图2中步骤S1的子流程图;

图4是图2中步骤S2的子流程图;

图5是图2中步骤S5的子流程图;

图6是本发明一较佳实施例的开放、不可信互联网环境下安全即时通信系 统的结构框图;

图7是图6中会话密钥生成模块的子结构框图;

图8是图7中第一公私钥对生成子模块的子结构框图;

图9是图7中第一客户端公钥发送子模块的子结构框图;

图10是图7中会话密钥前半部分生成子模块的子结构框图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详 细说明本发明的具体实施方式,下述具体实施方式以及附图,仅为更好地理解 本发明,并不对本发明做任何限制。可选地,作为本发明的一种实现选择,本 实施例基于运行Android系统的平台进行了实现。基于本发明的思想,也可以 容易地扩展到其他操作系统(如iOS、Windows Phone等)进行实现。

图1为本发明实施例提供一种开放、不可信互联网环境下安全即时通信方 法,其包括以下步骤:

S01、第一客户端将与第二客户端通信的请求发送给服务器,所述服务器 将所述通信的请求转发给所述第二客户端;所述第二客户端将同意通信的响应 返回给所述服务器,所述服务器将所述同意通信的响应转发给所述第一客户 端。

其中,所述第一客户端和所述第二客户端即通常的具备互联网连接能力 (WIFI或者3G/4G/5G等)的移动智能终端。所述服务器即普通即时通信服 务器,具备即时通信服务器的基本功能,如:对移动智能终端即时通信用户的 注册、管理和上下线监控等等。所述服务器可以通过Internet进行访问。

和常见的即时通信软件一样,在实际使用中,所述第一客户端与所述第二 客户端均需先在所述服务器上进行注册,以便由所述服务器实现对客户端的上 下线管理、通信请求发送、通信请求响应等等。

所述第一客户端首先通过所述服务器查询所述第二客户端是否在线(所述 服务器通过监听所有注册客户端的心跳包可以确认某个客户端是否在线,并将 此信息定期刷新到服务器的数据库中)。如果所述第二客户端在线,所述第一 客户端会向所述服务器发出与所述第二客户端通信的请求。所述服务器将此请 求转发给所述第二客户端。如果所述第二客户端同意进行安全通信,则所述第 二客户端向所述服务器返回同意通信的响应,并自动进入后续步骤S02,准备 协商生成会话密钥;否则所述第二客户端向所述服务器返回拒绝通信的响应。 可选地,所述服务器可以进一步将所述第二客户端的响应转发给所述第一客户 端。最后,如果所述第一客户端收到所述第二客户端同意进行安全通信的响应, 则所述第一、第二客户端双方自动进入所述步骤S02;否则如果所述第一客户 端收到所述第二客户端拒绝进行安全通信的响应,则通信过程自动终止。

S02、生成所述第一客户端与所述第二客户端之间的会话密钥。

在完成所述步骤S01之后,为了提高会话密钥的安全性,防止会话密钥泄 露所导致的安全问题,在每次后续步骤S03建立一个新的安全通信链接之前, 所述第一客户端和所述第二客户端双方都必须主动进行会话密钥协商。只有新 的会话密钥协商成功之后(即使原来已经协商会话密钥,只要重新建立通信链 接,则原有会话密钥一律失效,必须重新协商新的会话密钥),通信双方才能 够进入安全保密通信阶段。

为了在开放、不可信的互联网网环境下自主安全地协商会话密钥,本发明 设计并实现了一个可信密钥协商协议。所述可信密钥协商协议从理论上保证了 只要所述会话密钥能够协商成功,则所述会话密钥一定是真实的、新鲜的和机 密的。所述可信密钥协商协议能够防止常见的伪造、篡改(真实性)和回放攻 击(新鲜性),并确保除了通信双方之外,其他任何第三方都无法获知所协商 的会话密钥(机密性)。

为了更清楚地理解会话密钥协商过程,以下对所述可信密钥协商协议的背 景进行三点说明如下。

说明1:通信双方位于开放、不可信的网络环境,攻击者拥有足够的资源 和能力。与目前主流的即时通信软件不同,本发明实施例并不将通信的安全性 建立在即时通信服务器的安全性之上,相反,本发明认为所述即时通信服务器 也是不可信的。例如,在极端情况下,一个内部攻击者完全能够控制所述即时 通信服务器,甚至可以获知或者更改所述即时通信服务器所使用的私钥等信 息。

说明2:假设所述即时通信服务器的公钥等信息已经公开,任何终端都可 以安全可信地获取所述即时通信服务器的公钥(如通过证书等方式)。但是, 如说明1所述,本发明并不假设所述即时通信服务器的私钥是安全的,更进一 步地,将所述即时通信服务器也视为可能的攻击者。

说明3:所述可信密钥协商协议基于普通的商用移动智能终端实现,并不 需要对移动智能终端做任何额外的硬软件安全增强或改造。

本实施例中,所述可信密钥协商协议采用了国际标准的RSA和AES等密 码算法。在国内商用中,RSA和AES可以对应更换为国家的SM2和SM1/SM4 等商密算法,哈希运算可以更换为SM3等,以符合国内商用密码产品的要求。 如果运用在军队等更需要高安全性的领域,亦可以更换为军方所使用的密码算 法。除了加密算法之外,在实际使用中,还可以控制密钥生成的强度,以满足 效率、安全性和国家安全等各方面的平衡需要。

S03、建立所述第一客户端与所述第二客户端的通信链接。所述第一客户 端采集原始通信信息并通过自定义的数据格式对所述原始通信信息进行封装 得到封装通信信息。所述第一客户端根据所述会话密钥对所述封装通信信息进 行加密得到加密通信信息。所述第一客户端将所述加密通信信息发送给所述第 二客户端。所述第二客户端根据所述会话密钥对所述加密通信信息进行解密得 到所述封装通信信息。所述第二客户端根据所述自定义的数据格式对所述封装 通信信息进行解封得到所述原始通信信息。

即时通信包括但不限于语音/视频的即时通信。以视频即时通信为例(其 他即时通信方式如语音通信等是类似的):首先,所述第一客户端通过摄像头 采集原始视频信息。接下来,所述第一客户端通过调用自定义的数据格式对采 集到的原始视频信息进行封装,这种封装数据格式不同于TCP/IP的通信协议, 以下是一种优选地的封装数据格式:

封装完成之后,所述第一客户端通过所述步骤S02的所述会话密钥对封装 数据进行加密。加密完成之后,所述第一客户端将加密视频信息发送给所述第 二客户端,发送可以采用标准网络通信协议(如UDP、RTSP等)通过互联网 (WIFI或者3G/4G/5G等)将加密视频信息发送给第二客户端。

所述第二客户端接收到所述加密通信信息之后,将所述加密通信信息利用 所述会话密钥进行解密得到所述封装通信信息,之后根据所述自定义数据格式 对所述封装通信信息进行解封得到所述原始视频信息。最后,将所述原始视频 信息在播放器中播放,所述第二客户端即可观看所述第一客户端发送的保密视 频。

从上述说明可见,一方面,在整个通信阶段,明文信息只能出现在移动智 能终端的内部。所有出现在移动智能终端之外的信息,都会被会话密钥所主动 加密。另一方面,在每次建立安全通信链接之前,通信双方都必须重新协商会 话密钥,以减少由于会话密钥泄露而导致的安全问题。同时,可信密钥协商协 议从理论上保证了能够在公开、不可信的网络条件下进行可信的会话密钥协 商,确保所协商会话密钥的真实性、新鲜性和机密性。因此,上述过程综合保 证了即时通信的安全性。

优选地,如图2所示,所述步骤S02包括以下子步骤:

S1、所述第一客户端生成第一客户端的公钥kea和第一客户端的私钥kda, 并将所述公钥kea发送给所述服务器;所述服务器根据接收到的公钥kea’(由 于攻击者的存在,所述服务器所接收到的公钥并不一定与所述第一客户端所生 成的公钥kea相同,因此这里用kea’代替)生成签名siga并将所述签名siga发 送给所述第一客户端。

实施例中,约定用s指代所述服务器,用a,b分别指代所述第一客户端和 所述第二客户端。所述服务器和所述客户端需要生成自身的RSA公私钥对, 约定用kei指代实体i的公钥,用kdi指代实体i的私钥,例如:kes是所述服务 器的公钥,kda是所述第一客户端的私钥。使用HASH(x)来指代对x的哈希操 作;用E(kei,x)指代对x用公钥kei做加密操作,用D(kdi,x)指代对x用私钥 kdi做解密操作。所述服务器的私钥kds由服务器s自己保存,但是如前所述, 我们并不认为kds是安全的;所述服务器的公钥kes利用证书等方式可信地公 开给所有的客户端。由于客户端无法使用证书等方式,因此,所述第一客户端 和所述第二客户端在每次进行会话密钥协商时,均会分别重新生成公私钥对 kea和kda,以及keb和kdb。其中,私钥由客户端自己保存,公钥通过密钥协 商协议可信地发送给对方客户端。

S2、所述第一客户端将所述公钥kea发送给所述第二客户端。

S3、所述第二客户端生成第二客户端的公钥keb和第二客户端的私钥kdb, 并将所述公钥keb发送给所述服务器;所述服务器根据接收到的公钥keb’生成 签名sigb并将所述签名sigb发送给所述第二客户端。

S4、所述第二客户端将所述公钥keb发送给所述第一客户端。

S5、所述第一客户端生成会话密钥的前半部分aes1,并将所述会话密钥的 前半部分aes1发送给所述第二客户端。

S6、所述第二客户端生成会话密钥的后半部分aes2,并将所述会话密钥的 后半部分aes2发送给所述第一客户端,以使所述第一客户端和所述第二客户端 得到完整的会话密钥AES。

优选地,如图3所示,所述步骤S1包括如下子步骤:

S11、所述第一客户端生成第一客户端的公钥kea和第一客户端的私钥kda, 并将所述公钥kea发送给所述服务器。

S12、所述服务器利用私钥kds对实际接收到的公钥kea’(由于攻击存在, 因而所述服务器所实际接收到的公钥与所述第一客户端在所述步骤S11发送 的所述公钥kea并不一定相同,因而这里用kea’代替)进行数字签名得到签名 siga

S13、所述服务器将所述公钥kea’和所述签名siga发送给所述第一客户端。

S14、所述第一客户端验证所述签名siga并比较所述公钥kea与所述kea’ 是否一致;当所述签名siga验证通过并所述公钥kea与所述kea’一致时,说明 所述服务器真实、新鲜地接收到了由所述第一客户端所发送的所述公钥kea, 且所述服务器对所述公钥kea的所述签名siga也是真实、新鲜的,因而继续跳 转到下一步骤。

如前述实施例说明1所述,本发明认为所述服务器也是不可信的。因此在 分析协议安全性的时候,需要综合考虑所述服务器本身所发起的攻击、以及(除 开服务器之外的)其他攻击者所发起的攻击。由于所述服务器是不可信的,因 而所述服务器在对kea进行数字签名的时候,可以选择进行正常签名,也可以 选择对kea进行(伪造、篡改和回放)攻击之后签名,由此有三种情形需要考 虑:

情形1:如果所述服务器正常签名,那么只需要考虑其他攻击者所发起的 (伪造、篡改或者回放)攻击。由于所述S12步骤是一个标准的数字签名过程, 因而能够防止所述其他攻击者针对kea的伪造和篡改攻击。对于所述其他攻击 者的回放攻击,在所述步骤S14中会被所述第一客户端发现,这是因为回放攻 击使得所述第一客户端接收到的所述服务器发来kea’与自己原先发送的kea不 同,从而可以确认发生了回放攻击。

情形2:如果仅仅所述服务器对kea进行(伪造、篡改或者回放)攻击, 那么所述服务器将在所述步骤S12对kea攻击之后进行签名。此时所述第一客 户端在所述步骤S14要么会验证签名失败,要么会发现接收到的kea’与自己原 先在所述步骤S11生成的kea不同,从而发现攻击。

情形3:如果所述服务器和所述其他攻击者同时对kea进行(伪造、篡改 或者回放)攻击,类似情形2,所述第一客户端在所述步骤S14要么会验证签 名失败,要么会发现接收到的kea’与自己原先发送的kea不同,从而发现攻击。

因此,如果所述步骤S14通过,则所述第一客户端可以确信所述服务器收 到了真实、新鲜的所述公钥kea,且所述服务器返回的签名siga也是真实且新 鲜的。这里真实性是指防止常见的伪造和篡改攻击。新鲜性是指防止回放攻击。 机密性是指除了通信双方之外,其他任何第三方都无法获知所协商的会话密 钥。

优选地,如图4所示,所述步骤S2包括如下子步骤:

S21、所述第一客户端生成随机数ma,并根据所述私钥kda对所述随机数 ma进行解密得到Dma=D(kda,ma)。

S22、所述第一客户端将所述公钥kea、所述签名siga、所述Dma,即<kea, siga,Dma>,发送给所述第二客户端。

S23、所述第二客户端接收到即<kea’,siga’,Dma’>之后(由于攻击者的存 在,所述第二客户端实际接收到的结果与所述第一客户端在所述步骤S22发送 的<kea,siga,Dma>并不一定相同,因此这里用<kea’,siga’,Dma’>代替),首先会 验证所述签名siga’,所述第二客户端在所述签名siga’验证通过后,再根据所述 公钥kea’对所述Dma’进行加密得到ma’=E(kea’,Dma’)。

S24、所述第二客户端将所述ma’发送到所述第一客户端。

S25、所述第一客户端验证所接收到的所述ma’是否与所述步骤S21中生 成的所述ma一致,如果两者一致,则说明所述第二客户端真实、新鲜地接收 到了所述第一客户端的公钥kea,并跳转到下一步骤;否则所述第二客户端接 收到的公钥是错误的。

结合所述服务器和所述其他攻击者的攻击情况,也有三种情形需要考虑:

情形1:如果所述服务器不进行攻击,那么只需要考虑所述其他攻击者在 所述步骤S22对所述kea所发起的(伪造、篡改和回放)攻击。由于在所述步 骤S14已经判定所述siga是所述服务器对所述kea的真实且新鲜的签名,又由 于所述其他攻击者并不知道所述服务器的所述私钥kds,因而一旦所述其他攻 击者在所述步骤S22对所述kea进行了伪造或篡改攻击,则所述第二客户端在 所述步骤S23对签名的验证一定会失败,从而发现攻击。对于回放攻击,所述 步骤S23的验证会通过,但是所述攻击者并不知道所述第二客户端在所述步骤 S21所生成的所述随机数ma、以及所述第一客户端的所述私钥kda,因而无法 对所述Dma进行攻击,从而所述第一客户端在所述步骤S25验证时将会发现 回放攻击。

情形2:如果仅仅所述服务器进行攻击,那么所述服务器可以在所述步骤 S22攻击(伪造、篡改和回放)所述kea和所述siga,以生成新的kea’和siga’。 这种情况下所述第二客户端在所述步骤S23验证一定会通过。但是,由于所述 服务器并不知道所述第一客户端在所述步骤S21生成的所述随机数ma,也不 知道所述第一客户端的所述私钥kda,因而它无法攻击所述Dma,从而所述第 一客户端在所述步骤S25会发现所述ma’与所述ma的不一致从而发现攻击。

情形3:如果所述服务器和所述其他攻击者同时对所述kea进行(伪造、 篡改和回放)攻击,这种情形类似情形2,所述第一客户端将在所述步骤S25 发现所述ma’与所述ma的不一致从而发现攻击。

综上所述,通过实施本实施例,所述第一客户端可以将把它的公钥kea真 实、新鲜地发送给所述第二客户端。

类似地,所述步骤S3S4也可以采取实施与本实施例类似的步骤,将所述 第二客户端的公钥keb真实、新鲜地发送给所述第一客户端。

优选地,如图5所示,所述步骤S5包括如下子步骤:

S51、所述第一客户端生成会话密钥的前半部分aes1,并根据所述私钥kda对所述aes1的哈希haes1=HASH(aes1)进行数字签名得到sigaes1=D(kda,haes1)。 S52、所述第一客户端通过所述公钥keb对所述aes1和所述sigaes1加密生成 Eaes1=E(keb,aes1,sigaes1),所述第一客户端将所述Eaes1发送给所述第二客户端。

S53、所述第二客户端在接收到Eaes1’之后(由于攻击者的存在,所述第二 客户端实际接收到的结果与所述第一客户端在所述步骤S52发送的Eaes1并不 一定相同,因此这里用Eaes1’代替),根据所述私钥kdb对所述Eaes1’进行解密得 到aes1’和sigaes1’。然后对所述sigaes1’进行签名验证,如果验证通过,则说明所 述第二客户端真实、新鲜地获取了所述aes1

根据所述服务器与所述其他攻击者是否选择攻击,同样有三种情形需要考 虑:

情形1:如果所述服务器不进行攻击,那么只需要考虑所述其他攻击者在 所述步骤S52对所述aes1发起的(伪造、篡改和回放)攻击。对于伪造和篡改 攻击,所述攻击者将生成新的aes1’和sigaes1’。由于所述第二客户端的所述公钥 keb是公开的,因而所述攻击者计算生成Eaes1’=E(keb,aes1’,sigaes1’)是可行的。 但是,由于所述攻击者并不知道所述第一客户端的所述私钥kda,因而所述第 二客户端在所述步骤S53验证所述sigaes1’的时候一定会失败,从而发现攻击。 对于回放攻击,所述攻击者在所述步骤S52将回放过去的Eaes1’=E(keb’,aes1’, sigaes1’)。注意到在每次协商会话密钥的时候,所述第二客户端都会重新生成新 的所述公私钥对keb和kdb,因此,当所述第二客户端在所述步骤S53对所述 过去的Eaes1’=E(keb’,aes1’,sigaes1’)利用现在所述新生成的私钥kdb进行解密的 时候,会由于所述过去生成Eaes1’所使用的公钥keb’与所述第二客户端当前新 生成的所述私钥kdb之间并不匹配,导致对所述Eaes1’解密会得到新的aes1”和 sigaes1”,但所述aes1”和所述sigaes1”两者是不匹配的,这样所述第二客户端在 所述步骤S53验证所述sigaes1”一定会失败,从而发现攻击。

情形2:如果仅仅所述服务器对所述aes1发起的(伪造、篡改和回放)攻 击,这种情形与情形1是类似的。

情形3:如果所述服务器和所述其他攻击者同时对所述aes1发起的(伪造、 篡改和回放)攻击,这种情形与情形1是类似的。

综上所述,经过所述步骤S51到S53之后,所述第一客户端生成的所述会 话密钥的前半部分aes1将被真实、新鲜地发送给所述第二客户端。最后,注意 到所述步骤S52是将所述aes1利用所述第二客户端的所述公钥kea加密了之后 发送给所述第二客户端的,因而也保证了所述第二客户端获取的所述aes1的机 密性。

类似地,所述步骤S6也可以采取一个和步骤S5对称的过程,由所述第二 客户端生成会话密钥的后半部分aes2,并将其真实、新鲜、机密地发送给所述 第一客户端。

最后,所述第一客户端和所述第二客户端均得到最终的会话密钥 AES=aes1+aes2,会话密钥协商完毕。

如图6所示,本发明实施例还提供一种开放、不可信互联网环境下安全即 时通信系统100,其包括以下模块:

通信请求模块01,用于通过第一客户端将与第二客户端通信的请求发送 给服务器,所述服务器将所述通信的请求转发给所述第二客户端;通过所述第 二客户端将同意通信的响应返回给所述服务器,通过所述服务器将所述同意通 信的响应转发给所述第一客户端。

会话密钥生成模块02,用于生成所述第一客户端与所述第二客户端之间 的会话密钥。

加密通信模块03,用于建立所述第一客户端与所述第二客户端的通信链 接;通过第一客户端采集原始通信信息并通过自定义的数据格式对所述原始通 信信息进行封装得到封装通信信息;通过第一客户端根据所述会话密钥对所述 封装通信信息进行加密得到加密通信信息;通过所述第一客户端将所述加密通 信信息发送给所述第二客户端;通过所述第二客户端根据所述会话密钥对所述 加密通信信息进行解密得到所述封装通信信息;通过所述第二客户端根据所述 自定义数据格式对所述封装通信信息进行解封得到所述原始通信信息。

优选地,如图7所示,所述会话密钥生成模块02包括以下子模块:

第一公私钥对生成子模块10,用于通过所述第一客户端生成第一客户端 的公钥kea和第一客户端的私钥kda,并将所述公钥kea发送给所述服务器;通 过所述服务器根据接收到的公钥kea’生成siga并将所述签名siga发送给所述第 一客户端。

第一客户端公钥发送子模块20,用于通过所述第一客户端将所述公钥kea真实、新鲜地发送给所述第二客户端。

第二公私钥对生成子模块30,用于通过所述第二客户端生成第二客户端 的公钥keb和第二客户端的私钥kdb,并将所述公钥keb发送给所述服务器;所 述服务器根据接收到的公钥keb’生成签名sigb并将所述签名sigb发送给所述第 二客户端。

第二客户端公钥发送子模块40,用于通过所述第二客户端将所述公钥keb真实、新鲜地发送给所述第一客户端。

会话密钥前半部分生成子模块50,用于通过所述第一客户端生成会话密 钥的前半部分aes1,并将所述会话密钥的前半部分aes1真实、新鲜和保密地发 送给所述第二客户端。

会话密钥后半部分生成子模块60,用于通过所述第二客户端生成会话密 钥的后半部分aes2,并将所述会话密钥的后半部分aes2真实、新鲜和保密地发 送给所述第一客户端,以使所述第一客户端和所述第二客户端得到完整的会话 密钥AES。

优选地,如图8所示,第一公私钥对生成子模块10包括如下单元:

第一公私钥对生成单元11,用于通过所述第一客户端生成第一客户端的 公钥kea和第一客户端的私钥kda,并将所述公钥kea发送给所述服务器。

服务器数字签名单元12,用于所述服务器对接收到的公钥kea’进行数字签 名得到siga

第一发送单元13,用于通过所述服务器将所述公钥kea’和所述签名siga发送给所述第一客户端。

第一验证单元14,用于通过所述第一客户端验证所述签名siga并比较所 述公钥kea与所述kea’是否一致;当所述签名siga验证通过并且所述公钥kea与所述kea’一致时,启动所述第一客户端公钥发送子模块20的功能。

优选地,如图9所示,第一客户端公钥发送子模块20包括如下单元:

随机数生成单元21,用于通过所述第一客户端生成随机数ma,并根据所 述私钥kda对所述随机数ma进行解密得到Dma

第二发送单元22,用于通过所述第一客户端将所述公钥kea、所述签名siga和所述Dma,即<kea,siga,Dma>,发送给所述第二客户端。

第一加密单元23,用于通过所述第二客户端在接收到<kea’,siga’,Dma’>之 后,所述第二客户端验证所述签名siga’,所述第二客户端在所述签名siga’验证 通过后根据所述公钥kea’对所述Dma’进行加密得到ma’。

第三发送单元24,用于通过所述第二客户端将所述ma’发送到所述第一客 户端。

第二验证单元25,用于通过所述第一客户端判断所述ma与接收到的所述 ma’是否一致;当所述ma与接收到的所述ma’一致时,启动所述第二公私钥对 生成子模块30的功能。

优选地,如图10所示,所述会话密钥前半部分生成子模块50包括如下单 元:

会话密钥前半部分生成单元51,用于通过所述第一客户端生成会话密钥 的前半部分aes1,并根据所述私钥kda对所述aes1进行数字签名得到sigaes1

第二加密单元52,用于通过所述第一客户端通过所述公钥keb对所述aes1和所述sigaes1加密生成Eaes1,所述第一客户端将所述Eaes1发送给所述第二客户 端;

解密单元53,用于通过所述第二客户端在接收到Eaes1’之后,根据所述私 钥kdb对所述Eaes1’进行解密得到aes1’和sigaes1’。

第三验证单元54,用于通过所述第二客户端对所述sigaes1’进行验证;在 所述sigaes1’通过验证时,启动所述会话密钥后半部分生成子模块的功能。

本发明装置实施例与方法实施例使一一对应的,装置实施例中简略之处参 见方法实施例即可。

以上实施例中第一客户端与第二客户端完全基于商用移动智能终端实现, 除了要求用户保证自身所使用的移动智能终端的安全性(不存在恶意硬件以及 不被恶意软件如病毒木马等干扰)之外,不需要任何额外的硬软件设备以及任 何额外的安全假设(本发明默认网络通信环境是不可信的,即时通信服务器也 是不可信的),方便了普通用户使用,并降低了成本。但是,另一方面,本发 明也不排除对硬件设备进行改动,在特殊的应用条件下(如部队、公安等), 通过植入特殊硬件芯片(如采用可信计算思想的Trusted Platform Module,TPM 芯片,来提供相应密码运算和安全存储等安全功能)或者安全硬件改动(如利 用硬件模块进行可信密钥协商,以及透明加解密等)来实现本发明的系统架构, 也是完全可行的。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是 与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例 的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为 了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地 描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决 于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用 来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处 理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、 内存、只读存储器、电可编程ROM、电可檫除可编程ROM、寄存器、硬盘、 可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述 的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本 领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保 护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号