| Join | Help

March 2008 - Posts

Saturday, March 29, 2008 6:16 PM

Next Richmond Code Camp

It's On! The next Richmond Code Camp is set for Saturday, April 26 th . Every year they keep getting better and better, so this one is going to be the best yet!

I'm set to speak there about some of the new stuff in SQL 2008 for Developers and DBAs, and I hope to see a lot of people there.

There is no schedule published as of yet, but keep and eye out for one on http://www.richmondcodecamp.com .

Share this post: | bookmark it! | digg it! | reddit! | kick it! | live it!
Posted by Kevin Jones with 2 comment(s)
Filed under:
Sunday, March 16, 2008 7:09 PM

.NET 2.0 and FIPS (again)

A while back I blogged about how .NET 2.0 threw exceptions if your environment was configured to force FIPS through the machine's security policy. Starting in .NET 2.0 SP1, there is now a way to disable this through the config file. Check out this blog to see the full details:

http://blogs.msdn.com/shawnfa/archive/2008/03/14/disabling-the-fips-algorithm-check.aspx

Share this post: | bookmark it! | digg it! | | kick it! | live it!
Posted by Kevin Jones with 2 comment(s)
Filed under:
Monday, March 10, 2008 5:05 AM

Clash

Sometimes, I tend to butt heads with a co-worker. Overall, we round each other off nicely (or perhaps I am butting heads there too?) Recently, we got into a discussion about security. What we were trying to accomplish was passing information securely over an (otherwise) insecure protocol, HTTP. My immediate answer was to use a public key implementation. Here was a brief description of my implementation:

  1. Server launches a client application. The server passes the client data that is encrypted using a symmetric key (AES 256).
  2. The client then generates a random public / private key pair.
  3. The client then requests the server for the symmetric key. It also hands it the public key.
  4. The server uses the public key to encrypt the symmetric key.
  5. The client then uses the private key to decrypt the symmetric key.
  6. The symmetric key is then used to decrypt the original data.

Not too hard, right? Well here is where we disagreed. The response from my co-worker was "Why use an RSA key at all? Just hand the symmetric key to the client".

Right then I sorta blanked out by what I just heard. After recovering, I asked, "You don't see a problem with that? That would be extremely easy to intercept for someone with a packet sniffer to pick up.

My co-workers response, was "We should just warn our users that they should be using SSL. You're RSA implementation is what SSL does to a degree".

Which, is correct. SSL does use a public and private key implementation. However, there are a few gotchas with that...

  1. SSL uses the same public and private key every time. If someone managed to get the private key, they could read all SSL requests and responses.
  2. SSL has bugs .
  3. What if they aren't using SSL? Do we require it? That will make the product hard to use. What if they don't want to use SSL?
  4. How do we communicate that SSL is a good idea? Knowledge base post? Make a warning dialog on the page that enables that feature? It sounds reasonable.

The problem with #4 is not everyone reads. Clients and customers don't read every single thing on the page. Someone will ignore some text on a page, no matter what you do to make it stand out.

SOMEONE WILL FORGET TO READ THIS.

If the client or customer were to find out that some data was being passed in a was that was known to be compromised, you can be sure they will not be happy, and depending, might stain the reputation of whatever it is you are working on.

It's easy enough to pass data securely. web services are a great means of that, if you are using WSE or for you .NET 3.0 junkies, WCF.

In the end, the RSA implementation was used, much to my relief.

So, what am I really trying to say?

You will never be taken seriously about security if you keep your mind on assuming that the customer's / client's environment is secure. Do everything you can to secure things. SSL is not a poor means of securing communication, but in our case, there is no way to guarantee it . If we do it ourselves, we are sure they are using a decent security implementation because we are forcing it.

So, why not have the application not work if it can't use SSL? That's a poor customer experience. The more transparent the functionality is, the better it is for the end-user's experience.

Share this post: | bookmark it! | digg it! | reddit! | kick it! | live it!
Posted by Kevin Jones with 4 comment(s)
Filed under:
Sunday, March 02, 2008 3:47 PM

Roanoke Valley Code Camp 2008

codecamp

March 1st was the Roanoke Code Camp 2008. This was my first Code Camp in Roanoke, and their second one. Congratulations to Robin Edwards and everyone else involved organizing this event. There were a few hiccups with the schedule, including my SQL Server 2008 presentation, which was canceled. On February 29th my SQL 2008 instance stopped working, and I couldn't get it running properly again. I decided to change the topic to Cryptography. I later discovered through colleagues that SQL Server 2008 didn't work on the 29th due to a bug in handling the leap year with its licensing. Not to mention, the touch pad on my laptop quit on me the night before, and I carelessly forgot a mouse. Though, later after the code camp, the touch pad started working again.

There were attendees from everywhere. Virginia, North Carolina, South Carolina, Georgia, and even one from Minnesota tried to attend, but due to flight difficulties couldn't make it.

I certainly looking forward to the next Roanoke Code Camp. Up next, the Richmond Code Camp. I hope to see a lot of familiar faces and some new ones! Richmond Code Camp is set for April 26th, 2008.

Share this post: | bookmark it! | digg it! | reddit! | kick it! | live it!
Posted by Kevin Jones with no comments
Filed under: