Michael S. Zick wrote:
On Fri December 26 2008, Edward Diener wrote:
Kyle Hamilton wrote:
If your company hires a security consultant, s/he will state the same thing.
Thanks for your help but right now I am the programmer and "security consultant", and therefore I must come up with security answers. Nonetheless I will mention to my employer that he might want to hire another person as a "security consultant" to deal with server side security issues.


And that is one of the problems which people are trying to describe.

Where the application coding can be split between server and client
side coding - (and evidently has been, you have the client side chore).

While I have programmed the client side, I am not precluded from working on the server side code/scripts nor from accessing the server side database.


The system security plan can not be split, it must encompass the application
as a whole, end-to-end.

Note I write: "plan" - the coding that implements the plan can be split,
just the plan can not be.

And unfortunately for yourself, you can't fix things from the client side only. 
;)

See above.


- - - -

From a business stand point, there is another significant problem lurking here -

If the system was sold along the lines of argument: "Buy our xyz and you can be sure the information in the system is secure."

The the customer can reasonably expect the firm making the sale under such
logic to be responsible for any security failures.

Now consider some scheme that involves a client-side private key - -
Perhaps, the application generates a key-pair, has the server sign the
certificate request - something, anything, that results in a client side,
private key - -

If any of the clients fail to preserve and protect that client side private key 
-
Then the information stored by the application is subject to compromise.
I.E: the actual failure point is on the client side -
But the liability remains with the provider of the system.  Ouch.
(You can't ask the Fox to protect the Chicken House.)

A similar case can be made for a system that does not use a client side private
key but requires protection of the public key materials on the client side.

Well I asked whether protection for the client side certs were needed, and how this might be done, and I was told I was barking up the wrong tree, so to speak. I felt this way from the very beginning but my employer wanted to get other opinions.

But other than vague remonstrances about security planning, and that I was not qualified as a mere "programmer" to handle security issues from people who have no idea about my ability, I have yet to receive any specifics from others about what they would do in this very common scenario to implement security for the data in the server database.

I am a very experienced programmer/designer/architect and vague talk about security does not really impress me very much. Of course if you or others would like to get technical and mention what you feel are good technical solutions to any problems which entail private-key/public-key encryption, I am willing to listen and learn about things which I do not fully know or understand.

Once again the specific issue is that the MySQL server database has a certificate from a CA authority with a server public-private key and my client application was issued the same certificate from the CA authority with a a client public-private key. I need to pass the file location of the client CA certificate/public-key/private-key to the client side library in order to have an SSL connection to the database server where data passing between the client application and the server database is encrypted both ways. I told my employer that we should simply distribute the client CA certificate/public-key/private-key in the same application directory in which the rest of our modules reside. He had been told by someone from Sun that this was inherently bad security and, despite my arguing that this was not the case and that without the username/password to the database nothing could be accomplished even with the client side certs by a destructive hacker, he wanted me to investigate the issue.

From what others have written, I feel that I am right and coming up with elaborate schemes of hiding the client certs from the end-user until thay are actually going to be used by client application code in making the connection is largely a waste of time. Instead we should be ensuring that the server database and its data are protected from the prying eyes of a destructive hacker.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to