我必须购买代码签名证书,以便签署Win32应用程序,我正在考虑是否选择EV。
我能找到的EV证书的优点是:
答案 0 :(得分:3)
披露:我为AV供应商工作。
我想知道它们是否带来了其他优势,例如应用程序 与他们签名比使用非EV签名的应用程序更受信任 防病毒,防火墙和其他安全应用程序的证书
这取决于制作安全应用程序的供应商或其当前(*)策略。在扫描恶意软件时,我曾为之工作的两家安全供应商都忽略了证书的存在。这有几个原因:
仅仅因为代码签名并不意味着它不是恶意的。它只表示它在签名后没有被修改过。例如,签署了相对大量的广告软件应用程序。
Malware writes have used stolen certificates in past,因此我们无法确定原作者是否使用过它。这就是为什么我提到"现行政策"以上,因为这可能在一夜之间发生变化。
验证证书是一个复杂且相对较慢的过程,需要从磁盘读取整个文件 - 这对于非SSD存储来说是一项昂贵的操作。它还需要执行一些CPU密集型的公钥加密操作。因此,对于某些大型可执行文件,检查证书可能需要比扫描文件中的恶意软件更长的时间。
由于我们通常根本不看证书,因此无论是标准还是EV都无关紧要。
答案 1 :(得分:0)
我的经历与 @George Y 不同。我们的 Code Signing EV-Certificate from Sectigo did 有助于避免 Norton 360 中的误报。我不知道其他防病毒软件 - 有待测试。
<块引用>注意:
我与@George Y. 的不同经历并不意味着
他错了。差异可能是由于许多
因素,例如防病毒软件公司的政策、...
此外,我的
经验基于我今天从代码中得到的积极结果
签署。未来的更多测试(以及来自我们用户的经验)将证明这些积极的结果是暂时的还是永久的。
在代码签名之前,我们的用户收到如下警告:
更糟糕的是,Norton 360 只会自动删除大量可执行文件和 .pyd
文件 - 从而完全破坏我们的软件:
这是一场彻头彻尾的灾难。
今天,我第一次使用我们的新 EV 证书签署了我们的申请。我不仅签署了 .exe
文件,还签署了 .dll
、.so
和 .pyd
文件。对这些文件进行签名时,我首先检查它们是否已经有签名,以避免对来自我们构建中包含的第三方开源二进制文件的 .dll
文件进行双重签名。这是我自动执行此过程的 Python 脚本:
import os, subprocess
# 'exefiles' is a Python list of filepaths
# to .exe, .dll, .so and .pyd files. Each
# filepath in this list is an absolute path
# with forward slashes.
quote = '"'
for f in exefiles:
cmd = f"signtool verify /pa {quote}{f}{quote}"
result = subprocess.run(
cmd,
stdin = subprocess.DEVNULL,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
cwd = os.getcwd(),
encoding = 'utf-8',
)
if result.returncode:
# Verification failed, so the file is not yet signed
cmd = f"signtool sign /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a {quote}{f}{quote}"
result = subprocess.run(
cmd,
stdin = subprocess.DEVNULL,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
cwd = os.getcwd(),
encoding = 'utf-8',
)
if result.returncode:
# Code signing failed!
print(f"Sign: '{f.split('/')[-1]}' failed")
else:
# Code signing succeeded
print(f"Sign: '{f.split('/')[-1]}'")
else:
# Verification succeeded, so the file was already signed
print(f"Already signed: '{f.split('/')[-1]}'")
到目前为止,结果很有希望。 Windows SmartScreen 不再生成警告。诺顿 360 都没有。我已经尝试在我的笔记本电脑和台式机上安装了干净的 Norton 360 - 他们都信任该应用程序(与代码签名之前不同)。
手指交叉它会保持这种状态。我们也希望其他防病毒软件能够信任我们的应用程序。
注意:
在撰写本文时,我们签名的应用程序仅适用于 https://new.embeetle.com
上的测试人员
它也将很快在我们的公共网站 https://embeetle.com 上提供 - 但现在还没有。