Alguns anos atrás, havia um hacker (não se lembra quem ele era) que divulgava completamente uma vulnerabilidade em um determinado sistema, mas para garantir que ninguém aceitasse isso, ele criou algum tipo de chave PGP.
O que eu entendi na época é que ele criou uma chave para garantir que foi ele quem a descobriu, mas não revelou quem ele era, apenas criou um mecanismo para provar que ele foi quem criou a divulgação. .
Está bem. Eu entendo como algoritmos e criptografia funcionam. Mas ainda não entendo como é possível criar uma chave para proteger um determinado conteúdo divulgado na Web e provar que você foi quem criou primeiro! São apenas palavras!
Isso é realmente possível? Qual deve ser o processo para garantir que você possa prová-lo empiricamente? Eu entendi corretamente ou provavelmente perdi algo em relação a este caso?
Espero que essa pergunta seja específica o suficiente, basicamente é apenas como proteger um conteúdo que você criou na Web (um parágrafo, um código, uma palavra etc.) e garantir que você foi quem o criou primeiro, dentro de um dado contexto.
Com o meu conhecimento, não vejo como isso é possível, mas estou intrigado se houver uma maneira prática de fazê-lo. Existe?
fonte
But I still don't understand how you can create a key to protect a given content disclosed in the web to prove you are the one who created it first! It is just words!
Há uma diferença entre provar que você criou algo e provar que você foi o primeiro a criar algo. A chave PGP pode provar que o hacker enviou o relatório de vulnerabilidade. Não há garantia de que a vulnerabilidade não tenha sido descoberta ou relatada antes dele, mas ele pode pelo menos mostrar que a denunciou em uma determinada data.Respostas:
Eu acho que a parte que falta é uma entidade confiável.
Quando você faz o hash do arquivo com o conteúdo que deseja certificar, pode mostrar ao mundo que você é o proprietário deste documento, sem divulgá-lo. Tudo está muito bem, mas como você pode provar que possui este documento em algum momento específico do passado?
É disso que trata o carimbo de data / hora confiável. Aqui está um extrato da wikipedia :
Uso o Timestamping Service da Universign, que possui um bom conjunto de ferramentas para facilitar a execução de toda a operação. Existem muitas empresas que oferecem serviços semelhantes.
É interessante notar que, como o @JoelFan mencionou, esse bitcoin fornece uma maneira de obter uma entidade confiável que não é centralizada (por que devo confiar em alguém?). A cadeia de bitcoin fornece uma linha do tempo (você pode provar que um documento incrustado na cadeia de bitcoin foi criado antes de outro na cadeia). No meu entender, no entanto, você ainda perderia a data e a hora efetivas do evento.
Além disso, Trusted Timestamping é uma referência válida em litígios.
fonte
Nos tempos antigos, os cientistas publicavam anagramas de seu trabalho para poder dizer "eu pensei nessa idéia". (veja as seções 'história' e 'estabelecimento de prioridade'). O problema é que eles queriam ter crédito por isso, mas também permitiam que outros cientistas publicassem seus resultados se tivessem outras idéias sem desenvolver a idéia original. .
Por exemplo, Gallileo publicou SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS, que era um anagrama de altissimvm planetam tergeminvm obseravi, traduzido do latim: "Eu observei o planeta mais alto em três formas". Ele entendeu errado - Saturno (o planeta 'mais alto' conhecido na época) não é constituído por três partes. Cinqüenta anos depois, Christiaan Huygens publicou: AAAAAAA ABCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RRT TTUTU UUUUU que em latim é Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam inclinato que se traduz em "É cercado" anel plano que não toca nele e está inclinado contra a eclíptica ".
Embora agora sejam de interesse histórico, eles mostram um conceito importante na época - fornecendo um 'hash' fácil de dizer "esse hash codifica esse texto". É fácil passar do texto conhecido para o anagrama ou o hash, mas é difícil descobrir o que é se você não souber o que é em primeiro lugar.
Com os mecanismos modernos, temos outras maneiras de fazer hashes. Muitos deles estão intimamente relacionados à criptografia. Existe a função de hash criptográfico . A idéia é, ainda assim, que é fácil passar do texto que você conhece para o hash, mas difícil de ir do hash para o texto que você não conhece.
Portanto, se você tiver um programa, poderá publicar um hash do programa que faz alguma coisa e, quando estiver pronto para divulgá-lo (possivelmente depois que a empresa o corrigir ou um período de tempo depois), você poderá publicar o código real e todos podem ver que, sim, esse código corresponde a esse hash.
fonte
Você pode fazer isso com bastante facilidade. Se você tem um texto simples
text
, chave secretaS
e a chave públicaP
que você fazS(text)
e obter ocipher
.Agora você pode publicar
cipher
eP
mas nãoS
. Portanto, todos podem descriptografar ocipher
comP
fazendoP(cipher)
. Se você agora quer provar que é quem criou ocipher
(e, portanto, o originaltext
), pode publicarS
ou - se não quiser que ninguém conheça S - pode criar outroS("I was really the one who found the text first")
e publicá-lo. Porque não há como criar uma cifra que é descriptografada comP(cipher)
isso resulta em algum texto significativo.É assim que você pode provar.
fonte
S
, é muito difícil criar um pedaço de textocipher2
queP(cipher2)
não seja sem sentido. ComS
isso é trivial, comoS("the text you want")
=cipher2
. Fazer o inverso equivale a derrotar o método de criptografia.É possível fazer o hash dos dados que você deseja marcar com hora e transformá-los em um endereço de Bitcoin. Isso é conhecido como carimbo de data / hora confiável . Fazendo um pequeno pagamento (um satoshi ou 0,00000001 BTC), o pagamento é armazenado na blockchain junto com o endereço para o qual você pagou.
Como apenas o hash é armazenado na blockchain do Bitcoin, ninguém pode dizer quais dados você armazenou, mas, dados os dados pré-hash, você pode provar que os dados foram criados antes do bloco que contém o pagamento feito nesse endereço.
fonte
Uma maneira muito simples de estabelecer que você é o primeiro a publicar algo, sem revelar quem você é imediatamente, mas com a opção de fazer isso mais tarde:
Não há necessidade de criptografar nada.
Claro que há a chance de você não querer publicar seus resultados ainda. Nesse caso, você precisa criptografar tudo, exceto a linha com o endereço de email. No entanto, agora pode ser mais difícil publicá-lo em um site conhecido.
fonte
Esta é uma opinião diferente da resposta de valenterry.
Aqui está como você faria isso usando o PGP:
Gere um par de chaves pública / privada.
Esse método não requer o lançamento de sua chave secreta, o que geralmente é uma má idéia. É verdade que você sempre pode criar um novo par de chaves PGP - não custa nada, mas não deve distribuir imprudentemente chaves secretas se quiser ser credível.
A parte mais difícil é provar o tempo, mas em termos de documentação de uma vulnerabilidade, não precisamos de uma solução 100% à prova de balas e verificável em tribunal, apenas precisamos de algo que seja 'bom o suficiente'. Os logs de um provedor de armazenamento em nuvem (dropbox, rackspace, google etc.) provavelmente são bons o suficiente, supondo que eles implementem um serviço seguro.
Também vale a pena notar que, sendo o primeiro com uma ideia e com o carimbo de data e hora, nunca significou que você foi a primeira pessoa a pensar nela. Se alguém pensou antes de você, mas nunca registrou a ideia com um mecanismo de carimbo de data e hora, não pode provar que a fez antes de você. Então, se estamos tentando descobrir quem foi o primeiro a fazer isso, e tudo o que sabemos é a hora em que você o criou, então devemos assumir que você o criou primeiro (a outra pessoa pode estar mentindo).
fonte
Ugh, muitas dessas respostas estão erradas.
1) O que o hacker fez não teve nada a ver com criptografia.
2) O que o hacker fez não teve nada a ver com tempo (horário, etc).
O que o hacker fez foi assinar publicamente o documento de lançamento. Quando você assina algo PGP (um email, um documento do word etc.), cria um hash que é a soma do hash do documento que está sendo assinado e sua própria chave privada. Agora, para provar que você é o criador do documento, você só precisa "mostrar" a chave privada, pois provavelmente apenas o autor a conhece. Criptograficamente falando, você pode "mostrar" que possui a chave privada sem realmente mostrar a chave.
Com efeito, ele assinou digitalmente o documento. A única pessoa que pode copiar essa assinatura é alguém com sua chave privada. Não há nada a dizer que o documento foi feito hoje ou ontem, ou foi a primeira instância dele a existir. Nenhuma quantidade de carimbos de data e hora de hash ou o que quer que isso mude.
A única maneira de assinar algo digital IN TIME, é usar o blockchain à la bitcoin. Não poderia haver moeda digital sem verificação de tempo - o fato de a pessoa A enviar dinheiro para a pessoa B é irrelevante, a menos que saibamos quando. Você não pode entrar em uma loja com um pedaço de papel e dizer "minha mãe me enviou US $ 100 uma vez. Gostaria de comprar pão", porque o recebimento de uma transação não significa que o dinheiro ainda lhe pertence. Você pode ter dado a outra pessoa nesse ínterim. A blockchain resolve esse problema fazendo com que um grande número de pessoas (mineradoras de bitcoin) concorde com o fato de que a transação ocorreu em um determinado momento (e depois registrando esse tempo na blockchain para sempre).
fonte