IKEv1 Cipher Suites » History » Version 16
Tobias Brunner, 11.07.2014 11:58
1 | 1 | Andreas Steffen | h1. IKEv1 Cipher Suites |
---|---|---|---|
2 | 1 | Andreas Steffen | |
3 | 10 | Tobias Brunner | The keywords listed below can be used with the _ike_ and _esp_ directives in [[IpsecConf|ipsec.conf]] to define cipher suites. |
4 | 10 | Tobias Brunner | |
5 | 16 | Tobias Brunner | IANA provides a "complete list of algorithm identifiers for IKEv1":https://www.iana.org/assignments/isakmp-registry. |
6 | 1 | Andreas Steffen | |
7 | 1 | Andreas Steffen | |
8 | 1 | Andreas Steffen | |
9 | 16 | Tobias Brunner | h2. Encryption Algorithms |
10 | 1 | Andreas Steffen | |
11 | 16 | Tobias Brunner | |_<. Keyword |_<. Description |_.IANA |_.IKE |_.ESP|_. Built-in Plugins| |
12 | 16 | Tobias Brunner | |*null* |Null encryption |=.11 | |=.k || |
13 | 16 | Tobias Brunner | |*aes128* or *aes* |128 bit AES-CBC |/3=.7 |x o g a|=.k |aes| |
14 | 16 | Tobias Brunner | |*aes192* |192 bit AES-CBC |x o g a|=.k |aes| |
15 | 16 | Tobias Brunner | |*aes256* |256 bit AES-CBC |x o g a|=.k |aes| |
16 | 16 | Tobias Brunner | |*aes128ctr* |128 bit AES-COUNTER |/3=.13 | |=.k || |
17 | 16 | Tobias Brunner | |*aes192ctr* |192 bit AES-COUNTER | |=.k || |
18 | 16 | Tobias Brunner | |*aes256ctr* |256 bit AES-COUNTER | |=.k || |
19 | 16 | Tobias Brunner | |*aes128ccm8* or *aes128ccm64* |128 bit AES-CCM with 64 bit ICV |/3=.14 | |=.k || |
20 | 16 | Tobias Brunner | |*aes192ccm8* or *aes192ccm64* |192 bit AES-CCM with 64 bit ICV | |=.k || |
21 | 16 | Tobias Brunner | |*aes256ccm8* or *aes256ccm64* |256 bit AES-CCM with 64 bit ICV | |=.k || |
22 | 16 | Tobias Brunner | |*aes128ccm12* or *aes128ccm96* |128 bit AES-CCM with 96 bit ICV |/3=.15 | |=.k || |
23 | 16 | Tobias Brunner | |*aes192ccm12* or *aes192ccm96* |192 bit AES-CCM with 96 bit ICV | |=.k || |
24 | 16 | Tobias Brunner | |*aes256ccm12* or *aes256ccm96* |256 bit AES-CCM with 96 bit ICV | |=.k || |
25 | 16 | Tobias Brunner | |*aes128ccm16* or *aes128ccm128* |128 bit AES-CCM with 128 bit ICV |/3=.16 | |=.k || |
26 | 16 | Tobias Brunner | |*aes192ccm16* or *aes192ccm128* |192 bit AES-CCM with 128 bit ICV | |=.k || |
27 | 16 | Tobias Brunner | |*aes256ccm16* or *aes256ccm128* |256 bit AES-CCM with 128 bit ICV | |=.k || |
28 | 16 | Tobias Brunner | |*aes128gcm8* or *aes128gcm64* |128 bit AES-GCM with 64 bit ICV |/3=.18 | |=.k || |
29 | 16 | Tobias Brunner | |*aes192gcm8* or *aes192gcm64* |192 bit AES-GCM with 64 bit ICV | |=.k || |
30 | 16 | Tobias Brunner | |*aes256gcm8* or *aes256gcm64* |256 bit AES-GCM with 64 bit ICV | |=.k || |
31 | 16 | Tobias Brunner | |*aes128gcm12* or *aes128gcm96* |128 bit AES-GCM with 96 bit ICV |/3=.19 | |=.k || |
32 | 16 | Tobias Brunner | |*aes192gcm12* or *aes192gcm96* |192 bit AES-GCM with 96 bit ICV | |=.k || |
33 | 16 | Tobias Brunner | |*aes256gcm12* or *aes256gcm96* |256 bit AES-GCM with 96 bit ICV | |=.k || |
34 | 16 | Tobias Brunner | |*aes128gcm16* or *aes128gcm128* |128 bit AES-GCM with 128 bit ICV |/3=.20 | |=.k || |
35 | 16 | Tobias Brunner | |*aes192gcm16* or *aes192gcm128* |192 bit AES-GCM with 128 bit ICV | |=.k || |
36 | 16 | Tobias Brunner | |*aes256gcm16* or *aes256gcm128* |256 bit AES-GCM with 128 bit ICV | |=.k || |
37 | 16 | Tobias Brunner | |*aes128gmac* |Null encryption with 128 bit AES-GMAC |/3=.23 | |=.k || |
38 | 16 | Tobias Brunner | |*aes192gmac* |Null encryption with 192 bit AES-GMAC | |=.k || |
39 | 16 | Tobias Brunner | |*aes256gmac* |Null encryption with 256 bit AES-GMAC | |=.k || |
40 | 16 | Tobias Brunner | |*3des* |168 bit 3DES-EDE-CBC |=.5 |x o g a|=.k |des| |
41 | 16 | Tobias Brunner | |*blowfish128* or *blowfish* |128 bit Blowfish-CBC |/3=.3 |x o g a|=.k |blowfish| |
42 | 16 | Tobias Brunner | |*blowfish192* |192 bit Blowfish-CBC |x o a |=.k |blowfish| |
43 | 16 | Tobias Brunner | |*blowfish256* |256 bit Blowfish-CBC |x o a |=.k |blowfish| |
44 | 16 | Tobias Brunner | |*camellia128* or *camellia* |128 bit Camellia-CBC |/3=.8 | |=.k || |
45 | 16 | Tobias Brunner | |*camellia192* |192 bit Camellia-CBC | |=.k || |
46 | 16 | Tobias Brunner | |*camellia256* |256 bit Camellia-CBC | |=.k || |
47 | 16 | Tobias Brunner | |*serpent128* or *serpent* |128 bit Serpent-CBC |/3=.252|>.g a |=.k || |
48 | 16 | Tobias Brunner | |*serpent192* |192 bit Serpent-CBC |>.g a |=.k || |
49 | 16 | Tobias Brunner | |*serpent256* |256 bit Serpent-CBC |>.g a |=.k || |
50 | 16 | Tobias Brunner | |*twofish128* or *twofish* |128 bit Twofish-CBC |/3=.253|>.g a |=.k || |
51 | 16 | Tobias Brunner | |*twofish192* |192 bit Twofish-CBC |>. a |=.k || |
52 | 16 | Tobias Brunner | |*twofish256* |256 bit Twofish-CBC |>.g a |=.k || |
53 | 16 | Tobias Brunner | |\6(level2). IKE support| |
54 | 16 | Tobias Brunner | |\6(level3).*x* default built-in crypto plugin(s) (see separate column) |
55 | 16 | Tobias Brunner | *o* OpenSSL crypto library (_openssl_ plugin) |
56 | 16 | Tobias Brunner | *g* Gcrypt crypto library (_gcrypt_ plugin) |
57 | 16 | Tobias Brunner | *a* AF_ALG userland crypto API for Linux 2.6.38 kernel or newer (_af-alg_ plugin)| |
58 | 16 | Tobias Brunner | |\6(level2). ESP support| |
59 | 16 | Tobias Brunner | |\6(level3).*k* Linux 2.6+ kernel| |
60 | 1 | Andreas Steffen | |
61 | 12 | Tobias Brunner | |
62 | 16 | Tobias Brunner | h2. Integrity Algorithms |
63 | 12 | Tobias Brunner | |
64 | 16 | Tobias Brunner | |_<. Keyword |_<. Description |_.IANA|_=.IKE |_=.ESP/AH|_.Length |_.Built-in Plugins| |
65 | 16 | Tobias Brunner | |*md5* |MD5 HMAC |=.1 |=. x o a |=.k |>. 96 bit|md5, hmac | |
66 | 16 | Tobias Brunner | |*sha1* or *sha* |SHA1 HMAC |=.2 |=. x o a |=.k |>. 96 bit|sha1, hmac| |
67 | 16 | Tobias Brunner | |*sha256* or *sha2_256* |SHA2_256_128 HMAC |=.5 |=. x o a |=.n |>.128 bit|sha2, hmac| |
68 | 16 | Tobias Brunner | |*sha384* or *sha2_384* |SHA2_384_192 HMAC |=.6 |=. x o a |=.k |>.192 bit|sha2, hmac| |
69 | 16 | Tobias Brunner | |*sha512* or *sha2_512* |SHA2_512_256 HMAC |=.7 |=. x o a |=.k |>.256 bit|sha2, hmac| |
70 | 16 | Tobias Brunner | |*sha256_96* or *sha2_256_96* |SHA2_256_96 HMAC |=.p |=. |=.n |>. 96 bit| | |
71 | 16 | Tobias Brunner | |*aesxcbc* |AES XCBC |=.9 |=. |=.k |>. 96 bit| | |
72 | 16 | Tobias Brunner | |*aes128gmac* |128-bit AES-GMAC |=.11 |=. |=.q |>.128 bit| | |
73 | 16 | Tobias Brunner | |*aes192gmac* |192-bit AES-GMAC |=.12 |=. |=.q |>.128 bit| | |
74 | 16 | Tobias Brunner | |*aes256gmac* |256-bit AES-GMAC |=.13 |=. |=.q |>.128 bit| | |
75 | 16 | Tobias Brunner | |\7(level2). IKE support| |
76 | 16 | Tobias Brunner | |\7(level3). *x* default built-in crypto plugin(s) (see separate column) |
77 | 16 | Tobias Brunner | *o* OpenSSL crypto library (_openssl_ plugin) |
78 | 16 | Tobias Brunner | *a* AF_ALG userland crypto API for Linux 2.6.38 kernel or newer (_af-alg_ plugin) |
79 | 16 | Tobias Brunner | It's also possible to use the hash implementations provided by the _gcrypt_ or _openssl_ plugin together with the _hmac_ plugin.| |
80 | 16 | Tobias Brunner | |\7(level2). ESP/AH support| |
81 | 16 | Tobias Brunner | |\7(level3). *k* Linux 2.6+ kernel |
82 | 16 | Tobias Brunner | *q* for AH, AES-GMAC is negotiated as encryption algorithm for ESP |
83 | 16 | Tobias Brunner | *n* before version 2.6.33 the Linux kernel incorrectly used 96 bit truncation for SHA-256, _sha256_96_ is only supported for compatibility with such kernels |
84 | 16 | Tobias Brunner | *p* strongSwan uses the value 252 from the IANA private use range| |
85 | 1 | Andreas Steffen | |
86 | 16 | Tobias Brunner | |
87 | 8 | Andreas Steffen | h2. Diffie Hellman Groups |
88 | 8 | Andreas Steffen | |
89 | 16 | Tobias Brunner | |_.Keyword |_.DH Group|_.Modulus |_.Subgroup |_.IKE| |
90 | 16 | Tobias Brunner | |\5(level2). Regular Groups | |
91 | 16 | Tobias Brunner | |*modp768* |=. 1 |>.768 bits | |m o g| |
92 | 16 | Tobias Brunner | |*modp1024* |=. 2 |>.1024 bits | |m o g| |
93 | 16 | Tobias Brunner | |*modp1536* |=. 5 |>.1536 bits | |m o g| |
94 | 16 | Tobias Brunner | |*modp2048* |=. 14 |>.2048 bits | |m o g| |
95 | 16 | Tobias Brunner | |*modp3072* |=. 15 |>.3072 bits | |m o g| |
96 | 16 | Tobias Brunner | |*modp4096* |=. 16 |>.4096 bits | |m o g| |
97 | 16 | Tobias Brunner | |*modp6144* |=. 17 |>.6144 bits | |m o g| |
98 | 16 | Tobias Brunner | |*modp8192* |=. 18 |>.8192 bits | |m o g| |
99 | 16 | Tobias Brunner | |\5(level2). Modulo Prime Groups with Prime Order Subgroup| |
100 | 16 | Tobias Brunner | |*modp1024s160* |=. 22 |>.1024 bits |>.160 bits |m o g| |
101 | 16 | Tobias Brunner | |*modp2048s224* |=. 23 |>.2048 bits |>.224 bits |m o g| |
102 | 16 | Tobias Brunner | |*modp2048s256* |=. 24 |>.2048 bits |>.256 bits |m o g| |
103 | 16 | Tobias Brunner | |\5(level2). NIST Elliptic Curve Groups | |
104 | 16 | Tobias Brunner | |*ecp192* |=. 25 |>.192 bits | |=.o | |
105 | 16 | Tobias Brunner | |*ecp224* |=. 26 |>.224 bits | |=.o | |
106 | 16 | Tobias Brunner | |*ecp256* |=. 19 |>.256 bits | |=.o | |
107 | 16 | Tobias Brunner | |*ecp384* |=. 20 |>.384 bits | |=.o | |
108 | 16 | Tobias Brunner | |*ecp521* |=. 21 |>.521 bits | |=.o | |
109 | 16 | Tobias Brunner | |\5(level2). Brainpool Elliptic Curve Groups | |
110 | 16 | Tobias Brunner | |*ecp224bp* |=. 27 |>.224 bits | |=.o | |
111 | 16 | Tobias Brunner | |*ecp256bp* |=. 28 |>.256 bits | |=.o | |
112 | 16 | Tobias Brunner | |*ecp384bp* |=. 29 |>.384 bits | |=.o | |
113 | 16 | Tobias Brunner | |*ecp512bp* |=. 30 |>.512 bits | |=.o | |
114 | 16 | Tobias Brunner | |\5(level2). IKE support| |
115 | 16 | Tobias Brunner | |\5(level3). *m* GMP multi-precision library (_gmp_ plugin) |
116 | 16 | Tobias Brunner | *o* OpenSSL crypto library (_openssl_ plugin) |
117 | 16 | Tobias Brunner | *g* Gcrypt crypto library (_gcrypt_ plugin)| |
118 | 15 | Andreas Steffen | |
119 | 15 | Andreas Steffen | h3. Post-Quantum Key Exchange using NTRU Encryption |
120 | 15 | Andreas Steffen | |
121 | 15 | Andreas Steffen | |Keyword |DH Group |Strength |IKE | |
122 | 15 | Andreas Steffen | |*ntru112* |=. 1030 |>.112 bits |=.n | |
123 | 15 | Andreas Steffen | |*ntru128* |=. 1031 |>.128 bits |=.n | |
124 | 15 | Andreas Steffen | |*ntru192* |=. 1032 |>.192 bits |=.n | |
125 | 15 | Andreas Steffen | |*ntru256* |=. 1033 |>.256 bits |=.n | |
126 | 16 | Tobias Brunner | |\4(level2). IKE support| |
127 | 16 | Tobias Brunner | |\4(level3). *n* _ntru_ plugin (includes "ntru-crypto":https://github.com/NTRUOpenSourceProject/ntru-crypto library)| |
128 | 15 | Andreas Steffen | |
129 | 15 | Andreas Steffen | Since the Diffie-Hellman Group Transform IDs 1030..1033 selected by the strongSwan project to designate the four NTRU key exchange strengths were taken from the private-use range, the strongSwan vendor ID *must* be sent by the charon daemon. This can be enabled by the following statement in /etc/strongswan.conf: |
130 | 15 | Andreas Steffen | <pre> |
131 | 15 | Andreas Steffen | charon { |
132 | 15 | Andreas Steffen | send_vendor_id = yes |
133 | 1 | Andreas Steffen | } |
134 | 1 | Andreas Steffen | </pre> |