Owin.dll,Nuget.org上的Owin软件包中的程序集,没有Authenticode签名。但是,在Windows Server 2016和Windows Server 2019上,Get-AuthenticodeSignature(以及sigcheck.exe)错误地报告Owin.dll具有Authenticode签名。如果您部署了Windows Server虚拟机并运行此代码,则会返回不同的签名和时间戳证书(我只在Azure中执行了此操作)。
在Windows Server 2019上,它返回一个带有指纹AE9C1AE54763822EEC42474983D8B635116C8452和时间戳证书指纹893ED0E4D032C3855D5D2296B2DE2DD1AFB897DD的签名证书。
在Windows Server 2016上,它返回一个带有指纹E85459B23C232DB3CB94C7A56D47678F58E8E51E和时间戳证书指纹CFC3E3018EA65666DCE484FC7016EB42D1F108A9的签名证书。
其他证书元数据表明这些实际上是来自Microsoft的证书。
发生了什么?为什么这个特定的程序集在这些特定版本的Windows中表现出这种行为?
> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
> Invoke-WebRequest "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -OutFile NuGet.exe
> .\NuGet.exe install owin -o .
> Get-AuthenticodeSignature .\Owin.1.0\lib\net40\Owin.dll | Format-List
在Windows Server 2019上,它返回一个带有指纹AE9C1AE54763822EEC42474983D8B635116C8452和时间戳证书指纹893ED0E4D032C3855D5D2296B2DE2DD1AFB897DD的签名证书。
在Windows Server 2016上,它返回一个带有指纹E85459B23C232DB3CB94C7A56D47678F58E8E51E和时间戳证书指纹CFC3E3018EA65666DCE484FC7016EB42D1F108A9的签名证书。
其他证书元数据表明这些实际上是来自Microsoft的证书。
发生了什么?为什么这个特定的程序集在这些特定版本的Windows中表现出这种行为?
如果文件既嵌入签名又Windows目录签名,则使用Windows目录签名。
- themilkyninja