On Thursday 31 Oct 2002 2:58 pm, Nathan Yocom wrote:
> Interesting - okay ;-) Thanks for the info.
>
> Do you know whether is is simply because its not in the ssl code, or is
> it a restriction based on SSL design? i.e. is it possible by hacking
> the openssl lib, or are they mutually exclusive?

Well basically the reason is because SSL/TLS is simply a communication
protocol that is designed to provide one linear stream of binary
(byte-oriented) data in each direction - there's no inherent idea in the
protocol to explain how to interpret any data that arrives
"out-of-band", and the encapsulated transport that the protocol itself
provides *ALSO* has no understanding of (or support for) out-of-band
data.

In fact, the SSL/TLS protocol is purely binary and has nothing per se to
do with TCP/IP or even networking in general. You can replace any
asynchronous pair of serial binary data streams with an SSL/TLS
encapsulated version of itself. It just happens that nobody cares about
any medium for SSL/TLS other than networking sockets (and even then,
typically people are almost always interested specifically in TCP/IP).
Eg. you could (if you wanted) self-encapsulate your own *postal*
correspondance using SSL/TLS if you represent your "letters" as some
kind of serial binary data (eg. null-terminated ascii bytes). (i) you'd
have to post a couple more envelopes than the number of individual
letters you had wanted to encrypt (and that applies in both directions),
and (ii) you'd be posting a 2 or 3 good-sized pages of printed
hexidecimal SSL/TLS stream data for each 1 or 2 clearly-written pages of
english-language text you wanted to send, but in theory it would work.
[Yeah I know, I guess it's hardly surprising nobody uses SSL/TLS for
snail-mail ... :-) ]

To provide a more constructive answer for OOB data though: you *could*
fake it in the serial (non-OOB) SSL/TLS protocol data by creating a
filter at each end of the SSL/TLS channel that implements a framing
layer. Ie. frame the payload data so you can distinguish between
"normal" and "OOB" data outside the SSL/TLS encapsulation.

But why bother? The existing standards that people want to send over
SSL/TLS are generally "serial" connection protocols (either sync or
async) that have no concept of "out-of-band" data anyway. So typically
they are simply fed directly in to (and out of) the SSL/TLS protocol
without any framing to encode and detect (and thus *support*)
out-of-band data - it would be a waste of time/performance/simplicity to
do otherwise. This is currently the case, for example, with existing
installations where SSL/TLS encapsulates HTTP, FTP, TELNET, SMTP, POP3,
and a few others. In fact this is what web-browsers and web-servers do
for HTTPS (it's HTTP inside SSL/TLS).

For your own purposes however - you can define any behaviour you like
for sending and interpreting out-of-band data as long as you keep it
parallel to the SSL/TLS (the SSL/TLS stream data can't arrive out of
order). This would be independant of OpenSSL (and any other SSL/TLS
implementation) - and you would have to control the implementation at
both ends of the connection. If this is for your own networking needs,
that may be something you can do and and have a use for. But this won't
help you if you want to talk with applications whose implementation you
can't control. Nor will it help you if you want your applications to be
compliant with standards you can't influence.

Anyway, that's the long version of Jeffrey's more concise explanation!
:-)

> On Thu, 2002-10-31 at 10:26, Jeffrey Altman wrote:
> > You cannot use OOB data with SSL/TLS.

Cheers,
Geoff

-- 
Geoff Thorpe
[EMAIL PROTECTED]
http://www.geoffthorpe.net/


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to