软件设计师考试 - 网络与信息安全
文章目录
一、网络基础与协议
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范围。 - 步骤:
- 借2位(2²=4个子网),子网掩码为
255.255.255.192
(/26)。 - 每个子网范围:
192.168.1.0-63
、64-127
、128-191
、192-255
(去除网络地址和广播地址)。
- 借2位(2²=4个子网),子网掩码为
- 题目:给定IP地址
二、网络安全
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握手过程:
- 三次握手流程:
- 第一次握手(SYN)
- 客户端向服务器发送一个
SYN
报文(SYN=1
),并随机生成一个初始序列号seq=x
。 - 目的:请求建立连接,并告知服务器客户端的初始序列号。
- 客户端向服务器发送一个
- 第二次握手(SYN+ACK)
- 服务器收到
SYN
后,回复SYN+ACK
报文(SYN=1, ACK=1
),包含:- 服务器的初始序列号
seq=y
。 - 确认号
ack=x+1
(表示已收到客户端的SYN
)。
- 服务器的初始序列号
- 目的:确认客户端的请求,并告知服务器端的初始序列号。
- 服务器收到
- 第三次握手(ACK)
- 客户端收到
SYN+ACK
后,发送ACK
报文(ACK=1
),包含:- 确认号
ack=y+1
(表示已收到服务器的SYN
)。
- 确认号
- 目的:确认服务器的响应,双方确认连接建立。
- 客户端收到
- 第一次握手(SYN)
- 示意图:
客户端 服务器 |----- SYN (seq=x) ----------->| |<---- SYN+ACK (seq=y, ack=x+1)| |----- ACK (ack=y+1) -------->|
- 常见问题与考点
- 为什么需要三次握手?
- 两次握手可能导致服务器误认为连接已建立(客户端未确认),引发资源浪费(如半连接状态)。
- 三次握手确保双方均确认对方的收发能力。
- SYN洪泛攻击(SYN Flood Attack)
- 原理:攻击者伪造大量
SYN
报文但不回复ACK
,耗尽服务器资源。 - 防御:SYN Cookie、限制半连接队列长度。
- 原理:攻击者伪造大量
- 序列号(seq)与确认号(ack)的作用
seq
标识数据包的顺序,ack
表示期望接收的下一个字节序号。
- 状态转换
- 客户端:
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步:客户端请求本地DNS服务器
- 客户端向本地DNS服务器(如ISP提供的DNS)发送递归查询请求:“请告诉我
www.example.com
的IP地址”。 - 本地DNS服务器若缓存中有记录,直接返回结果;否则开始递归查询。
- 客户端向本地DNS服务器(如ISP提供的DNS)发送递归查询请求:“请告诉我
- 第2步:本地DNS查询根DNS服务器
- 本地DNS服务器向根DNS服务器发送迭代查询:“
.com
顶级域的权威服务器是谁?” - 根DNS服务器返回
.com
顶级域服务器的地址。
- 本地DNS服务器向根DNS服务器发送迭代查询:“
- 第3步:本地DNS查询顶级域服务器
- 本地DNS向
.com
顶级域服务器查询:“example.com
域的权威服务器是谁?” - 顶级域服务器返回
example.com
的权威DNS服务器地址。
- 本地DNS向
- 第4步:本地DNS查询权威DNS服务器
- 本地DNS向
example.com
的权威DNS服务器查询:“www.example.com
的IP地址是什么?” - 权威DNS服务器返回
www.example.com
的A记录(IP地址)。
- 本地DNS向
- 第5步:本地DNS返回结果给客户端
- 本地DNS将最终IP地址返回给客户端,并缓存该记录(根据TTL时间)。
- 第1步:客户端请求本地DNS服务器
-
递归查询示意图:
客户端 本地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 .
相关系列文章
- 软件设计师考试 - 网络与信息安全
- 软件设计师考试 - 系统开发与运行维护
- 软件设计师考试 - 程序设计语言
- 软件设计师考试 - 面向对象技术
- 软件设计师考试 - 数据库技术
- 软件设计师考试 - 数据结构与算法
- 软件设计师考试 - 软件工程
- 软件设计师考试 - 计算机组成与体系结构
- 软件设计师考试 - 计算机科学基础知识
- 软件设计师考试 - 考点总结