当前位置: 首页 > news >正文

《RANKGUESS: Password Guessing Using Adversarial Ranking》——论文解读

本文提出基于对抗排序(Adversarial Ranking) 的口令猜测框架 RANKGUESS,首次将口令生成建模为马尔可夫决策过程(MDP),通过 “猜测器(Guesser)- 排序器(Ranker)” 的对抗交互,实现 “学习排序(Learning-to-Rank)” 与口令猜测的对齐。

相关知识:

        MC 滚动(MC Rollouts)即蒙特卡洛滚动(Monte Carlo Rollouts),主要用于估计价值函数、降低梯度方差以及模拟未来可能的行动序列。基于蒙特卡洛方法,通过多次随机模拟来获取对某个状态或策略的价值估计。

        核心思想:从当前状态出发,用一个**轻量级策略(rollout policy)**快速模拟一条或多条轨迹直到终止状态,把得到的回报作为当前状态(或动作)价值的近似估计

        基本流程:

  1. 在当前节点(状态)开始。

  2. 按既定rollout 策略(可为随机、贪婪或简单启发式)选择动作,快速走完整条轨迹。

  3. 记录轨迹的累积回报(如胜负、收益)。

  4. 用该回报更新当前节点或其父节点的价值估计。

  5. 重复大量 rollout 后,取平均回报作为价值估计。

一、研究背景

        口令的不可替代性和面临的攻击威胁。当前口令猜测具有局限性:传统统计模型(PCFG,Markov)数据稀疏,过拟合等;深度学习模型(FLA,PassGan)需要超大训练集,训练时间长;经典机器学习模型(RFGuess)未结合“学习排序”,无法优先生成高概率口令。

        核心挑战:

        精确匹配要求;

        奖励机制设置:口令猜测需 “按概率降序生成”,需将排序偏好转化为可优化的奖励信号,而非简单二分类(生成正确 / 错误)

        额外信息利用:有效融合 PII(姓名 / 生日)或部分口令提升猜测针对性。

二、本文研究

        本文提出的RANKGUESS 将口令猜测建模为马尔可夫决策过程(MDP),核心是 “猜测器(Guesser)- 排序器(Ranker)” 的对抗交互。核心是 “猜测器生成候选 - 排序器评分反馈 - 双方迭代优化” 。

        三个步骤:模型准备,累计奖励积累,猜测过程。


2.1 猜词器

        骨干网络:采用 GRU(门控循环单元),解决长序列梯度消失问题,输入为 token 嵌入向量,输出为下一个字符的概率分布

2.2 排序器

       核心功能:学习 “真实口令 - 候选口令” 的排名偏好,输出候选口令的奖励分数

       采用全连接网络,输入为口令特征向量,输出为排名分数,优化器为 Adam(学习率 0.0001)

2.3 阶段一:排序器(Rφ)训练 —— 学习口令排名偏好

        目标是区分 “真实口令” 与 “猜测器生成的假口令”,输出能反映口令概率的排名分数,为猜测器提供奖励信号。

   ① 生成正负样本

  • 正样本(S⁺):从训练集中随机采样与假样本等量的真实口令(如 10 万条);
  • 负样本(S⁻):由猜测器 Gθ 生成假口令(通过当前策略 πθ 采样,确保与真实口令长度分布一致)。

    ② 构建混合样本

        按混合比例 λᵢ 生成混合样本 Sᵐᵢ = λᵢ×S⁺ + (1-λᵢ)×S⁻,共生成 72 组混合样本(覆盖不同 λ 取值,确保排序器学习连续排名偏好)。

    ③ 计算排名分布与优化

        对每组混合样本 Sᵐᵢ,排序器输出其排名分数(基于余弦相似度:cos(y_PW, y_E),其中 y_PW 为候选口令特征,y_E 为专家口令(训练集 Top-1 万)特征);

        计算混合样本排名分布与 λᵢ 分布的 KL 散度,通过梯度下降最小化散度,更新排序器参数 φ

        重复步骤 1-3,直至排序器对真实 / 假口令的区分准确率稳定(如验证集准确率 >95%)。

2.4 阶段二:猜测器(Gθ)训练 —— 最大化累积奖励

        目标是学习 “生成高排名口令” 的策略,通过排序器提供的奖励信号,优化字符生成概率分布。

        ① 生成训练轨迹

        从初始状态(Bs×6 阶前缀)出发,根据当前策略 πθ(aₜ|sₜ) 采样字符,生成完整口令轨迹 τ = {s₀,a₀,s₁,a₁,…,s_T,a_T},共生成 N=100 条轨迹,计算每条轨迹的奖励。

        ②计算中间奖励

        对每条轨迹的每个状态 sₜ(t 阶前缀),通过 MC 滚动(MC Rollouts)模拟后续字符生成,计算状态价值 Q̃(sₜ)

        ③策略梯度优化:以 “最大化累积奖励” 为目标,通过策略梯度更新猜测器参数 θ。

2.5 迭代对抗训练

        猜测器生成假样本,欺骗排序器。排序器区分真假样本,引导猜测器生成更难区分的假样本。

        交替进行 “排序器训练(阶段 1)” 与 “猜测器训练(阶段 2)”,共迭代 K=30 次;

        每轮迭代后,验证猜测器生成口令的 “排名一致性”(即高概率口令是否被排序器评为高排名),若一致性 >90% 则停止训练。最终形成极小极大博弈,推动双方迭代优化,实现 “按概率降序生成口令” 的目标。

三、本文场景

(1)漫步猜测

        核心任务:无额外信息,最大化破解数量。通过栈(存储前缀)和查找表(记录概率),匹配真实口令长度分布;

        弹出栈顶前缀 sₜ,通过猜测器 Gθ 预测下一个字符的概率分布。保留概率 > 阈值 α的字符,若字符为 Es,则将前缀 sₜ 加入猜测集 P;否则,将新前缀 sₜ+c 压入栈 Q,更新查找表LUT 中该前缀的概率。栈 Q 为空时,输出猜测集 P(按概率降序排序)。

图为在跨站点猜测场景中,RANKGUESS与其他最先进方法的猜测性能对比。

10⁴次猜测后,RANKGUESS 成功率(46.63%)超 RFGuess(43.24%)、FLA(43.41%),10¹⁰次达 83.55%。


(2)定向猜测

        定向猜测:PII 标签数字化(如 1000 = 完整姓名、2000 = 完整生日)+ 多表示数据增强

        对训练好的猜测器,生成含 PII 标签的候选口令,将标签替换为目标用户的真实 PII,生成针对性猜测。对每个 PII 标签组合,生成对应猜测,按排序器评分降序去重;保留 Top-K 猜测,优先尝试高评分候选。

在跨站点目标场景中,我们的RANKGUESS与其他使用PII的目标方法的猜测性能比较。分数代表训练的比例。

(3)条件猜测(利用部分口令)

        利用剪枝策略来进行优化。

        输入部分口令(如 “d***l02*”),确定 wildcard 位置(记为 m 个),计算每个 wildcard 位置的候选字符数 ω = ⌈m×√n⌉。对每个 wildcard 位置,通过猜测器 Gθ 预测 Top-ω 字符,生成部分填充的前缀;重复填充直至所有 wildcard 被替换,生成完整口令候选。过滤不匹配部分口令模板的候选。按排序器评分降序输出猜测集。

四、总结

        本文通过 “对抗排序 + RL” 的创新路线,突破传统口令猜测的三大痛点,构建的 RANKGUESS 框架在三大场景下均显著优于 SOTA 模型,衍生的 PSM 工具可直接落地。其核心贡献在于:将口令猜测从 “生成任务” 升级为 “排序优化任务”,为后续结合大模型用户画像、扩展经典机器学习算法提供了通用范式,对口令安全研究与实践具有重要指导意义。

http://www.dtcms.com/a/357962.html

相关文章:

  • 主从DNS和Web服务器搭建过程
  • Windows系统提示“找不到文件‘javaw‘”
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day16
  • Azure DevOps cherry pick
  • 基于IEC61499开放自动化PLC数据储存方案
  • Python 多线程日志错乱:logging.Handler 的并发问题
  • 42-Ansible-Inventory
  • AUTOSAR进阶图解==>AUTOSAR_TR_ClassicPlatformReleaseOverview
  • Spring Boot 日志操作全解析:从基础到实践
  • 加密软件哪个好用?加密软件-为数据共享提供安全保障
  • SQLSERVER分页存储过程
  • 【YOLO11小目标改进】多尺度前馈网络(MSFN)代码
  • 第 8 篇:量化交易之tradeUI和webserverUI 区别?
  • 学习Python中Selenium模块的基本用法(11:弹窗处理)
  • LangGraph结构化输出详解:让智能体返回格式化数据
  • Docker核心概念与镜像仓库操作指南
  • AIGC应用与实践- 实验1:采用Markdown转换成WORD文档方式
  • 基于SpringBoot的流浪动物领养系统【2026最新】
  • Java函数式编程之【流(Stream)性能优化】
  • Docker(自写)
  • Netty 心跳与链路保活机制详解:保证高并发环境下的稳定连接
  • Web 聊天室消息加解密方案详解
  • Java面试-spring boot框架
  • 音视频学习(六十):H264中的PPS
  • 【C语言】字符函数与字符串函数实战:用法原理 + 模拟实现
  • VMware 设置 Ubuntu 虚拟机桥接模式完整教程
  • 音视频学习(六十二):H264中的SEI
  • 【Qt开发】按钮类控件(一)-> QPushButton
  • Ethan独立开发新品速递 | 2025-08-30
  • 【读书笔记】《最好的告别》