明文依赖解密:SSH-CTR的形式化安全处理
1. 背景与概述
SSH 二进制数据包协议(BPP)在 RFC 4253 中被定义,它采用先编码再加密并计算消息认证码(MAC)的结构,为 SSH 连接上传输的消息提供机密性和完整性。消息先进行编码,添加长度字段和随机填充,然后加密,最后与 MAC 值拼接形成最终密文。这里主要考虑有状态的计数器模式加密(SSH-CTR)。
2. SSH 二进制数据包协议
-
协议结构 :
- 编码:消息前添加 4 字节的包长度字段和 1 字节的填充长度字段,并添加至少 4 字节的随机填充。包长度字段指定编码后消息的总长度(不包括自身)。
- 加密:使用计数器模式加密,尽管是流模式,但仍按块方式处理,会添加填充。
- 认证:MAC 值基于 32 位的包序列号和编码后的消息计算,序列号由通信双方单独维护,不通过通道传输。
-
安全模型特点 :
- 有状态:反映协议使用的每个包的序列号。
- 左右不可区分性游戏:允许攻击者访问加密和解密预言机。
- 明文依赖解密:解密时需先解密第一块获取包长度字段,以确定接收多少数据才能获取 MAC 标签,整个解密过程依赖明文。
- 字节级交互:攻击者可按字节向解密方发送密文,而明文在解密过程中会被缓冲,直到有足够数据进行 MAC 检查。
- 错误处理:包
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



