Existe-t-il un modèle d'algorithme pour protéger tout contenu sur le Web afin de garantir que je suis le premier à l'avoir créé?

29

Il y a quelques années, il y avait ce pirate informatique (je ne me souviens pas qui il était) qui révélait complètement une vulnérabilité dans un système donné, mais pour s'assurer que personne ne s'en rendait compte, il a créé une sorte de clé PGP.

Ce que j'ai compris à l'époque, c'est qu'il a créé une clé pour s'assurer qu'il était bien celui qui l'a découverte, mais n'a pas révélé qui il était en fait, il a juste créé un mécanisme pour pouvoir prouver qu'il était celui qui a créé la divulgation .

D'accord. Je comprends comment fonctionnent les algorithmes et la cryptographie. Mais je ne comprends toujours pas comment vous pouvez créer une clé pour protéger un contenu donné divulgué sur le Web pour prouver que vous êtes celui qui l'a créé en premier! Ce ne sont que des mots!

Est-ce vraiment possible? Quel devrait être le processus pour vous assurer que vous pouvez le prouver empiriquement? L'ai-je bien compris ou j'ai probablement raté quelque chose concernant cette affaire?

J'espère que cette question est suffisamment précise, c'est simplement comment protéger un contenu que vous avez créé sur le Web (un paragraphe, un code, un mot, etc.) et vous assurer que vous êtes celui qui l'a créé en premier, à l'intérieur d'un contexte donné.

Avec mes connaissances, je ne vois pas comment cela est possible, mais je suis intrigué s'il existe un moyen pratique de le faire. Y a-t-il?

Fagner Brack
la source
9
Peut-être que demander à crypto.stackexchange.com serait une meilleure idée?
Euphoric
5
@FagnerBrack - Ne copiez / collez pas. Signalez simplement la question de la migration vers crypto SE.
mouviciel
10
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!Il y a une différence entre prouver que vous avez créé quelque chose et prouver que vous avez été le premier à créer quelque chose. La clé PGP peut prouver que le pirate a soumis le rapport de vulnérabilité. Il n'y a aucune garantie que la vulnérabilité n'a pas été découverte ou signalée avant lui, mais il peut au moins montrer qu'il l'a signalée à une certaine date.
Doval
2
Il y avait une histoire à propos d'un mathématicien qui a découvert une preuve et ne voulait pas encore la publier mais ne voulait pas non plus que quelqu'un d'autre obtienne du crédit. Au lieu de cela, il a publié les lettres de phrase de la preuve triées par ordre alphabétique. J'ai oublié son nom.
Paul
3
@Paul - ce serait Robert Hooke, Hooke's Law en.wikipedia.org/wiki/Hooke's_law
James McLeod

Réponses:

1

J'ai probablement raté quelque chose concernant cette affaire?

Je pense que le morceau qui vous manque est une entité de confiance.

Lorsque vous hachez le fichier avec le contenu que vous souhaitez certifier, vous pouvez montrer au monde que vous êtes le propriétaire de ce document, sans divulguer ce document. C'est très bien, mais comment pouvez-vous prouver que vous aviez ce document à un moment précis dans le passé?

C'est de cela qu'il s'agit. Voici un extrait de wikipedia :

La technique est basée sur des signatures numériques et des fonctions de hachage. Un hachage est d'abord calculé à partir des données. Un hachage est une sorte d'empreinte digitale numérique des données d'origine: une chaîne de bits différente pour chaque ensemble de données. Si les données d'origine sont modifiées, cela entraînera un hachage complètement différent. Ce hachage est envoyé à la TSA *. Le TSA concatène un horodatage au hachage et calcule le hachage de cette concaténation. Ce hachage est à son tour signé numériquement avec la clé privée du TSA. Ce hachage signé + l'horodatage est renvoyé au demandeur de l'horodatage qui les stocke avec les données d'origine (voir schéma).

(*) Autorité d'horodatage

J'utilise le service d'horodatage d'Universign, qui dispose d'un bel ensemble d'outils pour rendre l'opération facile à effectuer. Il existe de nombreuses entreprises offrant des services similaires.

Il est intéressant de noter que, comme @JoelFan l'a mentionné, ce bitcoin fournit un moyen d'obtenir une entité de confiance qui n'est pas centralisée (pourquoi devrais-je faire confiance à quelqu'un?). La chaîne bitcoin fournit une chronologie (vous pouvez prouver qu'un document incrusté dans la chaîne bitcoin a été créé avant un autre plus bas dans la chaîne). À ma connaissance, cependant, la date et l'heure de l'événement vous manqueraient toujours.

De plus, le Trusted Timestamping est une référence valable dans les litiges.

mika
la source
2
Il y a des dates-heures intégrées dans les en-têtes de bloc dans le bitcoin ... bien qu'elles ne soient pas appliquées par le protocole, elles sont généralement fiables pour être au moins "précises" (c'est-à-dire bien dans un délai d'un jour) ... c'est également possible inspecter toute la blockchain du bloc en question jusqu'à aujourd'hui pour s'assurer que les dates-heures augmentent de façon monotone
JoelFan
Désolé de prendre trop de temps pour accepter une réponse. Le pirate a probablement utilisé une entité de confiance, je n'ai pas trouvé de moyen raisonnable de protéger la paternité du contenu sans une entité de confiance.
Fagner Brack
39

Autrefois, les scientifiques publiaient des anagrammes de leurs travaux pour pouvoir dire «j'ai pensé à cette idée». (regardez les sections «histoire» et «établissement des priorités») Le fait est qu'ils voulaient pouvoir s'en attribuer le mérite, mais aussi donner à d'autres scientifiques la possibilité de publier leurs résultats s'ils avaient d'autres idées sans s'appuyer sur l'idée originale. .

Par exemple, Gallileo a publié SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS qui était une anagramme d' altissimvm planetam tergeminvm obseravi qui traduit du latin se lit "J'ai observé la plus haute planète en forme de triple". Il s'est trompé - Saturne (la planète 'la plus haute' connue à l'époque) n'est pas construite en trois parties. Cinquante ans plus tard, Christiaan Huygens a publié AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU qui en latin est Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam inclinato qui est entouré par " anneau plat qui ne le touche pas et est incliné contre l'écliptique. "

Bien que ce soient des éléments historiques maintenant intéressants, ils montrent un concept important à l'époque - fournir un «hachage» qui est facile à dire «ce hachage encode ce texte». Il est facile de passer du texte connu à l'anagramme ou au hachage, mais difficile de comprendre ce que c'est si vous ne savez pas ce que c'est en premier lieu.

Avec les mécanismes modernes, nous avons d'autres façons de faire des hachages. Beaucoup d'entre eux sont très étroitement liés à la cryptographie. Il y a la fonction de hachage cryptographique . L'idée étant, encore, il est facile de passer du texte que vous connaissez au hachage, mais difficile de passer du hachage au texte que vous ne connaissez pas.

Et donc, si vous avez un programme, vous pouvez publier un hachage du programme qui fait quelque chose , puis lorsque vous êtes prêt à le divulguer (peut-être après que l'entreprise le corrige ou une période de temps plus tard), vous pouvez publier le code réel et tout le monde peut voir que, oui, ce code correspond à ce hachage.


la source
1
Très joli morceau d'histoire sur l'utilisation du hachage avant l'ère numérique :)
mika
30

Vous pouvez le faire assez facilement. Si vous avez un texte en clair text, une clé secrète Set une clé publique, Pvous le faites S(text)et obtenez le cipher.

Vous pouvez maintenant publier cipheret Pnon S. Par conséquent, tout le monde peut décrypter le cipheravec Pen faisant P(cipher). Si vous voulez maintenant prouver que vous êtes celui qui a créé le cipher(et donc l'original text), vous pouvez soit publier S, soit - si vous ne voulez pas que quiconque connaisse S - vous pouvez en créer un autre S("I was really the one who found the text first")et le publier. Parce qu'il n'y a aucun moyen de créer un chiffrement qui est déchiffré avec P(cipher)cela donne un texte significatif.

Voilà comment vous pouvez le prouver.

valenterry
la source
13
Comment cela aide-t-il? Quiconque peut déchiffrer le chiffrement peut simplement republier de la même manière avec sa propre clé secrète et vous n'avez aucun moyen de prouver quelle partie a publié en premier et laquelle a copié de l'autre sans faire confiance à un enregistrement tiers du temps de publication.
R ..
2
@R .. Le contenu sur Internet a généralement une date qui lui est associée (par exemple: les messages du forum). S'il y a plusieurs personnes prétendant être les inventeurs / découvreurs originaux, alors vous vérifiez simplement les dates.
Paul
2
Vous pouvez également inclure du contenu dans le texte en clair qui est crypté via P (contenu). Le véritable propriétaire de S pourra décrypter ces informations supplémentaires, alors qu'un référentiel ne pourra pas le faire.
Dancrumb
10
@Paul: Mais alors le cryptage n'a pas d'importance. Cela revient à simplement publier votre contenu en texte brut et à vous fier à la date.
R ..
2
@R .. l'idée est que, sans le savoir S, il est très difficile de trouver un morceau de texte cipher2qui P(cipher2)ne soit pas du charabia. Avec Sc'est trivial, comme S("the text you want")= cipher2. Faire l'inverse revient à vaincre la méthode crypto.
congusbongus
21

Il est possible de hacher les données que vous souhaitez horodater et de les transformer en une adresse Bitcoin. Ceci est connu sous le nom d' horodatage approuvé . En lui faisant un petit paiement (un satoshi ou 0,00000001 BTC), le paiement est stocké sur la blockchain avec l'adresse à laquelle vous avez payé.

Étant donné que seul le hachage est stocké sur la blockchain Bitcoin, personne ne peut dire quelles données vous avez stockées, mais étant donné les données pré-hachées, vous pouvez prouver que les données ont été créées avant le bloc qui contient le paiement effectué à cette adresse.

JoelFan
la source
1

Un moyen très simple d'établir que vous êtes le premier à publier quelque chose, sans révéler qui vous êtes immédiatement mais en ayant la possibilité de le faire plus tard:

  1. Publiez-le sur une source publique bien connue (tout le monde peut voir que vous l'avez publié)
  2. Dans cette publication, ajoutez une ligne: Publié à l'origine le jj / mm / aaaa par le propriétaire de [email protected]

Pas besoin de crypter quoi que ce soit.

Bien sûr, il est possible que vous ne souhaitiez pas encore publier vos résultats. Dans ce cas, vous devez tout crypter sauf la ligne avec l'adresse e-mail. Cependant, maintenant il peut être plus difficile de faire publier ceci sur un site renommé.

Dennis Jaheruddin
la source
4
Que faire si le "site renommé" change la date ou l'e-mail de publication? Cela peut arriver en raison de mauvaises intentions de même si le site est piraté. (Ok je suis assez paranoïaque ici, mais c'est le point. S'il y a un moyen que quelqu'un d'autre que l'auteur original change la preuve, alors votre solution n'est pas vraiment déterministe). Il ne s'agit pas ici de s'appuyer uniquement sur des témoins humains, mais de manière à ce que quiconque puisse confirmer la paternité d'une certaine manière sans que votre contenu doive être "publié" ou "breveté" par une entité de confiance.
Fagner Brack
@FagnerBrack, arxiv.org s'est avéré suffisant pour près de 1 million d'articles de recherche.
Brian S
1
Puis-je mettre n'importe quoi ici ou cela devrait passer par un examen par les pairs et ne sera autorisé que sous des contraintes spécifiques? Cette question ne s'adresse pas directement aux articles de recherche, elle concerne la possibilité d'obtenir le même résultat (ou équivalent) de manière programmatique.
Fagner Brack
2
Utilisez archive.org pour publier - comme arXiv, c'est un référentiel de très longue durée et de confiance, mais contrairement à arXiv, il est gratuit d'y télécharger du contenu. L'horodatage de tout ce que vous y publieriez serait considéré comme très fiable.
Steve Midgley
1
Je suis d'accord, la renommée est le seul moyen de diffuser des connaissances rapidement et de manière fiable.
bigstones
0

C'est une vision différente de la réponse de valenterry.

Voici comment vous le feriez avec PGP:

Générez une paire de clés publique / privée.

  1. Vous gardez la clé privée et vous vous assurez qu'elle reste secrète.
  2. Vous cryptez votre idée avec votre clé publique: P (idée)
  3. Vous mettez P (idée) quelque part qui est fiable (pas par vous, mais en général) et vous enregistrerez l'heure.
  4. Lorsque vous devez prouver que vous avez fait l'idée en premier, vous obtenez l'horodatage à partir du moment où vous avez stocké les données et vous déchiffrez vos données avec votre clé secrète. S (P (idée)) => idée

Cette méthode ne nécessite pas de libérer votre clé secrète, ce qui est généralement une mauvaise idée. Certes, vous pouvez toujours créer une nouvelle paire de clés PGP - cela ne coûte rien, mais vous ne devriez pas distribuer des clés secrètes si vous voulez être crédible.

La partie la plus difficile est de prouver le temps, mais en termes de documentation d'une vulnérabilité, nous n'avons pas besoin d'une solution 100% à l'épreuve des balles et vérifiable en justice, nous avons juste besoin de quelque chose de `` assez bon ''. Les journaux d'un fournisseur de stockage cloud (dropbox, rackspace, google, etc.) sont probablement assez bons, en supposant qu'ils mettent en œuvre un service sécurisé.

Il convient également de noter qu'être le premier à avoir une idée et un horodatage n'a jamais signifié que vous avez été la première personne à penser à l'idée. Si quelqu'un y a pensé avant vous mais n'a jamais enregistré l'idée avec un mécanisme d'horodatage, il ne peut pas prouver qu'il l'a fait avant vous. Donc, si nous essayons de savoir qui l'a fait en premier, et tout ce que nous savons, c'est le moment où vous l'avez inventé, alors nous devons supposer que vous l'avez inventé en premier (l'autre personne pourrait cracher des mensonges).

Shaz
la source
-1

Ugh, tant de ces réponses manquent de raison.

1) Ce que le pirate a fait n'a rien à voir avec le chiffrement.

2) Ce que le pirate informatique a fait n'a rien à voir avec le temps (horodatage, etc.).

Ce que le pirate a fait a été de signer publiquement le document de sortie. Lorsque vous PGP signez quelque chose (un e-mail, un document Word, etc.), vous créez un hachage qui est la somme du hachage du document signé et de votre propre clé privée. Maintenant, pour prouver que vous êtes le créateur du document, il vous suffit de "montrer" la clé privée, car seul l'auteur le sait. Cryptographiquement parlant, vous pouvez "montrer" que vous êtes en possession de la clé privée sans afficher la clé elle-même.

Donc, en fait, il a signé numériquement le document. La seule personne qui peut copier cette signature, c'est quelqu'un avec sa clé privée. Il n'y a rien à dire que le document a été rédigé aujourd'hui ou hier, ou a été le premier exemple de celui-ci à avoir jamais existé. Aucune quantité d'horodatage de hachage ou autre ne changera cela.

La seule façon de signer numériquement quelque chose DANS LE TEMPS, est d'utiliser la blockchain à la bitcoin. Il ne pourrait y avoir de monnaie numérique sans vérification de l'heure - le fait que la personne A ait envoyé de l'argent à la personne B est sans importance à moins que nous sachions quand. Vous ne pouvez pas entrer dans un magasin avec un morceau de papier et dire "ma maman m'a envoyé 100 $ une fois. Je voudrais acheter du pain", car le reçu d'une transaction ne signifie pas que l'argent vous appartient toujours. Vous l'avez peut-être remis à quelqu'un d'autre dans l'intervalle. La blockchain résout ce problème en amenant un grand nombre de personnes (mineurs de bitcoin) à s'accorder sur le fait que la transaction s'est produite à un certain moment (puis en enregistrant ce temps dans la blockchain pour toujours).

JJ
la source
2
cela ne semble pas offrir quoi que ce soit de substantiel par rapport aux points soulevés et expliqués dans les 6 réponses précédentes (en particulier, beaucoup de choses ont été écrites sur l'horodatage de confiance, et l'approche bitcoin a déjà été présentée)
gnat