JackKXCO/kxco-post-quantum-verifiers

GitHub: KnightsbridgeAIQ/kxco-pq-verifiers

提供 Go、Python、Rust、JavaScript 四种语言实现,用于验证 KXCO 混合 HMAC + ML-DSA-65 后量子 webhook 签名格式的跨语言一致验证库。

Stars: 0 | Forks: 0

# kxco-post-quantum-verifiers **四种语言。一种 wire format。签名互通。** KXCO 混合 HMAC + ML-DSA-65 webhook 签名方案的接收端验证器实现。每个实现都针对相同的 envelope 格式验证同一个 `vectors/vectors.json`。银行使用 Go 和 Java。金融科技运维使用 Python。系统集成商使用 Rust。仅支持 JavaScript 的验证器将机构买家拒之门外。本 repo 旨在填补这一空白。 [![跨语言 CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/82/82c99d5b36c49dcd030700cd337e9f8fcc32ec9dad4ad21162f94ba9f2333c13.svg)](https://github.com/JackKXCO/kxco-post-quantum-verifiers/actions/workflows/cross-lang.yml) [![npm](https://img.shields.io/npm/v/kxco-post-quantum?label=npm)](https://www.npmjs.com/package/kxco-post-quantum) [![PyPI](https://img.shields.io/pypi/v/kxco-verify?label=pypi)](https://pypi.org/project/kxco-verify/) [![crates.io](https://img.shields.io/crates/v/kxco-verify?label=crates.io)](https://crates.io/crates/kxco-verify) [![Go module](https://img.shields.io/badge/go.mod-v1.0.0-007d9c?logo=go)](https://pkg.go.dev/github.com/JackKXCO/kxco-post-quantum-verifiers/go) [![在线演示](https://img.shields.io/website?url=https%3A%2F%2Fchain.kxco.ai%2Fwallet%2Fverify&up_message=live&up_color=brightgreen&down_message=down&down_color=red&label=production)](https://chain.kxco.ai/wallet/verify) ## 在您的语言中安装 ``` # JavaScript / TypeScript npm install kxco-post-quantum # Python pip install kxco-verify # Rust cargo add kxco-verify # Go go get github.com/JackKXCO/kxco-post-quantum-verifiers/go@latest ``` ## 验证真实的 KXCO 生产环境 webhook KXCO 平台在 https://chain.kxco.ai/wallet/api/.well-known/kxco-pq-pubkey 发布其 ML-DSA-65 身份密钥。固定 `kid` 和 `publicKey`,然后使用您选择的语言离线验证任何入站交付。 当前生产环境的 kid 是 **`aa29f37ab7f4b2cf`**。在首次集成时从 well-known endpoint 获取匹配的 `publicKey`。 ### JavaScript ``` import { webhook } from 'kxco-post-quantum' const PINNED_KID = 'aa29f37ab7f4b2cf' const PINNED_PUBKEY = Buffer.from(process.env.KXCO_PUBLIC_KEY_HEX, 'hex') const r = webhook.verifyDelivery({ headers, rawBody: req.rawBody, pqPublicKey: PINNED_PUBKEY, pinnedKid: PINNED_KID, }) if (!r.pqOk || !r.timestampOk || !r.kidOk) return res.status(401).end() ``` ### Python ``` import kxco_verify as kx import os PINNED_KID = "aa29f37ab7f4b2cf" PINNED_PUBKEY = bytes.fromhex(os.environ["KXCO_PUBLIC_KEY_HEX"]) r = kx.verify_delivery( headers=lower_case_headers, raw_body=raw_body, pq_public_key=PINNED_PUBKEY, pinned_kid=PINNED_KID, ) if not r.ok: return 401 ``` ### Rust ``` use kxco_verify::{verify_delivery, VerifyDeliveryArgs}; let result = verify_delivery(VerifyDeliveryArgs { headers: &headers_map, raw_body: &body, pq_public_key: Some(&pinned_pubkey), pinned_kid: Some("aa29f37ab7f4b2cf"), window_seconds: 0, now_unix: chrono::Utc::now().timestamp(), ..Default::default() }); if !result.ok() { return StatusCode::UNAUTHORIZED; } ``` ### Go ``` import kxcoverify "github.com/JackKXCO/kxco-post-quantum-verifiers/go" var PinnedKid = "aa29f37ab7f4b2cf" result, err := kxcoverify.VerifyDelivery(kxcoverify.VerifyDeliveryArgs{ Headers: headers, RawBody: body, PQPublicKey: pinnedPubkey, PinnedKid: PinnedKid, }) if err != nil || !result.Ok() { return http.StatusUnauthorized } ``` ## Wire format 所有四种实现都采用同一种 envelope: ``` Envelope: timestamp + "." + raw_body X-KXCO-Signature: sha256= X-KXCO-PQ-Signature: ml-dsa-65= X-KXCO-PQ-Kid: 16-hex SHA-256 prefix of the platform public key X-KXCO-Timestamp: Unix seconds ``` 单独使用其中任何一种签名即可完成验证;同时验证两者属于纵深防御。HMAC 层保障生态兼容性;ML-DSA 层提供抗抵赖性和抗后量子伪造能力。 默认重放窗口:5 分钟。可配置。 ## 共享测试向量 [`vectors/vectors.json`](./vectors/vectors.json) — 包含以下各项的 29 项确定性检查: - `deriveSeed` (HKDF-SHA-512) - `mlDsa.keypairFromMaster` (FIPS 204) - `mlDsa.sign` 往返测试 - `mlKem.keypairFromMaster` (FIPS 203) - `mlKem.encapsulate` 往返测试 - `fingerprint` (16 位十六进制 kid) - `webhook.envelope` / `webhook.hmacHex` / 混合往返测试 每种语言的测试套件都会根据此文件断言输出相同的字节。跨语言兼容性由每次提交时的 CI 强制执行。 ## 为什么选择这些底层库 | 语言 | PQC 库 | 原因 | |-------------|-------------|-----| | JavaScript | `@noble/post-quantum` | 经 Cure53 (2024) 审计。纯 JS,无原生依赖。 | | Python | `liboqs-python` 或 `pqcrypto` | Open Quantum Safe / NIST 最终候选方案的实现,惰性后端检测。 | | Rust | `fips204` | 纯 Rust 的 FIPS 204 实现。无 CGo 或 liboqs 构建步骤。 | | Go | `cloudflare/circl/sign/mldsa/mldsa65` | Cloudflare 经过审计的加密工具包。纯 Go。 | ## License MIT。请查看各个语言目录,了解其依赖项可能要求的任何额外声明。 ## 另请参阅 - 主库:npm 上的 [`kxco-post-quantum`](https://www.npmjs.com/package/kxco-post-quantum) - 在线验证器演示:https://chain.kxco.ai/wallet/verify - 生产环境平台公钥:https://chain.kxco.ai/wallet/api/.well-known/kxco-pq-pubkey - 安全架构:https://chain.kxco.ai/wallet/security - 后量子概述:https://chain.kxco.ai/wallet/post-quantum - 量子指数(行业基准):https://chain.kxco.ai/wallet/quantum-index
标签:CVE, Go, Python, Ruby工具, Rust, Webhook验签, 可视化界面, 后量子密码学, 数字签名, 数据可视化, 无后门, 日志审计, 混合加密, 网络流量审计, 蓝队防御, 跨语言实现, 逆向工具