2012-08-20 9 views
13

Als Wissenschaftler möchte ich einige offizielle Aufzeichnungen über die Zeit, in der ich etwas in mein Git-Repository einchecke, aufbewahren. Dies, um später die Behauptungen von denen, die zum ersten Mal während Patentstreitigkeiten erfunden haben, zu sichern.Git: Ist es möglich, das Signierungsdatum eines Tags zu fälschen?

git tag -s -m "`date`" 2012-08-20 

und drücken Sie die Tags an den zentralen Server:

Im Moment habe ich von Zeit zu Zeit, wie so ein Tag zu meinem Repository hinzufügen

git push --tags 

einen Tag Pulling zeigt die Datum Ich habe es mit meinem Schlüssel signiert:

git tag -v 2012-08-20 
object 2d6f6035270e8e44c035431e99be8da3fccee095 
type commit 
tag 2012-08-20 
tagger My Full Name <[email protected]> 1345466433 +0200 

Mon Aug 20 14:40:33 CEST 2012 
gpg: Signature made Mon Aug 20 14:40:37 2012 CEST using RSA key ID somekey 
gpg: Good signature from "My Full Name <[email protected]>" 
gpg:     aka "My Full Name <personal-email>" 

Meine Frage ist, wie sicher diese Daten sind? Ist es möglich, sie später zu manipulieren?

EDIT: um eine zu klären, aber weiter möchte ich in der Lage sein zu beweisen, dass es sehr unwahrscheinlich wäre, dass ich später mit den Tags manipuliert.

+0

Wenn Sie ausführbaren Code mit Microsoft Authenticode-Signatur signieren, können Sie einen "Zeitstempel" -Dienst verwenden, der die Zeit bestätigt, zu der die Signatur gestempelt wurde, solange Sie dem Zeitstempel-Dienstanbieter vertrauen. Ich kenne keine andere Möglichkeit, etwas mit einem Zeitstempel zu signieren, vor allem, wenn es legal bleiben würde, aber Sie könnten nach diesem Begriff suchen. –

Antwort

14

Was Git garantiert ist: Wenn das Datum (oder der Rest des Tags oder die damit verbundenen Commits usw.) geändert werden, wird der SHA1 des Tags ändern.

Allerdings, um dies nützlich zu machen, müssen Sie irgendwie beweisen, was das ursprüngliche SHA1-Tag war, und dass Sie bereits am beanspruchten Datum der Erfindung hatten.

Sonst, um betrügerisch behaupten, dass Sie etwas im Januar 1980 erfunden haben, könnten Sie einfach das Datum Ihres Computers auf 1980 zurückspulen und das Repository mit den notwendigen Commits, Tags und All-Git würde nicht wissen, wie es nur was glauben kann Die Systemuhr sagt es.

Also, wenn Sie beweisen wollen, dass Sie etwas erfunden haben vor etwas Datum in der Vergangenheit, Git (allein) kann Ihnen nicht helfen, noch kann jede Form der Unterzeichnung allein. Was Sie brauchen, ist Trusted timestamping. Es gibt verschiedene Schemata, aber alle erfordern einen oder mehrere Dritte, die im Wesentlichen für die Richtigkeit des Zeitstempels bürgen.

+0

+1. Interessanter Link zum vertrauenswürdigen Zeitstempel. – VonC