亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

Eclipse Hono 中基于 X.509 证书的设备安全认证实战

近期媒体曝光不达标物联网设备安全隐患,反复提及设备到云数据传输机密性。令人意外的是,许多设备仍在公网明文传输,尽管 HTTP、MQTT 等 TCP/IP 协议原生支持 TLS 加密。

Eclipse Hono 早期即为 HTTP 与 MQTT 适配器启用 TLS。0.9-M2 里程碑新增 TLS 握手期 X.509 客户端证书认证,允许设备用密钥对替代用户名/密码。

召集开发者

欧洲最大物联网黑客马拉松 2023 年 5 月 14-15 日回归柏林。700+ 开发者聚首领域挑战、学习、社交、欢愉。

本指南完整演示:创建并注册租户专属信任锚、生成设备证书、注册主题 DN、用证书对接 Hono MQTT 适配器认证设备。假设读者具备 RSA 密码学与 X.509 概念(RFC 5280)基础。

为何用客户端证书?

密码方式要求在 Hono 凭据服务存储每设备机密,再与设备提供密码比对。客户端证书消除逐设备机密需求。注册单一租户信任锚,即可在 TLS 握手中用租户公钥验证所有设备证书。

创建租户证书颁发机构

生成租户 RSA 密钥对与自签名证书,用于签署所有设备证书。

$ openssl genrsa -out tenant-key.pem 4096 $ openssl req -x509 -key tenant-key.pem -out tenant-cert.pem -days 365 -subj "/O=ACME Inc./CN=Sensors"

仅使用标准 X.500 属性 (CN, L, ST, O, OU, C, STREET, DC, UID) 保持 DN 简洁。

注册租户

向 Hono 注册信任锚。示例用 Hono Sandbox (v0.9-M2+)。将 ACME 替换为你的唯一租户 ID。

$ TENANT="ACME" $ SUBJECT=$(openssl x509 -in tenant-cert.pem -noout -subject -nameopt RFC2253 | sed s/^subject=//) $ PK=$(openssl x509 -in tenant-cert.pem -noout -pubkey | sed /^---/d | sed -z 's/\\n//g') $ cat < tenant.json { "tenant-id": "$TENANT", "trusted-ca": { "subject-dn": "$SUBJECT", "public-key": "$PK" } } EOS $ curl -i -H "Content-Type: application/json" -H "Expect:" --data-binary @tenant.json https://hono.eclipse.org:28443/tenant

创建设备证书

生成设备密钥对,经租户 CA 签名得证书。

$ openssl genrsa -out device-key.pem 4096 $ openssl req -new -key device-key.pem -subj "\/O=ACME Inc.\/CN=Hot Fuzz Device" | \ openssl x509 -req -days 365 -out device-cert.pem -CA tenant-cert.pem -CAkey tenant-key.pem -CAcreateserial

注册设备

向租户注册设备 ID。

$ curl -i -H "Content-Type: application/json" --data-binary '{"device-id":"hot-fuzz"}' https://hono.eclipse.org:28443/registration/$TENANT

注册设备主题 DN

关联设备证书主题 DN 与设备 ID。

$ SUBJECT=$(openssl x509 -in device-cert.pem -noout -subject -nameopt RFC2253 | sed s/^subject=//) $ cat < credentials.json { "device-id": "hot-fuzz", "type": "x509-cert", "auth-id": "$SUBJECT", "secrets": [{}] } EOS $ curl -i -H "Content-Type: application/json" --data-binary @credentials.json https://hono.eclipse.org:28443/credentials/$TENANT

测试连接

启动租户消费者,用设备证书发布遥测。

# 启动消费者 java -jar hono-cli-*-exec.jar \ --hono.client.host=hono.eclipse.org \ --hono.client.port=15671 \ --hono.client.tlsEnabled=true \ --hono.client.username=consumer@HONO \ --hono.client.password=verysecret \ --spring.profiles.active=receiver \ --tenant.id=$TENANT # MQTT 发布遥测 mosquitto_pub -h hono.eclipse.org -p 8883 \ --capath /etc/ssl/certs/ \ --cert device-cert.pem \ --key device-key.pem \ -q 1 -t telemetry -m "Hello there"

成功则消费者控制台显示消息。亦可经 HTTP 发布:

curl -i --cert device-cert.pem --key device-key.pem \ -H "Content-Type: plain/text" -H "Expect:" \ --data-binary "Hello there" https://hono.eclipse.org:8443/telemetry

物联网技术

  1. 基于 AT89S52 单片机与 LM35 传感器的温控系统设计
  2. 固态器件理论:从物理到实际应用
  3. Eclipse Hono发布基于MongoDB的设备注册表:可扩展、生产就绪
  4. Eclipse Hono 1.0.0发布:统一开源IoT连接平台
  5. 电池供电医疗设备可靠上电方案
  6. 医疗器械技术进展追踪:传感器、连接与低功耗 SoC 推动市场增长
  7. Arm收购Stream Technologies强化物联网连接与设备管理
  8. IoT设备漏洞暴露智能家庭攻击面:凭证窃取威胁实测
  9. 未配置IoT设备:智能家庭的隐形攻击面
  10. 物联网设备嵌入式硬件黑客技术:工具、技术与商业启示
  11. 利用物联网远程连接管理医疗设备——解锁全新商业模式
  12. Atmosic与SMK合作推出超长续航物联网设备