|
1 什么是安全? 在英语中,安全一词有两种不同的定义:Safety, 通常指功能安全 Functional Safety,即保护系统不受那些随机故障的影响,功能安全的失效通常造成对人身和环境的破坏及威胁;另一个 Security,强调信息安全 Information Security,保护资产不受恶意威胁而遭受损失。 在信息安全的框架下,我们提到资产,就是指一切我们认为有价值的对象;我们要保护资产,有安全的考量,说明资产有弱点,也叫漏洞,也就是系统的脆弱性;威胁,就是利用资产的弱点来破坏系统运行的一系列行为,令资产价值损失,让恶意第三方获益。资产、弱点、威胁构成了资产弱点威胁模型。当我们谈信息安全时,首先要甄别需要保护的资产是什么?明确了这一点,才可能针对有风险的系统弱点来制定安全方案、采取安全措施。 根据安全应用的不同,要保护的资产(或者叫属性/property)也有所不同。与STM32应用领域相关的信息安全保护,就是保护完整可靠的数据,仅能被授权访问。 信息安全有三个基本要素:C.I.A,Confidentiality =保密;Integrity =完整;Availability =可用。 保密性,通俗讲就是一般人不可知晓。它的另一层意思就是:只有被授权的主体才知道信息的内容。 完整性,Integrity。信息的完整性,要分成两个方面来理解,狭义的完整, 就是信息本身没有被修改被破坏;广义的完整性,还包括该信息的来源方是可靠的。举个例子,有人盗取了别人的身份证,然后号称这是他。这个身份证本身是完整的,真正的身份证,符合狭义完整性;但这个身份证不是这个人的。这就不具有广义的信息完整性。 可用性,表示被授权的主体,在需要的时候可以访问到信息或者服务。
▲ 信息安全三要素 信息安全有三大工具,标识(Identity)、认证(authentication)和授权(authorization)。标识,用来表明主体的身份,由主体提出,可能是真,可能是假,需要认证;认证,用于核实声称的内容,常用方法有询问你知道的一些事情,你的身份证件,或者你独有的特征;对标识的认证完成后,就要授权该标识所代表的主体可以访问的资源,和可以实施的行为。 那么,问题来了,信息安全的三大工具是如何支持信息安全三要素的?
▲ 信息安全三要素 VS. 工具 机密性,表示信息不能被未授权的主体获得。有主体,就有标识,有标识就需要认证;然后能访问和不能访问,就是授权的不同。 完整性,表示信息被未授权的主体修改后能被立即识别。广义的消息完整性还要保证信息来源的可靠,即主体可靠。那么自然也就需要标志,和认证。 可用性,表示被授权的主体,在需要的时候能够访问到信息。自然也是有主体,就有认证,然后授权他可以使用某种服务或者访问某种资源,比如信息。 2 安全,贯穿产品的整个生命周期 理解安全的定义、信息安全三要素和三大工具后,我们认识到要做好信息安全保护,需要建立安全分析模型,基本思路就是基于对主体的资产弱点威胁分析,列出所有资产,理解相关威胁,思考相关弱点,然后策划对应的保护措施。我们要理解,资产是安全第一关注的对象;认识安全风险来自资产、弱点、威胁的交集;运用安全与资产、弱点、威胁的依赖关系,设计对应的保护措施。 作为开发者,我们一定要建立体系化的安全思维:安全绝不是一个点,它是一个整体概念,不仅是系统上的整体,还是时间跨度上的整体。安全思维需要贯穿产品的整个生命周期,从功能定义,设计,开发,测试;到生产制造、传输,部署,以及使用寿命内的产品维护。 安全分析举例:一个安全的家
3 应该学一点密码学 密码学的应用是基于一个需要保护的场景或者说模型。那么为了通讯安全或者设备安全,我们会采用各种各样的密码,密码的背后是加解密技术。 加解密技术说白了就是变换,加密变换和它的反变换 --- 解密变换。加解密技术也有三个属性,也叫 CIA,保密性,完整性以及可认证性。注意,加解密技术的A是指Authentication,与信息安全三要素CIA中的可用性 A (Availability) 不一样。 加解密技术提供的服务就是传输机密数据(Confidentiality),校验数据完整性(Integrity)和身份认证(Authentication)。我们通过加解密的过程来理解: ▲ 加解密过程
加解密技术确实很难,但我们不去发明算法,也不去尝试攻击和破解现有算法,我们只是去使用它;而且现在很多加解密库已经对上封装的很好,我们只要理解了密码学基本原理,熟悉了加解密库的API接口,就可以比较方便的使用它了。 4 STM32的安全特性
▲ STM32现有安全特性全景图 如上图,STM32安全特性涵盖硬件、软件例程、软件工具,以及用于解决安全生产或者说安全固件烧录的整套服务,SFI(安全固件安装)。 蓝色部分代表硬件,包括存储与执行保护模块、芯片UID、外部监测模块和加解密模块。
灰色部分是软件例程包:
安全固件安装(SFI:Secure Firmware Install)用于解决安全生产或者说安全固件烧录的整套服务,HSM是一个硬件,帮助SFI服务的实施。安装,就是指在空片上烧录初始版本的应用固件,通常发生在产线上。SFI适用于OEM把一批次的STM32和自己开发好的固件给到第三方或者不可信的产线去烧录时,解决OEM对产线安全方面的顾虑;比如,OEM开发的固件会有私密性要求,防止知识产权泄露;另外,OEM可以控制固件烧录的次数,规避品牌资产带来风险。 作为STM32生态系统的一部分,STM32CubeProgrammer和TrustPackageCreator 是学习和操作SBSFU需要用到的软件工具。CubeProgrammer是STLINKUtility的继承者,主要用来烧写、读取、擦除STM32片上闪存以及选项字节;TrustPackageCreator专门服务于安全应用,SBSFU和SFI都会用到,TrustPackageCreator没有单独的下载包,它的GUI和命令行版本的程序,都是在CubeProgrammer的安装目录下。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版