Scott, thank you for your review. Here are the responses to your comments, see 
inline for details.

Brs

From: IPsec <ipsec-boun...@ietf.org> On Behalf Of Scott Fluhrer (sfluhrer)
Sent: Thursday, July 13, 2023 2:58 AM
To: ipsec@ietf.org
Subject: [IPsec] draft-mglt-ipsecme-ts-dscp

Hi,

   I rereviewed this draft, and have a few comments:

- As the draft is written, the administrator can specify that (for example) 
traffic with DSCP=3 must be protected, but other traffic is not.  I don’t 
believe giving administrators this option is a good idea, it can likely result 
in a security foot gun.
The current selectors (protocol, IP addresses, ports) specify the traffic type, 
where it is coming from or where it is going to – that is, things that the 
application may check.  For example, if the SPD specifies that TCP traffic to 
port 22 MUST be protected, then someone cannot trick the system into accepting 
a TCP packet to port 22 (without going through authentication).
DSCP, on the other hand, doesn’t specify the traffic type or 
source/destination, but instead how the traffic should be treated.  And, 
receiving applications do not verify themselves if the DSCP value is what they 
expect (because network devices are free to modify the DSCP value in transit).  
Hence, in the above scenario where only DSCP=3 traffic is protected, the 
adversary can inject any traffic they like (and just set the DSCP setting to 
something else).
It would appear to me that this draft would need to mandate that, if you do 
have a DSCP-specific SPD entry, that traffic that matches that (except for the 
DSCP) must also be protected (either encrypted or discarded).

<Harold>
When TS_DSCP is agreed, TS_DSCP is just refinement of existing selectors which 
is always used in combination with other selectors and cannot be used "alone", 
in section 3 (Traffic Selector negotiation). This prevents DSCP from inferring 
with other traditional policies. It is also presumed that the IPsec subsystem 
itself would install a REJECT/DISCARD rule in the SPD to prevent that traffic 
from being transmitted without IPsec protection.

We agree in MANDATING to have the same policy for different DSCP values in the 
security consideration. The traffic that matches TS (except for the DSCP) must 
also be handled and we prefer to have a discard for the default policy that is 
non defined DSCP values when at least one DSCP value has been defined (This is 
because the "bypass" will bring security risks, and the "encryption" will cause 
packets to be encrypted regardless of the DSCP value, which makes TS_DSCP lose 
its original meaning). 

I think the wording of current security consideration is bad, we will refine it.
</Harold>

- I’m going through the introduction, and quite frankly I don’t understand some 
of the arguments.  For example, consider this text:

   If DSCP values are
   not agreed and between (for example) 2 SAs, it is unlikely the
   initiator and the responder miraculously select the same subset of
   DSCP values over the same SAs.  Instead each peer is likely that
   inbound and outbound traffic take different SA and as such does not
   solve the issue of discarding lower priority packets associated to
   different class of traffic sharing a given SA.

I’m completely missing the issue that is being brought up in this text.  If we 
have two peers Alice and Bob, and they negotiate two pairs of Sas (SA1, SA3 for 
Alice to Bob traffic, SA2, SA4 for Bob to Alice traffic), and Alice decides to 
send DSCP=2 traffic via SA1, DSCP=4 traffic via SA3, and Bob decides to send 
DSCP=2 traffic via SA4, DSCP=4 traffic via SA2, why is that an issue?  The 
original issue being addressed is for traffic in one direction (Alice to Bob) 
where sending different DSCP values over the same SA may cause drops; I do not 
believe there is any interaction between SAs going in different directions (or 
the differing decisions being made by Alice and Bob)

<Harold>
Firstly, TS_DSCP indicates that different types of traffic need to be spread 
over different SAs - i.e. not all DSCP values are grouped in a single SA, this 
can avoid sending different DSCP values over one SA cause packet drops. 
Meanwhile, TS_DSCP indicates how the traffic is grouped (unless there is one SA 
per DSCP value), i.e. which DSCP values can be grouped together. We group the 
DSCP values to limit the number of SAs

Another fundamental reason is that if we are trying to make sure e.g. EF 
traffic uses a separate child SA, we need that to apply in both directions.  
Sure, one could configure both devices, and it probably wouldn't even matter if 
they used different child SAs but if you do that, it is quite likely that we 
would end up with 3 child SAs instead of two, as each end would set up an extra 
one for EF, and not realize they could use the one the other end had set up. It 
just works better if it is actually negotiated.
</Harold>

- One omission in this draft is any discussion of the decapsulation procedure.  
According to 4301, we’re supposed to do a check of the decrypted packet against 
the SAD selectors – is the DSCP included in that?  How is this handled in 
transport mode (where the original DSCP value would not be available)?  Or, is 
transport mode forbidden to these SAs?

<Harold>
Regarding to tunnel mode,due to the DSCP value already has the same/default 
policy (discard, if a packet that matches an SPD entry for all components 
except the DSCP values would be treated as "not matching" on encryption), we 
can further discuss if/how to check of decryption packet against the SAD 
selectors.

For transport mode, we prefer to say TS_DSCP doesn’t support transport mode 
because we do not see the wide possibility of TS_DSCP being widely used in 
transport mode.
</Harold>
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to