You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/site-to-site-vpn/reference-content/security-proposals.mdx
+72-12Lines changed: 72 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,21 +18,81 @@ dates:
18
18
Site-to-Site VPN is currently in Private Beta, and available to selected testers only via the Scaleway API. [Request an invitation](https://www.scaleway.com/en/betas/#site-to-site-vpn).
19
19
</Message>
20
20
21
-
When creating a VPN [connection](/site-to-site-vpn/reference-content/understanding-s2svpn/#connection), you must define a security proposal (aka IPSec proposal). The security proposal defines the encryption and authentication methods used to secure the IPSec VPN tunnel.
21
+
When creating a VPN [connection](/site-to-site-vpn/reference-content/understanding-s2svpn/#connection), you must define a **security proposal** (aka IPSec proposal). The security proposal defines the encryption and authentication methods used to secure the IPSec VPN tunnel.
22
+
23
+
A security proposal is made up of several parts, each with definable algorithms or settings. You should define these bearing in mind the use case of your Site-to-Site VPN, balancing **security**, **performance** and **compatibility**.
24
+
25
+
It is important to find the optimal trade-off between these elements: the strongest possible security may be overkill for your use-case, and slow down performance to unacceptable levels. Some algorithms are outdated and not optimal for modern VPNs, but may be the only compatible option for legacy VPNs.
26
+
27
+
In this document, we explain the different elements of a security protocol, and describe the different algorithms and security options available with Scaleway Site-to-Site VPN, giving advice to help you choose the best options for your use-case.
28
+
29
+
## Defining a security proposal
22
30
23
31
There are two parts to a security proposal:
24
32
25
33
-**IKEv2** (Internet Key Exchange): Establishes a secure connection between the VPN gateway and the customer gateway
26
34
-**ESP** (Encapsulating Security Payload): Encrypts and authenticates the payload of the IP data packets traveling through the tunnel.
27
35
28
-
When defining your Site-to-Site VPN security proposal, you need to define the options to be used for the following elements:
|**IKEv2**|**Encryption**| Algorithm to encrypt IKE negotiation messages |`aes` (AEAD and non-AEAD) |
33
-
|**IKEv2**|**Integrity**| HMAC-based algorithm to verify IKE negotiation messages have not been tampered with |`sha`|
34
-
|**IKEv2**|**Key Exchange Method**| DH group to define strength of key exchange |`ecp`, `curve`, `modp`|
35
-
|**ESP**|**Encryption**| Algorithm to encrypt traffic's data payloads |`aes` (AEAD and non-AEAD) |
36
-
|**ESP**|**Integrity**| Only set an HMAC-based algorithm to verify integrity of data payloads if **not** using an AEAD algorithm for ESP encryption. Otherwise, integrity is built-in, and this option does not need to be set. |`sha`|
37
-
38
-
?? Pseudorandom function ??
36
+
When defining your Site-to-Site VPN security proposal, you must define the algorithms/ options to be used for IKEv2 and ESP as described below:
37
+
38
+
| Protocol | Element | Description | User must define? |
|**ESP**|**Encryption**| Algorithm to encrypt traffic's data payloads | ✅ Yes |
47
+
|**ESP**|**Integrity**| HMAC-based algorithm to verify data payloads have not been tampered with. <br/><br/>Only set an HMAC integrity algorithm if **not** using an AEAD algorithm for ESP encryption (see below). Otherwise, integrity is built in, and you do not need to set an ESP integrity algorithm. | ❓ Depends |
48
+
|**ESP**|**Key Exchange Method**| Not applicable to ESP. | ❌ No |
49
+
50
+
?? Pseudorandom function ??
51
+
52
+
## Encryption algorithms
53
+
54
+
The following encryption algorithms are available.
|`aes256ccm16` (AES-CCM) | AEAD | 256 | ✅ Strong | Alternative to AES-GCM, but GCM is preferred | 👍 Acceptable |
62
+
|`aes128ccm16` (AES-CCM) | AEAD | 128 | ⚠️ Medium | Alternative to AES-GCM, but GCM is preferred | 👍 Acceptable |
63
+
|`chacha20poly1305`| AEAD | 256 | ✅ Strong | Performance-sensitive (mobile, embedded), best choice for low-power devices | ✅ Recommended |
64
+
|`aes256` (AES-CBC) | non-AEAD | 256 | ✅ Strong | Suitable for legacy VPNs. Use only with HMAC (e.g. `sha256`)| ⚠️ Use with caution |
65
+
|`aes192` (AES-CBC) | non-AEAD | 192 | ⚠️ Medium | Rarely used, `aes256` is preferred. | ⚠️ Use with caution |
66
+
|`aes128` (AES-CBC) | non-AEAD | 128 | ⚠️ Medium | Suitable for performance-sensitive VPNs, where constraints don't allow `aes256`| ⚠️ Use with caution |
67
+
68
+
\***A**uthenticated **E**ncryption with **A**ssociated **D**ata (**AEAD**) algorithms provide both encryption and authentication in a single step. They are more secure and efficient than non-AEAD algorithms, but are not supported by all legacy devices. We recommend that you always prefer AEAD algorithms (`aes256gcm16` or `chacha20poly1305`) for performance and security. Choosing an AEAD algorithm for ESP encryption means you do **not** need to define an algorithm for ESP integrity.
69
+
70
+
## Integrity algorithms
71
+
72
+
Integrity is based on **H**ash-based **M**essage **A**uthentication **C**ode (HMAC). The following algorithms are available:
0 commit comments