包含如下具体流程:
[0040]①.Android指纹识别程序会申请一块充足的内存空间,用于存放要传递给安全操作系统的指纹图像数据的密文、指纹识别操作的请求标识FP_STORAGE和指纹特征密文存储结果,将此段内存空间的物理地址和请求标识存入相应寄存器;
[0041]②.执行SMC指令,陷入到监视器环境。此时监视器程序会读取相应寄存器的值来判断本次监视器程序的执行是否是因为Android请求调用安全服务,若验证通过则将非安全环境的服务请求标识FP_STORAGE,存入相应寄存器中,供安全操作系统访问,同时协处理器会保存当前Android的上下文以及恢复即将所切换到安全环境的上下文;
[0042]步骤103:指纹特征的安全存储。隔离空间区域上运行的指纹识别服务安全进程,首先通过内部的加解密模块解密获得的指纹密文数据,之后依次调用指纹数据预处理模块、安全存储模块,完成指纹特征模板库的制作,将用户指纹特征注册到指纹特征模板库中,用于用户的指纹匹配操作;
[0043]本步骤所包含如下具体流程:
[0044]①.安全操作系统的指纹识别服务安全进程利用其内部加解密模块112,借助于对称加密算法用共享密钥对指纹密文数据进行解密处理,以获取步骤101中去头后的实际指纹图像数据信息;
[0045]②.安全操作系统的指纹识别服务安全进程中指纹数据预处理模块113对实际的指纹图像数据依次进行平滑降噪、图像场计算、前景分割、定向滤波、二值化、细化、提取特征值等预处理操作,最终成功获得用户的指纹特征;
[0046]③.安全操作系统的指纹识别服务安全进程首先会利用加解密模块112内的RSA-2048公钥,使用非对称加密算法对流程②中所提取到的指纹特征值进行内部加密处理,之后会将内部加密后的指纹特征密文通过安全存储模块117存储到运行在空间隔离的安全操作系统的文件系统上,将累计执行多次的指纹注册操作的采集并处理后得到的用户的指纹特征,执行相同的加密存储操作,从而在安全操作系统内部构成了针对指纹识别安全服务的指纹特征模板库115 ;
[0047]④.将指纹模板安全存储成功后的结果写入到Android指纹识别程序开辟的内存空间上,并设置相应寄存器的标识值,执行特定的指令陷入到监视器环境;
[0048]⑤.读取流程④中的寄存器标识值,确定当前监视器模式由安全环境切换而来,再通过协处理器保存安全操作系统的上下文并恢复之前Android的上下文,最终将注册结果返回给Android指纹识别程序,提示指纹注册成功;
[0049]至此,指纹识别的指纹注册操作全部完成。成功搭建起指纹特征模板库,以备之后的指纹识别的匹配操作,指纹特征模板库是以密文的形式存储到了空间隔离区域上,这将极大的保证用户指纹信息的安全。
[0050]所述的指纹匹配过程,包括步骤:
[0051]步骤201:指纹图像数据的采集加密。同注册过程一样,普通空间区域上运行指纹识别程序,同时获取存储在隔离区域上用于指纹图像数据加密的密钥,当点击匹配按钮时,触发指纹图像采集器采集用户的指纹图像数据,并对其进行加密操作;
[0052]步骤202:指纹图像数据的安全传输。保存当前系统的运行状态,将已加密的敏感的指纹图像数据传递到隔离区域,切换到安全执行环境;
[0053]本步骤所包含如下具体流程:
[0054]①.Android指纹识别程序会申请一块充足的内存空间,用于存放要传递给安全操作系统的指纹图像数据的密文、指纹识别操作的请求标识FP_MATCH以及存放安全操作系统中指纹识别服务安全进程的指纹匹配结果,将此段内存空间的物理地址和请求标识存入相应寄存器;
[0055]②.执行SMC指令,陷入到监视器环境。此时监视器程序会读取相应寄存器的值来判断本次监视器程序的执行是否是因为Android请求调用安全服务,若验证通过则将非安全环境的服务请求标识FP_MATCH,存入相应寄存器中,供安全操作系统访问,同时协处理器会保存当前Android的上下文以及恢复即将所切换到安全环境的上下文;
[0056]步骤203:指纹特征样板与指纹特征模板的特征匹配。隔离空间区域上运行的指纹识别服务安全进程,首先通过内部的加解密模块解密获得的指纹密文数据,之后依次调用指纹数据预处理模块113、指纹特征模版库115和指纹特征匹配模块116,完成指纹的匹配操作,将指纹匹配的结果返回给普通区域上运行的指纹识别程序;
[0057]本步骤所包含如下具体流程:
[0058]①.安全操作系统的指纹识别服务安全进程利用其内部加解密模块112,借助于对称加密算法用共享密钥对指纹密文数据进行解密处理,以获得去掉头部后的实际指纹图像数据信息;
[0059]②.指纹数据预处理模块113对实际的指纹图像数据依次进行平滑降噪、图像场计算、前景分割、定向滤波、二值化、细化、提取特征值等预处理操作,最终成功获得用户的指纹特征;
[0060]③指纹识别服务安全进程首先挂载安全操作系统的文件系统,读取步骤103中加密存储的指纹特征库密文信息,之后会利用加解密模块内对应的RSA-2048私钥,使用非对称加密算法对读取到的指纹特征模板库密文进行解密处理,成功获得用户之前注册的指纹特征;
[0061]④.将流程②中得到的指纹特征作为指纹特征样板和流程③中得到的指纹特征作为指纹特征模板依次进行指纹特征的匹配操作,最终获得指纹相似度结果;
[0062]⑤.将流程④中获得的指纹匹配相似度结果写回到Android指纹识别程序开辟的内存空间上,并设置相应寄存器的标识值,执行特定的指令切换到监视器环境;
[0063]⑥.读取流程⑤中对应寄存器中标识值,确定当前监视器环境是由安全环境切换而来,再通过协处理器保存安全操作系统的上下文并恢复之前Android的上下文;
[0064]⑦.Android指纹识别程序获得安全操作系统指纹识别服务处理后返回的结果,将其与预设的指纹相似度阈值作比较,大于该阈值则表示指纹匹配成功;否则,指纹匹配失败。
[0065]借助于该安全隔离区域,通过在对指纹图像数据加密传输给安全操作系统,并且之后对该指纹图像数据的预处理、匹配等所有的指纹识别操作都在此安全隔离区域内完成,使其与Android应用程序完全隔离,摒除了潜在的Android恶意应用劫获用户指纹图像数据的可能,保证了指纹识别全过程的安全。
[0066]以上公开的仅为本发明的具体实施案例,通过本次发明可以保障在智能终端应用指纹识别方法的安全性,确保了从指纹获取到指纹匹配的全过程对敏感的指纹数据的保护。
【主权项】
1.一种智能终端的安全指纹识别方法,其特征在于,包括以下步骤: 1)指纹注册: 1-1)普通操作系统的指纹识别模块向安全操作系统的指纹识别模块的请求传输指纹数据的密钥;由安全操作系统的监视模块将普通操作系统切换至安全操作系统;所述安全操作系统为智能终端嵌入式硬件的安全隔离区域中运行的操作系统; 1-2)安全操作系统的指纹识别模块将用于加密指纹数据的密钥发送至普通操作系统的指纹识别模块;由监视模块将安全操作系统切换至普通操作系统; 1-3)普通操作系统的指纹识别模块触发指纹图像采集器采集指纹图像数据并使用接收到的传输指纹数据的密钥对指纹图像数据加密后发送至安全操作系统的指纹识别模块;由监视模块将普通操作系统切换至安全操作系统; 1-4)安全操作系统的指纹识别模块解密指纹图像数据后提取出指纹特征作为注册用户的指纹特征,再对注册用户的指纹特征进行内部加密后存储;由监视模块将安全操作系统切换至普通操作系统; 2)指纹验证: 2-1)普通操作系统的指纹识别模块向安全操作系统的指纹识别模块的请求传输指纹数据的密钥;由监视模块将普通操作系统切换至安全操作系统; 2-2)安全操作系统的指纹识别模块将用于加密指纹数据的密钥发送至普通操作系统的指纹识别模块;由安全操作系统的监视模块将安全操作系统切换至普通操作系统; 2-3)普通操作系统的指纹识别模块触发指纹图像采集器采集指纹图像数据并使用接收到的传输指纹数据的密钥对指纹图像数据加密后发送至安全操作系统的指纹识别模块;由监视模块将普通操作系统切换至安全操作系统; 2-4)安全操作系统的指纹识别模块解密指纹图像数据后提取出指纹特征,再内部解密注册用户的指纹特征进行匹配,得到指纹相似度结果;由监视模块将安全操作系统切换至普通操作系统; 2-5)普通操作系统的指纹识别模块获取相似度结果与阈值比较判断是否匹配成功,当相似度结果大于阈值则匹配成功,否则匹配失败。
2.如权利要求1所述一种智能终端的安全指纹识别方法,其特征在于,对指纹数据的加密方法为对称加密,对指纹特征的加密方法为非对称加密。
3.如权利要求1所述一种智能终端的安全指纹识别方法,其特征在于, 指纹图像采集器采集指纹图像数据之后,去掉指纹图像数据中的头部信息再对指纹图像数据使用传输指纹图像数据的密钥进行加密。
【专利摘要】本发明提供一种智能终端的安全指纹识别方法。一种芯片级的安全系统框架下的指纹识别的安全方法,提取的指纹特征加密存储在隔离区域上,借助于该隔离区域将有效的保障对敏感的指纹图像数据操作的私密性,极大的提高智能终端领域指纹识别的安全性。
【IPC分类】G06F21-32
【公开号】CN104778393
【申请号】CN201510179446
【发明人】杨霞, 桑楠, 刘志伟, 石鹏, 雷林, 孙超群, 孙海泳, 任飞, 吴开均, 刘维飞, 武琼, 袁艺, 杨姗, 李昊星, 唐伟文
【申请人】电子科技大学
【公开日】2015年7月15日
【申请日】2015年4月16日