ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

基于TC609建设可信数据空间:AI数据协作的工程实践与踩坑

基于TC609建设可信数据空间:AI数据协作的工程实践与踩坑

1. TC609管的是"数据流通的信任",不是通信协议

可信数据空间这四个字,这两年在行业内出现的频率越来越高,但真正动手把它做成工程项目的团队并不算多。最近半年,我们团队跟一个跨行业的产业数据联合体合作,围绕TC609这份技术规范建设了一套可信数据空间,并成功接入了两个AI训练场景。整个过程让我对"可信数据空间"的本质有了非常具体的理解:它不是一套新数据库,不是中间件,也不是给旧平台加几个安全组件,它是一套把"信任"变成工程可执行行为的架构体系。

TC609这份规范,名字听起来像某种接口标准,但把整本啃完你会发现,它对消息队列用哪个版本、数据文件用什么格式、接口是REST还是gRPC,几乎没有强制要求。它从头到尾只回答一个问题:当数据从一个组织流通到另一个组织时,接收方凭什么相信数据是真实完整的?提供方凭什么相信数据不会被越权使用?双方起争议时,用什么证据来还原整个数据流转过程?

传统数据平台设计里,这两个"凭什么"基本靠合同和人工管理来兜底。数据通过FTP或API交付出去之后,提供方就失去了对数据的控制,使用方拷到本地、分发给第三方、用到合同之外的场景,提供方往往最后一个知道。可信数据空间改变的就是这个局面:不能只靠事后追责,而要在技术架构上让数据使用行为受到约束、可被持续审计。

所以每次给团队做内部培训,我都会把TC609压缩成三条约束:

第一,数据提供方对数据使用策略保有最终解释权。一份数据允许被谁用、允许用来做什么、能用多久、能不能跟其他数据融合,这些规则不是写在Word合同里,而是要以机器可读的结构化策略附着在数据流通环节上。

第二,数据使用方的每一次使用行为都要留下可验证的证据。不只是简单记一条日志,而是要让日志具备防篡改、可校验的能力。任何一次超出策略范围的数据操作,都必须能被精准追溯出来。

第三,所有参与方必须拥有可信身份,并且这个身份要跟着数据走。数据从A组织流到B组织再流到C组织,每个环节的身份标识都要能对上,否则前两条约束根本找不到责任主体。

1.1 可信数据空间和传统数据平台的分界在哪

很多人第一次接触可信数据空间时,都会下意识地问:这不就是数据中台加了一套权限管理吗?关键差异在于对数据移动的控制方式。

传统数据平台做数据交换,核心动作是"数据复制"——从源库抽出来,放进目标库,然后靠目标库的权限去管后续访问。数据一旦复制完成,源头的控制力就基本中断了。哪怕目标是自己的数仓,复制以后数据的存储、加工、再分发,完全取决于目标环境的安全水位。

可信数据空间则强调数据在受控通道内流动。提供方不需要把原始数据集整个复制给使用方,甚至在大多数场景下,使用方拿到的是计算结果、模型参数、统计特征,而不是原始数据本身。所有流通动作必须经过一个具备策略执行能力的连接器节点,这个节点紧贴在数据源一侧部署,对每一次读取、聚合、写入动作做实时校验。

这个差异把平台的内在逻辑从"把数据汇聚到一个地方再分发"彻底变成了"让计算逻辑到数据所在的位置去执行"。后文所有关于AI场景落地的讨论,几乎都是围绕这个分界展开的。

1.2 标准里最核心的三条约束如何落地

第一条约束落地时,需要定义一套"数据使用策略"的描述结构。TC609没有强制指定某种语言,但要求策略必须包含数据资源标识、被授权的使用方标识、允许的用途类型、有效期、是否允许二次分发。我们参考通用策略表达语法,最终用JSON做了一套内部契约,每条数据资源在上架前都必须绑定策略,没有策略的数据不允许进入流通环节。

第二条约束落地时,需要为每个访问请求建立一条可追溯记录。记录里不仅要有"谁在什么时间访问了什么",还要包含当时的策略版本号、数据指纹、实际执行的查询或计算函数。这里有个容易被忽略的细节:如果只记"调用了某个接口",后面很难判断这次调用是否绕过了用途限制。所以连接器在记录时会把策略评估结果和实际执行计划捆绑写入审计链,两份信息一对照,才算完整证据。

第三条约束落地时,最费工夫的是身份互认。每个参与组织都有自己的一套账号体系,有的用企业微信,有的用自建LDAP,有的还在用静态密钥。TC609要求做的不是把这些账号统一成一张表,而是建立一个跨域的信任锚:组织内部可以保留原有账号体系,但必须先由空间认证中心为组织签发可校验的身份凭证,数据流通报文里带上这个凭证,接收方先校验凭证,再映射到本地权限模型。


2. 从TC609映射出的四层架构:每一层都在回答一个信任问题

把标准读明白之后,要真正指导开发,还得把它翻译成一张架构图。我们最终形成的架构没有追求技术上的新潮,而是严格遵循"每一层只解决一个信任问题"的原则,拆成了四层。这四层分别回答"你是谁"、"数据能不能用"、"用的时候守不守规矩"、"用了之后能产生什么价值"。

2.1 身份层:先给每个参与者发一本"数据护照"

身份层解决"我是谁"的问题。这里说的参与者不只是企业用户,还包括数据源设备、某个算法服务、甚至AI训练任务本身。在可信数据空间里,凡是能发起数据访问请求的主体,都应该有一个可校验的实体身份。

我们搭建时部署了一套身份服务,为每个参与组织、每台接入的数据服务器、每个关键应用签发数字证书。私钥存放在各参与方本地的密钥管理设备里,不在中心节点集中保存。所有数据流通的握手阶段强制做双向认证:使用方要验证提供方的身份,提供方也要验证使用方是否有合法的空间成员资格。

刚开始有的合作方嫌麻烦,觉得每次握手都验证书影响效率。实际压测下来,双向认证增加的整体延迟在几十毫秒量级,对绝大多数数据分析和模型训练任务来说可以接受,但换来一个非常关键的收益:任何一次数据访问请求都能定位到具体的组织实体和应用实体,后面审计链条构建才有了基础。

2.2 目录与合同层:让使用规则变成机器可读的条款

目录层解决"数据有什么、能不能用"的问题。但它跟数据湖里的元数据管理不是一回事。数据湖的元数据主要服务于找数和取数,描述重点是表结构、分区、更新时间;可信数据空间的目录核心是"数据资源描述+使用策略描述",两者缺一不可。

我们搭目录时参考了标准对数据资源的分类要求,每个数据源上架前至少要补齐五类信息:数据提供方标识、数据更新频率、质量等级、覆盖的时间和空间范围、允许的用途列表。用途列表不是随便写的,必须和合同层的策略绑定。

所谓"机器可读条款",就是把过去写在纸质合同里的使用边界转成程序能直接执行的策略对象。内部使用策略的简化结构大致长这样:

{ "resource_id": "ds_manufacturing_a_quality_keysight", "provider_id": "org_factory_a", "authorized_consumers": ["org_ai_lab_b"], "allowed_uses": ["model_training", "quality_prediction_inference"], "prohibited_uses": ["third_party_sharing", "commercial_resale"], "effective_period": { "start": "2025-01-01T00:00:00Z", "end": "2025-06-30T23:59:59Z" } }

不要把allowed_uses设计成只有"读"和"写"这两种数据库级别操作。AI场景里,真正的合规风险往往不是有人执行了DELETE语句,而是把训练数据用到了没有授权的业务,比如拿质量数据去做供应商压价分析。用途字段定义得越贴近真实业务,策略执行才有意义。

2.3 控制层:数据流通时真正做到"用而不存、算而不留"

控制层是可信数据空间的执行中枢,也是最难落地的一层。它解决"数据被使用过程中是否真的遵守前置约定"的问题。

TC609给的思路是引入数据连接器:一切数据流通必须经过连接器,连接器内置策略评估引擎,每个访问请求先判断"当前策略是否允许这个用途",再决定放行、拒绝还是降级处理。可以理解为食堂打饭制度——你不会把整个厨房交给就餐者保管,而是通过打饭窗口提供食物,由窗口决定每顿能打多少、哪些菜能打。

具体部署时,我们把连接器拆成两个组件。一个部署在数据提供方内网的执行点,直接面对数据源,负责拦截读取请求;另一个部署在管理平面的策略点,负责策略存储和分发。执行点不把策略全量存在本地,而是缓存最近使用的策略快照,每次使用前到策略点确认版本,兼顾性能又避免策略被绕过。

连接器的执行记录会同步写进审计链。审计链没有用普通数据库表,而是采用哈希链式结构,每条记录通过哈希指向前一条记录。这么做不是为了听起来高端,而是防止参与方私下修改日志后不认账,这在跨组织争议处理中非常关键。

2.4 价值层:AI训练数据在不落盘的情况下变成模型能力

价值层是参与方最关心的部分,因为前面几层建设得再好,如果数据不能产生业务价值,项目迟早会被业务部门抛弃。这一层主要把可信数据空间的能力开放给AI任务。

传统AI数据合作最典型的问题,是A公司把脱敏后的数据拷贝给B公司,B公司拿去训练模型。数据量小、合作方少时还能转得动,一旦涉及多方数据、敏感维度又多,就很难通过合规审查。价值层的做法是让训练任务下发到数据所在的连接器节点,原始数据留在提供方本地,训练框架从流通通道获取的是联合特征、梯度或模型参数,而不是整个数据集。

这听起来很像联邦学习,但不完全一样。联邦学习只是价值层中的一个可选组件,价值层还承载联合统计、特征工程、模型推理等非训练类任务。把这些统一抽象成"数据计算任务"后,策略层可以对任务类型做精准限制——允许"模型训练"但禁止"导出原始数据",在策略引擎层面直接分开操作。


3. 落地AI场景时,数据沙箱和联邦学习是最依赖的两个机制

理论讲得再清楚,AI场景跑不跑得起来才是验收标准。落地过程中我们发现,所有AI场景基本绕不开两个机制:数据沙箱和联邦学习。这两个词已经被各种技术文章讲烂了,但结合可信数据空间的要求去做,里面很多细节和常见教程不太一样。

3.1 安全沙箱不是"一台虚拟机",而是要记录完整数据流迹

很多人一听到数据沙箱,第一反应是给合作方开一个隔离环境,放进脱敏数据,让对方随便跑脚本。这种思路在可信数据空间语境下远远不够。标准关心的不只是"数据有没有出环境",还包括"使用者在这个环境里对数据做了什么操作、操作是否在允许的用途范围内"。

我们落地的沙箱在技术层面确实借用了容器和虚拟机隔离,但更关键的是三层增强设计。

第一层是环境隔离。所有进入沙箱的数据都在内存和加密文件中暂存,容器销毁时做安全擦除。我们不使用宿主机上普通磁盘路径保存数据,防止参与方通过容器逃逸后带走数据。

第二层是操作日志化。默认所有网络出口全部关闭,外部模型代码要访问数据,只能通过预置的数据访问网关。网关会把用户执行的读取语句、返回行数、聚合函数、时间戳全部记录成数据流迹。这里有个非常实用的经验:不要只记录命令,还要记录命令对应的数据指纹。否则同样一条SELECT语句在不同时间执行,背后数据集可能已经变了,审计时说不清楚。

第三层是结果校验。模型训练结束后,允许从沙箱导出的只有模型权重文件、评估指标和日志,任何包含原始样本特征的中间文件都会被校验模块拦截。拦截规则不是简单看后缀名,而是扫描特征列的分布相似度。比如某个中间文件里字段分布和原始训练集几乎一致,就判定为疑似原始数据,禁止导出。

3.2 联邦训练中"可信聚合"的工程实现要点

联邦学习的常规思路是多方在本地训练,只上传梯度或参数,中心服务器聚合后下发新一轮参数。思路本身不复杂,但在可信数据空间里有三个工程要点常被忽视。

第一个要点是参与方训练环境要先通过可信验证。中心服务器接收梯度前,必须确认各个参与方运行的是被认可的代码版本,训练进程没有被篡改。具体做法是给每个训练节点下发带签名的工作负载镜像,训练前后做度量值校验。防的就是参与方本地代码被偷偷改动,导致梯度信号完全不可信。

第二个要点是梯度也要做策略检查。很多人以为联邦学习不传原始数据,就天然合规。实际上梯度在特定条件下可以反推出训练数据的信息,攻击方向研究早就证实了这一点。所以策略引擎对梯度上传动作本身也设了限制:只允许在特定项目、特定时间窗、特定数据用途下上传,上传前还要做差分隐私处理,加噪幅度和训练精度的平衡需要单独调参。

第三个要点是聚合流程的可回溯性。每轮聚合完成后,系统会生成一条聚合记录,包含所有参与方的身份凭证、模型版本号、数据指纹、参数散列值。这条记录在审计链上完整保留,以后哪怕有参与方声称"我的数据被用于未授权场景",也能通过记录还原整个训练链路。

3.3 三种AI部署模式的选型对比

我们在两个实际场景里比较了三种AI数据协作方式,给还在选型的团队提供一个参考。

部署模式原始数据是否移动训练任务位置空间改造难度适用场景
安全沙箱移动至隔离环境沙箱内运行中多源数据汇聚后分析,特征关联需求强
联邦学习不移动各数据源本地高敏感数据无法出域、模型结构相对固定
共享算力计算任务下发提供方算力节点高算力和数据都分散,需要同时保护两端

实际选型时有一个经验:不要因为联邦学习听起来更安全就无脑选。如果各参与方数据字段差异很大、模型结构需要频繁调整,联邦调参成本会明显高于沙箱。我们第一个场景最终选了沙箱,因为数据汇聚后做特征拼接更方便;第二个场景因为参与方对数据出域有硬性要求,才改用联邦学习。能不能用、好不好用,始终要回到业务约束和合规约束上判断。


4. 从标准到实战:一次跨组织AI数据协作落地复盘

前面讲的是通用机制,下面分享一个最近完整落地的项目过程。为了保护参与方信息,统一用代称:A公司是一家制造企业,积累了产线质量数据和设备运行数据;B机构是一家算法团队,想用这些数据训练一个设备故障预测模型;C服务商为双方提供身份认证和数据目录公共服务。整个空间由A公司、B机构、C服务商和一家联盟运营单位四方组成。

4.1 为什么我们绕开了集中式数据湖

项目一开始,A公司信息化负责人给了一个直给的方案:把需要用的数据脱敏之后统一汇总到联盟运营单位的数据湖,再由B机构申请访问。这个方案技术上没什么新奇,但在可信数据空间设计原则下,我们建议放弃。

原因不是集中式数据湖一定不安全,而是它把所有信任问题都堆到一个中心节点上了。数据一旦汇总到中心,A公司对数据的使用控制就彻底失去了,只能依赖运营单位的管理水平和保密承诺。万一中心节点被攻破,或者运营单位内部有人违规导出,A公司连实时察觉的能力都没有。分散式连接器架构则不同,A公司数据始终留在自己的数据源内,暴露面大大缩小,每次访问都经过A公司侧执行点,合规风险从"运营单位兜底"变成了"每个提供方自管"。

这个决策过程也很有意思,业务方最初担心的其实不是安全,而是"数据放在你们那边,我还能不能用"。所以我们花了一周时间做仿真验证,把几条真实数据查询任务从集中式环境迁移到连接器模式,确认性能和原有方式基本持平后,方案才最终定下来。架构调整不能只在白板上讲道理,跑一遍真实数据任务,大家心里才有底。

4.2 被业务方反复追问的三个问题

第一个问题是"数据出了我这边,万一泄露了,责任怎么算"。这个问题我们在多个场合被反复问到。业务方的顾虑是:数据安全事件一旦发生,提供方哪怕没有主观过错也可能被牵连。空间给出的答复不是空洞的"请放心",而是一整套可以被第三方审计组查验的证据链。每一次数据访问,从身份校验、策略评估到执行记录、结果审核,全部进了哈希链式日志,审计方拿到日志后可以快速复盘。我们把这条链路完整演示给A公司法务团队后,他们的顾虑明显下降。

第二个问题是"联合训练出来的模型,知识产权归谁"。这属于技术架构解决不了的问题,最终还是要通过参与方之间的协议约定。但空间提供了基础支撑:训练过程中各参与方投入的数据量、参与轮次、数据指纹都被记录在案,为协商分成提供了客观依据。技术记录解决"事实是什么",协议解决"利益怎么分",两者缺一不可。

第三个问题是"我们现有的数仓和Hadoop平台是不是都要作废"。这其实是个误解。可信数据空间不要求替换参与方原有数据平台,而是在原有平台之上增加一个可信流通层。我们实际做的,只是在A公司数仓外围部署连接器,在B机构训练服务器上部署访问客户端,原有数据加工、存储链路完全不动。这也是这套架构能够快速落地的重要原因。

4.3 审计日志:最容易被低估的角色

整个项目实施过程中,被低估得最厉害的是审计日志模块。业务方和开发方前期都把注意力放在身份认证、策略引擎这些听起来更有技术含量的组件上,审计日志一度排到最后。直到第一次外部合规审查模拟时,它才显出分量。

审查方提出了一系列非常具体的问题:三个月前,某个算法工程师的账号访问过哪些数据表?访问时执行的查询是什么?当时这些数据的使用策略是否允许该用途?查询结果有没有被导出?这些问题如果没有结构化的审计链,靠常规操作日志很难回答。幸好连接器从第一天起就把策略评估结果和执行计划捆绑记录,最终花了不到半天就把整个链路翻了出来。

从那以后,我把审计日志的重要性提到和策略引擎同等的位置。实际操作中,项目上线前就应该想清楚:哪些访问事件必须记、保留多长时间、用什么格式存储、由谁保管,而不是上线后再补。标准对审计事件覆盖范围有明确要求,但工程上还有很多空白要自己补,比如日志自身的权限管理,不要只防外部攻击者,内部运维权限过大同样可能变成盲区。


5. 围绕TC609实施时,我验证过的经验与踩坑清单

如果你们团队正准备开始建设可信数据空间,下面这几点应该能帮你们省下不少返工成本。

5.1 元数据不统一时,先别急着建数据目录

我们踩的第一个坑,是以为只要把各家数据的表结构导入目录,目录就能自动工作了。结果各家对同一个业务概念的定义差别非常大。比如"设备状态"字段,A公司用数字编码表示,B机构用枚举字符串,C服务商两种混着用;"产品批次"有的企业记到年月日,有的只记到月份。如果不先做统一数据语义映射,机器根本无法正确执行策略。策略里写"允许基于设备状态做训练",到底哪些字段算设备状态,机器根本判断不了。

所以现在的做法是:建目录之前,先用大约两周时间做数据语义梳理,输出一份"字段到业务概念的映射表",并让各参与方在映射表上签字确认。这步看上去很土,却是后面所有自动化策略的基础。

5.2 权限模型不能和服务器RBAC画等号

第二个坑是容易把可信数据空间的权限模型当成传统RBAC来做,给每个用户分几个角色就完事。RBAC处理的是"用户能不能操作某个资源",但可信数据空间还要处理"资源被操作后的用途是否合规"。一个用户可能同时是数据分析师和模型训练员,他在算法平台上访问同一批数据,一次为生成统计报表,一次为训练模型,用途不同,合规判断就应该不同。

所以策略引擎里我们把"用户角色"和"任务用途"拆成了两个独立判断维度。请求到达连接器后,先检查主体身份和资源权限,再检查当前任务用途是否在策略允许列表,两个检查都通过才真正放行。这个设计初期会增加一点配置工作量,但对AI场景来说几乎必需,因为AI任务对数据的使用方式远比传统报表查询复杂。

5.3 用仿真数据和攻击剧本做预验收

最后一条建议,是正式环境大量接入前安排一轮带"攻击剧本"的仿真预验收。我们当时模拟了五种典型风险场景:尝试把含原始特征的中间文件导出沙箱、用未授权用途调用数据接口、篡改审计日志、越权访问其他组织资源目录、训练结束后从模型参数反推原始样本。每轮攻击后,验证空间是成功阻止、留下记录,还是静默放行。

这个过程会发现很多常规测试想不到的问题。比如有一轮模拟时我们发现,沙箱的容器销毁逻辑虽然正常执行了,但宿主机上的内存缓存没有及时清理,理论上存在数据残留风险。这类问题不靠攻击剧本压一遍很难暴露。仿真数据虽然不能完全等同于真实数据,但用来验证信任链条的完整度已经足够了。

我个人的体会是,可信数据空间的建设难度不在某一个技术组件,而在于把身份、策略、控制、审计几个环节串成一条闭环。TC609给了一个很好的规范起点,但真正让标准发挥作用的,是项目里对业务约束的理解和对细节的较真。如果你正在规划类似架构,不需要一开始就把摊子铺得很大,先拿一个真实AI场景跑通全链路,再把范围逐步扩大,这样能少走很多弯路。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进