概述:本文主要介绍嵌入式安全相关的概念,基于ARM TrustZone技术进行说明,以手机应用为主要场景进行讲解
首先问一个简单的问题:我们使用的手机密码/指纹/人脸数据是存放在哪里?
对于现在各种智能产品了解的人都知道一个完整的产品包含了CPU,DDR,FLASH及其它各种外围器件或接口。CPU无法保存数据,DDR断电数据即丢失,只有FLASH是非易失性器件,可以持久的保存数据,那肯定是存在eMMC里了。
好,知道了这一点,那么接下来再问:如何保证密码的安全?
稍微学过密码学的人都会第一时间想到,当然是对密码进行加密了,明文存放肯定不安全了。可是,把密码进行加密存入就安全了吗?讲到这里,我们需要对开机输入密码进行校对的流程做一个了解。通常的流程是这样:
设定密码:
当开机时:
这里需要细化一下保存密码和读取密码的过程。当我们设置密码后,我们的密码会以加密的形式保存。那么问题来了,是使用什么样的方式加密吗?密钥从哪里来呢?密钥的存放是否安全呢?接下来我们一步一步的分析。