1. 隐私泄露基础概念
排查 OkHttp 接口隐私泄露的第一步,是明确需要保护的对象及其敏感程度。本章建立三大基础:个人身份信息 (PII) 的定义、敏感字段类型分类 与 泄露风险等级划分。理解这些概念后,才能从接口调用日志和请求中准确识别疑似泄露字段,并为后续数据采集和原因定位提供统一的判定标准。
1.1 个人身份信息 (PII) 定义
PII(Personally Identifiable Information)指可用于直接或间接识别特定自然人的任何信息。在 OkHttp 接口上下文中,常见 PII 包括:
- 直接标识符:姓名、身份证号、手机号、邮箱、人脸特征、指纹等
- 准标识符:性别、出生日期、邮编、IP 地址、设备指纹等(单独不足以识别,组合后可能形成关联)
- 敏感属性:健康状况、宗教信仰、政治倾向、财务信息、生物识别数据等
排查提示:即使字段名不直接包含“id”“phone”“name”,只要取值可回溯到具体用户(例如 avatarUrl 可能携带用户唯一 ),也应归入 PII 监控范围。
1.2 敏感字段类型分类
为便于自动化检测和分级管控,将 OkHttp 接口交互中可能出现的敏感字段划分为以下四类:
| 类别 | 典型字段名示例 | 说明 |
|---|---|---|
| L1 – 核心身份 | id_card, passport, real_name, bank_card |
直接明确定位到自然人,泄露即构成高风险事件 |
| L2 – 通信与账号 | phone, email, username, access_ |
可用于登录、身份验证或发起骚扰,泄露需立即处置 |
| L3 – 设备与环境 | device_id, imei, mac, ip, user_agent |
追踪设备指纹,辅助跨域关联,组合后风险升高 |
| L4 – 行为与偏好 | location, search_history, purchase_hobby |
单一风险较低,聚合分析可推测用户画像 |
数据采集焦点:在 OkHttp 拦截器中捕获请求/响应体、URL 参数和 Header 时,优先对 L1、L2 字段进行脱敏或屏蔽,L3、L4 字段视业务场景决定是否过滤。
1.3 泄露风险等级划分
结合字段类型与暴露范围,定义三个等级的风险判定规则:
- 高风险:L1/L2 字段在未加密的请求体、URL 明文参数或响应体中明文出现,且无访问鉴权或其他保护措施
- 中风险:L3 字段未脱敏出现在日志、错误栈或调试端点中;或 L1/L2 字段虽经加密但密钥硬编码在客户端
- 低风险:L4 字段在受限的 App 沙箱或内部网络中传输,且无第三方可匿名访问
| 风险等级 | 判定条件组合 | 推荐响应时间 |
|---|---|---|
| 高风险 | L1/L2 字段 + 明文传输/日志输出 + 无鉴权 | < 30 分钟 |
| 中风险 | L3 字段暴露 + 调试接口可复现;或 L1/L2 字段因硬编码密钥可破解 | < 4 小时 |
| 低风险 | L4 字段在安全边界内传输,无外部窃取可能 | < 1 个迭代周期 |
常见排查盲区:开发环境中 OkHttp 的日志拦截器(如
HttpLoggingInterceptor)若配置为 BODY 级别,会全文打印请求/响应体,极易泄露 L1/L2 字段。本章基础概念将直接指导你决定哪些日志等级和过滤规则。
掌握上述分类与等级划分后,即可进入下一环节:现象识别——在 OkHttp 拦截器、Charles 抓包或全链路监控中,如何快速标记出疑似泄露的接口和数据字段。