Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-09-17 Thread Justin Karneges

On 09/16/2013 02:43 PM, Peter Saint-Andre wrote:

On 6/13/13 11:47 AM, Justin Karneges wrote:

On 06/13/2013 10:18 AM, Peter Saint-Andre wrote:

On 6/13/13 8:40 AM, Matt Miller wrote:

I don't necessarily have a problem with this as a
protocol-level diagnostic tool; it can help users (or rather,
the developers of the client the user interacts with) and
admins to troubleshoot. But the potential of abuse and
over-interpretation is extremely high.


Yes, that is true, and I too don't want people to read more into
the results than is justified. I will keep that very much in mind
as I work on the next revision.


What I'd like to see is an extra attribute on each incoming
stanza, indicating that it was received via a protected s2s
connection. Since the attribute would be per-stanza, it doesn't
have the race condition problem of the hop check.

[...]

Just one attribute is needed for this, stamped on by the receiving
server. Perhaps it could be a SHIM header.

Maybe this should be in a different spec than the hop check. I
just wanted to bring up the idea here since I figure it fits the
discussion. It would provide some amount of tangible security
without having to go full-on e2e.


Interesting. I definitely think that's worth pursuing, for the simple
reason that it can indeed be stamped by the receiving server (and I
can know whether my connection to the receiving server is encrypted).


To kick things off:

  TLS

We may also want a way to indicate that an outbound stanza should only 
be delivered securely:


  TLS

It occurs to me that we'll need a stream feature too, otherwise the 
Security header could be spoofed and you have no way to know if the 
Security-Required header will be honored.


S->C:
  

  

If the client does not receive the above stream feature, then it MUST 
NOT process or provide stanza security headers.


Justin


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-09-16 Thread Peter Saint-Andre
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

[ old thread alert ]

On 6/13/13 11:47 AM, Justin Karneges wrote:
> On 06/13/2013 10:18 AM, Peter Saint-Andre wrote:
>> On 6/13/13 8:40 AM, Matt Miller wrote:
>>> 
>>> On Jun 12, 2013, at 8:41 PM, Peter Saint-Andre 
>>>  wrote:
>>> 
 -BEGIN PGP SIGNED MESSAGE- Hash: SHA1
 
 On 6/6/13 6:40 AM, Matthew Wild wrote:
> On 6 June 2013 10:21, Simon Tennant  
> wrote:
>> End to end encryption is a worth goal. This is very cool
>> for getting information on the s2s connection.
> 
> Perhaps on first sight. However this kind of usage is
> exactly why the XEP died last time around. It isn't
> suitable for anything except purely informational/debugging
> purposes. This is because the link can change - it might be
> encrypted when you check it, and then reconnect unencrypted
> without you knowing. Also, malicious entities can always
> lie.
 
 What I'd like is to know whether the connection from my
 personal IM server (stpeter.im) or my company's IM server
 (say, cisco.com) to a random server like prosody.im or
 jabber.ietf.org is encrypted. Sure, malicious entities can
 lie, but I try not to create accounts or authenticate with
 malicious servers. :-) Look, I need to have *some* level of
 trust in the server I authenticate with. I just want to know
 if the path from there to the next server is encrypted, too.
 If I'm a server admin presumably I have some kind of
 server-side tool I can use, but that's not the case if I'm
 not an admin.
>>> 
>>> 
>>> I don't disagree that the user is trusting their server by
>>> logging in.  And if this check were to stop at "my.domain --> 
>>> other.domain", then I can see some confidence in the results 
>>> because of the trust. Changes in the state *could* be dealt
>>> with by making this information available in a pubsub-like
>>> manner (I sensed the collective shudder from some of our server
>>> developers and operators before I even typed that sentence (-:
>>> ).
>>> 
>>> However, that trust doesn't carry over to the answer for 
>>> "other.domain --> contact@other.domain" which users will want
>>> so very, very desperately.
>>> 
>>> I don't necessarily have a problem with this as a
>>> protocol-level diagnostic tool; it can help users (or rather,
>>> the developers of the client the user interacts with) and
>>> admins to troubleshoot. But the potential of abuse and
>>> over-interpretation is extremely high.
>> 
>> Yes, that is true, and I too don't want people to read more into
>> the results than is justified. I will keep that very much in mind
>> as I work on the next revision.
> 
> What I'd like to see is an extra attribute on each incoming
> stanza, indicating that it was received via a protected s2s
> connection. Since the attribute would be per-stanza, it doesn't
> have the race condition problem of the hop check.
> 
> My use-case is I'm running a service that allows administration
> via XMPP. Users may whitelist JIDs that should have access. The
> current drawback with this approach is that it is not ultra secure.
> Someone could conceivably make a dialback attack and act as someone
> else. My plan is to add a checkbox to the administration config:
> "Only allow administration from secure domains". The idea here is
> that an incoming stanza would only be trusted if it was flagged as
> having arrived via TLS-secured s2s, thus closing the dialback
> security hole. True, this does not confirm that the user's client
> is using TLS, but I don't think this is something I need to concern
> myself with. It would be the user's responsibility to ensure nobody
> else can hijack his account (by always using TLS, by using a good
> password, and by trusting the admin of his server).
> 
> Just one attribute is needed for this, stamped on by the receiving 
> server. Perhaps it could be a SHIM header.
> 
> Maybe this should be in a different spec than the hop check. I
> just wanted to bring up the idea here since I figure it fits the
> discussion. It would provide some amount of tangible security
> without having to go full-on e2e.

Interesting. I definitely think that's worth pursuing, for the simple
reason that it can indeed be stamped by the receiving server (and I
can know whether my connection to the receiving server is encrypted).

Peter

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


-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSN3t5AAoJEOoGpJErxa2p8e4P/0SKb4zspDpOwGg0QM2n3HQd
PCI6a5DZYfkao7hfu2BFzGooN35xVabV5+nHhGg4tkYdJ4teWXYJDCkJYCE99/Z1
2tPWNtz4SfN6AC+kc/zu8aqTCoDNzSV/c3c3ns+XeOO5xtSLuM3PlLW+XdX5Gd0r
09m+TELSIEZ2jccwexQajwO7QRP372yvLuF6Fxzn/DLMc15nJEoX0NAQoAaLo1MS
wKXHZovUQMGRPRrcs6KKuXhqNq4LchQJWy9z8jtsQn20VOIjB+Dn731OB4DSZNhC
HFiT/kWDXWgNfmNLCPywaP/inQylM3xJobnzNJ8REBBaXWEb2wR

Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-13 Thread Justin Karneges

On 06/13/2013 10:18 AM, Peter Saint-Andre wrote:

On 6/13/13 8:40 AM, Matt Miller wrote:


On Jun 12, 2013, at 8:41 PM, Peter Saint-Andre
 wrote:


-BEGIN PGP SIGNED MESSAGE- Hash: SHA1

On 6/6/13 6:40 AM, Matthew Wild wrote:

On 6 June 2013 10:21, Simon Tennant 
wrote:

End to end encryption is a worth goal. This is very cool for
  getting information on the s2s connection.


Perhaps on first sight. However this kind of usage is exactly
why the XEP died last time around. It isn't suitable for
anything except purely informational/debugging purposes. This
is because the link can change - it might be encrypted when
you check it, and then reconnect unencrypted without you
knowing. Also, malicious entities can always lie.


What I'd like is to know whether the connection from my personal
IM server (stpeter.im) or my company's IM server (say,
cisco.com) to a random server like prosody.im or jabber.ietf.org
is encrypted. Sure, malicious entities can lie, but I try not to
create accounts or authenticate with malicious servers. :-) Look,
I need to have *some* level of trust in the server I authenticate
with. I just want to know if the path from there to the next
server is encrypted, too. If I'm a server admin presumably I have
some kind of server-side tool I can use, but that's not the case
if I'm not an admin.



I don't disagree that the user is trusting their server by logging
in.  And if this check were to stop at "my.domain -->
other.domain", then I can see some confidence in the results
because of the trust. Changes in the state *could* be dealt with by
making this information available in a pubsub-like manner (I sensed
the collective shudder from some of our server developers and
operators before I even typed that sentence (-: ).

However, that trust doesn't carry over to the answer for
"other.domain --> contact@other.domain" which users will want so
very, very desperately.

I don't necessarily have a problem with this as a protocol-level
diagnostic tool; it can help users (or rather, the developers of
the client the user interacts with) and admins to troubleshoot.
But the potential of abuse and over-interpretation is extremely
high.


Yes, that is true, and I too don't want people to read more into the
results than is justified. I will keep that very much in mind as I
work on the next revision.


What I'd like to see is an extra attribute on each incoming stanza, 
indicating that it was received via a protected s2s connection. Since 
the attribute would be per-stanza, it doesn't have the race condition 
problem of the hop check.


My use-case is I'm running a service that allows administration via 
XMPP. Users may whitelist JIDs that should have access. The current 
drawback with this approach is that it is not ultra secure. Someone 
could conceivably make a dialback attack and act as someone else. My 
plan is to add a checkbox to the administration config: "Only allow 
administration from secure domains". The idea here is that an incoming 
stanza would only be trusted if it was flagged as having arrived via 
TLS-secured s2s, thus closing the dialback security hole. True, this 
does not confirm that the user's client is using TLS, but I don't think 
this is something I need to concern myself with. It would be the user's 
responsibility to ensure nobody else can hijack his account (by always 
using TLS, by using a good password, and by trusting the admin of his 
server).


Just one attribute is needed for this, stamped on by the receiving 
server. Perhaps it could be a SHIM header.


Maybe this should be in a different spec than the hop check. I just 
wanted to bring up the idea here since I figure it fits the discussion. 
It would provide some amount of tangible security without having to go 
full-on e2e.


Justin


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-13 Thread Peter Saint-Andre
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 6/13/13 11:33 AM, Philipp Hancke wrote:
> Am 13.06.2013 19:18, schrieb Peter Saint-Andre:
>> Yes, that is true, and I too don't want people to read more into
>> the results than is justified. I will keep that very much in mind
>> as I work on the next revision.
> 
> It seems that this could be easily achieved by splitting this up: 
> 1) a query for asking a remote server for it's opinion about the
> s2s stanza that the stanza arrived on -- or possibly all the
> connections from the originating domain. 2) a query for asking your
> own server for it's opinion about the outgoing s2s connections to
> some domain. ISTR that jabberd14 did something like this with
> disco#info to the s2s component... that enabled you to browse the
> s2s connections.

Or:

(2) a query to your own server about its stream to the remote server

(3) a query to your buddy about its stream to the remote server and
the remote server's stream to your own server

Peter

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


-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRugQbAAoJEOoGpJErxa2p6WIP/i8C+JhQZqrtBGA0U9BWDuqf
HnWYc+3FQobyCvZ2x5TPgq7fLMzhLJxC+1BPGml5Qh88QqWc5yXoFJMT4fbocboV
dCS+cV/qhqUpGnwVRTIVvzwmALyrMRm1Bv2T/Q2YEMd6hjGBa6pn2Mmkaws+/MyI
mxouWaJhAvK2p7MuJTPZElgktvaW31J6cu9WQw7jzWBSATDHAh7htfYSRbvCUUkK
K4rhP2lZy8iCz53Fc8dMKepVj7pZjVf0o6ZJL8riMyZJ/mMohTV+KrRF+0AFHeKF
Dmxdw0/epfJkxH32dWShDxLVIF90Oa/m3G9SZoN7BDnb5vVcEKG6jD9QR4JnIbv/
iqezTcDg4eMN93YJONw4EchLFwMHWBwW4Dro+v5sQfhd9Fy/19ERlVOy/zL5xLI7
qFcJf2AdralKWv6DnDRawSLa13UmidGROsTCPsooe5wiN/cghti+M3vuusSa3doC
KwbWBYVlZ22UNRLsmN1gjbjMW4b+izM32iHdQMjWemHDnz4W/7hSkcdRrK/NPKas
upnpsjiFRd3WX4KKX5+0kJL4ZYHkuv5xP27Fe4WHTDdWnW05KbpaZYgcmMfRpmgo
I3k3rdrNokdSfBrxWNTkXS59j+wECeWxRYmOXOcnDy3LrcA0Yy53NuXFlgvEjxBR
uHtpo3sBn6F1+Afnne05
=P206
-END PGP SIGNATURE-


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-13 Thread Philipp Hancke

Am 13.06.2013 19:18, schrieb Peter Saint-Andre:

Yes, that is true, and I too don't want people to read more into the
results than is justified. I will keep that very much in mind as I
work on the next revision.


It seems that this could be easily achieved by splitting this up:
1) a query for asking a remote server for it's opinion about the s2s 
stanza that the stanza arrived on -- or possibly all the connections 
from the originating domain.
2) a query for asking your own server for it's opinion about the 
outgoing s2s connections to some domain. ISTR that jabberd14 did 
something like this with disco#info to the s2s component... that enabled 
you to browse the s2s connections.


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-13 Thread Peter Saint-Andre
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 6/13/13 8:40 AM, Matt Miller wrote:
> 
> On Jun 12, 2013, at 8:41 PM, Peter Saint-Andre
>  wrote:
> 
>> -BEGIN PGP SIGNED MESSAGE- Hash: SHA1
>> 
>> On 6/6/13 6:40 AM, Matthew Wild wrote:
>>> On 6 June 2013 10:21, Simon Tennant  
>>> wrote:
 End to end encryption is a worth goal. This is very cool for
  getting information on the s2s connection.
>>> 
>>> Perhaps on first sight. However this kind of usage is exactly 
>>> why the XEP died last time around. It isn't suitable for 
>>> anything except purely informational/debugging purposes. This
>>> is because the link can change - it might be encrypted when
>>> you check it, and then reconnect unencrypted without you
>>> knowing. Also, malicious entities can always lie.
>> 
>> What I'd like is to know whether the connection from my personal 
>> IM server (stpeter.im) or my company's IM server (say,
>> cisco.com) to a random server like prosody.im or jabber.ietf.org
>> is encrypted. Sure, malicious entities can lie, but I try not to
>> create accounts or authenticate with malicious servers. :-) Look,
>> I need to have *some* level of trust in the server I authenticate
>> with. I just want to know if the path from there to the next
>> server is encrypted, too. If I'm a server admin presumably I have
>> some kind of server-side tool I can use, but that's not the case
>> if I'm not an admin.
> 
> 
> I don't disagree that the user is trusting their server by logging 
> in.  And if this check were to stop at "my.domain -->
> other.domain", then I can see some confidence in the results
> because of the trust. Changes in the state *could* be dealt with by
> making this information available in a pubsub-like manner (I sensed
> the collective shudder from some of our server developers and
> operators before I even typed that sentence (-: ).
> 
> However, that trust doesn't carry over to the answer for 
> "other.domain --> contact@other.domain" which users will want so 
> very, very desperately.
> 
> I don't necessarily have a problem with this as a protocol-level 
> diagnostic tool; it can help users (or rather, the developers of
> the client the user interacts with) and admins to troubleshoot.
> But the potential of abuse and over-interpretation is extremely
> high.

Yes, that is true, and I too don't want people to read more into the
results than is justified. I will keep that very much in mind as I
work on the next revision.

Peter

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


-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRuf7mAAoJEOoGpJErxa2paL8P/1y9L4T1kmKoW5V1BXkK/gfK
3nUX3pQnbDm++KTKjhjOBmaVuj1TKIK4G2IzHRHt63fPBS9pPFoIQ7DLC+35DN7g
qZ1yVekBnxMDwQ1shrHriNJCeCLp7fJ/IWCTb076ItEJvRE2w/OYCwDiNlL6rYky
MQv3iDzBl8WqeqnwGypt8yLmbHKaPnMdHjmyVUq0QlZytAcDsOjtRl5ERi3Q5b8N
JF+LKjTBjbvrNJsRbFTG/AFiNAJ9BiqJBVdcMNIRI8Z8gC1fLDpzS73WKm8JiJ6x
/lMfhGS+0xOGzvIzT0AVsls1OZWBN/WqGPJWScEn5ptRKU9mMiU2FcyKgKH0WDN+
ZAD6MvOeiFjVZEv2mX2WYQUbvoQTT6JSS/c2Ld0d1nz+s+vHV2b9UM43DdgeWaH6
dP3z4uCWdMrph8aLmiljSsjGYFC0CLvexoH1BRr0hX6uV3xadLm/SixhBxlB2k+B
31EsjUSJZOd8TX3C83lWPL2x5d36E/xd39GPNDkL1bjtOtgecWl4OqC5NkBdh+eL
MkLDaQkQTkKJWuB4Vh6NNNB0czVbkaxafzX3FxeanwfsOQ62yYDN6RaRLu5osJaX
cLDsdgxBOYnFcmMFRsM+PzVau8iwk54TelK8vzERY5lu5vAy3+n7blKGfTNUxf+D
Cgz2kPtcq6Edia7MhxXx
=ujCZ
-END PGP SIGNATURE-


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-13 Thread Matt Miller

On Jun 12, 2013, at 8:41 PM, Peter Saint-Andre  wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
> 
> On 6/6/13 6:40 AM, Matthew Wild wrote:
>> On 6 June 2013 10:21, Simon Tennant  wrote:
>>> End to end encryption is a worth goal. This is very cool for
>>> getting information on the s2s connection.
>> 
>> Perhaps on first sight. However this kind of usage is exactly why
>> the XEP died last time around. It isn't suitable for anything
>> except purely informational/debugging purposes. This is because the
>> link can change - it might be encrypted when you check it, and then
>> reconnect unencrypted without you knowing. Also, malicious entities
>> can always lie.
> 
> What I'd like is to know whether the connection from my personal IM
> server (stpeter.im) or my company's IM server (say, cisco.com) to a
> random server like prosody.im or jabber.ietf.org is encrypted. Sure,
> malicious entities can lie, but I try not to create accounts or
> authenticate with malicious servers. :-) Look, I need to have *some*
> level of trust in the server I authenticate with. I just want to know
> if the path from there to the next server is encrypted, too. If I'm a
> server admin presumably I have some kind of server-side tool I can
> use, but that's not the case if I'm not an admin.


I don't disagree that the user is trusting their server by logging in.  And if 
this check were to stop at "my.domain --> other.domain", then I can see some 
confidence in the results because of the trust.  Changes in the state *could* 
be dealt with by making this information available in a pubsub-like manner (I 
sensed the collective shudder from some of our server developers and operators 
before I even typed that sentence (-: ).

However, that trust doesn't carry over to the answer for "other.domain --> 
contact@other.domain" which users will want so very, very desperately.

I don't necessarily have a problem with this as a protocol-level diagnostic 
tool; it can help users (or rather, the developers of the client the user 
interacts with) and admins to troubleshoot.  But the potential of abuse and 
over-interpretation is extremely high.


- m&m

Matthew A. Miller
< http://goo.gl/LK55L >



smime.p7s
Description: S/MIME cryptographic signature


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-12 Thread Peter Saint-Andre
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 6/6/13 6:40 AM, Matthew Wild wrote:
> On 6 June 2013 10:21, Simon Tennant  wrote:
>> End to end encryption is a worth goal. This is very cool for
>> getting information on the s2s connection.
> 
> Perhaps on first sight. However this kind of usage is exactly why
> the XEP died last time around. It isn't suitable for anything
> except purely informational/debugging purposes. This is because the
> link can change - it might be encrypted when you check it, and then
> reconnect unencrypted without you knowing. Also, malicious entities
> can always lie.

What I'd like is to know whether the connection from my personal IM
server (stpeter.im) or my company's IM server (say, cisco.com) to a
random server like prosody.im or jabber.ietf.org is encrypted. Sure,
malicious entities can lie, but I try not to create accounts or
authenticate with malicious servers. :-) Look, I need to have *some*
level of trust in the server I authenticate with. I just want to know
if the path from there to the next server is encrypted, too. If I'm a
server admin presumably I have some kind of server-side tool I can
use, but that's not the case if I'm not an admin.

Peter


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


-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRuTFNAAoJEOoGpJErxa2pPXAP/1/q/PUY3k+xBxAgXRSlsbEt
OHIcyX1NpFwePrRdKWrG50688MEO6+k5gYO4LCDmyxRmzkYES67gqQNxShpnDa2c
+9T5ZUPSC95qTyN6PjfUlvGP8NXlqA8AGhx3oRBu0pnZYW33AnVh7WBoUuwOuG95
JqBLqPPP0D+7jsWbbiyVGQIye7vnQP4i+LRG/RpX/E3AXZbV2UIqAl/SuIaUWV6j
i8wRBoXqga3ZmbOP17rmVDdTAqcWNGf8nhaTatfMqQI1oFkdAHWpvVJUam3p2NTk
nhh4hy/raPSZQKOuaThoXCwdPc3M8R+/HtFHJwm60DUpeloJwW/vbxP0csx8Pyhl
qESKMwy0x8jX2WAtSSa6vJO/GPm/kyrdaOzq+P31A0gzhn6wS2/mulUhk+fVtITD
LIgAf02NM/6XQ8Bvclih2q/lO7TKqeHlbnhu6OZ0oGoht9cY3SNPswxig3gGQXVH
PuViAPId2HvXTWQbqbBwx9HgSiEyJvmbJbbQ86CZUSOye2eJUvuXRVJciNDuyHZP
utgEAKy7G+KXhi9RCz4s+so6yGnlOrRkVJtNky/gwaC5RKfZiHYlG7joLW7CMLMY
FViPevdF8Aspz1kdz3N1dBKWD3BVDShNO64i2zwSXkqz9MvZjfMRB78c0FrAA3wa
Gxgcl4tM5ECqIAeByI9Z
=YoPO
-END PGP SIGNATURE-


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-06 Thread Matthew Wild
On 6 June 2013 21:12, Kurt Zeilenga  wrote:
> I personally think trying to answer of a question about user-to-user security 
> when security relies on non-E2E security mechanisms is a futile exercise.   
> But I do think my cringe can largely be dealt with through appropriately 
> stated security considerations.

Absolutely, and I think we all agree on that. That's why the XEP
failed the last time around. However the mechanism it provides is
still useful, as long as we don't pretend it's trying to solve
anything security-wise.

Regards,
Matthew


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-06 Thread Kurt Zeilenga

On Jun 5, 2013, at 7:14 PM, Peter Saint-Andre  wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
> 
> I've been thinking I'd like to resurrect the Hop Check proposal
> (because after further reflection I think it would be useful, even if
> not perfect):
> 
> http://xmpp.org/extensions/xep-0219.html

This XEP makes me cringe.  :-)

My main problem is that it leaps from a user's desire to know whether their 
communications with another user is secure with whether encryption is being 
used at various hops.   The user is asking an end-to-end question.   If they 
were using end-to-end security mechanisms,  a reasonable answer to their 
question can be given.  But if they are relying on hop to hop security 
mechanisms, it becomes very difficult to usefully answer the question.

For instance, the XEP seems all about letting the user know which hops are 
"encrypted" but a hop which is encrypted is not necessary secure by any 
reasonable definition of the user.  Some TLS encryption ciphers are little 
better than the null cipher.   And even if the cipher was reasonably strong, 
there's the question of authentication.

And then the XEP has a very simplistic view of the communication path.   First, 
there could be a MUC service in the path.  Second, there could be clustered 
XMPP services, application level gateways, TLS concentrators, and all kinds of 
other bizarre devices.   While such devices are out of scope of the XMPP 
standards in general, they exist in real world and hamper the ability to figure 
out which links and/or devices are the weakest links in the path.

I personally think trying to answer of a question about user-to-user security 
when security relies on non-E2E security mechanisms is a futile exercise.   But 
I do think my cringe can largely be dealt with through appropriately stated 
security considerations.

-- Kurt

> 
> Before I post an updated version, does anyone have requests for data
> they'd like to see included in the data format?
> 
> Thanks!
> 
> Peter
> 
> - -- 
> Peter Saint-Andre
> https://stpeter.im/
> 
> 
> -BEGIN PGP SIGNATURE-
> Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> 
> iQIcBAEBAgAGBQJRr/BwAAoJEOoGpJErxa2pHR0P/0jTB9b8UTCUJOnmRfPyACF9
> 7FI++aJ7a1woKFMnH5Tt0JnZ28SzFed3o9XkusUoC5PFbUiTSNcCRTHvCFeiGozE
> vLY3yXwQuZiUc0fEuwWRrhfgodkSyRrP9vtSax56BWbHMFvrslcbDBPPkQazW79A
> fZq9b1bF3df4aPX8L2RGNPTpeb/wCqjacznNEfQ093ZsBrVvZ3xTwxJQKLMdOG9s
> ElckIiTKqdSvepHzq9f0wmngsPEbkxALM6m/WvDFZeLhm+UCkwvvPLv5EngCLIj1
> K9SAfpbgHirO007s5iyPgwJiAqcZecJ8alC8u435h3wc85Zs4S0Z9ZYBLus+jrnr
> RKeSSDSYXLcz+jomk13BIw77a+izFysj9kPljPEgEBH8lqzflGrFKl/r6/kbtnVn
> P9MeaOspoXLgz+NHXw0qhvjjtvpN+T8x1pJdyL9dTsrPmMDjaBfQVX784R9PcY6r
> 980BGm6nRf89raPHLzKaj4/uGyMOub0wyFGW2sQHdBHpr4ln4MQGyiv+qNa0w1Aq
> pUB610h41uf/3M7ifXlxv1HhNZxf2+Gj3n3E/RnP+4toK1h4PPWNJvpBuI3f7UBa
> nEETd19/UBxlNVA7WelNzaWVA/K6WoQDiiH1hfZmKALfQu+yystGaM0gY8Ulw3dt
> C/igyQGvxz28GvQxUb3y
> =wbXd
> -END PGP SIGNATURE-



Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-06 Thread Matthew Wild
On 6 June 2013 10:21, Simon Tennant  wrote:
> End to end encryption is a worth goal. This is very cool for getting
> information on the s2s connection.

Perhaps on first sight. However this kind of usage is exactly why the
XEP died last time around. It isn't suitable for anything except
purely informational/debugging purposes. This is because the link can
change - it might be encrypted when you check it, and then reconnect
unencrypted without you knowing. Also, malicious entities can always
lie.

Regards,
Matthew


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-06 Thread Simon Tennant
End to end encryption is a worth goal. This is very cool for getting
information on the s2s connection.

XEP-0219 makes a lot of assumptions about the network topology always
involving the traditional c2s design.

How might this XEP report meaningful information back to the user in the
following situations:
- cleartext BOSH inside SSL terminated HTTP session?
- cleartext on loopback to new c2s services like XMPP-FTW or the
buddycloud-api?
- websockets?

S.



On 6 June 2013 09:56, Dave Cridland  wrote:

> On Thu, Jun 6, 2013 at 6:11 AM, Philipp Hancke 
> wrote:
>
>> I've been thinking I'd like to resurrect the Hop Check proposal
>>> (because after further reflection I think it would be useful, even if
>>> not perfect):
>>>
>>
>> for debugging/support? +1
>>
>>
> I've not checked back to see whether I liked this or not before, so I
> don't know whether now deciding it'd be a good thing would be an
> embarrassing U-Turn or not...
>
> But FWIW, when this was proposed, I think it was suggested as a "is my
> end-to-end path secure?" - to which the answer is "not if you had to ask" -
> rather than as a debugging protocol.
>
>
>> [...]
>>
>>  Before I post an updated version, does anyone have requests for data
>>> they'd like to see included in the data format?
>>>
>>
>> A bidi flag (for s2s) and the raw certificate data for both dialback and
>> external auth. Probably also whether an SRV record was resolved or the A
>> fallback is used.
>>
>> And keep in mind that most s2s connections still aren't bidi, see the
>> list archives from 2007 for some discussion ;-)
>>
>
> 1) I'd suggest for most things we just stuff features into the thing if
> they've been used, maybe?
>
> So for XEP-0138, we'd see something like:
>
> 
>   
> 
>
> This'd hold for SASL auth, too:
>
> 
>   
> 
>   
> 
>
> 2) I know that having the certificate chain would also be useful, as well
> as any reasoning for trusting it - or not trusting it, perhaps even more
> important. There are many times I'd have dearly loved to have been able to
> tell why a certificate wasn't trusted by the peer in ways that didn't
> involve trying to parse other people's logs, so the reasoning here is more
> useful that the certificate chain to me.
>
> 3) I'd also point out that while it'd be very useful to know how your
> victim authenticates, having this as a mandatory feature seems like a
> security issue. ("Oh, he authenticates using PLAIN without TLS, does he?
> Oh, goody!")
>
> 4) Some links - S2S, for instance - have have different characteristics on
> the return path than the forward path - XEP-0219 never addressed this. I've
> a feeling this one came up at the time.
>
> 5) Currently, this protocol is framed such that each hop is mandated to
> ask the next. It might be useful for this to be reframed as an end-to-end
> protocol, so that Juliet asks her server, then Juliet asks Romeo's server,
> then (possibly) Juliet asks Romeo.
>
> So, erm, basically that's close to a complete rewrite, I think. :-)
>
> Dave.
>



-- 
Simon Tennant | buddycloud.com | +49 17 8545 0880 | office hours:
goo.gl/tQgxP


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-06 Thread Dave Cridland
On Thu, Jun 6, 2013 at 6:11 AM, Philipp Hancke wrote:

> I've been thinking I'd like to resurrect the Hop Check proposal
>> (because after further reflection I think it would be useful, even if
>> not perfect):
>>
>
> for debugging/support? +1
>
>
I've not checked back to see whether I liked this or not before, so I don't
know whether now deciding it'd be a good thing would be an embarrassing
U-Turn or not...

But FWIW, when this was proposed, I think it was suggested as a "is my
end-to-end path secure?" - to which the answer is "not if you had to ask" -
rather than as a debugging protocol.


> [...]
>
>  Before I post an updated version, does anyone have requests for data
>> they'd like to see included in the data format?
>>
>
> A bidi flag (for s2s) and the raw certificate data for both dialback and
> external auth. Probably also whether an SRV record was resolved or the A
> fallback is used.
>
> And keep in mind that most s2s connections still aren't bidi, see the list
> archives from 2007 for some discussion ;-)
>

1) I'd suggest for most things we just stuff features into the thing if
they've been used, maybe?

So for XEP-0138, we'd see something like:


  


This'd hold for SASL auth, too:


  

  


2) I know that having the certificate chain would also be useful, as well
as any reasoning for trusting it - or not trusting it, perhaps even more
important. There are many times I'd have dearly loved to have been able to
tell why a certificate wasn't trusted by the peer in ways that didn't
involve trying to parse other people's logs, so the reasoning here is more
useful that the certificate chain to me.

3) I'd also point out that while it'd be very useful to know how your
victim authenticates, having this as a mandatory feature seems like a
security issue. ("Oh, he authenticates using PLAIN without TLS, does he?
Oh, goody!")

4) Some links - S2S, for instance - have have different characteristics on
the return path than the forward path - XEP-0219 never addressed this. I've
a feeling this one came up at the time.

5) Currently, this protocol is framed such that each hop is mandated to ask
the next. It might be useful for this to be reframed as an end-to-end
protocol, so that Juliet asks her server, then Juliet asks Romeo's server,
then (possibly) Juliet asks Romeo.

So, erm, basically that's close to a complete rewrite, I think. :-)

Dave.


Re: [Standards] resurrecting Hop Check (XEP-0219)

2013-06-05 Thread Philipp Hancke

I've been thinking I'd like to resurrect the Hop Check proposal
(because after further reflection I think it would be useful, even if
not perfect):


for debugging/support? +1

[...]

Before I post an updated version, does anyone have requests for data
they'd like to see included in the data format?


A bidi flag (for s2s) and the raw certificate data for both dialback and 
external auth. Probably also whether an SRV record was resolved or the A 
fallback is used.


And keep in mind that most s2s connections still aren't bidi, see the 
list archives from 2007 for some discussion ;-)