FMO(NFM Over Internet) 的信任链模型
有朋友觉得FMO只是一个云平台。
为此,我在这里写下FMO的信任链。这是一个有趣的设计,我相信大家也可以通过这个思路,去开发自己的有趣的无线电玩具。
先直接回答那个质疑
如果你理解的“云平台”是:
- 设备依赖云端才能工作
- 服务器关了设备就变砖
- 用户数据被厂商攥在手里
- 厂商随时可以背后搞鬼
那FMO不是这种云平台。
如果你理解的“云平台”是:
- 需要一个地方完成初始验证
- 之后FMO设备独立运行,和云端再无瓜葛
- 厂商跑路了FMO照用
那FMO是这种云平台
虽然听起来有点矛盾,但读完下面的信任链,你就明白为什么了。
在讲信任链之前,有一件事必须先说清楚:信任不是无条件的。它建立在“你提供的注册材料是真实的”这个前提上。
当你绑定FMO时。
我们需要你提供:
- CRAC操作证信息(通过官方接口验证)
- 身份信息和手机号
我们默认这些材料是真实的。为什么?
因为:
- 身份信息和手机号,背后是运营商的实名认证体系
- CRAC操作证信息,背后是国家无线电管理机构的数据
我们不生产信任,我们只是把这些现成的信任串联起来。
如果有人用假材料骗过了验证——比如盗用他人身份信息、伪造操作证——那FMO的信任链在第一环就断了。这不是FMO设计的问题,这是现实世界任何系统都绕不开的底线:系统只能验证材料,不能验证人心。
信任链设计
第一层:国家确认
我们不自己判断“谁是爱好者”。我们没有这个权力,也没有这个能力。绑定FMO设备时,我们直接调用CRAC官方接口验证你的电子操作证。这是国家级验证,造不了假。CRAC系统返回“通过”,流程才能往下走。这一层依赖你的材料是真实的。
第二层:授权
CRAC验证通过后,开发者给你生成一张授权凭证,里面是你的呼号和你的FMO设备ID。用只有FMO知道的印章盖上去。这张凭证是用来告诉你的FMO:“这个人认证过。”这一层依赖第一层的结果是真实的。
第三层:FMO的信任
每台FMO设备出厂时,都内置了开发者的印章样本。当你把盖了章的凭证交给FMO,它会自己核对:
- 这个章是不是开发者盖的(印章样本对得上)
- 凭证上写的设备ID是不是我自己
核对通过,FMO就把你的签名存下来。从此以后,你每次开机,都是用的自己的认证身份。这一层依赖前两层传递下来的信任是真实的。
信任链长这样
你的真实材料 → CRAC接口验证 → 开发者盖章 → FMO设备存你的签名 → 你永久拥有这台FMO
每一步都依赖上一步:
- CRAC接口依赖你提供的材料是真实的
- 开发者依赖CRAC的验证结果是真实的
- FMO设备依赖开发盖章的凭证是真实的
- 你依赖FMO设备只认你的签名
如果材料是假的呢?
如果有人用假材料通过了验证,会发生什么?
- CRAC接口会返回“通过”吗?不会,因为假操作证过不了官方接口。
- 但身份信息和手机号有可能被冒用(比如盗用他人身份)。
如果出现这种情况,FMO系统本身是无能为力的——没有系统能100%防住现实世界的欺诈。 我们能做的是
- 严格对接官方接口,不自行判断
- 记录每一次绑定的材料来源,留痕备查
- 配合监管机构处理纠纷
但我们从一开始就没打算充当“终极裁判”。我们不掌握终极真相,我们只是把各个权威来源的信任串联起来。
那OTA升级呢?
有人会问:你们不是还提供OTA升级吗?这不还是依赖云端?
是的,我们提供OTA升级。但这里有个关键区别:OTA升级是一个服务,不是一个控制权。
就像你的手机可以升级系统,但升级之前它能用,升级之后它也能用。你不升级,它照样能用一辈子。
FMO的OTA升级也是这样:
-
你可以选择升级,也可以选择不升
-
升级与否,不影响你对FMO的拥有权
-
即使我们关闭服务器,你的FMO依然能正常工作——只是收不到新版本而已
我们提供升级,不代表我们控制你的设备。 这就像卖给你一辆车,顺便问你要不要来店里做保养。你不来保养,车照样开;我们店关门了,车照样开。
所以开发者角色在这个信任中到底是什么?
开发者在这个链条里的角色只有两个:
-
- 信任的翻译官: 把CRAC的“这个人有证”,翻译成FMO设备能读懂的“这个人可以用我”。
-
- 信任的快递员: 在FMO设备出厂时把印章放进去,在绑定成功时把你的签名存进去。
翻译完、快递完,开发者的核心工作就结束了。
至于OTA升级、技术支持、社区运营——这些都是附加服务,不是FMO设备赖以生存的命脉。没有这些,FMO依然是你的FMO。
如果FMO明天不再服务了:
- 已绑定的FMO设备不受任何影响
- 你的授权还在FMO设备里
- 你照常使用FMO,和今天没区别
- OTA升级没了,但FMO设备本身一切正常
- 唯一的变化是:新用户没法绑定了(因为翻译官下班了)
这不是“云平台跑路设备变砖”的故事,这是“快递员送完货就消失,4S店关门但车照开”的故事。 你的FMO设备从一开始就没打算天天联网找我们汇报。它只在开机的时候看看你是谁,这不需要我们帮忙。 开发者不是设备的“daddy”,FMO设备也不是租给你的。FMO不是一个云服务,而是一种设备自治网络。每一台设备都拥有自己的身份、信任和连接能力。开发者只是在设备和用户第一次见面时做了介绍人,介绍完之后,设备就归用户自己了。FMO从一开始就是你的。