当前位置: 首页 > Database, postgresql > 正文

postgresql 登陆验证时的SSL过程

postgresl支持 SSL 加密数据传输

如果编译 PostgreSQL 的时候打开了 SSL 支持,那么前后端通讯就可以用 SSL 加密。 这样就提供了一种在攻击者可能捕获会话通讯数据包的环境下保证通讯安全的方法。 有关使用 SSL 加密 PostgreSQL 会话的更多信息。

要开始一次 SSL 加密联接,前端先是发送一个 SSLRequest 消息(当然要和后端进行connect成功后),而不是 StartupMessage。然后服务器以一个包含 S 或 N 的字节响应,分别表示它愿意还是不愿意进行 SSL。如果前端对响应不满意, 那么它可以关闭联接。要在 S 之后继续,那么先进行与服务器的 SSL 启动握手(没有在这里描述,是 SSL 规范的一部分)。 如果这些成功了,那么继续发送普通的 StartupMessage。这种情况下, StartupMessage 和所有随后的数据都将由 SSL 加密。要在 N 之后继续,则发送普通的 StartupMessage 然后不带加密进行处理。

前端应该也准备处理一个来自服务器的给 SSLRequest 的 ErrorMessage 响应。这种情况只有在服务器给 PostgreSQL 的 SSL 支持增加了附加的期望的情况下才会出现。 在这种情况下,联接必需关闭,但是前端可以选择打开一个新的联接然后不带 SSL 进行联接。

一个初始化的 SSLRequest 也可以用于打开来用于发送一条 CancelRequest 消息的联接中。

如果协议本身并未提供某种方法强制 SSL 加密,那么管理员可以把服务器配置为拒绝未加密的会话,这是认证检查的一个副产品。

    分享到:

本文固定链接: http://klwang.info/postgresql-login-ssl/ | 数据库|Linux|软件开发

该日志由 klwang 于2014年01月15日发表在 Database, postgresql 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: postgresql 登陆验证时的SSL过程 | 数据库|Linux|软件开发
关键字: ,

postgresql 登陆验证时的SSL过程:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter