PC Review


Reply
Thread Tools Rate Thread

Securely accessing an Access 2007 database...and are Access 2007 databases secure?

 
 
clifgriffin@gmail.com
Guest
Posts: n/a
 
      11th Aug 2007
I've written a password management application using .NET and c# that
stores several lists of passwords in a password protected Microsoft
Access database.

My first question is this...


1. Is Access 2007 security formidable? I know in previous versions,
there many utilities that would remove or reveal the password. How
easy is it to circumvent Access 2007's beefed up encryption?


I relied on the Microsoft model of handling database connections.
They
store a global connection string in the application settings, which
unfortunately includes a password. The problem with this, obviously,
is that you can simply run strings against the compiled application
to
find the password to my database in plaintext.


This obviously defeats the purpose of all the security and hashing
done in the rest of the application. This one little password gives
them access to all lists.


So my second question is...


2. Assuming access 2007 security is sufficiently hard to crack, how
can I obscure or encrypt the password for the database in my code
without having it directly related to user input. (Impratical since I
have multiple passwords.)


The solution does not have to be 100% unbreakable. We have more
layers
of protection than just this utility (including a windows account
password, and a fingerprint reader).


But it should be at least secure enough that someone cannot simply
run
strings against the binary to get the password to the database with
all of our other passwords.


Any ideas?


Thanks in advance,
Clifton

 
Reply With Quote
 
 
 
 
Alun Harford
Guest
Posts: n/a
 
      11th Aug 2007
http://www.pcreview.co.uk/forums/(E-Mail Removed) wrote:
> I've written a password management application using .NET and c# that
> stores several lists of passwords in a password protected Microsoft
> Access database.
>
> My first question is this...
>
>
> 1. Is Access 2007 security formidable? I know in previous versions,
> there many utilities that would remove or reveal the password. How
> easy is it to circumvent Access 2007's beefed up encryption?


It's probably trivial. People don't want serious security on their
office documents and simple databases - for most people it is more
important to ensure that they can recover their data when they forget
the password, than it is to keep out security professionals, police, etc.

A quick looks shows that there are already commercial products to attack
Access 2007 passwords.

I've not seen any academic papers on the subject - presumably nobody has
bothered to do an analysis.

> I relied on the Microsoft model of handling database connections.
> They
> store a global connection string in the application settings, which
> unfortunately includes a password. The problem with this, obviously,
> is that you can simply run strings against the compiled application
> to
> find the password to my database in plaintext.
>
>
> This obviously defeats the purpose of all the security and hashing
> done in the rest of the application. This one little password gives
> them access to all lists.
>
>
> So my second question is...
>
>
> 2. Assuming access 2007 security is sufficiently hard to crack, how
> can I obscure or encrypt the password for the database in my code
> without having it directly related to user input. (Impratical since I
> have multiple passwords.)


Well if you're talking obfuscation, keep in mind that anybody can use
reflector to get your code, run it and put a breakpoint when the
SqlConnection is instantiated. They can then look at your connection
string, no matter what fancy crypto or abfuscation you've done.

That would be the way I would attack your program - it's much easier
than pulling out strings and trying to figure out what they mean.

> The solution does not have to be 100% unbreakable. We have more
> layers
> of protection than just this utility (including a windows account
> password,


Not exactly great - ophcrack is pretty good these days, and Win2k
passwords (based on MD4) are on weak ground.

> and a fingerprint reader).


Fingerprints are not secret. A fingerprint reader is a convenient way to
tell a computer who you are, but not secure.

> But it should be at least secure enough that someone cannot simply
> run
> strings against the binary to get the password to the database with
> all of our other passwords.
>
> Any ideas?


A 'solution' would be to store the password to the database encrypted
with a key based on the user's password. Then you need the user's
password to decrypt it, and you can store an encrypted copy for each
user in your system. It's not perfect, but it's not totally stupid either.

Please remember that you don't know me and cannot reasonably trust me to
design your security system for you - I could be your adversary. The
same applies to everybody else around here.

I am a little concerned that you're designing and presumably
implementing a security application when your security knowledge is
weak... Maybe a commercial or open source product would better suit your
needs...

Alun Harford
 
Reply With Quote
 
 
 
 
clifgriffin@gmail.com
Guest
Posts: n/a
 
      11th Aug 2007
On Aug 11, 9:57 am, Alun Harford <(E-Mail Removed)> wrote:
> (E-Mail Removed) wrote:
> > I've written a password management application using .NET and c# that
> > stores several lists of passwords in a password protected Microsoft
> > Access database.

>
> > My first question is this...

>
> > 1. Is Access 2007 security formidable? I know in previous versions,
> > there many utilities that would remove or reveal the password. How
> > easy is it to circumvent Access 2007's beefed up encryption?

>
> It's probably trivial. People don't want serious security on their
> office documents and simple databases - for most people it is more
> important to ensure that they can recover their data when they forget
> the password, than it is to keep out security professionals, police, etc.
>
> A quick looks shows that there are already commercial products to attack
> Access 2007 passwords.
>
> I've not seen any academic papers on the subject - presumably nobody has
> bothered to do an analysis.
>
>
>
>
>
> > I relied on the Microsoft model of handling database connections.
> > They
> > store a global connection string in the application settings, which
> > unfortunately includes a password. The problem with this, obviously,
> > is that you can simply run strings against the compiled application
> > to
> > find the password to my database in plaintext.

>
> > This obviously defeats the purpose of all the security and hashing
> > done in the rest of the application. This one little password gives
> > them access to all lists.

>
> > So my second question is...

>
> > 2. Assuming access 2007 security is sufficiently hard to crack, how
> > can I obscure or encrypt the password for the database in my code
> > without having it directly related to user input. (Impratical since I
> > have multiple passwords.)

>
> Well if you're talking obfuscation, keep in mind that anybody can use
> reflector to get your code, run it and put a breakpoint when the
> SqlConnection is instantiated. They can then look at your connection
> string, no matter what fancy crypto or abfuscation you've done.
>
> That would be the way I would attack your program - it's much easier
> than pulling out strings and trying to figure out what they mean.
>
> > The solution does not have to be 100% unbreakable. We have more
> > layers
> > of protection than just this utility (including a windows account
> > password,

>
> Not exactly great - ophcrack is pretty good these days, and Win2k
> passwords (based on MD4) are on weak ground.
>
> > and a fingerprint reader).

>
> Fingerprints are not secret. A fingerprint reader is a convenient way to
> tell a computer who you are, but not secure.
>
> > But it should be at least secure enough that someone cannot simply
> > run
> > strings against the binary to get the password to the database with
> > all of our other passwords.

>
> > Any ideas?

>
> A 'solution' would be to store the password to the database encrypted
> with a key based on the user's password. Then you need the user's
> password to decrypt it, and you can store an encrypted copy for each
> user in your system. It's not perfect, but it's not totally stupid either.
>
> Please remember that you don't know me and cannot reasonably trust me to
> design your security system for you - I could be your adversary. The
> same applies to everybody else around here.
>
> I am a little concerned that you're designing and presumably
> implementing a security application when your security knowledge is
> weak... Maybe a commercial or open source product would better suit your
> needs...
>
> Alun Harford- Hide quoted text -
>
> - Show quoted text -


Well, there are a couple of very savvy security guys that will veto
the project if it isn't reasonably secure. Their best ideas included
tying the password to user input, but our current design makes that
annoying to implement.

The application is run from a secure terminal that is not on the
network and monitored 24/7 by two employees. A breach is fairly
impossible without inside help.

I just don't want this to be extremely easy to defeat.

Thanks for your ideas, I will go back to the drawing board again.
Clifton



 
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
Segmenting data securely on a access/SQL Server application weegee@metronet.co.uk Microsoft Access 0 10th Mar 2006 06:35 PM
How to securely share Access mdb files on XP Professional Server? =?Utf-8?B?eHN6aHU=?= Windows XP Networking 1 16th May 2004 04:21 AM
How to securely share Access mdb file on network? =?Utf-8?B?eHN6aHU=?= Windows XP Networking 0 15th May 2004 07:11 PM
Share Printer Securely on LAN & not on High-Speed Internet =?Utf-8?B?cmJhbHN0b24=?= Windows XP Security 2 7th Mar 2004 03:49 AM
securely sharing files between W2K and XPPro Aloke Prasad Windows XP Networking 0 27th Sep 2003 08:29 PM


Features
 

Advertising
 

Newsgroups
 


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