CS.*_*CS. 5 excel vsto .net-4.0 sha256 digital-signature
我有一个VSTO 2010 Excel加载项,目标是.Net Framework 4.0,Visual Studio 2010.
过去几年我们使用SHA-1证书来签署清单和程序集.该应用程序已部署给许多最终用户.现在,随着SHA-1弃用政策从2016年1月开始生效,CA发布的续订证书使用SHA-256进行密钥管理.
请查看使用各种版本的Visual Studio构建Excel 2010 VSTO加载项生成的文件:
注意:使用SHA-2算法键入用于以下所有情况的证书.
VS 2010 SP1,Target Framework 4.0生成的.VSTO:
在DigestMethod对于所提到的算法dependentAssembly的hash是SHA1,使用SHA2证书时也是如此.
<dependentAssembly dependencyType="install" codebase="ExcelAddIn1.dll.manifest" size="18274">
<assemblyIdentity name="ExcelAddIn1.dll" version="1.0.0.1" publicKeyToken="2142698160a31911" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>DIGEST VALUE</dsig:DigestValue>
</hash>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
下publisherIdentity标签,所述SignatureMethod和DigestMethod使用是SHA256,这是根据该证书的算法.
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" />
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
Run Code Online (Sandbox Code Playgroud)
.VSCO由VS 2013 SP4和VS 2015生成,目标框架4.0:
请注意<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />标记中提到的算法是SHA1.这与VS 2010生成的内容相同.
<dependentAssembly dependencyType="install" codebase="ExcelAddIn1.dll.manifest" size="16058">
<assemblyIdentity name="ExcelAddIn1.dll" version="1.0.0.0" publicKeyToken="2142698160a31911" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>DIGEST VALUE</dsig:DigestValue>
</hash>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
同样,根据publisherIdentity标签,SignatureMethod并且DigestMethod仍在使用SHA1.使用VS 2010和VS 2013 SP1构建的.vsto文件在此处具有SHA2.
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
Run Code Online (Sandbox Code Playgroud)
即使在2016年1月17日之后,这项工作/是否会得到支持?
.VSTO由VS 2013 SP4和VS 2015生成,目标框架4.5.2:
请注意<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha2" />标记中提到的算法是SHA2.
<dependentAssembly dependencyType="install" codebase="ExcelAddIn1.dll.manifest" size="16058">
<assemblyIdentity name="ExcelAddIn1.dll" version="1.0.0.0" publicKeyToken="2142698160a31911" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha2" />
<dsig:DigestValue>DIGEST VALUE</dsig:DigestValue>
</hash>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
SignatureMethod而DigestMethod现在正指示SHA2算法.
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha2" />
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha2" />
Run Code Online (Sandbox Code Playgroud)
似乎VS 2013 SP3中的更新(也在VS 2015中可用)正在使用/强制执行根据目标的.Net Framework.
对于.Net Framework 4.0,DigestMethod和SigntureMethod始终为SHA1,与所使用的证书无关.现在,加载项适用于只有.Net 4.0的机器,因为VSTO/clickonce加载器根本不需要处理SHA2.
因此,考虑到从2016年1月开始必须使用SHA-2证书,用于使用SHA-2证书对加载项进行签名的配置应该是什么?
VS 2010,.Net Framework 4.0和SHA-2证书(如果没有安装.Net Framework 4.5或更新版本,则无法运行)
VS 2015,.Net Framework 4.0和SHA-2证书(这与使用SHA-1证书没什么不同.VSTO文件只有SHA-1条目,不确定这是否会在2016年1月之后起作用)
VS 2015,.Net Framework 4.5.2和SHA-2证书(不适合我.我需要将目标框架保持为4.0)
我在脱机的机器上安装Excel加载项.始终从文件系统加载它们.
[HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ExcelAddin1]
"Description"="ExcelAddin1 - COM add-in created with Visual Studio Tools for Office"
"FriendlyName"="ExcelAddin1"
"Manifest"="file:///C:/published/Addins/ExcelAddin1.vsto|vstolocal"
"LoadBehavior"=dword:00000003
Run Code Online (Sandbox Code Playgroud)
谢谢.
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |