On Tue May 13 20:37:39 2008, Justin Karneges wrote:
On Tuesday 13 May 2008 11:40 am, Dave Cridland wrote:
> On Tue May 13 19:29:33 2008, Justin Karneges wrote:
> > Two sets?
>
> Yes. One that says "If any xmppAddr is present, use only xmppAddr", > another that says "but fallback to dNSName". This is okay as long as
> both ends know which identities are authenticated.

3920, section 14.2, case #1 essentially says that if the xmpp field is present then use it, otherwise fall back to dNSName (and then commonName). Where is
the other set of rules?


Hmmm... I suppose you could read that as the method for checking certificates, and 6.4.2 as the method for generating them. I think both could be a lot clearer, though.


> > I'm not sure how you work out a default authzid from a certificate,
> > but
> > assuming there's an unambiguous way to do that then yes this would
> > be fine.
>
> There isn't, this is highlighting that we need to ensure that an
> authzid is explicitly stated.

Right, so in the context of XMPP, we'd require an authzid when using
certificate auth.


Well, you'd want to say that XMPP servers SHOULD supply an explicit authorization identifer when using SASL. The mechanism is probably immaterial, and SASL has no concept of "certificate auth", nor does X.509 have any concept of an authorization identifer. But this is nitpicking.


> > Yes, a mutually authenticated bidirectional channel.  To clarify
> > though, if
> > this is an s2s channel then stanzas can only flow in the
> > initiator->receiver
> > direction.
>
> Why? If it's mutually authenticated, this seems silly.

I asked the same thing in 2004. :) The stanza direction issue has nothing to
do with mutual authentication.  Dialback streams are also mutually
authenticated, and non-stanza traffic can be exchanged bidirectionally. It's just a historic property of s2s channels to be unidirectional for stanzas. Maybe this helps with race conditions when two servers contact each other at the same time, or maybe helps with load balancing (different machines for
outbound/inbound).  I dunno.  This is just how it is in the spec.


So I see. Section 4.4 in the bis draft. Makes no sense, and in particular, we've established and agreed that each peer does authenticate with the other.

I suppose the inbound/outbound split might make sense, but I'm not convinced - but if it's important, a signalling mechanism might make sense. See below.


> Drastically so for deployments with significant numbers of
> identities. Two servers with two identities need 4 bidirectional
> channels, or  8 unidirectional channels. Two servers with three
> identities would need 18 unidirectional channels - you need N*M
> directions.

Oops, you're right. 8 connections for two servers with two identities.
A1->B1, A1->B2, A2->B1, A2->B2, and then the reverse for each.


Of course, I'm not right in my equation - you need 2*N*M directions, or N*M bidirectional channels. So if you have a couple of servers with MUC and PubSub services, that's 18 unidirectional channels, potentially, between them. Of course, typically, we wouldn't expect MUC and PubSub channels to cross-talk, so that's probably only 6, but that could very easily change if we get the concept of chaining those services.


> > We'd just need a way to specify additional explicit from/to domains
> > on an
> > as-needed basis (exactly like dialback), which also avoids wildcard
> > problems.
>
> *nods* I think dialback itself will essentially work, the trouble is
> that an originator won't be expecting a dialback initiated by the
> receiver.
>
> Dialback is an assertion that states "I am this identity". Typically, > the receiver tests the assertion by dialling back, but realistically,
> nothing stops the receiver testing the assertion by checking a
> certificate associated with the channel.

True. What we'd want to prevent is the receiver actually dialing back though, since, as you say, the initiator would not be expecting it in a pure-SASL
case.

There could be a stream feature offered by the receiver, that indicates <db:result> may be used post-TLS/SASL auth for adding more cert-based identities. Hmmm.. at that point I'd suggest just using a new element rather than hijacking the dialback ones, to reduce confusion. They are so
simple anyway.

*nods* The advantage of dialback is that if the assertion is unsupportable by the TLS certificate presented, then there's another option to validate it if the recipient of the dialback so chooses.

Okay, so a feature, definitely. You'd need to signal that it was supported by the originator, too, so it'd need a "I don't have any more identities I want to tell you about" form.

Each identity would need individual positive and negative responses. Absence of the feature being negotiated would, presumably, also mean that the stream would have to be unidirectional. (Maybe we have an explicit signal on this too, so you can setup odd combinations, where you say that you'd like to be able to send stanzas for a domain, but you can't receive them.).

Question is, is this an <iq/>, a <db:result/>, or is this a new element entirely?

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to