生态系统

功能安全 云连接 信息安全 电机控制

信息安全(一)

信息安全的概览和方法论




STM32信息安全概览

STM32信息安全硬件特性

信息安全(二)密码学基本原理(上)



大家好,欢迎大家观看 STM32信息安全(一):信息安全的概念和方法论

在开始本期的具体内容之前,我先给大家介绍一下STM32信息安全讲座的总体结构。



这个系列的讲座主要给大家介绍STM32的安全特性,软硬件资源。其中部分硬件IP和软件包里某些功能的实现,是基于密码学原理的,所以在介绍具体STM32的安全之前,我会先给大家回顾一遍这部分的理论知识。



现在进入这一期的正式内容。在这里,我们会了解到:什么是安全,安全有哪些属性或者要素,哪些措施可以来保证这些要素。安全不是一个点,它是一个整体概念,不仅是系统上的整体,还是时间跨度上的整体。




安全的定义




安全(security)的定义,就是保护【资产】不受破坏。【资产】,一定是有价值的东西,否则没人会有兴趣去破坏它来获利。当然,这里所有讨论的前提是基于一个普世的经济学原理,那就是,一切人类活动基于理智,为了利益最大化。那种杀敌一百自损三千的事情,不在今天讨论的这个security范畴。   有安全的考虑,说明这个【资产】一定有它的弱点。其实世界上一切事物都有弱点,尤其是当它的价值足够引入瞩目的时候,它的弱点就会迅速被挖掘、识别、发现和利用。


资产有多种形式,可以是数字资产比如软件,比如歌曲创造;物理资产比较好理解,我的车,手表;商业资产包括品牌等。

弱点可以是系统中的某个部分,它的缺陷被利用起来,以干扰系统正常运行,从而获取或者破坏资产。

这个系统里的弱点部分可以是静态的某个模块的问题,或者整体架构的不足;也可以是时间上,比如流程上某个环节。

威胁,就是利用资产的弱点来破坏系统运行的一系列行为。


安全是一个在生活中方方面面都存在的问题。从保护消费者个人信息不泄露、到保护工业设备不受攻击,甚至军队、国防,国计民生各个领域。To narrow down,我们今天要讨论的具体内容,是和STM32应用领域相关的【信息安全】的保护,即:保护完整可靠的数据,仅能被授权访问。


另外再提一下,我们今天用中文【安全】二字表达的Security,大家不要和Safety搞混。Safety在中文里也通常用【安全】来表达。为了避免混淆,我们分别加上【信息】和【功能】两个限定词,用【信息安全】来表示security;用【功能安全】来表示safety。前者是今天的讨论主题,它通常是要防止人为恶意的攻击;而后者更多是随机的系统出错后的识别和止损。


//

消费者个人信息 - 健康状态、位置、账户、密码,

产品或者方案 – 服务,软件、品牌、流程、IP,…

工作场所 – 医疗器具、生产设备、交通工具,




安全三要素


根据安全应用的不同,要保护的【资产】的要素(或者叫属性/property)也有所不同。


信息安全有三个基本要素:C.I.A, Confidentiality:保密,Integrity:完整,Availability:可用。



保密性,很容易理解,通俗讲就是一般人不可知晓。它的另一层意思就是:只有被授权的主体才知道信息的内容。


完整性,Integrity。英文中integrity用来形容人的时候,是“正直”的意思,说明这个人的人品没有污点,在“人之初性本善” 的基础上没有被破坏。

信息的完整性,要分成两个方面来理解,狭义的完整, 就是信息本身没有被修改被破坏;广义的完整性,还包括该信息的来源方是可靠的。举个例子,有人盗取了别人的身份证,然后号称这是他。这个身份证本身是完整的,真正的身份证,符合狭义完整性;但这个身份证不是这个人的。这就不具有广义的信息完整性。


可用性,表示被授权的主体,在需要的时候可以访问到信息或者服务,而不会发生DOS-Deny of Service这样的情况。


信息安全的三要素是很有用的,在讨论系统安全的时候,我们都要想一想:需要实现哪个要素的服务? 不同的案例,侧重点怎么样? 再进一步,STM32的安全硬件模块,它的硬件防护到底cover的是信息安全里的哪个要素? 


比如,大家最熟知的读保护RDP。大家可以想一想。属于权限控制,都是广义的C



我们举一个生活中例子,帮助大家理解和接受 C. I. A的概念。



我们要保护家里的资产,比如电视、洗衣机、冰箱等家具。

第一个措施,封上门窗。那么机密性可以满足了,即不被授权的人进不去。完整性也可以满足,里面家具不会被改变。但是可用性就不行了,被授权的人,比如房屋的主人,也进不去。

第二个措施,不是粗暴地封上门窗,而是给门窗加锁。把钥匙给到授权的人。那么不被授权的人没有钥匙,就无法进入。机密性是可以满足的;被授权的人,即有钥匙的人可以随时进入,可用性也是满足的。但是授权的人进入后,移动了家具的位置,我们是不能马上知道的。因此完整性没有得到满足。

第三个措施,不仅给门窗加锁,还在屋里安装监控。这样家里的东西本拿走或者被移动,我们马上就可以知道了。因此第三个措施,能同时保证机密性、完整性,和可用性。




安全三大工具


【信息安全】的三要素的定义,都提到了授权。机密性,并不代表谁都看不了,是【被授权】的人才能看。完整性,不是说信息不能被修改,是如果被【未被授权】的人修改了要能被接收方发现。可用性,更是建立在授权的基础上,不是谁都可以用,只有【被授权】的人才可以用。由此可见,【授权】在信息安全技术里是个重要的工具。




下面我们就来看看信息安全技术中的三大工具。

信息安全的三大工具,除了刚才多次提到的【授权】,还有另外两个,分别是【标志】和【认证】。




标识,Identity,顾名思义,用来表明主体的身份;这个是主体自己声称的,可能是真的,也可能是假的。

>>比如现在我说我是Lilian在跟你们讲课,但是我们都在线上,并没有见面,你们如何知道我真的是Lilian呢。


这就需要下一步的工具:认证,authentication,来核实“我声称我是lilian这件事” 。可以有很多方法,

>> 比如主持人是一个权威机构,主持人通过他的方式,比如他就坐在我旁边,而且他认识我,那么你们通过和主持人的沟通,确定我,现在讲课的这位女士就是Lilian。或者主持人不和我在一起,但是他事先只给我了进入这个会议作为trainer的密码,那么我现在成功登陆进入到系统里,他就可以确认我是Lilian。


对标识的认证完成后,就要授权该标识所代表的主体可以做什么,不可以做什么。

>> 你们确认了我的身份,对我做一些授权,比如允许我远程操作你们的电脑,查看你们的屏幕;甚至允许我打开摄像头,查看你们的手上板子的运行情况。



我们来看一下,【信息安全】的三大工具,是如何支持【信息安全】的三要素的。



机密性,表示信息不能被未授权的主体获得。有主体,就有标志,有标志就需要认证;然后能访问和不能访问,就是授权的不同。


完整性,表示信息被未授权的主体修改后能被立即识别。广义的消息完整性还要保证信息来源的可靠,即主体可靠。那么自然也就需要标志,和认证。


可用性,表示被授权的主体,在需要的时候能够访问到信息。自然也是有主体,就有认证,然后授权他可以使用某种服务或者访问某种资源,比如信息。




安全分析


了解了信息安全的三要素和三大工具后,接下来,我们从系统的角度来看一下安全分析的模型。



资产是指一切我们认为有价值的对象。


威胁,就是利用系统弱点让资产价值损失的行为,让恶意第三方获得利益的行为。如果第三方觉得不能获利,或者获利的大小抵消不了攻击的成本,那么这个威胁也就不存在。


弱点,是系统能够被外界非法利用的功能。这个弱点不一定是功能没做好;但系统没实现好,肯定是弱点。事实上,与安全相联系的弱点那是太多了。有些时候你觉得匪夷所思,那是因为攻击者,他们是从来不走寻常路。比如你觉得电磁场,觉得跟安全没啥关系。但是电磁场可以泄露信息阿,电磁场也可以扰乱系统啊。从这个角度,我们能很容易的理解:安全是一个整体。


从该模型可以看出,加入安全芯片并不能解决所有问题,因为一些资产依然存在于STM32中。

同样,从该模型可以看出,必要时可采用两颗STM32,其中一颗只运行确定不变的代码,来达到更好的安全效果。


识别安全服务,需要做安全分析。而做安全分析,第一个要搞清楚的问题就是安全保护的对象,资产。如果别人和你谈安全,你就要问他要保护的资产是什么。没有什么好保护的,那就不用谈安全了。安全毕竟也是要花成本的。 谈好了要保护的对象,再提他们需要什么样的安全服务,不要一下子就跳到一个AES算法。也许在方向上就错了。


同时系统需要保护的资产可能有多个。




为了帮助大家理解这个模型,我们先举一个生活中的例子。




我们生活中具有重要价值的东西很多,比如我的珠宝、我的房子、我的汽车,还有人本身,都是【资产】,就是图中左边第一列。


这些资产并不是坚不可摧的,在很多条件下,它们会遭受各种不同的威胁,这些条件就是我们生活中的一些具有弱点性质的场景。比如如果我们不在,火灾发生了,可以毁坏房子,房子里的珠宝,汽车和住在里面的人。对应这样的风险,我们可以安装室内消防措施,比如烟雾探测器和防火水泵系统。


珠宝,除了有被火烧毁的风险,还可能遭到小偷的威胁。尤其是我们不在家,或者家里门窗被破坏这样的条件下。对应的保护措施可以是把珠宝存在银行,或者安装更加加固的金属防盗门。


使用安全分析模型的基本思路就是:列出所有资产,理解相关威胁,思考相关弱点,然后策划对应的保护措施。



安全不是一个点,它是一个整体概念,不仅是系统上的整体,还是时间跨度上的整体。安全的思想,应该贯穿产品的整个生命周期,从功能定义,设计,开发,测试;到生产制造、传输,部署,以及使用寿命内的产品维护。



还是刚才举的那个生活中的例子。从威胁分析,我们得知,纵火、小偷、泳池溺水都是对我们要保护的资产的威胁。这是在设计一个安全的家,这个方案的功能定义时,就明确识别出来的。之后的方案设计,我们根据不同的威胁场景规划了不同的保护措施,比如安装消防系统,防盗系统。安装完毕,需要测试系统工作正常;把这个方案交付给客户时,要给出合适的文档,包括各种系统的使用手册,可靠性证明等。这些系统工作的未来十年或更长时间内,还要考虑到产品的维护,功能升级等问题。比如升级摄像系统功能,增加夜视功能,人脸识别等。




综上所述,使用安全分析模型进行产品的定义和设计,识别要保护的对象、系统的弱点和对应的保护措施;然后在产品开发阶段,利用STM32丰富的安全特性,和安全软件包,来构筑强壮的系统。在随后的产品生产,部署后的产品升级,STM32也都提供了相应的方案。在后面的内容,我们会一一展开。




本期回顾



安全的概念,我们首先要区分【信息安全】与【功能安全】,两个完全不同的话题,虽然在中文里都是安全二字。理解信息安全三个要素:CIA,保密,完整与可用,和支持信息安全的三大工具:IAA,标识、认证、授权。


在系统安全分析中,我们要理解,资产是安全第一关注的对象;理解,安全风险来自资产、弱点、威胁的交集;运用安全与资产、弱点、威胁的依赖关系,设计对应的保护措施。


并且,最重要的一点:安全是一个系统的设计和部署,它的安全性取决于整个系统中所有环节里的最短板,必须通盘考虑。不是一个加密算法,一个安全芯片就可以简单解决的。