网络安全身份鉴权与协议
一、HTTP/HTTPS核心差异与实战影响
1. 核心概念
HTTP与HTTPS的本质差异是“是否加壳保护” ——HTTP是“明文裸传”,数据无加密无身份验证;HTTPS是“HTTP+SSL/TLS加密壳”,通过数字证书和加密算法实现“传输加密+身份验证”,二者直接决定抓包难度和攻击路径。
2. 关键差异对比
| 对比维度 |
HTTP |
HTTPS |
红队攻击影响 |
蓝队防护核心 |
| 加密方式 |
明文传输,无加密 |
SSL/TLS对称+非对称加密(数据+密钥交换) |
HTTP抓包直接获明文(如密码、Token);HTTPS需破解证书/抓包解密 |
强制HTTPS跳转,禁用HTTP端口(80) |
| 身份验证 |
无服务器身份校验 |
数字证书验证服务器合法性 |
HTTP易遭中间人攻击(篡改数据);HTTPS需伪造证书才能中间人攻击 |
部署可信CA证书,禁用弱加密套件(如SSLv3) |
| 默认端口 |
80端口 |
443端口 |
端口扫描时,443端口存在意味着需处理加密层 |
防火墙仅开放443端口,限制80端口访问 |
| 抓包难度 |
直接抓包(Burp/Charles直接查看) |
需安装CA证书信任,或破解证书密钥 |
测试HTTPS需先配置抓包工具证书,否则无法解析数据 |
启用证书钉扎(Certificate Pinning),防止抓包解密 |
3. 实战关键理解
- HTTPS不是“绝对安全”:仅防传输过程窃听篡改,不防应用层漏洞(如SQL注入、JWT破解);
- 红队处理HTTPS技巧:要么在目标设备安装抓包工具CA证书,要么利用目标APP的证书校验漏洞(如未做证书钉扎)。
二、核心身份鉴权技术解析
1. 五大鉴权技术核心对比
| 鉴权技术 |
核心本质 |
工作原理 |
优势 |
安全痛点 |
实战适用场景 |
| Cookie+Session |
服务器端存储会话,客户端存Cookie标识 |
登录成功后服务器生成Session(内存/数据库),客户端Cookie存SessionID |
实现简单,适合内网系统 |
SessionID劫持=权限泄露;服务器存储压力大 |
传统Web应用、内网管理系统 |
| Token令牌 |
无状态临时凭证,服务器验证签名有效性 |
登录成功后服务器签发Token(含用户信息+签名),客户端每次请求携带 |
跨域友好,服务器无存储压力 |
Token泄露即被盗用;需定期刷新 |
前后端分离应用、API接口 |
| JWT(JSON Web Token) |
结构化Token,含Header+Payload+Signature |
三部分Base64编码拼接,服务器验证Signature(密钥签名) |
自包含信息,支持单点登录(SSO) |
无法实时吊销;Payload可解码(无加密) |
跨系统登录、小程序/APP接口鉴权 |
| OAuth2.0 |
第三方授权框架,“有限访问”代理权限 |
通过授权码/令牌,让第三方应用获取用户在目标平台的部分权限(无需暴露密码) |
安全便捷,支持第三方登录 |
配置不当易遭授权劫持、CSRF攻击 |
微信/QQ登录、第三方API调用(如百度地图) |
| API密钥(API Key) |
固定凭证,标识调用者身份 |
客户端请求时在Header/参数中携带API Key,服务器校验合法性 |
配置简单,适合机器间接口调用 |
密钥泄露即滥用;无时效性 |
开放平台API、内部系统接口调用 |
2. 关键理解
- JWT的“Payload无加密”:Base64解码后可直接查看用户信息(如
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9解码得Header),仅Signature防篡改; - Cookie+Session的“SessionID安全”:必须给Cookie加
HttpOnly(防JS窃取)和Secure(仅HTTPS传输),否则易遭会话劫持。
三、OAuth2.0框架深度解析
1. 核心概念
OAuth2.0是“第三方授权的标准化协议”,核心是“不泄露用户密码,仅授予第三方有限权限”——比如用微信登录某APP时,APP不会获取你的微信密码,仅获取“昵称/头像”的有限权限,授权过程由微信(授权服务器)管控。
2. 四种授权模式对比
| 授权模式 |
核心流程 |
适用场景 |
安全等级 |
红队攻击风险点 |
| 授权码模式(authorization code) |
用户→授权服务器(拿授权码)→客户端→授权服务器(换Token)→资源服务器(拿资源) |
有后端的Web应用、APP |
最高(授权码+Token双重验证) |
redirect_url校验不严(劫持授权码)、state未设置(CSRF) |
| 简化模式(implicit) |
用户→授权服务器(直接拿Token)→客户端→资源服务器 |
无后端的纯前端应用(如Vue单页) |
较低(Token暴露在URL) |
Token被劫持、CSRF攻击 |
| 密码模式(password) |
用户直接向客户端提供账号密码→客户端用密码换Token |
信任度极高的第三方应用(如同一公司产品) |
低(客户端存储用户密码) |
客户端泄露用户密码、密码被窃听 |
| 客户端模式(client credentials) |
客户端用自身ID/密钥换Token→访问资源 |
机器间接口调用(无用户参与) |
中(仅验证客户端身份) |
client_id/client_secret泄露、越权访问 |
3. OAuth2.0高频安全漏洞
- redirect_url校验不严:红队构造恶意跳转地址(如
http://malicious.com),劫持授权码/Token; - state参数未设置:导致CSRF攻击,攻击者诱导用户授权后,窃取授权码;
- scope权限提权:红队用低权限scope的Token,尝试访问高权限资源(如用“只读”Token调用“删除”接口);
- 授权码复用:红队窃取A应用的授权码,尝试在B应用兑换Token(未校验client_id与redirect_url绑定)。
四、Authorization标头攻防实战
1. 六大授权方案对比
| 授权方案 |
标头格式 |
核心特点 |
红队攻击技巧 |
蓝队防护思路 |
| Basic认证 |
Authorization: Basic Base64(账号:密码) |
账号密码Base64编码,可逆解码 |
抓包后解码获取明文(如dXNlcjE6MTIzNDU2解码为user1:123456) |
仅用于内部低安全场景,搭配HTTPS使用 |
| Digest认证 |
Authorization: Digest 加密后的凭证 |
基于MD5哈希,比Basic安全 |
暴力破解弱密码,或利用哈希碰撞 |
逐步淘汰,推荐替换为Bearer认证 |
| Bearer认证 |
Authorization: Bearer Token/JWT |
最常用,承载Token/JWT凭证 |
劫持Token/JWT后直接伪造请求,或破解JWT签名 |
Token定期刷新,JWT用强密钥签名+短期过期 |
| JWT认证 |
Authorization: Bearer JWT字符串 |
结构化凭证,含签名防篡改 |
破解弱密钥签名(如HS256密钥过短)、修改Payload后重签名 |
用RS256非对称签名,密钥定期更换 |
| API密钥认证 |
Authorization: ApiKey 密钥值 |
固定密钥,标识调用者身份 |
扫描泄露的API密钥(如GitHub搜索),或抓包窃取 |
密钥定期轮换,限制IP访问 |
| 双因素认证(2FA) |
结合密码+动态验证码(如短信/谷歌验证) |
多一层身份校验,需实时动态凭证 |
社工欺骗获取动态验证码,或劫持已认证会话 |
强制开启2FA,动态验证码有效期缩短 |
2. JWT攻防核心技巧
- 红队攻击:
- 解码Payload:用Base64工具解码前两部分,获取用户ID、权限等信息;
- 破解签名:若用HS256对称签名,暴力破解密钥(工具:c-jwt-cracker);
- 算法篡改:将Header中的算法改为
none(无签名),绕过校验;
- 蓝队防护:
- 用RS256非对称签名(公钥验签,私钥签名),避免密钥泄露;
- Payload不存敏感信息(如密码),仅存非敏感标识(如用户ID);
- 缩短JWT有效期(如15分钟),配合refresh token刷新。
五、红蓝队实战攻防思路
1. 红队攻击核心路径
- 第一步:识别鉴权类型:抓包查看
Authorization标头(如Bearer+JWT)、Cookie(如SessionID),判断目标用哪种鉴权; - 第二步:针对性攻击:
- Cookie/Session:窃取SessionID(如XSS、抓包),伪造Cookie登录;
- Token/JWT:劫持Token后直接复用,或破解JWT签名篡改权限;
- OAuth2.0:fuzz redirect_url绕过校验(如子域名、路径遍历),劫持授权码;
- 第三步:漏洞利用:鉴权绕过(如未校验Token直接访问)、权限越权(如修改用户ID访问他人数据)。
2. 蓝队防护核心策略
- 基础防护:
- 强制HTTPS,给Cookie加
HttpOnly+Secure+SameSite=Strict; - Token/JWT定期刷新,短期过期,敏感操作二次验证;
- OAuth2.0专项防护:
- 严格校验redirect_url(白名单+精确匹配,不模糊匹配);
- 必传state参数(随机值+绑定会话),防CSRF;
- 限制scope权限,避免过度授权;
- 监控研判:
- 日志记录异常鉴权行为(如同一Token多IP登录、频繁失败的授权请求);
- 拦截畸形Authorization标头(如算法篡改的JWT)。