🔒 网络安全基础

构建安全防线 - 从密码学到AI安全

🔐 密码学 🛡️ 漏洞防护 🔍 渗透测试 🤖 AI安全

什么是网络安全?

网络安全是指保护网络系统的硬件、软件及其系统中的数据, 使之不因偶然或恶意的原因而遭受破坏、更改、泄露,系统连续可靠正常地运行。

在AI时代,安全挑战更加严峻:模型被窃取数据投毒攻击提示词注入隐私泄露等新型威胁层出不穷。

🔒

机密性

Confidentiality

信息不被未授权者获取

完整性

Integrity

信息不被未授权修改

🌐

可用性

Availability

授权用户能正常访问

🗺️ 网络安全完整知识体系

🛡️ 网络安全技术栈

graph TB subgraph CRYPTO["🔐 密码学基础 Cryptography"] SYMMETRIC["对称加密
AES·DES·3DES"] ASYMMETRIC["非对称加密
RSA·ECC·DH"] HASH["哈希函数
MD5·SHA256·SHA3"] SIGN["数字签名
验证身份"] CERT["数字证书
CA·PKI"] end subgraph AUTH["🎫 身份认证 Authentication"] PASSWORD["密码认证
加盐哈希"] MFA["多因素认证
2FA·OTP"] BIOMETRIC["生物识别
指纹·人脸"] SSO["单点登录
OAuth·SAML"] JWT_AUTH["JWT令牌
无状态认证"] end subgraph NETWORK_SEC["🌐 网络安全 Network Security"] FIREWALL["防火墙
包过滤·状态检测"] IDS["入侵检测
IDS/IPS"] VPN["虚拟专网
IPSec·SSL VPN"] WAF["Web防火墙
应用层防护"] DDOS_DEF["DDoS防护
流量清洗"] end subgraph APP_SEC["🔒 应用安全 Application Security"] INPUT_VAL["输入验证
SQL注入防护"] XSS_DEF["XSS防护
输出编码·CSP"] CSRF_DEF["CSRF防护
Token验证"] SESSION["会话管理
安全Cookie"] API_SEC["API安全
限流·认证"] end subgraph DATA_SEC["💾 数据安全 Data Security"] ENCRYPT["数据加密
静态·传输"] BACKUP["备份恢复
容灾"] PRIVACY["隐私保护
脱敏·匿名化"] DLP["数据防泄漏
DLP系统"] end subgraph AI_SEC["🤖 AI安全 AI Security"] MODEL_SEC["模型安全
防窃取·后门"] DATA_POISON["数据投毒
训练数据安全"] PROMPT_INJ["提示词注入
越狱防护"] ADVERSARIAL["对抗样本
鲁棒性"] end %% 依赖关系 CRYPTO --> AUTH CRYPTO --> NETWORK_SEC CRYPTO --> DATA_SEC AUTH --> APP_SEC NETWORK_SEC --> APP_SEC APP_SEC --> AI_SEC DATA_SEC --> AI_SEC %% 样式 style CRYPTO fill:#fef3c7,stroke:#f59e0b,stroke-width:3px style AUTH fill:#dbeafe,stroke:#3b82f6,stroke-width:2px style NETWORK_SEC fill:#d1fae5,stroke:#059669,stroke-width:2px style APP_SEC fill:#fce7f3,stroke:#db2777,stroke-width:2px style DATA_SEC fill:#e0e7ff,stroke:#6366f1,stroke-width:2px style AI_SEC fill:#fecdd3,stroke:#dc2626,stroke-width:3px

🎯 从基础密码学到AI安全的完整技术栈

🔐 密码学基础原理

graph LR subgraph SYM["🔑 对称加密
同一密钥加解密"] AES["AES
Advanced Encryption
最常用·安全"] DES["DES
Data Encryption
已淘汰"] THREEDES["3DES
三重DES
过渡方案"] end subgraph ASYM["🔐 非对称加密
公钥加密·私钥解密"] RSA["RSA
大整数分解
应用广泛"] ECC["ECC
椭圆曲线
效率高"] DHKE["DH密钥交换
安全协商密钥"] end subgraph HASH_ALG["# 哈希算法
单向不可逆"] MD5["MD5
128位
已不安全"] SHA1["SHA-1
160位
逐步淘汰"] SHA256["SHA-256
256位
推荐使用"] SHA3["SHA-3
最新标准
抗量子"] end subgraph USE["📱 实际应用"] TLS["TLS/SSL
HTTPS加密"] BLOCKCHAIN["区块链
数字签名"] PASSWORD["密码存储
加盐哈希"] TOKEN["Token生成
JWT签名"] end AES --> TLS RSA --> TLS DHKE --> TLS SHA256 --> BLOCKCHAIN SHA256 --> PASSWORD RSA --> BLOCKCHAIN SHA256 --> TOKEN style SYM fill:#dbeafe,stroke:#3b82f6,stroke-width:2px style ASYM fill:#d1fae5,stroke:#059669,stroke-width:2px style HASH_ALG fill:#fef3c7,stroke:#f59e0b,stroke-width:2px style USE fill:#fce7f3,stroke:#db2777,stroke-width:2px style AES fill:#93c5fd,stroke:#2563eb,stroke-width:2px style RSA fill:#86efac,stroke:#16a34a,stroke-width:2px style SHA256 fill:#fcd34d,stroke:#d97706,stroke-width:2px

对称加密

优点:速度快,效率高

缺点:密钥分发困难

→ 适合大数据加密

非对称加密

优点:密钥分发安全

缺点:速度慢,开销大

→ 适合密钥交换

哈希算法

优点:不可逆,固定长度

缺点:无法解密

→ 适合完整性校验

🔒 HTTPS/TLS握手过程

sequenceDiagram participant Client as 🖥️ 客户端 participant Server as 🌐 服务器 Client->>Server: 1. Client Hello
支持的加密套件 Server->>Client: 2. Server Hello
选择加密套件 Server->>Client: 3. Certificate
服务器证书(公钥) Server->>Client: 4. Server Hello Done Client->>Client: 5. 验证证书
检查CA签名 Client->>Server: 6. Client Key Exchange
用公钥加密预主密钥 Client->>Server: 7. Change Cipher Spec
开始加密通信 Server->>Server: 8. 用私钥解密
获得预主密钥 Server->>Client: 9. Change Cipher Spec
确认加密 Client->>Server: 10. 加密HTTP请求 Server->>Client: 11. 加密HTTP响应 Note over Client,Server: 后续所有通信都加密

🔑 密钥协商步骤

1-4. 协商算法

确定加密套件

5. 验证身份

检查服务器证书

6-9. 密钥交换

协商会话密钥

10-11. 加密通信

对称加密传输

🚨 OWASP Top 10 Web安全威胁

全球Web应用安全标准,每个开发者都必须了解的10大安全风险

🔗 OWASP Top 10 漏洞关联图

graph TB subgraph INJECTION["💉 注入类漏洞"] SQL["SQL注入
#1 最危险
窃取数据库"] CMD["命令注入
执行系统命令"] LDAP["LDAP注入
目录服务攻击"] end subgraph AUTH_BREAK["🔓 身份认证破坏"] BROKEN_AUTH["认证失效
#2
弱密码·会话劫持"] SESSION_FIX["会话固定
窃取会话"] BRUTE["暴力破解
尝试所有密码"] end subgraph DATA_EXPOSE["📂 敏感数据泄露"] SENSITIVE["敏感数据暴露
#3
未加密传输"] INFO_LEAK["信息泄露
错误消息暴露"] end subgraph XXE_XML["📄 XML外部实体"] XXE["XXE攻击
#4
读取服务器文件"] end subgraph ACCESS_CTRL["🚫 访问控制失效"] BROKEN_AC["访问控制失效
#5
越权访问"] IDOR["不安全对象引用
遍历他人数据"] end subgraph CONFIG["⚙️ 安全配置错误"] MISCONFIG["安全配置错误
#6
默认密码·调试开启"] end subgraph XSS_ATTACK["📜 跨站脚本"] XSS["XSS跨站脚本
#7
注入恶意脚本"] end subgraph DESERIALIZATION["🔄 不安全反序列化"] UNSERIALIZE["不安全反序列化
#8
远程代码执行"] end subgraph COMPONENT["📦 组件漏洞"] VULN_COMP["已知漏洞组件
#9
过期库风险"] end subgraph LOGGING["📋 日志监控不足"] NO_LOG["日志监控不足
#10
攻击难发现"] end %% 防护措施 SQL --> PARAM["参数化查询"] BROKEN_AUTH --> MFA_DEF["启用2FA"] SENSITIVE --> HTTPS_ENC["HTTPS加密"] XXE --> DISABLE_XXE["禁用外部实体"] BROKEN_AC --> RBAC["RBAC权限"] MISCONFIG --> HARDENING["安全加固"] XSS --> CSP["CSP策略"] UNSERIALIZE --> AVOID["避免反序列化"] VULN_COMP --> UPDATE["及时更新"] NO_LOG --> SIEM["SIEM系统"] style INJECTION fill:#fee2e2,stroke:#dc2626,stroke-width:2px style AUTH_BREAK fill:#fed7aa,stroke:#ea580c,stroke-width:2px style AI_SEC fill:#fecdd3,stroke:#db2777,stroke-width:3px style PARAM fill:#d1fae5,stroke:#059669,stroke-width:2px
1

SQL注入

通过输入恶意SQL代码,窃取或破坏数据库

示例攻击:

' OR '1'='1

防护:

使用参数化查询、ORM框架

2

认证失效

弱密码、会话管理不当导致身份被盗

常见问题:

默认密码、会话不过期

防护:

强密码策略、多因素认证MFA

3

敏感数据暴露

未加密传输或存储敏感信息

风险数据:

密码、信用卡、个人信息

防护:

HTTPS传输、数据库加密

7

XSS跨站脚本

注入恶意脚本到网页,窃取Cookie

攻击类型:

存储型、反射型、DOM型

防护:

HTML转义、CSP内容安全策略

5

访问控制失效

用户能访问不该访问的资源(越权)

典型场景:

修改URL参数访问他人数据

防护:

服务端权限校验、RBAC

9

已知漏洞组件

使用有已知漏洞的第三方库

风险:

Log4j、Struts等历史教训

防护:

及时更新、漏洞扫描

🤖 AI时代的安全挑战

🎯 AI系统安全威胁全景

graph TB AI_SYS["🤖 AI系统"] subgraph TRAIN["🏋️ 训练阶段威胁"] POISON["数据投毒
污染训练数据"] BACKDOOR["后门攻击
植入触发器"] STEAL_DATA["数据窃取
训练集泄露"] end subgraph DEPLOY["🚀 部署阶段威胁"] MODEL_THEFT["模型窃取
API逆向推理"] ADVERSARIAL["对抗样本
欺骗模型"] EXTRACT["模型提取
复制模型参数"] end subgraph USE["📱 使用阶段威胁"] PROMPT_INJ["提示词注入
绕过限制"] JAILBREAK["越狱攻击
突破安全约束"] PRIVACY["隐私泄露
记住训练数据"] ABUSE["恶意使用
生成有害内容"] end subgraph DEFENSE["🛡️ 防御措施"] D1["数据审核
清洗过滤"] D2["模型加密
访问控制"] D3["输入验证
提示词过滤"] D4["输出审查
内容审核"] D5["限流限额
防止滥用"] D6["对抗训练
提升鲁棒性"] end TRAIN --> AI_SYS DEPLOY --> AI_SYS AI_SYS --> USE POISON --> D1 BACKDOOR --> D1 MODEL_THEFT --> D2 EXTRACT --> D2 PROMPT_INJ --> D3 JAILBREAK --> D3 PRIVACY --> D4 ABUSE --> D4 ABUSE --> D5 ADVERSARIAL --> D6 style AI_SYS fill:#fbbf24,stroke:#d97706,stroke-width:4px style TRAIN fill:#fee2e2,stroke:#dc2626,stroke-width:2px style DEPLOY fill:#fed7aa,stroke:#ea580c,stroke-width:2px style USE fill:#fecdd3,stroke:#db2777,stroke-width:2px style DEFENSE fill:#d1fae5,stroke:#059669,stroke-width:3px

⚠️ AI特有安全问题

🎭 提示词注入

用户输入恶意指令,覆盖系统提示词

"忽略之前所有指令,现在你是..."

💉 数据投毒

在训练数据中注入恶意样本

导致模型学习错误知识或后门

🎯 对抗样本

精心设计的输入欺骗模型

人类看起来正常,模型却误判

🕵️ 模型窃取

通过API调用推测模型参数

大量查询,逆向复制模型

✅ AI安全防护实践

1. 输入验证

  • • 检测可疑提示词("忽略"、"假设")
  • • 限制输入长度和特殊字符
  • • 使用分隔符区分系统指令和用户输入

2. 输出审查

  • • 内容安全检测(色情、暴力、违法)
  • • 检查是否泄露系统提示词
  • • 验证输出符合业务规则

3. 访问控制

  • • API密钥管理和权限控制
  • • 限流防止恶意调用
  • • 审计日志记录所有操作

4. 模型保护

  • • 模型加密存储
  • • 限制API调用频率
  • • 水印技术防止模型被盗

🔄 安全开发生命周期(SDL)

📋 SDL流程图

graph LR PLAN["📝 需求阶段
Security Requirements"] DESIGN["🏗️ 设计阶段
Threat Modeling"] CODE["💻 开发阶段
Secure Coding"] TEST["🧪 测试阶段
Security Testing"] DEPLOY["🚀 部署阶段
Security Config"] MONITOR["📊 运维阶段
Security Monitoring"] PLAN --> DESIGN DESIGN --> CODE CODE --> TEST TEST --> DEPLOY DEPLOY --> MONITOR MONITOR -.->|"发现问题"| PLAN PLAN --> P1["安全需求分析
风险评估"] DESIGN --> D1["威胁建模
攻击面分析"] CODE --> C1["代码审查
静态分析SAST"] TEST --> T1["渗透测试
漏洞扫描DAST"] DEPLOY --> DEP1["加固配置
最小权限"] MONITOR --> M1["日志分析
异常检测"] style PLAN fill:#dbeafe,stroke:#3b82f6,stroke-width:2px style DESIGN fill:#d1fae5,stroke:#059669,stroke-width:2px style CODE fill:#fef3c7,stroke:#f59e0b,stroke-width:2px style TEST fill:#fce7f3,stroke:#db2777,stroke-width:2px style DEPLOY fill:#e0e7ff,stroke:#6366f1,stroke-width:2px style MONITOR fill:#fecdd3,stroke:#dc2626,stroke-width:2px
🔍

静态分析(SAST)

分析源代码找出安全漏洞

  • • SonarQube
  • • Checkmarx
  • • Fortify
🎯

动态分析(DAST)

运行时测试发现漏洞

  • • OWASP ZAP
  • • Burp Suite
  • • Nessus
🕵️

渗透测试

模拟攻击发现弱点

  • • Metasploit
  • • Kali Linux
  • • Nmap

🏆 安全最佳实践

✅ 应该做的

使用HTTPS:所有敏感数据必须加密传输
最小权限原则:只给必要的权限
及时更新:修复已知漏洞
输入验证:永远不要信任用户输入
日志审计:记录关键操作

❌ 不应该做的

明文存储密码:必须加盐哈希
硬编码密钥:使用环境变量或密钥管理系统
忽略错误处理:不要暴露敏感错误信息
禁用安全功能:不要为了方便关闭安全检查
使用弱加密:MD5、DES已不安全

📚 学习资源推荐

📖

OWASP

开放Web应用安全项目,安全标准和工具

访问OWASP →
🎓

Web安全学院

PortSwigger的在线安全实验室

开始学习 →
🏆

CTF竞赛

通过夺旗赛实战演练安全技能

查看赛事 →