加密工具

加密工具提供代码签名、签名验证和其他加密任务的命令行工具。

代码签名简介

软件行业必须为用户提供信任代码的方法,包括 Internet 上发布的代码。 许多网页仅包含可以下载且风险很少的静态信息。 但是,某些页面包含要下载并在用户计算机上运行的控件和应用程序。 这些可执行文件可能会有下载和运行的风险。

打包软件使用品牌和受信任的销售网点来保证用户的完整性,但在 Internet 上传输代码时,这些保证不可用。 此外,Internet 本身无法保证软件创建者的标识。 它也不能保证任何下载的软件在创建后都不会更改。 浏览器可以显示一条警告消息,说明下载任何类型的数据可能存在的危险,但浏览器无法验证代码是否是它声称的。 必须采取更积极的方法来使 Internet 成为分发软件的可靠媒体。

提供文件的真实性和 完整性 的一种方法是将 数字签名 附加到这些文件。 附加到文件的数字签名会积极标识该文件的分发服务器,并确保在创建签名后不会更改文件的内容。

可以使用Microsoft的加密 API 创建和验证数字签名。 有关加密和 CryptoAPI 函数的背景信息,请参阅 加密概要

有关 数字签名证书证书存储的详细信息,请参阅以下主题:

目前,CryptoAPI 工具通过允许软件供应商对以下类型的文件进行验证,从而支持 Microsoft Authenticode 技术。

文件扩展名 内容
.appx、.msix、.appxbundle、.msixbundle
打包的 Windows 应用。
.cab
用于应用程序安装和设置的自包含文件。 在内阁文件中,多个文件压缩为一个文件。 它们通常位于Microsoft软件分发磁盘上。
。猫
包含多个文件的数字 指纹的文件。 .cat 文件可用于确保其指纹包含的文件的完整性。
.dll
包含可执行函数的文件。
.exe
包含可执行程序的文件。
.js
.vbs
.wsf
适用于 JScript 或 Microsoft Visual Basic 脚本版本的 Windows shell 文件(VBScript)。
.msi
.msp
.mst
Windows 安装程序文件。
.ocx
包含 Microsoft ActiveX 控件的文件。
.ps1
包含 PowerShell 脚本的文件。
.stl
包含 证书信任列表的文件 (CTL)。
.sys
包含驱动程序二进制文件的文件。

 

有关数字签名的信息,请参阅以下文档:

  • CCITT,建议X.509,Directory-Authentication 框架,协商委员会,国际电话和电报,国际电信联盟,日内瓦,1989年。
  • RSA 实验室,PKCS #7:加密消息语法标准。 版本 1.5,1993 年 11 月。
  • 施奈尔,布鲁斯,应用加密,2d ed。 纽约:约翰·威利 & 儿子,1996年。
  • https://www.rsa.com

注意

某些语言和国家或地区可能无法使用这些资源。

 

Microsoft加密工具

发布工具和签名 DLL 安装在Microsoft SDK 安装的 \Bin 目录中。 它们包括以下文件。

文件名 言论
Cert2SPC.exe 仅出于测试目的创建 软件发布者证书(SPC)。
CertMgr.exe 管理证书、CCL 和 证书吊销列表(CRL)。
MakeCat.exe 创建一个未签名的目录文件,该文件包含一组文件的哈希以及每个文件的关联属性。
MakeCert.exe 仅出于测试目的创建 X.509 证书。
Pvk2pfx.exe 将软件发布者证书文件 (.spc) 或私钥文件 (.pvk) 转换为个人信息交换 (PFX) 文件格式。
SetReg.exe 设置用于控制证书验证的注册表项。
SignTool.exe 对文件进行签名和时间戳。 此外,检查文件的签名。