加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 可以假定UDP数据包中的数据在应用程序级别是正确的吗?

发布时间:2020-12-15 22:04:58 所属栏目:安全 来源:网络整理
导读:我记得在某个地方读过如果一个udp实际到达应用程序层,数据可以假设是完整的.如果忽略中间某人发送假包的可能性,我在应用层收到的数据总是被发送出来的? 解决方法 UDP使用16位可选校验和.未通过校验和测试的数据包将被丢弃. 假设一个完美的校验和,那么65536
我记得在某个地方读过如果一个udp实际到达应用程序层,数据可以假设是完整的.如果忽略中间某人发送假包的可能性,我在应用层收到的数据总是被发送出来的?

解决方法

UDP使用16位可选校验和.未通过校验和测试的数据包将被丢弃.

假设一个完美的校验和,那么65536个损坏的数据包中就有一个不会被注意到.较低层也可能具有校验和(甚至更强大的方法,如802.11的前向纠错).假设较低层每n个数据包(平均)将损坏的数据包传递给IP,并且所有校验和完全不相关,那么每个65536 * n数据包应用程序将看到损坏.

示例:假设底层也使用16位校验和,因此每2 ^ 16 * 2 ^ 16 = 2 ^ 32个损坏的数据包中有一个将通过损坏.如果1/100数据包已损坏,则应用程序平均每2 ^ 32 * 100个数据包将看到1个损坏.

如果我们将该数字称为1 /(65536 * n)p,那么您可以计算出看不到任何损坏的可能性(1-p)^ i其中i是发送的数据包数.在该示例中,要获得高达0.5%的机会看到损坏,您需要发送近22亿个数据包.

(注意:在现实世界中,损坏的可能性取决于数据包数量和大小.此外,这些校验和中没有一个是加密安全的,攻击者破坏数据包是微不足道的.以上仅适用于随机损坏.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读