我正在开发一个可捕获数据包并告诉数据包是否已加密的应用程序。您是否知道如何确定数据包是否已加密?我认为没有标题可以告诉我们有关加密的信息,所以我认为也许我应该检查端口,因为某些端口用于某些加密协议,例如TLS https或...。我应该检查哪个RFC?我检查了rfc1700中是否有知名端口,但我认为未列出某些端口,某些加密端口未描述为“用于加密协议或类似的名称”。所以我被困住了
答案 0 :(得分:1)
对于某些加密协议(例如https),存在众所周知的端口,但是,除了发送到/从公共已知的加密端口和协议发送的数据之外,没有办法知道任何特定数据包是否包含加密数据。
例如,包含字节“ ... 137 80 78 71 13 10 26 10 ...”的分组。可能是加密的数据,也可能是小狗图片的一部分。如果不知道整个数据流应该是什么样,就无法知道。然后重新组装它,并根据您可以识别的数据和模式进行检查。
使用无限资源,您实际上可以对照所有已知数据类型检查数据流。这会让您说“这是一个图像文件,它是一只小狗”或“那不是图像文件”,但是您仍然不确定它是加密,随机还是只是您不想要的其他一些未加密的东西t 知道。
只是为了进一步弄水,任何协议都可以通过任何端口发送。端口号只是一个约定。例如,有些应用程序使用DNS端口建立隧道数据。
更令人困惑的是它实际上可能是legitimate picture of a puppy, with data encoded into the image。