Re: Last Call: <draft-dukhovni-opportunistic-security-01.txt> (Opportunistic Security: some protection most of the time) to Informational RFC

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

 



On Fri, Jul 25, 2014 at 06:19:34PM -0400, Dave Crocker wrote:

>    1.  In a technical context the word 'security' is, at most, an
> umbrella term that encompasses a range of possible capabilities, such as
> integrity, authentication, encryption and so on.  By itself, the word
> has no technical meaning, other than as a reference to an "area" of
> technical work.
> 
>        Consequently the term "opportunistic security" falls somewhere
> near the intersection of meaningless, confusing and wrong.  We do not
> serve technical or non-technical communities well by using terminology
> that is so vague or misleading (or both.)

The term "opportunistic security" is defined as an umbrella term,
so if "security" is an umbrella term, there is no conflict.  I
should note that "TLS" is "transport layer security", not "transport
layer encryption", and TLS also can be used for a range of capabilities
ranging from:

    $ openssl ciphers -v 'eNULL+aNULL'
    AECDH-NULL-SHA          SSLv3 Kx=ECDH     Au=None Enc=None      Mac=SHA1

which provides only message integrity (without authentication!) all the
way to bleeding-edge:

    # openssl ciphers -v 'kECDHE+aECDSA+AESGCM+AES256'
    ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD

which given a suitably secure selection of curves provides PFS,
ECDSA authentication, and strong encryption with authenticated
message integrity.

Given the long discussion on [saag], I think we have rough consensus on
"opportunistic security" as an acceptable choice of name.


>        I believe at least one other note did raise the possibility that
> the term might /also/ include authentication -- distinct from
> encryption.  While that's a reasonable idea on its own, it does not
> appear to be consonant with any of the discussion around opportunistic
> encryption.  So I suggest it be deferred.

I'll do whatever it takes to emphasize that the definition is NOT
to be mistaken for just "encrypt when possible" (without authentication).
The term is intentionally *opportunistic security*, not just
mitigation of passive intercepts.

In particular, one important example of "opportunistic security"
is opportunistic DANE TLS in the DANE WG SMTP draft.  Here for
domains that publish DNSSEC "secure" MX records and TLSA RRs for
the associated MX hosts, the client authenticates the SMTP server
and the protocol is resistant to various MiTM/downgrade attacks.

And yet it is opportunistic, because DANE authentication applies
when possible, and otherwise the SMTP client employs legacy
opportunistic TLS, which may even transmit in cleartext when
the peer does not appear to support STARTTLS.

It is my hope that promoting "opportunistic security" not be
tantamount to promoting abandoning authentication.  Sure we
want to *at least* encrypt, when possible, but that is *not*
the maximal security we should aim for.  We should be looking
to deploy protocols that offer a range of capabilities, and
should deploy designs in which peers strive to eke out as
much security (umbrella term) as possible.

>    2.  The document says it is providing a definition, but it does not
> do that.  It needs to.

Here I am open to improved language that sums up the design principles
characteristic of opportunistic security into a definition.  We
should be mindful of the fact that the term is an umbrella term,
and the "definition" cannot precisely define behaviour, rather
it needs to define a design approach.

>       Fortunately, the draft provides some text that looks like a good
> basis for a definition, which I've mildly reworked into:
> 
>          Opportunity encryption is an umbrellas term for efforts
>          to increase the use of encryption by permitting variable
>          protection strength during a session. It attempts to use
>          the strongest capability possible, but permits falling back
>          to a weaker option. In particular it permits the use of
>          unauthenticated encryption when authentication is not
>          available.

Suggestions to the specific language that make the definition more
clear are definitely welcome.  I am not ready to adopt the above
text in preference to the current version.

>    3.  The draft variously permits or prohibits use of cleartext within
> the context of the defined term.  This needs to be resolved, and carefully.
> 
>        My own sense from the saag discussions and the draft is that
> there is tendency to conflate 'what opportunistic encryption is' with
> 'what is permitted in a session that attempts opportunistic encryption'.
>  It other words, it is confusing the thing with the context in which the
> thing is occurring.

Protocols that employ opportunistic security may include fallback
to cleartext, where necessary for interoperability with existing
or unavoidably less capable systems.  If there are specific places
where this is unclear, I'd be more than happy to clarify.

>        For simplicity and utility, I suggest that the term opportunistic
> encryption always refer to actual encryption, with the note that when no
> encryption is possible in a /session/ it might be permitted to fall back
> to cleartext.

Opportunistic security is an umbrella term for protocol designs
that strive to interoperate at the maximum available "security"
with a given peer.  Once we have some specific form of encryption,
or authentication, the adjective "opportunistic" is no longer
applicable.  "Opportunistic" is about the willingness to find a
mutually agreeable security mechanism, it is not the mechanism
itself once the choice is made.

Therefore, I am advocating essentially the opposite view.  Encryption
is just encryption, it may or may not be unauthenticated.
Opportunistic security is a flexible policy, which may leads to
encryption, possibly authenticated, or may lead to cleartext.
Neither cleartext, nor unauthenticated encryption, nor authenticated
encryption are "opportunistic".

>    4.  The draft's references to authentication are almost certainly
> meant to be limited to server-side authentication.

No.  There are potential opportunities for opportunistic authentication
of clients also, exploring this question in the context of DANE is
part of the new DANE WG charter.

> That is, the
> authentication that is attempted is of the side being contacted.  As I
> understand actual Internet practices, mutual or client authentication is
> typically NOT part of the process when setting up authenticated
> encryption.  This needs to be clarified in the text.

A recent discussion of the draft mentioned "strategic ambiguity",
I think it is relevant here.  We're not circumscribing the capabilities
of the peers or limiting the scope of security services that
opportunistic security can provide.

>    5.  The document uses the term 'strong' as a form of protection, but
> doesn't really define it. However it seems to be used with some
> significant meaning intended.  The term gets used frequently an casually
> about security, but here it seems to be intended to have a specific
> meaning.  That meaning should be provided explicitly.

The intention is that "strong" means roughly comparable to the
protection provided by existing non-opportunistic designs, thus
generally resistant to most passive and active attacks.  Some
strategic ambiguity is also appropriate here.

-- 
	Viktor.





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