软件设计师考试 - 网络与信息安全

文章目录

一、网络基础与协议

1.1 OSI七层模型与TCP/IP协议栈

OSI七层模型 TCP/IP四层模型 核心协议与设备 功能说明
应用层(Application) 应用层 HTTP/HTTPS、FTP、DNS、SMTP 提供用户接口,处理应用程序通信
表示层(Presentation) SSL/TLS、JPEG、ASCII 数据格式转换、加密/解密
会话层(Session) NetBIOS、RPC 建立、管理、终止会话
传输层(Transport) 传输层 TCP(可靠)、UDP(不可靠) 端到端数据传输控制
网络层(Network) 网络层 IP、ICMP、ARP、路由器 路由选择与逻辑寻址
数据链路层(Data Link) 网络接口层 MAC、PPP、交换机、网桥 物理寻址与帧传输
物理层(Physical) 网线、光纤、中继器、集线器 传输原始比特流
  • 考试重点
    • 协议对应层次(如HTTP在应用层,IP在网络层)。
    • TCP vs UDP:TCP提供可靠传输(三次握手、滑动窗口、拥塞控制),UDP适用于实时性要求高的场景(视频通话)。
  • 高频题型:协议与层次匹配题
    • 示例:SSL/TLS协议工作在哪一层?
    • 答案:介于传输层与应用层之间(或会话层/表示层)。

1.2 加密与认证技术

技术 原理 特点
对称加密 加密与解密使用相同密钥(AES、DES)。 大数据量加密(如文件传输)。速度快,密钥分发困难
非对称加密 公钥加密、私钥解密(RSA、ECC)。 密钥交换、数字签名。速度慢,解决密钥分发问题
哈希算法 生成固定长度摘要(MD5、SHA-256),不可逆。 数据完整性校验(如文件校验)。单向不可逆
数字签名 私钥加密哈希值,验证数据来源与完整性。 电子合同、软件发布
数字证书 由CA(证书颁发机构)签发,绑定公钥与身份(X.509标准)。 HTTPS网站认证

考试重点

  • SSL/TLS协议:位于传输层与应用层之间(如HTTPS=HTTP+SSL),通过非对称加密交换密钥,对称加密传输数据。
  • PKI体系:包含CA、数字证书、RA(注册机构),保障公钥可信性。
  • 高频题型:加密算法选择题
    • 示例:以下哪种算法属于非对称加密?
      A. AES B. RSA C. MD5 D. SHA-256
    • 答案:B. RSA。

1.3 IP地址与子网划分

  • IPv4地址分类
    • A类:1.0.0.1-126.255.255.254
    • B类:128.1.0.1-191.255.255.254
    • C类:192.0.1.1-223.255.255.254
    • D类(组播):224.0.0.0-239.255.255.255
    • E类(保留):240.0.0.0-255.255.255.254
  • 子网掩码计算
    • 网络地址 = IP地址 AND 子网掩码
    • 主机数 = 2^(32-掩码位数) - 2
  • 高频题型:子网划分计算题
    • 题目:给定IP地址 192.168.1.0/24,要求划分为4个子网,求子网掩码及每个子网可用IP范围。
    • 步骤
      1. 借2位(2²=4个子网),子网掩码为 255.255.255.192(/26)。
      2. 每个子网范围:192.168.1.0-6364-127128-191192-255(去除网络地址和广播地址)。

二、网络安全

2.1 攻击类型与原理

攻击类型 原理 防御措施
DDoS攻击 利用僵尸网络发送大量请求耗尽目标资源。 流量清洗、CDN分流、限流策略
SQL注入 通过输入恶意SQL代码篡改数据库查询。 参数化查询、输入过滤、WAF
XSS(跨站脚本攻击) 注入恶意脚本到网页,窃取用户Cookie。 输出编码、CSP(内容安全策略)
CSRF(跨站请求伪造) 诱导用户执行非预期的HTTP请求(如转账)。 验证Token、检查Referer头
中间人攻击(MitM) 拦截并篡改通信双方的数据(如ARP欺骗、DNS劫持)。 HTTPS、双向认证、VPN
钓鱼攻击 伪造合法网站或邮件骗取用户敏感信息。 用户教育、反钓鱼技术、多因素认证
病毒 自我复制的恶意代码 杀毒软件、不打开可疑附件
木马 伪装成正常程序的恶意代码 程序签名验证、最小权限原则

2.2 安全漏洞与修复

  • 缓冲区溢出:输入数据超出内存分配空间,执行恶意代码 → 输入长度检查、代码审计。
  • 弱口令:简单密码易被暴力破解 → 强制密码复杂度、多因素认证。

2.3 安全协议

协议 层次 主要功能 典型应用
SSL/TLS 传输层与应用层 加密传输、身份认证 HTTPS、邮件加密
IPSec 网络层 IP包加密、完整性校验 VPN
SSH 应用层 安全远程登录、文件传输 Linux服务器管理
HTTPS 应用层 HTTP数据加密 网页安全访问
SET 应用层 电子商务支付安全 在线支付系统
Kerberos 应用层 分布式网络身份认证 企业内部系统单点登录

三、信息安全

3.1 信息安全标准与法规

标准/法规 核心内容 应用领域
ISO 27001 信息安全管理体系(ISMS)国际标准,涵盖风险评估、控制措施。 企业信息安全管理认证
等级保护2.0 国内网络安全等级保护制度,分五级(从自主保护到专控保护)。 关键信息基础设施保护
GDPR(通用数据保护条例) 欧盟数据隐私保护法规,强调用户数据权利(如知情权、删除权)。 跨境数据处理与隐私保护

3.2 安全体系结构

  • CIA三元组
    • 机密性(Confidentiality):防止未授权访问
    • 完整性(Integrity):防止未授权修改
    • 可用性(Availability):确保授权用户可访问
  • 安全机制
    • 身份认证:用户名/密码、生物识别、数字证书
    • 访问控制:ACL、RBAC(基于角色的访问控制)
    • 审计跟踪:记录系统活动日志

3.3 安全防护技术

  • 防火墙
    • 包过滤防火墙
    • 状态检测防火墙
    • 应用代理防火墙
  • IDS/IPS
    • 入侵检测系统(IDS):监控并报警
    • 入侵防御系统(IPS):主动阻断攻击
  • VPN:虚拟专用网络,提供安全远程访问
  • WAF:Web应用防火墙,防护Web攻击

四、高频考点

4.1 SSL/TLS握手过程

  1. 三次握手流程:
    1. 第一次握手(SYN)
      • 客户端向服务器发送一个SYN报文(SYN=1),并随机生成一个初始序列号seq=x
      • 目的:请求建立连接,并告知服务器客户端的初始序列号。
    2. 第二次握手(SYN+ACK)
      • 服务器收到SYN后,回复SYN+ACK报文(SYN=1, ACK=1),包含:
        • 服务器的初始序列号seq=y
        • 确认号ack=x+1(表示已收到客户端的SYN)。
      • 目的:确认客户端的请求,并告知服务器端的初始序列号。
    3. 第三次握手(ACK)
      • 客户端收到SYN+ACK后,发送ACK报文(ACK=1),包含:
        • 确认号ack=y+1(表示已收到服务器的SYN)。
      • 目的:确认服务器的响应,双方确认连接建立。
  2. 示意图:
    客户端                         服务器
      |----- SYN (seq=x) ----------->|  
      |<---- SYN+ACK (seq=y, ack=x+1)|  
      |----- ACK (ack=y+1) -------->|  
    
  3. 常见问题与考点
    1. 为什么需要三次握手?
      • 两次握手可能导致服务器误认为连接已建立(客户端未确认),引发资源浪费(如半连接状态)。
      • 三次握手确保双方均确认对方的收发能力。
    2. SYN洪泛攻击(SYN Flood Attack)
      • 原理:攻击者伪造大量SYN报文但不回复ACK,耗尽服务器资源。
      • 防御:SYN Cookie、限制半连接队列长度。
    3. 序列号(seq)与确认号(ack)的作用
      • seq标识数据包的顺序,ack表示期望接收的下一个字节序号。
    4. 状态转换
      • 客户端CLOSED → SYN_SENT → ESTABLISHED
      • 服务器LISTEN → SYN_RECEIVED → ESTABLISHED

4.2 常见HTTP状态码

状态码 核心场景
200 请求成功返回资源
301/302 永久/临时重定向
304 资源未修改,可使用本地缓存
401/403 未认证/无权限访问
404 资源不存在
500 服务器内部错误(代码逻辑问题)
502 网关服务器故障
503 服务器过载或维护
504 网关服务器超时

4.3 DNS递归查询

DNS递归查询(Recursive Query)是客户端向本地DNS服务器发起请求时,本地DNS服务器负责代替客户端完成整个域名解析过程,最终将结果返回给客户端的查询方式。

  • 核心特点:客户端只需发起一次请求,后续查询工作由本地DNS服务器完成。

  • 适用场景:客户端(如用户电脑、手机)向本地DNS服务器发起请求时。

  • 递归查询流程:假设客户端要查询域名 www.example.com 的IP地址:

    1. 第1步:客户端请求本地DNS服务器
      • 客户端向本地DNS服务器(如ISP提供的DNS)发送递归查询请求:“请告诉我 www.example.com 的IP地址”。
      • 本地DNS服务器若缓存中有记录,直接返回结果;否则开始递归查询。
    2. 第2步:本地DNS查询根DNS服务器
      • 本地DNS服务器向根DNS服务器发送迭代查询:“.com顶级域的权威服务器是谁?”
      • 根DNS服务器返回.com顶级域服务器的地址。
    3. 第3步:本地DNS查询顶级域服务器
      • 本地DNS向.com顶级域服务器查询:“example.com域的权威服务器是谁?”
      • 顶级域服务器返回example.com的权威DNS服务器地址。
    4. 第4步:本地DNS查询权威DNS服务器
      • 本地DNS向example.com的权威DNS服务器查询:“www.example.com的IP地址是什么?”
      • 权威DNS服务器返回www.example.com的A记录(IP地址)。
    5. 第5步:本地DNS返回结果给客户端
      • 本地DNS将最终IP地址返回给客户端,并缓存该记录(根据TTL时间)。
  • 递归查询示意图:

    客户端                           本地DNS服务器                        外部DNS层级
     |----- 递归查询 www.example.com --->|  
     |                                   |----- 迭代查询根DNS ---------------> 根DNS
     |                                   |<---- 返回.com顶级域地址 ------------|
     |                                   |----- 迭代查询.com顶级域 -----------> 顶级DNS
     |                                   |<---- 返回example.com权威地址 -------|
     |                                   |----- 迭代查询example.com权威DNS ---> 权威DNS
     |                                   |<---- 返回www.example.com的IP ------|
     |<---- 返回IP地址 -------------------|  
    
  • 递归查询 vs 迭代查询**

    对比项 递归查询 迭代查询
    发起者 客户端向本地DNS服务器发起 本地DNS服务器向其他DNS服务器发起
    责任方 本地DNS服务器负责完成所有查询 被查询的DNS服务器仅返回下一级服务器地址
    响应内容 最终结果(如IP地址) 可能返回下一级DNS服务器地址或最终结果
    典型场景 客户端访问网站时的默认查询方式 DNS服务器之间的查询(如本地DNS查询根DNS)
  • 总结

    • 递归查询本质:客户端将解析责任委托给本地DNS服务器,简化客户端逻辑。
    • 关键角色:根DNS、顶级DNS、权威DNS的分层设计,实现域名系统的分布式管理。
    • 实际应用:浏览器访问网站、邮件服务器解析MX记录等场景均依赖DNS递归查询。
END .

相关系列文章

×