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

Responder a