Quantcast
Channel: 碳基体
Viewing all articles
Browse latest Browse all 75

六、TCP/IP协议分析-Redis认证协议分析

$
0
0

Redis的数据包为序列化后的文本协议RESP (REdis Serialization Protocol) ,human-readable(明文可读),由0d0a切分内容,相比postgresql、mysql、mongodb解析起来要简单快速的多,当然安全性也欠缺,嗅探成本低
“redis的安全设计是在"Redis运行在可信环境下", 在生产环节运行时不允许外界直接连接到Redis服务器上,而应该通过应用程序进行中转”


RESP的通信实例
a.客户端到服务端发送的数据
六、TCP/IP协议分析-Redis认证协议分析 - 碳基体 - 碳基体
 b. 服务端到客户端的响应数据
六、TCP/IP协议分析-Redis认证协议分析 - 碳基体 - 碳基体
 

由上面两幅图,可知全是明文传输,其中RESP中的数据类型由特殊的前缀标识符来区分

__RESP_DATA_TYPE = {
'+': 'Simple Strings', #例如+OK
'-': 'Errors', #例如 -ERR invalid password
':': 'Integers',#整型
'$': 'Bulk Strings', #字符串
'*': 'Arrays'#数组
}



redis认证过程
客户端->服务端发送 auth [password]命令
例如
auth apple对应的数据为
*2
$4
auth
$5
apple

auth dragon对应的数据为
*2
$4
auth
$6
dragon

服务端->客户端回应 认证结果
例如
认证失败对应的数据为
 -ERR invalid password

认证成功对应的数据为
 +OK


参考:
预告:七、TCP/IP协议分析-FTP认证协议

Viewing all articles
Browse latest Browse all 75

Trending Articles