Determining if client requests ssl handshake

2009-07-06 Thread Konstantin Ivanov
Hi all, I was wondering if it is possible to determine if client is requesting an ssl handshake on regular socket connection and if client does request it, continue with SSL handshake and enable secure communication? What is happening is that if I have a server, but I accept a connection using

RE: Determining if client requests ssl handshake

2009-07-06 Thread David Schwartz
Konstantin Ivanov > I was wondering if it is possible to determine if client is requesting > an ssl handshake on regular socket connection and if client does request > it, continue with SSL handshake and enable secure communication? What is > happening is that if I have a server, but I accept a c

Re: Determining if client requests ssl handshake

2009-07-06 Thread Howard Chu
David Schwartz wrote: I've managed to do this without problems for SMTP, POP, HTTP, and a few custom text-based protocols. Note that the protocol must be such that the client sends data first. If the server must send data first, then there is no way for the server to know what to send.

RE: Determining if client requests ssl handshake

2009-07-07 Thread David Schwartz
Howard Chu wrote: > David Schwartz wrote: > > I've managed to do this without problems for SMTP, POP, > > HTTP, and a few > > custom text-based protocols. Note that the protocol must be > > such that the > > client sends data first. If the server must send data first, > > then there is > > no wa

Re: Determining if client requests ssl handshake

2009-07-07 Thread Kyle Hamilton
A client has a sign that a server wants to negotiate TLS if it receives a byte 0x00 (the code for 'HelloRequest'). A server has a sign that a client wants to negotiate TLS if it receives a byte 0x01 (ClientHello). There are multiple ways to use TLS. The one that webservers use is to create the T

Re: Determining if client requests ssl handshake

2009-07-08 Thread David Shambroom
Actually, a TLS/SSLv3 ClientHello message begins with the byte sequence: offset value 0x000x16content type Handshake 0x010x03major version 0x020x00-0x03 minor version 0x030x length 0x050x01handshake type ClientHello RFC5246, Appendix A. Ky