title: How secure is ProtectedData.Protect (DPAPI)?
body: <p>Suppose someone gets access all of my hard disk, I guess the weak spot would be my windows password. Without knowing/being able to retrieve that, the data should be pretty much safe, shouldn't it?</p>
  
  <p>I'm asking specifically because of the <a href="http://en.wikipedia.org/wiki/Encrypting_File_System#Decrypting_files_using_the_local_Administrator_account">EFS entry</a> in wikipedia which states that</p>
  
  <blockquote>
    <p>In Windows 2000, the local administrator is the default Data Recovery Agent, capable of decrypting all files encrypted with EFS by any local user.</p>
  </blockquote>
  
  <p>and EFS happens to use DPAPI. So does the same apply to my own data protected using this:</p>
  
  <pre><code>ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
  </code></pre>
  
  <p>And if that is indeed the case, how could I prevent it?</p>
  
  <p><strong>[Edit]</strong> N.B. I'm trying to store credentials for a winforms app so that the user does not have to enter their password every time they login. In other words, if someone is able to login as that user (i.e. know the user password), then they might as well be able read the encrypted data.</p>
  
  <p>Which - not coming from a windows background - now makes me wonder - can't the local admin login as any local user anyway? In that case I shouldn't be concerned about the admin being able to retrieve passwords anyway...</p>
  
  <p><strong>[Edit2]</strong> As google reveals, it looks like an Administrator <strong>cannot</strong> just login as any user without resetting/changing their password first. So my question still seems relevant...</p>