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协议和匿名邮件

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C/C++流星雨

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…

Google Cloud Platform云架构设计要点

在设计GCP&#xff08;Google Cloud Platform&#xff09;云架构时&#xff0c;有几个关键要点需要考虑&#xff0c;以确保系统的高效性、可扩展性和安全性。以下是一些重要的设计要点&#xff1a; 需求分析&#xff1a; 在开始设计之前&#xff0c;明确业务需求、性能需求、预…

Amazon SageMaker 和 Amazon Bedrock 有什么区别

Amazon SageMaker 和 Amazon Bedrock 有什么区别 文章目录 Amazon SageMaker 和 Amazon Bedrock 有什么区别1.服务定位和主要功能区别Amazon SageMakerAmazon Bedrock 2. 适用场景Amazon SageMakerAmazon Bedrock 3. 用户群体Amazon SageMakerAmazon Bedrock 4. 开发和部署流程…

在AWS上可以使用什么和人工智能相关的服务?

在人工智能技术飞速发展的今天&#xff0c;如何高效、安全地构建和部署AI模型&#xff0c;成为了众多开发者和企业关注的焦点。为此&#xff0c;亚马逊推出了 Amazon Bedrock——一个专为构建、训练和扩展大规模生成性AI应用而设计的平台。今天&#xff0c;我们九河云就来和大家…

Redis实战篇(一:项目导入和短信登录)

目录 一、实战内容概述 1.导入 SQL 2.有关当前模型 3.导入后端项目 4.导入前端项目 二、短信登录 1.基于 Session 实现登录流程 2.实现发送短信验证码 3.实现短信验证码登录和注册 4.实现登录校验功能 5.隐藏用户敏感信息 6.集群的 session 共享问题 7.Redis 替代…

国际荐酒师Peter助力第六届地博会,推动地理标志产品国际化发展

国际荐酒师Peter Lisicky助力第六届知交会暨地博会&#xff0c;推动地理标志产品国际化发展 第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会于2024年12月9日至11日在中新广州知识城盛大举行&#xff0c;吸引了全球众多行业专家、企业代表及相关机构齐聚一…

vue自定义弹窗点击除了自己区域外关闭弹窗

这里使用到vue的自定义指令 <div class"item" v-clickoutside"clickoutside1"><div click"opencity" class"text":style"{ color: popup.iscitypop || okcitylist.length ! 0 ? #FF9500 : #000000 }">选择地区…

2024 年 11 月区块链游戏研报:牛市加持下的 GameFi 破局之路

2024 年 11 月区块链游戏研报 作者&#xff1a;Stella L (stellafootprint.network) 数据来源&#xff1a;Footprint Analytics 区块链游戏 Research 页面 2024 年 11 月 Web3 游戏行业市场增长显著但大规模采用策略仍在演进。随着比特币创下历史新高并接近 10 万美元里程碑…

做题时HashSet、TreeSet、LinkedHashSet的选择

一、HashSet 此类实现 Set 接口&#xff0c;由哈希表&#xff08;实际上是一个 HashMap 实例&#xff09;支持。它不保证 set 的迭代顺序&#xff1b;特别是它不保证该顺序恒久不变。 代码&#xff1a; import java.util.HashSet; import java.util.LinkedHashSet; import ja…

【Rive】Android与Rive交互

1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationViewandroid:id"id/rive_view"android:layout_width"match_parent"android:layout_height"match_parent"android:adjustViewBounds"…

【Linux】通过crond服务设置定时执行shell脚本,实际执行时间却延迟了8小时

一、问题描述 通过使用crond服务设置定时任务&#xff0c;在每天凌晨的2:00执行脚本&#xff0c;但检查结果时发现&#xff0c;实际执行时间却在上午10点。 检查shell脚本执行结果发现&#xff0c;实际执行脚本时间在上午10:00&#xff0c;延迟了8小时。 检查系统时间&#xf…

Kubesphere上搭建Nacos集群

Kubesphere上搭建Nacos集群 使用最新版本&#xff1a;nacos/nacos-server 1&#xff09;先创建一个有状态副本集&#xff0c;获取到dns 2&#xff09;创建集群配置文件 cluster.conf&#xff1a; mp-nacos-0.mp-nacos-lex8.mp-prod.svc.cluster.local:8848 mp-nacos-1.mp-n…

鸿蒙ArkTS如何实现数据可视化:饼状图/柱状图/折线图

鸿蒙数据可视化系列 在我们鸿蒙APP开发中&#xff0c;经常需要使用到一些图表的开发&#xff0c;本文主要介绍使用 McCharts 框架绘制柱状图的方法 配套指导视频地址&#xff1a;鸿蒙数据可视化系列-McCharts使用介绍_哔哩哔哩_bilibili 1. 第三方库介绍 1.1. McCharts Mc…

锐捷网络设备常用命令(交换机、路由器)

因公司办公网络设备转为锐捷产品&#xff0c;特此学习一些锐捷交换机和路由器的相关配置&#xff1a; enable 进入特权模式 configure terminal 进入全局模式 logging on 日志显示&#xff08;默认&#xff09; no logging on 关闭日志显示 exit 返回上一层 end 返回到特权模式…

一文读懂模型的数据集Datasets

众所周知&#xff0c;数据集&#xff08;Datasets&#xff09;对于模型来说非常重要&#xff0c;它是大模型这台庞大机器的原材料&#xff0c;在机器学习领域中所有的原生模型都是通过数据集训练出来的。本文将以通俗易懂的方式为大家介绍一下大模型的数据集&#xff0c;让大家…

如何通过自学成长为一名后端开发工程师?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一个很好的问题&#xff1a;如何通过自学成为一名后端开发工程师&#xff1f; 为了解答这个疑问&#xff0c;我特意制作了一个视频来详细分享我的看法和建议。 戳链接&#xff1a;如何通过自学成长为一名后端开…

C语言 静态变量 +静态函数

静态局部变量 特点 静态局部变量常用于需要在函数调用之间保持数据持久性和状态的情况&#xff0c;例如计数器、缓存等。 静态全局变量 特点 静态全局变量适用于在当前源文件内共享数据&#xff0c;但希望限制其它源文件的访问权限的情况。它们可以避免全局命名空间的干扰&…

A6481 基于Java+mysql+Vue+MySQL+uni-app在线商城系统微信小程序的设计与实现 配置 源码 全套资料

在线商城系统微信小程序 1.摘要2. 系统开发的目的和意义3.功能结构4.界面展示5.源码获取 1.摘要 随着信息时代的发展&#xff0c;用户的消费水平也在不断的上升&#xff0c;传统超市以及电子商务在线上推广和购物体验等方面也到了一个瓶颈期。淘宝、京东等购物平台需要占手机更…

TEA系列例题

解析 TEA 加密算法(C语言、python)&#xff1a;_tea加密-CSDN博客 CTF-RE 从0到N: TEA_tea加密原理-CSDN博客 1 字节 8 位 牢记密文的64位和密钥的128位,最好可以自己独立的写出tea解密代码 相当于密文是传入8个字符类型数据或者是2个整型数据, 密钥是16个字符数据或者4个…

静态属性与实例属性:深入理解Java中的属性类型

在Java编程中&#xff0c;属性&#xff08;也称为字段&#xff09;是类的重要组成部分&#xff0c;它们用于存储对象的状态。根据属性的作用范围和生命周期&#xff0c;Java中的属性可以分为两类&#xff1a;静态属性&#xff08;Static Attributes&#xff09;和实例属性&…