Carimbo de Tempo ( timestamping )
description
Transcript of Carimbo de Tempo ( timestamping )
Protocolos Intermediários
Carimbo de Tempo ( timestamping )
• Necessidade de provar a existência de um documento em determinada data.
A → T : M (documento)
T → A : tm (carimbo de tempo)
Problemas?• Privacidade?• Base de dados?• Erros de transmisão?• Confiança no arbitro?
Protocolos Intermediários
Timestamping com assinatura digital (solução arbitrada melhorada)
A → T : Hm , Alice produz e envia um Hash de um documento m para Trent.
T : tn , Trent anexa a data e tempo que ele recebeu, junto ao Hash.
T → A : SKRT( Hm tm ), Trent assina digitalmente o resultado
e envia para Alice.
Problemas? Confiança no árbitro Trent.• Produção de carimbo, quando desejado. Alice e Trent podem ainda conspirar para
produzir qualquer rótulo de tempo que eles desejem.
Protocolos Intermediários
Linking Protocol (ligar rótulos de tempo de Alice com rótulos de tempo previamente gerado por Trent)
A → T : Hm, A
T → A : SKRT( n, A, Hm, tn, In-1, Hm-1, tn-1, Ln )
onde: Ln = H ( In-1, Hm-1, tn-1, Ln-1 )
E após Trent rotular o próximo tempo (carimbo):
T → A : In+1 , Identificação do documento posterior ao originador.
Problemas?• Documento fictício
Linking Protocol
• Hm : valor do hash de m que Alice deseja ver com rótulo de tempo tn .
• n : indica um número de sequência do pedido para rotular o tempo, ou seja, é o n-ésimo rótulo de tempo que Trent emitiu.
• A : Alice é o originador do pedido de rótulo de tempo.
• tn : é o n-ésimo rótulo de tempo
• tn-1 : é o rótulo de tempo prévio ao documento m
• In-1, Hm-1, tn-1 : identificação do documento prévio, Hash do documento prévio, rótulo de tempo do documento prévio.
• Ln = H ( In-1, Hm-1, tn-1, Ln-1 ) : Link do n-ésimo pedido referenciando o link do pedido para rotular o documento prévio.
Linking Protocol
• Se alguém questionar o rótulo de tempo do documento de Alice ( In ), ela pode provar que seu rótulo de tempo está entre os rótulos de tempo de um documento prévio ( In-1 ) e o rótulo de tempo de um documento posterior ( In+1 ) ao seu.
• Este protocolo torna muito difícil para Alice e Trent conspirarem e produzirem um documento rotulado com um tempo diferente do que o tempo real.
• Trent não pode “adiantar a data” de um documento para Alice, visto que ele precisa saber previamente qual rótulo de documento virá antes.
• Trent não pode “antecipar uma data” de um documento para Alice, visto que ele precisa embutir o rótulo de tempo de um documento emitido imediatamente após a data pretendida, e esse documento já foi emitido.
Protocolo distribuído
• Pessoas morrem.• Rótulos de tempo ficam perdidos.
• Muitas coisas podem acontecer entre uma rotulação de tempo de um documento e o desafio para Alice obter uma cópia de rótulos de tempo de documentos passados In-1 .
Protocolo distribuído
• Este problema pode ser aliviado por considerar, por exemplo, os prévios rótulos de tempo de k pessoas, gerados aleatoriamente por Alice, e então, Alice enviar para cada uma dessas os identificadores das próximas k pessoas.
• Alice terá uma grande chance de descobrir pessoas que ainda tem seus rótulos de tempo.
Protocolos Intermediários
Protocolo distribuído
Usando Hm como entrada,
A : V1, V2, V3, ... Vk , Alice gera uma string de Vi
onde: Vi = produzidos por geradores pseudo-randômicos seguros.
Alice interpreta cada destes valores como a identificação, I, de uma outra
pessoa.
A → P1 : Hm , V1
A → P2 : Hm , V2. . . . . ........ .........
A → Pk : Hm , Vk
Pi → A : SKRP ( Hm, tn )
A : armazena
Protocolos Intermediários
Protocolo distribuído
• O gerador de números pseudos-aleatórios, seguro criptograficamente, impede Alice de deliberadamente escolher identificadores I´s corruptos como verificadores Vi .
• Este protocolo funciona porque para Alice falsificar um rótulo de tempo teria que convencer a todas das K pessoas a cooperarem. Como ela escolheu identificadores pessoais aleatoriamente, a chance contra disto é muito alta.
• Quanto mais corrupta for a sociedade é, maior, o número k deve ser.
Protocolos IntermediáriosAssinaturas em grupo
Veja o seguinte problema:
• Uma companhia tem diversos computadores, cada conectado a uma rede local.
• Cada departamento da companhia tem sua própria impressora (também conectada à rede) e somente pessoas daquele departamento são permitidas usarem a impressora do seu departamento.
• Antes de imprimir, portanto, a impressora deve estar certa de que o usuário é do departamento.
Protocolos Intermediários
Assinaturas em grupo
• Ao mesmo tempo, a companhia quer privacidade; o nome do usuário não pode ser revelado.
• Se, contudo, alguém descobre no fim do dia que a impressora foi usada por demasia, o diretor deve ser capaz de descobrir que fez mal uso da impressora, e enviar a ele uma cobrança.
• A solução deste problema é chamada Assinaturas em grupo.
Protocolos Intermediários
Assinaturas em grupo (propriedades)
(1) Somente membros do grupo podem assinar.
(2) Quem recebe pode verificar que a assinatura é válida e
pertence ao grupo.
(3) Quem recebe não consegue identificar qual membro do
grupo assinou.
(4) No caso de disputa, ou após um período estabelecido, a
assinatura pode ser “aberta” para revelar a identidade de
quem assinou.
Protocolos Intermediários
Assinaturas em grupo
(1) Árbitro gera um conjunto de pares (KU,KR) e entrega a cada
membro do grupo uma lista diferente contendo KR´s únicas.
Nenhuma dessas chaves privadas, em qualquer lista são idênticas.
Total de pares de chaves (KU,KR) = n * m ( n membros, m pares de chaves cada membro )
(2) Árbitro publica a lista de todas as KU´s para o grupo, em
ordem aleatória. Ele guarda um registro secreto de quais
chaves pertencem a quem.
Protocolos Intermediários
Assinaturas em grupo
(3) Quando um membro deseja (usar a impressora) deve
assinar um documento, escolhe uma chave aleatoriamente
de sua lista pessoal.
(4) Quando alguém deseja verificar a qual grupo pertence a
assinatura, busca na lista para a correspondente chave
KU
e verifica a assinatura.
(5) No caso de disputa, o árbitro sabe a quem pertence a
KU.