Как обнаружить входящее рукопожатие SSL (https) (формат проводного SSL)?

Я пишу сервер, который принимает входящие соединения TCP. Предположим, что сервер принял соединение TCP и уже получил 16 (или около того) байтов от клиента. Зная эти 16 байтов, как сервер может определить, хочет ли клиент инициировать рукопожатие SSL?

Я провел эксперимент, который показал, что в моей системе Linux при подключении к localhost (127.0.0.1 или AF_UNIX) через SSL клиент отправляет следующее рукопожатие (hexdump), за которым следуют 16, казалось бы, случайных байтов:

8064010301004b0000001000003900003800003500001600001300000a07
00c000003300003200002f03008000000500000401008000001500001200
0009060040000014000011000008000006040080000003020080

Как сервер должен проверить эти первые несколько байтов, чтобы определить, отправляет ли клиент рукопожатие SSL? Зонд должен возвращать true для всех действительных SSL-квитирований и с высокой вероятностью должен возвращать false для сообщения, отправленного клиентом, который не является SSL-квитированием. Не разрешается использовать какие-либо библиотеки (например, OpenSSL) для исследования. Зонд должен быть простым кодом (например, несколько десятков строк в C или Python).

Ответы на вопрос(2)

Ваш ответ на вопрос