印度DigiLocker存在漏洞,攻击者无需密码即可访问任意账户
字数 1200 2025-08-15 21:31:03

DigiLocker安全漏洞分析报告与教学文档

漏洞概述

印度政府运营的数字文档存储服务DigiLocker被发现存在严重安全漏洞,允许攻击者无需密码即可访问任意用户账户。该漏洞由安全研究人员Mohesh Mohan和Ashish Gahlot独立发现,已于2020年5月28日修复。

漏洞技术细节

1. OTP验证绕过漏洞

漏洞描述

  • OTP(一次性密码)功能缺少授权验证
  • 攻击者可提交任意合法用户信息执行OTP验证
  • 通过篡改验证流程,以不同用户身份登录

利用条件

  • 仅需知道受害者的以下任一信息:
    • Aadhar ID(印度唯一身份号码)
    • 关联的手机号码
    • 用户名

攻击流程

  1. 攻击者获取目标用户的Aadhar ID/手机号/用户名
  2. 触发系统向目标发送OTP
  3. 利用漏洞绕过OTP验证流程
  4. 成功以目标用户身份登录

2. 移动端PIN码安全漏洞

漏洞描述

  • 移动应用使用4位数PIN作为额外安全层
  • API调用可被修改以关联不同用户的PIN码
  • 缺少授权检查的API端点允许重置任意用户的PIN码

具体问题

  • 可进行SMS OTP验证时使用一个用户身份
  • 提交另一个用户的PIN码
  • 最终以第二个用户身份登录
  • PIN设置API端点无授权检查,允许通过UUID重置任意用户的PIN

3. 其他安全问题

基本认证绕过

  • 移动应用的API调用使用基本认证
  • 通过移除header标志is_encrypted:1可绕过认证

SSL锁定机制薄弱

  • 应用实现弱SSL锁定机制
  • 使用Frida等工具可轻易绕过

漏洞影响

  • 用户规模:3800万注册用户受影响
  • 敏感数据:用户上传的所有文档可能被未授权访问
  • 服务性质:政府运营的关键数字身份服务平台

漏洞修复情况

  • 报告时间
    • Mohan于5月10日向CERT-In报告
    • Gahlot于5月16日向DigiLocker报告
  • 修复时间:5月28日完成修复
  • 官方声明
    • 漏洞存在于新增功能代码中
    • 收到报告后24小时内优先修复
    • 非基础设施攻击,数据、数据库、存储和加密未受影响

安全建议

对于开发者

  1. 授权验证

    • 对所有敏感操作实施严格的授权检查
    • 确保OTP验证与用户会话绑定
  2. API安全:

    • 实现完善的API授权机制
    • 防止API端点被滥用
    • 避免使用可预测的参数(如UUID)进行关键操作
  3. 认证强化:

    • 实施多因素认证
    • 避免仅依赖4位数PIN等弱认证方式
  4. 传输安全:

    • 加强SSL锁定机制
    • 防止中间人攻击

对于用户

  1. 监控账户异常活动
  2. 定期更改认证凭证
  3. 警惕可疑的OTP请求
  4. 使用强唯一密码/PIN

教学总结

本案例展示了几个关键安全失误:

  1. 关键功能缺少授权检查
  2. 认证流程可被篡改
  3. API端点保护不足
  4. 加密实现存在缺陷

开发者应从本案例中学习到严格实施授权、完善认证流程和保护API端点的重要性。安全研究人员通过负责任的漏洞披露流程帮助提升了这一关键政府服务的安全性。

DigiLocker安全漏洞分析报告与教学文档 漏洞概述 印度政府运营的数字文档存储服务DigiLocker被发现存在严重安全漏洞,允许攻击者无需密码即可访问任意用户账户。该漏洞由安全研究人员Mohesh Mohan和Ashish Gahlot独立发现,已于2020年5月28日修复。 漏洞技术细节 1. OTP验证绕过漏洞 漏洞描述 : OTP(一次性密码)功能缺少授权验证 攻击者可提交任意合法用户信息执行OTP验证 通过篡改验证流程,以不同用户身份登录 利用条件 : 仅需知道受害者的以下任一信息: Aadhar ID(印度唯一身份号码) 关联的手机号码 用户名 攻击流程 : 攻击者获取目标用户的Aadhar ID/手机号/用户名 触发系统向目标发送OTP 利用漏洞绕过OTP验证流程 成功以目标用户身份登录 2. 移动端PIN码安全漏洞 漏洞描述 : 移动应用使用4位数PIN作为额外安全层 API调用可被修改以关联不同用户的PIN码 缺少授权检查的API端点允许重置任意用户的PIN码 具体问题 : 可进行SMS OTP验证时使用一个用户身份 提交另一个用户的PIN码 最终以第二个用户身份登录 PIN设置API端点无授权检查,允许通过UUID重置任意用户的PIN 3. 其他安全问题 基本认证绕过 : 移动应用的API调用使用基本认证 通过移除header标志 is_encrypted:1 可绕过认证 SSL锁定机制薄弱 : 应用实现弱SSL锁定机制 使用Frida等工具可轻易绕过 漏洞影响 用户规模 :3800万注册用户受影响 敏感数据 :用户上传的所有文档可能被未授权访问 服务性质 :政府运营的关键数字身份服务平台 漏洞修复情况 报告时间 : Mohan于5月10日向CERT-In报告 Gahlot于5月16日向DigiLocker报告 修复时间 :5月28日完成修复 官方声明 : 漏洞存在于新增功能代码中 收到报告后24小时内优先修复 非基础设施攻击,数据、数据库、存储和加密未受影响 安全建议 对于开发者 授权验证 : 对所有敏感操作实施严格的授权检查 确保OTP验证与用户会话绑定 API安全: 实现完善的API授权机制 防止API端点被滥用 避免使用可预测的参数(如UUID)进行关键操作 认证强化: 实施多因素认证 避免仅依赖4位数PIN等弱认证方式 传输安全: 加强SSL锁定机制 防止中间人攻击 对于用户 监控账户异常活动 定期更改认证凭证 警惕可疑的OTP请求 使用强唯一密码/PIN 教学总结 本案例展示了几个关键安全失误: 关键功能缺少授权检查 认证流程可被篡改 API端点保护不足 加密实现存在缺陷 开发者应从本案例中学习到严格实施授权、完善认证流程和保护API端点的重要性。安全研究人员通过负责任的漏洞披露流程帮助提升了这一关键政府服务的安全性。