在系统中添加证书、stls、ctls 和 crls 时,我可以选择证书存储。
到目前为止,我只找到了对“my”和“root”存储的引用。
还有其他的吗?
我更喜欢在 PowerShell 中使用 AllSigned 执行策略,但自签名我的脚本似乎需要数百兆字节的下载和安装,并且签名过程似乎很麻烦。
是否有比文档中描述的更简单的方法来签署 PowerShell 脚本?
当 Mac 应用程序的数字签名被破坏时,可能会出现哪些烦恼或实际问题?
Mac 上的应用程序可以进行数字签名。当签名以某种方式被破坏时,我知道一些应用程序可能会注意到这一点。但我不知道这些只是烦恼或真的会破坏事物的细节:
OS X 防火墙可能无法正确设置临时签名,导致反复提示“您希望应用程序‘[..]’接受传入的网络连接吗?”
家长控制允许的应用程序可能不再运行?
钥匙串访问可能已损坏?
有人说 Apple 软件更新可能会失败。如果为真,那么我想知道这是否确实取决于代码签名签名,还是由整个应用程序的某些不匹配的哈希值或BOM 文件中的信息引起的。
更多背景信息如下。
可以使用以下方式显示代码签名详细信息:
codesign --display -vv /Applications/iTunes.app/
Run Code Online (Sandbox Code Playgroud)
...这将产生类似以下内容(但不会警告修改):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
Run Code Online (Sandbox Code Playgroud)
可以使用以下方法验证签名:
codesign --verify -vv /Applications/iTunes.app/
Run Code Online (Sandbox Code Playgroud)
这将产生:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
Run Code Online (Sandbox Code Playgroud)
...或(即使只是将一些额外的文件放在应用程序的 ./Contents/Resources 文件夹中):
/Applications/iTunes.app/: a sealed resource is missing or invalid
Run Code Online (Sandbox Code Playgroud)
...或(可能比上述消息更糟糕):
/Applications/iTunes.app/: code or signature modified
Run Code Online (Sandbox Code Playgroud)
代码签名可以追溯到 OS 9 或更早版本,但当前的实现是在 10.5 Leopard …
我正在运行 Windows 7,当我尝试运行批处理文件时,它说:“无法验证发布者。您确定要运行此软件吗?”
因此,当我尝试使用我的代码签名证书对其进行签名时,它会显示“SignTool 错误:由于无法识别此文件格式,因此无法对其进行签名”。
所以我被困在岩石和坚硬的地方之间。有没有办法消除任何一条消息?

几年前,我在我当时的 Windows 7 上安装了一个名为Net Limiter的应用程序,因为升级到 Windows 10 机器。今天早些时候,我试图在清理我很久没有使用的应用程序时卸载它。卸载失败,并显示有关安装程序不受信任的错误消息。
经过一番调查,我想我发现了问题。签名证书已过期并被颁发 CA 撤销。
受到原始安装程序的困扰,我去找供应商,看看我是否可以通过升级到较新版本然后卸载它来绕过这个问题。不幸的是我在那里打了。应用程序的当前版本 (4.x) 安装在旧版本旁边而不是替换它,最新的 3.x 安装程序拒绝启动,因为我已经安装了不同的版本,并且“帮助”告诉我通过以下方式删除它首先添加/删除程序。
我已经创建了用于代码签名的 GPG 密钥并创建了一个吊销证书。据我所知,如果密钥被泄露,那么我可以使用吊销证书来吊销密钥。
有人可以建议我如何使用吊销证书吊销我的密钥吗?还有一个疑问是,在撤销密钥后,我应该在任何 GPG 密钥服务器上上传吗?以便使用我的密钥验证代码签名的人可以在使用我的代码签名文件之前检查密钥是否被撤销。
如果不需要在密钥服务器中上传,那么我的客户如何检查密钥是否被撤销?
从自制软件(通过$ brew install gdb)安装 gdb 后,我按照这些说明授予 gdb 附加到进程的权限。
当我到达运行命令的步骤时:
$ codesign --entitlements gdb-entitlement.xml -fs gdb-cert $(which gdb)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,退出代码为 1:
/usr/local/bin/gdb: errSecInternalComponent
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚出了什么问题,因此无法继续安装 gdb 的工作版本。有什么帮助吗?
额外信息:
Mac OS X 版本 10.14.4
GDB 8.3 版(通过自制软件)
将我的用户添加到_developer组中;没有帮助
尝试重新启动我的机器sudo killall taskgated但无济于事
尝试安装早期版本的 GDB (8.0.1),但得到相同的结果
我多年来一直使用 SHA1 签名,但从 2016 年开始,Windows 强制开发人员使用 SHA256。
Windows 对 Authenticode 代码签名和时间戳的强制执行
通过使用 Windows 7 SDK signtool,对 SHA-256 进行签名的函数是“未知命令”,因此此 signtool 作为 signtool 已过时,不应再使用。
为了使用 SHA256 进行签名,我下载了 Windows 8.1 SDK 以获取具有新功能(/fd 和其他功能)的 signtool.exe。BAT 文件和 signtool 适用于 Windows 8 和 10,所以我知道它可以工作,但在 Windows 7 上尝试为文件添加时间戳时会崩溃。

我使用 bat 文件对文件进行签名,如下所示(我编辑了 BAT 文件,因此它不显示变量、完整路径、公司名称和密码):
Path\signtool.exe sign /f "Path\Certificate.p12" /fd sha256 /p *password* /du "URL" /tr "timestampServer?td=sha256" /td sha256 /d "Product name" "Filename"
Run Code Online (Sandbox Code Playgroud)
我想,我没有合适的 SDK 来支持某些功能,但我在互联网上找不到有关如何在 Windows 7 上进行设置的任何信息。我尝试安装 MS Visual C++ 2015 Redistributable (x64) ,但还是没有解决问题。
我运行的是 64 位 Windows 7,我有一个带有 64 位驱动程序的 USB 设备,但没有签名。它有一个带有黄色感叹号的设备管理器条目和以下警告:
Windows 无法验证此设备所需驱动程序的数字签名。最近的硬件或软件更改可能安装了签名不正确或损坏的文件,或者可能是来自未知来源的恶意软件。(代码 52)
我尝试使用 gpedit.msc 将代码签名设置为忽略,并使用 EasyBCD 设置 DDISABLE_INTEGRITY_CHECKS 值,但这两个选项都没有帮助,设备仍然无法工作。
有没有办法以某种方式真正禁用这个签名废话?
在我的 Windows 机器上运行SigCheck时,我注意到很多未签名的dll 。例如:
c:\windows\system32\amdocl64.dll:
Verified: Unsigned
File date: 10:47 AM 9/14/2011
Publisher: Advanced Micro Devices Inc.
Description: AMD Accelerated Parallel Processing OpenCL 1.1 Runtime
Product: OpenCL 1.1 AMD-APP-SDK-v2.5 (732.1)
Version: 2, 5, 732, 1
File version: 2, 5, 732, 1
c:\windows\system32\amdoclcl64.dll:
Verified: Unsigned
File date: 10:38 AM 9/14/2011
Publisher: Advanced Micro Devices Inc.
Description: AMD COMPILER OpenCL 1.1 Compiler
Product: AMD Compiler Library 1.1 AMD-COMP-LIB-v0.7 (727.0)
Version: 0, 7, 727, 0
File version: 0, 7, …Run Code Online (Sandbox Code Playgroud) PS cert:\currentuser\my> dir
Get-ChildItem : Access is denied.
At line:1 char:3
+ dir <<<<
Run Code Online (Sandbox Code Playgroud)
我无法访问我的任何代码签名证书来签署 PowerShell 脚本。我可以打开 MMC、证书,并看到我的代码签名证书已安装并在我的机器上有效(Windows XP SP 3)。
另一个奇怪的事情是我无法从 PowerShell 访问我的任何映射网络驱动器,但我可以在 Windows 资源管理器和 DOS 窗口中看到它们。
我已经卸载了 PowerShell,重新启动并重新安装了 PowerShell 1,但仍然有同样的问题。
编辑:我在这台机器上的日常帐户不是管理员,但我确实有一个管理员帐户,可以用于需要它的任务。代码签名证书分配给我的日常帐户,我应该不必成为管理员来签署代码。我不确定如何将此帐户权限授予证书存储区。
编辑 2: 我运行FileMon和RegMon来查看我被拒绝访问的内容。 cert:CurrentUser\My是文件夹C:\Documents and Settings\USERNAME\Application Data\Microsoft\SystemCertificates\My\Certificates。它还拒绝我访问C:\Documents and Settings\USERNAME\Local Settings\Temp. 我可以打开资源管理器并毫无问题地访问这些文件夹中的文件。我暂时授予Everyone了这些文件夹的完全权限,但仍然收到来自 PowerShell 的拒绝访问消息。
谷歌没有透露太多。我该怎么办?
来自 Windows PowerShell 事件日志的消息:
Provider Health: Attempting to perform the GetChildItems operation on
the 'Certificate' provider failed for path '\currentuser\my'. Access …Run Code Online (Sandbox Code Playgroud) 首先,这是我第一次使用代码签名。
它基于SHA-2:
由SHA-2功能保护
它们都是普通的Windows 可执行文件;适用于最终用户,包括便携式和安装人员。
问题:
请记住,证书已于 2016 年 10 月 10 日颁发,即在 2016 年 1 月 1 日之后,这是否会以某种方式影响签名的行为?我代表阅读弃用SHA-1提出这个问题,例如:
2016 年 1 月 1 日 - Microsoft 产品,包括 Internet Explorer 和 Chrome,将不再信任SHA-1 代码签名证书(来源)
我也应该加时间戳吗?这有什么用?时间戳有什么缺点吗?我发现了这一点,这并没有真正解决问题:
如果签名需要长期使用(以证明文件作者或数据创建者的真实性),即超过一天或几天,则应使用时间戳。(来源)
假设我将放弃对 XP 和 Vista 的支持,SHA-2代码签名能否在 Windows 7 上正常工作?我在 DigiCert 上读到Windows 7 上的SHA-2 代码签名支持是部分的:
详细的操作系统兼容性:Windows 7 部分(来源 …
我即将开始使用 YubiKey 4(RSA 2048 位密钥)来签署应用程序二进制文件。有很多关于如何设置它的教程。似乎大多数教程都是基于原始 Yubico 指南(Android,MacOS),这让我感到困惑。
当我查看PIV 证书槽信息时,我得出的结论是,槽9c(数字签名)是代码签名的正确槽,因为我使用私钥对二进制文件进行了数字签名。
然而,在 Yubico 的Android指南以及其他指南中,所选的证书槽为9a,用于PIV 身份验证。插槽的用途是针对“系统登录之类的事情”“验证卡和持卡人”,这显然是对代码签名的滥用。
使用 YubiKey 4 的 PIV 小程序进行代码签名证书的正确(语义)槽是什么?有什么理由使用/坚持使用插槽9a吗?
code-signing ×13
windows-7 ×6
certificate ×5
mac ×2
powershell ×2
security ×2
windows ×2
windows-10 ×2
64-bit ×1
batch-file ×1
dll ×1
drivers ×1
gdb ×1
gnupg ×1
macos ×1
macos-mojave ×1
private-key ×1
script ×1
sha-2 ×1
uninstall ×1
windows-8 ×1
yubikey ×1