gpt4 book ai didi

git-crypt 明文保护?

转载 作者:太空狗 更新时间:2023-10-29 13:24:32 27 4
gpt4 key购买 nike

爱 git。热爱 git-crypt。

曾几何时,有一个使用 git-crypt 保护的存储库和一组在该存储库上工作的编码人员。不知何故,让我们怪罪外星人,一个文件以未加密的形式提交。

错误被及早发现并且没有造成伤害,但这引出了我的问题:

在您控制服务器(因此不包括 github)的半集中式设置(gitlab,一个受信任的 repo...)中,您使用什么保护(如果有的话)以确保 secret 文件不会以未加密的方式提交形式?

最佳答案

正如您在 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 (因为您控制服务器端)是执行策略的最可靠方法(例如,此处仅加密文件)

关于git-crypt 明文保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com