-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-raviolli-intarea-trusted-domain-srv6.xml
371 lines (338 loc) · 16 KB
/
draft-raviolli-intarea-trusted-domain-srv6.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY nbsp " ">
<!ENTITY zwsp "​">
<!ENTITY nbhy "‑">
<!ENTITY wj "⁠">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="no"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-raviolli-intarea-trusted-domain-srv6-03"
ipr="trust200902"
obsoletes="" submissionType="IETF" updates="" xml:lang="en">
<front>
<title abbrev="draft-raviolli-intarea-trusted-domain-srv6">
Trusted Domain SRv6
</title>
<author fullname="Andrew Alston" initials="A." surname="Alston">
<organization>Liquid Intelligent Technologies</organization>
<address>
<email>[email protected]
</email>
<uri/>
</address>
</author>
<author fullname="Tom Hill" initials="T." surname="Hill">
<organization>British Telecom</organization>
<address>
<email>[email protected]
</email>
<uri/>
</address>
</author>
<author fullname="Tony Przygienda" initials="A." surname="Przygienda">
<organization>Juniper</organization>
<address>
<postal>
<country>USA
</country>
</postal>
<phone/>
<facsimile/>
<email>[email protected]
</email>
<uri/>
</address>
</author>
<author fullname="Luay Jalil" initials="L." surname="Jalil">
<organization>Verizon</organization>
<address>
<postal>
<country>USA
</country>
</postal>
<phone/>
<facsimile/>
<email>[email protected]
</email>
<uri/>
</address>
</author>
<date year="2024"/>
<abstract>
<t>
SRv6 as designed has evoked interest from various parties,
though its deployment is being limited, amongst other things,
by known security problems
in its architecture. This document specifies a standard way to create a
solution that closes some of the major security concerns,
while retaining the tenants of the SRv6 protocol.
</t>
</abstract>
<note title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref format="default"
pageno="false" target="RFC2119">RFC 2119</xref>.
</t>
</note>
</front>
<middle>
<section title="Description" >
<t>
SRv6 as designed has evoked interest from various parties,
though its deployment is being limited by known security problems
in its architecture. This document specifies a standard way to create a
solution that closes some of the major security concerns,
while retaining the basis of the SRv6 protocol.
</t>
</section>
<section title="Glossary" >
<dl newline="true" spacing="normal">
<dt>Fail-Closed Domain:</dt>
<dd>
synonymous with a Trusted Domain.
</dd>
<dt>
Trusted Domain (TD):
</dt>
<dd>
A domain that prevents processing of a protocol without explicit configuration, defined
in detail in <xref target="fcpd"/>. This document is limited to treatment of deployment of
SRv6 in the context of a trusted domain only.
</dd>
<dt>
Fail-Closed Protocol (FCP):
</dt>
<dd>
A protocol that can be deployed by establishing a fail-closed domain.
</dd>
<dt>
TD-SRv6:
</dt>
<dd>
SRv6 modified to become a FCP and with that allowing for easy deployment in
a trusted domain.
</dd>
</dl>
</section>
<section title="The SRv6 Security Problems">
<t>
SRv6 <xref target="RFC8402" format="default"/> relies on the concept of limited domain.
The application of this concept in the context of the draft however, suffers from
a lack of security that is easily deployable in an economi and scalable fashion.
</t>
<t>
Limited domains without very careful deployment will invariably leak beyond
the domain and allow untrusted traffic to enter the domain and terminate
on any arbitrary node.
</t>
<t>
As
per <xref format="default" pageno="false" target="RFC8402">RFC 8402</xref>RFC8402 Section 8,
SRv6 that leaks beyond the border of a trusted domain creates a security violation.
</t>
<t>
An established and proven solution is to create a trusted
domain that has a default fail-closed approach and a well-defined
trusted/untrusted boundary.
</t>
<t> Examples of fail-closed protocols include:</t>
<ul>
<li>mpls</li>
<li>clns</li>
<li>bier</li>
</ul>
</section>
<section title="Characteristics of a Fail-Closed Domain" anchor="fcpd">
<t>
A fail-closed domain is determined by following properties:
</t>
<t>
Processing of the protocol packet on an interface requires explicit configuration. Otherwise,
due to lack of packet classification, further processing and forwarding cannot be achieved.
In practical terms the behavior used most often is a drop of the offending packet.</t>
<t>
In a fail-closed protocol, leaking beyond the boundary of the domain requires
explicit config.
</t>
<t>
Fail-closed protocols are easily identifiable by their top level
(e.g. link layer) encoding
early in the packet formats and often by fields at a fixed offset.
In another words either their encoding or encapsulation allows such packets to be
easily distinguished from other traffic.
</t>
<t>
Classification of the protocol packets is completely deterministic.
</t>
<t>
Confining the protocol to the trusted domaim does not require complex processing in
either hardware or software to allow for scalable and economical deployment.
</t>
<t>
The boundary of a trusted domain consists of a set of interfaces that exhibit default
behavior.
</t>
</section>
<section title="SRv6 in the context of a trusted domain - an objective analysis">
<t>
It is impossible to differentiate SRv6 and IPv6 at the link-layer or
easily at network layer by e.g. a reserved protocol number the way IPSec does since
SRv6 and IPv6 share the same ethernet types and IP protocol numbers.
</t>
<t>
Hence, in the event of a packet being sent into a trusted domain, either accidentally
or by a malicious actor,
it is possible to send the frame to a node binding the specific SID,
and have the packet processed,
irrespective of the content of the underlying (encapsulated) packet.
</t>
<t>
The security proposals in RFC8402 section 8.2 is
based on the application of
filters preventing ingress traffic at the boundary routers destined
towards a SID within the domain.
Such filtering is prone to configuration errors and in addition,
has significant impact on fast matching hardware utilization
on devices that have large numbers of ingress points into the domain.
The matching itself, due to the complexity and numerous possibilities
of expressing a set of SIDs will likely necessitate a complete semantic
parsing of such list to guarantee fully precise matching including
wildcarding in different forms.
</t>
<t>
In the context of a trusted domain, anything outside of the
operators control should not be considered
trusted. This means applying filters to prevent
leakage into the domain at every customer port,
every server, and every cloud stack.
The scale and complexity of maintaining such a "shorewall" is daunting
and at large scale will not be likely to keep up with the
timing necessary in case of attacks mounted and metamorphosing in
short time intervals. An attack avoiding the filter wall may evade
discovery for a long time in the absence of sophisticated
traffic analyis and analytics tools.
</t>
</section>
<section title="Trusted-Domain Implementation">
<t>
To implement SRv6 in the context of a trusted domain, it is necessary
to modify it to allow deployment in a fail-closed boundary efficiently.
This requires changes to the protocol encapsulation at both the boundary
routers and the transit nodes.
This document introduces a distinct ethertype to be used for TD-SRv6
packets.
</t>
<section title="Boundary routers">
<t>
Trusted Domain boundary routers form the point at which the new
ethertype is imposed on interfaces configured to represent such boundary.
Imposition of the ethertype happens on packet ingress,
at the same point as SRv6 header imposition
is performed.
</t>
<t>
Boundary interfaces will, by default behavior and unless
configured otherwise, drop packets
containing the TD-SRv6 ethertype already and
MUST drop packets containing an
SRH (or otherwise being classified clearly as SRv6 frame)
if received on any ethertype except TD-SRv6.
</t>
</section>
<section title="Transit and egress routers">
<t>
In the case of a transit or egress router, should a frame not
be marked with the TD-SRv6 ethertype, the
frame will be treated as a standard IPv6 packet for the
purposes of handling and forwarding.
Even if an SRv6 packet is introduced into such domain with an ethertype
different from TD-SRv6, the according SRv6 packet handling
will not occur. Hence the resulting handling of the packet is
indistinguishable from standard IPv6 processing.
</t>
<t>
A router configured to process TD-SRv6 MUST drop packets containing an
SRH (or otherwise being classified clearly as SRv6 frame)
if received on any ethertype except TD-SRv6 and MUST apply SRv6 processing
if and only if the frame is marked as TD-SRv6 ethertype.
</t>
</section>
<section title="Transit and egress routers not using TD-SRv6">
<t>It cannot be excluded that deployment of TD-SRv6 are using
TD-SRv6 on only a subset of external interfaces and/or choose to revert to standard
IPv6 ether type for SRv6 packets within some or all interfaces
facing the internal domain. The mechanisms required to
realize such a deployment and risks incurred
are outside the scope of this document.</t>
</section>
</section>
<section anchor="registry" title="Registry Considerations">
<section anchor="IANA" title="IANA Considerations" toc="default">
<t>
No IANA Considerations
</t>
</section>
<section anchor="IEEE" title="IEEE Considerations" toc="default">
<t>
TD-SRv6 Ethertype: TBD0
</t>
</section>
</section>
<section title="Security Considerations">
<t>
This draft enhances the security mechanisms required by section 8 of RFC8402, and does not
impose any further security considerations of its own.
</t>
</section>
<section title="Applicability Considerations">
<t>
TD-SRv6 is applicable in situations where the transport domain using SRv6
is not considered a fully trusted closed user
group, i.e. not every participant can be trusted to not accept IPv6 frames from other domains
or issue IPv6 frames within the domain using some mechanism. In the latter case the attack surface
to craft malicious SRv6 frames looking potentially like innocuous IPv6 frames is open. A
good example being
servers. On the other hand, a fully trusted user group can be assumed e.g. in overlay situation, i.e.
a transport provider offering VPN service where IPv6 framed are neither injected or accepted
from the overlay. In a sense, the VPN tunnel encapsulation acts as security mechanism preventing
the closed user group from injecting IPv6 frames carried on the tunnel into the transport domain.
</t>
</section>
<section title="Contributors">
<t>
Weiqiang Cheng
</t>
<t>
</t>
<t>
Anthony Somerset
</t>
<t>
</t>
<t>Dan Voyer</t>
<t>
</t>
</section>
</middle>
<back>
<references title="Informative References">
</references>
<references title="Normative References">
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/>
</references>
</back>
</rfc>