Robert Hurlbut Blog

Thoughts on Software Security, Software Architecture, Software Development, and Agility

Using SecureString now

Wednesday, July 7, 2004 Comments

 .NET   Security 
Share:   Share on LinkedIn    Share on Twitter    Share on Google+    Share on Facebook   

Have you heard about SecureString in Whidbey/VS 2005?  This was built to help solve some of the problems of storing sensitive and secret information in System.String:

  • It's not pinned, so the garbage collector can move it around at will leaving several copies in memory
  • It's not encrypted, so anyone who can read your process' memory will be able to see the value of the string easily.  Also, if your process gets swapped out to disk, the unencrypted contents of the string will be sitting in your swap file.
  • It's not mutable, so whenever you need to modify it, there will be the old version and the new version both in memory
  • Since it's not mutable, there's no effective way to clear it out when you're done using it [by way of Shawn Farkcas]

Hernan de Lahitte has put together a sample class that works in a similar way as SecureString for .Net 1.1.

Share:   Share on LinkedIn    Share on Twitter    Share on Google+    Share on Facebook