新闻详情

新闻详情

首页 / 资讯中心 / 详情

# 第 27-3 篇:推理引擎的端到端取证——VLLM_ATTEST=1 → 收证 → verify_attest.py 离线验签

发布时间:2026/10/2 11:40:42来源:尧图网络
# 第 27-3 篇:推理引擎的端到端取证——VLLM_ATTEST=1 → 收证 → verify_attest.py 离线验签
上一篇27-2《出证帧规范body_sha 与输出文本的字节绑定》 下一篇28-1《基准设计同机串行、口径先行》真机实测通过本文实验已在 RK3588 板端实测完成2026-09方法学与原始记录见仓库 docs 与《实验脚本》目录一句话导读端到端取证板端推理引擎 VLLM_ATTEST1 启动后发一次真实请求收下 attest 凭证用零依赖 verify_attest.py 离线复算验签——输出改一字即 FAIL把“凭证可独立验证”从口号变成可复现日志的落点。关键词手搓推理引擎、大模型推理、端到端取证、attestation、离线验签、body_sha、可验证推理27-1/27-2 讲了框架与字节契约。这篇跑全流程板端VLLM_ATTEST1启动 → 发一次真实请求 → 从响应里收下attest凭证 → 用零依赖的verify_attest.py离线验签 →PASS再把输出文本改一个字重验 →FAIL。同时记录设备自检门与出证日志把凭证可独立验证从口号变成一段可复现的日志。1. 知识点端到端链路四件实物与一步离线完整取证需要保存四件东西它们都不需要引擎在场实物来源作用req.json客户端当时 POST 的原始请求体逐字节复算 body_shaout.txt当时收到的 assistant 输出逐字节喂最后一帧字段proof.json响应 JSON 里的attest对象原样提供 digest/签名/字段vllm_attest.pub设备VLLM_ATTEST_DIR下的公钥128 hexSM2 验签离线验证 verify_attest.py纯 Python、零第三方依赖SM3 与 SM2 都在脚本内自实现与引擎vllm_crypto.c同参数同向量复算摘要 → 比对凭证 digest → SM2 验签。验证方主机不需要模型、不需要 tokenizer、不需要任何引擎二进制。2. 对应代码启用与自检的入口/* vllm_attest.c vatt_init498–530 附近 */constchar*dirgetenv(VLLM_ATTEST_DIR);/* 默认 . */...加载 vllm_attest.priv/.pub缺失自动生成0600...ctx-attest_on1;if(getenv(VLLM_ATTEST_SELFTEST))/* 自动化自检门 */fprintf(stderr,[ATTEST] selftest : %s\n,vatt_selftest()?PASS:FAIL);每次出证打一行[ATTEST] seal digest... verifyPASS416 行vatt_verify_own本地回读作为逐请求健康检查。密钥只落在VLLM_ATTEST_DIR默认 “.”私钥 0600——进程外用户不可读否则他人可代设备签名任意输出。3. 改动后果板端全流程实测实测口径RK3588 / aarch64 / 2026-09-07。serve 8807VLLM_ATTEST1 VLLM_ATTEST_DIR/mnt/emmc/day27_atest VLLM_ATTEST_SELFTEST1模型为明文加载默认路径。① 启动自检门全绿serve 日志[ATTEST] keypair : PASS (pub753ba3b0f04745bf93aa57...) [ATTEST] sign/verify : PASS [ATTEST] digest-determ : PASS [ATTEST] tamper-detect : PASS [ATTEST] selftest : PASS [SERVE] model ready: /mnt/emmc/day25_fixed (wmode0, vision1)② 一次请求 → 响应携带凭证非流式 /v1/chat/completions注本篇记录录制于schema2时期VLLM-AT-2params不含k/th。现行版本为schema3VLLM-AT-3params增加ktop_k 与thenable_thinking帧布局未变verify_attest.py按凭证里的schema自动选 magic旧凭证照旧 PASS。下面的原始输出保留不改作为当时的实测存档。[resp] idchatcmpl-00000000 finishstop [attest] schema2 ts1788725918 body_sha09db1f21891fe182... [attest] model_fpc240fe13b60c4ea7d388afe5...③ 离线验签 PASSverify_attest.py --proof --request --output --pub[VERIFY] body_sha 复算 : PASS (proof09db1f21891fe182 req09db1f21891fe182) [VERIFY] schema : PASS schema2 [VERIFY] digest 复算 : PASS (want5b332500341871df got5b332500341871df) [VERIFY] SM2 验签 : PASS (pub753ba3b0f04745bf...) RESULT: PASS # 退出码 0④ 输出改一个字 → 离线验签 FAIL把 out.txt 末尾一字替换后重验[VERIFY] schema : PASS schema2 [VERIFY] digest 复算 : FAIL (want5b332500341871df gota2c3716aefafde37) [VERIFY] SM2 验签 : FAIL (pub753ba3b0f04745bf...) RESULT: FAIL # 退出码 1推演改动后果改输出 → digest 复算先 FAIL5b332500…→a2c3716a…SM2 验签随之 FAIL——因为凭证里的签名是对原 digest做的文本一变重算 digest 对不上签名对象。整个链条里没有任何一个环节信任谁声称的档案请求、输出、凭证、公钥四件实物缺一不可、改一即毁。诚实边界vllm_attest.h 24–31 注释同样要读设备私钥在机器上若设备整体被攻破拿到 .priv可代签任意输出——出证防的是归档侧/传输侧篡改与抵赖不是设备被完全攻破此时需配合安全启动与密钥硬件化HMAC/SE才够。4. 学员调试任务A 档板端动手复刻全流程VLLM_ATTEST1 VLLM_ATTEST_DIRdir VLLM_ATTEST_SELFTEST1启动 → 发一次请求 → 保存 req/out/proof/pub →verify_attest.py验签复现RESULT: PASS篡改对照改 out.txt 任意一字重验 →RESULT: FAIL再把 req.json 换成另一请求体 → body_sha 复算 FAIL把.priv权限改成 0644 观察启动告警若有讲清 0600 的意义。B 档纯读源码读vllm_attest.c498–530init/自检门与vatt_verify_own回答① 自检门四项keypair/sign-verify/digest-determ/tamper-detect分别验证什么②seal digest... verifyPASS这行本地回读为什么不是自证陷阱提示verify_own 用同一公钥自验仅作进程内健康检查外部可信性由验证方独立复算保证③ 若设备时钟被改导致ts异常验签会怎样FAIL——那防重放靠什么ts 入摘要验证方比对自身时间窗口预期输出RESULT: PASSRESULT: FAIL两段完整日志能完整讲述设备签名 → 外部独立复算验签 → 改一字即毁的取证闭环。收尾本篇源码点名vllm_attest.cinit/自检门 498–530、seal 416、verify_attest.py零依赖验签开源仓库Kestrel-LLM (Gitee)AGPL-3.0-or-later 或商业许可二选一下篇预告可信也可跑了接下来证明它快——但快不能自说自话。Day 28 进性能方法论先定口径同机串行、只报自己再学插桩prefill/decode 分段最后复现报告里的三张核心表。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

D3.js本质:数据驱动DOM的精密耦合系统 2026/10/2 15:27:39

D3.js本质:数据驱动DOM的精密耦合系统

1. 这不是“画图工具”,而是数据与DOM的精密耦合系统 D3.js这个词最近在前端圈里反复刷屏,从企业级数据可视化大屏到免费SVG素材网的底层渲染逻辑,再到HBuilder里配置HTML/CSS/JavaScript时绕不开的图表依赖——它早已不是小众库&#xff0c…

阅读更多 →
AI指挥实战:从提示词工程到多智能体协作 2026/10/2 15:27:39

AI指挥实战:从提示词工程到多智能体协作

1. AI不听话,多半是因为你指挥的方式不对先说个现象:同一个AI工具,有人拿它一天产出三篇稿子、两套PPT大纲,顺手还改了个BUG;有人用了半天,觉得它“就是个高级一点的搜索引擎”,甚至被它的胡说八…

阅读更多 →
Jenkins插件安装与配置实战:在线离线、依赖与排错 2026/10/2 15:27:39

Jenkins插件安装与配置实战:在线离线、依赖与排错

Jenkins 装完之后你会发现,真正决定它能干什么的,从来不是主程序本身,而是你往里塞了哪些插件。默认安装包只给你一个能跑通“自由风格任务”的骨架,想接 GitLab、想跑流水线、想把构建结果推到远程服务器、想在群里收到构建结果&…

阅读更多 →
大模型分布式训练五种并行技术实战指南 2026/10/2 15:27:39

大模型分布式训练五种并行技术实战指南

1. 这不是概念背诵,是算法工程师真正在跑大模型时每天要调的“方向盘” 你刚接手一个70B参数的LLM训练任务,集群里32张A100显卡已经就位,但 torch.distributed.launch 一跑起来,GPU显存就爆了,loss曲线像心电图一样乱…

阅读更多 →
2026 年免费 AI 图片检测工具推荐:8 款工具对比,帮你判断图片是否由 AI 生成 2026/10/2 15:27:38

2026 年免费 AI 图片检测工具推荐:8 款工具对比,帮你判断图片是否由 AI 生成

看到一张照片时,你有没有过这样的犹豫:画面很自然,人物也没有明显破绽,但总觉得哪里不太对。 放大看手指,检查眼睛,再盯着背景研究半天,最后还是拿不准。 这也是很多人搜索"best free ai i…

阅读更多 →
C++模板元编程实战:编译期训练线性回归模型 2026/10/2 15:27:32

C++模板元编程实战:编译期训练线性回归模型

把“模板编译期机器学习”这六个字放在一起,很多人第一反应是:这怕不是两个词拼错了?模板元编程是用来搞泛型编程的,机器学习是要跑在GPU和数据流上的,怎么能在编译期完成?C模板元编程确实有一个非常硬核的…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉