用途与实际影响
这项功能怎样使用
为什么需要它
给明确选中的文件加密时,最怕中断后重头来、密文坏了直到恢复才发现,或把同名原件直接覆盖。这个入口只处理本次点名的路径,保存进度、核对文件,再在不伤原件的前提下恢复。
举个实际例子
我说:“只加密这个目录和这两个文件,输出到指定位置;中断后接着做,恢复时别盖掉已有文件。”系统先确认这些路径真的属于本次选择;文件读到一半改变或目标冲突就停下,已有原件保留。
最后我会得到什么
加密后得到可逐项核对的副本;恢复到指定位置时不覆盖不同内容;查看文本只在本地窗口呈现,编辑则得到一份重新验证的新加密包。程序已经安装,这次没有执行真人验证或读写你的实际文件,因此不替某次操作预报成功。
正常时
本人点名的文件和输出经核对、加密副本完整时才报告完成;恢复后确认目标文件,编辑后确认新包保存与校验成功且原包保留。
发现问题时
原文件变化、选择范围碰撞、密文损坏或恢复目标已有不同内容时,停在受影响文件并保留原件。
入口不可用或证据不足时
受保护入口、本人验证或加密所需材料不可用时暂停动作,保留已有进度,不改借密码库的密钥。
从哪里开始
在已接入 PCConfig 的 AI 对话中点名文件,说明要加密、核验、恢复,或查看、修改某个加密包里的文本。查看编辑程序已安装,由现有入口打开本地窗口;这次网页核对没有代你操作真实文件。
需要准备什么
- 明确选择的原文件或受保护文件
- 想执行的动作与输出位置
- 需要时的本人验证
从开始到拿到结果
- 1
核对选择和目标是否安全
受保护入口只展开这次点名的文件,先拒绝链接、目标与来源重叠或已存在的不同内容。
- 2
在受保护入口办理
先核对文件、输出位置和当前权限,需要时由本人验证。查看或修改时先确认完整加密包,再在本地窗口选一个 UTF-8 文本;正文只在该窗口显示,不交给 AI。其他文件可按明确要求恢复到指定目录。
- 3
核对结果
加密和恢复后核对实际文件;编辑保存为另一份新加密包并重新校验,原包保留。取消、目标冲突或校验失败就说明未保存,关掉窗口不等于保存成功。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
加密、恢复与本地文本查看编辑均有已发布源码;9月24日核对文件处理与窗口程序已安装且与源码一致,真实用户文件操作本轮未验关键规则与设计选择
只处理用户本次明确点名的路径和输出;不自动扫描 Downloads、Documents、整盘或仓库集合。
来源文件和授权包默认都保留;删除、上传、同步、备份和迁移均是独立动作。
既有最高权限策略选择已登记因子;文件域使用自己的随机 domain/bundle/file keys、session、index、receipt(执行回执) 和 recovery,不与凭据数据库、Key/Vault(加密保险库) 或 P0–P7 合并。
Source/Test、Install、Runtime(运行环境)、真实最高权限验证和自然用户 E2E(端到端验证) 是五层独立证据;本次没有用前两层冒充后三层。
比如“打开这个加密包里的说明让我看,把我改好的内容保存成另一份加密包”。先验证完整包和精确成员,再在同一受保护进程的本地窗口显示;取消不创建输出,编辑只保存到尚不存在的新目录,原包与未改成员保留。正文不进入AI、JSON、标准输出、明文临时文件或对外复制剪贴板。
本模块用到的名词
- Authorization file domain(授权文件域)
- 只处理明确选择文件的独立产品域;复用最高权限授权,但不属于凭据、Key/Vault(加密保险库) 或 P0–P7。
- Authorization file bundle(授权文件包)
- manifest(清单)、密钥封装、分块密文、加密索引和无正文回执组成的目录;来源默认不删。
- Resume state(续作状态)
- 用包密钥认证加密的逐文件进度;中断后只继续未完成项,完整完成后删除。
- AES-GCM(带完整性校验的加密)
- 每个密文块同时提供机密性和认证,块身份、序号和长度进入 AAD。
专业定义
只加密本次亲手选中的文件、目录和输出;中断后能续跑,恢复前先核验,遇到同名不同内容绝不覆盖,正文与密钥不交给模型。
解决什么
解决明确选择被扩大、中断重做、来源版本混合、密文篡改、恢复覆盖冲突和文件域与凭据/Vault(加密保险库) 混线。
当前怎样实现
- 受保护 Invoke-SecretBroker.ps1 暴露 AuthorizationFileEncrypt、AuthorizationFileVerify、AuthorizationFileDecrypt、AuthorizationFileView 和 AuthorizationFileEdit;Encrypt 只接收 SelectedPath/OutputPath,Verify 接收 InputPath,Decrypt 接收 InputPath/OutputPath。
- AuthorizationFileView接受InputPath及可选MemberPath;AuthorizationFileEdit另需不存在的新OutputPath。authorization_file_local_ui.py先验完整包与认证索引,再选择单一文本成员,严格UTF-8、可保留BOM、无NUL且最大64 MiB。目录包凭manifest(清单)识别,不靠.pcaf后缀猜格式;Vault(加密保险库)单文件不适用。
- 查看/编辑与已授权domain root在同进程内完成;本地Win32窗口禁止向外复制/剪切,允许用户粘入修改。保存只替换新副本内的选定成员,重验整包、解密回查修改哈希、原子提交新目录后再验证;失败清理本次候选,原包不替换。取消或保存结果只返回有界元数据,不返回明文或密钥。
- plan_explicit_inputs 有界展开明确路径,拒绝 symlink、junction(目录联接)/reparse point、特殊条目、输出位于来源内部和大小写折叠碰撞;默认上限 10000 文件、100 GiB。
- 随机 256-bit domain root 下每包生成 bundle key、每文件生成 file key;AES-256-GCM 保护根封装、密钥、state、index 和默认 4 MiB 内容块,AAD 绑定 operation/item/chunk/length。
- 每完成一个文件原子更新加密 resume state;全部完成后生成 index.enc、记录 index/object hashes 并删除 state。同一 selection digest 与 operation 可继续,completed 重入返回 already_complete。
- Verify 逐块解密到进程内重算长度/SHA-256而不物化明文;Decrypt 先核对象与 GCM tag,再写同目录临时文件并原子换入。相同大小/哈希目标记 already_restored,不同内容返回 restore_conflict。
- Recovery Set 只把域根 envelope 当 opaque asset 恢复;不自动上传、同步或备份密文包。复用现有运行库,不新增服务、数据库、daemon、任务或全盘扫描器。
执行流程
- 1
接收精确 SelectedPath/InputPath/OutputPath
- 2
生成有界计划、选择指纹、数量和总字节
- 3
冻结精确 action/target 并完成最高权限因子
- 4
Encrypt 创建或打开独立域根并逐块写包
- 5
中断时以认证 state 只续未完成项
- 6
Verify 无明文落地校验
- 7
Decrypt 完整通过后原子恢复且不覆盖冲突
- 8
返回无正文/密钥的状态回执
边界
- 模型不读取、解析、摘要、分类或发送文件正文;明确授权的本地查看/编辑只在受保护进程中解释所选UTF-8文本
- 不搜索未点名目录发现候选
- 拒绝symlink/junction/reparse point和读取期间变化
- 来源与包默认不删不上传不自动备份
- 不同内容绝不覆盖
- 与SecretRef/Key/Vault/P0–P7不共享根、session、index或recovery
失败与恢复
- 输入为空、不可用、越界或含重解析点
- 创建包前拒绝,不扩大选择、不跟随链接。
- 输出位于来源内部、路径碰撞或已有不匹配包
- 返回精确 conflict,保留来源与输出。
- 加密中断
- 保留 manifest(清单)、key envelope、已完成对象和加密 state;同一选择/operation 只续未完成项。
- 来源读取前后变化
- 该项返回 source_changed,不把两个版本混成完成。
- index、key envelope、object hash(内容指纹) 或 GCM tag 被改动
- Verify/Decrypt 返回精确失败项,拒绝明文落地;partial 不升级整包 pass。
- 恢复目标已有不同内容
- 返回 restore_conflict 并保留双方;只有大小和 SHA-256 均相同才记 already_restored。
真实入口
E:\PCConfig\tools\Invoke-SecretBroker.ps1AuthorizationFileEncrypt/Verify/Decrypt/View/Edit 受保护入口
E:\PCConfig\tools\authorization_file_local_ui.py同进程本地UTF-8查看编辑、64MiB边界、验证新加密副本与保留原包
E:\PCConfig\tools\authorization_file_local_ui.test.py本地查看编辑的取消、原包保留、二进制拒绝与Win32控件测试定义
E:\PCConfig\tools\authorization_file_entry.test.py最高权限入口及有界回执的合成测试定义
E:\PCConfig\tools\authorization_file_broker.py显式计划、AES-GCM 分块、resume/index/receipt、verify 与无覆盖恢复
E:\PCConfig\tools\authorization_file_broker.test.py独立域根、往返、中断续作、幂等恢复、篡改和来源变化合成测试
E:\PCConfig\docs\contracts\pcconfig.password-center-m2.md最高权限因子复用与授权文件/SecretRef/Key/Vault 域隔离
如何验证
- Source:authorization_file_broker.py 实现显式选择、4 MiB AES-256-GCM、独立 keys、加密 state/index、metadata-only receipt(执行回执)、verify 与无覆盖 decrypt。
- Test:2026-08-31 合成 temp 数据 6/6 PASS,覆盖空文件/同名叶子、中断续作、幂等恢复、篡改拒绝、来源变化和 output-inside-source。
- Install:2026-09-09 21:54 UTC Install-PasswordCenterIndependent Inspect为current(当前状态)、15/15 source=installed、manifest_anchor_matches=true;本文件source/installed SHA-256均为5eb7b3e59099ccde45804824d3edef03ced8abfab3ff8a3cbc1252db65123854。
- Install:2026-09-24 04:59 UTC的正式安装Inspect确认authorization_file_broker.py与authorization_file_local_ui.py均current(当前状态)=true、源与安装字节一致;整套安装750项中的两份Registry(登记清单)差异另列,不把局部安装一致写成全量current(当前状态)。
- Runtime(运行环境)/E2E(端到端验证):本次未消费最高权限因子、未打开独立域根或处理真实选择;Encrypt/Verify/Decrypt及View/Edit的自然用户端到端仍未在本轮实跑。38861a0已发布本地查看编辑源码,entry与UI测试定义覆盖取消、UTF-8/二进制边界、旧包保留、新副本回查和隐藏Win32控件;旧2026-09-09安装15/15保留为历史,新增UI安装由9月24日逐文件Inspect单独证明。
与其他模块的关系
secrets-providers 只提供既有最高权限因子选择,不能读取文件正文或合并根;本模块独立拥有随机 keys、数据、session、index、receipt(执行回执) 和 recovery。CoreRecovery 只引用其恢复入口,Recovery Set 只恢复域根 envelope。
