Salahuddin56/Behavioral-Biometrics-for-User-Authentication

GitHub: Salahuddin56/Behavioral-Biometrics-for-User-Authentication

该项目系统评估了九种机器学习和深度学习模型在基于击键动态的行为生物特征用户认证中的表现,为无密码持续认证研究提供了可复现的基准实验框架。

Stars: 0 | Forks: 0

# 用于用户认证的行为生物特征 基于击键动态的异常检测与深度学习模型评估 # 基于击键动态的行为生物特征用户认证 ## 概述 本项目实现并评估了多种机器学习和深度学习模型,用于基于击键动态的行为生物特征用户认证。 研究重点是异常检测、聚类、密度估计以及基于重构的深度学习方法,以识别输入样本是属于真实用户还是冒充者。 系统使用**等错误率 (EER)** 评估认证性能,这是生物特征认证中最广泛使用的指标之一。 这项工作是在 United International University (UIU) 进行的硕士论文研究的一部分。 # 研究动机 传统的基于密码的身份验证系统存在几个安全局限性,包括: - 密码重用 - 网络钓鱼攻击 - 暴力破解攻击 - 凭证被盗 - 键盘记录 行为生物特征通过分析用户与系统交互的方式,而不是仅仅依赖静态凭证,提供了一个额外的安全层。 击键动态尤其具有吸引力,因为它: - 不需要额外的硬件 - 是非侵入式的 - 支持持续身份验证 - 难以准确模仿 - 可以随着时间的推移适应用户的行为模式 本项目研究了机器学习和深度学习模型是否能够有效地根据打字行为区分真实用户和冒充者。 # 数据集 ## 使用的数据集 **DSL-StrongPasswordData.csv** ## 数据集统计信息 | 属性 | 值 | |---|---| | 总样本数 | 20,400 | | 总受试者数 | 51 | | 使用特征数 | 31 | | 元数据列 | subject, sessionIndex, rep | 数据集包含代表用户打字行为的击键时间特征,例如: - 按键保持时间 - 按键间延迟 - 双键时间 - 打字节奏模式 # 实验设计 项目遵循**依赖于用户的身份验证框架**。 对于每个用户: ## 训练数据 - 会话:`sessionIndex <= 4` - 代表注册行为 ## 真实测试数据 - 会话:`sessionIndex > 4` - 代表未来的真实身份验证尝试 ## 冒充者测试数据 - 来自其他用户的样本 - 使用: - `sessionIndex == 1` - `rep <= 5` 此设置模拟了一个真实的身份验证场景,其中: - 在注册期间已知真实用户的行为 - 冒充者的行为在训练期间大多是未知的 # 数据预处理 ## 标准化 每个用户实验均使用 `StandardScaler` 应用特定于受试者的归一化。 重要的实现细节: - 缩放器仅在训练数据上进行拟合 - 测试和冒充者样本使用相同的缩放器进行转换 这防止了数据泄漏并确保了公平的评估。 # 实现的模型 项目评估了**9种机器学习和深度学习模型**。 ## 1. Isolation Forest (IF) ### 类型 无监督异常检测 ### 核心思想 异常在随机分区树中更容易被孤立。 ### 输出 使用以下公式计算的异常分数: ``` decision_function() ``` ## 2. Feedforward Autoencoder (AE) ### 类型 深度学习重构模型 ### 架构 ``` Input → 16 → 8 → 16 → Output ``` ### 激活函数 ReLU ### 损失函数 均方误差 (MSE) ### 核心思想 模型学习重构真实用户行为。 冒充者样本会产生更大的重构误差。 ## 3. K-Means Clustering ### 类型 无监督聚类 ### 配置 ``` n_clusters = 2 ``` ### 核心思想 最靠近训练质心的聚类被视为真实用户聚类。 认证分数: - 到真实聚类中心的欧氏距离 ## 4. Gaussian Mixture Model (GMM) ### 类型 概率密度估计 ### 配置 ``` n_components = 2 ``` ### 核心思想 使用高斯概率分布对用户行为进行建模。 较低的似然度表示异常行为。 ## 5. Random Forest (RF) ### 类型 混合监督基准 ### 配置 ``` n_estimators = 50 ``` ### 核心思想 使用: - 真实用户样本作为正类 - 冒充者样本作为负类 输出样本属于真实用户的概率。 ## 6. Kernel Density Estimation (KDE) ### 类型 基于密度的异常检测 ### 配置 ``` kernel = 'gaussian' bandwidth = 0.5 ``` ### 核心思想 低密度区域表示异常。 ## 7. k-Nearest Neighbors (k-NN) ### 类型 基于距离的检测 ### 配置 ``` k = 5 ``` ### 核心思想 认证分数基于: - 到第 5 个最近邻的距离 距离越大意味着行为越异常。 ## 8. Histogram-Based Outlier Score (HBOS) ### 库 PyOD ### 配置 ``` n_bins = 10 alpha = 0.1 ``` ### 核心思想 跨特征独立使用直方图密度估计。 ## 9. LSTM Autoencoder ### 类型 基于序列的深度学习模型 ### 架构 - 编码器:LSTM - 解码器:全连接层 ### 隐藏层大小 ``` 16 ``` ### 核心思想 学习时间行为特征表示,并重构真实用户行为。 # 深度学习训练配置 | 参数 | 值 | |---|---| | 优化器 | Adam | | 学习率 | 0.001 | | 训练轮数 | 100 | | 批大小 | 32 | | 框架 | PyTorch | | GPU 支持 | CUDA | # 评估指标 ## 等错误率 (EER) 项目使用**等错误率 (EER)** 作为主要评估指标。 ### 定义 EER 是以下两项相等的点: - 错误接受率 (FAR) 等于 - 错误拒绝率 (FRR) ### 解释 - EER 越低 = 身份验证性能越好 # 实验结果 ## 所有受试者的平均 EER | 模型 | 平均 EER | |---|---| | Random Forest | 0.0072 | | HBOS | 0.0639 | | Isolation Forest | 0.0910 | | k-NN | 0.0963 | | K-Means | 0.1040 | | GMM | 0.1063 | | LSTM Autoencoder | 0.1109 | | Autoencoder | 0.1147 | | KDE | 0.1360 | # 主要发现 - Random Forest 取得了最低的 EER,因为它使用了有监督的冒充者样本。 - HBOS 尽管轻量级,但表现强劲。 - 经典的异常检测方法仍然非常有效。 - 深度学习方法需要更多的计算资源。 - 用户的打字变异性显著影响了身份验证性能。 # 使用的技术 ## 编程语言 - Python ## 库 - PyTorch - NumPy - Pandas - Scikit-learn - Matplotlib - PyOD # 项目结构 ``` project/ │ ├── dataset/ │ └── DSL-StrongPasswordData.csv │ ├── notebooks/ │ └── keystroke_authentication.ipynb │ ├── results/ │ └── eer_results.csv │ ├── figures/ │ └── README.md ``` # 安装 ## 克隆仓库 ``` git clone https://github.com/yourusername/keystroke-authentication.git cd keystroke-authentication ``` # 安装依赖 ``` pip install torch numpy pandas matplotlib scikit-learn pyod ``` # 运行项目 ## 步骤 1 下载数据集: ``` DSL-StrongPasswordData.csv ``` ## 步骤 2 将数据集放入: ``` dataset/ ``` ## 步骤 3 运行 notebook 或 Python 脚本。 # 未来工作 未来可能的改进包括: - 基于 Transformer 的行为模型 - 持续身份验证系统 - 移动端击键生物特征识别 - 联邦学习方法 - 实时身份验证部署 - 多模态行为生物特征 - 对抗性鲁棒性评估 # 研究贡献 本项目的贡献包括: - 9种身份验证模型的比较评估 - 击键动态的基准框架 - 单类异常检测方法的分析 - 深度学习与经典 ML 的比较 - 可重现的身份验证评估流程 # 作者 ## Salah-ud-Din Elias Khan MSCSE 项目 计算机科学与工程系 United International University (UIU) ### 研究兴趣 - 网络安全 - 行为生物特征 - 机器学习 - 身份验证系统 - 深度学习
标签:Apex, DSL-StrongPasswordData数据集, UIU研究, 人机交互, 假动作识别, 凭据扫描, 击键动力学, 分类与聚类, 密度估计, 密码安全替代, 异常检测, 机器学习, 深度学习, 生物特征识别, 用户身份验证, 等错误率(EER), 网络安全, 行为生物识别, 身份与访问管理, 连续身份验证, 逆向工具, 重构模型, 防御凭据窃取, 防网络钓鱼, 隐私保护