安全子系统 | 学习笔记

简介: 快速学习安全子系统

开发者学堂课程【YoC 基础软件平台应用介绍:安全子系统 】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/59/detail/1081



安全子系统

 

内容介绍

一、芯片安全体系(从架构级别介绍yoC子系统的全貌)

二、多层次安全(介绍不同安全机制下的安全实现)

三、芯片安全对接

四、芯片安全生产(三四从芯片winder的角度介绍yoC芯片平台的对接以及生产)

五、安全启动

六、安全组件(五六介绍安全子系统的实现)

七、安全应用开发(从安全应用开发者的角度讲解yoC安全子系统的应用场景下的使用)

 

YoC安全子系统是是YoC基础软件平台的一部分,也体现了YoC基础软件平台的端云一体、软件协同安全子系统的一些特点

 

一、芯片安全体系

11.png

如图,左边是安全云服务,右边是芯片安全体系。左右两部分构成了芯片安全体系的多云结合的部分。

右边芯片安全体系部分是芯片安全体系的端侧,自底向上分为安全硬件、安全组件、安全应用。这一部分就对应了yoC安全体系的软硬结合的特点。

芯片安全体系左侧的端侧我们依次是安全硬件,安全硬件包括常见的MPU、TEE、SE以及一些安全算法的ip,如AES、HASH、TRNG以及国民算法的SM2、SM3、SM4,非对称算法的RSA、ECC等。其中信任跟eFuse,或者OTP模块。

上层的安全组件主要包含四个部分,一部分是SEC_CRYPTO,这部分提供了基本算法的一些抽象;第二部分是MBEDTLS,这部分提供了安全子系统的安全通信能力;第三部分是KEY_MGR,是安全子系统的管理部分;第四部分比较重要是TEE安全组件,实现了TEE可信任的安全执行环境。

最上层是安全应用,包括安全的上层业务的一些使用场景。如安全启动、安全存储、安全升级、安全联网、身份认证、安全调试、安全接入、安全通信、身份识别以及安全生命周期管理等

左边的安全云服务是loT芯片安全体系对接云服务常用的云测业务平台,比如阿里云的loT平台、阿里云的Link TSM平台、OCC开放社区以及OTA在线升级等

 

二、多层次安全

12.png

多层次安全的特点是提供了可配置的多种安全机制,因为当前loT的安全业务场景以及安全需求,有一个碎片化的特点。针对碎片化yoC安全子系统设计了从无安全到安全子系统,四个安全级别。从左到右可以看到安全系统是逐渐提高的。

首先,无安全机制。顾名思义就是在yoC系统里没有安全防护,一般来说会是裸系统。还有一种特殊的场景是可能是厂商在开发loT应用的时候首先更关心于基本功能的开发,可能安全功能没有打开,在这种场景下也是可以应用无安全机制的。

随着安全机制的增高,下一级别是MPU安全机制。是比较传统,也是比较低成本的一种解决方案。在系统硬件上可能只存在MPU,通过设置代码段的一些安全属性。可以防止最基本的代码段的泄露以及保护,此时用到的安全算法库一般是纯软件的实验方法

下一级安全机制是TEE安全机制,提供了可信执行环境,也就是为可信应用提供了可信的执行上下文,避免执行过程中的信息泄露;虚拟安全隔离是指通过虚拟安全核提供一个虚拟的安全隔离,为安全应用、安全信息等与TEE端进行安全隔离;安全IP硬件保护指的是在有IP硬件保护的平台,通过TEE的安全配置对安全IP进行保护,常见的安全IP指的是安全算法ip、高安全级别的配置ip、地址空间隔离等;Flash安全区域保护指的是通过TEE的安全机制可以将Flash划分为安全区域以及非安全区域,在TEE中是可以访问Flash安全区域以及非安全区域,在非TEE环境下可以访问Flash的非安全区域;硬件安全算法是TEE安全机制以及各安全机制的基本模块,它提供了算法库功能,这里指的是安全算法库是基于硬件IP实践的

下一级安全机制是安全子系统安全机制,是一般比较常见的最高级别的安全机制。安全子系统提供了硬件安全子系统,这个硬件安全子系统一般指的是完整的执行环境;物理安全隔离指的是安全子系统与非安全子系统之间可以通过安全通道如IPC等进行访问,可以更好的进行安全控制;独立的安全存储指的是安全子系统会有自己独立的安全存储模块,如安全Flash或其他安全存储设备;硬件安全算法同TEE安全机制一样,指的是基于硬件IP的安全算法库;安全可信根指的是安全子系统一般有独立的ifuse或者odp等基础器件

 

三、芯片安全对接

13.png是从芯片厂商的角度看yoC系统的安全移植,现在厂商会提供像AES、HASH、TRNG、RSA、ECC、SM2、SM3、SM4、eFuse等基础IP,厂商提供这些IP通过封装CSI安全接口向上暴露出相应的IP接口,如图橙色框所示。

芯片安全框的主要特点有三个

1.适配不同芯片规格,指的是芯片的硬件平台可以有部分或者全部的安全IP,比如有AES或没有AES,有HASH或没有HASH

2.安全能力可配置,指的是芯片平台对接软件后可以进行再次的配置。如作为一个子系统,我们可以提供AM算法,也可以不提供。这些都是可以通过软件级别来控制的

3.一致的CSI安全接口,是指各芯片平台通过对接安全部的CSI接口,可以一致的提供向上服务,如OS层、组件层等。提供抽象硬件的基础平台能力

 

四、芯片安全生产

14.png是从芯片开发的角度举了一个秘钥安全导入的场景,指的是IOC平台对接OCC云端服务,有两个子场景,左边的第一个子场景是秘钥的云端OCC生成,然后通过生产工具导入到设备,这个设备的信息是通过KP的格式导入的;第二个场景是当IOT的设备不接入云端时,秘钥可以在本地生成,然后通过生产工具导入到设备中,同样用的也是KP的格式

 

五、安全启动

15.png这个场景是从BootRom到BootLoader到TEE到系统镜像,这是一个典型的安全启动的流程

BootRom是固化在芯片中的一段Rom区域,BootRom加载BootLoader

BootLoader加载并验证后级的两个系统,包括TEE及系统镜像。当BootLoader跳转到TEE时,TEE会进行TEE环境的数值化,以及一些下级跳转等

最后一级是系统镜像,也是主系统

 

六、安全组件

16.png

yoC中的安全组件主要有四个

第一个是SET_CRYPTO提供了基本的算法能力,算法组件包括摘要算法、对称算法、真随机数、非对称算法等。一个安全平台的基础算法库最基础的是包含随机数、摘要算法、对称算法、非对称算法。通过SET_CRYPTO的算法组件抽象可以适配到上面提到的几种安全机制,对上层提供一致的接口

TEE组件,TEE安全机制的主要功能就是有TEE组件来提供的。包括安全设备保护、Flash安全区域保护、CA/TA、GP Client接口、eFuse信任根、安全算法库等

MBEDTLS组件,提供了安全联网的能力,是一个开源组件。提供的功能主要分为两部分,一部分是SSL/TLS的协议栈还有一个是安全算法库,链接如图

最后一个是秘钥管理组件,提供了秘钥获取、秘钥导入、秘钥导出、秘钥销毁以及安全信息获取等。秘钥的获取会为BootLoader TEE提供秘钥的获取能力,秘钥导入导出以及销毁以及安全信息获取也是安全系统中常见的功能

 

七、安全应用开发

17.png主要是从安全应用开发者的角度,来看yoC安全子系统

第一个特征是组件化安全接口,从安全应用的角度整个安全子系统提供的是上面讲到的四个安全组件,四个安全组件的接口是相对固定的,为开发者屏蔽了下层平台的变化

第二个特点是提供了完整的安全协议栈,如图所示完整的安全协议栈指的是SSL/TLS、MQTT、COAP、BLE、LoRa、Aliyun Living等常见的联网组件,集成了安全能力。对上层的开发者来说,不用关心底层的复杂性,可以通过直接调用安全协议栈来实现相应的业务功能

最后,无感安全应用开发。指的是上层的应用开发者,通过调用上面说的安全协议栈,不用考虑下层芯片平台的实现以及上面提到的各种安全机制的不同,可以方便的进行应用的开发以及快速推向市场

相关文章
|
7月前
|
传感器 安全 网络安全
《边缘安全深耕:零信任落地全维度解析》
本文聚焦制造业边缘设备安全痛点,结合实际项目实践,阐述零信任架构的落地路径与实战经验。制造业边缘环境存在设备身份管理缺失、权限控制粗放、通信安全漏洞等核心问题,传统防护难以适配异构互联、高连续性需求的场景。文章提出“身份锚定-动态授权-通信加密”三位一体方案,通过设备身份治理、权限体系重构、端到端加密筑牢安全基础,搭配“流量基线+行为建模”威胁检测策略及兼容性优化方案,解决老旧设备改造、误报率控制等实操难题。
382 0
|
运维 监控 安全
安全运维:入侵检测与防御实战指南
安全运维:入侵检测与防御实战指南 【10月更文挑战第9天】
904 3
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1813 1
一文搞懂Go读写Excel文件
一文搞懂Go读写Excel文件
|
Python
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
498 1
|
存储 机器人
ROS2教程 07 参数Param
本文是关于ROS2(机器人操作系统2)中参数(Parameter)机制的教程,介绍了ROS2中参数的使用和管理,包括列出、获取、设置、删除参数,以及如何通过命令行和launch文件在启动节点时配置参数,并通过示例代码展示了如何在ROS2节点中声明和使用参数。
1223 1
|
安全 数据可视化 Java
BurpSuite
BurpSuite
1606 7
|
算法 Linux API
一文聊聊Linux Kernel的加密子系统【Crypto Subsystem】
一文聊聊Linux Kernel的加密子系统【Crypto Subsystem】
1611 1
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
存储 边缘计算 安全
边缘计算中的数据安全与隐私保护:挑战与应对策略
边缘计算中的数据安全与隐私保护:挑战与应对策略
1306 0

热门文章

最新文章