Encrypting without secrets

Security Briefs

Syndication

My latest column in MSDN Magazine is all about using RSA public key encryption with the .NET Framework to build a factored system that has the least possible exposure of its keys. Enjoy!

Posted Dec 23 2005, 01:27 PM by keith-brown
Filed under: ,

Comments

David C. wrote re: Encrypting without secrets
on 01-02-2006 3:54 AM
Excellent column -- I too have loved and used public key encryption for these very reasons, thanks for spreading the word! ;-)

I've also been thrilled with the .NET 2.0 release -- much less P/Invoke, etc., finally a pleasure to use for crypto!

One minor note that I'd like to add: .NET 2.0 does support standard CMS/PKCS #7 "enveloped" messages, which means not needing to be in the business of home-grown "enveloping" mechanisms. (EnvelopedCms, etc.)
Keith Brown wrote re: Encrypting without secrets
on 01-02-2006 6:55 AM
Good point. I should have mentioned that in the article. If someone *does* want to work with certificates (which adds a certain amount of overhead in several dimensions :) then CMS would definitely be the way to go. And .NET 2.0 makes this really easy - no more CAPICOM :)

Because the design of the system includes trusted keys (keys that I generate), I wanted to avoid going down the cert rathole. Of course then I was stuck building my own enveloping mechanism. I figured the tradeoff there was reasonable.

Glad you liked the article!
Christopher Steen wrote Link Listing - January 2, 2006
on 01-02-2006 9:33 PM
7 Tips for becoming a better Software
Developer [Via: ]
Adding and Removing items from an Html ...
David C. wrote re: Encrypting without secrets
on 01-03-2006 8:38 PM
Agreed fully -- design is all about tradeoff and yours is indeed reasonable

Some of the reasons why I like to work with certificates are:

Even if you don't want to use certificates to implement a particular trust model per se, there *is* some value in using certificates to manage public keys.

For example, the Windows platform has good administrative support for managing the certificates on a system, whereas, working with keys directly requires programmatic control, i.e., you had to write your own key manager rather than use the platform's certificate manager, which most SAs are already familiar with for configuring SSL, etc.

Also, for certs such as X509, the "meta data" bound to the key is quite handy for more than trust models -- in particular the validity period is very useful indeed -- your column mentioned the importance of key size, also as important is key lifetime, X509 certs are one good way of tracking this

I agree that getting PKIs/trust models/etc. correct to the point where they actually provide meaningful value is no walk in the park, but for simple things, I've really liked certs and find them easy to use (even easier to use now with .NET 2.0), so I'd like to just defend them a bit and say that they're not always all that bad ;-)
Keith Brown wrote re: Encrypting without secrets
on 01-03-2006 10:48 PM
Point well taken!
Dmitri wrote re: Encrypting without secrets
on 01-12-2006 5:20 AM
Only two containers are accessible to all users
-Microsoft Internet Information Server
-MS IIS DCOM Server
How to make, that myConteiner was accessible to all users of the machine
Steve Ridge wrote re: Encrypting without secrets
on 01-25-2006 8:44 AM
Excellent colummn. I just wanted to point out a potential gotcha that I have encountered if you decide to use Smart cards to store your private keys. Under Windows Server 2003 you can only access a Smart card device through an interactive user account. If, like me you want to have an automated process decrypting the data then Smart cards are not an option. My solution worked fine under Windows 2000 but Microsoft seem to have identified this as a potential vulnerability and restricted the access. I am now left with the task of changing to a new key container. Maybe certificates are the way forward after all.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?