Re: Identity Checking in Application Protocols
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Identity Checking in Application Protocols



On Oct 29, 2009, at 8:39 AM, Peter Saint-Andre wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/29/09 8:51 AM, Kurt Zeilenga wrote:

On Oct 28, 2009, at 10:20 AM, tom.petch wrote:

----- Original Message -----
From: "Peter Saint-Andre" <stpeter at stpeter.im>
Sent: Tuesday, October 27, 2009 10:28 PM

On 10/27/09 4:28 AM, Alexey Melnikov wrote:
Hi Peter,

Peter Saint-Andre wrote:
I had hoped to update draft-saintandre-tls-server-id-check before the submission cutoff today, but it's not going to happen because there's quite a bit of feedback to sift through (ideally I would have followed the list discussions more closely the first time around). However, I shall work to update it in the next few days, at which time I will
also
rename it to remove the strings "tls" and "server" since the scope of the spec has widened to include non-TLS interactions as well as client
identity checking. My apologies for the delay.

Without my AD hat: I don't think the document should cover client
identity checking. I found Kurt's arguments to be convincing.

I think that the distinction between application roles and security
roles causes some confusion here. This I-D talks about security roles, not application roles. Thus, for example, when two XMPP servers wish to establish a TLS-encrypted connection, from the security point of view the server that initiates the connection is a TLS client whereas the server that receives the connection is a TLS server (despite the fact that from an application point of view both of them are XMPP servers).

My understanding of Kurt's argument is that we can't say much that's
helpful about how a TLS server checks the identity of a TLS client
because the problem is application-specific and the TLS server doesn't really have a "reference identity" (an idea of what identity the client will assert). At some level, the TLS server knows that it expects the TLS client to assert a kind of identity (domain name, email address, XMPP address, etc.) but not necessarily a particular instance of that
kind ("example.com", "foo at example.com", or whatever).

I need to think about this further. I'm sure that re-reading Kurt's
messages will help...

My take is that the only difference is one of number.

A client is 'configured' with a single reference identity, eg by the user keying it into a window, which is then used in a comparison with what
is returned in an X.509 certificate.

A server may support more than one client and so may be configured
with more than one reference identity and use any or all of them in a comparison with what is received in an X.509 certificate eg with SIP,
Netconf, syslog,
....

Of course, a server may not care to check, may not be configured with
anything, in which case the procedures in this I-D are irrelevant

My objection is not against an "application server" acting as a TLS
client verifying the identity of the TLS server it connects to.
My objection is against this I-D discussing in detail how an
"application server" acting as a TLS server might verify the identity of
the TLS client connecting to it.

The difference between the two (generally speaking) is that in the
former, the verifying entity (the TLS client) has an assumption of trust in the reference identity as it provided by the user (via some dialog or configuration or whatever) as opposed to be programmatically determined
by the verifying entity (such as simply using the TLS client's IP
address as the reference identity, or using some IP address to reference
identity mapping, etc.).   The security considerations for these two
scenarios is quite different, and I simply rather avoid discussing the
latter in this document.

Agreed, I would rather keep this I-D focused on the application client's task of verifying the identity of an application server. But nothing is
stopping us from writing another I-D that focuses on other problems.

I note that are other use scenarios, such as when the reference identity
is provided to the client via a referral mechanism.  That is, an
application clients to server A, A provides a referral to B, client
connects to B and now wants to verify B's identity.   I think this
scenario likely should be discussed to some degree in the I-D as it is a
relatively common application client scenario.

Yes, I think it would be good to discuss that scenario, although I
confess that I don't have a clear handle on what text would be appropriate.


I think our description of the 'reference identity' is a bit too vague.

reference identity: The client's conception of the server's identity before it attempts to establish a secure connection to the server,
      i.e. the identity that the client expects the server to present
      and to which the client makes reference when attempting to verify
      the server's identity.  It is either the address to which the
      client connected or the explicit value of the TLS "server_name"
      extension as specified in [TLS].  The reference identity might be
      based on a DNS lookup, user configuration, or some other
      mechanism.

One could easily read "server's identity before it attempts to establish a secure connection to the server" as any identity the client has for the server before it does the connect(2) call (or equivalent). That is, one can view DNS name to IP address mapping as occurring before attempting to connect to the server.

The reference identity is either the identity of the server that the user provided to the client, or its an identity of the server somehow other obtained (such as via a referral) from another entity (such as a referral service).

In the former case, the reference identity is to be implicitly trusted. In the latter case, there should be no implicit trust.

The document needs to discuss this distinction. My recommendation is to leave the particulars of the latter case to application protocol specifications that make use of the algorithm (as it's the same basic issue with client identity checking, is the reference identity trustworthy or not).

I don't have text to offer at this point...

-- Kurt


Peter

- --
Peter Saint-Andre
https://stpeter.im/


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrpt04ACgkQNL8k5A2w/vxRnQCffTdMhPDMKDszdzwQQe4+S0lY
9bUAoO4US35ITGOEPPdo582FqV+jZHIp
=TWvB
-----END PGP SIGNATURE-----
_______________________________________________
Apps-Discuss mailing list
Apps-Discuss at ietf.org
https://www.ietf.org/mailman/listinfo/apps-discuss


Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.