Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1489|回复: 0
打印 上一主题 下一主题

什么是MTProto协议?

[复制链接]

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
跳转到指定楼层
楼主
发表于 2020-2-20 20:36:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Qter 于 2020-2-20 20:37 编辑

https://www.detechn.com/post/1030.html
本文描述了MTProto协议2.0版(云聊天、服务器客户端加密)的基本层。与版本1.0的主要区别如下:
用sha-256代替sha-1;
在计算msg_key时涉及填充字节;
msg_key不仅依赖于要加密的消息,还依赖于auth_key的一部分;
在1.0中使用12..1024个填充字节,而不是0..15个填充字节。
协议描述
在使用传输协议通过网络传输消息(或多部分消息)之前,将以某种方式对其进行加密,并在消息顶部添加一个外部头,该头由64位密钥标识符auth_key_id(唯一标识服务器和用户的授权密钥)和128位消息组成键消息键。
授权密钥auth_key与消息密钥msg_key组合定义了一个实际的256位密钥aes_key和一个256位初始化向量aes_iv,用于在无限长扩展(ige)模式下使用aes-256加密对消息进行加密。注意,要加密的消息的初始部分包含明显影响消息密钥(以及aes密钥和iv)的变量数据(会话、消息id、序列号、服务器salt)。在mtproto 2.0中,消息密钥被定义为消息体sha-256的128个中间位(包括会话、消息id、填充等),前面加上从授权密钥中取出的32个字节。在较旧的mtproto 1.0中,消息密钥被计算为消息体sha-1的较低128位,不包括填充字节。
多部分消息作为单个消息加密。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 03:27 , Processed in 0.060838 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表