假设我们使用3种不同长度的密码和3种不同的标记来加密敏感数据,例如:
gpg --symmetric --cipher-algo CAMELLIA256 < input.zip > output1 (随机100个字符长度密码)gpg --symmetric --cipher-algo AES256 < output1 > output2 (随机150个字符长度密码)gpg --symmetric --force-mdc --s2k-mode 3 --s2k-count 65011712 < output2 > output3 (随机200个字符长度密码)这是一个比只用2步更好的解决方案吗?还是浪费时间?这更脆弱吗?
发布于 2017-11-04 18:58:35
你可能会惊讶地知道答案是“你可能不那么安全”。
保安并不是简单地问:“其他人能侵入我的密码吗?”安全性是保护您自己和您的数据的一幅大图,它包含三个主要属性:机密性、完整性和可用性( CIA三角)。您建议的解决方案是它增加了许多复杂性。一年后,当您试图记住所有三个传递短语,以及您必须按照什么顺序解密它们,以及命令行中所有的文件类型和选项是否正确时,您可能会发现自己无法获得自己的数据。因为你是自己做的,你没有遵循其他人使用的标准;这意味着你无法查找“如何有效地使用三种不同形式的GPG加密”,并希望找到适合你的正确答案。
通过创建这样一个复杂的、非标准的过程,您将增加数据可用性的风险。这降低了你的安全。
针对这种增加的风险,考虑如何通过增加保密性来抵消这种风险。您是否知道使用AES-256对GPG有任何特定的威胁?(如果你知道某件事,就不要用它!)您是否知道针对150个随机字符密码的特定威胁,该密码将使用另一个100个随机字符密码的第二个算法来抵消?(不管它的价值如何,世界上的其他人都不知道GPG中有任何这样的缺陷;如果它们被推测存在,代码就会被修补。)
你最大的风险几乎肯定不是密码学。相反,大多数安全风险来自于操作安全的缺陷(OpSec)。最重要的是,您希望确保自己不受意外发布信息的影响。盒子是安全的,没有恶意软件吗?在线吗?软件和操作系统是补丁和最新的吗?您是否从信誉良好的回购中下载了gpg;您确认了散列吗?您自己从源代码编译了gpg二进制文件吗?您是使用加密安全的随机数生成器来创建150个字符的密码,还是使用随机()的输出来生成密码?您如何以及在哪里存储150个随机字符密码字符串--您可能会丢失它吗?其他人能找到吗?对原始数据进行加密之后,您是安全地删除了它,还是只是将其放入回收站?
在采取了这些普通的预防措施之后,你就可以考虑是否可能存在外部威胁行为者,这些人很有动机故意窃取你的秘密(取决于他们的价值)。您是否检查过隐藏在电缆中或隐藏在硬件中的键盘记录器?有摄像头在观察键盘吗?您是否每次输入密码时都会重新检查所有的安全措施?
如果你不理解密码在数学层面上的风险,不要试图重新发明将它堆叠在一起的方法,以为你正在以某种未知的方式提高安全性。相反,扩大你的注意力,并确保你做好了你所有的安全。
发布于 2017-11-04 17:48:14
和这样的事情一样,答案是,你的风险/优裕程度是多少?你可能是目标吗?你会发现‘潜在的’安全利益是一个痛苦的使用吗?使用两种算法可以防止在其中一种中发现的漏洞(如果某一天到来).你想保护你的内容很多年吗?这并不总是一个“是”或“不是”的答案,这就是一个例子。您添加的每一层都会增加使用的复杂性,潜在的安全性也会增加(尽管这是完全不必要的)。
https://security.stackexchange.com/questions/172839
复制相似问题