Mar*_*iet 13 git security gnupg
作为一名科学家,我想保留一些关于我在Git存储库中检查内容的正式记录.这是为了后来支持谁在例如专利纠纷中首先发明了什么.
目前我不时向我的存储库添加一个标签,如下所示:
git tag -s -m "`date`" 2012-08-20
Run Code Online (Sandbox Code Playgroud)
并将标签推送到中央服务器:
git push --tags
Run Code Online (Sandbox Code Playgroud)
拉出标签会显示我用我的密钥签名的日期:
git tag -v 2012-08-20
object 2d6f6035270e8e44c035431e99be8da3fccee095
type commit
tag 2012-08-20
tagger My Full Name <name@institution> 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 <name@institution>"
gpg: aka "My Full Name <personal-email>"
Run Code Online (Sandbox Code Playgroud)
我的问题是这些日期有多安全?以后有可能篡改它们吗?
编辑:为了进一步阐明,我希望能够证明我以后篡改标签是不太可能的.
sle*_*ske 15
Git保证的是:如果更改日期(或标记的其余部分或附加到它的提交等),标记的SHA1将会改变.
但是,要使其有用,您必须以某种方式证明原始SHA1标记是什么,并且您已经在声明的发明日期获得了它.
否则,为了欺骗性地声称你在1980年1月发明了一些东西,你可以将你的计算机的日期倒回到1980年并用必要的提交,标签和所有git创建存储库 - git不会知道,因为它只能相信系统时钟告诉你的东西它.
因此,如果你想证明你在过去某个日期之前发明/写过某些东西,git(单独)无法帮助你,也不能单独签署任何形式的签名.你需要的是Trusted timestamping.有各种不同的方案,但都要求一个或多个第三方基本上保证时间戳的正确性.