CAD 文件与图纸
STEP 与 IGES 模型、PDF 与 DXF 图纸、扫描件以及生成的三维预览,都在存储中以 AES-256 加密,每个上传的文件各用一把密钥。
存储服务商不持有密钥。光有存储的硬盘,读不了任何文件。
01文件的路径
文件生命中的五个阶段,以及各自对应的防护。没有一项是需要您去打开的开关:这就是系统的默认行为。
文件通过加密连接,从客户的浏览器直接进入对象存储。它不经过我们的应用服务器,途中也从不以明文形式停留。
每个上传的文件都会拿到一把新生成的 AES-256 密钥,只用来加密这个文件和它的三维预览。文件落进存储时就已经是加密的。
文件密钥由主密钥封存,而主密钥只在我们的应用服务器上。存储服务商没有它,所以光拿到存储的硬盘,什么也读不出来。
浏览器拿不到指向存储的链接,只拿到一个指向我们 API 的签名链接,有效期 15 分钟。在控制面板中,它还只在您已登录的会话里有效。
没有变成订单的报价,其文件在 90 天后消失;没有完成的上传,6 小时后消失。我们删除的是对象本身,而不只是数据库里的一行记录。
最后一个阶段最容易被忽略:已经不存在的数据,是唯一没人能拿走的数据。所以在这里,删除是系统每小时自动执行的任务,而不是一句表态。
02加密
同一份订单在三方眼中的样子。切换一下,看看每一方能读到什么。
您看到全部内容:带三维预览的文件,以及客户的联系资料。
示例数据
STEP 与 IGES 模型、PDF 与 DXF 图纸、扫描件以及生成的三维预览,都在存储中以 AES-256 加密,每个上传的文件各用一把密钥。
存储服务商不持有密钥。光有存储的硬盘,读不了任何文件。
姓名、公司、邮箱、电话、收货地址和备注,在进入数据库之前就由应用加密。数据库从不接触密钥。
在数据库副本中,没有应用的密钥,这些字段无法读取。
我们不签发任何可以直接从存储下载文件的链接。每一次下载都经过我们的 API,凭一个短时有效的签名令牌,令牌有自己的作用域和有效期。
文件令牌不能当作会话使用,反过来也不行。作用域彼此分开,不可互换。
控制面板、报价插件、托管页面和 API 只走 HTTPS,并带有覆盖一年、涵盖所有子域名的 HSTS 头。
首次访问之后,浏览器会自行拒绝任何未加密的连接。
每晚的数据库导出在离开服务器之前,就在我们的服务器上以 AES-256 加密,并按份数轮换而不是按日历轮换。明文副本从不落盘。
另有一条命令会真的把最新一份还原出来,并把行数与生产库逐一比对。
密码用 Argon2 做哈希。会话是带代数编号的签名令牌:重置密码、退出登录,以及所有者为员工设置新密码,都会让此前签发的所有令牌立即失效。
会话 Cookie 带 HttpOnly、Secure 和 SameSite,页面上的任何脚本都读不到它。
03边界
04保留期限
三个计时器,各管一种情况。全部自动运行:系统每小时检查一次。
客户开始上传文件但没有完成。该对象 6 小时后删除,不必等满整个保留期。
已删除手动删除的报价或订单会进入回收站,可以连同文件一起恢复。之后两者一并消失。
已删除从未转为订单的报价,其文件连同预览从存储中删除。报价本身保留:留下的是数字,不是几何。
已删除已经变成订单的报价,其文件会保留,因为加工厂生产时要用。您可以通过回收站删除订单及其报价,30 天后它们会被彻底清除;注销账号时,它们也会一并删除。
05访问
一份很短的名单,因为更长的名单本身就是错的答案。
您加工厂的数据
客户的报价与文件
加工厂配置
每位员工能看到哪些标签页,由您逐一决定。
他们通过猜不出来的链接,或报价编号加邮件中的访问码打开它。
进入加工厂账号,以及每一次文件下载,都会记入日志。
文件存储只保存密文,也没有密钥: 13b6 d4b0 408c ea83…
一个加工厂账号有一位所有者和若干员工。所有者决定每位员工能看到哪些面板标签页。设置(包括用户管理)只属于所有者。
他们只看得到自己的报价和自己的文件:通过一个猜不出来的 id,或者通过报价编号加邮件中的访问码,并受尝试次数限制保护。从那里没有任何通路可以到达加工厂的报价列表,或者别的客户的文件。
只有具名、经过授权的人员:处理工单、诊断故障,以及核对引擎有没有正确读出零件、价格算得对不对。最后这一项只服务于平台的运行与改进;保密承诺和服务条款禁止把这里获知的内容用于加工零件,或用于任何与您竞争的事情。登录平台面板需要密码加一次性邮件验证码,连续失败若干次后账号锁定,进入某个加工厂的账号会记入事件日志,每一次下载客户文件都会在第一个字节发出之前记录下来。
存储服务商只保存加密后的文件,而且没有密钥。我们的其他分包商列在隐私政策中,它们都拿不到 CAD 文件。
06基础设施与合规
整套基础设施,包括应用、数据库、文件存储和备份,都运行在欧盟境内。您的文件不会离开欧洲经济区。
对您终端客户的数据,您是控制者,我们是处理者。符合 GDPR 第 28 条的处理协议是条款的一部分,不需要另行谈判。
登录和注册受 reCAPTCHA 校验和尝试次数限制保护;在中国大陆,由于 reCAPTCHA 无法加载,新注册的账号必须先确认邮箱才能使用。上传受频率限制和每日报价上限保护。限制批量上传垃圾文件所造成成本的,正是这些。
PDF、STEP 文件和图纸照片,我们不只看扩展名,还检查开头的字节;每个文件的分析都有严格的时间和内存上限。伪装成这类文件的压缩包、办公文档或程序,在任何解析器碰到它之前就被拒绝。
所有域名上都启用 HSTS、内容安全策略、关闭 MIME 嗅探并限制 referrer 策略。平台管理面板与公开 API 相互隔离。
应用运行在没有管理员权限的容器中,文件系统只读,也不带多余的内核权限。
07问题
包括那些老实回答起来对我们并不好看的。
报价是自动的,绝大多数文件我们团队没有人打开。不过,具名、经过授权的人员确实有访问权限,并在三种情况下使用它:您报告某份报价有问题时、引擎报错需要诊断时,以及我们核对引擎有没有正确读出零件、它给的价格和工艺员批准的价格是否吻合时。最后这一项,正是报价准确度的来源,您的和所有人的都是。这些人员负有保密义务,服务条款禁止我们用您的文件去加工零件、与您竞争,或者把加工活转介给任何人。我们团队的账号需要密码加一次性邮件验证码,进入您加工厂账号的行为会记入事件日志,我们团队每一次下载您的文件都会记入访问日志。
报价引擎是一套确定性的几何与成本模型,不是用别人的零件训练出来的模型。校准只作用于您自己的报价,且从不离开您的账号。您的文件不会到达任何外部服务或人工智能服务商;从扫描图纸中识别文字的过程在我们自己的服务器上本地运行。我们正在自研一个更好地读取 PDF 图纸的模型。它只会跑在我们自己的基础设施上,而某家加工厂的文件要参与它的开发,必须经过该加工厂单独同意,且随时可以撤回。在那之前不存在任何此类情况,而且不同意永远不会影响您报价的质量。
文件会变得无法读取,对我们也一样,因为存储服务商手里没有密钥的副本。这是一个刻意的取舍:要么密钥只属于我们、外人读不到任何东西,要么别人也拿着一份,而「外人读不到」这句话就不再成立。密钥的备份副本保存在服务器之外。
没有,我们宁愿直说,也不愿用一句笼统的话搪塞过去。认证是一套我们尚未走完的审核流程。这个页面描述的是产品中真正在运行的机制,其中每一项我们都可以依处理协议应要求提供证据。如果您的采购流程需要填安全问卷,我们会填。
不会。报价只能通过一个猜不出来的 id 访问,或者通过报价编号加访问码访问,而尝试次数限制让访问码无从猜起。此外,每一次查询加工厂数据都按该加工厂的账号过滤:这个账号取自会话或报价插件密钥,绝不取自客户在地址栏里填了什么。
数据您带走:报价可以从控制面板导出为 CSV,价格表可以导出为 JSON 或 CSV。账号注销后,我们会删除它的报价、订单和文件,存储中的也一并删除。留下的只有税务与会计法律要求我们保留的记录;其他数据保留多久,见隐私政策。
文件本身是给零件定价、以及让工艺员核对引擎有没有读对所必需的。但您可以在处理完某份报价后立刻把它移入回收站,它的文件会在 30 天后消失;如果您不这样做,保留期限也会替您完成。应您的要求,我们也可以提前删除文件,最迟在 7 天内完成。
请写信到 contact@metronq.com,附上描述和复现步骤。这类报告我们优先处理,不会追究善意报告者,并会在发生影响加工厂文件的事件时不无故拖延地通知对方。