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 个迭代周期
PII 分类 → 泄露风险映射 L1 – 核心身份 身份证 / 银行卡 L2 – 通信与账号 手机 / 邮箱 / L3 – 设备与环境 IMEI / IP / Mac L4 – 行为与偏好 位置 / 历史记录 高风险 L1/L2 明文暴露 + 无鉴权 中风险 L3 调试泄露 或加密密钥硬编码 低风险 L4 受限传输 安全边界内 立即告警 & 阻断 30分钟内修复 限时修复 & 加强防护 4小时内处置 观察 & 迭代优化 下一个迭代周期
常见排查盲区:开发环境中 OkHttp 的日志拦截器(如 HttpLoggingInterceptor)若配置为 BODY 级别,会全文打印请求/响应体,极易泄露 L1/L2 字段。本章基础概念将直接指导你决定哪些日志等级和过滤规则。

掌握上述分类与等级划分后,即可进入下一环节:现象识别——在 OkHttp 拦截器、Charles 抓包或全链路监控中,如何快速标记出疑似泄露的接口和数据字段。