探讨组合加密算法在IM中的应用

简介: 本文深入分析了即时通信(IM)系统中所面临的各种安全问题,综合利用对称加密算法(DES算法)、公开密钥算法(RSA算法)和Hash算法(MD5)的优点,探讨组合加密算法在即时通信中的应用。

1、前言

本文深入分析了即时通信(IM)系统中所面临的各种安全问题,综合利用对称加密算法(DES算法)、公开密钥算法(RSA算法)和Hash算法(MD5)的优点,探讨组合加密算法在即时通信中的应用。

技术交流:

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM

- 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK备用地址点此

本文已同步发布于:http://www.52im.net/thread-217-1-1.html

2、IM安全系列文章

本文是IM通讯安全知识系列文章中的第2篇,总目录如下:

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

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

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

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

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

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

即时通讯安全篇(七):用JWT技术解决IM系统Socket长连接的身份认证痛点

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

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

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

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

即时通讯安全篇(十二):IM聊天系统安全手段之传输内容端到端加密技术

即时通讯安全篇(十三):信创必学,一文读懂什么是国密算法

即时通讯安全篇(十四):网络端口的安全防护技术实践

即时通讯安全篇(十五):详解硬编码密码的泄漏风险及其扫描原理和工具

3、即时通信应用所面临的安全问题

即时通信系统大都采用C/S、B/S、P2P等技术来实现即时通信的功能,软件编制没有统一的标准,使得IM系统本身存有多种安全漏洞,加上用户缺乏安全意识,导致在使用即时通信系统时出现各种安全问题。

3.1 信息窃取问题

目前的IM系统在交换信息或传输文件时仅仅采用了弱加密甚至不加密的方式,攻击者利用此缺陷监听、窃取重要数据,这种泄密可能性给企业或个人造成不可估量的损失,尤其是对一些特殊行业,如金融和证券等行业,将会构成巨大的商业安全威胁,这种攻击的类型是对信息机密性的攻击。

3.2 信息篡改问题

信息篡改又称中间人攻击,是攻击者试图在IM系统信息交互过程中,通过监听、窃取正常的信息流,对信息进行修改后再发往信息接收方。只要信息存在,就可能出现这种攻击,它还可能攻击传输中的信息,这种攻击的类型是对信息完整性的攻击。

3.3 信息伪造问题

在现有的IM系统中,接收方一般只根据发送方的ID或发送过来的简单信息进行确认,这样就给攻击者提供了机会。攻击者通过令人误导的昵称或者迷惑性的语言,骗取对方的信任,从而套取信息、诈骗或达到其他不良目的。这种攻击的类型是对信息真实性的攻击。

3.4 其他问题

由于IM系统的文件传输采取了P2P模式,它可以将文件作为附件通过点对点方式传送,而绕过网络周边安全防御设备。由于点对点隧道直接传至桌面计算机,因此受感染的文件借即时通信系统就能绕过防病毒网关的扫描,各种病毒如蠕虫、特洛伊木马等可以借此轻松地进入网络,很多被病毒感染的文件则可能利用即时通信系统进行传播。

攻击者也可以用缓冲区溢出、拒绝服务等攻击方式,通过IM系统的安全漏洞对整个网络系统进行攻击或传播病毒。

4、主流的加密算法介绍

4.1 对称加密:DES算法

DES即数据加密标准,这种加密算法是由IBM研究提出来的, 是一种分组密码,它用于对64比特的数据进行加密和解密。DES算法所用的密钥也是64比特,但由于其中包含了8个比特的奇偶校验位,因而实际的密钥长度是56比特。DES算法多次组合替代算法和换位算法,利用分散和错乱的相互作用,把明文编制成密码强度很高的密文。DES算法的加密和解密的流程是完全相同的,区别仅仅是加密与解密使用子密钥序列的顺序正好相反n1。DES算法属于对称加密算法,即加密和解密共享同一个密钥,主要用于解决数据机密性问题。

4.2 公开密钥算法:RSA算法

RSA算法作为惟一被广泛接受并实现的通用公共密钥加密方法,是众多阐述非对称密码体制的算法中最具代表性的,几乎成了公开密钥密码学的同义词。它是麻省理工大学的Rivest,Shamir和Adleman(RSA算法即为三人名字的缩写)于1977年研制并于1978年首次发表的一种算法。该算法的数学基础是数论的欧拉定理,它的安全性依赖于大数的因子分解的困难性,该算法至今仍没有发现严重的安全漏洞。RSA使用两个密钥,一个是公钥(PubHc Key),另一个是私钥(Private Key)加密时把明文分戍块,块的大小可变,但不超过密钥的长度。RSA把明文块转化为与密钥长度相同的密文。其算法如下:

首先选择两个相异大质数p、q,计算n=pq,取小于n的数e与(p-l)(q-l)互质。根据给定的e,再选择d满足ed除以z的模余数是1(即满足ed mod (p-l)(q-l)=1),根据欧几里得算法(a=bn+c,则a与b的最大公因子就等于b与c的最大公因子),这样的d-定可以找到。这样数对(n,e)为公钥,数对(n,d)为私钥在编码时,假设资料为A,将其分戍等长数据N块,每块为nKn。计算C=llle mod n,则c就是编码后的资料。至于解码,取III=Cd mod n。黑客攻击时怨得到e,这样就必须对n进行因式分解,选择足够大的质数p、q便能阻止分解因式。

对于p、q的选择,一般来说是足够大的素数,对于大数,并没有一个确定的界限,因为随着计算机技术的发展,破解能力正在逐步增强(根据摩尔定理计算能力18个月就翻一番)。RSA实验室的建议是,安全性要求相对较低时,p和q的乘积达到768位;安全性要求相对较高时,乘积达到1024位以上。

RSA算法还可以用于“数字签名”,即用私钥进行加密,公钥来解密。

4.3 Hash算法:MD5算法

MD5算法并不是加密算法,但却能形成信息的数字“指纹”,主要用途是确保数据没有被篡改或变化过,以保证数据的完整性。MD5算法有三个特性:

  • 1)能处理任意大小的信息,并生成固定长度128位的信息摘要;
  • 2)具有不可预见性,信息摘要的大小与原始信息的大小没有任何联系,原信息的每一个微小变化都会对信息摘要产生很大的影响;
  • 3)具有不可逆性,没有办法通过信息摘要直接恢复原信息。

5、应用探讨:组合加密算法实现即时通信系统的认证模型

本文综合利用以上算法的优点,在IM系统中建立以下消息发送模型,以解决IM系统所面临的信息窃取、篡改、伪造等安全问题。模型中用户A和B为IM系统的客户端,用户A和B之间彼此拥有对方的公钥或数字证书,A向B发送消息,其全过程如图1所示。

对于IM系统中蠕虫病毒感染安全问题的处理,通过以下模型进行处理,如图2所示。

6、应用探讨:组合加密算法实现即时通信系统的通信模型

按照以上加密认证模型,建立如图3所示的安全即时通信系统的实现模型,该模型包含两个层次的认证,一是服务器与客户机之间的双向认证,二是客户机与客户机之间的双向认证,即在两端连接发送数据之前,必须协商并交换密钥信息。服务器作为自签署证书的CA认证中心,认证的所采用的密码技术极为公开密密钥技术。

模型中的公开密钥技术充当了加密共享密钥和数字签名的作用,以解决服务器与客户机、客户机与客户机之间的身份鉴别和客户机之间进行数据通信的密钥传输问题。在Java密码术体系结构中,密钥生成和操作可以使用keytool程序来执行。

7、应用探讨:组合加密算法应用模型的安全性及效率分析

在以上模型中,利用对称加密算法处理消息、文件的加密,以解决信息、文件传送的机密性问题,具有加密速度快的特点;用公开密钥算法的加密技术解决了对称密钥在网络中明文传输问题;用Hash算法计算出摘要,再通过公开密钥算法的数字签名技术对摘要进行签名,既提高了效率,又保证了信息文件传输的鉴别和不可否认性;在文件处理过程中,通过病毒扫面和组合加密双重处理,减少了网络中文件传输病毒蠕虫感染的几率。

更多有关IM安全和架构资料

[1] 传输层安全协议SSL/TLS的Java平台实现简介和Demo演示

[2] 理论联系实际:一套典型的IM通信协议设计详解(含安全层设计)

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

[4] 来自阿里OpenIM:打造安全可靠即时通讯服务的技术实践分享

[5] 简述实时音视频聊天中端到端加密(E2EE)的工作原理

[6] 移动端安全通信的利器——端到端加密(E2EE)技术详解

[7] Web端即时通讯安全:跨站点WebSocket劫持漏洞详解(含示例代码)

[8] 通俗易懂:一篇掌握即时通讯的消息传输安全原理

[9] IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

[10] 快速读懂量子通信、量子加密技术

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

[12] 一分钟理解 HTTPS 到底解决了什么问题

[13] 一篇读懂HTTPS:加密原理、安全逻辑、数字证书等

[14] 基于Netty的IM聊天加密技术学习:一文理清常见的加密概念、术语等

[15] 手把手教你为基于Netty的IM生成自签名SSL/TLS证书

[16] 微信技术分享:揭秘微信后台安全特征数据仓库的架构设计

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

[18] 零基础IM开发入门(三):什么是IM系统的可靠性?

[19] 零基础IM开发入门(四):什么是IM系统的消息时序一致性?

[20] 新手入门一篇就够:从零开发移动端IM

[21] 转转平台IM系统架构设计与实践(一):整体架构设计

[22] 基于实践:一套百万消息量小规模IM系统技术要点总结

[23] 一套亿级用户的IM架构技术干货(上篇):整体架构、服务拆分等

[24] 一套亿级用户的IM架构技术干货(下篇):可靠性、有序性、弱网优化等

[25] 一套海量在线用户的移动端IM架构设计实践分享(含详细图文)

[26] 一套原创分布式即时通讯(IM)系统理论架构方案

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

目录
相关文章
|
1月前
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
63 15
|
2月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
26天前
|
分布式计算 并行计算 算法
MapReduce在实现PageRank算法中的应用
总结来说,在实现PageRank算法时使用MapReduce能够有效地进行大规模并行计算,并且具有良好的容错性和可扩展性。
131 76
|
21天前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
23 3
|
1月前
|
人工智能 自然语言处理 供应链
从第十批算法备案通过名单中分析算法的属地占比、行业及应用情况
2025年3月12日,国家网信办公布第十批深度合成算法通过名单,共395款。主要分布在广东、北京、上海、浙江等地,占比超80%,涵盖智能对话、图像生成、文本生成等多行业。典型应用包括医疗、教育、金融等领域,如觅健医疗内容生成算法、匠邦AI智能生成合成算法等。服务角色以面向用户为主,技术趋势为多模态融合与垂直领域专业化。
|
1月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
1月前
|
人工智能 自然语言处理 算法
DeepSeek大模型在客服系统中的应用场景解析
在数字化浪潮下,客户服务领域正经历深刻变革,AI技术成为提升服务效能与体验的关键。DeepSeek大模型凭借自然语言处理、语音交互及多模态技术,显著优化客服流程,提升用户满意度。它通过智能问答、多轮对话引导、多模态语音客服和情绪监测等功能,革新服务模式,实现高效应答与精准分析,推动人机协作,为企业和客户创造更大价值。
186 5
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepSeek 实践应用解析:合力亿捷智能客服迈向 “真智能” 时代
DeepSeek作为人工智能领域的创新翘楚,凭借领先的技术实力,在智能客服领域掀起变革。通过全渠道智能辅助、精准对话管理、多语言交互、智能工单处理、个性化推荐、情绪分析及反馈监控等功能,大幅提升客户服务效率和质量,助力企业实现卓越升级,推动智能化服务发展。
107 1
|
1月前
|
存储 人工智能 算法
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
阿里云向量检索服务Milvus 2.5版本在全文检索、关键词匹配以及混合检索(Hybrid Search)方面实现了显著的增强,在多模态检索、RAG等多场景中检索结果能够兼顾召回率与精确性。本文将详细介绍如何利用 Milvus 2.5 版本实现这些功能,并阐述其在RAG 应用的 Retrieve 阶段的最佳实践。
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
|
2月前
|
存储 缓存 监控
企业监控软件中 Go 语言哈希表算法的应用研究与分析
在数字化时代,企业监控软件对企业的稳定运营至关重要。哈希表(散列表)作为高效的数据结构,广泛应用于企业监控中,如设备状态管理、数据分类和缓存机制。Go 语言中的 map 实现了哈希表,能快速处理海量监控数据,确保实时准确反映设备状态,提升系统性能,助力企业实现智能化管理。
45 3

热门文章

最新文章