Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 加密和代码归档文件_Security_Encryption_Cvs - Fatal编程技术网

Security 加密和代码归档文件

Security 加密和代码归档文件,security,encryption,cvs,Security,Encryption,Cvs,我们有这个计算机代码,它要求任何人谁有权访问它支付许可费。我们将为我们的开发人员支付费用,但他们希望我们的系统管理员也获得许可,因为他们可以看到代码档案。但是,如果代码被加密存储在归档文件中,那么系统管理员可以看到文件,但看不到内容。 任何软件版本控制系统是否允许加密,以便只有签出代码的人员才需要密钥,从而能够看到解密的文件。 我想把它添加到pserver和cvs中并不难,但是如果它已经在其他地方完成了,为什么要重新发明轮子呢 任何洞察都会有帮助。没有办法设置一个源代码管理系统,该系统可以以某种

我们有这个计算机代码,它要求任何人谁有权访问它支付许可费。我们将为我们的开发人员支付费用,但他们希望我们的系统管理员也获得许可,因为他们可以看到代码档案。但是,如果代码被加密存储在归档文件中,那么系统管理员可以看到文件,但看不到内容。 任何软件版本控制系统是否允许加密,以便只有签出代码的人员才需要密钥,从而能够看到解密的文件。 我想把它添加到pserver和cvs中并不难,但是如果它已经在其他地方完成了,为什么要重新发明轮子呢


任何洞察都会有帮助。

没有办法设置一个源代码管理系统,该系统可以以某种方式执行服务器端差异,从而至少在理论上阻止系统管理员访问内容。(即:源代码管理系统将无法将解密密钥存储在系统管理员无法访问的位置。)除非您的系统管理员习惯性地浏览源代码管理数据库内容,否则从您的供应商的角度来看,这样的系统与未加密的系统应该没有实际区别


使服务器管理员无法识别源代码管理数据库的唯一方法是在将文件提交到服务器之前对客户端上的文件进行加密。为了达到预期的目标,解密密钥需要管理员无法访问,这在大多数组织中不太可能实用,因为服务器管理员通常在所有客户机上都具有管理员访问权限。忽略这个挑剔的细节,这也意味着您的源代码管理系统将看到的都是加密的二进制文件,这意味着没有服务器端的差异或指责。这还意味着您的数据库可能会出现可怕的膨胀,因为每次提交时,每个文件都需要完全替换。您真的愿意牺牲源代码管理系统的可用性来节省许可费和/或安抚该供应商吗?

基本上,您想给所有开发人员一些密钥,让他们插入git的smudge和clean过滤器的加密/解密例程。您需要一个能够执行增量的加密方案


首先,查看git中的一些示例。如前所述,这会显著提高磁盘使用率。但是,有一些方法可以以牺牲一些安全性为代价来实现更“方便区分”的加密。请参阅,以获取有关如何攻击的示例。此外,任何使用AES-ECB模式的系统都会差异很大。(你通常不应该使用AES-ECB模式,因为它存在安全缺陷…其中一个安全缺陷是它可以很好地区分…嘿,这就是你想要的,所以这似乎是一个合理的例外。)

迈克,我迷路了。你能说得更具体些吗?“为了达到预期目标,解密密钥需要管理员无法访问,”--这不太正确。理想的目标是消除不必要的许可费。要实现这一点,您不必使管理员完全无法访问数据。你必须让它在可接受的范围内无法访问,这样做违反了政策和雇佣协议。如果我租了一辆车,协议中有一部分说“其他人不能驾驶这辆车”,这并不意味着我必须绝对保证没有joyrider可以偷它。我需要采取适当的预防措施。@RobNapier:在这种情况下,指示管理员不要查看数据就足够了。考虑到供应商坚持许可,它大概不是。(顺便说一句,我认为这在任何方面都不合理。)在许多情况下,你必须表现出真诚的努力来执行你的规则;仅仅有规则是远远不够的。这是eDiscovery和其他法律事务中的常见情况,我已经多次处理过。同样地,当一个人拥有一个游泳池时,如果你不建造围栏,他就要为掉入其中的儿童负责。孩子们可以在篱笆下挖洞这一事实并不重要,但篱笆是。我不建议将其作为法律或法规遵从性建议的场所。在这种情况下,查看文件内容(无论是在磁盘上还是在源代码管理数据库中)已经存在障碍:必须实际打开文件才能查看其内容。如果可以随意观察内容,那么增加一个额外的障碍是有意义的。然而,由于至少看起来不是这样,我认为通过管理员可访问的密钥进行加密没有什么好处。