Securing sensitive data.
If I steal your web server how secure is all that encrypted data on the drive? The answer is usually "not at all". That's because the all-too-common method for encryption in web applications also stores the decryption key, unsecured, on the same server. Get the server, get the key. Get the key, get the data. It's that simple. The argument in favor of this method says that the key has to be there for the server to encrypt the data. Perhaps it's a coincidence that it's also a lot easier, and, speaking from personal experience, programmers are lazy by nature.
So that begs the question, "Is there a way that would keep the data secure even if the attacker has full access to the server?" Yes - and it's not new. It's just harder than the one-key-fits-all method. You have to blend one-key (Symmetric) encryption with two-key (Public Key) encryption.
Encryption:- random 256-bit AES key generated - 128-bit is plenty strong enough, but hey, why not?
- random key used to encrypt the data
- RSA Public Key is used to encrypt the Random Key
- both the encrypted data and the encrypted key are stored in the database.
Decryption:
- login pass-phrase is strengthened into a 256-bit AES key
- strengthened key is used to decrypt that user's RSA Private Key
- RSA Private Key is used to decrypt the AES (Random) Key
- AES Key is used to decrypt the data.
Note that although the encryption key is stored on the server, it is encrypted and, more importantly, cannot be decrypted using anything on the server.
Since the whole decryption phase is kicked off with the user's login pass-phrase, an attacker would have to have that in addition to the encrypted data in order to get anywhere.
Most new PHP installations have everything you need:
If you're collecting sensitive information on your wesite (or websites that you've developed), you should be securing it properly. If you are not, or are not sure, give us a call. Let us discuss with you how Dialogs can empower you to securely work the web.
Recent Articles
Agencies: landing web projects using real-world comparisons (part 1 of 3).
What is a prospect really looking for in an agency?
It’s OK if you don’t know what you're asking - you should still ask.
We can’t know everything. That’s why we collaborate.
From sorting beads to a left-join ... exploring parent-child dynamics in content management
My daughter loves to sort beads and stack cups. She's going to LOVE the left-join.
Why do we hate meetings? Here’s one reason.
Meeting productivity can be thwarted by whining.
It’s time for 2020 vision.
How your agency adapts in 2010 will determine where you are in 2020.
Buzz is more than a new social app, it's how businesses grow.
Social networks aren't just for socializing.
“Self-fulfilling prophecies.” or “I should have known that client would be trouble.”
The way you conduct yourself may determine the quality of your clients.
Technology can make you or break you.
It can be tricky to choose the technology your business needs to succeed.
Sometimes it's OK to break the rules.
Some database standards have been carried on too long.
What will the new year bring?
Let 2010 be the year you work the web.
Our customers say it best
I have enjoyed working with the team at Dialogs … their attention to detail and professionalism are tremendous.
— Paula T.