Gutmann Soundwave Therapy

Bill Frantz frantz at pwpconsult.com
Wed Feb 6 20:29:15 EST 2008


pgut001 at cs.auckland.ac.nz (Peter Gutmann) on Monday, February 4, 2008 wrote:

>Eric Rescorla <ekr at networkresonance.com> writes:
>
>>I don't propose to get into an extended debate about whether it is better to
>>use SRTP or to use generic DTLS. That debate has already happened in IETF and
>>SRTP is what the VoIP vendors are doing. However, the good news here is that
>>you can use DTLS to key SRTP (draft-ietf-avt-dtls-srtp), so there's no need
>>to invent a new key management scheme.
>
>Hmm, given this X-to-key-Y pattern (your DTLS-for-SRTP example, as well as
>OpenVPN using ESP with TLS keying), I wonder if it's worth unbundling the key
>exchange from the transport?  At the moment there's (at least):
>
>  TLS-keying --+-- TLS transport
>               |
>               +-- DTLS transport
>               |
>               +-- IPsec (ESP) transport
>               |
>               +-- SRTP transport
>               |
>               +-- Heck, SSH transport if you really want
>
>Is the TLS handshake the universal impedance-matcher of secure-session
>mechanisms?

If there had been a separation between the key exchange and
validation part of SSL (early TLS) and the transport part, the E
language protocol[1] almost certainly would have used the transport
part of the protocol.  The reasons at the time for not using SSL are
described in [2].  They are all associated with the connection and
cryptograph setup.

Simplified overview:

When an E program needs to contact a remote E program, it starts
with a hash of the other program's public key and large random
number, the "Swiss number".  It gets the IP and port of the remote
program from a well-known network service called the Process Location
Service.  It then contacts that IP and port, sends its public key,
receives the remote public key, performs a Diffie Hellman exchange
for forward secrecy, checks the hash of the remote public key, and
sends a signature over the exchange.  It checks the remote programs
signature over the exchange, and if all the checks pass, sends the
encrypted Swiss number to identify the specific remote resource.

I couldn't see any way to take this self-authenticating key exchange
and jam it into a x.509 structure.  Perhaps I wasn't inventive
enough, but I ended up rolling my own transport protocol, at certain
extra cost in development and testing, and a significant risk of
security errors.

Cheers - Bill

[1] <http://www.erights.org/elib/distrib/vattp/index.html>

[2] <http://www.erights.org/elib/distrib/vattp/SSLvsDataComm.html>

-----------------------------------------------------------------------
Bill Frantz        | gets() remains as a monument | Periwinkle
(408)356-8506      | to C's continuing support of | 16345 Englewood Ave
www.pwpconsult.com | buffer overruns.             | Los Gatos, CA 95032

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com



More information about the cryptography mailing list