愛git。愛git-crypt。git-crypt明文保護?
曾幾何時,有一個回購保護與git crypt和一組編碼器工作說回購。不知何故,讓我們責怪外星人,一個文件是以未加密的形式提交的。
錯誤是早期發現並沒有壞處做,但現在,我將我的問題:
在你控制服務器的半集中式安裝(gitlab,一個值得信賴的回購...)(因此不包括github),你有什麼保護措施,以確保祕密文件不會以未加密的形式提交?
愛git。愛git-crypt。git-crypt明文保護?
曾幾何時,有一個回購保護與git crypt和一組編碼器工作說回購。不知何故,讓我們責怪外星人,一個文件是以未加密的形式提交的。
錯誤是早期發現並沒有壞處做,但現在,我將我的問題:
在你控制服務器的半集中式安裝(gitlab,一個值得信賴的回購...)(因此不包括github),你有什麼保護措施,以確保祕密文件不會以未加密的形式提交?
正如你可以git-crypt issue 104看到,有一個警告,當試圖解密這實際上不加密的文件:
git-crypt: Warning: file not encrypted
那來自smudge() function讀取一個文件的第一個字符:
// Read the header to get the nonce and make sure it's actually encrypted
unsigned char header[10 + Aes_ctr_decryptor::NONCE_LEN];
std::cin.read(reinterpret_cast<char*>(header), sizeof(header));
if (std::cin.gcount() != sizeof(header) || std::memcmp(header, "\0GITCRYPT\0", 10) != 0) {
這意味着你可以寫一個pre-receive hook which will unpack the pushed files和讀取第一NONCE (12) characters檢查文件是否以"\0GITCRYPT\0"
開頭。
如果其中一個推送的文件沒有(並且是.gitattributes
file引用的文件之一),則返回1:推送將被拒絕。
的觀點是:一個server-side hook(因爲您可以控制服務器端)是強制執行的政策(比如,在這裏,加密文件只)
嗯你看看混帳掛鉤的最可靠辦法? –
這將涉及到我自己的寫作,雖然我不反對,但發佈這個問題的想法是看看是否有其他人已經寫了這樣的鉤子。 –