PostgreSQL使用Radius认证时密码加密相关技术问询
PostgreSQL RADIUS认证相关问题解答
你的配置条目
host dbname username 0.0.0.0/0 radius radiusserver=xyz radiussecret=xyz
关于认证流程的理解
你的理解完全正确:客户端发起PostgreSQL连接请求时,密码会先发送至PostgreSQL服务器,再由PostgreSQL转发给指定的RADIUS服务器完成认证,只有RADIUS确认通过后,才会建立客户端与PostgreSQL的连接。
问题解答
问题1:密码发送至数据库时是否为明文传输?我认为是。
没错,使用host条目(非SSL连接)时,客户端到PostgreSQL服务器之间的密码是明文传输的,因为普通TCP连接没有加密机制,数据包在网络中以明文形式传递。问题2:密码发送至Radius时是否经过加密?
是加密的。RADIUS协议会用配置里的radiussecret作为共享密钥,通过MD5哈希算法对包含密码的认证请求数据包做加密处理,确保密码在PostgreSQL到RADIUS服务器的传输过程中不会以明文暴露。不过这种加密是基于共享密钥的哈希校验,并非强端到端加密,但足以规避明文传输风险。问题3:若将host条目改为hostssl,客户端发送的密码是否会被加密?
会被加密。hostssl强制客户端与PostgreSQL服务器建立SSL/TLS加密连接,整个通信链路(包括密码传输环节)都会被加密,此时客户端发送的密码会在加密通道内传输,不会以明文形式出现在网络中。
内容的提问来源于stack exchange,提问作者nmakb
相关产品推荐
相关产品推荐

