注意:这篇不是升级说明,而是 FMO 4.0 的设计说明。如果你对背后的技术感兴趣,希望它未来能走向全球、走向开源,那这篇文章会告诉你为什么我们选择了这样的架构。

FMO 4.0 的核心目标,是让“身份可信”和“网络开放”同时成立。它不再依赖单一平台账号来判断谁是 HAM,而是使用三层 PKI 信任链、用户证书、数字签名和公开作废名单,让每一条广播、每一次连接、每一个自建台站都可以被独立验证。

在理解 FMO 4.0 之前,需要先理解FMO的底层特性:FMO 不是把用户组织进一个中心平台,也不是把大家塞进某个固定房间,而是让每一个边缘台站自己携带可验证的呼号身份。

一旦身份落到边缘节点,自组织的通联网络就会自然产生。因为这时网络不再依赖某个中心服务器来告诉你“谁是谁”,也不再依赖平台先创建一个房间、再把用户分配进去。一个 FMO 台站可以证明自己的呼号身份,可以发现其他台站,也可以被其他台站发现;它可以连接长期服务器,也可以临时加入某个台网。服务器在这里不再只是“房间”,而更像一个临时频点。

这正是 FMO 和传统网络对讲最大的不同:传统系统先有平台,再有账号,再有房间;FMO 更接近业余无线电本身,先有台站,先有呼号,然后台站之间通过发现、验证和连接,自然形成一次通联、一张临时网络,甚至一个长期自治网络。FMO 4.0 引入证书、签名和信任链,并不是为了把系统做复杂,而是为了让这种边缘自组织在网络开放、服务器可自建、未来逐步开源的前提下,仍然能够保持身份可信、责任可追溯。


4.0 到底想解决什么问题?

持证爱好者通过网络扩展自己的通联范围时,有几个问题是肯定绕不开:

  • 屏幕上写着"BG5ESN 在呼叫",我凭什么相信对面真的是 BG5ESN,而不是有人冒名?
  • “让不让你通联"这个开关,到底握在谁手里?
  • 完全开源后,任何人自建服务器时,凭什么相信服务方或通联对象真的是持证 HAM,而不是恶意节点、自动化脚本或身份冒用者?

传统的做法,是把这两个问题都交给一个中心平台去管,让大家统一用用户名、密码去登录。但FMO 4.0 选了另一条路,为了讲清楚这一切,才有了这篇文章,这篇文章概念较多,可能会花费一些时间。


传统网络对讲是怎么做的?

传统的网络对讲设计非常成熟,在很多场景里就是最优解。你能想到的那些公网对讲、IP 对讲,大体是这么运行的:

厂商建一个中心服务器 → 你买设备注册个账号 → 设备里写死服务器地址,用账号密码登录 → 你说的每句话都过这个中心

这套设计的好处实实在在:

  • 开箱即用,注册个账号就能喊话,新手零负担
  • 稳定省心,厂商专业运维,坏了有人修,出事有人扛
  • 集中管理高效,统一升级、统一调度、统一客服
  • 物业、车队、安保这种需要可控、可管理的封闭网络,集中模式恰恰是它的杀手锏——老板要的就是"一切尽在掌握”
  • 客观说,它让"对讲机上网"这件事真正普及了

所以这不是"好不好"的问题,而是它为什么那样设计——为了简单、可控、可运营,最自然的选择就是"一个中心 + 一套账号密码"。这是面向商用的正确取舍。

但这套设计放在业余无线电上,会产生一种根本性的错位——不只是“感觉不对”,而是从两个层面与业余无线电的内核相悖。

第一层:身份 HAM 的呼号由考试授予、受国际承认,是终身绑定个人的法定身份。而商用系统的账号密码,本质上只是一个可批量生成、随时回收的商业凭证。用后者来代表前者,等于把一本护照降格成一张超市会员卡。

第二层:网络基因 业余无线电的中继和网关天然是分布式的——“去中心化”不是它的一个功能选项,而是刻在骨子里的生存本能。这与一切通信必须“过中心”的模式,在逻辑起点上就不兼容。

更深一层看: 在一个中心化系统里,你的角色是“用户”,是终端的消费者。而在业余无线电联网中,每个有能力的爱好者都应当是自己节点的“运营商”,是网络的共建者。即便有厂商宣称“人人可以自建服务”,一个被刻意回避的问题也随之浮出水面——谁来审核? 在传统模式下,身份审核通常被平台吸收为一种中心化服务。用户只要相信平台,平台就替所有人判断“谁是真的 HAM”。但一旦系统声称“人人可自建服务”,这个问题就无法再被隐藏:谁来审核?谁来背书?谁来承担误发、滥发和冒用的责任?

如果只是把服务器开放给大家自建,却仍然把身份认定权握在平台手里,那所谓开放只是运维层面的开放,而不是信任结构上的开放。FMO 4.0 要解决的,正是这个更底层的问题:能不能让身份认定权,也像通联权一样,从单一平台手中释放出来?


4.0 的做法:数字用户证书和三层信任链模型

我们通过 FMO 4.0 版本的升级,让每个用户拥有一张在数学上可验证的“数字操作证”——用户证书。它并不是传统意义上的账号,也不是纸质执照本身,而是由中间机构在核验真实执照后,为该呼号签发的一份数字身份证明。它不像传统云平台那样分配用户名和密码,而是在中间机构核验爱好者提供的信息后,用三层 PKI 模型把“这个呼号确实经过核验”这件事,转换成一份可以被任何设备独立验证的数字证明。证书中不需要包含额外隐私信息,它要证明的不是一个人的全部现实身份,而是这个呼号背后确实存在一个经过核验的持证爱好者。

这个结构共有三层:

Root CA(根机构) → Intermediate CA(中间机构) → User Cert(用户证书)

含义 说明 目标
Root CA 根机构 它的主要工作是给各个地区的中间机构颁发一个中间证书,它是一种形式上的可信源头。相当于大家都相信他,这个网络互通才能成立。Root 不是为了控制所有人,而是为了让所有彼此陌生的人能够拥有一个共同认可的信任起点。
Intermediate CA 中间机构 它的证书来自于根机构的颁发,以后将存在于全世界各个国家/地区,它负责接收来自用户提交的个人操作证等信息,转化为数学上等价的用户证书。
User Cert 用户证书、包含呼号、UID 来自于中间机构的颁发,用于每个爱好者通联、自建服务、自组织网络

这三层模型用来解决的问题,举例来说:

当 B 收到 A 的用户证书时,B 首先会检查:这张用户证书是不是由某个中间机构签发的。如果 B 没见过这个中间证书,就继续往上查:这个中间证书是不是由自己信任的 Root CA 签发的。 如果 B 信任这个 Root CA,而 Root CA 又确实签发过这个中间证书,同时这个中间机构又确实签发过 A 的用户证书,那么 B 就可以通过:

相信根证书 → 相信中间证书 → 相信用户证书

这条链路,判断 A 的用户证书是可信的。 这里的“相信”不是口头相信,而是数学验证:每一级证书都必须能被上一级证书的公钥验证通过。

当前FMO还处于4.0的早期阶段,因此只有BG5ESN(我)在担任 根机构 和 中间机构 职能,目前由我兼任只是为了跑通系统,Root 的设计目标恰恰是未来我自己也必须和其他中间机构遵守同样的规则,没有任何特权。但我们设计这套系统的目标不是为了当下,而是为了以后

让各个国家/地区有自己的中间机构可自行进行身份管理。通过这三层信任链模型,他们还能实现全球的互联互通,这期间,不需要每个节点彼此预先认识,也不需要每个台站之间单独建立信任关系;它们只需要拥有共同认可的信任起点,就可以通过证书链完成跨地区验证。

我们用几个问题,来让大家理解,这些层级是怎么发挥作用的:


首先明确FMO 和 APRS-IS 是什么关系?

在 FMO 的整体架构里,APRS-IS 承担的是一个非常克制但关键的角色:全球发现层

你可以把 APRS-IS 理解成一张业余无线电世界里已经存在的“公开公告栏”。FMO 台站上线后,会通过 APRS-IS 发布一条轻量级公告:我是谁、我提供什么 FMO 服务、应该怎么连接我、我的用户证书是什么、这条公告的数字签名是什么。

其他 FMO 设备收到这条公告后,并不会因为“它出现在 APRS-IS 上”就直接相信它,而是会在本地继续执行证书链验证和数字签名验证。

所以,APRS-IS 负责“让你看见”,FMO 负责“判断能不能信”。

这点非常重要:真正的身份认证不在 APRS-IS 上完成,语音通联也不通过 APRS-IS 承载。APRS-IS 只是发现层,PKI 才是信任层,FMO 自己的连接才是通联层。

这样的好处是,我们可以利用 APRS-IS 已经存在的全球传播能力,但不会把 FMO 的身份、权限和治理权交给任何一个现有网络。

换句话说:FMO 借 APRS-IS 找人,但不靠 APRS-IS 信人。

凭什么相信广播的那条消息是 BG5ESN, 他真的是本人?

传统平台中,对面是不是BG5ESN,是平台告诉你的——平台说是,你就只能信。

FMO 4.0则是让每条广播自己证明自己。每条 FMO 广播都打包了两样东西:用户证书数字签名。这里可能会有些抽象,接下来我们要讲一下,FMO如何完成一条关键的APRS-IS消息的完整验证过程,每个部分都经过了精密设计:

你在 APRS-IS 上收到一条声称来自 BG5ESN 的 FMO 广播 → 读取广播中携带的用户证书 → 顺着三层信任链验证这张证书是否有效 → 使用证书里的公钥验证这条广播的数字签名 → 检查时间窗口,确认不是旧消息重放 → 确认这条广播确实来自证书持有者

这里涉及到了数学相关的签名知识,可能要啃一啃,但若你要是能缕顺上面的概念,就知道,FMO 4.0 其实使用了数学解决了那个最关键的:我凭什么相信对面真的是 BG5ESN,而不是有人冒名? 问题。

如果你能理解上述过程,可以接着往下看。


我在连接别人的台站时发生了什么?

在 FMO 里,台站主人的设备会定期往全球 APRS-IS 网络上广播,这条广播自带连接所需的一切:台站的用户证书、怎么连它(地址、端口)、还有一段签名证明这条广播没被伪造。所有 FMO 都在默默守听,他们一直都在执行上面的消息验证过程。

一台收到广播服务器的FMO,连接台站的时候是这样的:

APRS-IS发现台站 → 先验明它的用户证书和数字签名(假台站过不了证书验证)→ 当你尝试去连接时用你的数字签名签一张"只对这家台站有效"的通行证 → 台站也通过检验你的数字证书和你的数字签名 → 最后才是你接入,开始通联

这张临时通行证有两个硬约束:

  • 仅可登录目标台站:通行证里写死了目标台站的身份,拿去连接别的台站是无效的。
  • 转发即废:就算半路被人截走,拿去转发给别的台站,也会因为目标身份对不上而失败。

所以它不是一张可以全网乱用的“万能票”,而是一张只对当前这次连接、当前这个目标台站有效的临时凭证。

这里要额外说一点:很多人会下意识地认为“我是客户端,我去连服务器,只要我证明自己是HAM就行了”。但在FMO 4.0的信任模型里,这个逻辑是对称的——服务方(自建服务器的人)也必须首先证明自己是一个合法的HAM。

如果系统只验证客户端,那攻击者完全可以搭建一个“钓鱼台站”,诱骗你把通联流量交给它,甚至利用协议实现漏洞发起进一步攻击。

这意味着有人运行了开源服务端代码,只要他拿不到一张真实有效的业余无线电用户证书(因为发证权在各地的中间机构手里,审核需要实体执照),他广播出来的“台站”在所有持有用户证书FMO客户端眼里就是透明的、不存在的。 信任在这里是双向且对等的:你要通联别人,你得有证;你要开台让别人通联你,你也得有证。


作恶如何被发现和制衡?

一个开放系统最大的诱惑,就是把自己设计成只要相信我就好。但 FMO 4.0 选择了一条更现实的路:它先假设任何角色都可能作恶,然后看结构本身还剩多少抵抗力。

如果把整个信任体系比作一张网,那么每一层节点都被有意限制在它该在的地方。越界不是不可能,但越界要么立刻失败,要么留下再也擦不掉的证据。

如果根机构(Root CA)作恶

Root CA 可以签发和撤销中间证书,看起来权力最大。假设它突然作恶——比如无故撤销一个地区协会的中间证书,让整个区域突然“断网”。

会发生什么?

一旦设备同步到这份吊销名单,就会显示“该中间证书已被吊销”。这个吊销行为本身带有 Root 的签名,公开可查,无法偷偷进行。

被“断网”的地区协会和爱好者不会束手无策。他们可以向全球社区出示证据:我们从未违规,是 Root 在滥用权力。

Root 的权力完全来自大家的自愿信任,而不是任何强制许可。一旦它被证明不可信,任何人都可以从设备里删掉这个 Root 证书,转而配置一个新的、更可信的 Root,或者直接信任那个被冤枉的中间证书。

换句话说,Root 不是上帝。它只是一个受到持续监督的信任起点,作恶的终点就是自己被网络抛弃。你可以把 Root 想象成一本全球都承认的字典,但如果这本字典开始乱印错误的词条,人们自然会换一本。

如果中间机构(Intermediate CA)作恶

中间机构负责验证执照、签发用户证书。假设它开始悄悄滥发证书——比如给某个没有执照的朋友签一张呼号证书。

又会怎样?

每张用户证书上都有中间机构的数字签名。滥发无法抵赖,因为数学上这就是它签的。

这个假呼号一旦在空中使用,任何人收到消息都能顺着信任链追到“是哪个中间机构签发了这张证”。

全球的守听者都可以公开举证:这张证书对应的执照验证材料是不存在的。一旦滥发行为被证实,Root CA 可以合法地撤销这张中间证书,让它整个区域的所有证书都失效——不仅是假的,也包括真的。这个代价太惨痛了。

即使 Root 不动手,用户也可以在自己的设备上手动把该中间证书加入“不信任名单”。这种自发的社区抵抗力,让作恶的中间机构很快就会被孤立。

中间机构的权力边界很清楚:你只能为你区域内的真实执照背书,一旦背书本身是假的,你就失去了背书资格。

如果普通用户(User)作恶

普通用户是最容易出问题的一层:设备可能丢失,私钥可能泄露,也可能有人违规操作、恶意干扰,甚至冒用他人身份。

4.0 用的是作废名单(CRL),就像协会公开张贴的"这些证作废了"的公告,而且分两级:

某张用户证书要废 → 发证的那个区域协会把它列进作废名单

整个区域协会出了问题要停 → RootCA把这个协会持有的中间证书列进作废名单。

需要注意的是:平时设备会自动同步作废名单;断网时,设备只能使用本地缓存。如果缓存已经过期,系统会明确知道“吊销状态不是最新的”,但在业余无线电和应急通信场景下,FMO 会倾向于可用性优先,让设备继续工作,同时保留事后追溯的签名证据。

这份作废名单本身也带有数字签名,并且公开可查。它不是我在后台偷偷点一下就把你封了,而是一份谁都能拿到、谁都能验真伪的公开公告。

用户是最容易出问题的环节:违规操作、恶意干扰、身份冒用。我们已经有了作废名单(CRL)来吊销他的证书。但证书被吊销之后,如果他趁网络不通,继续用旧的证书去骗人,怎么办?

这就回到了前面提到的折中:当设备断网、作废名单过期,系统会本着可用性优先暂时放行。但这不意味着作恶没有成本:

每一次冒用都会留下签名证据。事后网络恢复,这些签名可以被离线存档、公开举报,成为永久污点。

社区可以采用“本地黑名单”机制,手动把已知的用户拉黑,即便在断网状态下也拒绝服务。

更重要的是,他的“用户证书”被吊销后,任何能联网的台站都不会再接受他。他的可活动范围会被逐步压缩到那些“信息孤岛”里,最终变成一个在系统里四处碰壁的幽灵。

但我们仍然要说:系统能验证的是执照,验证不了人心。 如果有人一开始就拿假材料、冒用别人身份骗过了认证,作废名单也是事后才能补救。没有任何系统能 100% 防住现实世界里的欺诈,FMO 也一样。我能做的,是把每一步都做得可追溯、可核对,而不是假装自己是终极裁判。 现实的制衡:如果某个角色越界,会发生什么?

如果连物理安全也被突破

假设最极端的情况:某个用户的私钥被物理盗取(比如设备丢失、芯片被拆解)。私钥一旦泄露,他人就可以完全冒充这个呼号。

对此,FMO 的制衡是:

用户可以立即申请吊销旧证书,签发新的。旧的密钥将随着作废名单同步,在全球范围内失效。

私钥本身被设计为“不离开安全芯片、从不上网”,物理盗取的难度已经尽可能高。

如果还是发生了,这就是一个典型的“个人责任边界”问题。系统可以替你作废被盗的钥匙,但无法替你守住口袋里的设备——这和丢了家门钥匙之后得自己换锁是一个道理。

制衡的核心不是“无人能作恶”,而是“作恶必须留下证据,证据必须能被所有人验证”。

在整个 FMO 4.0 的结构里,没有哪一个中心是不可替代的,也没有哪一份权力是不受监视的。Root 可以换,中间机构可以社区自建,用户证书可以公开吊销。每一个角色的能力都被锁在一个明确的范围里,而它的行为,永远可以被任何一台默默守听着的设备追溯到源头。

这就是我们选择 PKI 三层模型的真正理由——不是为了建立一个技术上的通天塔,而是为了让每一个权力都有一个对应的、同样强大的反制机制。


这会不会对普通爱好者太复杂?

这是一个必须认真回答的问题。FMO 4.0 的底层用了证书、签名、信任链和作废名单,但这些复杂性不会,也不应该直接压到普通用户身上。普通爱好者不需要理解 Root CA 怎么签发 Intermediate CA,也不需要手动检查每一条签名。对大多数人来说,FMO 4.0 应该只是变成一句简单的话:

我的设备能证明我是谁,也能验证别人是谁。

就像我们每天访问 HTTPS 网站,并不需要手动计算证书链一样。真正复杂的部分,应该由设备、软件和社区基础设施自动完成。普通用户只需要看到清楚的结果:这个台站可信、这个证书过期、这个身份无法验证、这份作废名单不是最新。

但业余无线电又不只是普通消费电子。它本来就鼓励爱好者学习、实验、自建和互联。因此 FMO 4.0 也应该给更深入的爱好者留下空间:你可以自建台站,可以参与地区中间机构,可以审查公开规则,也可以选择自己信任的 CA。

所以,FMO 4.0 的目标不是让每个人都变成密码学专家,而是让普通用户简单通联,让技术用户自由搭建,让社区治理公开可查。

为什么升级到 4.0

如果 FMO 只是做一个“能联网的对讲工具”,中心服务器、账号密码、平台审核其实已经够用了。
但如果 FMO 的目标是走向开源、走向全球、走向人人可自建台站,那原来的模式就会立刻遇到一个无法绕开的矛盾:

网络越开放,身份越不能含糊;台站越自由,信任越不能只靠平台一句话。

4.0 要解决的,正是这个矛盾。

  • 把通联的权力还给用户。
    过去,你能不能通联,取决于某个中心服务器有没有给你开账号、有没有允许你登录。4.0 以后,你的通联身份来自自己的用户证书,而不是某个平台数据库里的一行记录。设备可以由厂家制造,但通联的资格不应该被厂家垄断。

  • 把“你是谁”从平台声明,变成数学证明。
    传统系统里,对面是不是某个呼号,是平台告诉你的。4.0 以后,每条广播、每次连接都必须带证书和签名。对面是不是真的某个呼号,不靠客服审核记录,不靠服务器背书,而靠本地设备独立验证。

  • 让自建台站从“能跑起来”变成“能被信任”。
    开源以后,任何人都可以运行服务端代码。但能运行代码,不等于能被全网信任。4.0 要区分这两件事:代码可以人人运行,身份必须经过证书证明。这样,自建台站才不是一个安全漏洞,而是网络扩展能力的一部分。

  • 让跨地区互联不再依赖重新注册。
    如果每个台站、每个平台都要求重新注册账号,所谓全球互联最后还是会变成一堆互不相认的小圈子。4.0 用三层信任链,让不同地区、不同中间机构签发的用户证书能够在共同规则下互相验证。你不需要到每个台站重新证明一次自己是谁。

  • 让治理从后台操作变成公开证据。
    要请走一个违规用户,不应该是某个人在后台偷偷点一下“封禁”。4.0 使用公开、带签名、可验证的作废名单。谁被吊销、由谁吊销、吊销依据来自哪条信任链,都可以被检查。开放网络里的治理,也必须是开放可验证的。

  • 让 FMO 不被任何单一方绑架。
    FMO 的长期目标,不是建立另一个更大的中心平台,而是让任何人都可以自建服务节点,让各地区、各社区也能在公开规则下建立自己的 CA 和治理结构。至于某个 CA 是否被信任,不由平台强制决定,而由社区和用户共同选择。


所以,4.0 不是一次普通升级。 它真正改变的不是某个界面、某个功能、某个服务器地址,而是 FMO 的底层关系:

  • 从“平台允许你通联”,变成“你用自己的证书证明自己”;

  • 从“大家相信一个中心”,变成“大家验证同一套证据”;

  • 从“厂家运营网络”,变成“社区共同构建网络”。

我一直觉得,业余无线电最迷人的地方,不是设备本身,而是那种“我可以自己架起来、自己连出去、自己和世界发生关系”的自由感。

如果联网之后,一切又重新变成账号、密码、中心服务器、平台审核,那它当然方便,但也少了一点 HAM 本该有的味道。

FMO 4.0 想保住的,正是这点味道:身份要可信,但信任不必被垄断;网络要开放,但开放不等于无序;厂家可以制造设备,但不能垄断通联的权利。

这就是为什么我们要把身份、签名、证书链和作废名单这些看似复杂的东西引入 FMO。它们不是为了炫技,而是为了让一个开放的 HAM 网络,在互联网时代依然能保持自组织、可验证、可延续的精神。

目前FMO依然处于完善架构阶段,你所看到的所有基础框架,都已经完全搭建了起来。目前我们正在全力整理代码,到时候,证书导入、服务器导入机制将根据实际的发展逐步开放开源。

此致 73!

BG5ESN