FIDO IoT 协议介绍
发布时间:2021-04-16 09:17:03|浏览次数:4712
背景: 为什么FIDO联盟要定义IoT标准?
● IoT业界需要一个标准的设备身份识别,并且在认证过程中消灭口令; ● FIDO联盟在定义标准、产品认证两方面有足够经验,UAF、FIDO2两项标准已经有大量产品通过认证、被客户采纳; ● FIDO联盟中有大量企业参与,覆盖应用端、设备端,IoT标准是由高通、Intel、谷歌、微软、Arm、亚马逊等联合编撰的。
01 FIDO IoT标准概述
FIDO Device Onboard(FDO)标准,这一阶段指设备安装密钥、配置数据,就可以连入IoT平台,用户使用平台给设备打补丁、安装更新程序、提取数据。
协议中的安全考量:
● 在设备onboard过程中,不能泄漏之前或未来的服务络信息;
● 需要对Device运行环境进行校验。
成果:
● Linux Foundation Edge子项目:
https://www.lfedge.org/projects/securedeviceonboard/
02 协议内容
2.1 相关名词释义
● Onboarding:开箱之后的设备,加入某一个平台、属于某一个用户的过程 ● SDO:Secure Device Onboard,即当前这套协议 ● 协议中角色 Manufacturer:设备厂商 Device:即IoT设备 Device ROE:协处理器或处理器一种形式,对代码执行同主处理器区分开,ARM TEE即典型的ROE Device ROE App:运行于ROE环境下的应用 Device to Manager Agent Owner:设备的真实使用者,通过Owner Voucher来证明设备所有权。这里的Owner并不是一个真实用户,而是指用户设备上的软件 Manager(Management Service):运行于用户自有设备(手机、PC端)的管理程序 Management Agent:Device上的管理组件,搭配Manager使用 Owner Onboarding Service:Onboarding中间服务,结束后会将所有权传递给Manager service Rendezvous Server:IoT平台服务,作为用户(Owner Onboarding Service)和设备(Device)间的第三方,协助建立完成Onboarding。这个服务可以由厂商维护,也可以是销售商,当然需要维护一些数据,这个详细协议里会涉及。 ● 密钥体系 Device Attestation Key:在Device中预置的密钥,用于证明ROE运行环境安全 OwnerShip Credential Key Pair:所有权凭据密钥,用于设备识别所有权 Device Credential:是由厂商生成,存储于设备中,用于所有权转换。可以理解为一次性密钥对,只是在所有权转换时使用。
2.2 架构及流程
架构图
流程大致如下:
1.设备厂商根据DI协议,对设备进行初始化
核心是:
● 设备预置Device Credential
● 设备预置Device attestation
● 生成一个GUID(代表设备自己),存入设备中
● 生成Ownership Voucher
2.厂商和用户,通过已有的供应链方法,生成Ownership Voucher并传递
3.用户同Rendezvous Server交互,开始进行Onboarding,这一阶段协议为TO0
核心是:
● Rendezous Server检查Owner Voucher,判断是否有资格访问设备
● Rendezvous Server建立Owner单条记录,要记录Owner访问地址、访问协议
● Owner等待设备来连接
4.用户操作设备同Rendezvous Server交互,这一阶段协议为TO1
核心是:
● Device同Rendezous Server交互,提交自己的信息
● Device获取Owner的连接地址、协议
5.Owner同Device直接进行交互,这一阶段协议为TO2
核心是:
● Owner替换Device上credential(不替换attestation key),Device生成一个新密钥,用于后续二次销售等操作
6.最终完成Onboarding过程
以上操作完成后,FIDO Device Onboard过程结束。Device所有权转移到Owner,并建立安全连接。
2.3 子协议
2.4 Ownership Voucher
所有权证明,一个结构化的电子文本,用于证明Owner对Device所有权。
这里使用了同PKI相似的机制,但对报文进行了压缩。
● Device会预置厂商公钥匙
● 厂商对应的每一级销售、分发机制,都需要有自己的公私钥,并被上一级签发
● 最后一级是Owner自己的公私钥
之后,我们也将对IoT协议进行更多详细介绍,敬请期待。