当前位置:文档之家› 微信加密通信原理分析

微信加密通信原理分析

间的数据通信或者异构环境下的数据交换 , 作为一种效 率和兼容性都很优秀的二进制数据传输格式 , 可以用于 诸如网络传输 、 配置文件 、 数据存储等诸多领域 , 属于开 源项目 。
3 微信通信系统登录验证程序和通信程序
3.1 移动端微信通信登录验证流程
移动端微信登录验证 ( 初始化 ) 流程 。
AES 的 加 密 强 度 是 56 位 DES 加 密 强 度 的 1021 倍 还
也就无法解密服务器返回验证包密 文 , 微信的通信流程环环相扣 , 普通 手 段 除 非 暴 力 破 解 AES 密 钥 否 则 无法获取通信内容 。
3.2 移动端微信通信交互流程
根据上面登录过程 , 客户端解 密验证包后 , 会从验证包里得到一 个从服务器计算出来的一个随机的
AES 密钥 , 以后的通信过程都是通
字符串转化成不同页码对应的编码 , 表现为 byte[] 形式 , 再将 Byte[] 字节流明文发送 。 多 , 假设可以制造一部可以在 1 秒内破解 DES 密码的 机器 , 那么使用这台机器破解一个 128 位 AES 密码需 要大约 149 亿万年的时间 。
AES 具体加解密流程如图 2 所示 。
1 引言
微信是由腾讯公司开发的社交软件 , 用户可使用该 软件发送语音 、 视频 、 图片和文字 。 微信的系统使用平台 包括手机 、 平板 、 个人电脑等 , 新版本微信增加了公众平 台 、 朋 友 圈 和 消 息 推 送等 功 能 , 作 为 一 个 大 众 化 的 社 交 软 件 , 微 信 现 在 已 经拥 有 了 6 亿 用 户 , 日 均 活 跃 用 户 超 过 1 亿 。 现阶段微信已经成为中国网络最主流的社交软 件 , 其通信的安全保密性也一直为大家所关注 。 本文 介 绍 了 微 信 所 使 用 的 通 信 保 密 算 法 和 通 信 流 程 , 其基于 RSA 加密 、 随机 AES 私钥的加密方式设计是 通信保密的关键核心 , 也是目前绝大部分移动终端社交 软件的主流加密方式 。 在现有技术能力下 , 破解密钥 、 获 取微信通信内容的难度较大 。
Python 三种语言的 API。 Protocol Buffer 还有一个非常重要的优点就是可 以
保证同一消息报文新旧版本之间的兼容性 。 它独立于语 言 , 独 立 于 平 台 。 由 于 它 是 一种 二 进 制 的 格 式 , 比 使 用
xml 进行数据交换快许多 。 可以把它用于分布式应用之
软 件 中 较 为 常 用 的 RSA 密 钥 和 AES 随 机 密 钥 加 密 算 法 , 其加密方式在现有通信社交软件中属于最高加密等 级 , 破解其加密算法具有极大的难度 。 微信通信中用到的几种加密算法 。
2.1 RSA 公钥加密算法
RSA 加密算法 : 目前最有影响力的公钥加密算法 ,
从提出到现在已近二十年 , 能够抵抗到目前为止已知的 所有密码攻击 , 已被 ISO 推荐为公钥数据加密标准 。
【 Abstract 】Based on secure communication principle of mobile client, this article discusses communication method of Micro letter system which is the mainstream of social software and the encryption principle of the Micro letter at the present. The design of RSA encryption and AES private key encryption method based on random key is the most important part of communication security. It is also currently the encryption method of the mainstream majority of mobile social software. 【 Keywords 】micro letter ;rsa encryption method;random aes private key
过 这 个 随 机 的 AES 密 钥 进 行 加 解 密通信 。 微信的通信传输 ( 文字聊天 、 语 音等数据 ) 全部是基于随 机 AES 密 钥 , 换句话来说 , 掌握了这个随机
AES 密钥就能够获Байду номын сангаас其通信内容 。
Æ Ç È C D E F G Á Â Ã Ä Å Ä Å É 5 A B 6 Æ Ç È É Á Â Ã ! " # $ % & ' ( Æ Ç È ( ) ) 0 1 0 2 3 4 5 Æ Ç 6 7 8 9 @ 3 4 ! " # $ % & A B ' Å
3) 使用 CER 证书 的 公 钥 对 byte[] 字 节 流明 文 进 行
加密操作 , 以 byte[]密文形式发送 。 相对应解密流程 :
1) 将公钥转化为 PFX 证书的 私 钥 , 使 用 PFX 证 书
的 私 钥 对 byte[] 密 文 进 行 解 密 , 还 原 为 byte[] 明 文 字 节 流。
The Analysis and Research of Micro Letter Encryption on the Mobile Client and Reverse Break Mode
Qu Xiao-hai Xue Zhi (School of Information Security Engineering,Shanghai Jiao Tong University Shanghai 200240)
2.2 AES 随机密钥加密算法
AES 是一 个 新 的 可 以 用 于 保 护电 子 数 据 的 加 密 算
法 。 明确地说 ,AES 是一个迭代的 、 对称密钥分组的密 码 , 它 可 以 使 用 128、192 和 256 位 密 钥 , 并 且 用 128 位 (16 字节 ) 分组加密和解密数据 。 与公共密钥密码使用 密钥对不同 , 对称密钥密码使用相同的密钥加密和解密 数据 。 通过分组密码返回的加密数的位数与输入数据相 同 。 迭代加密使用一个循环结构 , 在该循环中重复置换 (Permutations ) 和替换 (Substitutions) 输 入 数 据 。 这 个标 准用来替代原先的 DES, 已经被多方分析且广为全世界 所使用 。 微信通信中使用的 128 位的 AES 随机密钥 ,128 位
RSA 属于公开密钥密码体制 。 所谓的公开密钥密码
体制 就 是 使 用 不 同 的 加 密密 钥 与 解 密 密 钥 , 是 一 种 “ 由 已知加密密钥推导出解密密钥在计算上是不可行的 ” 密 码体制 。
RSA 属于 非 对 称 算 法 , 公 钥 加 密私 钥 解 密 , 或 者 私
钥 加 密公 钥 解 密 , 公 钥 和 私 钥 的关 系 是 唯 一 的 , 公 钥 不 等于私钥 。 RSA 安全性在于密钥的长度 , 密钥长度越长 , 安全系数越高 , 微信用的 1024 位的密钥 , 据说目前计算 机速度破解需要 2 年 。
AES 密钥 ( 每次生成的密钥都是随
机的没有规律可言 ) 是由客户端随 机 生 成 包 含 在 RSA 加 密 的 登 录 包 里面 , 也就是说 RSA 私钥在整个通 信 服 务 里 无 法 获 取 ,RSA 解 密 无 法 进行的情况下, 就无法获取随机
AES 密钥 , 无法获取随机 AES 密钥
信息安全与技术 ·2014 年 1 月 · 13 ·
2 微信通信系统所使用的加密算法和通信 协议
微信 系 统 所 使 用 的 加 密 算 法 是 现 下 绝 大 部 分 通 信
Theoretical Discussion · 理论探讨
RSA 加密算法加密流程 。 1) 加密端产生明文字符串 , 获取 CER 认证公钥 。 2) 加 密 机 制 通 过 Encoding 指 定 不 同 的 代 码 页 , 把
3) 服务器对用户账号密码进行
校验 , 确认用户身份后产生一个验 证包 , 并使用 AES 密钥加 密 成 验 证 包密文并发送给客户端 。
4) 客户端接收验证包密文后 ,
使用 AES 密钥进行解密 , 获 取验 证 信息 。 之后的通信内容均使用 AES 密钥进行加密通信 。 具体流程如图 3 所示 。 从流程图里可以看出, 随机
微信通信系统选用 Protocol Buffer 作为通信协议 。
Protocol Buffer: 是 Google 的一种数据交换的格式 , Google 公司内部的混合语言数据标准 , 目前已经正在使
用 的 有 超 过 48,162 种 报 文 格 式 定 义 和 超 过 12,183 个 . 图 1 RSA 加解密算法流程 目 前 解 密 技 术 能 力 下 可 行 的 破 解 RSA 的 方 法 是 : 替换公钥 。 就是把流程图中步骤 3、4 里面的公钥换成自 己所掌握的公钥 , 然后就可以用自己的公钥和私钥去解 密 , 还原出通信的 byte[] 字节流明文 。
理论探讨 · Theoretical Discussion
微信加密通信原理分析
瞿晓海 薛 质 上海 200240 ) ( 上海交通 大学信息安全工 程 学 院
【摘
其 要 】基于移动客户端的保密通信原理,本文讨论了现阶段主流社交软件微信系统的通信方式和加密原理,
基于 RSA 加密、 随机 AES 私钥的加密方式设计是通信保密的关键核心, 也是目前绝大部分移动端社交软件的主流 加密方式。 RSA 加密; 随机 AES 私钥 【 关键词 】微信;
相关主题