TLS协议检测通过使用客户端问候消息(TLS protocol detection by using

2019-09-01 01:34发布

我需要检测网络流量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 
}

因为我的项目设计的,我无法检查多个数据包。 能否请您告知,如果只是检查客户端问候像上面好不好?

Answer 1:

因为我的项目设计的,我无法检查多个软件包。 能否请您告知,如果只是检查客户端问候像上面好不好?

我假设你的意思是“包”而不是“包”。 由于我们使用的是TCP这里,能够重组分段的消息是必不可少的。 只要你有一个工具,它只能在单个分组进行操作,你不能指望可靠地(如在100%的时间)检测邮件的内容比单个字节长。 这是因为它是完全合法的TCP发送运球字节给你一个接一个......所以你需要做好准备,重新组合或者知道你会错过一些信息。



文章来源: TLS protocol detection by using client hello message
标签: c ssl