Enhancing SSL Security
One of the faster moving targets out there is the issue of security. At DNSimple, we take security pretty seriously and constantly looking to improve where we can. Recently, we rolled out a few changes to our SSL setup and will explain each one below along with their impacts on users.
Dropping RC4 Ciphers
In the security world, it is widely believed that the RC4 cipher has been broken or will be broken very soon. This has prompted companies like CloudFlare and Microsoft to officially drop support and recommending others do so. We're heeding their warnings and recommendations by following suit. Because of this change, users on Windows XP/2003 using Internet Explorer 8 are advised to upgrade to a modern browser as we will eventually drop the 3DES ciphers as well, effectively eliminating support for this browser.
Enhancing Forward Secrecy
We've enhanced our Forward Secrecy by generating a much stronger 4096-bit Diffie-Hellman key as the default is a weaker 1024-bit. Because of that enhancement, we have moved ECDHE and DHE suites to the top of the cipher list to make sure forward secrecy is preferred. The downside to adding this particular enhancement is that Java 6 API clients will no longer be able to talk with us as they don't support 4096-bit DHE keys. Also, to make sure clients prefer talking to us with SSL, we have updated our HSTS Pinning parameter as well.
Speeding up SSL a little bit
From the changes mentioned above, we have decided to prefer stronger encryption ciphers which will slow down initial SSL handshakes and is what takes the most time when connecting over SSL. One of the tricks you can do is enable SSL session caching to make the subsequent connections go faster by skipping the initial handshake securely. Most modern browsers support this optimization so you should see a subtle enhancement in browsing speed with this change. We have disabled SSL session ticketing to make sure forward secrecy is maintained and will be monitoring it's effect on performance.
OCSP stands for Online Certificate Status Protocol, which is a system developed to detect revoked SSL certificates. In modern browsers with support for this feature, part of the connection handshake involves a separate connection to Certificate Authorities to verify the status of the provided certificate. Now, when you connect to DNSimple our web server queries the Certificate Authorities and attaches the response during the handshake. This saves your browser from having to make this call itself, which speeds up the connection handshake process.
More work to do
All the mentioned enhancements above are the first steps toward continuing to improve our security overall. Still on our plate is to renew our primary SSL certificate with SHA-2 per recommendation from security experts. If you have any questions for us about these changes or are running a Java 6 API client, we would like to hear from you.
Software and Server maintainer by day, board and video game geek by night.
We think domain management should be easy.
That's why we continue building DNSimple.
Elapsed time with Ruby, the right way
Elapsed time calculations based on Time.now are wrong. Learn why they are wrong and how to fix them.
How We Work as a Remote Team
Inspired by a recent blog post from Travis CI, I'd like to share details about how DNSimple team members work together without offices.