PC Review


Reply
Thread Tools Rate Thread

How to securely store a password on a PC

 
 
Sebastian Daser
Guest
Posts: n/a
 
      14th Jan 2009
Hi All,

I would like to write an application consisting of two components: The first
one should be a GUI that allows a user to encrypt and store a file on a PC
(using a provided password or the users Windows password or a security
token), the second component should be a service (running on the same PC)
that is able to decrypt the file using the previously provided password, the
users password or security token).

My problem: How can I store the provided password securely on the PC (for
use by the service) in a way that other users (even administrators) are not
able to acquire it, even if they try to reverse engineer or disassemble the
application?

Is there a way for an application running on the user's account to acquire
the users password or some sort of a security token which cannot be acquired
by other users (even administrators)?

Which .NET framework assemblies may be used to accomplish the tasks?

Any help would be most appreciated!

Thanks and best regards
Sebastian Daser
Softfount IT Solutions
 
Reply With Quote
 
 
 
 
rhaazy
Guest
Posts: n/a
 
      14th Jan 2009
use integrated windows authenitcation. users with an account on the
machine, and with appropriate rights will be able to use the
application.

On Jan 14, 3:32*am, Sebastian Daser
<SebastianDa...@discussions.microsoft.com> wrote:
> Hi All,
>
> I would like to write an application consisting of two components: The first
> one should be a GUI that allows a user to encrypt and store a file on a PC
> (using a provided password or the users Windows password or a security
> token), the second component should be a service (running on the same PC)
> that is able to decrypt the file using the previously provided password, the
> users password or security token).
>
> My problem: How can I store the provided password securely on the PC (for
> use by the service) in a way that other users (even administrators) are not
> able to acquire it, even if they try to reverse engineer or disassemble the
> application?
>
> Is there a way for an application running on the user's account to acquire
> the users password or some sort of a security token which cannot be acquired
> by other users (even administrators)?
>
> Which .NET framework assemblies may be used to accomplish the tasks?
>
> Any help would be most appreciated!
>
> Thanks and best regards
> Sebastian Daser
> Softfount IT Solutions


 
Reply With Quote
 
lelteto
Guest
Posts: n/a
 
      15th Jan 2009
You simply CANNOT. The short reason is that an admin can always DEBUG your
service and can find the point when the password is retrieved / used within
the service's code. Same goes for trying to protect against anybody having
full physical access to the computer. Eventually - since ALL information
needed for run your service, and, hence, ALL information needed to get to the
password - an attacker could find the password and decrypt the data.

On the other hand, if you just want to protect it from other users, you can
simply use access control (ACLs) - either on the data file or on the password
file.

That doesn't mean you cannot make it harder to an attacker to find it. You
can use code obfuscation, password obfuscation, etc. But that just increases
the work factor and ultimately does NOT provide protection.

Laszlo Elteto
SafeNet, Inc.

"Sebastian Daser" wrote:

> Hi All,
>
> I would like to write an application consisting of two components: The first
> one should be a GUI that allows a user to encrypt and store a file on a PC
> (using a provided password or the users Windows password or a security
> token), the second component should be a service (running on the same PC)
> that is able to decrypt the file using the previously provided password, the
> users password or security token).
>
> My problem: How can I store the provided password securely on the PC (for
> use by the service) in a way that other users (even administrators) are not
> able to acquire it, even if they try to reverse engineer or disassemble the
> application?
>
> Is there a way for an application running on the user's account to acquire
> the users password or some sort of a security token which cannot be acquired
> by other users (even administrators)?
>
> Which .NET framework assemblies may be used to accomplish the tasks?
>
> Any help would be most appreciated!
>
> Thanks and best regards
> Sebastian Daser
> Softfount IT Solutions

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
password store Traveller Microsoft Outlook 2 22nd Oct 2006 01:51 PM
Where I can store my password on Win 2k? Pearl 2 U Microsoft Windows 2000 Security 1 21st Jan 2005 09:43 AM
Where to store the DB password in a asp.net app? Darren Clark Microsoft ASP .NET 3 4th May 2004 11:56 AM
Where/How to Securely Store ID and Password? Guadala Harry Microsoft ASP .NET 5 22nd Feb 2004 01:53 AM
How to securely store passwords in .NET applications? Peter Rilling Microsoft C# .NET 2 29th Jul 2003 02:01 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 07:41 PM.