Re: [6lo] [6tisch] Thomas' review of draft-thubert-6lo-forwarding-fragments-04

PWK <pat.kinney@kinneyconsultingllc.com> Fri, 07 April 2017 12:42 UTC

Return-Path: <pat.kinney@kinneyconsultingllc.com>
X-Original-To: 6lo@ietfa.amsl.com
Delivered-To: 6lo@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E375124281 for <6lo@ietfa.amsl.com>; Fri, 7 Apr 2017 05:42:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.694
X-Spam-Level:
X-Spam-Status: No, score=-4.694 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6KndGdGDD7V5 for <6lo@ietfa.amsl.com>; Fri, 7 Apr 2017 05:42:28 -0700 (PDT)
Received: from p3plsmtpa06-10.prod.phx3.secureserver.net (p3plsmtpa06-10.prod.phx3.secureserver.net [173.201.192.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84CC41274D2 for <6lo@ietf.org>; Fri, 7 Apr 2017 05:42:28 -0700 (PDT)
Received: from [10.0.1.5] ([24.13.37.133]) by :SMTPAUTH: with SMTP id wTDAcz5cG3ptHwTDAc6BhX; Fri, 07 Apr 2017 05:41:57 -0700
From: PWK <pat.kinney@kinneyconsultingllc.com>
Message-Id: <E9F92EB9-473F-4532-AE16-0E7EA4A3798E@kinneyconsultingllc.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_F9D7EE27-732B-4D5A-BD62-10840E21F73E"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Fri, 07 Apr 2017 07:41:55 -0500
In-Reply-To: <22759.24711.77992.225193@fireball.acr.fi>
Cc: Thubert Pascal <pthubert@cisco.com>, Ralph Droms <rdroms.ietf@gmail.com>, Carsten Bormann <cabo@tzi.org>, Palattella Maria Rita <6tisch@ietf.org>, Thomas Watteyne <thomas.watteyne@inria.fr>, "6lo@ietf.org" <6lo@ietf.org>
To: Tero Kivinen <kivinen@IKI.FI>
References: <CADJ9OA9AX6N+-pciaCxyO-oWNft2fwKf8OXSn71VDi+tdXHoKw@mail.gmail.com> <4A946964-5BE9-449F-B9F1-798A3FB56B30@tzi.org> <7520BB3A-B30B-4E0B-8C84-600893C19E4A@gmail.com> <2323795c367f4aa88b178c1710187ad6@XCH-RCD-001.cisco.com> <22758.13790.469557.896809@fireball.acr.fi> <8C7F867A-B669-4681-9FD7-FCF85E675DAD@kinneyconsultingllc.com> <22758.22825.803918.100803@fireball.acr.fi> <956EDC0E-3671-4230-BF74-5C962437FD1C@kinneyconsultingllc.com> <22759.24711.77992.225193@fireball.acr.fi>
X-Mailer: Apple Mail (2.3273)
X-CMAE-Envelope: MS4wfJViQyUw9qU/mGmZpVzxvy+0voLLvMT3xkOer7sn8vp+RkRdDVcEhOYVPnYN4zZjaRJPs8UKDnye3018wdgVRDO7OVj1uUolsP2+pGJmMbd1v+FpLvhM feWVDqXxrcsBGjBr7RoLBElaCjg80rcFE6HRUbIBapjJhyhAL3Tu1X3m7WpEDbEiUdSh8nLUPpczOc64GNimnAUa87lz98Rwa5N3TQaHjrLkOBlD6z1HtXjT O55Xzu4f8tV0y+37sBREi4NM2/U++hqhiVDt8zC4f8uLRs67E16nONIMSWNmZbuoQ9AZl/q08uNfCnWKZfzG74arpCxP7vug3J0TVXlXplw=
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/ucp63JJcYk_ejrjvDXyHC4I8Xj0>
Subject: Re: [6lo] [6tisch] Thomas' review of draft-thubert-6lo-forwarding-fragments-04
X-BeenThere: 6lo@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Mailing list for the 6lo WG for Internet Area issues in IPv6 over constrained node networks." <6lo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6lo>, <mailto:6lo-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6lo/>
List-Post: <mailto:6lo@ietf.org>
List-Help: <mailto:6lo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lo>, <mailto:6lo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Apr 2017 12:42:31 -0000

Tero; I understand your scenario, and I also believe that all WAN/LAN/PAN wireless networks should always use security.  

But to further analyze your scenario, since 802.15.4 LP-WAN is star topology based, in your example A<=>B would be one network and C<=>D would be another network.  Prior to staring they would have looked to see if there were other networks set up on the channel, therefore one would have used another channel (as you noted).  By the way, the scenario you choose is similar to two networks choosing the same PAN ID and allocating the same short addresses to nodes that are in range of both networks. 

Secondly, your scenario assumes that they both send the Fragment Sequence Context Description at almost the same time, which is very unlikely for two networks so close together.  If they were “out-of-sync” then B or D would have received a fragment out of sync, so if Frak policy zero was in use, reception of an out-of-order fragment would have resulted in termination of the transaction. The other two policies would have resulted in a condition where B or D would have received a fragment out of sequence that was already correctly received, so it would have discarded that fragment, while the other would have received a fragment number ahead of its time and would have accepted it.  

Finally, for the last case, I will also propose a text change in the next revision that when the frame is reassembled, the standard policy of checking the FCS and sending ACKs is used.

Pat

Pat Kinney
Kinney Consulting LLC
IEEE 802.15 WG vice chair, SC chair
ISA100 co-chair, ISA100.20 chair
O: +1.847.960.3715
pat.kinney@kinneyconsultingllc.com <mailto:pat.kinney@kinneyconsultingllc.com>

On 7, Apr2017, at 4:48, Tero Kivinen <kivinen@IKI.FI> wrote:

PWK writes:
> Actually, with 802.15.4 Layer 1 fragmenting, the source device sends
> the destination device a message containing the Fragment Sequence
> Context Description which includes (among other information) the
> source and destination addresses and a 6-bit transaction identifier
> which uniquely defines this fragment sequence.  The destination
> device must ACK this message before the fragment sequence starts.
> After that ACK, the source sends the fragments that include the
> transaction identifier but not the source and destination addresses.
> Any device receiving a fragment checks to see if the transaction
> identifier belongs to that device, if it doesn’t, the fragment is
> discarded.  In summary, multiple fragment sequences will not get
> mixed up since the Fragment Sequence Context Description maps the
> transaction identifier to the source and destination addresses. 

That is only true if you have two nodes on the channel.

If node A sends fragment sequence context description IE and sets up
fragmentation context with node B with TID of 0x00, and at the same
time node C decides to send fragmented packet to node D, the node C
will send similar frame to setup the fragmentation context with D, but
as those fragment sequence context description IE frames do have
addressing fields, only the intended targets will see them, thus only
B receives the FSCD from A and only D receives it from C. Thus C does
not have any idea which TIDs are in use, and it might also pick TID of
0x00.

Then when A sends a fragment with TID of 0x00, and without addressing
fields, both B and D will receive it and they both think it belongs to
them.

Similar when C sends fragments with TID 0x00 both B and D receive it
and both will add it to their reassembly queue.

If security is enabled then the problem is not as bad, as the MIC-32
of the fragment is calculated using nonce, which includes the sender
extended address, thus MIC-32 will fail if the sender is not the one
device assumes it is, thus node B will only accept fragments from A,
and all fragments sent by the C will have invalid MIC-32, thus they
will fail the authentication and will be dropped. Similarly with node
D.

If no security is used then there is nothing protecting the fragments,
thus they will get mixed up. In LECIM this is not problem (at least
that was told to me), because there is only one sender in one channel,
thus the recipient can know that frame is from that sender by just
receiving it on that channel.

Of course the security of the fragments was broken in the 4k, and it
was fixed in the 802.15.4-2015 version. In 4k the fragment counters
and the frame counters could overlap, thus it could generate same
nonce twice in some cases (i.e. frame number 0x00000001, and fragment
0x01 of frame number 0x000000 had same nonce or so).
-- 
kivinen@iki.fi