2009/9/11 Fabio Ebner <[email protected]> > Entao Nelson o meu problema e q eu preciso garantir daqui anos (5, 10 > indeterminado) que foi aquela determinada pessoa quem inseriu aquele > registro entendeu? > > imagina uma advocacia, hj o advogado faz um documento vai la e assina > digitalmente aquele documento, ate ae bele, porem eu quero nao ter so o > arquivo em disco, gostaria de ter as informacoes do contrato na minha > base, e preciso garantir por exemplo daqui 2 anos(mesmo q o advogado ja > tenha saido da empresa) que aquela informacao foi postada por ele, e nao > foi alterada, essa e a ideia de assinar o registro digitalmente > entendeu? > > Se o advogado já está assinando digitalmente o documento, por que ele também não assina digitalmente o contrato, e você guarda o contrato junto com o documento, ambos assinados pelo advogado em questão?
Isso garantiria que o documento não foi alterado, e que foi o tal advogado quem assinou aquele documento, mas não garantiria que foi ele quem inseriu aquele registro na base, não além de que foi o usuário dele do banco quem fez a conexão, algo que poderia ser forjado pelo administrador do banco. Poderias usar também um dispositivo de autenticação em dois fatores, como os fob que são usados por bancos. O registro daqueles documentos no banco teria: 1) Data 2) Referências ao usuário 3) Referências ao documento 4) SHA-1 ou outro tipo de hash do documento, já assinado pelo advogado com a chave dele 5) Número apresentado pelo FOB do advogado quando da inserção Esse número do FOB poderia então ser conferido com as API do fabricante do dispositivo fob (RSA?). A sua idéia original de "assinar digitalmente" no PG direto eu não creio que seria uma boa, por que a aplicação cliente teria que receber a senha da chave privada do advogado, e passá-la ao PG, o que comprometeria a integridade da aplicação por que poderia ser alegado que a aplicação guardou a senha para posterior uso sem autorização do advogado. Numa empresa que trabalhei nos EUA nós precisávamos criptografar os números de cartão de crédito dos clientes direto no banco, e nós usamos uma linguagem "untrusted" do PG para usar bibliotecas do GPG para fazer essa criptografia, mas usando apenas a chave pública da empresa, que não necessita de senha. Armazenávamos então o número criptografado no banco. O banco de dados era então replicado para um outro servidor, não acessível externamente, que detia a chave privada e podia descriptografar quando necessário para fazer cobranças no cartão do cliente. Ficam aí as idéias, espero que ajude. Roberto
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
