软件安装的数字签名验证过程可以在执行过程中自动完成,也可以由用户手动完成。(我正在考虑PKI认证方法。)
例如,在Windows操作系统上出现某些exe的情况下,如果数字签名验证失败,则二进制文件由于自动数字签名验证而无法执行。但是,某些..exe不自动验证签名,用户可以手动验证数字签名。此外,在分离签名(如目录文件或CMS签名)的情况下,用户可以使用可用的命令(如Get-AuthenticodeSignature或OpenSSL )手动进行验证。
所以,关于手动和自动的方法,我和一个人讨论过,他告诉我,手动验证是一个有缺陷的过程,因为用户可能忘记验证签名。因此,自动化验证是必要的。
另一方面,我认为即使用户忘记了,手动验证也更好,因为在自动验证中,用户更有可能粗心大意,并且相信如果系统或密钥被破坏,自动化过程就会被利用。
此外,我认为这两种方法都是安全的,直到签名密钥是安全的,并在需要进行验证的地方维护系统完整性。
因此,我的问题是,在涉及用户交互的软件安装情况下,自动数字签名验证是否有任何额外的优势。
编辑:请考虑以下相同的场景
发布于 2021-05-22 03:19:59
“某人”是对的。自动签名验证比手动签名验证更有助于安全性。
首先,考虑您的反论点:您曾说过,如果系统或密钥被破坏,则可以利用自动化过程。如果系统或密钥被破坏,您的用户将没有更多的洞察危险比一个自动系统。您的用户如何知道是否复制了签名密钥?提示:他们不会的。 --这两个系统都同样容易受到此影响。
第二,如果您只依赖于手动处理,您的系统可能会受到损害,因为在没有自动检查的情况下,任何事情都可以完成。
自动完成所有你能做的检查。不要浪费用户的时间,迫使他们做机器已经能做得更好、更快的事情。不要通过允许未经训练的用户在他们想要的时候绕过安全性,或者如果他们不理解它,或者如果他们很匆忙的时候,让他们绕过安全性。
100%的签名代码很难实现和维护,但它是您可以部署的最有效的反恶意软件策略之一。它比白名单或文件完整性监控工具要好得多,因为它是由操作系统自动执行的。
如果机器的安全性已经被破坏了,用户无论如何也无法保存它。损害已经造成了。
编辑:代码签名不能通过伪造签名而失败。它是如此有效,这是保护苹果整个iOS系统的基础。您可能还记得“越狱”iPhones过去很常见的时候。一旦苹果修复了iOS中的每一个启用了它的漏洞,这种情况几乎就结束了;如今,一致的越狱只能由拥有手机物理权限的人来执行。
100%的代码签名设计使iPhones成为当今公众普遍使用的最安全的操作系统。
发布于 2021-05-22 14:02:20
我同意“John”,但这并不总是一个可以信赖的方法。
您可以面对使用进程空心技术的无文件恶意软件攻击或其他恶意软件。如果您不知道流程树和这样一个服务的行为,您将不会捕获它,并且您会发现它被签名了。
当进程启动svchost.exe时,您可以找到此示例。如果您查看签名,就会发现它是由Microsoft签名的。最好是根据行为,而不仅仅是静态的指标来进行检测。
https://security.stackexchange.com/questions/249541
复制相似问题