Re: [pgbr-geral] Conectar ao PostgreSQL por smartcard através do PHP

2013-02-16 Por tôpico João Cesar
Olá Flavio,
Obrigado pela resposta.


Vou tentar clarear um pouco, mas acho que você entendeu bem.

A política de segurança no desenvolvimento dos sistemas existentes é utilizar a 
mesma credencial (usuário/senha) do usuário na autenticação para a aplicação e 
para o banco, onde utiliza-se o método PAM no Postgresql e um servidor LDAP 
nestas autenticações. Isto se dá para que a responsabilidade pela segurança nas 
transações de banco sejam controladas diretamente pelo servidor de banco, onde 
o session_user é a própria conta do usuário.

Neste novo sistema que tratei na mensagem abaixo, a ideia é a mesma, porém ao 
invés de adotar usuário e senha, seriam utilizados certificados da cadeia 
ICP-Brasil em smart card, similar ao que acontece no sistema e-CAC da Receita 
Federal ou em alguns sistemas de bancos privados, por exemplo.
Respondendo à sua pergunta: a ideia é usar a mesma credencial.

Pelo que entendi na documentação do Postgresql, o GSSAPI é mais adequado para 
ambiente Windows com uso do AD que já suporta autenticação por smart card; não 
utilizo AD e os servidores deste sistema não terão contato com os serviços 
internos de autenticação.

Quanto ao método CERT no pg_hba, pelo que estou concluindo ele só é possível 
para certificados SSL em software, com certificado A1 por exemplo. Será que 
estou errado?

Já estou recorrendo também a colegas e grupos de discussão PHP. Até agora, em 
funções nativas do PHP, não encontrei nada que repasse estas credenciais e 
interceda nos processamentos que envolvam a chave privada que fica na mídia e o 
PIN que fica no cache do navegador.


Valeu por lembrar da necessidade de confiança do Postgresql na cadeia de 
certificados.

Caso tenham mais alguma ideia ou saibam de algum caso de sucesso, conto com a 
ajuda de todos.

Abs,

João


   Em 14-02-2013 19:15, João Cesar escreveu:
 Caros,

 Estou com a tarefa de implementar um sistema que tenha a autenticação
 feita com o uso de certificado digital gravado em smartcard, com a chave
 privada protegida.
 A Autenticação na aplicação (Apache + PHP) é simples e já está
 funcionando, porém estou pesquisando uma forma, se for tecnicamente
 viável, de prover a autenticação ao banco PostgreSQL também com a
 utilização destes certificados digitais.
 A ideia não é recorrer a aplicações client/server.

Deixe-me ver se entendi:
1) A autenticação do usuário se dá por smart-card na aplicação.
2) Você quer usar a mesma credencial para conectar no PostgreSQL?

 Ainda não consegui, utilizando o método cert do pg_hba: ocorre a
 mensagem Unable to connect to PostgreSQL server: FATAL: conexão requer
 um certificado cliente válido.

Veja só: normalmente, aplicações PHP são assim:
Cliente - Apache+PHP - PostgreSQL

Logo, quem se autentiva na aplicação é seu usuário, e quem se autentica 
no PostgreSQL é sua aplicação.

Como sua aplicação não tem certificado válido, ela não consegue se 
conectar ao PostgreSQL gerando o erro que está vendo..


 Recorro à ajuda dos colegas para saber se é possível esta autenticação e
 como poderia fazê-la.

Talvez você tenha que recorrer a algum grupo de desenvolvedores PHP, e 
ver se alguém sabe como passar o certificado do usuário direto para o 
banco de dados. Pode não ser possível, uma vez que o usuário é cliente 
da aplicação, não do banco.

 O sistema que está sendo desenvolvido não ficará em nenhum ambiente com
 autenticação openLDAP, AD ou outra do gênero, daí o interesse de se
 utilizar os certificados digitais em todo o processo.

É um case interessante mesmo.
Verifique na documentação do PHP como usar o  método pg_conect 
(certamente não dará com pg_pconnect) e veja se ele tem suporte a passar 
o certificado. Nota: os certificados dos usuários terão de ser assinados 
por uma CA conhecida pelo PostgreSQL.

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Conectar ao PostgreSQL por smartcard através do PHP

2013-02-14 Por tôpico João Cesar
Caros,

Estou com a tarefa de implementar um sistema que tenha a autenticação feita com 
o uso de certificado digital gravado em smartcard, com a chave privada 
protegida.
A Autenticação na aplicação (Apache + PHP) é simples e já está funcionando, 
porém estou pesquisando uma forma, se for tecnicamente viável, de prover a 
autenticação ao banco PostgreSQL também com a utilização destes certificados 
digitais.
A ideia não é recorrer a aplicações client/server.

Ainda não consegui, utilizando o método cert do pg_hba: ocorre a mensagem 
Unable to connect to PostgreSQL server: FATAL: conexão requer um certificado 
cliente válido.

Recorro à ajuda dos colegas para saber se é possível esta autenticação e como 
poderia fazê-la.

O sistema que está sendo desenvolvido não ficará em nenhum ambiente com 
autenticação openLDAP, AD ou outra do gênero, daí o interesse de se utilizar os 
certificados digitais em todo o processo.

Agradeço pela colaboração.

João___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral