OSI模型及各层缺陷

1.TCP/IP概述
(1)TCP/IP基本结构

TCP/IP是一组Internet协议,不但包括TCP和IP两个关键协议,还包括其他协议,如UDP、ARP、ICMP、Telnet和FTP等。TCP/IP的设计目标是使不同的网络互相连接,即实现互联网。

IPv4的地址是32bit,目前正在推出IPv6,其地址为128bit。以太网MAC地址是48bit。
    TCP/IP层次结构有两个重要原则:①在同一端点,每一层只和邻接层打交道,例如,应用程序根本不关心网络层是怎么转发包以及数据在哪些网络上传输;②不同端点之间的同一层有对等关系,对等层之间可以进行通信,如应用程序之间的通信,TCP模块之间的通信等。

(2)TCP/IP通信模型
         通信模型是TCP/IP最基本的模型之一,它描述了端和端之间怎样传输数据。
        TCP/IP提供两个主要的传输协议:TCP和UDP。TCP是一个面向连接的协议,它通过发送和确认机制,保证数据无错误传输。UDP是无连接的,它只管发送和接收所有的包,不保证数据是否到达。

2.TCP序列号预计
         TCP序列号预计由莫里斯首先提出,是网络安全领域中最有名的缺陷之一。这种攻击的实质,是在不能接到目的主机应答确认时,通过预计序列号来建立连接。这样,入侵者可以伪装成信任主机与目的主机通话。
        正常的TCP连接建立过程是一个三次握手的过程,客户方取一初始序列号ISNc并发出第一个SYN包,服务方确认这一包并设自己一方的初始序列号为ISNs,客户方确认后这一连接即建立。一旦连接建立成功,客户方和服务方之间即可以开始传输数据。连接建立过程可以被描述如下:

TCP连接建立过程
客户方 → 服务方:SYN(ISNc)
服务方 → 客户方:ACK(ISNc),SYN(ISNs)
客户方 → 服务方:ACK(ISNs)
客户方 → 服务方:数据
和/或者
服务方 → 客户方:数据

3.路由协议缺陷
(1)源路由选项的使用
    在IP包头中的源路由选项用于该IP包的路由选择,这样,一个IP包可以按照预告指定的路由到达目的主机。
    但这样也给入侵者创造了良机,当预先知道某一主机有一个信任主机时,即可利用源路由选项伪装成受信任主机,从而攻击系统,这相当于使主机可能遭到来自所有其他主机的攻击。

(2)伪造ARP包
       伪造ARP包是一种很复杂的技术,涉及到TCP/IP及以太网特性的很多方面,在此归入ARP的安全问题不是很合适。伪造ARP包的主要过程是,以目的主机的IP地址和以太网地址为源地址发一ARP包,这样即可造成另一种IP spoof。

  这种攻击主要见于交换式以太网中,在交换式以太网中,交换集线器在收到每一ARP包时更新Cache。不停发spoof ARP包可使送往目的主机的包均送到入侵者处,这样,交换式以太网也可被监听。
        解决上述问题的方法是:将交换集线器设为静态绑定。另一可行的方法是当发现主机运行不正常时(网速慢,IP包丢失率较高),反映给网络管理员。

(3)RIP的攻击
        RIP(Routing Information Protocol)是用于自治系统(Autonomous System,AS)内部的一种内部路由协议(Internal Gateway Protocol,IGP)。RIP用于在自治系统内部的路由器之间交换路由信息。RIP使用的路由算法是距离向量算法。该算法的主要思想就是每个路由器给相邻路由器宣布可以通过它达到的路由器及其距离。一个入侵者有可能向目的主机以及沿途的各网关发出伪造的路由信息。

(4)OSPF的攻击
       OSPF(Open Shortest Path First)协议是用于自治域内部的另一种路由协议。OSPF协议使用的路由算法是链路状态(Link-State)算法。在该算法中,每个路由器给相邻路由器宣布的信息是一个完整的路由状态,包括可到达的路由器,连接类型和其他相关信息。

  LSA(Link State Advertisement)是OSPF协议中路由器之间要交换的信息。
      LS序列号为32bit,用来指示该LSA的更新程度。LS序列号是一个有符号整数,大小介于0x80000001(负值)和0x7fffffff之间。

4.网络监听
        以太网(Ethernet)是网络结构中,链路层和物理层的主要连网方式。由于以太网的工作方式,网络请求在网上一般以广播的方式传送,这个广播是非验证的,也就是同网段的每个计算机都可以收到,除了目标接受者会应答这个信息外,其他的接受者会忽略这个广播。如果有一个网络设备专门收集广播而决不应答,那么,它就可以看到本网的任何计算机在网上传输的数据。如果数据没有经过加密,那么它就可以看到所有的内容。Sniffer就是一个在以太网上进行监听的专用软件。监听这个现象对网络的安全威胁是相当大的,因为它可以做到以下几点。

(1)抓到正在传输的密码。
(2)抓到别人的秘密(信用卡号)或不想共享的资料。
(3)暴露网络信息。

5.TCP/UDP应用层服务
(1)finger的信息暴露
这是由于以下几点原因。
① finger没有任何认证机制。任何人都可利用finger来获得目的主机的有关信息。
② finger所提供的信息包括用户名,用户来自于何处等,这些信息可以用于口令的猜测攻击,以及信任主机被假冒的攻击,具有很大的潜在危险。
③ finger没有认证,这使得无法辨别一个主机是否在基于“正当的”目的使用finger,这使得用户即使被攻击,也无法辨明finger在其中起了多大作用。
    解决上述问题的方法是:关掉finger服务,如果有充分理由打开finger服务的话,不妨将finger设为:/bin/cat/etc/something

(2)FTP的信息暴露
        FTP本身并无安全问题,但几乎所有的实现都存在如下问题。
① FTP一般用户的口令与登录口令相同,而且采用明文传输。
② 一些网点上的匿名FTP提供了另一攻击途径。

(3)Telnet的安全问题
       Telnet本身也并没有安全问题。它的安全隐患类似FTP的①,只不过要更严重一些。由于Telnet是用明文传输的,因此不仅是用户口令,而且用户的所有操作及其回答,都将是透明的。

(4)POP3的安全问题
        由于POP3的口令与账号的口令相同,在此它存在着类似FTP①的问题,解决方法也是类似的。
(5)tftp/bootp的安全问题
        tftp允许不经认证就能读主机的那些被设置成所有人可读的文件。这将可能暴露系统的账号、工作目录等重要信息。

二、协议的介绍

1.互联网协议(英语:Internet ProtocolIP),或称互联网协议,是用于报文交换网络的一种面向数据的协议。

IP是在TCP/IP协议中网络层的主要协议,任务是仅仅根据源主机和目的主机的地址传送数据。为此目的,IP定义了寻址方法和数据报的封装结构。

IP封装:数据在IP互联网中传送时会被封装为数据报。IP协议的独特之处在于:在报文交换网络中主机在传输数据之前,无须与先前未曾通信过的目的主机预先建立好一条特定的“通路”。互联网协议提供了一种“不可靠的”数据包传输机制(也被称作“尽力而为”);也就是说,它不保证数据能准确的传输。数据包在到达的时候可能已经损坏,顺序错乱(与其它一起传送的报文相比),产生冗余包,或者全部丢失。如果应用需要保证可靠性,一般需要采取其他的方法,例如利用IP的上层协议控制。

IP提供的服务:由于封装带来的抽象机制,IP能够在各种各样的网络上工作,例如以太网,ATM,FDDI,Wi-Fi,令牌环等等。每个链路层的实现可能有自己的方法(也有可能是完全没有它自己的方法),把IP地址解析成相应的数据链路地址。IPv4使用地址解析协议(ARP),而IPv6采用邻居发现协议(NDP)。

可靠性:

互联网协议的设计原则假定网络基础设施本身就是不可靠的单一网络元素或传输介质,并且它使用的是动态的节点和连接。不存在中央监测和性能衡量机制来跟踪和维护网络的状态。为了减少网络的复杂性,大部分网络智能故意地分布在每个数据传输的终端节点。传输路径中的路由器只是简单地将数据报发送到下一个匹配目的地址的路由前缀的本地网关。

由于这种设计的结果,互联网协议只提供尽力传送,其服务也被视为是不可靠的。在网络专业语言中是一种无连接的协议,相对于所谓的面向连接的模式。在缺乏可靠性的条件下允许下列任何故障发生:

  • 数据损坏
  • 丢失数据包
  • 重复到来
  • 数据包传递乱序;意思是,如果包'A'是在包'B'之前发送的,但B可能在A到达前到达。

互联网协议提供的唯一帮助是,IPv4规定通过在路由节点计算校验和来确保IP数据报头是正确的。这个带来的副作用是当场丢弃报头错误的数据报。在这种情况下不需要发送通知给任一个终端节点, 但是互联网控制消息协议(ICMP)中存在一个机制来做到这一点。

但是,IPv6为了快速传输已经放弃了计算校验和的使用。

对这些可靠性问题的更正是一个上层协议的责任。例如,一个上层协议为了确保按顺序传送可能要缓存数据,直到数据可以传递给应用程序。

除了可靠性问题,互联网及其组成部分的动态性和多样性不能确保任何路径是有能力地或合适地完成所要求的数据传输,即使路径是有效并且可靠的。技术限 制之一是在给定的链路上允许的数据包的大小。应用程序必须确保它使用适当的传输特性。这种责任还在于一些在应用层协议和IP之间的上层协议。存在审查的本 地连接尺寸最大传输单位(MTU),以及整个预计到目标路径时使用IPv6。 IPv4的网络层有自动分片成更小的单位进行传输原始数据报的能力。在这种情况下,IP确实能够为乱序的分片进行顺序排序。

IP寻址及路由:IP协议最为复杂的方面可能就是寻址和路由了。寻址就是如何将IP地址分配给各个终端节点,以及如何划分和组合子网。所有网络端点都需要路由,尤其是网际之间的路由器。路由器通常用内部网关协议(Interior Gateway Protocols,IGPs)和外部网关协议(External Gateway Protocols,EGPs)决定怎样发送IP数据包。

OSI模型(7层):应用层、表示层、会话层、传输层(TCP地址)、网络层(IP地址)、数据链路层(mac地址)、物理层

物理层:传输在线缆的电子信号;

    威胁:搭线窃听和监听;

    保护措施:加密、数据标签、流量填充等;

    设备:HUB、水晶头、线缆

网络层:寻址和路由;

    协议:IP、ICMP(管理ping)、IGMP(组播)、ARP(IP->MAC)、RARP(MAC->IP);

    威胁:(网际协议:32位,唯一性,标示主机,IP头20位包含信息和控制字段)IP欺骗攻击、(internet信息控制协议:IP层检查错误使用)tfnflood、winnuke;

    保护措施:防火墙过滤、打系统补丁

传输层:控制主机(host)之间传输的数据流;

    协议:TCP、UDP;

      TCP包头标记:SYN:建立一个连接过程,FIN:终止一个连接过程,ACK:回复一个连接请求。威胁:SYN FLOOD(三次握手没有完成,只占用内存)

      UDP:面向非连接的协议(应用于IP电话等)。

    端口:知名端口<1024,非知名端口>=1024。常用:21(FTP),22(SSH),23(TELNET),80(HTTP),139()

应用层:SMTP(简单邮件传输协议),威胁:邮件炸弹、病毒、匿名邮件、木马等,保护措施:认证、附件木马扫描等

    FTP(文件传输协议),威胁:明文传输、黑客恶意传输非法使用,保护措施:只允许匿名登录、单独服务器分区、禁止执行程序等

    TELNET()、HTTP()、SNMP()

    域名解析系统:DNS欺骗/中毒

小结:了解TCP/IP协议组、掌握并区分TCP协议和UDP协议、深入理解TCP的三次握手、深入掌握FTP/TELNET协议和明文传输、掌握SMTP协议和匿名邮件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/487405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyenv 安装脚本解读

pyenv 安装脚本 curl https://pyenv.run | bash执行上面这一行脚本就可以安装pyenv来满足你对 Python 多版本共存以及切换的支持。 pyenv搭配virtualenv可以满足你对Python虚拟环境版本的支持。个人感觉pyenv比conda更轻量&#xff0c;更推荐使用。 那么上面的脚本到底干了什…

Redis 内存管理

Redis 给缓存数据设置过期时间有什么用&#xff1f; 一般情况下&#xff0c;我们设置保存的缓存数据的时候都会设置一个过期时间。为什么呢&#xff1f; 内存是有限且珍贵的&#xff0c;如果不对缓存数据设置过期时间&#xff0c;那内存占用就会一直增长&#xff0c;最终可能…

Day2——需求分析与设计

教师端签到应用软件的需求分析&#xff1b; 产品经理如何写好产品需求文档&#xff08;附模板&#xff09; 需求分析是软件开发过程中的关键步骤&#xff0c;它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤&#xff1a; 1. 确定分析目标 明确教师端签到…

Python爬虫——HTML中Xpath定位

Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置&#xff0c;进而将其写入到本地或者数据库中。 学习Xpath爬虫&#xff0c;我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…

AI如何让PPT制作变得轻松与智能?用一键生成ppt!

谁还愿意把时间浪费在PPT的设计和内容排版上&#xff1f;尤其是对于那些需要频繁制作演示文稿的人来说&#xff0c;一份看起来专业的PPT往往会让人陷入“做与不做”的困境。但随着科技的飞速发展&#xff0c;传统的PPT制作方法正逐渐被更为高效的工具所取代&#xff0c;尤其是智…

树莓派 PICO RP2040 MACOS 使用

文章参考&#xff1a; Developing in C on the RP2040: macOS | Wellys Dev 这里会提示报错&#xff1a;ln: /bin/picotool: Operation not permitted 参考&#xff1a;Mac ln命令报错&#xff1a;Operation not permitted_ln operation not permitted-CSDN博客 放在 usr/lo…

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时&#xff0c;便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value&#xff0c;其次就是vu…

xtu oj 制药

文章目录 回顾前言代码思路 回顾 AB III问题 H: 三角数问题 G: 3个数等式 数组下标查询&#xff0c;降低时间复杂度1405 问题 E: 世界杯xtu 数码串xtu oj 神经网络xtu oj 1167 逆序数&#xff08;大数据&#xff09;xtu oj 原根xtu oj 不定方程的正整数解xtu oj 最多的可变换字…

【Linux】VMware 安装 Ubuntu18.04.2

ISO镜像安装步骤 选择语言 English 选择键盘布局 English 选择系统 Ubuntu 虚拟机网卡地址&#xff0c;默认即可 代理地址&#xff0c;默认空即可 镜像地址&#xff0c;修改成阿里云地址 选择第二项&#xff0c;LVM 磁盘扩容技术 第一块硬盘名sda&#xff0c;默认…

Java项目实战II基于微信小程序的跑腿系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的现代生活中&…

透彻理解并解决Mockito模拟框架的单元测试无法运行的问题

本篇的实例基于Maven IDE (VS Code) 运行 在VS Code 运行的时候&#xff0c; 不需要在pom.xml 中添加任何插件就可以在测试类中看到如下的绿色按钮&#xff0c;单击就可以运行使用Mockito 注解 ExtendWith(MockitoExtension.class) 或是 Mockito 代码方式的测试。 不使用注…

CUDA学习笔记(1):安装和起步-1

CUDA安装和起步 写在前面硬件的准备学习的目的Pytorch学习CUDA方向 CUDA相关的书寻找CUDA的示例 安装Vsual Studio 2019下载CUDA和安装首先检查&#xff0c;自己的电脑是否已装过CUDA&#xff08;读作&#xff1a;kuda&#xff09;查看cuda-samples README.md&#xff0c;要求的…

获取pdf文件文字图片内容以及在PDF中插入图片

该功能用到如下jar包&#xff1a; //获取图片数据public void huoqu() throws IOException {File file new File("C:\\Users\\xiaomage\\Desktop\\123.pdf");PDDocument document Loader.loadPDF(file);/* PDFTextStripper stripper new PDFTextStripper();String…

【C#】NET 9中LINQ的新特性-CountBy

前言 在 .NET 中,使用 LINQ 对元素进行分组并计算它们的出现次数时,需要通过两个步步骤。首先,使用 GroupBy方法根据特定键对元素进行分类。然后,再计算每个组元素包含个数。而随着 .NET 9 版本发布,引入了一些新特性。其中 LINQ 引入了一种新的方法 CountBy,本文一起来了…

若依集成更好用的easyexcel

背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的&#xff0c;若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的&#xff0c;依赖于文件大小的限制在此前提下&#xff0c;如果没法满足客户的需求&#xff08;超大型文件的上传&am…

阿里内部正式开源“Spring Cloud Alibaba (全彩小册)”

年轻的毕业生们满怀希望与忐忑&#xff0c;去寻找、竞争一个工作机会。已经在职的开发同学&#xff0c;也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而&#xff0c;面试人群众多&#xff0c;技术市场却相对冷淡&#xff0c;面试的同学们不得不面临着 1 个…

Android问题记录 - Inconsistent JVM-target compatibility detected for tasks

文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 前段时间升级Android Studio后修复了一堆问题&#xff0c;详情请看&#xff1a;Android问题记录 - 适配Android Studio Ladybug/Java 21/AGP 8.0&#xff08;持续更新&#xff09;。我以为问题已经全部解决了…

分布式专题(1)之Redis持久化、主从与哨兵架构详解

一、Redis持久化 1.1 RDB快照&#xff08;snapshot&#xff09; 在默认的情况下&#xff0c;Redis将内存数据快照保存名字为&#xff1a;dump.rdb的二进制文件中&#xff0c;当然你在配置文件redis.conf中修改对应的二进制文件名。 redis开启RDB快照&#xff0c;可以在redis中…

Y20030053 JSP+SSM+MYSQL+LW+旅游系统的设计与实现 源码 配置 文档 全套资料

旅游系统的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 摘 要 随着旅游业的蓬勃发展和人们对休闲度假需求的不断增加&#xff0c;旅游业管理面临着越来越多的挑战。为了提高管理效率、优化客户体验并增强市场竞争力&#xff0c;本文介绍…

TypeScript进阶

Typescript进阶 基础知识 JavaScript 的核心特点就是灵活&#xff0c;但随着项目规模的增大&#xff0c;灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数&#xff0c;这样就充满了不确定性。而且这些不确定性可能需要在代码运行…