网工 安全基本概念

安全攻击的类型

重放攻击和伪造攻击的区别

重放攻击(Replay Attack)和伪造攻击(Forgery Attack)是两种不同的安全攻击类型,它们的目标和机制有所不同。下面是这两种攻击的详细区别:

重放攻击(Replay Attack)

重放攻击是指攻击者截获了合法的数据包,并在以后的时间点重新发送这些数据包,以达到非法的目的。这种攻击利用了网络通信中的延迟或缺乏有效的验证机制。攻击者通常会在数据包被发送后立即截获它,并在适当的时候重新发送,这样接收方可能会误认为这是新的、合法的请求。

特点:

  • 延迟发送:攻击者不是立即使用截获的数据包,而是等待一段时间后重新发送。
  • 目标:通常是为了重复某个操作或命令,例如重新发送支付指令。
  • 防范措施:使用时间戳、序列号、一次性口令(OTPs)等机制来确保数据的新鲜性。

伪造攻击(Forgery Attack)

伪造攻击是指攻击者创建并发送虚假的数据包,试图冒充合法用户或系统。这种攻击中,攻击者不是简单地重发已有的数据包,而是自己构造数据包以达到特定目的,如获取敏感信息或执行未经授权的操作。

特点:

  • 创造虚假数据:攻击者自行构造数据包,而非仅仅重发截获的数据包。
  • 目标:通常是冒充合法用户或实体,以获取未授权的访问权限或执行某些操作。
  • 防范措施:使用数字签名、证书验证等手段来确认数据的真实性和完整性。

比较

  • 动机:重放攻击的动机通常是重复一个操作,而伪造攻击则是试图冒充他人或系统。
  • 方法:重放攻击基于截获的数据包,而伪造攻击则基于攻击者自行构造的数据包。
  • 防范:重放攻击可以通过时间戳、序列号等机制来防止,而伪造攻击则需要更强大的身份验证和数据完整性检查。

实例

  • 重放攻击实例:假设Alice向Bob发送了一条转账指令,攻击者Charlie截获了这条指令并稍后重新发送给Bob,企图让Bob再次执行转账。
  • 伪造攻击实例:假设Charlie想要冒充Alice向Bob发送一条消息,他创建了一个带有Alice签名的消息,但实际上这个签名是伪造的。

总之,重放攻击和伪造攻击虽然都是为了欺骗接收方,但它们的方法和目标不同。防范这两种攻击需要采用不同的技术和策略。

网络安全中的被动攻击和主动攻击是按照攻击者的行动性质来区分的。被动攻击通常是指攻击者试图秘密地收集信息而不对数据进行任何修改的行为;而主动攻击则是指攻击者不仅收集信息,还会试图改变数据或者影响系统的正常运行。以下是四种主要的攻击类型及其简要描述:

被动攻击

被动攻击通常不改变数据,而是秘密地监听或监视数据传输。主要包括:

  1. 截获 (Interception)
    • 攻击者监听网络中的数据传输,例如通过嗅探器(packet sniffer)工具捕获网络上的数据包。这种方式可以用来获取未加密的数据,如用户名、密码、敏感文档或其他有价值的信息。
    • 防范措施:使用加密技术,如SSL/TLS协议保护HTTP连接(HTTPS),使用IPSec加密IP数据包等。
  2. 流量分析 (Traffic Analysis)
    • 即使数据被加密,攻击者仍然可以通过分析数据包的数量、大小、频率和流向等特征来推断出一些有用的信息。这种攻击特别适用于长期监控,可以帮助攻击者了解网络活动模式。
    • 防范措施:使用加密通信,以及实施网络混淆技术,如流量填充,来降低敏感信息被推断的风险。

主动攻击

主动攻击涉及到攻击者对数据的直接干预,主要包括:

  1. 中断 (Interruption)
    • 攻击者试图中断或阻止合法用户访问资源或服务,例如通过拒绝服务(DoS)或分布式拒绝服务(DDoS)攻击。
    • 防范措施:部署防火墙、负载均衡器、流量清洗中心等设备和技术来缓解此类攻击。
  2. 篡改 (Modification)
    • 攻击者在数据传输过程中更改数据,例如通过中间人(MITM)攻击来修改数据包的内容。
    • 防范措施:使用数字签名、消息认证码(MACs)等技术来确保数据完整性和真实性。
  3. 伪造 (Forgery)
    • 攻击者创建并发送虚假的数据包,试图冒充合法用户或系统。这种攻击中,攻击者不是简单地重发已有的数据包,而是自己构造数据包以达到特定目的,如获取敏感信息或执行未经授权的操作。
    • 防范措施:使用数字签名、证书验证等手段来确认数据的真实性和完整性。

总结

  • 被动攻击:主要关注于秘密地收集信息,不改变数据本身,包括截获和流量分析。
  • 主动攻击:涉及到数据的直接干预,包括中断服务、篡改数据和伪造数据。

为了抵御这些攻击,需要实施多层防御策略,包括但不限于使用加密技术、部署防火墙、定期进行安全审计和教育员工提高安全意识等措施。

网络提供的安全服务旨在保护网络通信和数据的安全性、完整性和可用性。以下是网络中常见的几种安全服务:

  1. 认证 (Authentication)
    • 定义:验证用户或系统的身份,确保只有授权的实体才能访问资源。
    • 实现方式:密码、生物识别、智能卡、双因素认证(例如短信验证码)等。
  2. 授权 (Authorization)
    • 定义:确定经过认证的用户或系统能够访问哪些资源或执行哪些操作。
    • 实现方式:访问控制列表 (ACLs)、角色基础的访问控制 (RBAC)、权限管理系统等。
  3. 加密 (Encryption)
    • 定义:将明文数据转换为密文,以防止未经授权的访问。
    • 实现方式:对称加密(如AES)、非对称加密(如RSA)、哈希函数等。
  4. 数据完整性 (Data Integrity)
    • 定义:确保数据在传输过程中不被篡改。
    • 实现方式:使用散列函数(如SHA-256)、消息认证码 (MACs)、数字签名等。
  5. 机密性 (Confidentiality)
    • 定义:保护数据不被未经授权的实体查看。
    • 实现方式:加密技术、安全套接层/传输层安全 (SSL/TLS) 协议等。
  6. 不可否认性 (Non-repudiation)
    • 定义:提供证据证明某项操作确实由某个实体执行,防止该实体否认自己的行为。
    • 实现方式:数字签名、时间戳服务等。
  7. 可用性 (Availability)
    • 定义:保证服务和资源始终对合法用户可用。
    • 实现方式:冗余设计、灾难恢复计划、负载均衡、反DDoS措施等。
  8. 审计 (Audit)
    • 定义:记录和追踪网络活动,以便事后分析和验证。
    • 实现方式:日志记录、事件监控、入侵检测系统 (IDS) 等。
  9. 隐私 (Privacy)
    • 定义:保护个人信息不被未经授权的披露。
    • 实现方式:数据最小化原则、匿名化技术、数据脱敏等

这些安全服务通常通过各种技术和协议来实现,例如:

  • 传输层安全 (TLS):用于加密Web通信,确保数据在客户端与服务器之间的传输安全。
  • 安全套接字层 (SSL):早期版本的TLS,用于加密Web通信。
  • 虚拟专用网络 (VPN):通过加密通道在公共网络上提供私有连接。
  • 防火墙 (Firewall):用于监控和过滤进出网络的流量。
  • 入侵检测系统 (IDS):监控网络流量以检测潜在的攻击。
  • 入侵预防系统 (IPS):除了检测外,还能够采取行动阻止攻击的发生。
  • 数字证书 (Digital Certificates):用于验证网络实体的身份,并支持加密通信。

PDR 安全保护模型

PDR模型(Protection-Detection-Response,保护-检测-响应)是一种网络安全模型,由美国国际互联网安全系统公司(ISS)提出。该模型体现了主动防御的思想,并强调了网络安全是一个时间问题。PDR模型的核心组成部分包括三个阶段:保护(Protection)、检测(Detection)和响应(Response)。

PDR模型的组成部分

  1. 保护 (Protection)
    • 目标:通过各种安全措施来防止或减轻攻击的影响。
    • 实现方式:包括但不限于防火墙配置、加密技术、访问控制列表(ACLs)、防病毒软件、补丁管理和安全配置等。
  2. 检测 (Detection)
    • 目标:及时发现网络中的异常行为或安全事件。
    • 实现方式:使用入侵检测系统(IDS)、日志分析、网络监控工具、端点检测与响应(EDR)工具等。
  3. 响应 (Response)
    • 目标:对检测到的安全事件进行快速有效的响应,以减轻损失。
    • 实现方式:制定应急响应计划、隔离受影响的系统、修复漏洞、恢复受损的服务等。

PDR模型的特点

  • 时间模型:PDR模型是一个基于时间的安全模型,它强调了攻击者和防御者之间的时间竞赛。模型中的公式 Et = Dt + Rt - Pt 表示有效时间(Effective Time, Et)等于检测时间(Detection Time, Dt)加上响应时间(Response Time, Rt)减去保护时间(Protection Time, Pt)。如果防御者能够在攻击者造成实质性损害之前完成检测和响应,则系统被认为是安全的。
  • 可量化和可数学证明:PDR模型提供了量化安全水平的方法,并允许通过数学模型来评估和优化安全策略的有效性。

PDR模型的应用

  • 安全策略制定:组织可以基于PDR模型来制定全面的安全策略,确保从保护、检测到响应各个环节都有相应的措施。
  • 安全评估:通过模拟攻击场景来评估现有安全措施的有效性,并根据PDR模型调整策略。
  • 应急响应:当发生安全事件时,组织可以根据PDR模型快速调动资源进行响应,减少损失。

网工 Tcp

面向连接的概念:在自己监听的端口接收到连接的请求,然后经过“三次握手”,维护一定的数据结构和对方的信息,确认了该信息:我发的内容对方会接收,对方发的内容我也会接收,直到连接断开。

断开:经过“四次挥手”确保双方都知道且同意对方断开连接,然后在remove为对方维护的数据结构和信息,对方之后发送的包也不会接收,直到 再次连接。

TCP的连接不是建立了一座桥(或者虚拟的专用通道),TCP更好的比喻是在码头上增加了记录人员,核查人员和督导人员,至于IP层和数据链路层,它没有任何改造。

TCP 三次握手的过程如下(以下同时举例一个生活场景帮助理解):

过程解释

  1. 第一次握手:客户端向服务器发送一个带有SYN(同步)标志位的数据包(就好像客户端向服务器说“你好,我想和你建立连接” ),同时还会选择一个初始序列号(seq),假设为x,此时客户端进入SYN_SENT(已发送同步状态)。
  2. 第二次握手:服务器收到客户端的SYN数据包后,知道客户端要建立连接。服务器向客户端返回一个带有SYN和ACK(确认)标志位的数据包(意思是“你好,我收到你建立连接请求了,我也同意建立连接” )。其中ACK的值为客户端发送的seq + 1(即x + 1)表示确认收到客户端的信息,服务器也选择一个自己的初始序列号(假设为y),此时服务器进入SYN_RCVD(同步收到状态)。
  3. 第三次握手:客户端收到服务器的SYN + ACK数据包后,检查ACK是否正确(确认是x + 1),如果正确则向服务器发送一个带有ACK标志位的数据包(意思是“好的,我知道你收到我的请求并且同意了,那我们连接建立吧” ),ACK的值为服务器的序列号y + 1 ,此时客户端和服务器都进入ESTABLISHED(已建立连接状态),连接建立成功,可以开始传输数据了。

举例(生活场景类比)

把客户端比作小明,服务器比作一个公司的前台。

  1. 第一次握手:小明打电话给公司(类比客户端发送SYN包)说“我想找你们公司谈个业务合作”(这是表达建立联系的意图),同时自己心里默默记了个数字(初始序列号x ,比如是100 ,就好像是自己这次沟通的一个标识)。
  2. 第二次握手:前台接到电话(服务器收到SYN),然后跟小明说(回复SYN + ACK包) “好的先生,我知道您要谈业务合作(确认收到请求),我们可以合作,我是前台(类比服务器的初始序列号y ,假设是200),您的请求编号我记好了是到您了(确认号是x + 1 = 101)”。
  3. 第三次握手:小明听到前台回复(收到SYN + ACK包),确认了前台确实知道自己的请求(检查ACK是101),然后说(发送ACK包)“好的,那我现在过来(表示确认建立连接),我知道你是前台(确认序列号y + 1 = 201)” ,然后双方都知道接下来可以进行业务沟通(数据传输)了。

以下是TCP中常见标志位的作用:

1. URG(紧急标志)

  • 当设置为1时表明发送端向另一端使用紧急方式发送数据,即此报文段中有紧急数据。
  • 紧急数据不按常规的排队顺序来传送(绕过接收方缓存机制),而是系统会尽快传送。发送方的TCP会把紧急数据放到本报文段数据的最前面,紧急指针指向数据段中的某个字节(从第一个字节到指针所指的字节就是紧急数据)。

2. ACK(确认标志)

  • 当ACK = 1时表示确认号字段有效。
  • 大多数情况下该标志位是置位的,除了最初建立连接时的SYN包之外,第一次请求建立连接时ack为0 (在三次握手过程中,第二次握手ACK标志置1 ),在连接建立之后传输数据等情况下,TCP规定该位必须设置为1。
  • 接收端用确认号来给发送端反馈已经成功接收到的数据信息,其值为希望接收的下一个数据包起始序号,即意味着确认号之前的序号数据已经被接收。

3. PSH(推标志)

  • 当设置为1时,指示接收方应该尽快将这个报文交给应用层。
  • 表示需要将收到的数据立刻传给上层应用协议而无需等待缓冲区满等情况。在两个应用进程进行交互式通信时比较常用,例如客户发一个请求给服务器时希望立即能够收到对方的响应,客户应用程序可以通知TCP使用推送(push)操作。

4. RST(复位标志)

  • 当设置为1时表示连接复位。
  • 用于复位那些产生错误的连接(如因为主机崩溃或其他原因导致的错误情况);也被用来拒绝错误和非法的数据包。
  • 比如当一个没有被使用的端口即使发来了连接请求,也可以返回一个RST设置为1的包;程序宕掉或切断电源等原因导致主机重启的情况下,如果对方还在通信,原有的TCP通信也无法继续进行,若对方发过来数据则可以用RST = 1强制断开连接。

5. SYN(同步标志)

  • 在建立连接时使用,用于同步连接双方的序列号和确认应答号等信息。
  • 最初建立连接时,客户端发送SYN = 1,ACK = 0的包请求连接,服务端收到后回复SYN = 1,ACK = 1的包表示响应连接请求,在三次握手过程中SYN标志总共会出现两次(双方各一次)。

6. FIN(结束标志)

  • 当设置为1 时表示发送方完成任务,今后不会有数据发送,希望断开连接。
  • 可以由通信双方的任一方发出,表示此方向的数据传输结束。当通信结束希望断开连接,通信双方的主机之间就可以相互交换FIN位置为1的TCP段,每个主机又对对方的FIN包进行确认应答以后就可以断开连接。

TCP 流量控制和拥塞控制

  1. 序号:解决乱序的问题,确保先来后到
  2. 确认序号:发出去的包应该有确认,要不然我怎么知道对方有没有收到呢?如果没有收到就应该重新发送,直到送达。这个可以解决不丢包的问题。
  3. 窗口大小(滑动窗口):TCP 要做流量控制,通信双方各声明一个窗口,标识自己当前能够的处理能力,别发送的太快,撑死我,也别发的太慢,饿死我。(针对接收方的缓存)
  4. 窗口大小(拥塞窗口):拥塞控制(控制网络中发送的包)TCP 发送包常被比喻为往一个水管里面灌水,而 TCP 的拥塞控制就是在不堵塞,不丢包的情况下,尽量发挥带宽。水管有粗细,网络有带宽,也即每秒钟能够发送多少数据;水管有长度,端到端有时延。在理想状态下,水管里面水的量 = 水管粗细 x 水管长度。对于到网络上,通道的容量 = 带宽 × 往返延迟。

TCP 建立连接采用三次握手而不是两次握手主要有以下几个关键原因:

一、防止已失效的连接请求报文突然又传送到服务器端而产生错误(针对特殊状况)

  1. 假设采用两次握手建立连接:
    • 客户端发送一个连接请求报文(SYN)给服务器。
    • 服务器收到这个请求后,返回一个确认报文(ACK/SYN)表示同意建立连接。此时两次握手完成,连接建立。
    • 但是如果客户端发出的第一个连接请求报文在网络中延迟、阻塞,导致它在某个网络节点中滞留了很长时间。
    • 客户端在一段时间后没有收到服务器的确认,于是重新发送一个新的连接请求报文,这次新的请求正常到达服务器,经过两次握手后连接建立并完成数据传输,最后关闭连接。
    • 而此时,那个延迟的旧连接请求报文突然到达了服务器。如果是两次握手,服务器会认为这是一个新的连接请求,然后向客户端发送确认报文并建立连接,而客户端此时并不会理会这个旧的确认报文,也不会向服务器发送数据,导致服务器一直等待客户端发送数据,浪费服务器的资源。

二、三次握手才能让双方都确认自己和对方的收发能力正常

  1. 第一次握手:客户端发送 SYN 报文给服务器,服务器知道了客户端的发送能力正常,自己的接收能力正常。
  2. 第二次握手:服务器回应 SYN + ACK 报文给客户端,客户端收到后知道了自己的发送和接收能力正常,也知道了服务器的接收和发送能力正常。
  3. 第三次握手:客户端回应 ACK 报文给服务器,服务器收到后知道了自己的发送和接收能力正常,也确认了客户端的接收能力正常。

只有经过这三次信息的交互和确认,双方才能确定彼此的连接参数是可靠的,连接才能正式建立,从而为后续的数据传输提供稳定可靠的基础。因此,TCP 采用三次握手来建立连接是为了保证连接建立的可靠性和准确性,避免出现上述可能的异常情况。

TCP 协议的四次挥手过程如下(以下假设客户端主动发起连接关闭请求):

第一次挥手

  • 客户端打算关闭连接,此时客户端向服务器发送一个带有FIN(Finish,完成)标志位的TCP报文段,表示客户端不再发送数据了 。
  • 发送后客户端进入FIN_WAIT_1(终止等待1)状态 。

第二次挥手

  • 当服务器收到客户端的FIN报文后,服务器会向客户端发送一个ACK(Acknowledge,确认)报文段,表明服务器已经收到客户端的关闭请求。
  • 此时服务器进入CLOSE_WAIT(关闭等待)状态 ,客户端收到这个ACK后进入FIN_WAIT_2(终止等待2)状态。在这个阶段,从客户端到服务器这个方向的连接已经关闭(客户端不能再发数据过来),但从服务器到客户端方向的连接还未关闭(服务器如果还有数据可以继续发向客户端)。

第三次挥手

  • 当服务器完成数据发送(如果还有的话),准备关闭连接时,服务器向客户端发送FIN报文段,告知客户端服务器这边也要关闭连接了。
  • 然后服务器进入LAST_ACK(最后确认)状态,等待客户端的确认应答。

第四次挥手

  • 客户端收到服务器的FIN报文后,必须对这个FIN进行确认,向服务器发送ACK报文段。
  • 发送完成后,客户端进入TIME_WAIT(时间等待)状态。经过2倍的MSL(Maximum Segment Lifetime,报文最大生存时间)时长后,如果期间没有收到服务器重发的FIN报文,客户端就进入CLOSED(关闭)状态 。
  • 当服务器收到客户端的ACK报文后,服务器也进入CLOSED状态,至此双方的连接完全关闭。

一些相关要点和原因解释

为什么需要四次挥手而不是三次(类似三次握手那样)
主要是因为TCP是全双工通信,在关闭连接时,双方都需要单独关闭各自的发送通道和接收通道。第二次和第三次挥手之间存在服务器可能还需要发送数据给客户端的情况,不能合并成一步。

客户端为什么要等待2MSL时长(在TIME_WAIT状态)

  1. 确保最后一个ACK报文能被服务器收到,如果ACK丢失,服务器会重发FIN报文,在2MSL时间内客户端可以重新发送ACK 。
  2. 经过2MSL时长可以让本次连接中在网络中残留的报文段都消失,防止新连接中收到旧连接的残留报文而导致异常。

状态变化总结(客户端和服务器)

  • 客户端:ESTABLISHED -> FIN_WAIT_1 -> FIN_WAIT_2 -> TIME_WAIT -> CLOSED
  • 服务器:ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED

TCP 流量控制

在 TCP 连接中,存在“半打开”和“半关闭”的状态概念:

一、半打开(Half-Open)

  1. 定义:
    • 半打开状态是指在 TCP 连接的一端异常关闭(例如主机崩溃、网络故障等),而另一端却不知道的情况。此时,正常的一端还认为连接是正常的,仍然可以向异常的一端发送数据,但异常的一端无法响应。
  2. 产生场景和示例:
    • 例如,客户端和服务器建立了 TCP 连接,在通信过程中,服务器突然发生故障(如硬件故障导致系统崩溃),但客户端并不知道服务器已经出问题。此时,从客户端的角度来看,连接还是正常的,但实际上服务器已经无法接收或处理数据,连接处于半打开状态。
    • 在这种情况下,如果客户端继续向服务器发送数据,由于服务器无法响应,这些数据可能会丢失,并且客户端可能需要经过一段时间后才能检测到连接出现问题(例如通过超时机制等)。

二、半关闭(Half-Close)

  1. 定义:
    • 半关闭是指在一个 TCP 连接中,一端已经关闭了它的输出信道(发送数据的能力),但仍然可以接收来自另一端的数据。也就是说,连接的一个方向已经关闭,而另一个方向仍然保持打开。
  2. 产生场景和示例:
    • 比如,客户端向服务器发送了一个关闭输出信道的请求(执行 shutdown(socket, SHUT_WR) 这样的操作),这意味着客户端不再向服务器发送数据,但它仍然可以接收服务器发送的数据。此时,连接处于半关闭状态。
    • 一个实际的例子是,客户端已经完成了数据的发送,但还需要接收服务器的一些响应或最后的确认信息,这时就可以使用半关闭状态。客户端关闭输出信道后,服务器可能继续发送剩余的数据,直到完成它的任务后再关闭连接

TCP 拥塞控制 (cnnd 为拥塞窗口)

慢启动算法:一开始设置为1个MSS(最大报文段)拥塞窗口,收到确认后为发送2个MSS,收到确认后发送2的3次方个MSS ,之后一直扩大。

拥塞避免算法:当到达 16个MSS 大小(上图),按照+1个MSS大小一直到发生计时器超时,这里拥塞窗口回到慢启动阶段再来,这里新的拥塞阀值为超时时拥塞窗口的一半(如上图发生拥塞是为24那么新阀值为12)。到达阀值后再进入拥塞避免算法,依次增加1个MSS大小。

TCP 拥塞控制是一种用于管理网络拥塞的机制,目的是避免网络因为过多的数据传输而发生拥塞崩溃,同时保证网络资源的公平共享和高效利用。

一、拥塞窗口(Congestion Window,cwnd)

  • 这是 TCP 用于进行拥塞控制的关键参数。
  • 它限制了发送方在未收到确认之前可以发送的数据量。
  • 初始时,拥塞窗口通常较小,然后随着数据的成功传输和确认,逐渐增大。

二、慢启动(Slow Start)

  1. 阶段特点:
    • 当一个新的 TCP 连接建立或者在长时间的空闲后重新开始传输时,拥塞窗口初始化为一个较小的值(通常是 1 个或几个 MSS,Maximum Segment Size,最大报文段长度)。
    • 每收到一个 ACK 确认,拥塞窗口就会增加一个 MSS 的大小。
    • 例如,开始时 cwnd = 1,发送一个报文段,收到确认后 cwnd = 2,再发送两个报文段,收到相应确认后 cwnd = 4,以此类推,呈指数增长。
  2. 阈值(Threshold)的引入:
    • 当拥塞窗口增长到一个特定的阈值(ssthresh,初始值通常是 65535 字节或其他根据网络状况设定的值)时,慢启动阶段结束,进入拥塞避免阶段。

三、拥塞避免(Congestion Avoidance)

  1. 增长方式变化:
    • 在拥塞避免阶段,拥塞窗口不再呈指数增长,而是每经过一个往返时间(RTT),拥塞窗口只增加 1 个 MSS(即线性增长)。
    • 这样可以更加稳定地增加数据传输量,同时降低网络拥塞的风险。
  2. 网络拥塞的检测与处理:
    • 如果发生超时重传(即发送方在一定时间内没有收到 ACK 确认),TCP 认为网络发生了拥塞。
    • 此时,将阈值 ssthresh 设为当前拥塞窗口 cwnd 的一半,拥塞窗口 cwnd 重新初始化为 1 个 MSS,然后重新进入慢启动阶段。
    • 除了超时重传,还有快速重传和快速恢复机制来处理可能的拥塞情况。

四、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)

  1. 快速重传:
    • 当接收方收到一个失序的报文段时,会立即发送重复的 ACK 给发送方,表明期望收到下一个按序的报文段。
    • 当发送方连续收到三个重复的 ACK 时,就认为有报文段丢失,立即重传丢失的报文段,而不必等待超时定时器到期。
  2. 快速恢复:
    • 在快速重传之后,不执行慢启动,而是将拥塞窗口 cwnd 设为新的 ssthresh 值(即当前拥塞窗口的一半),然后线性增加 cwnd(每收到一个重复的 ACK,cwnd 增加 1 个 MSS)。
    • 当收到新的 ACK 确认新数据时,将 cwnd 恢复到拥塞避免阶段的增长方式。

例如,在一个网络中,TCP 连接开始建立,拥塞窗口初始为 1 个 MSS,经过慢启动指数增长到阈值,然后进入拥塞避免线性增长。如果出现超时重传,就重新调整阈值和拥塞窗口大小,重新开始慢启动;如果是快速重传,则进入快速恢复阶段进行相应处理。

通过超时重传和快速重传机制进行调整

  1. 超时重传
    • 当发送方在一定时间内没有收到确认(ACK)时,认为发生了超时。
    • 此时,TCP 认为网络可能出现了拥塞。
    • 处理方式是将阈值 ssthresh 设为当前拥塞窗口 cwnd 的一半,拥塞窗口 cwnd 重新初始化为 1 个 MSS,然后重新进入慢启动阶段。
    • 这种大幅度的调整可以迅速减少发送的数据量,给网络一定的时间来缓解拥塞状况。
  2. 快速重传
    • 当接收方收到一个失序的报文段时,会立即发送重复的 ACK 给发送方,表明期望收到下一个按序的报文段。
    • 当发送方连续收到三个重复的 ACK 时,就认为有报文段丢失,立即重传丢失的报文段,而不必等待超时定时器到期。
    • 随后进入快速恢复阶段,将拥塞窗口 cwnd 设为新的 ssthresh 值(即当前拥塞窗口的一半),并线性增加 cwnd(每收到一个重复的 ACK,cwnd 增加 1 个 MSS),避免了因等待超时而长时间停止数据传输,同时也能较快地恢复到正常的数据传输状态,减少了网络拥塞的可能性。

超时重传的原理

超时重传机制是 TCP 保证数据可靠传输的一个重要机制,其原理如下:

一、定时器设置

  1. 当发送方发送一个数据报文段时,它会同时启动一个定时器。
  2. 定时器的时长是根据网络的往返时间(RTT)以及一些其他因素动态计算出来的。通常,初始的定时器时长会基于一个经验值或者通过一些测量和估算方法来确定。

二、超时判断

  1. 发送方在定时器计时期间会等待接收方返回的确认(ACK)。
  2. 如果在定时器超时之前收到了确认,说明数据报文段已经成功到达接收方,发送方就会取消定时器,并继续发送下一个数据报文段。
  3. 如果定时器超时了还没有收到确认,发送方就认为该数据报文段在网络中丢失或者出现了其他传输问题。

三、重传操作

  1. 一旦发生超时,发送方会重新发送该数据报文段。
  2. 同时,发送方可能还会调整定时器的时长。例如,根据网络的拥塞状况和之前的往返时间测量结果,增加或减小定时器的时间间隔,以适应网络的变化。
  3. 重传后,再次启动定时器,继续等待确认。如果再次超时,可能会继续重传,并且可能会进一步调整定时器和拥塞窗口等参数,以应对可能的网络拥塞或其他问题。

四、RTT 测量与更新

  1. 在数据传输过程中,发送方会持续测量每个数据报文段的往返时间(RTT)。
    • 即从发送数据报文段的时刻到收到相应确认的时间间隔。
  2. 发送方会根据多个 RTT 的测量值,采用一些算法(如指数加权移动平均等)来更新定时器的时长,以使其更准确地反映当前网络的实际状况。
    • 例如,如果最近几次的 RTT 变长,说明网络状况可能变差,定时器时长可能会相应增加,以减少不必要的重传;反之,如果 RTT 变短,定时器时长可能会适当减小,以提高数据传输的效率。

练习题

TCP使用慢启动拥塞避免机制进行拥塞控制。当拥塞窗口大小为16时,发送节点出现超时未收到确认现象时,将采取的措施是(1),再经过5轮后的拥塞窗口大小为(2),则上述空格内容为() 请解答

在TCP的拥塞控制算法中,当发送节点出现超时未收到确认的现象时,它假定网络中发生了拥塞,因此需要采取措施减少发送到网络中的数据量以避免进一步的拥塞。具体措施如下:

  1. 慢启动阈值(ssthresh)的更新:当检测到超时时,慢启动阈值ssthresh会被设置为当前拥塞窗口cwnd的一半(为了避免除以奇数出现的小数一般会向下取整),但最少要大于2。如果当前拥塞窗口大小为16,则新的慢启动阈值ssthresh应该是8(16的一半)。
  2. 拥塞窗口(cwnd)的重置:超时发生后,拥塞窗口cwnd会被重置为1个MSS(Maximum Segment Size,最大报文段长度)。这是为了重新开始慢启动过程,逐步增加发送速率直到再次达到ssthresh或遇到网络拥塞。
  3. 慢启动与拥塞避免:当cwnd等于ssthresh时,从慢启动阶段转换到拥塞避免阶段。在慢启动阶段,每收到一个ACK,cwnd增加一个MSS;而在拥塞避免阶段,每一轮次(每次接收到与cwnd数量相等的ACK)增加一个MSS。

根据上述规则,当拥塞窗口大小为16时,出现超时后,采取的措施是将cwnd减少为1(即1个MSS),并将ssthresh设置为8。

接下来,经过5轮次(假设每轮成功收到ACK并且没有发生进一步的超时)后的拥塞窗口大小计算如下:

  • 第1轮后:cwnd = 1 (慢启动阶段)
  • 第2轮后:cwnd = 2 (慢启动阶段)
  • 第3轮后:cwnd = 8 (拥塞避免阶段,每次增加1 MSS)达到阈值大小后cwnd增加一个MSS
  • 第4轮后:cwnd = 9
  • 第5轮后:cwnd = 10

因此,再经过5轮后的拥塞窗口大小为10。

网工 udp

  1. udp 协议的特点:
    • 无需事先建立连接(和对方打招呼)也不管网络连通性
    • 包丢了就丢了,不保证网络包的顺序到达
    • 不管网络环境是否拥塞,完全听众上层应用
  2. udp 的使用场景
    • 网络环境好,不易丢包(或者说对丢包不敏感的应用)
    • 不需要一对一沟通,适用广播或者多播的协议。例:dhcp 、vxlan,使用D类地址组播IGMP 协议
  3. 基于 udp 的使用场景
    • QUIC Quick UDP Internet Connections 协议(快速 UDP 互联网连接)是 Google 提出的一种基于 UDP 改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验。
    • 大多数流媒体协议
    • 采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。
    • IOT 物联网:推出了物联网通信协议 Thread,就是基于 UDP 协议的。
    • 移动流量上网的数据面对的协议 GTP-U 是基于 UDP 的。因为移动网络协议比较复杂,而 GTP 协议本身就包含复杂的手机上线下线的通信协议。

TCP面向字节流与UDP面向报文的区别

UDP(用户数据报协议)面向报文,TCP(传输控制协议)面向字节流,它们的区别如下:

一、数据传输单位

  • UDP面向报文
    • UDP把应用层交下来的数据添加首部后,就直接交付给IP层,既不合并,也不拆分,而是保留这些报文的边界。
    • 例如,应用层一次性传递1000字节的数据给UDP,UDP就会把这1000字节当作一个整体(一个报文)发送出去,在接收端也会一次性收到1000字节的完整数据。
    • 如果应用层传的报文大小超过了网络MTU(最大传输单元),则在IP层会进行分片,但对于UDP来说,它本身不关心也不知道IP层的分片操作。
  • TCP面向字节流
    • TCP把应用层交下来的数据看成一连串无结构的字节流,它不保留报文的边界。
    • 例如,应用层先后发送了两个1000字节的数据,TCP可能会根据当前的网络状况和自身的拥塞控制机制,把这2000字节数据划分成多个小的数据段进行发送,也可能会把它们合并成一个较大的数据段发送。
    • 在接收端,接收方的TCP把收到的数据放入接收缓冲区,应用程序可以根据自己的需求,在合适的时候从缓冲区读取任意数量的字节,因此接收方读取数据的次数和每次读取的数据量都是不确定的。

二、传输可靠性

  • UDP面向报文
    • UDP是不可靠的传输协议,它没有像TCP那样的确认、重传、拥塞控制等机制来保证报文的可靠传输。
    • 发送方UDP将报文发送出去后,并不关心报文是否正确到达接收方,也不会因为网络拥塞等原因而调整发送速率。
    • 因此,UDP适用于对实时性要求高、但对数据准确性要求相对较低的场景,如视频会议、直播等。
  • TCP面向字节流
    • TCP是可靠的传输协议,通过序列号、确认应答、超时重传、滑动窗口、拥塞控制等机制来保证数据的可靠传输和有序到达。
    • 对于发送的每一个字节的数据,都有相应的序列号进行标识,接收方会对接收到的数据进行确认应答,发送方如果在一定时间内没有收到确认,就会重传数据。
    • 这些机制确保了TCP能够在各种网络环境下,尽可能准确地将数据按序传输到接收方,适用于对数据准确性要求高的场景,如文件传输、电子邮件等。

三、数据处理方式

  • UDP面向报文
    • UDP的应用程序必须选择合适大小的报文。如果报文过大,在IP层分片后,若其中一个分片丢失,就会导致整个报文的丢失;如果报文过小,则会降低网络传输效率。
    • 由于UDP一次交付一个完整的报文,因此接收方的UDP在向上交付数据时,交付给应用层的也是一个完整的报文。应用程序需要根据报文的边界来识别不同的报文数据。
  • TCP面向字节流
    • 应用程序不必考虑数据的大小和边界问题,它只需关注从接收缓冲区读取数据的逻辑。
    • 例如,应用程序可以先读取一部分数据进行处理,然后再根据需要继续读取剩余数据,而不必关心这些数据在原始字节流中的位置和边界。
    • TCP的接收方会根据序列号将乱序到达的数据重新排序,然后放入接收缓冲区供应用程序读取。

网工 安全部分

内容
第一部分 网络安全概念
第二部分 病毒防治
第三部分 网络攻击以及防御
第四部分 数据加密
第五部分 数字签名
第六部分 安全认证
第七部分 网络安全协议
第八部分 网闸
第九部分 防火墙
第十部分 入侵检测技术
第十一部分 虚拟专用网
第十二部分 安全审计
第十三部分 等级保护

网工 论园区网的安全升级改造

摘要:

随着信息技术的迅猛发展和网络空间安全威胁的增加,国家对于信息安全的重视程度也在不断提升。2022年5月;集团总部对下属各单位信息系统安全作出指示并要求如下 :一是提高信息系统安全等级,确保达到《信息安全技术网络安全等级保护基本要求》中的二级标准;二是加强员工的信息安全意识教育;三是建立健全信息安全管理体系。任务下达后公司领导对此高度重视并作出部署,委派并任命我负责信息系统安全建设负责人。基于公司实际情况,我对相关工作作出调整,并将方案提交上级审核。对本次信息安全升级改造提出如下目标:一、通过并取得《信息安全技术网络安全等级保护要求》二级资质;二、组织各部门对信息系统中的安全风险进行评估通过邮件统一收集上报,;三、识别潜在的风险和威胁提出改相应改善措施。在团队共同努力下,项目得以顺利推进。最终我们成功获得了由公安机关颁发的信息安全等级保护二级资质,有效减少了来自互联网的Web攻击,增强了边界防护能力,并且提高了主机层面漏洞检测的频率和效率。这些成就不仅得到了集团领导的认可,也受到了用户的好评。

摘要:

本文主要讨论某传统制造企业信息安全改造,该企业主要的业务系统有MES(生产制造系统)、WMS(仓库管理系统)、SAP(企业资源规划)、OA(办公流程自动化)、CRM(客户资源管理)、邮件系统等。各业务系统及网络环境建设投入主要保障业务的可用性,在后续的使用过程中因为各种安全问题造成业务连续性中断时有发生;随着后续业务系统的不断接入,现有网络环境对企业的业务系统的可靠性、可用性、安全性构成的严峻的挑战;作为信息中心的运维负责人针对上述问题由我组织召开了信息安全会议,会议针对公司网络环境安全性提出不限于主要包括如下几点改造要求:1、网络出口线路改造;2、安全防护设备添加;3、系统安全策略修改;4、完善信息安全管理制度与培训。项目从2022年5年开始,于2022年11月结束,总投资200万元。经过为期7个月的升级改造,网络安全性显著增强,系统漏洞明显减少,保障了业务系统连续性、提高了企业员工安全意识,得到了集团领导和用户的肯定。项目施工过程中对磁盘访问速率没有缺憾,期待在后期的运维过程中加以改善。

2022年5月,集团总部发布文件要求下属子公司对信息系统进行全面排查,内容涵盖中心机房及弱电间的物理安全、边界防病毒安全、办公用机及服务器的终端安全、对外服务系统的应用安全、各系统数据安全以及安全制度的完善等方面。同时,要求各业务系统通过《信息安全技术等级保护测评要求》二级评审。

作为公司信息部门的主管,我被公司领导委派全面负责落实此次信息安全建设任务。根据公司的实际情况,我组织召开了跨部门的信息安全会议,邀请各部门负责人参与讨论。会上,我们对所有业务系统进行了详细评估,并收集了关键业务系统的运行状况数据。基于这些信息,我们将整个网络环境划分为不同的安全区域,并推行了区域责任制的安全管理方式。这样做的目的是确保每位员工都明确自己在维护信息安全方面所承担的责任,并能有效执行相应的安全措施。

业务现状:原有的业务系统主要侧重于业务可用性的开发和维护,在信息安全等级保护方面考虑不足。在网络安全、物理安全、主机安全、应用安全、数据安全以及安全制度等方面存在诸多不足。根据各部门反馈的信息及过往发生的安全事件,我们进行了全面梳理:1、过去几年里因为运营商线路切割或者道路工程施工造成网络中断平均每年发生2到3次;2、MES系统因为弱密码被入侵2次;3、主机中毒造成系统宕机2次;4、数据备份磁盘故障导致文件缺失3次;5、在省级的护网行动中因为防火墙系统漏洞被通报1次;6、邮箱垃圾邮件频发;7、弱电机房因温度过高导致光纤转发器故障5次,8、业务系统和服务器的维护巡检记录流于形式,未能起到应有的作用。结合上述状况和此次安全评审要求,安全小组对此次信息安全改造和升级进行了详细的评估,项目预估改造升级费用达100万元,项目耗时2个月。制定项目的总体目标如下:一、打造一个安全稳定的网络环境、保障运营商线路故障可切换,防范常见SQL注入、XSS攻击确保业务连续性;加强密码策略防止未经授权的访问,定期检测系统漏洞加固系统安全;完善数据备份策略杜绝数据缺失。二、通过市公安机关信息安全等级测评、力争取得2级等保资质;三、加强信息安全制度建设和强化员工信息安全教育培训。以下针对上述目标实施过程进行阐述。

构建安全稳定的网络环境

1)、更新防火墙设备:公司网络边界原为一台思科防火墙因为购入较早、厂家已经停止维护,淘汰替换换为2台华为USG6306E构成一主一备、实现设备级故障的冗余。2)、增强网络连接可靠性:原运营商线路为一根移动500M商务专线、存在单点故障的风险。新增一根电信500M商务专线实现双出口备份提升网络可靠性和可用性。3)、优化网络区域:防火墙区域主要划分为内部区域、外部区域、DMZ区域。根据各业务系统类型对外提供访问的有OA、CRM、邮件系统放置在DMZ区域、WMS/MES/SAP系统放置在内部区域、DMZ区域集成华为防火墙IPS、Av 防病毒功能有效阻断网络木马、蠕虫、病毒等入侵行为。4)、定期漏洞扫描与修复:内部区域部署华为漏洞扫描VSCAN1000定期对关键服务系统进行扫描、发现并评估潜在的安全漏洞,并及时进行补救,提升系统安全性,减少攻击面,避免数据泄露。5)、终端安全管理:终端安全部署了奇安信天擎终端管理系统,通过奇安信天擎管理中心对所有终端进行统一查杀和漏洞修复,实现全网终端健康状态的实时监测。通过上述举措,公司的网络和系统安全得到了显著提升,不仅增强了抵御外部威胁的能力,也提高了内部系统的稳定性和数据保护水平。

等级保护2.0

因为公司主要业务系统针对内部用户和客户、代理商等;系统故障不会对公众秩序和国家安全带来损害。根据《信息安全技术 网络安全等级保护基本要求》等级划分适用于一般信息系统(简称2级),将确定的安全保护等级报备给市网安部门。经过第三方测评机构评估,依据等保2.0二级测评概述采取以下安全措施:

1)、物理安全:中心机房消防系统布置灭火气体(七氟丙烷)、自动喷水装置、烟雾探测报警系统。电源保护布置UPS不间断系统、电流过载保护;环境控制:温湿度控制系统、防尘静电板、机房出入 口门禁与视频监控;巡检与进出记录等。

2)、通信安全:运营商双出口线路冗余、防火墙采用双机热备技术,新增一条500M保障业务带宽,根据业务应用配置QOS 保证关键业务带宽。总部和分支通信租用SD-WAN线路,总部和下级单位架设IPSEVVPN 作为备用,达到通信线路加密和双向认证。移动办公采购飞连VPN结合AD认证接入访问内部系统。

3)、边界安全:防火墙安全区域划分trust/untrust/DMZ、配置安全策略实施访问控制,开启AV/IPS功能实现4-7层安全防护;对外提供服务的应用(OA、CRM等)购买云WAF 防护对web应用进行重定向,拦截恶意请求;添加堡垒机实现对数据中心服务器和关键数据库的审计与访问限制,记录所有用户的访问行为包括命令行输入、文件传输、运程桌面会话等。添加上网行为管理对内外双向访问进行审计。

4)、计算安全:设置强密码策略增强账号安全性、安装防病毒终端、部署监控主机对硬件和关键服务进行监控、及时对系统故障进行短信加微信报警,通过漏洞扫描系统及时识别系统中漏洞,更新系统最新补丁;结合完整备份和增量备份定期对文件系统和数据库系统进行备份。

5)、安全管理策略与制度:根据公司实际情况制定信息安全总体方针、包括信息安全目标、范围、原则框架。成立信息安全小组 ,定义部门岗位明确职责分工;建立健全的信息安全管理制度,涵盖风险评估、应急响应、安全培训等方面。

信息安全制度建设与培训

通过建立完善的信息安全制度和持续的信息安全培训,公司可以提升员工的信息安全意识和技能,有效防范和应对各类安全威胁,保障业务系统的稳定运行和数据的安全。

以满足业务连续性和可靠性为基础,实施等级保护及风险管理,确保信息安全以及实现持续改进的目的等内容作为本单位信息安全工作的总体方针。以信息网络的硬件、软件及其系统中的数据受到保护,电子数据能够永久保存而不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统出错时能够快速地恢复运行,信息服务基本不中断为总体目标。项目出台了以下文件:

  •     《安全监督和检查管理规定》
  •     《环境和资源管理管理规定》
  •     《安全人员及培训管理规定》
  •     《运行和维护管理规定》
  •     《管理机构管理规定》
  •     《备份和应急预案管理规定》

通过项目组全体人员为期3个月努力,顺利完成了集团总部领导下达的任务,通过了第三方安全测评机构等保2.0业务系统定级要求,获得了市公安机关颁发的《信息安全技术 网络安全等级保护基本要求》二级资质。为企业构建一个安全稳定的网络环境,为用户提供了一个健康干净的作业土壤,为企业运营打造一个可持续运行的业务系统。美中不中之处是无线业务的用户认证系统还未和企业的单点登录认证进行集成、还在业务的开发阶段,有待后期和企业的AD认证进行统一绑定,实现用户一次登录多系统访问。未来,我们将继续努力,不断完善信息安全管理体系,确保公司信息系统在日益复杂的信息安全环境中和时代同行。