基于手机安全内置芯片的智能密码钥匙的设计与实现*

2021-06-01 12:57
数字技术与应用 2021年4期
关键词:钥匙密钥密码

(北京迅安网络系统有限责任公司,北京 100048)

0 引言

根据公安移动警务总体方案对安全的规定,使用移动终端开展移动警务业务时,需要实现身份认证和通信加密等功能,移动终端需要部署在各地的KPI 系统颁发的认证证书接入公安网络,证书的载体通常是实现智能密码钥匙功能的SD卡或者SIM贴膜卡等外置的智能密码钥匙上,证书下发到智能密码钥匙后,再安装到民警的手机中,民警通过证书携带的认证信息通过拨号认证接入公安网。更多的使用结果表明外置载体的诟病较多,如SD卡会占用手机卡槽,现在新型的手机也不再有普通的SD卡卡槽;设备、证书在丢失、损坏后,或证书更新、撤销等操作时需要逐级上报,由信通部门管理员人工操作再次调试;调试环节复杂,需要使用读卡器对每张TF 加密卡进行操作,然后手工输入证书信息,再逐级分发到对应人员,维护成本高。如今很多终端厂商推出了手机内置安全芯片,可以在内置安全芯片接口基础上开发符合GM/T 0016-2012[1]标准的SKF接口智能密码钥匙,配合在移动联网平台上部署的空中发证服务器,使民警可以在移动端进行首次的证书的申请、废除操作,减少重复且繁杂的工作。

本软件的设计目标是基于终端内置芯片,实现智能密码钥匙的所有功能,能够实现身份认证和签名验签等非对称密码运算及数据加密和通信加密等对称密码运算,安全等级高、密码处理能力强。第三方应用可以使用本软件提供的SKF接口执行相关智能密码钥匙接口,快捷方便的申请数字证书,进行业务操作。本软件还提供了基础密码服务功能包括:签名验签、私钥解密、公钥加密、密钥对生成、密钥对导入、对称密钥加解密、随机数生成、安全散列函数计算等密码功能。

1 相关技术介绍

1.1 终端内置安全芯片

终端内置安全芯片是内置于终端的嵌入式安全芯片,嵌入式安全芯片拥有安全的操作系统和强大的运算能力,在终端中存储加密密钥,密钥信息不在终端外边传输,加解密过程、密钥存储都在此芯片中完成,也可以使用硬件加密进而使手机处于安全的状态,能够保障密钥的安全存储和端到端之间信息传递的安全性。使用嵌入式安全芯片隔离用户数据,现广泛适用于移动办公、金融、证券、保险等领域。

1.2 智能密码钥匙

智能密码钥匙是一类支持密码运算、密钥存储能力、可提供密码应用接口的终端密码设备,其主要功能是存储用户的加密信息(如私钥、数字证书),可以记性数据加解密、数据的哈希校验、数字签名、访问控制、实现身份认证和签名验签等非对称密码运算及数据加密和通信加密等对称密码运算。智能密码钥匙通常以USB 接口形态出现,因此也被称作USB Token或者USB Key。采用手机安全内置芯片芯片的方案的整体架构与原有TF加密卡方案保持一致,移动终端侧智能密码钥匙主要提供密钥证书存储、签名验签、私钥解密、公钥加密、对称密钥加解密、随机数生成、安全散列函数计算等功能。

1.3 加密数字证书

数字证书是一种具有权威性的数据文档。它提供了一种在网络信息传递中校验身份的方式,其作用和实际生活中公安部发放的身份证或交通部授予司机的驾驶执照相同。是数字证书由一个由CA 这种权威证书授权(Certificate Authority)中心发放的,持有证书的用户可以在互联网信息传递中用它来识别对方的身份。数字签名具有几点特征:数据加解密能力、两把钥匙唯一对应、公加私解和私加公解、公钥公开和私钥私有、身份证明。

给予手机内置安全芯片的智能密码钥匙实现用户安全接入网络的方案中,证书加密是必不可少的核心业务之一。在证书加密业务中,首先需要使用智能密码钥匙中的签名证书和签名密钥对实现身份认证,并使用加密证书和加密密钥对实现临时对称密钥的安全下发,此后手机终端可使用临时对称密钥进行对通信数据的加解密等功能。

2 软件功能需求

基于手机安全内置芯片的智能密码钥匙软件应实现设备管理、访问控制、应用管理、文件管理、容器管理和密码服务接口功能。软件的功能需求模块如图1 所示。

图1 智能密码钥匙功能模块图Fig.1 Function module diagram of smart password key

各功能接口需求描述:

(1)设备管理接口。设备管理接口提供设备枚举、设备连接、设备的状态管理、断开设备连接、设备的状态信息获取、设置设备标签、设备锁定、设备功能解锁等相关功能的接口调用。(2)访问控制接口。访问控制接口是进行设备的认证、设备密码修改、用户管理员PIN码修改、用户管理员PIN码验证、PIN码信息获取、PIN码解锁和安全状态清除等相关功能调用。其中设备认证是设备对接口调用方的认证,设备认证成功后才能进行其他接口调用,否则不能进行相关操作。修改设备认证密钥接口可以更改设备认证密钥。用户管理员PIN码修改接口可实现对应角色的PIN码修改。用户管理员PIN码验证接口提供对相关角色的验证、使用此接口后才能调用相关接口。PIN码信息获取可查看对应角色的PIN码相关信息,包括类型、最大重试次数和当前剩余重试次数。PIN码解锁可解锁锁死的用户PIN码。清除应用安全状态,清除应用当前的安全状态,使设备处于未认证状态,调用接口时仍先进行认证接口调用。(3)应用管理接口。应用管理接口用来进行应用的枚举、创建、打开、关闭和删除等操作。创建应用是创建一个应用程序,但是需要获得设备的权限。枚举设备中存储存在的所有应用,删除应用是删除指定的应用,但需要获取设备权限。打开与关闭应用,分别打开或关闭相应的应用程序。(4)文件管理接口。文件管理接口可实现非证书类型的数据存储,相关接口包括:枚举文件、创建文件、读取文件相关属性、文件IO、删除指定文件等接口。接口调用方可创建指定名称、大小的文件,并可设置对应的读写权限。删除文件接口可以删除文件,执行此接口后文件中写入的所有信息将丢失,文件设备中的占用的空间将被释放。读取文件相关属性信息是获取文件大小、权限、名称等信息。(5)容器管理接口。本软件提供的容器管理接口是对应用内的多个容器进行管理,包括枚举容器、创建容器、打开容器、关闭容器和删除容器操作。创建容器,在应用下建立指定名称的容器并返回容器句柄,本操作需获取用户权限。删除容器是在用户权限下,在应用下删除指定名称的容器并释放容器相关的资源。关闭容器是关闭容器句柄,并释放容器句柄相关资源。写入数字证书是向容器内导入数字证书,导出数字证实是从容器内导出数字证书。(6)密码服务接口。密码服务接口可提供数据签名验签、对称和非对称加密运算、密钥导入导出、MAC 码的计算、密码杂凑运算等功能。包括:生成随机数,是产生指定长度的随机数。生成签名密钥对是生成RSA 或者ECC 签名密钥对并输出签名公钥。数据签名指使用不同类型容器(可以为ECC、RSA容器)内的签名私钥,对待签名数据执行数字签名。将签名结果数据存放到缓冲区,设置为签名的长度。RSA 签名是使用签名公钥,对指定数据进行数字签名。签名后的结果存放入缓冲区,设置签名的长度。ECC 数字签名,采用ECC 算法和指定私钥,对指定数据进行签名,输入数据为待签数据的杂凑值,当使用SM2 算法时该输入数据为待签数据经过SM3 杂凑处理后的结果。

3 软件的其他功能和要求

根据智能密码钥匙的实际应用场景,本软件应具备设备认证功能、权限管理功能并满足密钥安全要求和性能要求。

3.1 设备加密认证

接口调用方必须通过设备加密认证后才能在设备内创建和删除应用。设备认证使用分组密码算法和设备认证密钥进行。认证的流程如:(1)被认证方从设备获取随机数,并填充至密码算法的分块长度,组成数据块;(2)被认证方对数据块进行加密,得到加秘结果,然后发送至设备;(3)设备收到数据后,验证数据是否正确。正确则通过设备认证,否则设备认证失败。

3.2 权限管理功能

(1)设备权限:通过设备认证后获得设备权限。(2)用户权限:对于每个应用,都有其使用人员,在创建应用时指定用户密码,用户输入密码后才能对此应用进行其他操作。(3)管理员权限:创建应用时同时创建管理员密码,管理员可管理此应用,进行用户密码的修改,重置和清除用户登录状态。权限的使用遵循以下要求:

设备权限仅用于创建应用、删除应用和修改设备认证密钥。用户权限用来创建、删除容器、新建文件和进行签名验签等操作。如果不进行校验密码操作,无法执行上述的接口调用。创建应用时会指定管理员密码、用户密码,并设置最大的输入错误次数。如果输入次数过多达到最大错误次数,会将用户密码锁定,即使输入正确的密码也无法认证成功,也无法进行相关接口的调用操作。

3.3 密钥安全要求

智能密码钥匙的设计应当遵守几点安全要求:(1)设备内产生的随机数为正随机数,应符合随机性检测的要求;(2)设备内产生的会话密钥应使用随机数;(3)设备内产生非对称密钥使用的素数应满足素性要求;(4)设备内的密钥应具备有效的密钥保护机制防止解剖、探测和读取;(5)设备内的密钥应按权限要求使用;(6)除公钥外的密钥不能以明文形式出现在设备外;(7)签名私钥必须在设备中产生;(8)容器内的私钥不能以任何形式导出设备;(9)删除容器时必须销毁该容器内所有的密钥。

3.4 性能要求

(1)RSA 2048密钥对生成一次性能:2400ms;(2)RSA 2048签名一次性能:140ms;(3)SM2密钥对生成一次性能:150ms;(4)SM2签名一次性能:300ms;(5)SM3杂凑性能:12Mbps;(6)SM4加解密性能:8Mbps;(7)存储空间:Applet支持存储8对加密或者签名密钥对(按RSA2048计算)、8个对称密钥。

4 结语

本文主要介绍了基于手机安全内置芯片的智能密码钥匙的设计与实现,智能密码钥匙功能实现后可以提供接口供第三方应用来调用,通过本软件提供的密码接口实现数字证书的发放、数据的加解密、数据签名验签和数据杂凑等功能,可满足各类用户对数据安全的要求,实现用户数据安全存储。

猜你喜欢
钥匙密钥密码
探索企业创新密钥
密码里的爱
密码系统中密钥的状态与保护*
密码抗倭立奇功
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
密码藏在何处
钥匙和锁
夺命密码
钥匙