[TLS] I-D: CipherSuites for Kerberos + DH

2015-10-11 Thread Rick van Rein
Hello TLS WG,

I would like to propose new CipherSuites for TLS.  The cryptography is
founded on Kerberos authentication and DH encryption, cryptographically
bound together.  The mechanism uses mutual authentication, although
clients may use anonymous tickets.

Any feedback that you may have (technical, or WG-procedural) is kindly
welcomed.  I will also send this to the Kitten WG.

Thanks,
Rick van Rein
> *From:* internet-dra...@ietf.org
> *Date:* 1 October 2015 18:54
> *To:* "Rick van Rein" , "Rick van Rein"
> 
> *Subject:* New Version Notification for draft-vanrein-tls-kdh-00.txt
> A new version of I-D, draft-vanrein-tls-kdh-00.txt
> has been successfully submitted by Rick van Rein and posted to the
> IETF repository.
>
> Name: draft-vanrein-tls-kdh
> Revision: 00
> Title:TLS-KDH: Kerberos + Diffie-Hellman in TLS
> Document date:2015-10-01
> Group:Individual Submission
> Pages:26
> URL:
> https://www.ietf.org/internet-drafts/draft-vanrein-tls-kdh-00.txt
> Status: https://datatracker.ietf.org/doc/draft-vanrein-tls-kdh/
> Htmlized:   https://tools.ietf.org/html/draft-vanrein-tls-kdh-00
>
>
> Abstract:
>This specification extends TLS with a Kerberos-based method of mutual
>authentication, and binds in Diffie-Hellman to achieve Perfect
>Forward Secrecy for the session.

> The IETF Secretariat
>

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


Re: [TLS] I-D: CipherSuites for Kerberos + DH

2015-10-11 Thread Rick van Rein
Hello,

Thanks for the feedback.  Responding to it:

Ilari>   - The signed DH share does not look to be bound to anything (crypto
Ilari>   parameters negotiation, randoms, server key exchange, etc..).

This is indeed easy to miss; it relies on Kerberos infra to deliver a
short-lived session key to only the proper TLS client and TLS server.
The ticket is part of this key delivery, and can travel over untrusted
networks.

An Authenticator is built especially for each connection, and encrypted
with the session key by the TLS client.  The only other that can decrypt
it is the TLS server.  With the client DH key only known to TLS client
and TLS server, only they can construct the DH shared secret.

What remains is MITM on the server side.  This is detected when the
Finished messages are off (these have more bytes for TLS-KDH).

A alternative option to fighting MITM could be to include (a hash of)
the server-sent DH offer in the Authenticator.  Only the Kerberos-
authenticated TLS server can decrypt it, making it detect MITM.  Is
that considered benefial?

Ilari>   I can't
Ilari>   offhand say what that would lead to, but it looks even worse than
Ilari>   TLS ServerKeyExchange, which has known vulernabilities due to
Ilari>   lack of binding to things like ciphersuite.

Have I taken away these concerns?  Pointers to the known vulnerabilities
are welcome, of course.  I'm not sure what you would like to bind to
CipherSuites.

Watson>   I would suggest piggybacking on the PSK mode, using the key Kerberos
Watson>   provides at both ends as the PSK key. This would address all of these
Watson>   issues in TLS 1.3

You mean to add the short-lived session key to the pre-master secret, right?

I have a (weak) preference to leave that key behind the API to help
it being better protected.  Also, I don't think it adds much to
the security explained above.

It might be an idea to add protected fields from the Authenticator though,
such as the usec timestamp, seq-number, client name@realm.

Ilari>   - The ciphersuite list looks bad: 1) IDEA (bad idea), CBC
Ilari>   (don't use), apparent SHA-1 prf-hash (REALLY bad idea)[1][2].

Yes, this is a naive/initial list, I knew I would need to interact here
to get it pruned.  Thanks, your suggestions will be taken care of!

Ilari>   - Even use of DH is questionable.

This is mod-exp DH, on account of its need for very large keys, right?

I would love to take it out, and only leave ECDH; I put up mod-exp DH
initially because it might be desired for backward compatibility.  If
I hear no warm-felt desire for mod-exp DH I will gladly remove it.


Thanks!
 -Rick



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


Re: [TLS] I-D: CipherSuites for Kerberos + DH

2015-10-12 Thread Rick van Rein
Hello Ilara / Watson / TLS WG,

Thanks again,

If I was to do things like the current proposal (as opposed to
overloading DHE-PSK), I would put in hash of entiere client and server
first flights.

Now I see what you mean.  Indeed, the master secret used in Finished
does not take it into account in TLS 1.2, except under RFC 7627.
>  
>
> The SKE security issue (SKE isn't bound to the ciphersuite) has surfaced
> at least three times:
>
> 1) The DHE/ECDHE confusion.
> 2) FREAK
> 3) Logjam

Thanks, those are very good reasons indeed :)
>> Watson>   I would suggest piggybacking on the PSK mode, using the key 
>> Kerberos
>> Watson>   provides at both ends as the PSK key. This would address all of 
>> these
>> Watson>   issues in TLS 1.3
> I think he means stuffing the key from kerberos as PSK input in
> (EC)DHE-PSK ciphersuite.

That is not going to work for this.  PSK communicates untyped blobs,
which makes the server take a leap of faith, and so it is pretty much
limited to internal use.  I'm working on getting Kerberos to crossover
between realms, and TLS-KDH might become the killer app for that.

The key-handling approach of PSK got me thinking though (pre-master =
DH-shared-secret + preshared-key).  It is a strikingly simple method to
make (EC)DH orthogonal to the authentication exchange.  It means all the
DH-specifics can go... perhaps 75% of my text!
>> Ilari>   - Even use of DH is questionable.
>>
>> This is mod-exp DH, on account of its need for very large keys, right?
>>
>> I would love to take it out, and only leave ECDH; I put up mod-exp DH
>> initially because it might be desired for backward compatibility.  If
>> I hear no warm-felt desire for mod-exp DH I will gladly remove it.
>
> Backward compatiblity? I don't think you need such thing with proposal
> like this.

I am now preparing a new form, with ClientCertificate := krbTicket and
CertificateVerify := krbAuthenticator.  That seems to integrate really
well with the rest of TLS, also for 1.3.
 * the Authenticator hashes all prior messages and stores them in
"checksum", leading to the requested binding
 * the CertificateRequest can ask for various forms of authentication,
even mixing Kerberos and X.509
 * there will be Kerberos-only CipherSuites (mutual exclusion, so this
authenticates the server) but it can also work with TLS_ECDHE_RSA_ et al
 * the TicketRequirementFlags will be a TLS Extension during ClientHello
/ ServerHello

Rather different -- so a new text is coming up.

-Rick

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


Re: [TLS] I-D: CipherSuites for Kerberos + DH

2015-10-12 Thread Rick van Rein
Hello Benjamin,

> This would seem to require an application protocol doing some Kerberos
> exchanges up front to establish the Kerberos session key before pivoting
> into TLS-PSK in a STARTLS-esque fashion. If that's what the application
> protocol would look like, it seems like there's no reason not to go
> full-on GSSAPI with GSS_Pseudo_random to extract a PSK on both sides.

GSSAPI is too general IMHO; it specifies an unpredictable number of exchanges 
and TLS cannot carry that.

An attempt for SASL-in-TLS was made in draft-williams-tls-app-sasl-opt, but it 
ends up piggybacking on TLS but continue afterwards -- loosing the 
cryptographic 
binding between auth from Kerberos with PFS from (EC)DH.

> This proposal (as complicated as it is, and I'm not sure that I'm
> entirely comfortable with it yet) has the comparative advantage that the
> application speaks TLS from the start, with the Kerberos messages
> included in the TLS CKE. In that sense, at least, it is elegant.

Thanks. The proposed changes greatly simplify the spec, making all DH 
orthogonal 
to the spec.  Watson convinced me and now I can pull a lot from the I-D, which
is also more complex than I like.

> This proposal also includes a generic mechanism for the server to
> indicate what service type and hostname should be used in constructing
> the host-based service principal name for Kerberos, which is useful --
> the convention for that would otherwise have to be baked into the
> application protocol.
>

Actually, I did not specify such a mechanism.
* Client and server assume that the application context knows what protocol it 
  is using. AFAIK that always makes sense -- on top of TLS we're running 
something 
  like imap, and imap knows that its tickets start with "imap/".
* The hostname is known to the client too, it is usually included in the SNI 
  extension, looked up in DNS, ...
* However, the realm is "supposed to be derived independently" which can be done
  with the DNSSEC-assured _kerberos TXT that we discussed on Kitten.

> The considerations around client anonymity and a
> protocol for the server to convey its expectations are also interesting,
> though I'm not sure I would have put it in the -00 if it was my own
> document.

OK :) but this was simpler than the loose end in predecessors -- sending no
ticket and deciding how the server would respond to that.  But it is a new
idea, to have authenticated clients with unknown identities...

> There are some nits in the Kerberos bits that I might mention over on
> kitten.

Great, thanks!

-Rick

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


[TLS] Design Alternatives for Kerberos + DH

2015-10-16 Thread Rick van Rein
Hello,

Based on the feedback in this WG, I'm now redefining TLS-KDH to keep ECDH and 
Kerberos orthogonal.  That simplifies matters enormously.  I can now see a few 
design alternatives.  If you have any response to them, it is kindly 
appreciated!


1) Continue to use KeyExchange

This variation sends a Ticket + Authenticator in the ClientKeyExchange, but
DH is now mentioned in plaintext instead of encrypted in the Authenticator.

PRO: Prior handshake can be taken into account in an Authenticator hash (a.k.a. 
"checksum").

CON: Special case for KeyExchange; doesn't integrate automatically with TLS 1.3.


2) Embed the Ticket + Authenticator in a PSK

This uses the binary blurb of the PSK to wrap the Ticket and Authenticator.

PRO: Client authenticates very early, in the ClientHello.

CON: PSK is untyped, so it requires separate agreement on the contents.  It is 
impossible to incorporate ServerHello information in the exchange.  The server 
has not indicated if it supports Kerberos, so the client must make a leap of 
faith.  PSK replies the selected PSK identifier, rather than send a response 
message; it is not designed for messaging purposes.


3) Similar to OpenPGP: Negotiate cert-type

There is a cert-type for X.509 and for OpenPGP; add one for Kerberos Tickets.

PRO: Good integration with TLS: Tickets are transported in the 
ClientCertificate, and an Authenticator is the ClientVerify.  DH is independent 
and can move to the earlier phase for TLS 1.3.

CON: Decision on client credential type must be made in ClientHello, when not 
all data may be available (namely, the sequence of tickets leading to the 
TLS-protected service).  Also impacts the cert-type used in the ServerCert.


4) Define an X.509 embedding for Tickets

Certificates provide an id/key binding with a signature by a trusted party; 
although the AlgorithmIdentifiers used here are new, they do fit in the X.509 
framework.  This is rather out-of-the-box thinking, so I tested the idea, see 
https://github.com/arpa2/kerberos2pkix

PRO: Minimal changes to TLS, since Kerberos is now a signing algorithm.  The 
server can independently authenticate using RSA & co (on top of Kerberos' 
mutual authentication).  Ticket + timestamp-Authenticator go into an X.509 
ClientCertificate, and an Authenticator including the hash over prior TLS 
messages can go into ClientVerify.  CertificateRequest can mix options for 
Kerberos, RSA, and so on, and client selects whatever it can get to locally, 
giving the best user experience.  We can also support user-to-user connections 
and S4U2Proxy a.k.a. "Constrained Delegation".

CON: These certificates are symmetrically keyed, which is uncommon.  
Certificates are not readable to anyone, but only to the remote peer.  
Certificate owner is ideally read from the embedded ticket, rather than from 
the subject field.


My money is on the last two, but option 4. really needs feedback because it is 
a bit wild.  When I get an idea where to go, I will be happy to write a new 
draft version... a much smaller and simpler one this time!

Cheers,
 -Rick

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


Re: [TLS] Design Alternatives for Kerberos + DH

2015-10-16 Thread Rick van Rein
Hello Paul,

>> 3) Similar to OpenPGP: Negotiate cert-type
>>
>> There is a cert-type for X.509 and for OpenPGP; add one for Kerberos
>> Tickets.
>
> How is this type of TLS connection prevented from being MITM'ed by
> someone replaying kerberos tickets (which it cannot read itself)

In Kerberos, the KDC-generated and client-cached Tickets are always sent with 
an additional Authenticator; this is client-signed message that is generated 
while sending and holds a timestamp to the ms level.  The combination is 
rejected when the timestamp is more off than a small clock skew window at the 
server.  Replay is avoided in Kerberos by observing the Authenticator's 
uniqueness within that small window.  This however, has scaling problems, for 
instance in redundant server farms.

An Authenticator can hold a "checksum", which is a hash nowadays.  We can use 
this field to store a hash of the prior TLS messages, including the ECDH 
exchange and ServerRandom.  This is already done by default in the 
ClientVerify, so nothing special needs to be done for that.  The hashes are 
typed, with an IANA registry; unkeyed hashes are possible, though none beyond 
SHA1 appears to have been needed for its current uses, but we can expand that.

Finally, the pre-master secret for all four design alternatives consists of the 
ECDH session key and the session key exchanged by the Ticket.  Replay of ECDH 
is impossible if the server continually refreshes its offers, at least not to 
be repeated within the clock skew window, which has been a major focus point in 
my 00 draft.  Lacking the session key, an attacker that attempts replay of a 
Ticket will not be able to generate the proper Finished messages.  FWIW, I am 
proposing to extend the sizes of those hashes.

Thanks,
 -Rick

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


Re: [TLS] Design Alternatives for Kerberos + DH

2015-10-16 Thread Rick van Rein
Hello,

>> What messages do you need to transfer for Kerberos? Is it only a ping-pong?

Yes, the plan is to send a Ticket + Authenticator and since the server cannot 
send "pong", to use the (elongated) "Finished" message to replace the 
validating function of the "pong".

> The client (or server, or both) can pick
> a subsession key encrypted by the session key in the Ticket,

Currently, only the client could do this.  We might pile the subsession key 
into the pre-master secret if we decide that it adds to security.

If we really want the server to send one too, it might send a random string of 
the right size, and it could be decrypted to a key.  That's possible with 
symmetric algorithms after all... and after receiving the Ticket, the server 
can do the same to discover its secret subsession key :)

> if
> another message is passed that uses a subsession key for
> confidentiality/integrity (such as a response from the server to perform
> "mutual" (i.e., server) authentication, then there is less need for a
> replay cache.

The key idea in 00 was to not use a subsession key but instead rely on 
Diffie-Hellman for the same function, to avoid replay caches.  Because a replay 
cache would be a devastating part of a TLS infrastructure that could block 
these CipherSuites from being rolled out.

> An additional key-confirmation message to validate the
> server-selected subsession key (such as actual application traffic being
> encrypted in that key) is helpful for the security analysis, but not
> always available depending on the constraints of the application protocol.

It still surprises me, but Kerberos is able to send a message one-way and 
achieve mutual authentication.  The trick is of course that prior key exchanges 
have setup links that make this possible.  That's already been taken care of in 
client apps and libraries, so I'm trying to make good use of it in TLS.

-Rick

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


Re: [TLS] Design Alternatives for Kerberos + DH

2015-10-17 Thread Rick van Rein
Hi Karthikeyan,


> I don’t fully understand the constraints of the Kerberos+DH use-case, but 
> using DHE-PSK seems like the best idea.


It certainly has some virtue to view Kerberos as a preshared key (on
steroids).  But let me explain what bothers me about that appraoch :-

* PSK was designed to carry "hints", not "wrapped-up keys".  It feels
like we'd not be using it entirely properly.

* To avoid replay without (distributed) replay-protection caches, we
need a ping-pong exchange.  PSK sends back a literal copy of what it got
sent, which means that we cannot send back a cryptographic reply. 
Normally, we would do just that in the Kerberos Application Protocol. 
When we have an Authenticator in a separate ClientVerify message, it
automatically ranges over all past TLS messages, incorporating DH,
server random and the Ticket that is being proposed.  With the PSK
approach, it all gets stuffed into one TLS message and we'll be defining
things that are not in line with generic structures for TLS.

* PSK carries untyped information.  This means that a client and server
need out-of-band agreement on the meaning of the PSK format.  And we
probably agree that educated guesses based on magic numbers are not good
for a security protocol.  This means that use of PSK is limited to
pre-arranged client/server combinations.  Meanwhile, Kerberos is hoping
to expand to make clients and services authenticate even when they have
never met before.

> The planned session resumption mechanism for TLS 1.3 also uses DHE-PSK, and 
> uses a session ticket mechanism
> that is not so far from the Kerberos ticket. The Kerberos session key would 
> then get mixed in (as a semi-static secret)
> to the ECDHE shared secret and both client and server would obtain mutual 
> authentication (based on the Kerberos key).

Yes, that is nice and orthogonal.  However, we do need the entropy of
ECDHE and server random to be mixed in with the Authenticator to make
replay undoable.  The best way to do that orthogonally is to rely on a
hash of prior exchanges, which is not possible, at least under 1.2, with
structures that mix Diffie-Hellman and PSK fields.  Combined with this
being a variation of PSK, I would expect it to lead to more exceptional
code than what is being proposed as 3) and 4) -- and exceptional code
often is badly-tested code.


> It may be best to try and fit Kerberos into this existing mechanism, unless 
> there is some fundamental incompatibility.

I follow the same line of thought, but think integration with the
ClientCertificate / ClientVerify is more natural.  Tickets are not just
keys, they also carry identity, and bind them together.  Once again, the
reasoning is that this directs the questions to a TLS stack to the right
place, without a need to bypass it to elsewhere for this one usecase.

Thanks!
 -Rick

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


Re: [TLS] Design Alternatives for Kerberos + DH

2015-10-19 Thread Rick van Rein
Hello Benjamin / TLS WG,

I didn't mean to drop the list, so your full response is hereby included.

>>> No, mutual authentication requires the client to receive a message from
>>> the server.
>> Yes, I know -- the server needs to handle the session key or the subkey
>> to prove posession of its KDC-stored service key.  By using it, the client
>> can be convinced or server identity.
>
> Good to hear.  Other readers, perhaps, did not.

>>> This could be implicit
>> I think it automatically is with TLS, since the Finished messages won't
>> succeed until both parties have derived the same master secret, which
>> if it involves the session key or subkey proves the server's identity in an
>> implicit manner.
>
> From just your short descriptions, it was unclear to me what exactly
> went into the master secret from the Kerberos side, so I wanted to be sure.

Yes, balancing with terseness.  The master secret is calculated as
always, incorporating the pre-master secret as well as client/server
random and, under RFC 7627, all of the handshake messages up to and
including ClientKeyExchange.

The pre-master is the combination of the ECDH shared secret and the
session key(s) from Kerberos.  For the latter, we can choose one or more
from:
 * The session key generated by the KDC for this client/server
combination session (lasting as long as the service ticket, usually
about a day)
 * A subkey inserted into the Authenticator by the client for this
particular connection (which can avoid replay during ticket life)
 * Possibly: a random byte string from the server, "decrypted" with the
session key, to form a connection-specific key that hinges on
server-side entropy

I think my preference would be a combination of 2nd and 3rd because that
incorporates entropy from both sides; although entropy from both sides
is also incorporated through the ClientHello and ServerHello Random
bytes, these are not encrypted to conceal it from MITM as in the 2nd and
3rd options.  This is a bit paranoid perhaps --the ECDH mechanism
achieves a similar thing already-- but the appeal of 2nd and 3rd as very
light-weight and makes it much more difficult to crack.
>> I do believe a long-enough Finished message is required though.  For
>> the TLS_ECDHE_KRB_ CipherSuites I've proposed a verify_data_lenth
>> to match the required certainty from the message; if we mix Kerberos
>> client "certificates" info other CipherSuites like TLS_ECDHE_RSA_ then
>> a client SHOULD negotiate a high-enough value and the server MUST
>> support that.  It requires TLS 1.2 to do these things.
>>
>
> Well, hmm, that's an interesting question.  (Note, of course, that the
> current Kerberos AES enctypes only use 96 bits of HMAC-SHA1 for their
> MIC.)


Keyed hashes such as HMAC-SHA1 don't seem to add much here, and they
would have a grave impact on how the hashes are calculated in TLS stacks
(because the key is only known later in the exchange).  I would suggest
that we follow TLS' hash preferences, since we are going to rely on
those hashes having been computed through the prior exchange of TLS
messages, and add those to the IANA Registry for Kerberos Checksum Type
Numbers; this currently includes SHA1 and I doubt that anyone would
protest to extensions with stronger unkeyed hashes.


> The client can obtain information indicating that the server has
> the correct Kerberos key both from the decrypted contents of the
> Finished message

I assume you meant "by matching the Finished message with one generated
locally".

> and also from the integrity protection of the
> TLSCiphertext, since both use material derived from the master secret. 

Yes, TLSCiphertext is also protected, but my main concern is with
Finished, because I would not like accept a TLS connection under
doubtful circumstances, just to be OK when an application only sets up
TLS as a means of authentication.  With the longer Finished messages,
that would not happen.

> So I guess I'm not yet convinced that the verify_data_length should be
> twice the bitlength of the negotiated symmetric cipher, but perhaps I'm
> missing something obvious.

I'm not sure if it should be 1x or 2x the cipher length.  Most important
to me is that it must be longer than the 12 bytes that were standard up
to TLS 1.1 and default in TLS 1.2.

-RIck

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


Re: [TLS] Design Alternatives for Kerberos + DH

2015-11-01 Thread Rick van Rein
Hello Benjamin,

> No, mutual authentication requires the client to receive a message from
> the server.

Yes, I know -- the server needs to handle the session key or the subkey
to prove posession of its KDC-stored service key.  By using it, the client
can be convinced or server identity.

> This could be implicit

I think it automatically is with TLS, since the Finished messages won't
succeed until both parties have derived the same master secret, which
if it involves the session key or subkey proves the server's identity in an
implicit manner.

I do believe a long-enough Finished message is required though.  For
the TLS_ECDHE_KRB_ CipherSuites I've proposed a verify_data_lenth
to match the required certainty from the message; if we mix Kerberos
client "certificates" info other CipherSuites like TLS_ECDHE_RSA_ then
a client SHOULD negotiate a high-enough value and the server MUST
support that.  It requires TLS 1.2 to do these things.

-Rick

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


Re: [TLS] [Technical Errata Reported] RFC5054 (4546)

2016-01-19 Thread Rick van Rein
Hello,

Could I bring this erratum reported in November to your attention once
more?  I think it calls for correction.

Thanks,
 -Rick
> RFC Errata System <mailto:rfc-edi...@rfc-editor.org>
> 30 November 2015 at 17:02
> The following errata report has been submitted for RFC5054,
> "Using the Secure Remote Password (SRP) Protocol for TLS Authentication".
>
> --
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=5054&eid=4546
>
> ----------
> Type: Technical
> Reported by: Rick van Rein 
>
> Section: 2.6
>
> Original Text
> -
> B = k*v + g^b % N
>
> Corrected Text
> --
> B = ( k*v + g^b ) % N
>
> Notes
> -
> The customary binding is that + has lower priority than % and so the
> default reading of the expression would be
> B = k*v + ( g^b % N )
> That is inconsistent with the existence of PAD(B) and the size of B in
> the test vectors, so the context hints at proper brackets, but this
> may still lead to implementation errors (of which I actually ran into
> an example).
>
> Instructions:
> -
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary.
>
> --
> RFC5054 (draft-ietf-tls-srp-14)
> --
> Title : Using the Secure Remote Password (SRP) Protocol for TLS
> Authentication
> Publication Date : November 2007
> Author(s) : D. Taylor, T. Wu, N. Mavrogiannopoulos, T. Perrin
> Category : INFORMATIONAL
> Source : Transport Layer Security
> Area : Security
> Stream : IETF
> Verifying Party : IESG
>

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


Re: [TLS] SRP ?

2016-02-23 Thread Rick van Rein
Hi,

> Is anyone using SRP with TLS? The OpenSSL implementation in particular?
>
We're considering it too, although not necessarily through OpenSSL.

Also I'd really prefer an ECDH-based formalism; I'm note sure if work on
that is being done, or where.

-Rick

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


Re: [TLS] SRP ?

2016-02-24 Thread Rick van Rein
Hi,

> Although the lack of modern cipher-suites for SRP makes it not very
> attractive these days.
>
Does anyone know if work on something like "ECSRP" is going on, anywhere?

We've recently worked on getting it working with PKCS #11,

https://github.com/arpa2/srp-pkcs11
https://github.com/arpa2/srp-pkcs11/blob/rfc5054_compat/doc/design/srp-pkcs11.pdf

It could be interesting to see if this translates to the Elliptic Curve
arena.

I heard rumours of alternatives being weighed against one another, but
failed to find anything concrete.  Links are quite welcome!

-Rick

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


Re: [TLS] SRP ?

2016-02-26 Thread Rick van Rein
Hello,

g/html/draft-ietf-tls-pwd-


>> The real
>> problem here is that there is no reason not to use certificates in a
>> lot of cases.
>
> when TLS
> is used to protect non-browser traffic there are plenty of cases
> where you won't have an implicit trust anchor database or you're
> going to some server administered by someone who most likely only
> has a self-signed cert

+1

-Rick

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


[TLS] DTLS/SCTP and fragmentation

2021-04-02 Thread Rick van Rein
Hello,

I was looking into DTLS/SCTP as a carrier for Diameter.  Lengths in
Diameter are 24 bit to avoid ever having to bother about that, but when
run over the preferred DTLS/SCTP carrier this may yet be a concern, so
that its only option is to fallback to a _separate_ TLS/TCP connection:

   *  For DTLS over TCP or SCTP, which automatically fragment and
  reassemble datagrams, there is no PMTU limitation.  However, the
  upper layer protocol MUST NOT write any record that exceeds the
  maximum record size of 2^14 bytes.

SCTP can offer better guarantees than UDP; this relaxation may provide
leverage to split a large application message into a sequence of DTLS
frames carried under specific guarantees.

 1. To handle a larger application message, it is split into pieces
of 2^14 bytes, followed by one that has <2^14 (possibly 0) bytes.
Fragments are sent to the same stream, without interleaving other
content, and in-order.  Upon reception, the DTLS frames are each
decoded and the result concatenated to recover the message.

 2. Since delivery is reliable for SCTP, it would (also) be possible
to send the same sequence number for the fragments.  The sequence
number field is not as useful for SCTP as it is for UDP.

 3. It may be an idea to allocate one stream for all fragmentation.
But even within a stream, it is possible to combine in-order and
out-of-order.  It is probably good to continue in-order sending
until the <2^14 sized DTLS frame is acknowledged.  The application
or DTLS handshake may further constrain this.

These are three possible ways of relaxing this.  If we pick a simple
one, like the 1st, we might pass more SCTP semantics over to the
application that wants DTLS but not its size constraints.  What DTLS
does to Diameter is best resolved.


I hope this is useful,

Cheers,

Rick van Rein

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


Re: [TLS] DTLS/SCTP and fragmentation

2021-04-05 Thread Rick van Rein
Hi,

Larger frames than the MTU are not just a problem to Diameter; they also
complicate the normal handshake in DTLS which is a bit of a misfit with
DTLS delivery semantics.

Since the version is bit-swapped in DTLS, each record can easily be
distinguished as being either DTLS or TLS.  Then, why not allow the
mixing of those records in a stream, and map them differently to the
transport protocol?

I suppose the records could be marked as being the first and/or last in
a large user message, and this could be meaningfully translated to
properties and behaviour of the transport.  Below the DTLS MTU,
information is sent as DTLS, and above it, it is sent as a sequence of
TLS frames -- or are rejected, if the transport cannot handle that.
Plain TLS could be a special case where the DTLS MTU is set to 0.

Datagrams may have a number of meanings, too, that translate to
different transport meanings.  Diameter differs from RTP in that it
wants reliable delivery (which is why it does not carry over UDP) but it
is like RTP in that it does not want ordered delivery.  Plain TLS
applications would present the usecase of reliable ordered delivery.


Hopefully helpful,
 -Rick

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


Re: [TLS] DTLS/SCTP and fragmentation

2021-04-05 Thread Rick van Rein
Hello Michael,

Thank you!  I was searching for options, things that should go into
DTLS, but I was unaware of the attempts of mapping it better to SCTP.

> What about using: 
> https://tools.ietf.org/html/draft-westerlund-tsvwg-dtls-over-sctp-bis-01

This looks very good, thank you for the pointer!

-Rick

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


[TLS] I-D: TLS += Kerberos (provides Quantum Relief for DH)

2020-02-24 Thread Rick van Rein
Hello,

We have prepared the following draft, and request feedback on it.  The
main points are

 * Introduction of (anonymous) Kerberos tickets as added entropy to mix
with ECDH, and thereby provide Quantum Relief; it generalises this idea
to allow for other ways of adding entropy
 * Introduction of Kerberos Tickets for Certificate and
CertificateVerify messages
 * User identity on the server side; how TLS can be relayed to a peer,
which Kerberos can handle with its user-to-user authentication
mechanism; it generalises this idea, and perhaps it might be better as a
separate TLS Extension under ClientHello encryption.
 * Everything applies to TLS 1.3 as well as 1.2.

Our intention is to launch this as an independent proposal.

Your insights are highly appreciated!


Best,

Rick van Rein
Tom Vrancken



A new version of I-D, draft-vanrein-tls-kdh-06.txt
has been successfully submitted by Rick van Rein and posted to the
IETF repository.

Name:   draft-vanrein-tls-kdh
Revision:   06
Title:  Quantum Relief with TLS and Kerberos
Document date:  2020-01-22
Group:  Individual Submission
Pages:  19
URL:
https://www.ietf.org/internet-drafts/draft-vanrein-tls-kdh-06.txt
Status: https://datatracker.ietf.org/doc/draft-vanrein-tls-kdh/
Htmlized:   https://tools.ietf.org/html/draft-vanrein-tls-kdh-06
Htmlized:   https://datatracker.ietf.org/doc/html/draft-vanrein-tls-kdh
Diff:   https://www.ietf.org/rfcdiff?url2=draft-vanrein-tls-kdh-06

Abstract:
   This specification describes a mechanism to use Kerberos
   authentication within the TLS protocol.  This gives users of TLS a
   strong alternative to classic PKI-based authentication, and at the
   same introduces a way to insert entropy into TLS' key schedule such
   that the resulting protocol becomes resistant against attacks from
   quantum computers.  We call this Quantum Relief, and specify it as
   part of a more general framework to make it easier for other
   technologies to achieve similar benefits.

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


Re: [TLS] I-D: TLS += Kerberos (provides Quantum Relief for DH)

2020-02-25 Thread Rick van Rein
Hi Rich,

Salz, Rich wrote:
>  * Introduction of (anonymous) Kerberos tickets as added entropy to mix
> with ECDH, and thereby provide Quantum Relief; it generalises this idea
> to allow for other ways of adding entropy
>
> Have you seen 
> https://datatracker.ietf.org/doc/draft-irtf-cfrg-randomness-improvements/ ?

I hadn't.  Are you suggesting to insert the session key, or anything derived 
from it, into this CPRNG-alternative mechanism?

The spec speaks of ways of communicating entropy, not necessarily having them 
available on two ends yet.  That's a mild generalistion over the idea of 
passing a Kerberos ticket, which is essentially the pupose of this proposal.  I 
am however listening here if the generalisation is useful.  (I do have a few 
immature ideas that could use it.)

-Rick

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


Re: [TLS] I-D: TLS += Kerberos (provides Quantum Relief for DH)

2020-02-26 Thread Rick van Rein
Hello Nico,

> I don't believe that using Kerberos helps on the _entropy_ side as much
> as on the PQ side.

Ah; I meant to (be terse and) say that it adds an independent source of entropy 
that leaves no traces in the TLS flow subject to, indeed, Quantum Computer 
cracking.

> Now, the biggest problem with Kerberos is that with manually-keyed
> cross-realm trusts doesn't scale to Internet scale.  But there's a way
> to fix that too: use PQ PK with PKINIT as a form of "PKCROSS", and now
> Kerberos can function as a way of amortizing PQ PK costs.

Indeed :- though I'd have mentioned KXOVER or Kerberos Realm Crossover,
https://gitlab.com/arpa2/kxover
This is founded on DNSSEC, DANE and TLS.

Thanks,
 -Rick

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


[TLS] Kerberos + ECDHE in TLS (v02)

2016-03-11 Thread Rick van Rein
Hello,

I revised my TLS-KDH draft to include comments from this group.  Thanks!

The changes can be summarised as:

* Integration with "normal" X.509 certificates; client may use krb5
certificate
* Kerberos Ticket as X.509 pubkeyinfo; Authenticator as signature mechanism
* Define TLS-standardised hashes as ChecksumTypes for use in an
Authenticator
* Moved TicketRequestFlags to a TLS Extension; negotiation with min/max
flags
* Taken out protocol-bound DH; this saves about 75% of the complexity
* Pre-master secret now incorporates Kerberos session key and DH shared
secret
* Added descriptions of how to support backend servers in Ticket AuthData

I am aware that embedding Kerberos in an X.509 certificate is uncommon;
but it simplifies the rest incredibly, and suddenly everything "clicks"
smoothly into the rest of TLS.  I therefore think this form of
"tunneling" certifying information is worth considering.

Is this something that could be discussed at IETF 95?


Cheers,
 -Rick


> A new version of I-D, draft-vanrein-tls-kdh-02.txt
> has been successfully submitted by Rick van Rein and posted to the
> IETF repository.
>
> Name: draft-vanrein-tls-kdh
> Revision: 02
> Title:TLS-KDH: Kerberos + Diffie-Hellman in TLS
> Document date:2016-03-11
> Group:Individual Submission
> Pages:23
> URL:
> https://www.ietf.org/internet-drafts/draft-vanrein-tls-kdh-02.txt
> Status: https://datatracker.ietf.org/doc/draft-vanrein-tls-kdh/
> Htmlized:   https://tools.ietf.org/html/draft-vanrein-tls-kdh-02
> Diff:   https://www.ietf.org/rfcdiff?url2=draft-vanrein-tls-kdh-02
>
> Abstract:
>This specification defines a TLS message flow with Kerberos-based
>(mutual) authentication, binding in Elliptic-Curve Diffie-Hellman to
>achieve Forward Secrecy for the session.

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


[TLS] New Draft: Symmetric TLS

2016-03-11 Thread Rick van Rein
Hello,

I wrote a straightforward I-D to permit Symmetric TLS, by which I mean
letting go of predefined client/server roles.  This is useful if the
layers on top and/or below TLS are neutral in this respect.  The
approach is through a TLS Extension that holds a tie-breaker; both ends
send a ClientHello containing such a random value.


> Name: draft-vanrein-tls-symmetry
> Revision: 01
> Title:Symmetry for Transport Layer Security
> Document date:2016-03-11
> Group:Individual Submission
> Pages:11
> URL:
> https://www.ietf.org/internet-drafts/draft-vanrein-tls-symmetry-01.txt
> Status: https://datatracker.ietf.org/doc/draft-vanrein-tls-symmetry/
> Htmlized:   https://tools.ietf.org/html/draft-vanrein-tls-symmetry-01
> Diff:   
> https://www.ietf.org/rfcdiff?url2=draft-vanrein-tls-symmetry-01
>
> Abstract:
>TLS connections can be run over various transports, and can in turn
>carry many application protocols.  All current transports and at
>least some application protocols are capable of running between
>symmetric end points, in what could be called peer-to-peer mode, but
>the use of TLS introduces a requirement to always assign a client and
>server role.  This specification defines a TLS Extension to remedy
>that stringency of TLS.

Cheers,
 -Rick

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


Re: [TLS] call for consensus: changes to IANA registry rules for cipher suites

2016-03-30 Thread Rick van Rein
Hello,

> In Yokohama, we discussed changing the IANA registry assignment rules
> for cipher suites

Has a similar thing been discussed for TLS Extensions as well?  That
list now requires "IETF Consensus", and it doesn't even have Private and
Experimental allocations, let alone a portion with "Specification Required".

It can be difficult to get enough traction on this busy list for an
extension that is only useful in a niche (which could be said of my
draft-vanrein-tls-symmetry that gained no response at all) that is
however very interesting in such a niche.


-Rick

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


Re: [TLS] call for consensus: changes to IANA registry rules for cipher suites

2016-03-31 Thread Rick van Rein
Hi,

In general I think this is a good form of relaxation.  However,
>
> Cipher suites marked with a “Y” the IETF has consensus on
 

An alternative could be to mark the entry with the RFC 5226 level of the
documentation, and indicate what levels are acceptable.  A black/white
distinction will probably lead to a lot of discussion, and different
implementation purposes could call for more subtlety.


> and are reasonably expected to be supported by widely
> used implementations such as open-source libraries.

This is a vague one, and may unleash more discussion than it saves. 
Also, this should not turn into a suggestion of using implementations
rather than specifications as leading.  I've seen a lot of that around
Kerberos, where sane changes can get bogged down because there is (or
may be) an implementation that couldn't live with it.
>
> Please indicate whether or not you could support this plan.
>
Yes, in broad lines, but I have the noted concerns / suggestions.

-Rick

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


Re: [TLS] call for consensus: changes to IANA registry rules for cipher suites

2016-03-31 Thread Rick van Rein
Hi,

> I am just a little bit worried that everything developed for the IoT
> enviroment is quite likely labled as not recommended by the IETF in this
> registry because of the Web focus in this group.
>
RFC 5246 speaks of "Application Profiles" and it seems like this
discussion that started to simplify the WG load is now getting mixed
with that idea:

   In the absence of an application profile standard specifying
   otherwise, a TLS-compliant application MUST implement the cipher
   suite TLS_RSA_WITH_AES_128_CBC_SHA (see Appendix A.5 for the
   definition).

The worry about IoT above makes me suspect there might be a use for an
IoT application profile, presumably geared towards simplicity and
compactness.  Such a profile could make its own choices, possibly as a
subset from the Y markers and possibly enhanced with industry-driven
desires.

-Rick

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


Re: [TLS] Asymmetric TLS

2016-04-05 Thread Rick van Rein
Hello Phil,

> I have a use-case for allowing an MITM to monitor traffic, but not
> impersonate a server, and to allow MITM signing for replay of
> server-responses to support caching.
>
This sounds like attack monitoring (going beyond DoS for which SNI
frequencies might already be helpful).  This used to be possible by
passing certificate private keys, until we all embraced (EC)DHE.  This
is still an option for you of course, since you're violating the idea of
(EC)DHE anyway, at least between the monitor and its related TLS peer.

> As far as I'm aware, TLS currently only supports a shared-secret once
> session initialisation is complete, so I'd need to extend the protocol to
> support asymmetric encryption for the session.
>
I wonder if you'd need to extend the *protocol* or rather its
*implementation* to share private/secret key material.  You could
probably create a side-channel over which you communicate this
efficienctly, based on the random pieces in Hello, for instance.  Any
such implementation would sound the alarm bells for this option (and
probably not make it a default option) that the TLS protocol can't ring
because it is just a protocol.

My suggestion would be to let the monitor supply the private/secret key
material its related TLS peer, so it has more control; also, for TLS
implementations the import of key material is perhaps less scary than
the export (or more possible, if PKCS #11 is used).  Your monitor might
decide to let go of monitoring traffic, to monitor other traffic and
perhaps to share key material between certain sessions when under
attack.  Be careful with all of this though!

> Would there be interest in extending TLS to:
> - allow monitoring-with-consent (based on asymmetric encryption)?
> - allow re-signing from an authorised MITM to support caching?
>
Clearly, the WG does not like this idea.  Same with me.  But if you
tried something implementation-specific, or perhaps even standardise an
explicit side-channel protocol, you may be more likely to get the work
done because that would constitute an explicit and independent choice on
the part of the administrators.  TLS is so full of options that the eyes
of admins already glaze over -- what you are proposing is explicit
weakening of TLS, and it could slip into a configuration too easily as
part of the confusion that the complexity of the protocol already causes.

It could be interesting to let the WG know what your course of action
will be, so we can positively reference any such requests in the future.


Cheers,
 -Rick

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


Re: [TLS] [Technical Errata Reported] RFC5288 (4694)

2016-05-15 Thread Rick van Rein
Hi,

> I think the erratum needs an erratum.  Firstly, "nonce" doesn't mean "number
> used once", and secondly nonce re-use in AES-GCM doesn't just result in
> "catastrophic failure of it's authenticity", it results in catastrophic
> failure of the entire mode, both confidentiality and integrity/authenticity.

I'd like to add that I don't see a difference between a "failure" and a
"catastrophic failure".  It's probably better to stay away from subjective
words like that.

-Rick

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