Qaisar256/HumanRisk-Crypt
GitHub: Qaisar256/HumanRisk-Crypt
该框架结合 BFV 同态加密推理、ATT&CK 本体推理与 E-HVSS 人类脆弱性评分,实现隐私保护的网络钓鱼检测,并提供严格的可复现实验验证流程。
Stars: 0 | Forks: 0
# HumanRisk-Crypt
HumanRisk-Crypt 是一个面向可复现性的隐私保护网络钓鱼检测与人类脆弱性风险分析框架。它结合了本地特征提取、兼容 BFV 的多项式分类器、通过 TenSEAL 和 Microsoft SEAL 实现的真实同态推理、与 ATT&CK 对齐的本体推理,以及专家校准的 E-HVSS 评分。
本仓库区分了真实的加密实验与纯软件演示。
## 实验模式
### 1. 论文实验模式
论文实验模式专用于稿件中报告的实验。它要求:
- 授权的 OpenPhish、PhishTank 或 APWG 数据
- 按时间顺序且域不相交的数据划分
- 1,024 维特征表示
- 使用 AdamW 进行 PyTorch 训练
- 真实的 TenSEAL BFV 后端
- 测得的加密、评估、序列化、通信和解密成本
- 精确的密文到明文整数电路验证
- 在评估 E-HVSS 校准时需提供专家给出的 E-HVSS 参考分数
当所需的数据集、时间戳、密码学依赖项或专家标签不可用时,实验将停止。它不会静默替换为合成数据或固定的稿件数值。
## 已实现组件
- URL、文本、行为、劝说和元数据特征的本地提取
- 512 维本地语义表示
- 512 维结构化 URL 和元数据表示
- 1,024 维组合特征向量
- 使用 AdamW 训练的 PyTorch 二次多项式分类器
- 使用 TenSEAL 和 Microsoft SEAL 进行真实的 BFV 加密推理
- 8192 的多项式模数阶
- 65537 的明文模数
- 总计 218 位的系数模数链
- 服务器端不包含私钥的公共评估上下文
- 使用 `perf_counter` 测量密码学阶段延迟
- 测得的序列化密文和上下文大小
- 明文模数溢出检查
- 加密与明文整数电路相等性验证
- 在已安装的 TenSEAL 构建暴露时收集不变噪声预算
- 按时间顺序、域不相交的训练和测试划分
- 感知公共后缀的已注册域名提取
- RDFLib 和 SPARQL ATT&CK 对齐的证据查找
- 专家校准的 E-HVSS 评分
- 可复现性清单、环境记录和数据集哈希
- 发布验证脚本和自动化测试
## 加密推理电路
BFV 服务器评估以下整数二次 logit:
```
z = b + sum_i(w_i x_i) + sum_i(q_i x_i^2)
```
客户端加密量化特征向量,并发送包含公共评估上下文的序列化密文。服务器在不访问私钥的情况下评估多项式,并返回加密的 logit。客户端解密整数 logit 并在本地应用 sigmoid 函数。
本仓库并未声明 sigmoid、概率校准、ATT&CK 推理或 E-HVSS 评分是同态评估的。
## 测得的密码学证据
对于每个加密样本,框架记录:
- 上下文生成时间
- 公共上下文序列化时间
- 特征编码和加密时间
- 请求序列化时间
- 服务器端请求反序列化时间
- 同态多项式评估时间
- 响应序列化时间
- 客户端响应反序列化时间
- 解密时间
- 请求和响应密文大小
- 一次性公共评估上下文大小
- 总计和均摊通信开销
- 明文和解密后的整数 logit
- 精确匹配验证状态
- 明文模数溢出状态
- 不变噪声预算(在支持时)
报告的结果中未插入任何延迟下限、对齐稿件的运行时间或硬编码的值。
## 数据协议
本仓库不重新分发 OpenPhish、PhishTank 或 APWG 数据。请将授权的 CSV 导出文件放置在:
```
datasets/openphish/openphish.csv
datasets/phishtank/phishtank.csv
datasets/apwg/apwg.csv
```
每个真实数据文件必须至少包含:
```
url,label,timestamp
```
推荐的可选字段包括:
```
html_text,registered_domain,brand,sector,domain_age_days,
hosting_stability,urgency_score,authority_score,reward_score,fear_score
```
对于专家校准的 E-HVSS 实验,需包含:
```
expert_ehvss
```
可选的 `expert_id` 字段支持专家级别的审计和分组验证。
`timestamp` 字段必须代表威胁制品的收集或观察时间。如果提供了 `registered_domain`,将直接使用。否则,加载器将使用内置的公共后缀快照派生已注册域名,而无需网络访问。
论文实验模式应用按时间顺序的划分,并消除训练和测试分区之间的域重叠。报告的加密实验不使用随机分层划分。
## 仓库结构
```
HumanRisk-Crypt_code/
├── configs/
│ ├── default_config.yaml
│ └── demo_config.yaml
├── datasets/
│ ├── openphish/
│ ├── phishtank/
│ ├── apwg/
│ ├── processed/
│ └── synthetic/
├── docs/
│ ├── implementation_notes.md
│ ├── baseline_comparison_protocol.md
│ ├── reviewer3_remediation.md
│ └── local_validation_status.md
├── humanrisk_crypt/
│ ├── crypto/
│ ├── data/
│ ├── ehvss/
│ ├── evaluation/
│ ├── models/
│ ├── ontology/
│ ├── utils/
│ └── pipeline.py
├── scripts/
│ ├── evaluate_models.py
│ ├── prepare_datasets.py
│ ├── run_baseline_comparisons.py
│ ├── run_demo.py
│ └── verify_release.py
├── tests/
│ └── test_pipeline.py
├── results/
├── Dockerfile
├── pyproject.toml
├── requirements.txt
├── requirements-crypto.txt
├── LICENSE
└── README.md
```
## 安装
推荐使用 Python 3.11,因为 TenSEAL wheel 的可用性取决于操作系统和 Python 版本。
### 标准环境
```
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements-crypto.txt
```
在 Windows PowerShell 上:
```
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements-crypto.txt
```
### Docker 环境
```
docker build -t humanrisk-crypt .
docker run --rm \
-v "$PWD/datasets:/app/datasets" \
-v "$PWD/results:/app/results" \
humanrisk-crypt
```
## 准备数据集
```
python scripts/prepare_datasets.py
```
准备脚本会验证所需列、标准化时间戳、在需要时派生域名、移除格式错误的条目、记录数据集统计信息,并为实验流水线生成处理好的文件。
## 运行论文实验
```
python scripts/evaluate_models.py --config configs/default_config.yaml --allow-model-download
```
脚本会在以下位置创建可复现性包:
```
results/paper_experiment/
├── predictions.csv
├── crypto_trace.csv
├── metrics.json
├── split_audit.json
├── encrypted_audit.json
├── quantized_polynomial_model.npz
├── training_metadata.json
├── feature_manifest.json
├── ehvss_calibration.json
├── dataset_manifest.json
├── environment.json
└── resolved_config.yaml
```
划分审计必须报告零域重叠和严格的时间顺序。加密审计必须识别出密码学后端、成功的模数检查,以及解密后的整数电路与明文整数电路之间的精确一致性。
## 验证发布的结果
```
python scripts/verify_release.py results/paper_experiment
```
当验证器检测到以下情况时,将拒绝结果包:
- 模拟或非密码学后端
- 缺失数据集哈希
- 时间泄露
- 域重叠
- 加密与明文整数 logit 不一致
- 明文模数溢出
- 缺失密码学出处
- 延迟或通信总量不一致
只有通过此验证的结果包才应用于稿件或补充材料中。
## 明文基线
```
python scripts/run_baseline_comparisons.py --config configs/default_config.yaml --allow-model-download
```
脚本仅报告实际实现的基线。它不会将明文估计器标记为加密模型,也不会分配固定的加密延迟值。
## 运行冒烟测试
```
python scripts/run_demo.py --config configs/demo_config.yaml
```
控制台和输出文件会明确将此次执行标记为非密码学。合成数据集仅用于测试软件接口,不能替代真实的网络钓鱼数据集。
## 测试
```
pytest -q
```
当 TenSEAL 不可用时,将跳过真实的 BFV 集成测试。所有剩余的单元测试无需外部数据集或模型下载即可运行。
## 可复现性记录
每次论文模式运行都会存储:
- 解析后的 YAML 配置
- Python、操作系统和包版本
- 数据集路径和 SHA-256 哈希
- 数据集类别和来源分布
- 时间和域划分统计信息
- 随机种子
- 特征维度和特征清单
- 模型超参数和训练元数据
- 模型量化参数
- 样本级别的密码学测量值
- E-HVSS 校准参数
这些文件应与相应的稿件结果一起归档。
## 安全声明
这是研究软件,而非生产级网络钓鱼网关。正确的 BFV 参数选择、密钥保护、部署强化、侧信道防御、身份验证、安全传输、访问控制和运营监控仍然是部署团队的责任。
标签:Apex, PyTorch, TenSEAL, Terrascan, 凭据扫描, 同态加密, 机器学习, 社会工程学分析, 请求拦截, 逆向工具, 钓鱼检测, 隐私计算