quantumscan-io/scanner-core

GitHub: quantumscan-io/scanner-core

QuantumScan 是一款后量子密码学扫描器,用于检测代码中的经典加密算法漏洞并推荐 NIST 标准的 PQC 替代方案。

Stars: 0 | Forks: 1

# QuantumScan — scanner-core [![实时统计](https://img.shields.io/badge/live%20stats-STATS.md-blue)](./STATS.md) [![官网](https://img.shields.io/badge/web-quantumscan.io-0ea5e9)](https://quantumscan.io) [![许可证](https://img.shields.io/badge/license-MIT-green)](./LICENSE) [![npm](https://img.shields.io/npm/v/elizaos-plugin-quantumscan)](https://www.npmjs.com/package/elizaos-plugin-quantumscan) QuantumScan 检测易受量子计算机攻击的经典密码学算法(RSA、ECDSA、AES-128、SHA-1…),并将它们映射到 [NIST FIPS 203/204/205](https://csrc.nist.gov/publications/detail/fips/203/final) 中的后量子替代方案。 ## 快速开始 ``` # 扫描任意公开 GitHub 仓库 — 免费,无需登录 curl -X POST https://quantumscan.io/api/scan \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com","repoUrl":"https://github.com/owner/repo"}' ``` 或者使用 **[quantumscan.io](https://quantumscan.io)** 上的 Web UI —— 粘贴仓库 URL,几秒钟即可获得完整的风险报告。 ## 检测内容 | 严重程度 | 示例 | |---|---| | CRITICAL | MD5, SHA-1, DES, SSLv3/TLS<1.2 | | HIGH | RSA, ECDSA, ECDH, DSA (均已被量子破解) | | MEDIUM | AES-128 (需升级至 AES-256) | | LOW | HMAC-SHA1, 硬编码的密钥字面量 | 最近在实际环境中检测到最多的是:**`ECDSA`** —— 出现在 515 次扫描中。 → 请参阅 [STATS.md](./STATS.md) 查看每 24 小时更新一次的实时数据。 ## 为什么现在需要后量子密码学? NIST 于 2024 年 8 月正式定稿了 **ML-KEM**(密钥封装)和 **ML-DSA**(签名)。DORA、NIS2 和 ISO 27001:2022 合规框架已经提及了 PQC 就绪性。迁移窗口期为 3-7 年 —— 规划从今天开始。 ## PQC 替代方案 | 经典算法 | 量子替代方案 | |---|---| | RSA / ECDSA | ML-DSA (FIPS 204) | | ECDH / DH | ML-KEM (FIPS 203) | | SHA-1 | SHA-3 / SHA-256+ | | AES-128 | AES-256 | ## Substrate / Polkadot 使用 `--substrate` 参数可启用 19 种针对 Substrate 的特定 PQC 模式,涵盖 BABE/GRANDPA 共识密钥、自定义 pallet 加密、XCM 签名以及 ink! 智能合约。 ``` npx quantumscan ./my-parachain --substrate ``` **使用 `--substrate` 检测的内容:** | 模式组 | 涵盖的 API | |---|---| | BABE/GRANDPA 密钥 | `BabeId`, `GrandpaId`, `sr25519::Pair`, `ed25519::Pair`, `impl_opaque_keys!`, `LocalKeystore::open`, `KeystorePtr` | | Pallet 加密 | `sp_runtime::traits::Verify`, `MultiSignature`, `sp_core::sr25519/ed25519`, `sp_io::crypto::*` | | XCM 签名 | `OriginKind::SovereignAccount`, `xcm::prelude::*`, `Junction::AccountId32`, `xcm_executor::XcmExecutor` | | ink! 合约 | `ink::env::ecdsa_recover`, `ink::env::sr25519_verify`, `self.env().caller()` | | Rust crates | `schnorrkel`, `ed25519-dalek`, `x25519-dalek`, `libp2p-noise` | **示例输出:** ``` QuantumScan v1.9.0 Substrate/Polkadot PQC Analysis ────────────────────────────────────────────────────────── Workspace Substrate/Polkadot detected Pallets 3 found (pallets/staking, pallets/identity, pallets/session) ink! 2 contract(s) found Crates frame-support, sp-core, sp-runtime, schnorrkel… +4 Patterns 19 Substrate-specific PQC patterns active 🟠 HIGH 12 findings pallets/staking/src/lib.rs:42 BABE Authority Key (sr25519) `BabeId` pallets/staking/src/lib.rs:89 Substrate Session Keys `impl_opaque_keys! {` contracts/token/src/lib.rs:31 ink! ECDSA Recovery (secp256k1) `self.env().ecdsa_recover` ... Risk Score 85/100 High Risk ``` **迁移路径:** | 算法 | PQC 替代方案 | |---|---| | sr25519 / BABE | ML-DSA (CRYSTALS-Dilithium) — 等待 sp-core PQC RFC | | ed25519 / GRANDPA | ML-DSA 或 SLH-DSA — 等待 Substrate PQC pallets | | x25519 / libp2p-noise | ML-KEM (CRYSTALS-Kyber) — 等待 libp2p PQC KEX | | ink! ECDSA | ML-DSA,待 ink! 添加 PQC 宿主函数 | **运行测试:** ``` npm test # → 60 项测试通过,6 个分组,0 次失败 # Node.js 内置测试运行器 — 无额外依赖 ``` **Docker:** ``` docker run --rm -v $(pwd):/target quantumscan/scanner /target --substrate ``` ### 链上 CBOM (EIP-7789) QuantumScan 扫描报告现在包含一个 **EIP-7789 CBOM 清单** —— 这是一个机器可读的加密清单,记录了检测到的每一个原语。 - EIP 草案: [quantumscan-io/eip-cbom](https://github.com/quantumscan-io/eip-cbom) - 接口: `ICBOM.sol` — 在您的合约中实现它以实现链上 PQC 可发现性 ### Arbitrum Stylus 上的 ML-DSA 今天即可部署抗量子签名验证,无需等待 EVM 协议升级: - [quantumscan-io/stylus-ml-dsa](https://github.com/quantumscan-io/stylus-ml-dsa) — 作为 Arbitrum Stylus WASM 合约的 ML-DSA-65 (NIST FIPS 204) - `mlDsaVerify(pubkey, message, signature)` 可从 Arbitrum 上的任何 Solidity 合约中调用 - Gas: ~112,000 (相比之下 ecrecover 为 ~3,000 — 37 倍开销,适用于高价值操作) ## AI Agent 集成 (ElizaOS) [![npm](https://img.shields.io/npm/v/elizaos-plugin-quantumscan)](https://www.npmjs.com/package/elizaos-plugin-quantumscan) 直接从任何 [ElizaOS](https://elizaos.ai) agent 中使用 QuantumScan: ``` npm install elizaos-plugin-quantumscan ``` ``` import { quantumscanPlugin } from "elizaos-plugin-quantumscan"; // Register in your agent character character.plugins = [quantumscanPlugin]; ``` 您的 agent 可以使用以下三种操作: - `SCAN_REPOSITORY` — 提交 GitHub/GitLab/Bitbucket 仓库进行 PQC 分析 - `GET_SCAN_RESULT` — 通过 ID 获取已完成的扫描结果 - `CHECK_PQC_RISK` — 对指定的算法进行即时风险检查 (ECDSA, RSA, AES-128…) 在您的 agent 环境变量中设置 `QUANTUMSCAN_API_KEY` 以获取优先访问权限和更多的每日扫描次数。 ## LangChain / LangGraph / CrewAI / AutoGen [![PyPI](https://img.shields.io/pypi/v/langchain-quantumscan)](https://pypi.org/project/langchain-quantumscan/) ``` pip install langchain-quantumscan ``` ``` from langchain_quantumscan import get_quantumscan_tools tools = get_quantumscan_tools() # scan_repository, get_scan_result, check_pqc_risk, scan_contract agent = create_react_agent(llm, tools) ``` `ScanContractTool` 会验证智能合约用于签署交易是否安全 —— 包括蜜罐、 drainer、rug-pull 和无上限铸造检测 —— 这一切都在 agent 执行操作**之前**进行,而不是之后。同样 适用于 CrewAI (`QuantumScanCrewTool`) 和 AutoGen (`AUTOGEN_TOOLS`)。无需运行任何服务器。 ## CLI: 即时钱包检查 ``` npx quantumscan-agent-doctor 0xYourAgentWallet ``` 无需注册。可一次性针对任何钱包检查开放的 ERC-20 授权 + ECDSA nonce 重用(这是一种数学上确定的密钥 泄露,而非启发式判断)。遇到真实风险时以非零退出码退出 —— 可作为部署 agent 之前的 CI 门禁。请参阅 [quantumscan-io/quantumscan-agent-doctor](https://github.com/quantumscan-io/quantumscan-agent-doctor)。
标签:LNA, MITM代理, 可视化界面, 暗色界面, 自定义脚本, 请求拦截, 逆向工具