请选择 进入手机版 | 继续访问电脑版
电路城论坛交流群:579145816
查看: 104|回复: 1

[电路资料] 分享一款实用的智能门锁数据泄露风险分析及应对方案

[复制链接]

该用户从未签到

发表于 2018-7-26 10:28:04 | 显示全部楼层 |阅读模式
电子门锁是最近很流行的智能设备,它在方便我们生活的同时又带来极大的信息安全隐患,信息一旦被恶意窃取,便会威胁整个家庭的安全。因此如何设计一个安全可靠的智能门锁成为了一个极为重要的问题。本文以智能门锁的应用为例,讲解如何使用切实可行的方法使其具有更高的安全性和可靠性。
一、应用背景

与传统的机械门锁相比,智能门锁解决了用户忘记带钥匙或者不想带钥匙的烦恼,还可以连接网络实现远程开锁和开锁记录查询等功能。用户在享受智能门锁带来的便捷体验的同时,又不免会对智能门锁的安全性提出质疑。毕竟在信息化的时代,电子设备的安全性和保密性往往得不到很好的保证。

二、智能门锁数据泄露风险分析

使用传统机械门锁的时候,只要保证钥匙的安全,就不存在信息泄露风险。而在使用电子锁的时候,用户经常使用的方式就是手机远程解锁、蓝牙解锁等更为便捷的解锁方式。在这种解锁方式的解锁过程中,会伴随着数据产生、传输、使用等环节,任何一个环节都有可能被人恶意窃取数据信息。

使用传统门锁的时候,钥匙丢了用户会第一时间知道并采取措施,而在使用电子锁的时候,就算数据已经被人恶意窃取,用户也可能全然不知。这样就给家庭安全和防盗带来极大隐患。

三、智能门锁的安全设计思路

智能门锁的安全设计思路包括软件设计思路和硬件设计思路,下文将逐一介绍。

3.1  软件数据处理

数据的处理主要分为数据的校验和数据的加密。校验是为了防止门锁关键数据例如密码被人恶意篡改,导致远程无法解锁。加密是为了防止关键数据被人恶意窃取。

经过数据加密处理之后,数据一旦被篡改,控制单元会第一时间得知。数据即使被窃取,也没办法还原真实数据。从而保证远程解锁的时候,所有的环节都是安全的。

3.1.1  数据检验

数据检验可以采用DES加MAC算法的方式。如图1所示。

1.jpg
图1 数据检验信息生成机制

每一个块都是64bit的数据,将数据拆分成多个块进行处理,DES算法就是用一个64bit的Key对一个块的数据进行处理,得到加密块。

MAC算法是在DES的基础上先对报文第一个数据块加密,得到加密块1,接着再拿加密块1与报文第二个数据块进行按位异或,得到加密块2,再用Key对加密块2加密,得到加密块3,同样的处理依次类推。直到最后会得到一个64bit的数据。

将这个数据放到报文的最后发到门锁控制单元,这样报文的长度只增加了64bit,但是数据的正确性得到了很好的保证。

而这个用来参与MAC计算的Key就常被称为MacKey,也可以叫工作密钥。

3.1.2  数据加密

前面提到的MAC算法对传送的报文进行了处理,保证了在传输过程中数据不会在未知的情况下被篡改,但是我们传输的报文都是明文的形式,很容易被截获和解析。因此需要对传输的数据进行加密。如果把整个报文都用DES加密是非常耗时间的,可以只对关键信息例如门锁密钥信息加密,得到一个密文数据块。我们就把这个专门来加密关键信息的Key称为PinKey。

通过PinKey和MacKey对报文进行了两重处理,基本上报文就是安全的了。如果想对加密后的密文解密,必须要知道Key才行,所以说Key一定要保密。前面提到加密都是用明文Key来计算的,所以这个Key就很容易被窃取。因此还要对PinKey和MacKey本身进行加密,可以再用一个Key对PinKey和MacKey进行一次DES加密。用来对PinKey和MacKey进行加密的Key就被称为MasterKey,即主密钥,用来加密其他密钥的密钥。

数据经过上述的处理之后,过程如图2所示。

2.jpg
图2 数据处理过程过程

3.2  硬件数据处理

经过上述处理之后,还存在一个问题,MasterKey是明文。如果再找个Key来加密MasterKey,那最终无论处理多少道,最后的那个Key肯定是明文,这样看来,安全的问题还没有解决。

如果把MasterKey放到硬件里面,基本上就可以排除被恶意窃取的可能性了。因为硬件被破解的可能性极小。

另外,对于密码输入形式的解锁,其中有个环节需要考虑下,输入密码的时候,按照一般的处理机制,键盘每按一下,我就把那个数字在程序里面先存起来,等到4位或6位密码按完后,再把它们合在一起,再送给PinKey加密。那万一黑客程序直接窃取了按键信息,那直接就把输入密码得到了,前面过程中对密码进行的加密处理就变得毫无意义。

如果把获取按键的程序固化进入加密硬件,按键的数字根本不通过上层的软件,直接一步进入硬件里面处理,等到按键按完了后,硬件直接把经过一道处理的按键信息给上层软件,此时已经是密文了,就相当于把前面计算PinBlock的处理移到硬件里面去了,那黑客就没法获取我的按键了。这种处理现在就被称为硬加密。硬加密是一种防止密钥被窃取的有效手段。

通过上述软件加硬件的安全机制处理之后,我们智能门锁的信息安全更有保障了,稳稳地将大部分恶意窃取拒之门外。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


返回顶部