×

SAFE2小程序Pod IoT安全解决方案

消耗积分:2 | 格式:zip | 大小:0.21 MB | 2022-11-10

王健

分享资料个

描述

该项目旨在展示 Pod IoT 安全解决方案——SAFE2 小程序,可用于从云服务器以经过身份验证的方式安全地获取配置数据。

SAFE2 小程序是基于 GSMA IoT SAFE 理念的扩展。该小程序旨在为最简单且受限制的物联网设备提供与服务器的双向安全数据交换。

该解决方案适用于提高已部署项目的通信安全级别,在这些项目中没有可用的免费硬件资源来实现加密协议。

安全2

SIM 中的 SAFE2 小程序包含预共享密钥模式下的 TLS1.3 协议的实现。SIM 不仅包含协议逻辑,还存储唯一的预共享密钥 (PSK)。SIM 能够通过 OTA 命令以安全的方式进行 PSK 更新。

pYYBAGNsSTOAYCiDAAGUAdy55bY213.jpg
SAFE2 部署架构
 

SIM 存储用于访问服务器(物联网平台)的 url、端点和端口号。

SIM 负责所有协议步骤,包括域名解析和重复尝试,直到请求被传递到服务器。

要通过 SAFE2 小程序从服务器获取配置数据,设备应用程序应通过调制解调器中间件向 SIM 发送特定命令 - 用于通用 SIM 访问的 AT 命令,即“AT+CSIM”。

首先必须打开补充逻辑信道(以免干扰调制解调器和基本信道中的 SIM 之间的 GSM 会话)。然后必须在新的逻辑通道中选择小程序,并且应向小程序发送特定命令以向服务器发起 HTTP GET 请求。每个 GET 请求都包含 SIM 的 ICCID(SIM 卡的唯一标识符)和 DeviceID,DeviceID 应由 Device Application 提前提供。SIM 将建立 TLS 1.3 会话并以加密和认证的方式将请求传递给代理。代理会将来自 SIM 的请求转发到服务器,并将服务器的响应转发到 SIM。设备应用程序应轮询请求的状态并在数据可用时收集数据。

配置数据

配置数据应通过 Luner IoT Suite 设置。

要创建配置,应通过提供的凭据获取访问令牌。

设备 ID 是 Arduino MKR GSM 1400 板的唯一标识符。scetch 包含提取设备 ID 并将其提供给 SAFE2 小程序的代码。

ICCID 是使用的 SIM 卡的唯一标识符。

“Body”包含将从 SIM 明文传送到设备的配置。正文应少于 255 个字符。

设备应用程序应能够解析提供的配置数据。

poYBAGNsSTWAcefvAAEEJJK86a8520.png
配置开启警报 (LED)
 

执行日志

下面提供的日志显示了 2 个配置事件。设备启动后 ( 23:36:58.376),调制解调器返回注册状态“Registered in roaming” ( 23:37:05.412-23:37:14.656)。

23:36:55.420 -> MKR AT
23:36:55.420 -> B58D51C5504D5257352E3120FF0D1338
23:36:55.420 -> at
23:36:55.818 -> at
23:36:56.216 -> at
23:36:56.615 -> at
23:36:57.015 -> at
23:36:57.413 -> at
23:36:57.811 -> at
23:36:58.210 -> at
23:36:58.309 -> AT
23:36:58.376 -> OK
23:36:59.205 -> at+creg?
23:36:59.238 -> 0:0
23:36:59.238 -> cntr: 0
23:37:00.766 -> at+creg?
23:37:00.799 -> 0:0
23:37:00.799 -> cntr: 0
23:37:02.292 -> at+creg?
23:37:02.325 -> 0:0
23:37:02.325 -> cntr: 0
23:37:03.818 -> at+creg?
23:37:03.885 -> 0:0
23:37:03.885 -> cntr: 0
23:37:05.379 -> at+creg?
23:37:05.412 -> 0:5
23:37:05.412 -> cntr: 1
23:37:06.915 -> at+creg?
23:37:06.948 -> 0:5
23:37:06.948 -> cntr: 2
23:37:08.443 -> at+creg?
23:37:08.510 -> 0:5
23:37:08.510 -> cntr: 3
23:37:10.004 -> at+creg?
23:37:10.038 -> 0:5
23:37:10.038 -> cntr: 4
23:37:11.532 -> at+creg?
23:37:11.566 -> 0:5
23:37:11.566 -> cntr: 5
23:37:13.094 -> at+creg?
23:37:13.127 -> 0:5
23:37:13.127 -> cntr: 6
23:37:14.622 -> at+creg?
23:37:14.656 -> 0:5
23:37:14.656 -> cntr: 7
23:37:15.651 -> setup finished

设备 IDB58D51C5504D5257352E3120FF0D1338已提交给 SIM ( 23:37:16.017),设备应用程序发送了配置数据请求 ( 23:37:17.346)。

23:37:15.751 -> at+csim=10,"0070000001"
23:37:15.751 -> +CSIM: 6,"019000"
23:37:15.751 -> 
23:37:15.751 -> OK
23:37:15.884 -> at+csim=34,"01A4040C0CF0706F646773616665320101"
23:37:15.884 -> +CSIM: 4,"9000"
23:37:15.884 -> 
23:37:15.884 -> OK
23:37:16.017 -> at+csim=42,"01DA02C010B58D51C5504D5257352E3120FF0D1338"
23:37:16.017 -> +CSIM: 4,"9000"
23:37:16.017 -> 
23:37:16.017 -> OK
23:37:16.083 -> at+csim=10,"0070800100"
23:37:16.083 -> +CSIM: 4,"9000"
23:37:16.083 -> 
23:37:16.083 -> OK
23:37:16.083 -> Set Device ID: OK
23:37:16.183 -> at+csim=10,"0070000001"
23:37:16.183 -> +CSIM: 6,"019000"
23:37:16.183 -> 
23:37:16.183 -> OK
23:37:16.316 -> at+csim=34,"01A4040C0CF0706F646773616665320101"
23:37:16.316 -> +CSIM: 4,"9000"
23:37:16.316 -> 
23:37:16.316 -> OK
23:37:17.346 -> at+csim=10,"01CA000000"
23:37:17.346 -> +CSIM: 516,"6467736166653

比设备应用程序每 15 秒 ( 23:37:32.429, 23:37:47.512, 23:38:17.672) 轮询一次 SAFE2 小程序的状态。

23:37:32.429 -> at+csim=10,"01CC020000"
23:37:32.429 -> +CSIM: 12,"000100009000"
23:37:32.429 -> 
23:37:32.429 -> OK
23:37:32.429 -> receiving state: 1
23:37:47.512 -> at+csim=10,"01CC020000"
23:37:47.512 -> +CSIM: 12,"000100009000"
23:37:47.512 -> 
23:37:47.512 -> OK
23:37:47.512 -> receiving state: 1
23:38:02.594 -> at+csim=10,"01CC020000"
23:38:02.594 -> +CSIM: 12,"000100009000"
23:38:02.594 -> 
23:38:02.594 -> OK
23:38:02.594 -> receiving state: 1
23:38:17.672 -> at+csim=10,"01CC020000"
23:38:17.672 -> +CSIM: 12,"000700009000"
23:38:17.672 -> 
23:38:17.672 -> OK
23:38:17.672 -> receiving state: 7

一旦状态变为“数据可用”,设备应用程序就会请求数据 ( 23:38:17.938),将它们取回 ( 23:38:17.938) 并解码 JSON 数据。配置已应用,即 LED 已打开。

23:38:17.938 -> at+csim=10,"01CA010000"
23:38:17.938 -> +CSIM: 184,"7B22636F6E66696775726174696F6E223A7B2276657273696F6E223A22323032312D30352D3035222C22636F6E666967223A5B7B22616374696F6E223A22696F743A416C61726D222C22656666656374223A224F6E227D5D7D7D9000"
23:38:17.938 -> 
23:38:17.938 -> OK
23:38:17.938 -> received:90
23:38:17.938 -> {"configuration":{"version":"2021-05-05","config":[{"action":"iot:Alarm","effect":"On"}]}}
23:38:17.938 -> configuration version: 2021-05-05
23:38:17.938 -> iot:Alarm configured as ON

关闭补充逻辑通道后 ( 23:38:18.004) 设备应用程序开始等待,并在 5 分钟后 ( 23:43:17.836) 启动下一个循环。在等待期间,服务器端的配置已更新以关闭警报 (LED)。

23:38:18.004 -> at+csim=10,"0070800100"
23:38:18.004 -> +CSIM: 4,"9000"
23:38:18.004 -> 
23:38:18.004 -> OK
23:38:18.004 -> waiting.....
23:43:17.836 -> at+csim=10,"0070000001"
23:43:17.836 -> +CSIM: 6,"019000"
23:43:17.836 -> 
23:43:17.836 -> OK
23:43:17.970 -> at+csim=34,"01A4040C0CF0706F646773616665320101"
23:43:17.970 -> +CSIM: 4,"9000"
23:43:17.970 -> 
23:43:17.970 -> OK

设备应用程序再次发送配置数据请求 ( 23:43:19.034) 并在第一次轮询后 ( 23:43:34.102) 获得响应“数据可用”。在第二个循环中,请求的处理速度更快,因为 URL 已经被 SAFE2 小程序解析和兑现。

设备应用程序获得了配置数据23:43:34.368

这次配置包含“效果”:“关闭”并且 LED 已关闭。

在获取配置数据结束时,补充逻辑通道关闭,下一次等待开始于23:43:34.435

23:43:19.034 -> at+csim=10,"01CA000000"
23:43:19.034 -> +CSIM: 516,"6467736166653
23:43:34.102 -> at+csim=10,"01CC020000"
23:43:34.102 -> +CSIM: 12,"000700009000"
23:43:34.102 -> 
23:43:34.102 -> OK
23:43:34.102 -> receiving state: 7
23:43:34.368 -> at+csim=10,"01CA010000"
23:43:34.368 -> +CSIM: 186,"7B22636F6E66696775726174696F6E223A7B2276657273696F6E223A22323032312D30352D3035222C22636F6E666967223A5B7B22616374696F6E223A22696F743A416C61726D222C22656666656374223A224F6666227D5D7D7D9000"
23:43:34.368 -> 
23:43:34.368 -> OK
23:43:34.368 -> received:91
23:43:34.368 -> {"configuration":{"version":"2021-05-05","config":[{"action":"iot:Alarm","effect":"Off"}]}}
23:43:34.368 -> configuration version: 2021-05-05
23:43:34.368 -> iot:Alarm configured as OFF
23:43:34.435 -> at+csim=10,"0070800100"
23:43:34.435 -> +CSIM: 4,"9000"
23:43:34.435 -> 
23:43:34.435 -> OK
23:43:34.435 -> waiting

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !