您的位置:主页 > 蓝狮在线资讯 >

蓝狮在线资讯

STM32安全技术导论之一:智能锁的安全分析

  为什么要从智能锁谈安全技术? 安全又是”神马”意思?似乎每个人都觉得心里懂,但又无法准确的给它下个定义。

  在英语中,安全一词有两种不同的定义:Safety, 强调内在,强调系统本身的故障;另一个Security,强调外在的威胁,强调在有恶意的威胁情况下,如何防护有价值的资产。我们现在常用功能安全 Functional Safety和信息安全 Information Security来对标国际用法;功能安全指保护系统不受那些随机故障或者系统设计缺陷的影响,信息安全则对标国际上保护系统不受恶意威胁而受损失。

  功能安全的重要性其实是不言而喻。但在物联网领域,我们更看重Security, 即信息安全。还记得之前的讨论,信息安全强调的是是否有外在的威胁, 是否是故意而为之。那么信息安全重要吗?信息安全是否重要,取决于实际的需求,资产多重要,风险有多高,决定我们是否要采用相应的措施的保障信息安全。

  一就是保密性,即该你知道,你可以知道;不该 你知道,就不让你知道。二是完整性,即真实可靠,信息没有被修改,信息没有被假冒。三是可用性,我们总是可以可以访问这个信息,需要时可以用到。英文中这三个属性的缩写,保密是 C, 完整是 I, 可用是 A, 连在一起 即C.I.A.

  我们要讨论学习的信息安全,实质上就是一种保护能力,避免系统在恶意的攻击下造成资产的损失。

  智能锁不同于传统的机械锁具,带有芯片进行控制。从结构上,一般智能锁包括机械部分、主控芯片、电机单元、通信模组以及各种各样的传感器。从开锁方式上,智能锁支持多种开锁方式,密码开锁、蓝牙开锁、NFC 开锁(包括使用智能卡,手机,身份证等),还有使用生物特征开锁,指纹、掌静脉、虹膜、人脸。从连接方式上,智能锁一般不再是一个孤立的存在,一般通过蓝牙、WiFi 或者其他窄带通信技术连接到云端。从安全上看,智能锁大都带有异常监控和日志的功能,能够提高日常的安全性。

  如何分析一类智能锁所需要采用的安全技术呢? 这里已有一个非常成熟的模型,叫资 产、弱点、威胁模型或者叫资产、漏洞、威胁模型。

  信息安全里资产是指一切我们认为有价值的对象;弱点,也叫漏洞,也就是系统的脆弱性;威胁,就是利用系统弱点让资产价值损失的行为,让恶意第三方获得利益的行为。

  如果没有需要保护的资产,则漏洞加威胁,构不成风险,就不需要制定安全措施。所以当我们谈安全时,首先要甄别的时需要保护的资产是什么。

  资产弱点威胁模型告诉我们,所有的安全方案应该只是针对有风险的系统的弱点来克服系统的漏洞。

  回到智能锁这个案例,有哪些是需要保护的资产?从锁的用户角度看,第一重要的价值是锁的访问权。对于智能锁,保护的对象的具体形式又是什么?开锁还是关锁的本质是一个电机的转动。简单的设计可能就是,电机在 MCU 信号驱动下,向左转,锁就开了;电机在 MCU 信号控制下向右转,锁就关了。那么,MCU 在什么条件发出这个信号,这个条件和判断的过程都是安全要保护的内容。

  密码开锁,则要检测这个密码是不是合法,密码合法的情况下,则发出这个开锁信号。所 以这个密码就是具体的资产。 如果是身份证、智能卡开锁,那么身份证、智能卡的身份标识信息可看成是密码,要检查系统该密码是否已得到过授权。如果是远程开锁,一般设计一些指令,这些指令会携带用户身份,用户身份得到校验后,锁才会打开。进一步说,如何校验用户身份,就需要使用加解密技术,对称密钥,非对称密钥的技术。

  对于智能锁,有哪些是可能系统的弱点。辨别系统的脆弱性一个方法,就是系统分解, 从功能上分解,从生命周期上分解。 例如我们将系统分解成不同的模块,就可以看到存在其中的弱点。

  例如联网,在带来便捷的同时,也带来远程威胁,比如远程开锁;例如软件以及通讯协议的设计,如果软件有 Bug, 那么也很容易被远程利用;再例如锁的机械设计,比如开锁是通过简单的电机转动完成的,那么从理论上就有一种方法,绕过 MCU, 也就是绕过所有信息安全的防护,直接给电机一个转动信号呢,会发生什么呢? 等等,不一而足。

  恶意的人如何将威胁具体化形成实际的攻击方式呢? 如何破解带芯片的系统?一般有两大类,软件攻击和物理攻击。物理攻击又分为三大类,就是按照对系统的破坏程度来区分,非侵入式攻击、半侵入式攻击、开盖攻击。这三个分类,成本依次增加。软件攻击或者说逻辑攻击,就是抓住你系统的中漏洞或者弱点,来攻破这个系统。