03-21-2016 11:00 AM - edited 04-13-2022 12:28 PM
This document will help users understand how to configure a firewall that runs ASA code to use Elliptic Curve certificates and Elliptic Curve cipher suites. Elliptical curve ciphers use much shorter key lengths than the RSA keys that we have traditionally used. We understand elliptical curve keys with short key lengths provide similar strength as RSA keys with a much longer length.
Symmetric Key length (bits) | RSA Key length (bits) | ECC Key length (bits) |
80 | 1024 | 160 |
112 | 2048 | 224 |
128 | 3072 | 256 |
192 | 7680 | 284 |
256 | 15360 | 521 |
The reduction in CPU time to work with the larger keys is optimal due to the reduction in CPU usage and the subsequent reduction in power.
RSA public key algorithms are not considered legacy as of yet. It is likely that they will be in the next several years. In practice, RSA key pairs are becoming less efficient each year as computing power increases. Elliptic curve cryptography is a newer alternative to public-key cryptography. Elliptic curves are very efficient and offer the same level of security over much shorter prime fields and therefore the performance of ECC is significantly better than RSA public-key cryptography. ECC is considered Next Generation Encryption by the US National Security Agency.
Both 9.4(1) and 9.3(2) require Next Generation ASA. They will not run on older ASA models like the ASA 5505, 5510, 5520 or 5540.
Assure you do not have anyconnect-essentials configured under webvpn. AnyConnect Essentials license does not support these ciphers and isn't in use when the Apex or Plus AnyConnect 4 license is installed.
You can view all the ssl cipher suites that the ASA supports by typing
show ssl ciphers
Each cipher suite has several parts. These are a key exchange and establishment algorithm, a bulk encryption algorithm, a message authentication code algorithm and a pseudorandom function.
Let’s look at this cipher suite as an example.
ECDHE-ECDSA-AES256-GCM-SHA384
In the cipher suite listed above
The key exchange algorithm is ECDHE-ECDSA.
The bulk encryption algorithm is AES256-GCM.
The message authentication code is SHA384.
ECDHE is an asymmetric algorithm used for key establishment.
ECDSA is an asymmetric algorithm used for digital signatures.
AES256-GCM is a symmetric block or bulk cipher used to protect the ‘data’.
SHA384 is a hash function used to assure the data’s integrity by the receiving party.
The ASA supports lots of other cipher suites and we will not discuss those here.
Creating a SHA-2 CSR using ECDHA
See this other document I wrote for this procedure.
Install the Identity Certificate and Intermediate Certificate you receive from the 3rd party provider.
Authenticate the CA
crypto ca authenticate my-trustpoint.lab-asa.xxxx.com
Install the Identity Certificate
crypto ca import my-trustpoint.lab-asa.xxxx.com
I chose to only support TLSv1.2. I did this because all modern OS’s and browsers support TLSv1.2. I also chose to only support elliptical curve cipher suites. All modern OS’s and browsers support elliptic curve ciphers. If you need to provide support to Windows XP or Mac OS X 10.5 or earlier you cannot exclusively use elliptic curve ciphers.
Force the minimum version of TLS to be 1.2
ssl server-version tlsv1.2
Force TLSv1.2 to only support elliptical curve sipher suites
ssl cipher tlsv1.2 custom "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256"
Force strong Diffie Hellman key exchange
ssl dh-group group24
ssl ecdh-group group20
At this point, it is my feeling that the ASA is configured to use the strongest encryption key exchange and encryption that is possible.
You can test this by going to an SSL testing website like Qualys SSL Labs and testing your site. At the time of this writing (March 2016) my ASA is receiving an A- grade score with the above settings.
Please, help me make this document better. Please comment! Please rate. Thank you.
Anyconnect(SSL) support "ssl ecdh-group group21"?
Anyconnect running 4.7 and ASA 9.9(1).
Thanks!
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: