Deploying patches that work with digitally signed .NET assemblies

Deploying patches that work with digitally signed .NET assemblies

Secure Home | Search | About
 Microsoft Applications Security    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content add this group's latest topics to your Google content
Subject Author Date
Deploying patches that work with digitally signed .NET assemblies anelson327 11-29-2005
Posted by anelson327 on November 29, 2005, 6:27 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
Does anyone have some best practices for how to deploy patches
(selected subsets of assemblies) that will work with other previously
deployed .NET assemblies that are all digitally signed with an
Authenticode (digital code signing) certificate and enforce link
demands? We're using LinkDemand to ensure that callers have been
signed with the same digital certificate as the assemblies being called
(to ensure their authenticity), but once a certificate expires, it
appears that a "patch" of any of these assemblies is not possible --
all assemblies have to be resigned with a valid certificate and
redeployed. Is our understanding correct about this, and are there
suggestions/best practices for dealing with this situation?


Posted by Nicole Calinoiu on November 30, 2005, 9:17 am
If you were  Registered and logged in, you could reply and use other advanced thread options
> Does anyone have some best practices for how to deploy patches
> (selected subsets of assemblies) that will work with other previously
> deployed .NET assemblies that are all digitally signed with an
> Authenticode (digital code signing) certificate and enforce link
> demands? We're using LinkDemand to ensure that callers have been
> signed with the same digital certificate as the assemblies being called
> (to ensure their authenticity),

In v. 2.0 of the .NET Framework, fully trusted code automatically passes any
identity permission demand, so you may want to reconsider this approach.
(In v. 1.x, it was fairly trivial for highly privileged code to bypass such
checks, so it's also of limited use there, although a developer would at
least be aware of the "transgression".)


> but once a certificate expires, it
> appears that a "patch" of any of these assemblies is not possible --
> all assemblies have to be resigned with a valid certificate and
> redeployed.

Have you considered applying a timestamp when signing the assemblies? This
is done by specifying the timestamp server URL via the -t option of either
signcode.exe or signtool.exe. If you're not sure which timestamping service
to use, check with your CA. If they have their own, it probably makes sense
to use it. Otherwise, the Verisign service at
http://timestamp.verisign.com/scripts/timstamp.dll.


> Is our understanding correct about this, and are there
> suggestions/best practices for dealing with this situation?

Timestamping is pretty much the only alternative to resigning if you're
using authenticode signatures.



Similar ThreadsPosted
How can digitally signed executable be "secure" ? May 24, 2006, 3:55 pm
Why are programs not digitally signed to protect against viruses? June 28, 2005, 1:58 pm
Why don't the Patches work? April 4, 2006, 1:19 pm
Deploying desktop firewalls in the internal network ? August 11, 2005, 3:19 pm
Installing & deploying multiple Windows updates.... May 7, 2007, 2:41 am
Options for Deploying Root and Int Certs to clients not part of do April 29, 2007, 1:50 pm
Digitally sign MS Office files October 19, 2006, 5:30 am
Digitally sign MS Office files October 19, 2006, 5:30 am
Digitally sign MS Office files October 19, 2006, 5:30 am
Digitally signing GIFs, JPEGs, etc. October 29, 2007, 12:22 pm

The site map in XML format XML site map

Contact Us | Privacy Policy