Re: [Perc] AD Evaluation of draft-ietf-perc-srtp-ekt-diet-08

Ben Campbell <ben@nostrum.com> Tue, 09 October 2018 19:09 UTC

Return-Path: <ben@nostrum.com>
X-Original-To: perc@ietfa.amsl.com
Delivered-To: perc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0654E129BBF; Tue, 9 Oct 2018 12:09:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.878
X-Spam-Level:
X-Spam-Status: No, score=-1.878 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham 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 OEaX-rnH1BIv; Tue, 9 Oct 2018 12:09:27 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2CCD12D7F8; Tue, 9 Oct 2018 12:09:27 -0700 (PDT)
Received: from [10.0.1.27] (cpe-70-122-203-106.tx.res.rr.com [70.122.203.106]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id w99J9Qn4035849 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 9 Oct 2018 14:09:27 -0500 (CDT) (envelope-from ben@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host cpe-70-122-203-106.tx.res.rr.com [70.122.203.106] claimed to be [10.0.1.27]
From: Ben Campbell <ben@nostrum.com>
Message-Id: <3A5779D7-B315-4954-B1CE-348B682D8DA1@nostrum.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_6B0677C3-238F-4375-9FE7-937AB333F1C2"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
Date: Tue, 09 Oct 2018 14:09:25 -0500
In-Reply-To: <CAL02cgS8FL4g0dpRUFQjPUURgZQsMCiq7eeJTw-UM6--6C3u5w@mail.gmail.com>
Cc: draft-ietf-perc-srtp-ekt-diet.all@ietf.org, perc@ietf.org
To: Richard Barnes <rlb@ipv.sx>
References: <CC46EAEA-3588-41E2-B3A2-5A8C547FA410@nostrum.com> <CAL02cgS8FL4g0dpRUFQjPUURgZQsMCiq7eeJTw-UM6--6C3u5w@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.100.39)
Archived-At: <https://mailarchive.ietf.org/arch/msg/perc/ndDLx8IWqaGwHk8FmCy_skUDfDY>
Subject: Re: [Perc] AD Evaluation of draft-ietf-perc-srtp-ekt-diet-08
X-BeenThere: perc@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Privacy Enhanced RTP Conferencing <perc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/perc>, <mailto:perc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/perc/>
List-Post: <mailto:perc@ietf.org>
List-Help: <mailto:perc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/perc>, <mailto:perc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Oct 2018 19:09:31 -0000

Thanks!.  I will add this to my list of things to look at after this week’s telechat.

Ben.

> On Oct 9, 2018, at 2:06 PM, Richard Barnes <rlb@ipv.sx> wrote:
> 
> Thanks for the review, Ben.  I've posted a PR with responses; notes inline below...
> 
> https://github.com/ietf/perc-wg/pull/161 <https://github.com/ietf/perc-wg/pull/161>
> 
> Apropos of your follow-up comment, I have sent a ping to the last address I have for Dan Wing, and will update the PR with whatever I hear back from him.
> 
> 
> On Thu, Aug 9, 2018 at 6:28 PM Ben Campbell <ben@nostrum.com <mailto:ben@nostrum.com>> wrote:
> Hi,
> 
> This is my AD Evaluation of draft-ietf-perc-srtp-ekt-diet-08.
> 
> The document is mostly in good shape. It’s easy to read and understand. However, I have a few substantive comments/questions and some editorial comments. I would like to at least discuss the substantive comments before going to IETF LC.
> 
> Thanks!
> 
> Ben.
> 
> ----------
> 
> *** Substantive Comments: ***
> 
> 
> §3: Is there a reason not to use the RFC 8174 boilerplate? There are at least a few instances of lowercase keywords in places that don’t seem intended as normative.
> 
> Not intentional.  I fixed one lower-case "must" and changed over to 8174.
> 
> 
> §4.2.1, first paragraph: Is there never a situation where you send neither version?  Also, did I miss a description of the purpose and semantics for ShortEKTField, other than “send it when you don’t send the full version”?
> 
> No, there is never such a situation.  EKT always adds at least one byte of overhead to every packet.  Because RTP lacks an internal length indicator, the receiver of an EKT-enabled flow needs to know how much EKT data to strip off the end of any given packet.  Even if the answer is "zero", you still need a way to signal that, which is what the ShortEKTField does.
> 
> 
> §4.2.2, step 3: "If the EKT decryption operation returns an authentication failure, then the packet processing stops.”
> 
> .... and then what?
> 
> Clarified that EKT processing is definitely over, and the packet SHOULD be discarded.
> 
> 
> - Step 6: "This applies in transforms such as [ I-D.ietf-perc-double] for replacing just half the key, but SHOULD return a processing error otherwise.”
> 
> I don’t understand that sentence. Is the point to say that using a “too short” key to replace part of the old key is only valid for perc-double or similar transforms, and receiving one in other contexts is an error?
> 
> Revised to clarify and tighten.
> 
> - Next Sentence: "Outbound packets SHOULD continue to use the old SRTP Master Key for 250 ms after” Does that imply a normative requirement for recipients to keep old keys around for at least that long? There’s currently an implementation suggestion about that, but it doesn’t use MUST or SHOULD.
> (Editorial: The sentence seems to belong in the “outbound” section, not the “inbound” section.)
> 
> Yeah, moved this to the outbound section.  Added MAY-level inbound considerations to the implementation notes -- either the receiver can accept packet loss or do trial decryption.
> 
> 
> §4.3:
> 
> - “ This ciphertext value MAY be cached by an SRTP
>    receiver to minimize computational effort by noting when the SRTP
>    master key is unchanged and avoiding repeating the steps defined in ..”
> 
> Are we really talking about the recipient? How would the recipient know that the key has not changed without processing the ciphertext value? (Also, the sentence is unfinished--maybe the answer would be clear if the rest of the sentence came out of hiding :-) )
> 
> The unclear ending is a missing cross-reference to Section 4.2.  I think the receiver optimization here is that if you cache the tag, you can memcmp instead of decrypting.  Same on the sender side, memcpy vs. encrypt.  Updated to reflect that.
> 
> - “ The receiver may want to have a sliding window to retain old SRTP
>    Master Keys (and related context) for some brief period of time, so
>    that out of order packets can be processed as well as packets sent
>    during the time keys are changing.”
> 
> See comment to §4.2.2, step 6. “may want” seems weak given that the sender SHOULD keep using the old key for a period of time.
> 
> Revised this as noted above, though note that MAY WISH TO is defined in RFC 6919.
> 
> 
> §4.7: “A new sender SHOULD send a packet containing the FullEKTField as soon as possible...”
> 
> Why not MUST? Would it ever make sense not to do this? It seems like the mechanism doesn’t work very well otherwise.
> 
> How would you comply with a "MUST ... as soon as possible"?  I don't think we want to dictate a schedule here, but I've added a note that packet loss can result if you don't.
> 
> 
> §6, first paragraph: “or other” - what other?
> 
> Clarified.
> 
> 
> - paragraph 8: “ An endpoint MUST NOT encrypt more than T different FullEKTField values using the same EKTKey.”
> 
> Is there a reciprocal requirement for decryption?
> 
> No.  The risk attaches once the ciphertext is transmitted.
> 
> 
> - last paragraph: “...SHOULD be limited using the ekt_ttl”
> 
> Why not MUST?
> 
> Upgraded.
> 
> 
> §7.3: Should this cite RFC 5246 instead of RFC 4366?
> 
> You mean RFC 8446?  Actually this line and the similar one below it are both unnecessary, so I've deleted them.
> 
> 
> *** Editorial Comments: ***
> 
> §2: “...each endpoint picks there own SRTP master key...:
> s/their/its
> 
> Done.
> 
> 
> §4.1, first paragraph: Please reference figures by number. I can imagine some future RFC rendering failing to  maintain the relative positions.  (This occurs a few times throughout the document.)
> 
> §4.2.2, step 3:
> Should "The EKTCiphertext authentication is checked and is decrypted” be something like “
> The EKTCiphertext field authentication is checked and its contents decrypted” I assume you don’t mean to say its authentication is decrypted.
> 
> "The EKTCiphertext is authenticated and decrypted..." -- since these operations are combined in many SRTP transforms.
> 
> 
> Also, there’s a number of occurrences of “The [fieldname]...” that should probably say “The [fieldname] field...”
> 
> This doesn't seem like a bad ambiguity to me.
> 
> 
> - Step 6: s/crypto/cryptographic
> 
> Disagree.
> 
> 
> - Step 7: is the replay protection part relevant to the step?
> 
> Deleted.  Added a note about replay to the security considerations.
> 
> 
> §4.3, third paragraph: This is the first mention of ekt_ttl. It would help to have a brief explanation or at least a forward reference.
> 
> Added a forward reference
> 
> 
> §4.6: s/ “other specification” / “another specification” ; or “other specifications”
> 
> Revised.
> 
> 
> §4.7, third paragraph: Both occurrences of “which” need preceding commas.
> 
> Done.
> 
> 
> §5.2, paragraph after figure 4: “ ... the extensions defined in this session allows the DTLS server...”
> Defined in this “session” or this “section”?
> 
> Actually, "in this document"
> 
> 
> §, paragraph 7: “... causing the receiving system will decrypt...”
> s/will/to
> 
> Done
> 
> 
> 
> 
> _______________________________________________
> Perc mailing list
> Perc@ietf.org <mailto:Perc@ietf.org>
> https://www.ietf.org/mailman/listinfo/perc <https://www.ietf.org/mailman/listinfo/perc>