title: Key Containers, secure enough to store private keys?
body: <p>I was reading about <a href="http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx" rel="noreferrer">Key Containers in .NET</a> as a secure a place to store a private key for asymmetric cryptography and digital signing.</p>
  
  <p>My question is how secure is the Key Container? because I've found out if I know the key container name, then i will be able to retrieve the private key using the following:</p>
  
  <pre><code>// Create the CspParameters object and set the key container 
  // name used to store the RSA key pair.
  CspParameters cp = new CspParameters();
  cp.KeyContainerName = ContainerName;
  
  // Create a new instance of RSACryptoServiceProvider that accesses
  // the key container MyKeyContainerName.
  RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);
  
  // Display the key information to the console.
  Console.WriteLine("Key retrieved from container : \n {0}", rsa.ToXmlString(true));
  </code></pre>
  
  <p>Are Key Containers a secure place to store private keys ?</p>