ITPub博客

首页 > 数据库 > PostgreSQL > PostgreSQL的认证过程(md5)

PostgreSQL的认证过程(md5)

原创 PostgreSQL 作者:Hanson69 时间:2020-08-30 17:43:00 0 删除 编辑

本文主要介绍PostgreSQL中,客户端向服务端发送连接请求时的主要通信过程,分别分析了服务端和客户端的处理流程。

认证过程概括如下:

1、客户端向服务端发送连接请求;

2、服务端根据pg_hba.conf匹配认证方式,并发送认证方式和4位随机数(md5)给客户端;

3、客户端输入密码,两次加密后发送给服务端;

4、服务端对客户端发送的密码进行对比验证;

服务端验证过程

PerformAuthentication
    |-> enable_timeout_after    --> 设置认证超时时间
    |-> ClientAuthentication
        |-> hba_getauthmethod   --> 获取认证方法
            |-> CheckPWChallengeAuth
                |-> get_role_password   --> 获取服务端用户真实密码(加密)
                |-> CheckMD5Auth
                    |-> pg_strong_random   --> 生成4位的随机数
                    |-> sendAuthRequest     --> 将认证方式和4位的随机数发送给客户端
                    |-> recv_password_packet    --> 接收客户端的数据
                    |-> md5_crypt_verify    
                        |-> pg_md5_encrypt   --> 将服务端的密码(已加密)和4位随机数再次进行加密   
                            |-> pg_md5_hash     --> md5 + [(密码+4位随机数)算出md5值 ]
                            |-> strcmp(client_pass, crypt_pwd)  --> 和客户端的密码比较


客户端加密过程

............


本文完整内容请见:

%E7%9A%84%E8%AE%A4%E8%AF%81%E8%BF%87%E7%A8%8B%EF%BC%88md5%EF%BC%89/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69982913/viewspace-2715831/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论
专注于PostgreSQL数据库的研究

注册时间:2020-08-30

  • 博文量
    2
  • 访问量
    825