On Thu Oct  2 19:02:38 2008, Jonathan Schleifer wrote:
Am 02.10.2008 um 19:58 schrieb Dave Cridland:

Assymetric authentication in esessions in only possible if the SAS code is transferred over a channel which, itself, provides only assymetric authentication. The SAS mechanism itself is symmetric, but can only prove the security equivalence of the two channels, thus if the SAS side-channel has assymetric properties, then so with the esession itself.

This hasn't to do with asymmetric or symmetric. The other side, say the police, could tell me their SAS. Then I can silently verify them or not. They never know if I verified them. They never know if the SAS matched. Thus one-side verification IS possible.


Sort of. But this would only be possible if the channel used by the police to tell you the SAS had the property that you could be assured it was the police who was giving you the SAS, and moreover that the police could not tell who they were giving the SAS to.

You see, there is a reasonable asusmption by the police that the endpoints of the esession must be as you expect, since you are continuing the session, and without that expectation on your part, the channel could be, or is, compromised, and based on your apparent intent to talk to the police in a secure manner, it is a reasonable assumption to make, I think.

Therefore, whether or not you choose to tell the police whether the SAS code matches, they can essentially assume any identity derivable from the endpoints of the channel used for the SAS also applies to the channel the SAS identifies.

In that sense, the exchange of SAS code is in effect a weak form of channel binding, allowing the assertion that the endpoints of one channel (the esession) are equivalent to the endpoints of another (that used for SAS transmission).

So if you are providing other people with the SAS code for the esession via, say, a web page, then because all they can say about the web page is that you have some control of it, then all they can say about the esession is it belongs to someone with control of the webpage.

You clearly didn't get the concept of an SAS.

A SAS code is a short code essentially identifying the channel, in this case an esession. You could make one for TLS by using some form of cryptographically secure hash over the final two messages exchanged by client and server - indeed, these two messages are also used for channel binding data, and channel binding operates by uniquely identifying a secure channel and binding the endpoints of an authentication to them by using them as input to cryptographic functions.

In the case of a SAS, it's intended to be transferred over some alternate channel deemed sufficiently secure. The weaker the channel, the weaker the resultent security. Transferring a SAS over the channel it identifies offers no additional security. Transferring it over a "perfect" channel results in "perfect" security - albeit given that no security algorithm is perfect, this isn't exact, but assuming esessions is at least as good as the state of the art, one can make this approximation.

Are you still claiming I "clearly don't get" some concept, or can we move on?

You can't put an SAS on a web page as that's different with every session.



Web pages are not immutable, and new web pages can be created. I fail to see this as being a problem. Even if I were somehow mistaken about the web - I did my first HTTP/1.1 implementation about 11.5 years ago, but I'm hardly an expert - I don't see this has having much to do with the question at hand, that is, the symmetry of authentication inherent in a SAS based mechanism.

To get a side-channel that proved your identity entirely without disclosing anything about the other end would be quite tricky, and in fact the only one that springs to my mind is using a CA signed certificate and a TLS session, and given that arrangement, it seems most useful to just use that for communications.

You disclose nothing with the SAS - it's different for every session and you don't even have to tell them if it matched or not.



Absolutely.

But...

The other party can always tell, assuming a well behaved actor, that you did check it and it did match, because you have continued to use the channel. If you don't care, why set up an esession?

If this is really the case that one cannot make this assertion, then the other party has an interesting problem, because the other party can never know if you're telling the truth when you say it matches, and can never know if you continue to use the channel irregardless of its security properties, and therefore a single exchange of a SAS code is worthless.

Instead, once the SAS code is given, the session needs to be renegotiated, you need to ensure that the key matches between sessions, and then provide a SAS code to the other party - the other direction to the original session.

Incidentally, a bad actor deliberately trying to lull you into spilling your secrets is going to want to validate that they are indeed your secrets, and will therefore be quite keen to check your identity, so I'm not really sold on this whole idea, but it's a logical result of your argument.

Since you cannot have it both ways, then, either I'm right, and providing a SAS code in either direction, with or without confirmation, results in a weak channel bind to the channel used for passing the SAS, or else you're right and providing a SAS code gives the provider no knowledge of the security of the esession at all.

Pick one, and please explain your choice.

If you do insist on picking both, you'll have to explain in some detail.

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