我应该签署我的 DLL 吗?
我有一个 C++ Windows 应用程序。我对安装程序和可执行文件进行了签名,但目前没有对 DLL(例如 zlib1.dll)进行签名。签署这些也没什么大不了的,但是有人可以解释一下这样做有什么好处吗?例如,如果我的程序的所有依赖项都已签名,那么它与 AV 或防火墙软件是否会出现任何不同?用户会收到任何不同的警告吗?
I have a C++ Windows app. I sign our installer and my executable, but I don't currently sign my DLLs (such as zlib1.dll). It is not a big deal to sign those as well, but can someone explain what the benefit is? For instance, will my program appear any different to AV or firewall software if all its dependencies are signed? Will users get any different warnings?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的程序与 AV 或防火墙不会有任何不同。他们将检查您已经签名的可执行文件上的签名。当您在加载 dll 之前亲自验证这些签名时,对 dll 进行签名最有意义。这确保了运行时所有 dll 的完整性。建议的安全做法是对您发送的所有二进制文件进行签名并在运行时验证其签名。如果您的 dll 要被其他产品使用,那么您必须对它们进行签名,因为这些产品需要验证其真实性和完整性。
Your program will not appear any different to AV or firewall. They will check for signatures on your executable which you have already signed. Signing your dlls makes most sense when you yourself verify those signatures before loading them. This ensures the integrity of all dlls at runtime. It is a recommended secure practice to sign all binaries that you ship and validate their signatures at runtime. If your dlls are to be used by other products then you must sign them as those products will want to verify their authenticity and integrity.