碳基体

奋斗在产品安全第一线的安全妹子

四、TCP/IP协议分析-PostgreSQL认证协议


postgresql 数据报文

 分为两种

第一种:

报文类型 1个字节

+ 报文长度 4个字节

+ 报文体 长度等于报文长度-4


第二种:

报文长度 4个字节

+ 报文体 长度等于报文长度-4


postgresql采用的大端字节序


postgresql认证过程

1.客户端->服务端: startup message


长度 4个字节 

+ 协议版本号 4个字节 

+名值对:发送user,database等,字符串以00结束

     可以从中提取用户名,数据库名


2.服务端->客户端: (可能没有这一步)Authentication request


52 1个字节  52 表示认证请求

+长度 4个字节 

+ 认证类型 05 表示MD5,02表示kerberosv5,03表示明文,06表示scm证书,07表示GSSSAPI,09表示SSPI,08表示GSSAPI或SSPI 4个字节

+ salt value

 


3.客户端->服务端: (可能没有这一步)Password message: 

70 1个字节 表示Password message

+长度 4个字节

+密码

 


4.服务端->客户端:Authentication request

52 1个字节  52 表示认证请求

+长度 4个字节

+认证类型 4个字节  00 表示认证成功

 









参考:

https://www.postgresql.org/docs/current/static/protocol.html

https://www.postgresql.org/docs/current/static/protocol-message-formats.html

http://www.postgres.cn/docs/9.4/auth-pg-hba-conf.html



预告:五、TCP/IP协议分析-MongoDB认证协议

来源:碳基体

评论