Re: [TLS] AD review of draft-ietf-tls-dtls-connection-id-07

2020-09-18 Thread Achim Kraus

Hi Ben,


Am 16.09.20 um 08:31 schrieb Achim Kraus:

Hi Ben,



If I did't get it, it may be easier to discus this as issue in the
github repo.


I think you got it; I am just failing to remember where the "MUST anyway
use new handshakes" requirement comes in from.  And I guess that also
raises the question of what the expected behavior is when a server
expects
CID-ful traffic on a given 5-tuple and receives an (unencrypted)
ClientHello on that 5-tuple.



"when a server expects CID-ful traffic on a given 5-tuple"

I'm not sure, why that should happen. If CID is used, the server should
not expect a given 5-tuple (at least not longer than a few seconds).
If a new CLIENT_HELLO arrives, it's first challenge it with a
HELLO_VERIFY_REQUEST. If that verification succeeds and a "old 5-tuple
of a previous CID message" is hit, then just mark/remove the 5-tuple of
that CID association. That mainly means, you will not be able to reach
the CID peer with that 5-tuple. That's anyway extremely common to lose
the ip-route to such CID peers, otherwise CID would not be required.



Let me add:

- If the scenario uses "dynamic 5-tuples, with CID or without" and
"static 5-tuples without CID",
- then an attack, with the spoofed 5-tuple (out of that static-5-tuple"
pool) and CID (described in
https://github.com/tlswg/dtls-conn-id/issues/64), may disrupt the
communication to such a static-5-tuple without CID.

Even then, that "static-5-tuple" peers must be anyway aware, that
sometimes new handshakes are required. So that scenario may also depend
more on the volume of such attacks, than just on the pure possibility.
In my experience, such "static-5-tuples" are rare and I would guess,
they will benefit from different handling also for other reasons.
Therefore I would just spend them an separate endpoint to separate their
traffic.

best regards
Achim

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Hybrid key exchange in TLS 1.3 and variable-length secrets

2020-09-18 Thread Nimrod Aviram
Sounds good to me.
I'm happy to send a PR making these changes, but couldn't find the
repository for the document.
Could you please point me to it?

best,
Nimrod


On Thu, 17 Sep 2020 at 17:12, Douglas Stebila  wrote:

> Given that all the finalists and alternate candidates have fixed
> length shared secrets, and your observations on the potential for
> timing attacks, I'm fine with dealing with only fixed length secrets,
> removing the paragraph discussing the possibility for variable-length
> shared secrets from the TLS 1.3 hybrid KEX draft, and adding a note
> regarding the risks as identified by the Raccoon attack.
>
> Douglas
>
>
> On Wed, Sep 16, 2020 at 12:27 PM Nimrod Aviram 
> wrote:
> >
> > Dear all,
> >
> > We are writing to ask about the possible security impact of
> > variable-length secrets on the "Hybrid key exchange in TLS 1.3" RFC
> > [1].
> >
> > As you probably know, when using key material of variable length
> > and processing this material using hash functions, a timing side
> > channel may arise. In broad terms, when the secret is longer, the hash
> > function may need to process more blocks internally. In some unfortunate
> > circumstances, this has led to timing attacks, e.g. Lucky Thirteen [2]
> > and the newly-disclosed Raccoon Attack [3]. To be clear, we are not
> > aware of any attack on the proposed standard. Rather, we view this as
> > an opportunity to defend-in-depth against such attacks, while work on
> > the standard is in progress.
> >
> > Our proposal is to add language to the RFC explaining that
> variable-length
> > secrets may enable such attacks, and should therefore be avoided when
> > possible.  Currently, the language seems to allow for variable-length
> > secrets, should the need arise:
> > "Variable-length shared secrets ... if it is envisioned that this
> specification
> > be used with algorithms which do not have fixed-length shared secrets
> ..."
> >
> > We also note that a related RFC exists, "Hybrid Post-Quantum Key
> > Encapsulation Methods (PQ KEM) for Transport Layer Security 1.2"
> > [4]. However, that RFC apparently only uses BIKE, Kyber or SIKE as the
> > PQ KEM. To our knowledge, all three KEMs have fixed-length secrets. It
> > may be prudent to add cautionary language to that document as well,
> > in case other KEMs are used in the future.
> >
> > Kind regards,
> > The Raccoon Team
> >
> > [1]
> https://www.ietf.org/id/draft-ietf-tls-hybrid-design-00.html#name-open-questions
> > [2] https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6547131
> > [3] https://raccoon-attack.com/
> > [4]
> https://tools.ietf.org/id/draft-campagna-tls-bike-sike-hybrid-05.html#name-key-exchange-algorithms
> >
> >
> > ___
> > TLS mailing list
> > TLS@ietf.org
> > https://www.ietf.org/mailman/listinfo/tls
>
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Moving SHA-1 signature schemes to not recommended in draft-ietf-tls-md5-sha1-deprecate

2020-09-18 Thread Sean Turner
Rich,

Just to close the loop on this, there are three values: Y, N, and blank. I tend 
to think we should mark is as “N”:

   If an item is not marked as "Recommended" (i.e., "N"), it does not
   necessarily mean that it is flawed; rather, it indicates that the
   item either has not been through the IETF consensus process, has
   limited applicability, or is intended only for specific use cases.

That specific use case is two servers talking an old version to each other in 
whatever setting they are being used in.

Also, should we be adding “_legacy” to the names of the code points as was done 
for rsa_pkcs1_sha256_legacy by:
https://www.ietf.org/archive/id/draft-davidben-tls13-pkcs1-00.txt?

spt


> On Jun 25, 2020, at 08:35, Salz, Rich  
> wrote:
> 
>   • I submitted a PR [1] for draft-ietf-tls-md5-sha1-deprecate to move 
> the recommended IANA registry entries for  rsa_pkcs1_sha1 and ecdsa_sha1 in 
> the Signature Scheme registry from Y to N.   This change can be incorporated 
> with any updates from the AD review.  
>  
> Yes yes yes.
>  
> Or no no no?
>  
> I think it is remove the “Y” and leave blank, right?
> ___
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Moving SHA-1 signature schemes to not recommended in draft-ietf-tls-md5-sha1-deprecate

2020-09-18 Thread David Benjamin
On Fri, Sep 18, 2020 at 10:28 AM Sean Turner  wrote:

> Also, should we be adding “_legacy” to the names of the code points as was
> done for rsa_pkcs1_sha256_legacy by:
> https://www.ietf.org/archive/id/draft-davidben-tls13-pkcs1-00.txt?
>

My inclination is no. We didn't go about renaming the huge mess of TLS
cipher suites or anything else that I remember.

The "_legacy" suffix in that draft has a slightly different meaning
(perhaps I should have picked a different name). The existing
rsa_pkcs1_sha256 code points from TLS 1.2 were carried over into TLS 1.3
but with a subsetted meaning. In TLS 1.2, rsa_pkcs1_sha256 advertises both
TLS and X.509 capabilities, but in TLS 1.3 it advertises only X.509
capabilities. rsa_pkcs1_sha256 is undefined for a TLS CertificateVerify
because we took PKCS#1 v1.5 out. So, in order for TLS 1.3 servers to opt
into accepting PKCS#1 v1.5 signatures in CertificateVerify, the draft
needed to define new code points with a CertificateVerify capability.

rsa_pkcs1_sha256_tls1_3_certificate_verify_for_legacy_clients was a
mouthful, so I just added a "legacy" suffix. :-)

David
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Moving SHA-1 signature schemes to not recommended in draft-ietf-tls-md5-sha1-deprecate

2020-09-18 Thread Salz, Rich
Okay, I am find with the Y->N change.  Nick, Yoav?


___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] [OPSAWG] CALL FOR ADOPTION: draft-reddy-opsawg-mud-tls

2020-09-18 Thread Michael Richardson

ekr> Taking a step back from details, ISTM that the whole design of this
ekr> document is antithetical to extensibility:

I agree.  It was my first reaction as well.
I then had another thought: there are dozens of entities out there that want
to do this regardless, enough that it broke the TLS version system requiring
the hack. (Does that hack have a name?)

We can call them stupid, or we can try to understand their point of view, and
try to help them be less stupid.  

ekr> TLS is a protocol with a number of extension points. What this document
ekr> does is allow an endpoint to restrict its use of a certain set of
ekr> extension points. However, the language provided here is insufficiently
ekr> rich to allow the client to properly describe the use of those
ekr> points.

assuming that some language could be provided that was sufficiently rich,
would your objection continue to stand?

ekr> As a concrete example: for extensions the model knows about
ekr> (e.g., supported_versions) you can indicate the contents of the
ekr> extension, but for extensions the model does not know about (e.g., ECH)
ekr> you cannot. That means that you're either stuck with allowing anything
ekr> in those extensions (which means that your filtering effectiveness is
ekr> reduced) or you don't allow those extensions, in which case you create 
ossification.

ekr> As a thought example, consider a hypothetical TLS 1.4 which decided to
ekr> adopt QUIC-style obfuscation of the CH and SH, putting the obfuscated
ekr> CH/SH in extensions in a stereotyped outer CH/SH. The system described
ekr> here would be unable to do anything useful with that, which creates
ekr> pressure to block TLS 1.4 entirely, which obviously is not awesome.

I believe that without a mechanism described in this document, many
enterprises may conclude that they need to block TLS 1.3.

ekr> If we want to pursue this kind of idea -- and I'm not at all sure we
ekr> should -- ISTM that rather than trying to invent some new DSL for
ekr> filtering TLS we allow the client (who by hypothesis is trusted as to
ekr> what it will generate) to provide a general program that the middlebox
ekr> can interpret that will describe what it will do. For instance, you
ekr> could provide a WASM file which gets fed the CH and just says "this is
ekr> me" or "this doesn't look like me". That way we don't need to continue
ekr> extending the language here whenever TLS evolves. Note that that doesn't
ekr> prohibit having a language like this as a programming convenience, but
ekr> it wouldn't restrict the semantics of what you could say about the
ekr> connection.

We don't have to have the client provide it, it can be encoded by the
manufacturer in the MUD file, assuming that it depends upon the model, not
some local decision in the client.   The idea of having a WASM file is an
interesting one, but being an executable of a sort, it has other security
problems. 

-- 
]   Never tell me the odds! | ipv6 mesh networks [ 
]   Michael Richardson, Sandelman Software Works| network architect  [ 
] m...@sandelman.ca  http://www.sandelman.ca/|   ruby on rails[ 



signature.asc
Description: PGP signature
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] [OPSAWG] CALL FOR ADOPTION: draft-reddy-opsawg-mud-tls

2020-09-18 Thread Eric Rescorla
On Fri, Sep 18, 2020 at 3:12 PM Michael Richardson 
wrote:

>
> ekr> Taking a step back from details, ISTM that the whole design of this
> ekr> document is antithetical to extensibility:
>
> I agree.  It was my first reaction as well.
> I then had another thought: there are dozens of entities out there that
> want
> to do this regardless, enough that it broke the TLS version system
> requiring
> the hack. (Does that hack have a name?)
>

There are actually two things here:

1. Changing the version system -- this was done mostly to accommodate
broken servers.
2. Compatibility mode (hiding the HRR, fake CCS, etc.) -- this was designed
to work around
broken middleboxes.


We can call them stupid, or we can try to understand their point of view,
> and
> try to help them be less stupid.
>

I don't believe that my note calls them stupid.

In any case, ISTM that the design principle that both 1.3 and QUIC have
converged on is
to opaque-ify as much of the handshake as possible, thus discouraging
passive protocol
enforcement of this kind.



ekr> TLS is a protocol with a number of extension points. What this document
> ekr> does is allow an endpoint to restrict its use of a certain set of
> ekr> extension points. However, the language provided here is
> insufficiently
> ekr> rich to allow the client to properly describe the use of those
> ekr> points.
>
> assuming that some language could be provided that was sufficiently rich,
> would your objection continue to stand?
>

I think it's quite likely that that language would have to be
Turing-complete. I note that
the current language is already very complicated and yet insufficiently
rich.


> ekr> As a concrete example: for extensions the model knows about
> ekr> (e.g., supported_versions) you can indicate the contents of the
> ekr> extension, but for extensions the model does not know about (e.g.,
> ECH)
> ekr> you cannot. That means that you're either stuck with allowing anything
> ekr> in those extensions (which means that your filtering effectiveness is
> ekr> reduced) or you don't allow those extensions, in which case you
> create ossification.
>
> ekr> As a thought example, consider a hypothetical TLS 1.4 which decided to
> ekr> adopt QUIC-style obfuscation of the CH and SH, putting the obfuscated
> ekr> CH/SH in extensions in a stereotyped outer CH/SH. The system described
> ekr> here would be unable to do anything useful with that, which creates
> ekr> pressure to block TLS 1.4 entirely, which obviously is not awesome.
>
> I believe that without a mechanism described in this document, many
> enterprises may conclude that they need to block TLS 1.3.
>

Perhaps you mean some hypothetical TLS 1.4?

There is already very widespread deployment of TLS 1.3 for HTTPS and
blocking it would cause breakage of a large number of sites. Perhaps you
could safely do it for non-443 ports...



> ekr> If we want to pursue this kind of idea -- and I'm not at all sure we
> ekr> should -- ISTM that rather than trying to invent some new DSL for
> ekr> filtering TLS we allow the client (who by hypothesis is trusted as to
> ekr> what it will generate) to provide a general program that the middlebox
> ekr> can interpret that will describe what it will do. For instance, you
> ekr> could provide a WASM file which gets fed the CH and just says "this is
> ekr> me" or "this doesn't look like me". That way we don't need to continue
> ekr> extending the language here whenever TLS evolves. Note that that
> doesn't
> ekr> prohibit having a language like this as a programming convenience, but
> ekr> it wouldn't restrict the semantics of what you could say about the
> ekr> connection.
>
> We don't have to have the client provide it, it can be encoded by the
> manufacturer in the MUD file, assuming that it depends upon the model, not
> some local decision in the client.


Sorry, yes. I meant "client" in the sense that the client tells the
middlebox what rules to use. Whether it does so directly or by reference to
the manufacturer doesn't seem to matter too much for these purposes.



> The idea of having a WASM file is an
> interesting one, but being an executable of a sort, it has other security
> problems.
>

Well, one always has to worry about the security of processing data one
receives from the network, but I'm not sure that the distinction between
the kind of DSL we're talking about here and an executable is really that
sharp. The argument for WASM or something like it is that there has already
been enormous investment in building sandboxed interpreters for it, so one
gets to inherit all of that effort. This is not, of course, to say that the
WASM sandbox will never have vulnerabilities,but one can generally not say
that about any software.

-Ekr
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls