Hi Sean,
Thanks for the detailed review. This'll all go into the next revision of
the draft.
Best,
Yaron
On 10/03/2014 12:20 AM, Sean Turner wrote:
Is this what you were looking for:
Hi authors,
I’ve recently read the -04 version of the draft and have a couple of couple and
some
questions comments. I guess I’d categorize the comments as editorial but this
draft is
about explaining things to non-sec folks I hope you’ll entertain them:
0) s1, para1:
- If I weren’t a security guy I might ask what on earth are AES-CBC and RC4
(beyond
some well-intentioned IESGer asking you to expand the acronyms).
- The 2nd sentence talks about its most common suites/modes and then it’s
repeated
in the 3rd sentence - there’s probably no need to repeat in the context of TLS.
- "which together comprise most current usage” I think is saying are widely
deployed.
- I’d also just use see [] instead of the extra sentence.
- Maybe just put the bridge between the 1st paragraph and the rest of the intro
in
para 1.
how about:
Transport Layer Security (TLS) and Datagram Transport Security Layer
(DTLS) are widely used to protect data exchanged over application
protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the
last few years, several serious attacks on TLS have emerged,
including attacks on its most commonly used cipher suites and modes
of operation, e.g., AES-CBC and RC4 have been attacked (see
[I-D.ietf-uta-tls-attacks]). To address these attacks, this document
provides
guidance to those who implement and deploy TLS and DTLS.
1) s1, para 2-4 and s2:
Actually now that I read farther, it seems like this draft ought to tell you
who it’s for,
what it’s for, and how it’s going to do it. It also seems like the intro and
audience
section ought to be combined to cut down on some of the duplication. Might I
suggest:
adding the following the end of the 1st para:
Unless otherwise noted, these recommendations apply to both TLS and DTLS
implementations prior to version 1.3; TLS 1.3, when standardized and deployed
in the field, should resolve the current vulnerabilities while providing
significantly better functionality.
and then follow on with:
The deployment recommendations address the operators of application
layer services that are most commonly used on the Internet, including
but not limited to:
o Operators of WWW servers that wish to protect HTTP with TLS.
[spt: The bullets ought to be parallel.]
o Operators of email servers who wish to protect the application-
layer protocols with TLS (e.g., IMAP, POP3, or SMTP between client
and server).
o Operators of instant-messaging services who wish to protect their
application-layer protocols with TLS (e.g. XMPP or IRC between
client and server).
[spt: IRCS is listed here and SIP is listed in para1 - intentional?]
Stricter recommendations can be specified by individual protocols and
when specified deployers adhere to them.
[spt: I don’t think you need the MUST here. Deployers will just do implement
the stricter recommendations.]
The implementation recommendations address the options that TLS and
DTLS implementations make or not make available to deployers.
The recommendations address the utilization of all of the security services
provided by TLS, which include the following three services:
o Confidentiality: all (payload) communication is encrypted with the
goal that no party be able to decrypt it except the
intended peer.
o Data integrity: any changes made to the communication are
detectable by the peer.
o (optionally) Authentication: the peer is the intended entity to which
communication is desired. TLS support authentication of one or
both peers (i.e., server authentication or server and client
authentication).
This document does not address the rare deployment scenarios where
one of these three properties is not desired. In fact, it is so rare that
deployers
need to verify carefully consider why they need to deviate from the
recommendations provided in this document. An example of an audience
not needing confidentiality is the following: a monitored network where the
authorities in charge of that traffic domain require full access to
unencrypted
(plaintext) traffic, and where users collaborate and send their traffic in
the
clear.
The recommendations herein take into consideration the security of
various mechanisms, their technical maturity and interoperability,
and their prevalence in implementations at the time of writing.
For example, this document calls for the deployment of algorithms
that are widely implemented but not yet widely deployed.
Community knowledge about the strength of various algorithms and
feasible attacks can change quickly, and experience shows that a
security BCP is a point-in-time statement. Readers are advised to
seek out any errata or updates that apply to this document.
and then just renumber the remaining sections.
2) s4.*: seems like we should be consistent about the use of requirement
followed by rationale. Not all of the sections follow the same script.
3) s4.1:
a) It seems like the base rationale is support AEAD algorithms so that leads us
to TLS 1.2. It seems like we ought to just say that as opposed to leaving it to
a later section.
b) r/SSLv2 is considered today as insecure [RFC6176].
/Today, SSLv2 is considered insecure [RFC6176].
c) ssl3: The rationale for SSLv3 not supporting some extensions begs the
question - which ones.
d) You could also tweak the intro a little:
It is important both to stop using old, less secure versions of SSL/
TLS and to start using modern, more secure versions; therefore, the following
are the recommendations concerning TLS/SSL protocol versions:
4) s4.2: This section kind of comes out of nowhere. Maybe make 4.1 4.1.1. for
SSL/TLS Protocol Versions and then make s4.1.2. DTLS Protocol Versions and then
you can use the same layout:
The following are the recommendations with respect to DTLS:
o Implementations MAY negotiate DTLS version 1.1 [RFC4347].
o Implementations MUST negotiate DTLS version 1.1 [RFC6347].
Rationale: DTLS is an adaptation of TLS for UDP datagrams that was
introduced when TLS 1.1 was published. Version 1.0 correlates to TLS 1.1
and Version 1.2 correlates to TLS 1.2. There is no DTLS 1.1 or “DSSL"
equivalent.
NOTE: DTLS and TLS are nearly identical. The most notable exception is that
RC4, which is a steam-based bulk encryption algorithm, cannot be supported by
DTLS.
5) s4.3: Two things:
a) Is the section title right - if it’s SSL or TLS fallback maybe we can just
call it “Fallback”.
b) I think we should stick to the requirement followed by rationale where we
can:
Clients that “fallback" to lower versions of the protocol after the server
rejects higher versions of the protocol to MUST NOT fall back to SSLv3.
Rationale: Some client implementations revert to lower versions of TLS or
even
to SSLv3 if the server rejected higher versions of the protocol.
This fall back can be forced by a man in the middle (MITM) attacker.
TLS 1.0 and SSLv3 are significantly less secure than TLS
1.2, the version recommended by this document. While TLS 1.0-only
servers are still quite common, IP scans show that SSLv3-only servers
amount to only about 3% of the current Web server population.
6) s4.4: I read the attack in uta-attacks draft and it’s a little more
complicated than expressed in the 1st sentence. I would do the following:
To prevent SSL stripping:
and have the bullets
follow that with the Rationale: paragraph. It never really explains how it
protects - i.e., everything is integrity protected so you’d notice if something
changed.
7) s4.5: Again requirement followed by rationale:
Implementations and deployments SHOULD disable TLS-level compression
([RFC5246], Sec. 6.2.2).
Recommendation: TLS-level compression has been subject to security attacks …
8) s4.6-8: probably sounding like a broken record: requirement followed by
rationale.
9) s5: I think some of the intro para is a bit strong. Some suites are weak,
some are just fine they just don’t give you all the services we’re targeting:
TLS and its implementations provide considerable flexibility in the
selection of cipher suites. Unfortunately, some available cipher
suites are insecure, some do not provide the targeted security
services, and some no longer provide enough security. Incorrectly
configuring a server leads to no or reduced security. This section
includes recommendations on the selection and negotiation of
cipher suites.
10) s5.1: I think we really ought to drive it home that stuff needs to be
updated, so how about we add a bit more to the intro:
Cryptographic algorithms weaken overtime as cryptanalysis improves. In other
words, as time progresses, algorithms that were once considered strong but
are
now weak need to be phased out over time and replaced with more secure
cipher suites to ensure the . SSL/TLS has been in existence for almost 20
years
at this point and this section provides some much needed recommendations
concerning cipher suite section:
11) s5.1 null cipher suites: I assume you’re referring to the NULL encryption
cipher suites and not the TLS_NULL_WITH_NULL_NULL. It’s probably more precise
to say:
Implementations MUST NOT negotiate the cipher suites with NULL encryption.
and maybe we could make the rationale slight more scary:
Rationale: The NULL cipher suites does not encrypt traffic. It provides
no confidentiality services. Any entity in the network with access to the
connection can view the contents being exchanged by the client and
server unaided.
12) s5.1 RC4 might be worth noting RC4 isn’t available to DTLS - maybe not not
sure.
13) s5.1 40-bit and 112 bits: I think you can lump these two together and
provide one rationale based on RFC 3766, which provides a rule of thumb for
bits of security:
Implementations MUST NOT negotiate cipher suites
offering less than 112 bits of security including the so-called
"export-level” encryption that provide 40 or 56 bits of security.
[spt: I let you fill in the # below.]
Rationale: Based on [RFC3766], X bits of security is needed. 40-bit
and 56-bit security are considered insecure today. TLS 1.1/2 never
negotiate 40-bit or 56-bit export ciphers.
14) s5.1 128-bit recommendation: I’d move the 2nd and 3rd sentence to the
rationale.
15) s5.1 128-bit rationale: I have to admit I’m a little confused by the first
sentence in the rationale. Which cipher suites the ones between 112-128 or
128? How about:
Rationale: Cipher suites that offer between 112-bits and 128-bits of security
are not considered weak at this time, it is expected that their useful
lifespan
is short enough to justify supporting stronger cipher suites at this time.
128-bit ciphers are expected to remain secure for at least several years,
and 256-bit ciphers "until the next fundamental technology breakthrough".
Note that
some legacy cipher suites (e.g. 168-bit 3DES) have an effective
key length which is smaller than their nominal key length (112
bits in the case of 3DES). Such cipher suites should be evaluated
according to their effective key length.
16) s5.2: I’d delete the paragraph after the bullets - it’s about negotiation
and it’s repeated in s5.3.
17) s5.2: Is it worth noting somewhere in s5.2 that this is only really going
to work if the deployer configures their client/server to order these suites
somehow?
18) s5.3: If this section is targeted just at stack implementers maybe it
should say so.
19) s5.4: There should be an introductory paragraph to note that there are two
kinds of public keys used: one for key agreement and one for authentication.
With the definition of bare keys should the authentication requirement be
generalized to include 2048-bit keys?
20) s5.5: It’s unclear to me what “the same cipher suite” is in bullet 3. It
would be clearer to just repeat it.
21) s5.6: Start with the recommendation end with the Rationale:.
22) s7.2: r/Sec. Section 5.2/Section 5.2
spt
_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta
_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta