Manual:IP/IPsec: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Versions | v4.5}} | {{Versions | v4.5}} | ||
<h2>Summary</h2> | |||
<p> | |||
<b>Sub-menu:</b> <code>/ip ipsec</code><br /> | |||
<b>Package required:</b> <code>security</code><br /> | |||
<b>Standards:</b> <code>RFC 4301</code><br /> | |||
</p> | |||
<br /> | |||
<p> | |||
<b>Internet Protocol Security (IPsec)</b> is a set of protocols to secure packet exchange over IP network. Each IP packet is authenticated and encrypted by one of various supported encryption and authentication algorithms. | |||
</p> | |||
<h2>Encryption</h2> | |||
<p> | |||
IPsec uses two protocols to provide traffic security | |||
<ul class="bullets"> | |||
<li> Authentication Header (AH) RFC 4302 | |||
<li>Encapsulating Security Payload (ESP) RFC 4303 | |||
</ul> | |||
These protocols may be applied individually or in combination with each other, but most security requirements can be met through the use of ESP by itself. | |||
</p> | |||
====Internet Key Exchange==== | ====Internet Key Exchange==== | ||
Line 62: | Line 48: | ||
<table border="1"> | <table border="1"> | ||
<tr><td>Diffie-Hellman Group</td><td>Name</td><td>Reference</td></tr> | <tr><td>Diffie-Hellman Group</td><td>Name</td><td>Reference</td></tr> | ||
<tr><td>Group 1</td><td>768 bit MODP group</td><td> | <tr><td>Group 1</td><td>768 bit MODP group</td><td>RFC 2409</td></tr> | ||
<tr><td>Group 2</td><td>1024 bits MODP group</td><td> | <tr><td>Group 2</td><td>1024 bits MODP group</td><td>RFC 2409</td></tr> | ||
<tr><td>Group 3</td><td>EC2N group on GP(2^155)</td><td> | <tr><td>Group 3</td><td>EC2N group on GP(2^155)</td><td>RFC 2409</td></tr> | ||
<tr><td>Group 4</td><td>EC2N group on GP(2^185)</td><td> | <tr><td>Group 4</td><td>EC2N group on GP(2^185)</td><td>RFC 2409</td></tr> | ||
<tr><td>Group 5</td><td>1536 bits MODP group</td><td> | <tr><td>Group 5</td><td>1536 bits MODP group</td><td>RFC 3526</td></tr> | ||
</table> | </table> | ||
====IKE Traffic==== | ====IKE Traffic==== |
Revision as of 13:56, 17 December 2009
Applies to RouterOS: v4.5
Summary
Sub-menu: /ip ipsec
Package required: security
Standards: RFC 4301
Internet Protocol Security (IPsec) is a set of protocols to secure packet exchange over IP network. Each IP packet is authenticated and encrypted by one of various supported encryption and authentication algorithms.
Encryption
IPsec uses two protocols to provide traffic security
- Authentication Header (AH) RFC 4302
- Encapsulating Security Payload (ESP) RFC 4303
These protocols may be applied individually or in combination with each other, but most security requirements can be met through the use of ESP by itself.
Internet Key Exchange
The Internet Key Exchange (IKE) is a protocol that provides authenticated keying material for Internet Security Association and Key Management Protocol (ISAKMP) framework. There are other key exchange schemes that work with ISAKMP, but IKE is the most widely used one. Together they provide means for authentication of hosts and automatic management of security associations (SA).
Most of the time IKE daemon is doing nothing. There are two possible situations when it is activated:
There is some traffic caught by a policy rule which needs to become encrypted or authenticated, but the policy doesn't have any SAs. The policy notifies IKE daemon about that, and IKE daemon initiates connection to remote host. IKE daemon responds to remote connection. In both cases, peers establish connection and execute 2 phases:
- Phase 1 - The peers agree upon algorithms they will use in the following IKE messages and authenticate. The keying material used to derive keys for all SAs and to protect following ISAKMP exchanges between hosts is generated also.
- Phase 2 - The peers establish one or more SAs that will be used by IPsec to encrypt data. All SAs established by IKE daemon will have lifetime values (either limiting time, after which SA will become invalid, or amount of data that can be encrypted by this SA, or both).
There are two lifetime values - soft and hard. When SA reaches it's soft lifetime treshold, the IKE daemon receives a notice and starts another phase 2 exchange to replace this SA with fresh one. If SA reaches hard lifetime, it is discarded.
IKE can optionally provide a Perfect Forward Secrecy (PFS), which is a property of key exchanges, that, in turn, means for IKE that compromising the long term phase 1 key will not allow to easily gain access to all IPsec data that is protected by SAs established through this phase 1. It means an additional keying material is generated for each phase 2.
Generation of keying material is computationally very expensive. Exempli gratia, the use of modp8192 group can take several seconds even on very fast computer. It usually takes place once per phase 1 exchange, which happens only once between any host pair and then is kept for long time. PFS adds this expensive operation also to each phase 2 exchange.
Diffie-Hellman Groups
Diffie-Hellman (DH) key exchange protocol allows two parties without any initial shared secret to create one securely. The following Modular Exponential (MODP) and Elliptic Curve (EC2N) Diffie-Hellman (also known as "Oakley") Groups are supported:
Diffie-Hellman Group | Name | Reference |
Group 1 | 768 bit MODP group | RFC 2409 |
Group 2 | 1024 bits MODP group | RFC 2409 |
Group 3 | EC2N group on GP(2^155) | RFC 2409 |
Group 4 | EC2N group on GP(2^185) | RFC 2409 |
Group 5 | 1536 bits MODP group | RFC 3526 |
IKE Traffic
To avoid problems with IKE packets hit some SPD rule and require to encrypt it with not yet established SA (that this packet perhaps is trying to establish), locally originated packets with UDP source port 500 are not processed with SPD. The same way packets with UDP destination port 500 that are to be delivered locally are not processed in incoming policy check.
Setup Procedure
To get IPsec to work with automatic keying using IKE-ISAKMP you will have to configure policy, peer and proposal (optional) entries.
For manual keying you will have to configure policy and manual-sa entries.
Policy Settings
(needs editing)