Encryption and Security with SSL

When it comes to accepting online payments and other sensitive information over the web, normal HTTP just doesn't cut it. It's an insecure method of communication where everything is sent over the wire in cleartext - it's completely trivial for anyone in a network administrator position at a business or ISP to gain access to the network, and most networks are even vulnerable to 'sniffing' by non-privileged users of the network. Things are bad enough that you really shouldn't even transmit any passwords without taking additional security measures, unless the things the passwords give access to are entirely trivial - put simply, as a webmaster, you need to be worried about encryption and security. But how can you add them to your website? Well, it's not as difficult as you think, because there's a standardised way of doing it: SSL. What is SSL? SSL stands for Secure Sockets Layer. It is a method of using cryptography to make sure that communication between a server and a client is secure: in other words, data sent can't be intercepted or tampered with in any way. SSL works using a variety of encryption methods, but the most important feature is that SSL certificates effectively certify that a site is the real thing, which helps to prevent spoofing. When SSL is combined with HTTP, it becomes HTTPS (Secure HTTP), a powerful way for web browsers and web servers to send sensitive data back and forward securely. If all that was over your head, maybe I should put it to you in the way that your customers will. SSL is what makes their web browser come up with the little padlock symbol that means your website is secure for them to enter sensitive information into. If there's no padlock, they don't want to do business with you. However, you should also be aware of what SSL is not: it isn't a complete security package. If you transmit data over HTTPS and then store it in a database unencrypted when it reaches your server, someone with access to the database will still be able to easily retrieve the data. SSL is not the answer to everything - it's simply a way of avoiding anything happening to the data while it's 'out there', travelling across the Internet. Of course, your customers are unlikely to realise that (they think the padlock works like magic), but you at least should. Levels of Encryption There are three main levels of SSL encryption: 40-bit, 128-bit and 256-bit. It's very important to emphasise at this point that 40-bit SSL is now outdated and deprecated: you would be a fool to use it. The only reason 40-bit encryption was available to begin with was because the US government was initially afraid of exporting cryptographic algorithms that were strong enough to be used against them: 40-bit was strong enough for most web uses, but still weak enough that they could break it by brute force with their powerful computers. The US was persuaded to relax the restrictions when the government realised that they were doing nothing but forcing IT development to other countries, but by then there had been widespread adoption of 40-bit encryption. Now, years later, there's really no reason to be using it. You should go for 128-bit as a minimum, and preferably 256-bit - what you can afford will likely be dictated by the value of the goods you sell. If you think anyone is likely to try to break your encryption, you should get the best you can. How Do I Use SSL? If your web host supports SSL, then it should already be all set up for you (if you host your website yourself, then you might like to take a look at the tutorials at modssl.org to get it installed). However, before you can use SSL, you need to get certified - that is, buy an SSL certificate from one of the trusted certificate authorities. The big three are VeriSign, GeoTrust and Thawte, but they charge relatively high prices. The whole thing works more-or-less the same way as buying a domain name, and, in fact, many domain registrars resell certificates - you can often get a better deal from them than you would from one of the big companies. You can often find perfectly good certificates for as little as $30 per year, if you shop around.