在消息产生、流转的各个环节中,需要保证消息传输安全性、消息存储安全性、消息内容安全性。

一、消息传输安全性

消息传输的重要防范点有两个,一是访问入口安全,二是传输链路安全。
1.HttpDNS保证访问入口安全
访问入口指的是即时消息服务中提供的一个公网的接入服务,作为用户收发消息的出入口,它通过域名的方式提供给客户端。常见的问题有DNS劫持。
DNS劫持的原因
1)路由器的DNS设置被非法侵入篡改;
2)运营商的LocalDNS可能会导致接入域名的解析被劫持。
这里先解释一下:LocalDNS是部分运营商为了降低跨网流量,缓存部分域名的指向内容,把域名强行指向自己的内容缓存服务器的IP地址。

  • 运营商可能会修改DNS的TTL(time-to-live,DNS缓存时间),导致DNS的变更生效延迟,影响服务可用性。
  • 运营商可能为了减轻自身的资源压力,把DNS请求转发给其他运营商解析,这样分配的IP地址可能存在跨运营商访问的问题,导致请求变慢甚至不可用。

防止DNS劫持的方法
1)如果是路由器的DNS被篡改,可以重置路由器的配置,修改路由管理登录密码。
2)如果是运营商LocalDNS的域名劫持和调度错误,可以使用HttpDNS。

  • HttpDNS绕开了运营商的LocalDNS,通过HTTP协议来直接和DNS服务器交互,有效防止域名被运营商劫持。
  • HttpDNS服务器能够获取到真实的用户出口IP,因而能选择离用户更近的节点进行接入,或者一次返回多个接入IP,使客户端通过测速等方式选择速度更快的接入IP,使接入调度更精准。

2.TLS传输层加密协议保证传输链路安全
消息传输链路出现问题主要有以下几个原因:
1)中断:攻击者破坏或切断网络,破坏服务可用性,属于主动攻击;
2)截获:攻击者非法窃取传输的消息内容,属于被动攻击;
3)篡改:攻击者非法篡改传输的消息内容,破坏消息的完整性和真实语义;
4)伪造:攻击者伪造正常的通讯消息模拟正常用户或者模拟IM服务端。

针对第一种原因,可以采取多通道方式提升链路可用性,从而解决消息链路中断;
针对后三种原因,可以利用私有协议和TLS(消息内容加密)进行防控

TLS巧妙地把“对称加密算法”、“非对称加密算法”、“密钥交换算法”、“消息认证码算法”、“数字签名证书”、“CA认证”进行结合,有效地解决了消息传输过程中的截获、篡改、伪造问题。

二、消息存储安全性

如果消息存储在服务端,不管消息内容是明文还是密文,都会存在泄露的风险。保证消息内容存储安全性的最好方式是:
1.消息内容不在服务端存储(这个没啥好说的,估计大部分场景都需要存储在服务端);
2.消息内容采用“端到端加密”(E2EE),中间任何链路环节都不对消息进行解密,这样除了收发双方,其它任何中间环节都无法获取消息原文内容。

“端到端加密”之所以更加安全,是因为和服务端TLS加密不一样。
它是由通信双方各自生成密钥对并进行公钥的交换,私钥各自保存在本地不给到IM服务端。
发送方的消息使用接收方的公钥来进行加密,因此即使IM服务端拿到了加密消息,也会因为没有接收方的私钥无法解密。

三、消息内容安全性

内容安全性主要指的是内容的识别和传播的控制,一般依托于第三方的内容识别服务来进行防范。常见的方案有:
1.建立敏感词库,针对文字内容进行安全识别。
2.依托图片识别技术来对色情图片/视频/广告、涉政图片等进行识别、处理。
3.使用“语音转文字”和OCR(图片文本识别)辅助图片、语音的进一步挖掘识别。
4.通过爬虫技术对链接进行分析,识别“风险外链”。

对于IM服务端来说,要做的是建立与“识别”配套的惩罚处置机制,比如识别到群里有人发色情图片,就对该用户进行“禁言”处理,或者进行“解散群”的操作,具体业务具体分析。

《即时消息技术剖析与实战》学习笔记6——IM系统如何保证消息的安全性的更多相关文章

  1. 《即时消息技术剖析与实战》学习笔记4——IM系统如何保证消息的可靠性

    IM 系统中,保证消息的可靠投递主要体现在两方面,一是消息的不丢失,二是消息的不重复. 一.消息不丢失 消息丢失的原因 首先看一下发送消息的流程,如下图所示: 消息.可以采取"时间戳比对&q ...

  2. 《即时消息技术剖析与实战》学习笔记5——IM系统如何保证消息的一致性

    一.什么是消息一致性 消息一致性指的是消息的时序一致性,即消息收发的一致性.如果不能保证时序一致性,就会造成聊天语义不连贯,引起误会. 对于点对点的聊天场景,时序一致性保证接收方的接收顺序和发送方的发 ...

  3. 《即时消息技术剖析与实战》学习笔记3——IM系统如何保证消息的实时性

    IM 技术经历过几次迭代升级,如图所示: 从简单.低效的短轮询逐步升级到相对效率可控的长轮询: 全双工的 Websocket 彻底解决了服务端的推送问题: 基于 TCP 长连接衍生的 IM 协议,能够 ...

  4. 《即时消息技术剖析与实战》学习笔记1——IM系统的架构

    一.IM的应用场景 聊天.直播.在线客服.物联网等所有需要实时互动.高实时性的场景,都需要应用到 IM 技术.

  5. 《即时消息技术剖析与实战》学习笔记12——IM系统如何提升图片、音视频消息发送、浏览的体验

    IM系统如何提升用户发送.浏览图片和音视频消息的体验呢?一是保证图片.音视频消息发送得又快又稳,二是保证用户浏览播放图片.音视频消息时流畅不卡顿. 一.提升用户发送图片.音视频的体验 1. 多上传接入 ...

  6. 《即时消息技术剖析与实战》学习笔记11——IM系统如何保证服务高可用:流量控制和熔断机制

    IM 系统的不可用主要有以下两个原因: 一是无法预测突发流量,即使进行了服务拆分.自动扩容,但流量增长过快时,服务已经不可用了: 二是业务中依赖的这些接口.资源不可用或变慢时,比如发消息可能需要依赖& ...

  7. 《即时消息技术剖析与实战》学习笔记7——IM系统的消息未读

    一.什么是消息未读 消息未读包括会话未读和总未读.前者指的是当前用户和某一聊天方的未读消息数,后者指的是当前用户的所有未读消息数,也就是所有会话未读的和.比如用户A收到用户B的2条消息,还收到用户C的 ...

  8. 《即时消息技术剖析与实战》学习笔记8——IM系统如何保证长连接的可用性:心跳机制

    假设有以下突发意外情况: 用户进入信号不好的地方,手机没有网络信号了 上网的路由器突然掉线了 这个时候,比如微信发消息,消息就会转圈圈,甚至变成红色叹号-- 上面情况都会导致"长连接&quo ...

  9. 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游

    一.什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录.如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年. ...

随机推荐

  1. Docker入门与简单使用

    前言:  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上.近几年来,Docker 在国内发展的如 ...

  2. 155--MinStack

    /* 解法一:使用链表从0实现栈,用min来存放最小值. 复杂的地方是,如果pop了最小的数,就要遍重新找到最小的数. */ public class MinStack { List<Integ ...

  3. URL 路由系统 + views 函数

    一.URL URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段 ...

  4. linux open 黄色文件

    表示设备文件 生成的新的pdf

  5. 201871010109-胡欢欢《面向对象程序设计(java)》第十周学习总结

    201871010109-胡欢欢<面向对象程序设计(java)>第十周学习总结 博文正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...

  6. Nginx的负载均衡配置(七)

    原文链接:https://www.cnblogs.com/knowledgesea/p/5199046.html 首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置 ...

  7. Java编译期与运行期

    编译期:是指把源码交给编译器编译成计算机可以执行的文件的过程.在Java中也就是把Java代码编成class文件的过程.编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本 ...

  8. LG2530 「SHOI2001」化工厂装箱员 高维DP+记忆化搜索

    问题描述 LG2530 题解 设\(opt[i][a][b][c][d]\)代表装到第\(i\)个后,第\(1,2,3\)手上分别还剩\(a,b,c\)个的最小操作数. 记忆化搜索即可. 启示:如果状 ...

  9. web框架--tornado之cookie与session初识

    cookie的本质其实就是在浏览器端保存的键值对, 每当浏览器端发送一次请求, 都会将这些键值对附加在请求中并发送给服务器端. 一.目录结构 二.main_pro.py #!/usr/bin/env ...

  10. CSP-S2019游记 执枪的人,一定要做好被杀的觉悟。

    啊,大概是人生中最镇定的三天了. 是了. Day0 教练超级巨,给了我们电话说出去要散养,有事别慌,打电话.身份证丢了别慌,打电话.火车误了别慌,打电话... 然后去了就路上颓颓颓.然后过去试机,打了 ...