- 博客(13)
- 收藏
- 关注
原创 PostgreSQL学习之SCRAM-SM3加密认证
要实现算法SCRAM-SM3,关键是修改scram_SaltedPassword、scram_ClientKey、scram_H、scram_ServerKey这几个函数,将默认的SHA256算法修改为根据参数选择SHA256-HMAC或者SM3-HMAC。
2024-07-15 19:26:39
268
原创 PostgreSQL学习之SCRAM-SHA-256加密认证
PostgreSQL数据库保存用户密码的方式为加密保存(准确的说是保存用户的密码与随机数的hash值),加密算法为MD5和SCRAM-SHA-256两种,保存位置为系统表pg_authid。
2024-07-05 16:00:08
1307
原创 PostgreSQL学习之MD5加密认证
PostgreSQL数据库保存用户密码的方式为加密保存(准确的说是保存用户的密码与随机数的hash值),加密算法为MD5和SCRAM-SHA-256两种,保存位置为系统表pg_authid。
2024-07-05 13:26:28
163
原创 PostgreSQL学习之限制用户单次登录时长
PostgreSQL14已经实现了空闲会话超时断开功能,如果要控制用户登录时长(即不管会话是否空闲,只要超时就断开),时长可设置,并且可以精确到用户。
2024-07-05 09:55:22
357
原创 PostgreSQL学习之基于时间的认证
如果要限制用户在某一天的某时间段可以登录,某时间段不可以登录,在此做了一种简单的实现,通过pg_hba.conf文件配置时间段
2024-07-03 15:19:14
436
原创 PostgreSQL学习之使用LDAP认证
PostgreSQL使用LDAP认证,简单说就是将用户名和密码存储在LDAP服务器上,postgresql数据库必须有相同的用户(用户名称相同,密码可以不同),当数据库客户端登录数据库时,数据库服务器不使用本地的密码校验机制而是去请求LDAP服务器验证用户名密码是否正确,正确则登录成功,失败则登录失败。
2024-06-28 15:33:01
711
原创 PostgreSQL学习之passwordcheck使用pam_cracklib
passwordcheck通过钩子check_password_hook在创建用户或修改密码时对密码复杂度进行检查,passwordcheck不仅检查密码的长度、字符组成、是否包含用户名等,还可以使用第三方库pam_cracklib对密码进行弱口令检查。
2024-06-27 11:22:31
348
原创 PostgreSQL学习之PAM认证
PAM不仅可以用于SSH,还可以用于VSFTP、本地系统其他服务或者开发自己的程序等等。PAM可用模块不仅包括pam_access和pam_cracklib,还有常用的pam_listfileso模块pam_limitsso模块pam_rootokso模块pam_userdbso模块pam_securettyso模块pam_cracklibso模块pam_pwhistroyso模块等等PAM的目录:/lib64/security/pam* 全是pam模块。
2024-06-27 09:46:37
950
原创 PostgreSQL学习之SSL证书生成及配置
1、上面的脚本需要一个参数,指定postgresql数据库data目录,脚本进入data目录生成证书并修改postgresql.conf中ssl相关参数配置;
2024-06-26 10:48:08
1083
原创 智能密码钥匙(SKF)和密码机(SDF)标准接口实现会话密钥协商
GM/T 0016-2012 智能密码钥匙密码应用接口规范》定义了一系列使用智能密码钥匙的接口函数和结构体,其接口函数以SKF_开头。SDF和SKF函数通过标准函数实现SM2密钥协商(即SM2密钥协商协议:通过交换中间参数各自生成会话密钥,会话密钥不出卡不出加密机,一次一密)实现客户端与服务端的加密通信。注:一个智能密码钥匙(USBKEY)可以创建多个应用,每个应用可以创建多个容器,每个容器里有两对公私钥对,分别是签名密钥对和加密密钥对。3)发送发起方公钥和临时公钥(上面的公钥和临时公钥);
2024-06-25 08:41:28
547
3
原创 PostgreSQL数据库之密文密码检查(passwordcheck)
passwordcheck插件是一个检查密码发杂度的postgresql数据库插件,用于检测新创建或新修改的用户密码复杂度。如果密码是以明文字符串的形式传送到数据库服务端的,那么密码复杂度很容易检查,无非就是对字符串的检查。但是,postgresql数据库允许以密文形式修改用户密码,也就是用户可以先把新密码加密(加密算法可选上面提到的算法),然后把加密后的密文传送到服务端,服务端接收到的是加密了的密码,又怎么进行密码复杂度检查呢?
2024-06-19 14:53:38
291
原创 postgresql学习之通信加密开发
4、SSL协议通道建立完毕则开始postgresql协议的认证和数据传输,也就是通过pgtls_read完成对postgresql协议明文数据的加解密,然后由pqsecure_raw_write将加密后的postgresql协议数据发送出去,接收则反过来。服务端的流程与此一致,但有一个细节需要注意,在ProcessStartupPacket函数里服务端首次接收客户端请求,将S或G或N发送给客户端的时候直接使用send函数,跳过了上述两层封装,做加解密的时候必须留意这个地方,否则会造成通信失败。
2024-06-07 18:38:00
837
原创 gitlab配置pipeline学习备忘录
或者在文件/etc/gitlab-runner/config.toml的[[runners]]中新增条目使之主动接收job并执行。我这里生成的是自签名证书,更标准的做法是先生成根证书,再用根证书签发gitlab证书。按照上述配置配置完成即可正常进行自动化测试,如有疑问或错误请联系我。我用的是centos7.9系统,所以下载的是rpm包。
2024-05-31 19:28:14
744
PostgreSQL之SCRAM-SM3算法
2024-07-09
基于规则“SunThu-00:02:00-00:03:00,Mon-16:59:00-20:00:00”时间范围检查(C语言)
2024-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人