ssl - 用于加密的端口列表

标签 ssl encryption https port

我正在开发一个应用程序来捕获数据包并判断数据包是否已加密。您知道如何确定数据包是否已加密吗?我认为没有 header 告诉我们有关加密的信息,所以我想也许我应该检查端口,因为某些端口用于某些加密协议(protocol),如 TLS https 或...。我应该检查哪个 RFC?我检查了 rfc1700 的知名端口,但我认为有些端口没有列出,有些加密端口没有被描述为“用于加密协议(protocol)或类似的东西”。所以我卡住了

最佳答案

一些加密协议(protocol)(如 https)有众所周知的端口,但是除了发送到/从众所周知的加密端口和协议(protocol)发送的数据之外,没有办法知道任何特定数据包是否包含加密数据。

例如,包含字节“... 137 80 78 71 13 10 26 10 ...”的数据包可能是加密数据,也可能是小狗照片的一部分。如果不知道整个数据流应该是什么样子,就无法知道;然后重新组装它并根据您可以识别的数据和模式对其进行检查。

有了无限的资源,您实际上可以根据所有已知的数据类型检查数据流。这会让你说“那是一个图像文件,它是一只小狗”或“那不是图像文件”,但你仍然不能确定它是加密的、随机的还是只是你不加密的其他东西t 知道。

只是为了进一步搅浑水,任何协议(protocol)都可以通过任何端口发送。端口号只是一个约定。例如,有些应用程序使用 DNS 端口传输数据。

更令人困惑的是它实际上可能是一个 legitimate picture of a puppy, with data encoded into the image .

关于ssl - 用于加密的端口列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51569456/

相关文章:

c++ - 使用 libcurl 的 CA 证书身份验证

ssl - 配置代理的 get_server_certificate() 的替代方法

http - Nginx http 和 https block 配置

vb.net - 加密 Caesar VB.net

ios - iOS 中使用 ECB 的 3DES 加密/解密

html - 中等公共(public)站点的体面 HTTPs 实现是否始终是付费解决方案?

php - 如何在nodejs中使用https连接?

asp.net - 自制SSL的绿条

mysql - mysql_ssl_rsa_setup 从哪里获取 OpenSSL 文件?

android - 安全网络传输的最佳实践