Hello Hui.
On Monday 10 March 2008, Hui Deng wrote:
>
> We propose to use IKE to neogitate IPsec protected GRE key based
> tunnel as the below:
> http://tools.ietf.org/html/draft-ma-softwire-ipsec-gre-demultiplexing
>-ps-00 http://tools.ietf.org/html/draft-wu-l3vpn-ipsec-gre-00
>
> Please help to give us some comments on it,
Attached are two SECDIR reviews I did of these documents in case that is
of interest to int-area folks.
Best,
--julien
--- Begin Message ---
I have reviewed this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG. These comments were written primarily for the benefit of the
security area directors. Document editors and WG chairs should treat
these comments just like any other last call comments.
I found it misleadling that the document is entitled "A method of using
IPsec to setup GRE tunnel" while its abstract states that "This
document describes a method of using IPsec signaling (i.e, IKE) to
setup a GRE tunnel." AFAICT, the document does not, at least in its
current incarnation, define a method to setup GRE tunnel based on
IPsec.
Currently the document simply proposes to use the GRE key [RFC2890]
within IPsec Traffic Selectors. The document is also limited to IPsec
transport mode thus ruling out access control features of IPsec tunnel
mode, i.e. SPD/SAD lookups based on fields of tunneled packets -- they
are not possible since GRE encapsulates IP packets before they are
passed to IPsec.
Thus if authors do not plan to effectively provide a method to setup GRE
tunnel based on IPsec signalling, then the document title and abstract
should be changed, e.g. "Using a GRE key within IPsec Traffic Selectors
for IPsec Transport Mode".
If, on the contrary, authors do plan to provide a method to setup GRE
tunnel based on IPsec signalling, then I think this is more than what
they propose. IPsec as defined per RFC4301 does setup tunnel only in
tunnel mode. Thus what the title refers to would imply that the
document defines a new flavor of IPsec tunnel mode based on GRE, where
SAD/SPD lookups occurs on inner packets (before tunneling), and where
IKE is used to negotiate GRE keys to be used.
Orthogonal to what scheme/model the authors want to document (GRE tunnel
mode vs. GRE key Traffic Selector), it would be good that an
explanation is given as to why that is the scheme/model chosen,
especially in terms of countermeasures to attacks possible under a
threat model that shall be made explicit. Or, as a corrolary, try to
answer to the following: why can't a single SA be used to protect all
traffic going in b/w two given GRE tunnel endpoints?
[ Non-security related: I also don't understand the story about half GRE
key, where does it come from? AFAICS RFC2890 has no notion of such half
key. Is it something specific to L3VPN? ]
Finally the first sentence of the Security Considerations section is
factually incorrect:
IPsec GRE tunnel inherits all the security features of IPsec, which
includes mutual authentication, encrytion, integrity and anti-replay
protection. Additionally, with the port selector capability on GRE
Key, the IPsec GRE tunnel can provide better access control and
differentiated security protection than an ordinary GRE tunnel
protected by IPsec transport mode.
A central feature of IPsec is access control. As transport mode applied
to tunneling, the IPsec GRE tunnel weakens the access control features
that would be present if IPsec was used in tunnel mode, i.e. SPD/SAD
lookups based on fields of inner packets. Thus I'd like the first
sentence to make it clear that IPsec GRE tunnel inherits security
features of IPsec *transport* mode applied to *tunneling*, and point
out to RFC4301 for weaknesses of such usage of IPsec.
--julien
--- End Message ---
--- Begin Message ---
I have reviewed this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG. These comments were written primarily for the benefit of the
security area directors. Document editors and WG chairs should treat
these comments just like any other last call comments.
As a security related problem statement, the document should talk more
about security. Currently it only listes usage scenarios without
detailing the security motivation, which is what a security related
problem statement should be all about IMHO.
Section 1. Introduction states:
However there exists scenarios where multiple IPsec SAs are needed to
protect the GRE tunnel between the same pair of PEs. This documents
descirbes several scenarios where multiple IPsec SAs are needed to
protect GRE tunnels between the same pair. And currently there is no
mechanism for IPsec to demultiplexing GRE encapsulated packets. And
solution for IPsec SA to demultiplexing GRE encapsulated packets is
proposed.
Yet the the description of the scenarios poorly explains why multiple
IPsec SAs are needed.
After reading the document it is far from clear that it is needed to
provide different security services based on the GRE key.
In all the scenarios you decribe there's two ways to decide which
security services to apply to a given packet:
- either, as you propose, you assign the packet to a GRE tunnel/key
(based on forwarding decision, policy routing, whatever) and then the
choice of security services to apply is dictated by the GRE key present
as traffic selector in the IPsec SPD. Let's call that the "split"
model. Or,
- you pump the packet in the IPsec stack, and the choice of security
services to apply is dictated by the IPsec SPD alone. Let's call that
the "integrated" model.
I'm arguing that, security wise, the integrated model is better. No
system administrator is perfect. If you put all the security policy in
one place it is less error prone that to have it distributed in between
two databases (GRE key assignment database vs. SPD) since the
configuration split increase the odds of manipulation errors,
non-coordination, etc. It is also bad that the GRE configuration that
doesn't seem that security related turns out to be the place where the
security policy is really in place, since then the SPD operates only on
consequences of the GRE configuration.
It seems to me that the only point in using GRE in the context of IPsec
is to cope with overlapping addressing space, e.g. RFC1918 addresses.
If that's the case a simpler solution would be for the IPsec
implementation to support per-interface SPD, as was the case with
RFC2401. If that is not sufficient, that is the role of a problem
statement to explain why it is not...
I also think that the point of discriminating multicast vs. unicast is
moot since multicast traffic is sent to a multicast address and that
can simply be used in a Traffic Selector.
Finally the document claims that it is better to have multiple SA rather
than one SA to protect different VPNs since the compromise of one SA
doesn't affect all VPNs, yet it doesn't explain how that SA would be
compromised, and why the other SAs wouldn't be compromised as well if
one SA could be. That should be rationalized.
--julien
--- End Message ---
_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area