Здравствуйте, rttgedt, Вы писали:
R>Но, как понимаю, для SSL версии ниже 3 такое не пройдет. В связи с этим два вопроса:
R>1. Как определить SSL-пакеты ниже 3 версии.
R>2. Всегда ли в поле Length содержится полная длина SSL-данных (для >= 3 версии)?
Посмотрите, как ssl определяет
l7filter.
Он использует регулярное следующего вида:
ssl
# Server Hello with certificate | Client Hello
# This allows SSL 3.X, which includes TLS 1.0, known internally as SSL 3.1
^(.?.?\x16\x03.*\x16\x03|.?.?\x01\x03\x01?.*\x0b)
Взато
отсюда.
Попробуйте поэкспериментируйте и нечто похожее и для версий < 3 сделайте.
Если интересно, то
здесь паттерны для других протоколов есть.
Может поможет чем.
Всем привет! Написал драйвер на WFP, перехватываю траффик на Stream Layer. Необходимо определить САБЖ. Сейчас определяю по первым пяти байтам записи:
typedef struct _SSL_RECORD_PROTOCOL
{
UCHAR ContentType;
UCHAR VersionMajor;
UCHAR VersionMinor;
UCHAR HightLength;
UCHAR LowLength;
} SSL_RECORD_PROTOCOL, *PSSL_RECORD_PROTOCOL;
Но, как понимаю, для SSL версии ниже 3 такое не пройдет. В связи с этим два вопроса:
1. Как определить SSL-пакеты ниже 3 версии.
2. Всегда ли в поле Length содержится полная длина SSL-данных (для >= 3 версии)?
Спасибо