加密工具
加密工具提供代码签名、签名验证和其他加密任务的命令行工具。
代码签名简介
软件行业必须为用户提供信任代码的方法,包括 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 | 对文件进行签名和时间戳。 此外,检查文件的签名。 |