<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx</link><description>The general concepts of Authenticode signing an assembly are well understood -- they mostly correlate directly to the standard Win32 concept of a signed catalog. However, there are a few places where managed code plays differently, and sometimes these</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#503147</link><pubDate>Tue, 13 Dec 2005 18:50:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503147</guid><dc:creator>JohnB</dc:creator><description>We encountered severe problems with signed assemblies - if the CRL server is not reachable (ex if you're behind a firewall) the startup of the application is blocked for a couple of seconds. Funny thing is, the Assembly will then be loaded nevertheless, so the whole check seems pointless to me. IMHO, it should be possible to entirely trust signed assemblies in order to prevent the CLR from checking with the CRL. Completely switching off the check (possible in the advanced tab of the internet settings) is not an acceptable workaround. We will remove the digital signature from our assemblies for these reasons...</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#503164</link><pubDate>Tue, 13 Dec 2005 19:29:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503164</guid><dc:creator>shawnfa</dc:creator><description>Right -- if a signature fails to verify we don't block the load, rather we just don't grant the publisher identity permission associated with the certificate.&lt;br&gt;&lt;br&gt;-Shawn</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#503222</link><pubDate>Tue, 13 Dec 2005 21:37:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503222</guid><dc:creator>JohnB</dc:creator><description>If you think of it from a third party component vendor perspective it's a pity it works like it does - as soon as someone inserts our assembly into his application, he gets the firewall popping up and once he denies the connection, he ends up with a few second delay at app startup. We had to face severe accusations of producing spyware or trojans until we found out what's actuall happening here. You can google for several threads from component vendors with the same problem - as of now, IMO using digital signatures with .NET assemblies is not recommendable as long asw you don't write code for specific customers to whom you can explain what's happening.</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#503361</link><pubDate>Wed, 14 Dec 2005 02:23:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503361</guid><dc:creator>Kevin Read</dc:creator><description>We have also encountered problems with signed assemblies and CRL checking.  &lt;br&gt;&lt;br&gt;In our case, the problems encountered happened on our backend servers, where this assembly loading delay was completely unacceptable.&lt;br&gt;&lt;br&gt;For these servers, we decided to go down the road of turning off crl checking to return assembly loading performance to &amp;quot;normal&amp;quot;.  Unfortunately this is a per user setting, which meant implementing login scripts and registry changes for inbuilt accounts.&lt;br&gt;&lt;br&gt;On these servers we have actually locked down CAS Policy so that only known publishers have any permissions, anything else in any zone gets nada.&lt;br&gt;</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#503681</link><pubDate>Wed, 14 Dec 2005 21:52:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503681</guid><dc:creator>shawnfa</dc:creator><description>Sure -- you have to evaluate the costs of signing with a certificate vs the benefits it gives you.&lt;br&gt;&lt;br&gt;Costs include the startup delay as we attempt to verify the signature, which does involve getting a new CRL.&lt;br&gt;&lt;br&gt;If you're disabling the CRL, and could make a trust decision based upon just a key, strong naming might be a better option for you.&lt;br&gt;&lt;br&gt;-Shawn</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#538474</link><pubDate>Fri, 24 Feb 2006 09:41:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:538474</guid><dc:creator>Foo</dc:creator><description>A simple solution to the CRL check overhead is to use authenticode certificates that don't have a CDP embedded in them. Of course, this generally implies a self-signed cert, but we've found this to be an acceptable compromise.</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#1085415</link><pubDate>Thu, 16 Nov 2006 10:01:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1085415</guid><dc:creator>Daniel</dc:creator><description>&lt;p&gt;The CRL check can be disastrous if the check happens during an install and it's a service exe (or dependency) that's being checked. &amp;nbsp;The service only has 30 seconds to start and if the network is in a broken state, then the service never starts and the install craps out.&lt;/p&gt;
&lt;p&gt;I don't understand why Microsoft tells ISVs that Authenticode signatures must be used for Vista Logo compliance.&lt;/p&gt;
&lt;p&gt;Especially when this failure is very easy to reproduce.&lt;/p&gt;</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#1313209</link><pubDate>Mon, 18 Dec 2006 04:07:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1313209</guid><dc:creator>shawnfa</dc:creator><description>&lt;p&gt;Yes, services are an especially painful point for this issue. &amp;nbsp;If you need to write a managed service, you could write a thin native layer which is the signed entyr point, and delegates to managed code to do the rest of the work as one option.&lt;/p&gt;
&lt;p&gt;-Shawn&lt;/p&gt;
</description></item><item><title>Untitled Document</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#1314703</link><pubDate>Mon, 18 Dec 2006 10:17:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1314703</guid><dc:creator>Untitled Document</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.autocadgunlugu.com/autodesk%e2%80%99in-internet-uzerinden-kontrol-yaptigi-soylentileri-yayiliyor/"&gt;http://www.autocadgunlugu.com/autodesk%e2%80%99in-internet-uzerinden-kontrol-yaptigi-soylentileri-yayiliyor/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#1574983</link><pubDate>Thu, 01 Feb 2007 22:55:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1574983</guid><dc:creator>George Birbilis</dc:creator><description>&lt;p&gt;btw, checkout&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://forum.sysinternals.com/forum_posts.asp?TID=2845"&gt;http://forum.sysinternals.com/forum_posts.asp?TID=2845&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Enumerating Evidence</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#1748238</link><pubDate>Fri, 23 Feb 2007 20:15:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1748238</guid><dc:creator>.Net Security Blog</dc:creator><description>&lt;p&gt;The Evidence class supports being enumerated in three different ways: GetAssemblyEnumerator GetHostEnumerator&lt;/p&gt;
</description></item><item><title>re: Authenticode and Assemblies</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#2219491</link><pubDate>Sat, 21 Apr 2007 14:15:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2219491</guid><dc:creator>...</dc:creator><description>&lt;p&gt;Scommettevo che avete speso molto tempo lavorare al luogo. Ha valso la pena di fare;)&lt;/p&gt;</description></item><item><title>Bypassing the Authenticode Signature Check on Startup</title><link>http://blogs.msdn.com/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx#2466314</link><pubDate>Mon, 07 May 2007 21:25:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2466314</guid><dc:creator>.Net Security Blog</dc:creator><description>&lt;p&gt;A while back I wrote about the performance penalty of loading an assembly with an Authenticode signature&lt;/p&gt;
</description></item></channel></rss>