paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Fine with “1234”? An Analysis of SMS One-Time Password Randomness in Android Apps

“1234”可以吗?Android 应用中 SMS 一次性密码随机性分析
ICSE 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)2021匹配度 2/10 · 该论文关注 Android 应用中短信 OTP 伪随机数生成的安全性分析,属于移动安全与程序分析工具应用;但未涉及用户核心关注的 PL→AI、AI→PL、LLM/Agent 改进静态分析、浮点程序分析或贝叶斯程序分析。引用 18 inbox
Siqi Ma, Juanru Li, Hyoungshick Kim, Elisa Bertino, Surya Nepal, Diethelm Ostry, Cong Sun
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出 OTP-Lint 工具,在无源码条件下评估 Android 应用 SMS OTP 的伪随机数生成,并发现大量可预测 OTP 漏洞。

SMS 一次性密码(OTP)的安全性依赖每次登录生成不可预测的伪随机数,但 Android 应用常将伪随机数生成器(PRNG)放在服务端,源码不可见,难以审计。本文提出 OTP-Lint:通过逆向工程识别使用 SMS OTP 的应用,自动触发登录流程获取 OTP 值,并评估其随机性以发现脆弱 PRNG。作者对 Google Play 和腾讯应用宝的 6,431 个商业 Android 应用进行大规模分析,识别出 399 个生成可预测 OTP 的脆弱应用;其中 194 个仅依赖 SMS OTP 且无额外安全机制,因而易受猜测和重放攻击。该工作揭示了移动认证中随机数实现缺陷的普遍性与风险。

问题
Android 应用中 SMS OTP 的伪随机数生成器若实现不当,会产生可预测甚至静态的 OTP,但 PRNG 常在服务端且无源码,难以直接审计。
方法
构建 OTP-Lint,通过逆向工程识别使用 SMS OTP 的应用,自动触发登录获取 OTP 值,再评估其随机性以判定脆弱的 PRNG 实现。
评估
对来自 Google Play 和腾讯应用宝的 6,431 个商业 Android 应用进行大规模分析,发现 399 个脆弱应用,其中 194 个仅依赖 OTP 认证且无额外安全机制。
原文摘要(Abstract)

A fundamental premise of SMS One-Time Password (OTP) is that the used pseudo-random numbers (PRNs) are uniquely unpredictable for each login session. Hence, the process of generating PRNs is the most critical step in the OTP authentication. An improper implementation of the pseudo-random number generator (PRNG) will result in predictable or even static OTP values, making them vulnerable to potential attacks. In this paper, we present a vulnerability study against PRNGs implemented for Android apps. A key challenge is that PRNGs are typically implemented on the server-side, and thus the source code is not accessible. To resolve this issue, we build an analysis tool, OTP-Lint, to assess implementations of the PRNGs in an automated manner without the source code requirement. Through reverse engineering, OTP-Lint identifies the apps using SMS OTP and triggers each app's login functionality to retrieve OTP values. It further assesses the randomness of the OTP values to identify vulnerable PRNGs. By analyzing 6,431 commercially used Android apps downloaded from Google Play and Tencent Myapp, OTP-Lint identified 399 vulnerable apps that generate predictable OTP values. Even worse, 194 vulnerable apps use the OTP authentication alone without any additional security mechanisms, leading to insecure authentication against guessing attacks and replay attacks.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{MaLKBNO021,
  title = {Fine with “1234”? An Analysis of SMS One-Time Password Randomness in Android Apps},
  author = {Siqi Ma and Juanru Li and Hyoungshick Kim and Elisa Bertino and Surya Nepal and Diethelm Ostry and Cong Sun},
  booktitle = {ICSE},
  year = {2021},
  doi = {10.1109/icse43902.2021.00148}
}