计算机安全¶
概述¶
计算机安全是保护计算机系统硬件、软件、数据不因偶然或恶意的原因而遭到破坏、更改、泄露或失效的技术和管理措施。
计算机安全定义
计算机安全包括物理安全、运行安全和信息安全三个方面。
安全的三个方面¶
1. 物理安全¶
保护计算机设备、设施(含网络)以及其他媒体免遭地震、水灾、火灾、有害气体和其他环境事故破坏。
措施:
- 机房安全
- 设备防盗
- 电源保护
- 环境控制
2. 运行安全¶
保证系统正常运行,避免因系统的崩溃和失效而对系统存储、处理和传输的信息造成破坏和损失。
措施:
- 系统备份
- 故障恢复
- 应急响应
- 风险管理
3. 信息安全¶
防止信息财产被故意地或偶然地非授权泄露、更改、破坏或使信息被非法辨识、控制。
目标:
- 机密性: 信息不被泄露
- 完整性: 信息不被篡改
- 可用性: 信息可被授权访问
- 真实性: 信息来源可信
- 不可否认性: 行为不可抵赖
常见安全威胁¶
常见安全威胁
计算机系统面临的各种威胁。
1. 恶意软件¶
故意设计来危害计算机系统的软件。
类型:
- 病毒: 感染其他程序,自我复制
- 蠕虫: 自我复制,通过网络传播
- 特洛伊木马: 伪装成合法程序
- 勒索软件: 加密文件,勒索赎金
2. 网络攻击¶
通过网络对计算机系统发起的攻击。
类型:
- DoS/DDoS: 拒绝服务攻击
- 中间人攻击: 窃听和篡改通信
- SQL注入: 注入恶意SQL代码
- XSS攻击: 跨站脚本攻击
3. 社会工程学¶
利用人性弱点进行攻击。
类型:
- 钓鱼攻击: 伪装成可信来源
- 假冒攻击: 冒充他人身份
- 诱饵攻击: 利用好奇心或贪婪
安全防护技术¶
安全防护技术
保护计算机系统的各种技术手段。
1. 加密技术¶
将明文转换为密文,保护数据机密性。
类型:
- 对称加密: 使用相同密钥(DES, AES)
- 非对称加密: 使用公钥和私钥(RSA, ECC)
- 哈希函数: 单向加密(MD5, SHA)
2. 认证技术¶
验证用户或系统身份。
方式:
- 口令认证: 用户名和密码
- 生物认证: 指纹、人脸、虹膜
- 证书认证: 数字证书
- 多因素认证: 组合多种方式
3. 访问控制¶
控制用户对资源的访问权限。
模型:
- DAC: 自主访问控制
- MAC: 强制访问控制
- RBAC: 基于角色的访问控制
4. 防火墙¶
在网络边界检查和控制流量。
类型:
- 包过滤防火墙: 检查数据包
- 状态检测防火墙: 跟踪连接状态
- 应用层防火墙: 检查应用层数据
5. 入侵检测¶
检测和响应入侵行为。
类型:
- 基于签名的检测: 匹配已知攻击模式
- 基于异常的检测: 检测异常行为
安全管理¶
安全管理
安全不仅是技术问题,更是管理问题。
安全策略¶
- 制定安全政策
- 实施安全培训
- 建立应急响应
- 定期安全审计
安全标准¶
- ISO 27001: 信息安全管理体系
- 等保2.0: 中国网络安全等级保护
- PCI DSS: 支付卡行业数据安全标准
密码学基础¶
密码学
研究信息加密和解密的科学,是信息安全的核心技术。
对称加密¶
加密和解密使用相同密钥的加密算法。
常见算法:
- DES: 数据加密标准,56位密钥,已不安全
- 3DES: 三重DES,较安全
- AES: 高级加密标准,128/192/256位密钥,目前最安全
- RC4: 流加密算法,已不安全
优点:
- 加密解密速度快
- 适合大量数据加密
缺点:
- 密钥分发困难
- 密钥管理复杂
非对称加密¶
使用公钥和私钥的加密算法。
常见算法:
- RSA: 基于大数分解难题
- ECC: 椭圆曲线加密,效率更高
- ElGamal: 基于离散对数难题
应用:
- 数字签名
- 密钥交换
- 身份认证
优点:
- 密钥分发简单
- 支持数字签名
缺点:
- 计算速度慢
- 不适合大量数据加密
哈希函数¶
哈希函数
将任意长度数据映射为固定长度摘要的单向函数。
常见算法:
- MD5: 128位摘要,已不安全
- SHA-1: 160位摘要,已不安全
- SHA-256: 256位摘要,安全
- SHA-3: 最新标准,安全
特点:
- 单向性: 不可逆
- 抗碰撞性: 难以找到相同摘要的输入
- 固定长度输出
应用:
- 数据完整性校验
- 数字签名
- 密码存储
数字签名¶
证明消息来源和完整性的技术。
过程:
graph LR
A[发送方] -->|用私钥签名| B[数字签名]
B -->|附加到消息| C[消息+签名]
C -->|发送| D[接收方]
D -->|用公钥验证| E[验证结果]
作用:
- 身份认证: 证明发送方身份
- 完整性: 检测消息是否被篡改
- 不可否认: 发送方不能否认发送
PKI与数字证书¶
PKI(公钥基础设施)
支持公钥加密和数字签名的安全基础设施。
数字证书¶
由CA签发的证明公钥所有者身份的电子文件。
内容:
- 公钥
- 证书所有者信息
- CA信息
- 有效期
- CA的数字签名
证书链:
graph TB
A[根证书] --> B[中间证书]
B --> C[终端证书]
style A fill:#E3F2FD
style B fill:#E8F5E9
style C fill:#FFF3E0
CA(证书颁发机构)¶
功能:
- 验证申请者身份
- 签发数字证书
- 管理证书生命周期
- 发布证书撤销列表(CRL)
网络安全协议¶
SSL/TLS¶
传输层安全协议,保护网络通信安全。
功能:
- 加密通信数据
- 身份认证
- 数据完整性保护
握手过程:
sequenceDiagram
participant Client as 客户端
participant Server as 服务器
Client->>Server: ClientHello(支持的加密套件)
Server->>Client: ServerHello(选择的加密套件)
Server->>Client: Certificate(服务器证书)
Client->>Server: ClientKeyExchange(预主密钥)
Client->>Server: ChangeCipherSpec
Client->>Server: Finished
Server->>Client: ChangeCipherSpec
Server->>Client: Finished
IPSec¶
IPSec
网络层安全协议,保护IP通信。
两种模式:
- 传输模式: 只加密数据载荷
- 隧道模式: 加密整个IP包
协议:
- AH(Authentication Header): 提供认证和完整性
- ESP(Encapsulating Security Payload): 提供加密、认证和完整性
安全攻防技术¶
渗透测试¶
模拟攻击者对系统进行安全测试。
流程:
graph LR
A[信息收集] --> B[漏洞扫描]
B --> C[漏洞利用]
C --> D[权限提升]
D --> E[维持访问]
E --> F[报告生成]
方法:
- 黑盒测试: 无内部信息
- 白盒测试: 有完整信息
- 灰盒测试: 部分信息
常见漏洞¶
常见安全漏洞
Web应用常见的安全漏洞。
1. SQL注入¶
原理: 通过输入恶意SQL代码操纵数据库。
防护:
- 使用参数化查询
- 输入验证
- 最小权限原则
2. XSS(跨站脚本攻击)¶
原理: 注入恶意脚本到网页。
防护:
- 输出编码
- 内容安全策略(CSP)
- 输入验证
3. CSRF(跨站请求伪造)¶
原理: 伪造用户请求。
防护:
- CSRF Token
- 验证Referer
- SameSite Cookie
4. 文件上传漏洞¶
原理: 上传恶意文件执行代码。
防护:
- 文件类型验证
- 文件内容检查
- 存储隔离
安全运维¶
安全审计¶
记录和分析系统活动,发现安全问题。
内容:
- 用户行为审计
- 系统事件审计
- 网络流量审计
- 应用日志审计
应急响应¶
应急响应
安全事件发生后的处理流程。
流程:
graph TB
A[事件检测] --> B[事件分析]
B --> C[事件抑制]
C --> D[根除威胁]
D --> E[恢复系统]
E --> F[总结改进]
关键步骤:
- 准备: 建立应急响应团队和预案
- 检测: 发现和确认安全事件
- 抑制: 限制事件影响范围
- 根除: 消除威胁源
- 恢复: 恢复系统正常运行
- 总结: 分析原因,改进防护
安全加固¶
提高系统安全性的配置和措施。
系统加固:
- 关闭不必要服务
- 更新补丁
- 配置防火墙
- 设置强密码策略
应用加固:
- 输入验证
- 输出编码
- 错误处理
- 安全配置