LuxSciLuxSci
 secure, premium email & web services Call: 800-441-6612
International: +1 814-870-9250
sales@luxsci.com
support@luxsci.com
LuxSciLuxSci
Order Free Trial Login OpenID

LuxSci FYI

By Erik Kangas, PhD, President

256-bit AES Encryption for SSL and TLS: Maximal Security

Share Post:
More...


Updated 12/7/2011 with AES security data for the newest browsers and mobile devices.

SSL and TLS are the workhorses that provide the majority of security in the transmission of data over the Internet today. However, most people do not know that the degree of security and privacy inherent in a “secure” connection of this sort can vary from “almost none” to “really really good … good enough for US government TOP SECRET data”.  The piece which varies and thus provides the variable level of security is the “cipher” or “encryption technique”.  There are a large number of different ciphers — some are very fast and very insecure.  Some are slower and very secure.  Some weak ones (export-grade ciphers) are around from the days when the USA did not permit the export of decent security to other countries.

AES, the Advanced Encryption Standard, is a relatively new encryption technique/cipher that is the successor of DES.  AES was standardized in 2001 after a 5 year review, and is currently one of the most popular algorithms used in symmetric key cryptography (which, for example, is used for the actual data transmission in SSL and TLS).  It is also the “gold standard” encryption technique; many security-conscious organizations actually require that their employees use AES-256 (256-bit AES) for all communications.

This article discusses AES, its role in SSL, which web browsers and email programs support it, how you can make sure that you only use 256-bit AES encryption of all secure communications, and more.

More about AES

AES has been available in most cryptographic libraries for a long time.  It was available in “OpenSSL” starting in 2002 with v0.9.7.  OpenSSL is the foundation of most SSL services in UNIX and Linux environments, such as that used by LuxSci. GPG, the open source implementation of PGP, also include an AES 256 option.

So, while AES is the new kid on the block, it has been around long enough to permeate most software.  However, as we shall see, this does not mean that is its actually being used on your computer!

How Secure is 256-bit AES?

AES is FIPS (Federal Information Processing Standard) certified and there are currently no known non-brute-force direct attacks against AES (except some side channel timing attacks on the processing of AES that are not feasible over a network environment and this not applicable to SSL in general).  In fact, AES security is strong enough to be certified for use by the US government for top secret information.

The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are sufficient to protect classified information up to the SECRET level. TOP SECRET information will require use of either the 192 or 256 key lengths. The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use.” (Lynn Hathaway, June 2003 – reference.)

If you have the choice of encryption methods, 256-bit AES is the method to choose.  Also good are 128-bit and 192-bit versions of AES.

And there alternatives to AES?

There are many alternative ciphers that can be used in SSL and TLS.  The “next most secure” cipher that is commonly used is “128-bit RC4“.  This is a very fast cipher, but is subject to many different types of attacks.  For example, on reason WEP wireless encryption is so poor is the way that it uses RC4 encryption.  Even WPA wireless security which uses RC4 is showing signs of stress.

RC4 encryption is felt very weak by most security researchers and is not recommended for use.  However, it is still “second best” to AES in the list of commonly used ciphers and widely used.

How is the cipher chosen in an SSL or TLS session?

In general, when an SSL client, such as an email program or web browser, connects to a server and wishes to use SSL or TLS, the client sends the server a list of encryption ciphers that it supports.  The server then goes through the list, in order, and chooses the first match that it also supports.  Usually, the client orders the list with the most secure methods first, so that the most secure method supported by both the client and server is selected.  Sometimes, the client orders the list based on other criteria to make a compromise between security and speed; this can result in a sub-optimal cipher being chosen.

Most modern web and email servers that support SSL encryption, like LuxSci.com’s servers, support many different strong encryption techniques all the way up to 128-bit RC4 and 256-bit AES.  They provide a variety, instead of just a single really good method, so that users who have old or broken software can still take advantage of  encryption, even if it is weaker than it should be.  Additionally, most companies that provide security services do not permit use of techniques that deemed are “too weak” and which can be broken very easily (like the old “export grade ciphers” that used to be in prevalent use).  So, if you are connecting to a reputable service provided over SSL or TLS, the type of encryption that will be used is almost certainly determined by your client program (i.e. email program or web browser).

What encryption techniques are supported by modern web browsers?

For any given web browser, it is easy to see what the best encryption technique it supports by browsing to the web site: https://www.fortify.net/cgi/ssl_2.pl

Checking out some of the current browsers available, we see:

Web Browser
Operating System Best Cipher Verdict?
FireFox Mobile v8+ Android AES 256-bit Good!
Safari iOS v5.0.1 (iPhone/iPad/etc.) AES 128-bit Good
Safari iOS v2.2 (iPhone/Touch/etc.) AES 128-bit Good
Silk Kindle Fire RC4 128-bit Fair
FireFox v8+ Windows XP & Vista, Mac OSX AES 256-bit Good!
FireFox v3.0.5 Windows XP & Vista, Mac OSX AES 256-bit Good!
Safari v5.1.2 Windows Vista/7, Mac OSX AES 128-bit Good
Safari v3.2.1 Windows Vista, Mac OSX AES 128-bit Good
Safari v3.2.1 Windows XP RC4 128-bit Fair
Chrome v15.x Windows Vista/7, Mac OSX AES 256-bit Good!
Chrome v1.x Windows Vista AES 128-bit Good
Chrome v1.x Windows XP RC4 128-bit Fair
Internet Explorer v9 Windows 7 AES 128-bit Good
Internet Explorer v9 Windows Vista RC4 128-bit Fair
Internet Explorer v7 & v8 Windows Vista AES 128-bit Good
Internet Explorer v8 Windows XP RC4 128-bit Fair
Internet Explorer v7 Windows XP RC4 128-bit Fair
Internet Explorer v6 Windows XP RC4 128-bit Fair
Opera v11.10 Windows Vista AES 256-bit Good!
Opera v9.62 Windows XP & Vista AES 256-bit Good!

So, by default, only some browsers will take advantage of AES encryption, when available.  We also see that any program that uses the windows default SSL libraries, will use RC4 in Windows XP and 128-bit AES in Windows Vista.  So, anyone using Windows XP (or 2000) should really use a program that includes its own SSL cipher management (i.e. FireFox, Opera).

What encryption techniques are supported by modern email programs?

Asking this question about web browsers begs the question as to what is supported by the various email programs out there.  Clearly, if you are using a WebMail interface to your email, then the answer depends on what web browser you are using.

We tested several popular email programs to see what encryption cipher they end up using when connected to a server like LuxSci’s that supports a variety of strong ciphers.1 Here are the results:

Email Program Operating System Verdict? Results
Mozilla Thunderbird v2+ Windows XP & Vista Good! 256-bit AES
Thunderbird v2+ Mac OSX v10.4.11 Good! 256-bit AES
Outlook 2007 Windows XP Fair 128-bit RC4 is the best supported
Outlook 2007 Windows Vista Good 128-bit AES chosen (though 256-bit is there, it is not listed 1st in the program and thus not used)
Outlook 2003 Windows XP Fair 128-bit RC4 is the best supported
Mail.app Mac OSX v10.5.5 Good 128-bit AES chosen (though 256-bit is there, it is not listed 1st in the program and thus not used)
Mail.app Mac OSX v10.4.11 Good 128-bit AES chosen (though 256-bit is there, it is not listed 1st in the program and thus not used)
Mail.app iPhone v2.2 Good 128-bit AES chosen (though 256-bit is there, it is not listed 1st in the program and thus not used)
Eudora v7 Windows XP Good 256-bit AES
Eudora v8 Mac OSX v10.4.11 Good 256-bit AES
Entourage v12 Mac OSX v10.4.11 Fair DES

We see a similar pattern here.  Some clients roll their own SSL (i.e. Thunderbird) and some use Windows’ built-in libraries.

How to force use of 256-bit AES for secure web and secure email

As discussed above, the choice of email client is the prime determination of what encryption cipher will be used.  So, for example, if you use Mozilla Firefox or Opera for web browsing and Mozilla Thunderbird for email, you will be using 256-bit AES encryption, as long as it is supported by the server.

However, if you would like to go a step further and be sure that you do not make any secure connection at unless 256-bit AES encryption is used, that is also possible.  This level of security is needed if your organization mandates that secure connections use 256-bit AES, or if you do not trust that all of the servers which you connect to will have good security ciphers in place.  Following the instructions below for FireFox and Thunderbird, you can be sure that 256-bit AES will be used for all secure connections; the connections will flat out fail if the server doesn’t support this encryption technique.

Mozilla Firefox (v3):

  1. Type “about:config” in the address bar to open up the detailed list of configuration parameters.
  2. Make sure that “secuity.enable_ssl2″ is “false” and “security.enable_ssl3″ and security.enable_tls” are “true”.
  3. Search for “security.ssl3″
  4. Change to “false” the value for all ciphers that do not include “aes_256″ in the name.  This will make them no longer available for use.
  5. You will be left with various versions of AES 256 in SSL v3 or TLS.
  6. You don’t even have to restart Firefox for this to take effect!

Mozilla Thunderbird (v2): (see also optimization tips for Thunderbird)

  1. Select “Options” from the “Tools” menu
  2. Under the “General” section of the “Advanced” tab of the resulting “Options” dialog box, click on the “Config Editor…” button.
  3. Follow the same instructions as for Firefox in terms of disabling SSL2, enabling SSL3 and TLS, and turning off all ciphers that do not include “aes_256″ in the name.
  4. Restart Thunderbird so that any persistent connections are broken and re-opened.
  5. Make sure that your email accounts are all configured to use SSL or TLS (not “if available”, but “always”).
  6. If possible at your email provider, disallow insecure connections to your account altogether.  This will make the connection fail even if the email program is accidently configured to make a secure connection.  (LuxSci allows this to be set on the user-level or to be enforced by policy account-wide).

Skype:

  • Off topic, but Skype uses 256-bit AES encryption, so if you use it for chat or voice calls, your data is also being encrypted in this fashion.

Windows Vista

Windows Vista, we have seen, does support 256-bit AES, but it publishes 128-bit first in the list and thus this is what is used by most applications in a Vista environment that rely on Vista’s built-in SSL libraries (i.e. Internet Explorer, Outlook, etc.).

If you have Vista “Small Business Edition” or better, you can remove ciphers that you do not want and change the order of their presentation by using the “group policy editor”.  For example, to make 256-bit AES the default choice, rather than 128-bit AES, follow these instructions:

  1. Open your group policy editor by entering gpedit.msc at a command prompt.
  2. Choose Computer Configuration | Administrative Templates | Network | SSL Configuration Settings.
  3. There’s only one item here: SSL Cipher Suite Order. Open it.
  4. Select Enabled.
  5. Now here’s where you need to tread carefully. You’ll see that the list is the same as above, but rather than formatted nicely with carriage returns, they’re simply separated with commas. The first item in the list is:
    TLS_RSA_WITH_AES_128_CBC_SHA
    And the second item is:
    TLS_RSA_WITH_AES_256_CBC_SHA
    Cursor your way through the list. Change that first 128 to 256. Then cursor forward a bit more and change the 256 to 128.
  6. Feel free to change other orders, too, but keep your changes within algorithm types.
  7. OK your way out, close the group policy editor, and reboot.

Similarly, you can use the same procedure to remove all ciphers that are not wanted and thus lock down your Vista to AES-only encryption or 256-bit AES only encryption.

However, for those of us who have Vista Home Basic or Premium Edition, there is no “group policy editor” (and if you copy it from another Vista, it won’t run) and it is thus much harder to make this change.  All of the settings that you would be changing above are found in the Windows Registry and can be changed directly therein.  We are not going to go into how to do this here, as it is not for the faint of heart.

Locking down your web site (in Apache)

If you are the owner of a web site and have SSL security on it, you can “lock it down” so that the only cipher that your web site supports is “256-bit AES”.  This takes the choice out of the end user’s hands — either they use AES or they don’t connect securely.  This is a good thing to do for very sensitive sites.  However, the “danger” is that some of your users may be using web browsers that do not support AES (like Internet Explorer), and thus will not have any access to your site unless they change browsers.

To lock your site down to support 128-bit and 256-bit AES only (to get AES but not require 256-bit, so that some browsers like iPhone and such will work), you would add to your Apache httpd.conf file:

SSLCipherSuite AES256-SHA:AES128-SHA

This can be added globally, in a virtual host, or even in your .htaccess file.  It will ensure that any successful connection to your site will use one of these ciphers.  Just be sure to add it to the secure settings for your site and not just the insecure site area!  See more information here.

Conclusion

AES encryption is the way to go when using SSL, if you have any choice about it.  It won’t really affect speed or performance as long as your computer is not ancient.  If you have qualms about security, we highly recommend using a web browser and/or email client that will enable use of AES.

Note that SSL and TLS protect only the data sent between you and the server.  When you send and receive email, the message data travels over the Internet between the sender and recipient and will be unprotected, no matter how good your SSL is.  For details on this, read The Case for Email Security.  The solution in this situation, is to use an end-to-end email encryption solution, like LuxSci’s SecureLine, in addition to SSL (SecureLine protects the message content, SSL protects your username and password).

1 For actual email programs, we tested by running an “openssl” server on a secure IMAP port with debugging enabled.  This logged the encryption techniques (ciphers) shared by the client and server as well as the one chosen.

Similar Posts:

Share:
More...

16 Responses to “256-bit AES Encryption for SSL and TLS: Maximal Security”

  1. Head to Head Battle of the Email Clients | LuxSci FYI Says:

    [...] not support AES SSL encryption unless you are using [...]

  2. Optimizing Mozilla Thunderbird | LuxSci FYI Says:

    [...] Forced use of 256-bit AES with SSL/TLS:  If you are very security conscious or have a requirement for using only 256-bit AES encryption when connecting to your email, you can configure Thunderbird so that this is the only encryption mode that it will use.  See: "256-bit AES Encryption for SSL and TLS: Maximal Security". [...]

  3. iPhone: The Ultimate Mobile Email Client? | LuxSci FYI Says:

    [...] LuxSci FYI News, Solutions, and Insider Notes « 256-bit AES Encryption for SSL and TLS: Maximal Security [...]

  4. How You Can Tell if an Email Was Transmitted Using TLS Encryption? | LuxSci FYI Says:

    [...] that have TLS support, indicates that the message was encrypted during transport with TLS using 256-bit AES encryption. (”Verify=not” means that LuxSci did not ask MX Logic for a second SSL client [...]

  5. How Secure are Password-Protected Files? | LuxSci FYI Says:

    [...] the file is encrypted with strong encryption, such as AES, the hacker needs to guess the password [...]

  6. Why isn’t a Blackberry Secure Enough for Barack Obama? | LuxSci FYI Says:

    [...] Down the BlackBerry: While you can lock down a Blackberry to use services securely with SSL (secure enough for secret clearance), etc., unless you have some special modifications to the Blackberry software, it is always [...]

  7. How Does Secure Socket Layer (SSL) Work? | LuxSci FYI | LuxSci FYI Says:

    [...] Ciphers: SSL uses one of a large variety of possible “ciphers” to perform the symmetric encryption.  Use of a poor/weak cipher can result in fast SSL that is easily compromised.  Currently, it is recommended that one use 128-bit or stronger AES encryption as your cipher.  See: 256-bit AES Encryption for SSL and TLS: Maximal Security. [...]

  8. Serge Fonville Says:

    I’m not sure how up to date this is, but:
    I am running apache 2.2 on Vista Home Premium x64 and have set SSLCipherSuite AES256-SHA:RC4-MD5 and when I connect to my website from the same system, the ssl access log shows AES256-SHA, when I connecto from XP Home x32 to the site the log says RC4-MD5. Perhaps this is specific to Vista x64…
    My Vista and XP both have the most recent updates

  9. Erik Kangas Says:

    Hello,

    There is nothing wrong or out of date here. The thing is that Vista supports AES256 and AES128, but given the choice of the two will pick AES128 for speed over security. XP doesn’t support AES at all by default.

    In your web server, you specified only 2 possible ciphers — and the only AES one you allow is AES256. Thus, given the choice between AES256 and RC4, Vista will happily choose AES256. XP will choose RC4 as it does not support AES. This is what you see. However, if you included AES128 in your list of allowed ciphers, then Vista would use that instead of AES256.

  10. Kevin Frederick Says:

    I have done the Mozilla AES-256 encryption method (editing the about:config) and now I cannot login Yahoo! Mail, this has never happened before and it had worked fine before I changed my config. I believe that Yahoo! Mail is safe enough to log on, yet I cannot do so.
    Here is the message I am receiving:

    Secure Connection Failed

    An error occurred during a connection to login.yahoo.com.

    Cannot communicate securely with peer: no common encryption algorithm(s).

    (Error code: ssl_error_no_cypher_overlap)

    * The page you are trying to view can not be shown because the authenticity of the received data could not be verified.

    * Please contact the web site owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.

    Any ideas?

  11. Erik Kangas Says:

    Looks like Yahoo! Mail doesn’t support AES 256 encryption — so by restricting your browser to using it you have loced yourself out of Yahoo! Mail. Your choice is to either give up on the higher strength security so you can use Yahoo! Mail, or move to another email provider (like LuxSci) that does.

  12. Derek Says:

    According to TechNet IE on Vista/Windows 7 supports AES-256.

    http://technet.microsoft.com/en-us/library/cc766285(WS.10).aspx

    TLS_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA

  13. Erik Kangas Says:

    Note that while they support it, they will choose 128-bit over 256 bit when both are available on the server side. So, if you are connecting to a site that is not 256-bit only, these systems will use only 128-bit AES. Microsoft judges that the speed up using 128-bit is more important than the security of using 256-bit.

  14. Secure Web Pages and Secure Web Forms: Steps to Security | LuxSci FYI Says:

    [...] You can modify your web server configuration so that only levels of encryption that you approve can be used to access your site.  For more information, see 256-bit AES Encryption for SSL and TLS: Maximal Security. [...]

  15. Nord Says:

    Although AES won the world-wide competition for a new security standard to replace DES (and 3DES), it is not the only good encryption standard.

    Two other competitors receive uniformly good marks: Blowfish (128) and TwoFish (its successor).

  16. How to surf safe in today’s digital world? « Ovidiu Bernaschi's Blog Says:

    [...] first I really think you should read this article if you’ve got a basic understanding of Internet encryption. Towards the end of the page, [...]

Leave a Comment

You must be logged in to post a comment.


Security Certifications TRUSTe EU Safe Harbor McAfee Secure Thawte Extended Validation SSL Certificate Authorize.net Merchant SecurityMetrics - Credit Card Safe
about | blog | services | order | privacy | contact | site map | login
Copyright © 2004-2011 Lux Scientiae®, Incorporated
Copyright © 2004-2011 Lux Scientiae®, Incorporated
Page loaded from site: http://www.luxsci.com — Contact sales@luxsci.com or 1-800-441-6612