Gibt es ein Algorithmusmuster zum Schutz von Inhalten im Web, um sicherzustellen, dass ich der erste bin, der sie erstellt hat?


29

Vor ein paar Jahren gab es diesen Hacker (weiß nicht mehr, wer er war), der eine Schwachstelle in einem bestimmten System offenbarte, aber um sicherzugehen, dass dies niemand anerkannte, erstellte er eine Art PGP-Schlüssel.

Was ich damals verstanden habe, ist, dass er einen Schlüssel geschaffen hat, um sicherzustellen, dass er derjenige ist, der ihn entdeckt hat, aber nicht bekannt gegeben hat, wer er tatsächlich ist .

Okay. Ich verstehe, wie Algorithmen und Kryptographie funktionieren. Aber ich verstehe immer noch nicht, wie Sie einen Schlüssel zum Schutz eines bestimmten im Web veröffentlichten Inhalts erstellen können, um zu beweisen, dass Sie derjenige sind, der ihn zuerst erstellt hat! Es sind nur Worte!

Ist das wirklich möglich? Was sollte der Prozess sein, um sicherzustellen, dass Sie dies empirisch nachweisen können? Habe ich es richtig verstanden oder habe ich wahrscheinlich etwas in Bezug auf diesen Fall verpasst?

Ich hoffe, diese Frage ist spezifisch genug. Im Grunde geht es nur darum, wie Sie einen von Ihnen im Web erstellten Inhalt (einen Absatz, einen Code, ein Wort usw.) schützen und sicherstellen können, dass Sie derjenige sind, der ihn zuerst erstellt hat gegebenen Kontext.

Mit meinem Wissen sehe ich nicht, wie das möglich ist, aber ich bin gespannt, ob es einen praktischen Weg gibt, dies zu tun. Gibt es?


9
Vielleicht wäre es besser , unter crypto.stackexchange.com nachzufragen ?
Euphorischer

5
@FagnerBrack - Nicht kopieren / einfügen. Markieren Sie einfach die Frage für die Migration zu 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!Es gibt einen Unterschied zwischen dem Beweis, dass Sie etwas erschaffen haben und dem Beweis, dass Sie die Ersten waren, die etwas erschaffen haben. Der PGP-Schlüssel kann beweisen, dass der Hacker den Schwachstellenbericht gesendet hat. Es gibt keine Garantie dafür, dass die Sicherheitsanfälligkeit vor ihm nicht entdeckt oder gemeldet wurde, aber er kann zumindest nachweisen, dass er sie an einem bestimmten Datum gemeldet hat.
Doval

2
Es gab eine Geschichte über einen Mathematiker, der einen Beweis entdeckte und ihn noch nicht veröffentlichen wollte, aber auch nicht wollte, dass jemand anderes Anerkennung erhielt. Also veröffentlichte er stattdessen die alphabetisch sortierten Satzbuchstaben des Beweises. Ich habe vergessen, wie er heißt.
Paul

3
@ Paul - das wäre Robert Hooke, Hookes Gesetz de.wikipedia.org/wiki/Hooke's_law
James McLeod

Antworten:


1

Ich habe wahrscheinlich etwas in Bezug auf diesen Fall verpasst?

Ich denke, das bisschen, das Sie vermissen, ist eine vertrauenswürdige Entität.

Wenn Sie die Datei mit dem Inhalt versehen, den Sie zertifizieren möchten, können Sie der Welt zeigen, dass Sie der Eigentümer dieses Dokuments sind, ohne dieses Dokument offenzulegen. Das ist alles sehr gut, aber wie können Sie beweisen, dass Sie dieses Dokument zu einem bestimmten Zeitpunkt in der Vergangenheit hatten?

Darum geht es bei Trusted Timestamping. Hier ist ein Auszug aus Wikipedia :

Die Technik basiert auf digitalen Signaturen und Hash-Funktionen. Zunächst wird aus den Daten ein Hash berechnet. Ein Hash ist eine Art digitaler Fingerabdruck der Originaldaten: eine Bitfolge, die für jeden Datensatz unterschiedlich ist. Wenn die ursprünglichen Daten geändert werden, führt dies zu einem völlig anderen Hash. Dieser Hash wird an die TSA * gesendet. Die TSA verknüpft einen Zeitstempel mit dem Hash und berechnet den Hash dieser Verkettung. Dieser Hash wird wiederum mit dem privaten Schlüssel der TSA digital signiert. Dieser signierte Hash + der Zeitstempel wird an den Anforderer des Zeitstempels zurückgesendet, der diese mit den Originaldaten speichert (siehe Diagramm).

(*) Zeitstempelbehörde

Ich habe den Zeitstempeldienst von Universign verwendet, der über eine Reihe nützlicher Tools verfügt, mit denen die gesamte Operation einfach durchzuführen ist. Es gibt viele Unternehmen, die ähnliche Dienstleistungen anbieten.

Es ist interessant festzustellen, dass Bitcoin, wie @JoelFan bereits erwähnte, eine Möglichkeit bietet, eine vertrauenswürdige Entität zu erhalten, die nicht zentralisiert ist (warum sollte ich jemandem vertrauen?). Die Bitcoin-Kette bietet eine Zeitleiste (Sie können nachweisen, dass ein Dokument in der Bitcoin-Kette erstellt wurde, bevor ein anderes weiter unten in der Kette erstellt wurde). Meines Erachtens würden Sie jedoch das Datum und die Uhrzeit des Inkrafttretens der Veranstaltung immer noch verpassen.

Außerdem ist Trusted Timestamping eine gültige Referenz in Rechtsstreitigkeiten.


2
In Bitcoin sind Datums- und Uhrzeitangaben in die Blocküberschriften eingebettet ... obwohl sie nicht vom Protokoll erzwungen werden, wird ihnen im Allgemeinen eine Genauigkeit von mindestens "Baseball" (dh eine Genauigkeit von mindestens einem Tag) zugesichert ... dies ist auch möglich Überprüfung der gesamten Blockchain vom fraglichen Block bis heute, um sicherzustellen, dass die Datumsangaben monoton ansteigen
JoelFan

Es tut mir leid, dass ich zu lange brauche, um eine Antwort zu akzeptieren. Der Hacker hat wahrscheinlich eine vertrauenswürdige Entität verwendet. Ohne eine vertrauenswürdige Entität hätte ich keinen vernünftigen Weg gefunden, die Urheberschaft von Inhalten zu schützen.
Fagner Brack

39

In früheren Zeiten veröffentlichten Wissenschaftler Anagramme ihrer Arbeit, um sagen zu können: "Ich habe über diese Idee nachgedacht." (siehe die Abschnitte "Geschichte" und "Festlegung von Prioritäten") Die Sache ist, dass sie in der Lage sein wollten, dies zu würdigen, aber auch anderen Wissenschaftlern die Möglichkeit geben wollten, ihre Ergebnisse zu veröffentlichen, wenn sie andere Ideen hatten, ohne auf der ursprünglichen Idee aufzubauen .

Zum Beispiel veröffentlichte Gallileo SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS , ein Anagramm für altissimvm planetam tergeminvm obseravi, das aus dem Lateinischen übersetzt lautet: "Ich habe den höchsten Planeten in dreifacher Form beobachtet". Er hat es falsch verstanden - Saturn (der 'höchste' Planet, der zu dieser Zeit bekannt war) besteht nicht aus drei Teilen. Fünfzig Jahre später veröffentlichte Christiaan Huygens AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU , lateinisch Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam inclinato, was übersetzt durch " flacher Ring, der ihn nicht berührt und gegen die Ekliptik geneigt ist. "

Das sind zwar historische Elemente, die jetzt von Interesse sind, aber sie zeigen ein wichtiges Konzept von damals - die Bereitstellung eines 'Hash', der leicht zu sagen ist: "Dieser Hash codiert diesen Text." Es ist einfach, vom bekannten Text zum Anagramm oder zum Hash zu gelangen, aber es ist schwierig herauszufinden, was es ist, wenn Sie nicht wissen, was es überhaupt ist.

Mit den modernen Mechanikern haben wir andere Möglichkeiten, Hashes durchzuführen. Viele von ihnen sind sehr eng mit der Kryptographie verwandt. Es gibt die kryptografische Hash-Funktion . Die Idee dabei ist, dass es einfach ist, vom Text, den Sie kennen, zum Hash zu gelangen, aber es ist schwierig, vom Hash zum Text zu gelangen, den Sie nicht kennen.

Und so, wenn Sie ein Programm haben , können Sie einen Hash - Wert des Programms veröffentlichen, tut etwas , und dann , wenn Sie sind bereit , es offen zu legen (möglicherweise nach der Firmenbehebung es oder eine Zeitspanne später) können Sie den eigentlichen Code veröffentlichen und Jeder kann sehen, dass dieser Code mit diesem Hash übereinstimmt.


1
Sehr schönes Stück Geschichte über die Verwendung von Hash vor dem digitalen Zeitalter :)
mika

30

Das geht ganz einfach. Wenn Sie einen Klartext text, einen geheimen Schlüssel Sund einen öffentlichen Schlüssel Phaben, S(text)erhalten Sie den cipher.

Jetzt kannst du veröffentlichen cipherund Paber nicht S. Daher kann jeder der Entschlüsselung ciphermit , Pindem Sie P(cipher). Wenn Sie jetzt beweisen möchten, dass Sie derjenige sind, der das cipher(und damit das Original text) erstellt hat, können Sie entweder veröffentlichen S, oder - wenn Sie nicht möchten, dass jemand S kennt - Sie können ein anderes erstellen S("I was really the one who found the text first")und veröffentlichen. Weil es keine Möglichkeit gibt, eine Chiffre zu erstellen, die mit P(cipher)dieser Funktion entschlüsselt wird , was zu einem aussagekräftigen Text führt.

So können Sie es beweisen.


13
Wie hilft das? Jeder, der die Verschlüsselung entschlüsseln kann, kann sie auf die gleiche Weise mit seinem eigenen geheimen Schlüssel erneut veröffentlichen, und Sie können nicht nachweisen, welche Partei zuerst veröffentlicht und welche von der anderen kopiert hat, ohne einem Zeitnachweis eines Drittanbieters zu vertrauen.
R ..

2
@R .. Mit Inhalten im Internet ist normalerweise ein Datum verknüpft (z. B. Forenbeiträge). Wenn mehrere Personen behaupten, die ursprünglichen Erfinder / Entdecker zu sein, überprüfen Sie einfach die Daten.
Paul

2
Sie können auch einige Inhalte in den Klartext aufnehmen, der über P (Inhalt) verschlüsselt wird. Der wahre Besitzer von S kann diese zusätzlichen Informationen entschlüsseln, während ein Reposter dies nicht kann.
Dancrumb

10
@Paul: Dann ist die Verschlüsselung aber irrelevant. Es ist gleichbedeutend mit dem Posten Ihres Klartextinhalts und dem Verlassen auf das Datum.
R ..

2
@R .. die Idee ist, dass Ses sehr schwer ist, ohne es zu wissen , einen cipher2solchen Text zu finden , der P(cipher2)kein Kauderwelsch ist. Damit ist Ses trivial, wie S("the text you want")= cipher2. Das Gegenteil läuft darauf hinaus, die Kryptomethode zu umgehen.
Congusbongus

21

Es ist möglich, die Daten, die Sie mit einem Zeitstempel versehen möchten, zu hashen und in eine Bitcoin-Adresse umzuwandeln. Dies wird als vertrauenswürdige Zeitstempelung bezeichnet . Wenn Sie eine kleine Zahlung (ein Satoshi oder 0,00000001 BTC) leisten, wird die Zahlung zusammen mit der Adresse, an die Sie bezahlt haben, in der Blockchain gespeichert.

Da nur der Hash in der Bitcoin-Blockchain gespeichert ist, kann niemand feststellen, welche Daten Sie gespeichert haben. Wenn Sie jedoch die vorab gehashten Daten angeben, können Sie nachweisen, dass die Daten vor dem Block erstellt wurden, der die an diese Adresse geleistete Zahlung enthält.


1

Ein sehr einfacher Weg, um festzustellen, dass Sie der Erste sind, der etwas veröffentlicht, ohne sofort zu verraten, wer Sie sind. Sie haben jedoch die Möglichkeit, dies später zu tun:

  1. Veröffentlichen Sie es in einer bekannten öffentlichen Quelle (dort kann jeder sehen, dass Sie es veröffentlicht haben)
  2. Fügen Sie in dieser Publikation eine Zeile hinzu: Ursprünglich veröffentlicht am TT.MM.JJJJ vom Eigentümer von xxx@gmail.com

Sie müssen nichts verschlüsseln.

Natürlich besteht die Möglichkeit, dass Sie Ihre Ergebnisse noch nicht veröffentlichen möchten. In diesem Fall müssen Sie alles außer der Zeile mit der E-Mail-Adresse verschlüsseln. Jetzt ist es jedoch möglicherweise schwieriger, dies auf einer renommierten Website zu veröffentlichen.


4
Was passiert, wenn die "renommierte Site" das Datum oder die Veröffentlichungs-E-Mail ändert? Es kann aufgrund von schlechten Absichten passieren, auch wenn die Website gehackt wird. (Ok, ich bin hier ziemlich paranoid, aber das ist der Punkt. Wenn es eine Möglichkeit gibt, dass jemand anderes als der ursprüngliche Autor den Beweis ändert, dann ist Ihre Lösung nicht wirklich deterministisch.) Hier geht es nicht nur darum, sich auf menschliche Zeugen zu verlassen, sondern darum, dass jeder die Urheberschaft auf eine bestimmte Weise bestätigen kann, ohne dass Ihr Inhalt von einer vertrauenswürdigen Stelle "veröffentlicht" oder "patentiert" werden muss.
Fagner Brack

@FagnerBrack, arxiv.org hat sich für fast 1 Million Forschungsarbeiten als ausreichend erwiesen.
Brian S

1
Kann ich nur irgendetwas dort ablegen oder sollte es einer Peer-Review unterzogen werden und wird nur unter bestimmten Einschränkungen autorisiert? Diese Frage zielt nicht direkt auf Forschungsarbeiten ab, es geht um die Möglichkeit, auf programmatische Weise dasselbe Ergebnis (oder ein gleichwertiges Ergebnis) zu erzielen.
Fagner Brack

2
Verwenden Sie archive.org zum Veröffentlichen - wie arXiv ist es ein sehr langlebiges und vertrauenswürdiges Repository, aber im Gegensatz zu arXiv ist es kostenlos, Inhalte dorthin hochzuladen. Der Zeitstempel für alles, was Sie dort veröffentlichen, wird als sehr zuverlässig angesehen.
Steve Midgley

1
Ich stimme zu, Ruhm ist der einzige Weg, um Wissen schnell und zuverlässig zu verbreiten.
Bigstones

0

Dies ist eine andere Einstellung zu Valentines Antwort.

So würden Sie es mit PGP machen:

Generieren Sie ein öffentliches / privates Schlüsselpaar.

  1. Sie behalten den privaten Schlüssel und stellen sicher, dass er geheim bleibt.
  2. Sie verschlüsseln Ihre Idee mit Ihrem öffentlichen Schlüssel: P (Idee)
  3. Sie platzieren P (Idee) an einem Ort, dem Sie vertrauen (nicht von Ihnen, sondern allgemein), und protokollieren die Zeit.
  4. Wenn Sie beweisen müssen, dass Sie die Idee zuerst gemacht haben, erhalten Sie den Zeitstempel von dem Zeitpunkt, an dem Sie die Daten gespeichert haben, und Sie entschlüsseln Ihre Daten mit Ihrem geheimen Schlüssel. S (P (Idee)) => Idee

Diese Methode erfordert keine Freigabe Ihres geheimen Schlüssels, was im Allgemeinen eine schlechte Idee ist. Zugegeben, Sie können jederzeit ein neues PGP-Schlüsselpaar erstellen - das kostet nichts, aber Sie sollten nicht rücksichtslos geheime Schlüssel verteilen, wenn Sie glaubwürdig sein möchten.

Das Schwierigste ist, die Zeit zu beweisen, aber um eine Sicherheitsanfälligkeit zu dokumentieren, brauchen wir keine 100% ige Lösung, die vor Gericht überprüft werden kann, sondern nur etwas, das „gut genug“ ist. Die Protokolle eines Cloud-Speicheranbieters (Dropbox, Rackspace, Google usw.) sind wahrscheinlich gut genug, vorausgesetzt, sie implementieren einen sicheren Dienst.

Es ist auch erwähnenswert, dass Sie als erster mit einer Idee und einem Zeitstempel nie als erster an die Idee gedacht haben. Wenn jemand vor Ihnen darüber nachgedacht hat, die Idee jedoch nie mit einem Zeitstempel registriert hat, kann er nicht beweisen, dass er sie vor Ihnen erstellt hat. Wenn wir also herausfinden wollen, wer es zuerst gemacht hat und wir wissen nur, wann Sie es erfunden haben, müssen wir davon ausgehen, dass Sie es zuerst erfunden haben (die andere Person könnte Lügen ausspucken).


-1

Ugh, so viele dieser Antworten haben keinen Sinn.

1) Was der Hacker tat, hatte nichts mit Verschlüsselung zu tun.

2) Was der Hacker tat, hatte nichts mit der Zeit zu tun (Zeitstempel usw.).

Was der Hacker getan hat, war das Veröffentlichungsdokument öffentlich zu unterzeichnen. Wenn Sie mit PGP etwas signieren (eine E-Mail, ein Word-Dokument usw.), erstellen Sie einen Hash, der die Summe aus dem Hash des zu signierenden Dokuments und Ihrem eigenen privaten Schlüssel darstellt. Um zu beweisen, dass Sie der Ersteller des Dokuments sind, müssen Sie nur den privaten Schlüssel "anzeigen", da dies vermutlich nur der Autor weiß. Kryptografisch gesehen können Sie "zeigen", dass Sie im Besitz des privaten Schlüssels sind, ohne den Schlüssel selbst zu zeigen.

Tatsächlich hat er das Dokument also digital signiert. Die einzige Person, die diese Signatur kopieren kann, ist jemand mit seinem privaten Schlüssel. Es gibt keine Anhaltspunkte dafür, dass das Dokument heute oder gestern erstellt wurde oder dass es zum ersten Mal existiert hat. Keine Menge von Hashing-Zeitstempeln oder was auch immer wird das ändern.

Die einzige Möglichkeit, etwas rechtzeitig digital zu signieren, ist die Verwendung der Blockchain a la Bitcoin. Ohne zeitliche Überprüfung könnte es keine digitale Währung geben - die Tatsache, dass Person A Geld an Person B gesendet hat, ist irrelevant, es sei denn, wir wissen, wann. Sie können nicht mit einem Stück Papier in ein Geschäft gehen und sagen, "meine Mutter hat mir einmal 100 Dollar geschickt. Ich möchte etwas Brot kaufen", weil ein Beleg einer Transaktion nicht bedeutet, dass das Geld Ihnen noch gehört. Vielleicht haben Sie es in der Zwischenzeit jemand anderem gegeben. Die Blockchain behebt dieses Problem, indem eine große Anzahl von Personen (Bitcoin-Mining-Unternehmen) dazu gebracht wird, sich auf die Tatsache zu einigen, dass die Transaktion zu einem bestimmten Zeitpunkt stattgefunden hat (und diese Zeit dann für immer in der Blockchain aufgezeichnet wird).


2
Dies scheint nichts Wesentliches über die in den vorherigen 6 Antworten gemachten und erklärten Punkte zu bieten (insbesondere wurde viel über vertrauenswürdiges Timestamping geschrieben, und der Bitcoin-Ansatz wurde bereits vorgestellt)
Donnerstag,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.