PGConf.Brasil 2024

Belo Horizonte, MG

7 e 8 de novembro


Obfuscação de sslpassword com hook PQsetSSLKeyPassHook_OpenSSL


William Ivanski

EnterpriseDB


2024-11-08 16:30:00 - AUDITORIO 2


PostgreSQL permite a conexão utilizando certificados de cliente, especificados pelos parâmetros de string de conexão "sslcert" e "sslkey". Se o certificado for criptografado em disco e requerer uma senha, a mesma é solicitada iterativamente através da pergunta "Enter PEM pass phrase:". O parâmetro "sslpassword" suprime essa pergunta iterativa da senha. Porém, como o parâmetro "sslpassword" requer a senha em texto puro e não é incluso no arquivo .pgpass, em alguns casos pode ser necessário obfuscar essa senha, por exemplo quando a string de conexão é armazenada no catálogo de replicação. Nessa palestra: - Explicamos e exemplificamos a conexão usando certificados de cliente com e sem senha; - Ilustramos a problemática acima, propondo a necessidade de obfuscar a senha "sslpassword" na string de conexão; - Apresentamos código-fonte escrito em C para construir um módulo que utiliza o hook "PQsetSSLKeyPassHook_OpenSSL" para de-obfuscar a senha "sslpassword" em memória no momento da conexão com o PostgreSQL; - Ilustramos todos os passos necessários para construir esse módulo carregar ele em memória junto com a "libpq" usando "LD_PRELOAD", para que aplicações possam conectar com o PostgreSQL utilizando certificados de cliente criptografados, com senha "sslpassword" obfuscada na connection string.

Patrocinadores Ouro


Patrocinadores Prata


Patrocinadores Bronze


Apoio