2016-02-05 43 views
1

我想弄清楚一個git版本控制文本文件的存儲庫是否理論上可以作爲知識產權用途的紙質實驗室筆記本替代品。是否有可能完全修改存儲庫中文件的git時間戳?

在一個紙質筆記本中,它的工作方式是每天寫下結果,並且實驗室中的一兩個人在筆記上簽字並劃掉任何空白區域。從理論上講,這應該表明你有一個完美的記錄,說明你當天做了什麼,並且在日期之後你不能添加任何東西。

我認爲這可以在git中實現的方式是通過回購實驗結果(例如實驗室筆記本),將其推送到github上的私有共享庫,以及...另外兩個人檢查關閉它? (關於如何做到這一點的建議?)

主要告誡是有可能(如果是的,什麼是需要運行的代碼)徹底改變一個特定文本文件的內容和時間戳 - 在整個提交歷史中不留下痕跡?

+0

與我掙扎的要求是從一個所有數據的持久承諾下。通常情況下,Git允許在提交中修改文件的任何部分,因此審覈人員可以有意或無意地刪除實驗數據。 –

+0

換句話說,從實驗室筆記本頁實際上具有從_several_狀態「提交」(發端,審閱和修改),而在GIT中單個提交表示在單個狀態的頁面。 –

+0

@TimBiegeleisen我對你的問題有點困惑。因此,在一個完美的世界(理論上在目前的基於紙張的世界),實驗室筆記本擁有提交的每一天的鼻祖。審查人員只是做了相當於用他們的簽名來確認時間戳。 – dvanic

回答

1

每個git的承諾包含一個鏈接回以前的git的承諾(見Git Internal - Commit Objects。如果你改變你必須改變每一個承諾之後即來到過去的提交。當你把更新提交這會導致一些問題。

所以有可能改寫歷史的飯桶。但是用適當的設置git的服務器,你應該是有一定的信心,歷史是不能改變的。喜歡的東西this question

0

你瞄準了是事情的確有可能,並且它最多和SHA-1一樣安全。

實現此目的的方法是通過數字簽名(可能通過註釋標籤)充當簽名者對特定SHA-1 ID的認可。 SHA-1將是最近一次更新提交的SHA-1,它通過git通常的提交ID Merkle樹自動覆蓋所有以前的SHA-1(除非每天單獨存儲,否則這個問題不重要)。

通常帶註釋的標籤簽名使用GPG密鑰,它們可能比SHA-1本身更安全。 SHA-1最初的目的是反對所謂的秒原像(相當耐基本上,這意味着攻擊者知道這兩個原始消息簽名;然後,攻擊者與第二齣現,不同的消息有相同的數字簽名)。但是,2005年發現了一些攻擊方法,截至2014年,SHA-1取消了美國聯邦數字簽名的認證。

在任何情況下都不需要使用git:您可以簡單地讓您的驗證者爲每天的文件存儲簽名。簽名本身可以存儲,但是你喜歡(也許通過git);它們獨立於任何版本控制。使用SHA-256或更強大的東西可能是明智的。

相關問題