Re: [Last-Call] Last Call: <draft-gont-numeric-ids-sec-considerations-06.txt> (Security Considerations for Transient Numeric Identifiers Employed in Network Protocols) to Best Current Practice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, Eric,

On 13/12/20 19:06, Eric Rescorla wrote:


On Sun, Dec 13, 2020 at 1:03 PM Iván Arce (Quarkslab) <iarce@xxxxxxxxxxxxx <mailto:iarce@xxxxxxxxxxxxx>> wrote:
[....]

    Indeed. I would further argue that use of authenticated encryption is
    not warranted on all protocol designs so dismissing the need for
    security and privacy considerations for transient IDs on the basis that
    "we encrypt and authenticate the packets anyway" is not a good stance in
    general.


Fortunately, that's not the position I am taking. Rather, I am saying that authenticated encryption is an increasingly common practice and that we should not publish a set of recommendations in this area which does not engage with that properly.

The use of proper IDs is pretty orthogonal to the use of encryption.

That said, I wouldn't mind myself incorporating text like Ivan suggested, something ala:

   "in cases where protocols require cryptographic
    algorithms to provide confidentiality and integrity (ie.
    authenticated encryption) of the transient identifier fields some of
    the inherent weaknesses in transient ID generation may be
    mitigated."

And/or, something along the lines of:
 "Use of appropriate transient numeric IDs is not a replacement for
  cryptographic methods of protecting a transport-protocol. Rather,
  the use of appropriate transient numeric identifiers results in data
  minimisation [RFC7258] and could, in some cases, increase the
  difficulty to perform some attacks"



     >> Of course, it might be the case that these defenses are insufficient
     >> (that would be useful to know!) but this document does not provide
     >> much assistance in making that evaluation.

    The intend of the document is not to provide cryptoanalysis guidance to
    evaluate specific protocol designs but to provide general guidance on
    how to deal with use of transient numeric identifiers in protocol
    design.

    Indeed, the two protocols that you singled out do not follow our
    guidance (they hardly could as the document we are reviewing is not yet
    officially published) and assessing if the lack of precision for the
    generation of transient IDs weakens the protocols would be a matter for
    the respective authors to deal with.

This is an odd argument, as the authors of these documents could certainly
have read your documents and adopted your recommendations. But my
point here is different. As I said to Fernando, we are about to publish these protocols as PS and yet they appear to violate the guidance here, which seems
like a bad situation if we are about to publish this guidance as BCP.

I must say that I find it odd that the argument against publishing appropriate guidance is "well, we have a document in the pipeline that does not go along with such guidance", rather than whether the guidance is appropriate or not. Even more when, at the end of the day, the recommendations apply to *future* protocol specifications and implementations.


That said, the guidance in our document is:

   When a protocol specifies transient numerical identifiers, it is
   critical for the protocol specification to:

   1.  Clearly specify the interoperability requirements for the
       aforementioned identifiers (e.g., required properties such as
       uniqueness, along with the failure severity if such properties
       are not met).

   2.  Provide a security and privacy analysis of the aforementioned
       identifiers.

   3.  Recommend an algorithm for generating the aforementioned
       identifiers that mitigates security and privacy issues, such as
       those discussed in [I-D.irtf-pearg-numeric-ids-generation].


A proper spec should always spell the requirements in #1. In fact, the biggest reason for which we have recurrently screwed up with numeric identifiers is that most specs fail to spell out the interoperability requirements for the IDs.

#2 should probably be part of the security considerations anyway. For the most part, this has not been the case, and I have not checked the QUIC spec in this respect. But given past issues with numeric I-Ds, and given the push for data minimization (RFC7258), I'd expect this to be part of the security considerations.

Then there's #3. which comes as a natural consequence of #2.


I do believe that all protocol implementations should do steps #1-#3 above. It could be the case that if one were to do such exercise against the QUIC spec, one might find out that some quick implementations might be unnecessarily leaking information to the remote endpoint.

In such case, the proper outcome would be to publish a protocol update, rather than to thwart appropriate guidance on the topic.



As above,
I think the problem is that the guidance is not well suited to this type of protocol,
which means that this document ought to be adjusted. However, if you
have an argument that it is these protocols that should be revised, that would be very good to know.

The answer to this question comes from following steps #1-#2 above.

I haven't done that for QUIC, specifically. But I have added that to my TODO list. If it turns out that something is leaking, of course the next step will be an updating I-D and a vulnerability advisory. Wished I had done that before -- I just haven't.


[....]
Well I'm certainly not arguing that it's not important to describe good practices for cryptographic protocols, but: it seems to me that this RFC did precisely what your document recommends in S 5.

- It specified the interop requirements (none)
- It provided the security and privacy analysis (they must be unique and it's bad if they're not)
- It recommended an algorithm (the sequence number)

Without having read the referenced paper, it would seem that recomended a predictable sequence after assessing that "it's bad if the IDs are not unique" highlights were the flaw is. i.e., they failed in step #3 of our recommendations.

Thanks,
--
Fernando Gont
SI6 Networks
e-mail: fgont@xxxxxxxxxxxxxxx
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492




--
last-call mailing list
last-call@xxxxxxxx
https://www.ietf.org/mailman/listinfo/last-call




[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux