Why SSL is not enough to secure your credit card details
SSL (secure sockets layer) is the security technology everyone uses to ensure that their web connections are secure.   An SSL connection is symbolized by a padlock icon in the right-hand side of the taskbar and a URL that starts with 'https', the 's' standing for a secure http connection. What trust, however, should users associate with SSL?
SSL uses a method known as public key authentication in order to provide the confidential link between the server and the client computer.   This can be a very strong and effective method. It allows you to establish a strong confidential link between a server and a client without either knowing about the other beforehand.   And that's where the problems really begin.
Public key authentication works where each end of a connection can independently check that the other end is real. It's the same idea as getting a cheque from someone you don't know and calling their bank to see if it's OK.   That's why it doesn't really work. If it was going to work, the server would have to be able to find out if the client key really belonged to them or not - and it can't. In our bank example, it's like having a cheque without the bank name on it or the customer name the bank knows you by so that you can't even ask the question. In fact if that happened you probably wouldn't accept the cheque!
As a result, the server can't tell if a hacker has diverted you via their own site and is playing a 'man-in-the-middle' attack where the hacker gets to see all the data going both ways. Usually the server uses an identification that has been approved by one of the companies whose information is stored inside your browser.   That's why at the client end it all seems fine. There is just the minor problem that you can't actually tell if the identity is still valid because there's no way in the current system to do that.   Not surprisingly, there is nothing happening that allows the server to link the information arriving at it with the actual user of the client PC.   It is always assumed that the information comes from there but you can't prove it.
Is the padlock real?
Although the SSL padlock has been on the bottom of the screen for a while now, only the most adventurous have tried doing things like clicking on it. If you did you might be in for a surprise.
The first thing is that you can't tell if the padlock is genuine.   After all, anyone can write a padlock to that point on the screen, it's not a special protected area of some kind. So seeing the padlock appear needn't mean a secure connection is actually in place. If you do click on it you should see the web site address for the site of the server that purchased the certificate being used. You should compare this with the web site address shown in your browser tool bar.   It is important to read it carefully since you are the one doing the checking, there is nothing automated about the comparison.
What needs to change? Several things need to change before you should feel comfortable using SSL.
- Getting enough functionality onto the client system to be able to sign and encrypt actual data instead of trying to make secure connections to places you don't know.
- Providing clients with the ability to check that certificates sent from servers are still genuine (check to see if they have been revoked) automatically.   Then users can be sure that no man-in-the-middle can read the information they send, and that the server they are dealing with is for real.
- The client needs an identity that can be authenticated by the server (this does not have to mean that users need to go out and buy a certificate, the server site may provide them with a suitable certificate as a separate process).
- Automating this whole process so that the user does not have to click on the padlock icon to find out if the security is real.