查看: 1143|回复: 0

TinyTEE系列之二:TinyTEE与云服务,软硬结合保障物联网设备...

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2020-5-29 09:12:16 | 显示全部楼层 |阅读模式
    TinyTEE系列之二:TinyTEE与云服务,软硬结合保障物联网设备全链路安全


    北京方研矩行科技有限公司(简称:青莲云)是业界领先的物联网安全解决方案提供商,成立于2016年,具有10年以上企业级安全产品和大规模云计算平台研发及服务经验。
    青莲云依托多年来在网络安全领域的攻防实战经验,以及完整的智能硬件产品研发经验,将“安全”与“业务”无缝融合,为企业提供端到端的物联网安全整体解决方案。
    本文是TinyTEE系列文章的第二篇,系列文章组成如下:


    一《TinyTEE基本功能介绍
    介绍TinyTEE的基本功能及特点、TinyTEE解决了哪些物联网安全风险。

    二《TinyTEE与云服务,软硬结合保障物联网设备全链路安全》
    介绍如何将TinyTEE与物联网云服务结合,研发高安全等级的物联网产品。

    三《TinyTEE与OTA,如何为LPC55Sxx安全远程升级?》
    介绍如何将TinyTEE与固件升级功能结合,实现高安全等级远程升级方案。

    四《手把手教你使用TinyTEE的安全存储功能》
    介绍TinyTEE安全存储功能的方案实现与应用。

    五《手把手教你使用TinyTEE的数据加解密功能》
    介绍TinyTEE数据加解密功能的方案实现与应用。


    1、简介


    在使用物联网云服务研发物联网产品时,我们要考虑很多安全问题。


    其中最重要的就是设备的身份认证。设备连接云平台后的第一件事,就是身份认证,只有设备与云端进行双向身份认证,才能保证两端的合法性。云端应当只为合法设备提供服务,不能随意伪造一台设备就连到平台上;设备也应当只能连接到合法的云平台上,不能随意向其他平台发送敏感、隐私的信息。
    身份认证其实就是物联网方案中设备与云服务互相证明“我是我”的技术手段,那么该如何证明“我是我”呢?
    在现实生活中,我们使用国家颁发的身份证证明“我是我”。我们默认一个人拥有一张身份证,如果身份证上的照片和这个人一致,那么就能证明这个人的身份,他是一个合法公民,能够享受国家公民权利。
    物联网世界中其实也一样,每个设备也有一张唯一的“身份证”来证明它的合法身份,只不过我们不叫它身份证,而是称之为“数字证书”,数字证书是一个物联网设备的唯一合法标识,拥有数字证书的设备,也就具备了合法性与唯一性。
    另外一个非常重要的问题,是网络链路数据的保密性。我们知道,所有的网络数据在网络空间中随时都有被窃听、抓取的风险,如果物联网设备传输的数据内容包含金融、个人或企业隐私、商业版权信息等重要数据,则方案中数据的保密通信设计尤为重要。在通信过程中,从设备端到云端这个端到端链路上的数据应只传输密文,设备的密钥不应在网络上传输,并且对密钥要妥善保管、定期更新。
    1.png
    青莲云利用LPC55SXX系列芯片的部分安全特性,将设备的身份认证、密钥协商等功能,设计成了TinyTEE中的一个“身份认证TA”(Trusted Application),该TA运行在MCU的安全区域内,为非安全区的CA(Client Application)提供相应的接口。
    用户不用关心实现细节,只要调用相应接口就能实现身份的合法认证、传输数据的加密处理。


    TinyTEE的架构图如下:
    2.png
    2、实践操作


    2.1 Demo说明


    我们提供了一个设备与云端建立连接并传输模拟数据的Demo,可到青莲云的官网下载。
    Demo中的大部分代码都在Non-Secure (非安全)区域执行,而涉及到身份认证、密钥存储、数据加解密、Flash写入等较为敏感的代码和数据,则在 Secure (安全)区域执行和存储。Secure和Non-Secure两个区域之间的调用通过TEE (可信执行环境) 接口完成。


    在Non-Secure区域中,SDK的使用和我们支持的其他平台版本基本一致,具体请参考Demo中的接口文档。使用上的差异主要有以下几点:

    LPC55S69平台上产品密钥存储于Secure区域,数据的加密、解密也都在Secure区域进行,保证了密钥的安全性;

    LPC55S69平台Demo已将OTA功能完整实现,便于用户直接使用;

    LPC55S69需通过外接WiFi模块接入网络,为此SDK增加了对ESP8266 AT固件模块的支持。

    同时,当前版本的SDK在使用时有如下限制:

    Flash和RAM的Secure和Non-Secure区域划分不可更改;

    UART0在Secure初始化,UART2在Non-Secure初始化 ,需要修改对应的权限(本demo中已经修改,详情请使用MCUXpressoConfig Tools 软件配置修改)

    流控配置必须为WIFI_ESP8266_FLOW_CONTROL_TYPE_RTS_ONLY,详情请看初始化代码。

    2.2 Flash和RAM空间划分


    当前版本的SDK对LPC55S69的Flash空间划分如下图所示,Secure区域大小为64KB, Non-Secure区域大小为542KB。
    3.png
    Non-Secure区域中含有当前使用的非安全区固件(称为active固件)、新下载的非安全区固件或备份的升级前旧版本非安全区固件(称为stored固件)、固件信息以及本地存储这4个部分。各部分的起始地址和大小如下表所示:
    4.png
    RAM空间划分如下表所示,Secure区域大小为32KB, Non-Secure区域大小为 = 172KB。(可根据具体情况自行修改)
    5.png
    在使用当前版本SDK时,这些区域的划分都应和Demo项目的默认配置一致。

    2.3 视频演示




    文章出处:恩智浦MCU加油站

    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 10:58 , Processed in 0.111467 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表