MD5 on Silverlight

Reid Borsuk, an SDE/T on the CLR security team, has released a fully transparent implementation of the MD5 hash algorithm to the MSDN Code Gallery.  Since the code is entirely transparent, it can be used as part of a Silverlight application that needs to compute MD5 hashes in order to interop with existing code or…

1

CryptoConfig

The crypto config schema has been a bit of a hot topic around here lately, specifically around how to modify the CLR’s machine.config to get custom crypto types registered with CryptoConfig. Let’s take a quick look at what CryptoConfig is first, and then we’ll see how to customize its behavior.  CryptoConfig is a type in…

1

Using RSACryptoServiceProvider for RSA-SHA256 signatures

Earlier this month, we released .NET 3.5 SP 1.  One of the new features available in this update is that RSACryptoServiceProvider has gained the ability to create and verify RSA-SHA256 signatures. Since RSACryptoServiceProvider relies on the underlying CAPI APIs to do its work, this feature will only be enabled on versions of Windows which support…

12

CLR Security Team CodePlex Site

The CLR Security Team just launched our CodePlex site: http://www.codeplex.com/clrsecurity.  Currently, it contains two assemblies that provide additional functionality to the security APIs shipped in v3.5 of the .NET Framework. We’d love your feedback on the currently offered libraries, and also welcome ideas for other libraries you’d like to see on our CodePlex site.  From…

1

Dr. Dobbs Looks at Silverlight Security

Dino Esposito has an article in the March Dr. Dobb’s Journal taking a look at the Silverlight platform from a security perspective: The Silverlight 2.0 Security Model.  The second half in particular boils down some of the details of the transparency model used for security enforcement in Silverlight.  This article is quite good – I…

1

Strong Name Bypass

Many managed applications start up slower than they really need to because of time spent verifying their strong name signatures.  For most of these applications, the strong name verification isn’t buying the application anything – especially fully trusted desktop applications that are using C# as a better C++. Since these applications were paying the cost…

5

FullTrust on the LocalIntranet

We released the first beta of .NET 3.5 SP 1 this morning, and it includes a change to the default grant set for applications launched from the LocalIntranet zone.  The quick summary is that as of .NET 3.5 SP1, applications run from a network share will receive a grant set of FullTrust by default, making…

18

Disabling the FIPS Algorithm Check

.NET 2.0 introduced a check for FIPS certified algorithms if your local security policy was configured to require them.  This resulted in algorithms which are not FIPS compliant (or implementations which were not FIPS certified) throwing an InvalidOperationException from their constructors. In some cases this isn’t a desirable behavior.  For instance, some applications need to…

4

CAS and Native Code

CAS is complicated enough to understand when all of the moving parts are written in managed code (and therefore have all the associated managed meta-information like grant sets, etc).  However, once native code comes into play things can get even more confusing.  Let’s take a look at how CAS works when there’s native code on…

2

Which Groups Does WindowsIdentity.Groups Return?

WindowsIdentity exposes a Groups property which returns a collection of IdentityReferences for the groups that a particular user is a member of.  However, if you look closely, you’ll find that these returned groups won’t necessarily include all of the groups that the user is a member of. Under the covers, WindowsIdentity populates the groups collection…

1