欢迎来真孝善网,为您提供真孝善正能量书籍故事!

即时通讯安全解析:第十篇——IM聊天系统通信连接层加密策略

时间:11-13 民间故事 提交错误

大家好,感谢邀请,今天来为大家分享一下即时通讯安全解析:第十篇——IM聊天系统通信连接层加密策略的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

但互联网在给我们的生活带来极大便利的同时,也带来了用户隐私和通信安全等问题。

对于IM应用开发者来说,信息沟通的开放性也意味着风险。用户对网络和移动设备的高度依赖,这也给犯罪分子提供了可乘之机。因此,提高即时通讯应用的安全性显得尤为重要。

本文将围绕IM通信连接层的安全问题及实现方案,重点关注IM网络的“链路安全”,希望对您有所启发。

(本文同步发表于:http://www.52im.net/thread-4015-1-1.html)

2、系列文章

本文是IM通信安全知识系列文章的第10篇。该系列总目录如下:

《即时通讯安全篇(一):正确地理解和使用Android端加密算法》

《即时通讯安全篇(二):探讨组合加密算法在IM中的应用》

《即时通讯安全篇(三):常用加解密算法与通讯安全讲解》

《即时通讯安全篇(四):实例分析Android中密钥硬编码的风险》

《即时通讯安全篇(五):对称加密技术在Android平台上的应用实践》

《即时通讯安全篇(六):非对称加密技术的原理与应用实践》

《即时通讯安全篇(七):如果这样来理解HTTPS原理,一篇就够了》

《即时通讯安全篇(八):你知道,HTTPS用的是对称加密还是非对称加密?》

《即时通讯安全篇(九):为什么要用HTTPS?深入浅出,探密短连接的安全性》

《即时通讯安全篇(十):IM聊天系统安全手段之通信连接层加密技术》(*本文)

《即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术》(稍后发布.)

3、即时通讯面临的安全问题

1)窃取内容:如果整个即时通讯过程中数据内容未加密或弱加密,则信息被拦截后可以直接读取。

那么,这就会导致用户数据(包括个人隐私数据)的泄露,甚至可能危及用户的财产安全(比如微信等即时通讯中,红包、钱包就会涉及到财产安全)。如果在办公场景下,公司的商业秘密可能被窃取,势必造成更大的经济损失。

2)篡改内容:如果通信内容在发送前被截获并修改,则信息的准确性和完整性将被破坏(这条消息不再是另一条消息)。

3)伪造内容:如果用户通信凭证(如代币)被盗取或通信过程中散布其他信息,则可能产生利用用户身份骗取通信人信任的可能性,奠定更大的安全性风险。

4)传播违法内容:不法分子利用即时通讯系统的消息推送能力,不仅可能传播涉及黄赌毒、暴力恐怖、危害国家安全的信息,还可能传播计算机木马病毒等;可能造成的危害范围将进一步扩大。

4、常用的互联网攻击手段

网络通信过程中常见的攻击方式:

1)移植木马:在终端上移植木马,拦截或篡改信息。

2)假冒应用程序:通过伪造APP或在APP中添加后门,使最终用户误将其当作正常应用程序使用,从而达到非法目的。

3)网络抓包:通过抓包网络设备获取用户通信内容。

4)中间人攻击:通过劫持DNS等手段,使用户通信连接经过攻击者的设备,从而达到窃取、篡改等目的。

5)漏洞挖掘:服务器或终端除自身程序外,还包含各种第三方组件或中间件,通过挖掘其中的漏洞可以达到非法目的。

从上面的图片和方法可以看出,聊天信息从应用程序通过网络到达服务器,这期间的任何链接都可能被利用。因此,在“危机四伏”的互联网通信中,“安全”必须得到重视。

5、密码学在即时通讯系统中的应用

5.1 基本常识

鉴于前述的安全问题和攻击手段,将密码学应用于即时通讯系统连接并对通信数据进行加密就显得尤为重要。

密码学解决了信息安全(CIA)的三个要素:

1)保密性:确保信息不泄露给未经授权的用户;

2)完整性:保证信息从真实的发送者传输到真实的接收者,并且在传输过程中不被非法用户添加、删除、替换等;

3)可用性:保证授权用户能够及时、可靠地访问数据。

上面的表达方式看起来有点绕,我们改成更通俗的表达方式吧。

密码学在网络通信中的三大功能是:

1)加密:防止坏人获取您的数据;

2)身份验证:防止坏人在您不注意的情况下修改您的数据;

3)身份验证:防止坏人冒充您的身份。

除了CIA之外,还需要实现一些属性,比如可控性(Controllability)和不可否认性(Non-Repudiation)。

5.2 在即时通讯中的应用

作为即时通讯中的关键组件,为了实现消息的快速实时传递,IM即时通讯系统一般要求客户端与服务器建立长套接字连接,以快速将消息传递到客户端。

通常即时通讯客户端会使用TCP或UDP与服务器建立连接。在某些场景下,HTTP也会被用来从服务器获取或者提交一些信息。

整个过程中所有数据都需要加密。简单的数据加解密过程可以概括为:发送方输入明文加密生成密文发送密文接收方解密得到明文。

这将包括:

1)对称加密算法(详见《对称加密技术在Android平台上的应用实践》)

2)非对称加密算法(详见《非对称加密技术的原理与应用实践》);

3)信息汇总算法(详见《常用加解密算法与通讯安全讲解》)。

其中,我国也有自己的一套密码算法(国密算法):国密算法,即国家商用密码算法,是国家密码管理局认可并发布的密码算法标准及其应用规范。其中一些密码算法已成为国际标准。例如SM商用系列密码:对称加密算法SM4、非对称加密算法SM2、信息摘要算法SM3。

6、通信连接层的会话加密

对于连接级(链路级)的加密,首先要考虑的是基于SSL/TLS协议的链路加密(如微信的做法:《微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解》),这是现代网络通信安全的基石。

很多人认为SSL/TLS协议是附属于HTTP协议的,是HTTPS的一部分(具体参见《为什么要用HTTPS?深入浅出,探密短连接的安全性》)。

事实上,这种认识并不完全正确。 SSL/TLS独立于应用层协议,高层协议可以透明地分布在SSL/TLS协议上。因此,基于socket长连接的IM即时通讯协议也可以建立在SSL/TLS协议之上。

SSL/TLS 独立于应用层协议:

SSL/TLS可以简单概括为:采用基于公私钥体系的非对称加密算法来传输对称加解密算法的密钥,并基于相同的对称加解密算法对后续的通信数据包进行加密和加密。双方的密钥。并进行传输,以达到保证数据通信安全的目的。

非对称加密算法中的公钥和私钥在数学上是相关的,所以一个可以用来加密,另一个可以用来解密。然而,尽管相关,但无法使用现有的数学算法从一个密钥计算另一个密钥。

另外需要强调的是:系统中不要使用自签名证书,而是使用有CA认证的证书,这样可以有效防止中间人攻击。

7、基于SSL/TLS的通信连接层如何实现会话的快速恢复

7.1 概述

客户端和服务器建立SSL/TLS握手时,需要完成很多步骤:密钥协商导出会话密钥、数字签名认证、消息验证码MAC等。

整个握手阶段最耗时的部分是密钥协商,需要密集的CPU处理。当客户端和服务器断开此会话时,之前连接时协商的会话密钥就会消失。下次客户端连接到服务器时,将执行新的完整握手阶段。

这看起来可能不是问题,但是当系统在一定时间内提交大量的连接请求时,就会占用大量的服务器资源,导致网络延迟增加。

为了解决上述问题,TLS/SSL协议提供了会话恢复方法,允许客户端和服务器在关闭连接后,下次访问连接时恢复之前的会话连接。

会话恢复有两种类型:

1)一种是根据Session ID进行恢复;

2) 一种是使用Session Ticket TLS扩展。

我们来看看这两种方法的优缺点。

7.2 基于Session ID的SSL/TLS长连接会话恢复

一次完整的握手阶段完成后,客户端和服务器都会保存此Session ID。

当此会话关闭且下次再次连接时:客户端将此会话ID 值附加到Client Hello 子消息中。服务器收到请求后,将Session ID与服务器缓存中保存的Session ID进行匹配。

如果匹配成功:服务器将恢复上次的TLS 连接并使用之前协商的密钥,而无需重新协商密钥。服务器收到带有Session ID的Client Hello并匹配成功后,直接发送ChangeCipherSpec子协议。告诉TLS记录层将连接状态切换为可读写,完成会话恢复。

基于Session ID的会话恢复原理:

虽然使用Session ID进行会话恢复可以减少耗时的步骤,但由于Session ID主要存储在服务器的Server Cache中,如果由于负载均衡的设置,请求被重定向到另一台服务器,那么新的服务器就会在Server Cache中不缓存与客户端匹配的Session ID,会话不会被恢复,也无法恢复。因此,不建议使用Session ID方式进行会话恢复。

7.3 基于SessionTicket的SSL/TLS长连接会话恢复

一次完整的握手过程后,服务器对会话数据(会话标识符、证书、密码套件和主密钥等)进行加密,加密后生成票据,并通过NewSessionTicket子消息将票据发送给客户端,客户端将保存它。客户端将把票连同下一次连接一起发送到服务器。服务器解密并验证正确后,即可恢复之前的会话。

基于SessionTicket的会话恢复原理:

由于加密和解密是在服务器端闭环进行的,多个服务只需共享密钥即可完成该过程。与Session ID方式相比,它不依赖于Server Cache,因此SessionTicket会话恢复方式更有利于大型分布式系统。使用。

8、本文小结

本文分享IM即时通讯的通信连接层安全知识和加密技术。

并强调了两个方面。首先,在IM即时通讯系统中使用经过CA认证的SSL/TLS证书,可以保证传输安全,防止传输过程被监听,防止数据被窃取,确认连接的真实性。其次,使用SessionTicket快速恢复会话可以提高系统整体性能并减少连接延迟。

本文下一篇《即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术》将继续分享基于IM传输的端到端加密技术内容,敬请期待。

9、参考资料

[1] TCP/IP详解-第11章·UDP:用户数据报协议

[2] TCP/IP详解-第十七章TCP:传输控制协议

[3]懒人网络编程入门(三):一篇文章足以快速理解TCP协议

[4]懒人网络编程入门(四):快速理解TCP和UDP的区别

[5] 零基础IM开发入门(二):IM系统的实时性是什么?

[6] 对称加密技术在Android平台的应用实践

[7]非对称加密技术原理及应用实践

[8]常用加解密算法及通信安全讲解

[9]微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解

[10]为什么使用HTTPS?简单了解短连接的安全性

关于即时通讯安全解析:第十篇——IM聊天系统通信连接层加密策略的内容到此结束,希望对大家有所帮助。

用户评论

╯念抹浅笑

我对网络安全一直很关注,这篇文章正好触及了我的痛点。

    有8位网友表示赞同!

空谷幽兰

聊天的内容安全性确实很重要,加密技术是必不可少的保障。

    有7位网友表示赞同!

还未走i

不知道具体哪些应用用的这种加密技术,可以详细介绍一下吗?

    有18位网友表示赞同!

凉城°

通信连接层加密,听起来很专业了!希望能讲得更通俗易懂.

    有16位网友表示赞同!

◆乱世梦红颜

我觉得除了加密,还有其他安全手段也很重要吧?

    有12位网友表示赞同!

灬一抹丶苍白

以前没想过聊天软件也有这么高层次的安全技术

    有7位网友表示赞同!

高冷低能儿

学习学习,我要看一看哪种加密技术最有效。

    有16位网友表示赞同!

娇眉恨

网络安全越来越重要了,我们应该做好防护措施。

    有13位网友表示赞同!

清羽墨安

分享一下你对常见 IM 系统安全现状的看法吧!

    有15位网友表示赞同!

封锁感觉

我好奇这种技术在实战中是如何应用的?

    有8位网友表示赞同!

此生一诺

希望能详细介绍一下不同加密技术的优缺点比较.

    有13位网友表示赞同!

挽手余生ら

对安全意识薄弱的用户,应该如何提高他们的安全认知呢?

    有6位网友表示赞同!

惦着脚尖摘太阳

文章能不能结合一些例子,让大家更容易理解这些技术?

    有11位网友表示赞同!

服从

除了聊天内容的安全问题,还有哪些方面需要我们关注?

    有19位网友表示赞同!

ゞ香草可樂ゞ草莓布丁

感觉学习一下网络安全知识真的很有必要!

    有9位网友表示赞同!

猫腻

希望这篇文章能帮助大家保护自己的隐私数据!

    有17位网友表示赞同!

旧爱剩女

对加密技术很感兴趣,想了解更深入的内容。

    有11位网友表示赞同!

念安я

网络世界越来越复杂,我们必须重视信息安全的保护。

    有6位网友表示赞同!

她最好i

看来要不断学习才能跟上网络安全的发展步伐呀!

    有16位网友表示赞同!

┲﹊怅惘。

希望以后能看到更多关于网络安全方面的文章!

    有16位网友表示赞同!

【即时通讯安全解析:第十篇——IM聊天系统通信连接层加密策略】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活