[英]TLS protocol detection by using client hello message
我需要檢測網絡流量中的https數據包。 直到現在,我都將所有“ 443”標記為https,但在這種情況下,我不再想要使用端口信息。
檢查客戶端問候消息是否足夠:
//Check 22 and version info 0300 0301 or 0302
if (packet->payload[0] == 0x16 && packet->payload[1] == 0x03
&& (packet->payload[2] == 0x00 || packet->payload[2] == 0x01 || packet->payload[2] == 0x02)
{
int temp = ntohs(get_u16(packet->payload, 3)) + 5;//Get lenght
//Check lenght is valid and 6th byte is client hello(which is 1)
if (temp < packet->payload_length && temp > 50 && packet->payload[5]) == 1)
MARK AS HTTPS
}
由於我的項目設計,我最多只能檢查一個數據包。 您能否建議僅檢查客戶端問候是否還可以?
由於我的項目設計,我不能檢查多個包。 您能否建議僅檢查客戶端問候是否還可以?
我假設您的意思是“包”而不是“包”。 鑒於我們在這里使用TCP,因此能夠重組碎片消息至關重要。 只要您擁有僅對單個數據包進行操作的工具,就無法期望(在100%的時間內)可靠地檢測到比單個字節長的消息內容。 那是因為TCP發送器將字節一一滴地運給您是完全合法的...所以您需要做好重新組裝它們的准備,否則您會丟失一些信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.