文章分类

云丁科技首席架构师叶云:智能门锁,让居住更安全

由 九三 于 2018-12-06 20:11:35 发表

我们带来的第五个重磅内容,来自云丁科技首席架构师叶云带来的——《智能门锁,让居住更安全》


现如今越来越多的家庭都开始选用智能门锁,其中绝大部分用户应该是被它便捷的指纹开锁方式吸引,可以不带钥匙了。但今年的「小黑盒」事件将智能门锁的安全问题推到舆论的风口浪尖,大家开始质疑智能门锁的安全性相对传统机械锁大打折扣。今天,来自小米爆款门锁鹿客品牌的首席架构师叶云,来给我们分享锁具制造商角度的安全考量,到底什么样的智能锁是靠谱的。

38a1dd7bca78ec572eb0ac8c2133c9c3


在过去的几年里,我们在门锁的安全技术上应该说有了一定的实践,我列出了我总结的几个基本原则,他们会有形无形的影响到我们整个产品功能的设计,以及我们的技术方案的实现。

6d78163be56f59a90fdba9da3935a35d


第一个,近程高于远程。这里的远程是通过我们的服务器下发给门锁一个指令进行控制。近程指的是在地理位置上,我们离这个门锁很近,通过门锁本地的交互或者通过蓝牙近场的交互去控制门锁。

第二个,技术高于流程,我相信做技术的都有这个领悟。我们的云端不会存储用户的密码,其实相信与否我们并不是很在意,而我们关心的是这种做法会给我们的安全带来多大的提升。

第三个,第三方不可信,这里的主语是我们的门锁用户。对于用户来说,即使你云端不存储密码,但是你密码要经过云端下发,不相信你的运营商、我不相信你的后台。所以说我们就提到了一个端到端的解决方案,过后我会单独去讲这个方案。

最后一个,影响隔离,这是非常非常核心的一点。因为我们如果黑客去破解一把锁的话,他往往需要破坏这把锁,或者说取得用户手机的高权限才能做到。所以说对于这把锁的危险来说,我觉得它是不大的,是可控的。但是,我们担心的是这把锁被破解以后,影响到其他的锁。这一点非常重要,我觉得做IoT的应该都要遵守「一机一密」这个原则。


我把门锁的安全主要分成四大块:

机械电子

云和数据

通信

d05c5bbd765e539b7fc45f05def4b9ff


接下来我来详细的解读这几点。首先是机械这一块,在智能锁的概念出来之前,我们就有机械以及电子门锁在这个市场上的经验。国家层面对于机械电子锁是有相应的标准的,我们的锁首先是一个机械锁,然后再添加了智能部分,所以说它首先要满足我们国家已有的这部分的标准。比如锁芯的等级,还有锁体的等级,都是公安部规定的最高等级。

第二点,对于我们外部密码按键部分我们会做足够的防护。电子锁的开锁方式都是通过离合,我们在离合的接口应该放到锁体内部,而不是前面的面板体里面。还需要做防拆报警,智能锁区别于以前的锁,它有个重要的特点就是联网,所以它能够实时监控锁的状态,远程给我们发出一些警报。


电子安全,比如我们的密码键盘与我们主控的通信,不应该是简单的一些开锁指令,应该是直接传到设备后端进行开锁。指纹识别也非常重要,通常做法都是厂商通过指纹的模组传递一个正确的信号过来,这是非常不安全的,我们应该按照模组和指控之间加密的协议去做这个事情。

f6002c01f748cc276c388be84578d736


系统安全也是列了几个点,第一,我们在协议里面加密的部分需要通过随机数的方式去增加破解的难度。对于本地的锁里面存储的关键数据操作,我们在删除的时候应该把整个存储区域进行一个全覆盖的写入,而不是我就把系统的索引或者结构给删除。设备质检,我们的设备每次重启的时候,会去读取它需要的运行数据,包括我们的密码等等,我们存储的时候会对数据进行一个签名的校验,当启动的时候会校验这个数据是否被篡改。包括我们对外设也会有安全性的检查。最后一点,密码以及生物特征等等关键信息的存储都应该一是加密的存储。在我们做比对的时候也是会做一个加密的比对。


通信部分首先是入网的身份认证,需要后台参与去校验实体的合法化。大部分的网络层都支持加密的协议,我们要把它打开。下面两个具体的点,我们该用的ZigBee3.0以上的协议,并采用Install Code方式入网。蓝牙不应该保持长连接,如果没有通信的话,可以把它断开,这样可以防止一些恶意的攻击让你的锁没办法开门。最后一点非常关键,无论我采用什么样的协议,也包括网络上的,我们在应用层一定要加二次的数据加密。

OTA的安全非常重要,需要做到两点:对固件要做完整性的校验,以及签名的认证。我们在升级和重启校验的时候也会做这个事情。这个是我们加签和解签的认证,在设备端的算法经过了不少的调研,最后我们采用了目前这个算法。最后讲一下2of3,就是说我们的签名是由三个不同的管理员进行管理,我们在设备上校签的时候,只要三个签名其中有两个签名通过以后,才能进行升级。

端到端安全对于用户来说手机跟门锁是他的财产,他拿在手上就是信任的。但是当手机给门锁下指令,比如下发密码要经过你的网络,经过云丁的后台再到门锁上。中间其余所有的部分,用户都是不相信的,中间商不赚差价这是一个伪命题。我们的做法端到端安全,首先端是指门锁端,数据从手机原点到我们的门锁传输过程中始终是密文形式,我们的门锁只会执行信任手机给它的指令,当然它们在一开始的握手可能是需要我们后台参与的,去做一个身份的认证。

ebaea2008284ce807c142f80cc2d336b


单独说一下小黑盒事件,它的原理是这样的,通过小黑盒产生的强电磁场去干扰门锁内部的电路,产生电流以后驱动电机去开锁。或者有些门锁的芯片被干扰抛出异常导致重启,重启的时候它的逻辑没做好会直接进行开锁。最简单的办法就是做电磁防护。但这种方式本质上并没有解决问题,所以我们还要做的彻底一些。第一个是我们电机的驱动方式不应该是一个简单的电平驱动,而是应该有数据协议在里面。第二个,我们对重启异常逻辑的控制,除了这种重启异常,还包括我们在通信过程中接收到的这种异常的指令、无效的指令,这些异常的指令我们也要覆盖到。

d9eb92cba936033002a60881f7f341bb


下面是一些个人对门锁行业的建议:

第一就是我们所有的厂商都应该去重视安全这个事情,安全非常重要,出现一次事故关系到非常多用户的正常生活。

第二个是标准,智能门的标准还没有推出来,我们国家的政府机构和各大平台都在做推进标准的这件事情,我们云丁也在非常努力地加入这件事情。

第三个是因为我们做几年锁下来,我们接触了不少的安全团队,安全公司。但是我们会发现一个问题,现在的安全公司对 IoT 的投入还是比较前期的,这可能跟IoT本身的特性有关,这是因为每个方案都是不一样的,case by case,没有一个通用的解决方案,所以说安全公司在做产品的时候会顾虑到这一点,投入产出怎么评估,所以也希望相关的平台公司能够更多地投入做这件事情。


PPT下载链接:https://cnbj1.fds.api.xiaomi.com/src/xiaomi-IoT-security-conference/%E6%99%BA%E8%83%BD%E9%97%A8%E9%94%81%EF%BC%8C%E8%AE%A9%E5%B1%85%E4%BD%8F%E6%9B%B4%E5%AE%89%E5%85%A8-%E5%8F%B6%E4%BA%91.pdf