本文来源:微信公众号
今天说说数字签名这个事情。一般来说公司发布插件产品肯定要对插件进行数字签名的。之前的文章也提到,Autodesk Revit自2017版开始对插件进行数字签名认证。
所谓数字签名就是添加到文件的电子安全标记。使用它可以验证文件的发布者以及帮助验证文件自被数字签名后是否发生更改。如果文件没有有效的数字签名,则无法确保该文件确实来自它所声称的源,或者无法确保它在发布后未被篡改(可能被病毒篡改)。
当每次编译完dll,然后用Revit加载调试时,Revit都会提示“永远加载”,“加载一次”,“不载入”三种情况。
a. 如果你就编译一次,以后永远都不会编译了,就选择“永远加载”。这种情况一般是我们从开源社区下载常用工具代码,自己编译dll的情况。比如自己从Github编译Revit Lookup工具。
b. “加载一次”, 一般就是调试的时候常用的情况。
c. "不载入",字面意思,不过多解释。
那么如果我们购买了数字签名证书,该如何对自己的dll进行签名呢?什么是双数字签名?怎么进行双数字签名?这都是我需要告知大家的。
假设我们已经从安全证书公司购买了数字签名证书,我们对dll最佳的签名方式是使用脚本签名,常用的就是bat脚本。
双数字签名指的是既对dll进行sha1算法签名,又对其使用sha256签名。“sha1加密算法的不安全性越来越高,sha1造假成本越来越低,随即微软、谷歌等IT巨头相继发布弃用sha1加密算法声明,第三方认证机构自2016年1月1日起,将全面停止签发SHA1算法的数字证书。” SHA1算法被SHA-256所取代,所以我们的插件dll需要双签名操作,当然你可以只用sha256。
进行签名前的文件清单:
1. 证书文件:xxx.pfx
2. 你的待签名dll: xxx.dll
3. signtool及其依赖项:
a. appxpackaging.dll
b. appxsip.dll
c. Microsoft.ComparePackage.Lib.dll
d. Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifest
e. Microsoft.Windows.Build.Appx.AppxSip.dll.manifest
f. Microsoft.Windows.Build.Appx.OpcServices.dll.manifest
g. Microsoft.Windows.Build.Signing.mssign32.dll.manifest
h. Microsoft.Windows.Build.Signing.wintrust.dll.manifest
i. mssign32.dll
j. opcservices.dll
k.signtool.exe
l. signtool.exe.manifest
m. wintrust.dll
o. wintrust.dll.ini
以上这些文件上哪里找呢?
在Win10系统里:
D:\Windows Kits\10\bin\10.0.17134.0\x86文件夹中
把他们复制出来的时候记得也放一个文件夹里,因为signtool.exe是依赖于这些的。
那么为什么是win10系统,win7可以不?
貌似不行唉,版本太低,反正我自己测是签不了sha256,想了好久。。。
下载个Win10的SDK里应该也会有上述文件。
需要说明的是exe,dll可以双数字签名。msi只能sha1,不能sha256,这是我测试的结果,欢迎来群里讨论。
最后祭出脚本,方便各位local bat script或者server Jenkins全自动化工作:
SHA1:
signtool.exe sign /f xxx.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v xxx.dll
SHA256:
signtool.exe sign /f xxx.pfx /p password /fd sha256 /tr sign256url /v /as xxx.dll
红色部分需要全路径或相对路径,因为每家sha256的签名url不同,所以蓝色部分填上购买的数字签名公司对应的时间戳地址。
最新文章
政策新闻 | 蓬江区住建局创新“体检式监管” 为工程建设领域高质量发展赋能 政策新闻 | 珠海市商品住房销售价格备案公示表(华发香山湖畔苑1、2栋52套) 政策新闻 | 关于2025年上半年定西市城市建成区黑臭水体自查情况的公示 政策新闻 | 滨州住建局关于2025年第十批建筑业企业资质审查意见的公示 政策新闻 | 聊城:城发公司开展“全国低碳日”节能宣传活动 政策新闻 | 龙海区│市政设施焕新升级,匠心助推品质提升 政策新闻 | 宿迁彭雪枫纪念馆二楼廉政展厅和一楼贵宾接待室内采购及安装新风系统项目招标代理服务成交结果公告 政策新闻 | 广西住建厅关于公布2025年第G18批建筑业企业资质(增项)审查结果的通告 政策新闻 | 德州住建局关于庆云县俊英勘察施工有限公司的勘察设计企业资质核准情况的公告 政策新闻 | 贵州:改造老旧小区4695个 城市更新提升群众“三感”