TF卡加密芯片
基本概念
对称算法:即传统密码算法,加密密钥和解密密钥相同。(SM1,DES)
非对称算法:指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥。(RSA,ECC,SM2)
数字签名:数字签名是指用密码算法,对待发的数据进行加密处理,生成一段数据摘要信息附在原文上一起发送,接受方对其进行验证,判断原文真伪。这种数字签名适用于对大文件的处理,对于那些小文件的数据签名,则不预先做数据摘要,而直接将原文进行加密处理。数字签名在PKI中提供数据完整性保护和提供不可否认性服务。
消息摘要:(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。(SM3,SHA1,SHA256,MD5)
数字信封:是信息发送端用接收端的公钥,将一个通信密钥(即对称密钥)给予加密,生成一个数字信封。
双因子认证:是指结合密码以及实物两种条件对用户进行认证的方法。(PIN码和实物key)
数字证书:即电子证书,简称证书。数字证书、电子证书和证书都是X.509公钥证书的同义词,符合ITU-T X.509 V3标准。
符号定义
PKI:(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。
CPK:(Combined Public Key)即组合公钥,是一种加密算法,以很小的资源,生成大规模密钥。
SDC芯片:SD接口控制器(本芯片带安全算法模块,可实现SM1/DES, SM2/RSA算法)
NF芯片:nandflash大容量存储芯片
CA:是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)。
X509:是ISO和CCITT/ITU-T的X.500标准系列中的一部分,已达到标准化的最高水平,相当稳定。
LDAP(Lightweight Directory Access Protocol):是轻量级目录访问协议,是X.500的一个子集。还包含兼容性的内容。
Session Key:会话密钥处于层次化密钥结构中的最低层,仅在一次会话中使用的密钥。
设计原理
安全SD卡采用了双芯片的物理架构,使用SDC芯片和NF芯片封装在一起,将移动设备SD卡和智能卡技术结合起来,实现了既支持安全功能、又带有巨量用户数据存储空间的复合型设备,并且还可以实现存储的用户数据密文保存的应用。随着移动互联网的蓬勃发展,各种手机上的应用层出不穷,对移动安全的要求也越来越高。安全存储主要是对移动终端内的数据进行保护,是移动安全的关键部分。
安全SD芯片简介
安全芯片内部自带SD控制器功能,芯片的主控由安全芯片掌管,所有内部的控制指令全部由安全芯片下发,同时安全芯片和SD控制器模块之间额数据传输不再经过SPI接口,而是通过内部总线传输,提高了芯片的性能。
对安全SD卡内的安全芯片操作可以通过存储通道接口进行,应用接口有两种方式,一是单文件方式,一是多文件方式;这些文件定义为智能SD卡接口文件(SCIF)。接口文件可预置于智能SD卡中,也可在应用通讯前进行创建。
单文件方式:在智能SD卡存储区的根目录上存在一个文件,终端通过这个文件建立与嵌入在智能SD卡内的安全芯片之间的数据传输通道,作为应用接口用于应用通讯。
多文件方式:在智能SD卡存储区的根目录上存在一个文件夹,该文件夹中存在多个文件,终端通过这些文件建立与嵌入在智能SD卡内的安全芯片关联的数据传输通道,作为应用接口用于应用通讯。
实现功能:大数据量的加密存储,安全的身份认证。
冲击-响应双因子认证
首先需要客户端通过PIN码的输入获取密钥的使用权,PIN输入错误次数超过上限就将安全SD设备锁死。
客户端通过服务器获取或者自身产生的随机数,以文件接口模式发送随机数给安全SD设备,安全SD设备在收到此冲击后,使用私钥对随机数进行数字签名,并在客户端下次读取操作时返回,客户端通过设备公钥对设备进行签名验证操作,如果通过签名验证则认为此公钥和安全SD设备为一个整体。随后客户端可以使用数字信封的形式将敏感数据信息加密发送。
应用场景
手机支付
手机支付需要芯片内有cos程序处理APDU的指令,完成相关的电子钱包的操作,这个指令通过SD接口文件完成指令的发送与响应。用户只需要到银行购买安全SD卡产品,在银行柜台即可办理安全SD卡和个人银行账户的绑定,办理模式和传统的USB key是一致的。用户在手机上安装手机×××端软件,即可利用此客户端软件登录手机银行,享受随时随地的在线金融交易。安全SD卡内装有用户的个人数字证书和密钥。用户转账及其他涉及资金转移的交易,都会由安全SD卡内的安全模块对交易数据进行签名,确保了交易过程中的安全性,防止了骗签、篡改交易数据等行为。手机×××端软件与银行服务器之间的连接可以采用加密的通讯,杜绝交易内容在网络传输中被窃听或者篡改的可能。此应用场景需要遵守PKI体系的规范,需要给客户端提供PKCS#11标准的接口,证书格式需要遵从X.509 v3证书的标准要求,指令传输需要符合智能卡支付技术规范。
实现技术分析:
通过全局钩子来实现,屏蔽所有的复制和粘贴消息等需要屏蔽的消息。
安全芯片端实现内容:
1 用户,管理员登陆需要PIN验证,及超次数登陆自毁
2 客户端发送数字信封,芯片端拆解后获取消息内容。(双方确认客户端与芯片端)SM2,SM3
3 原始数据的SM1加密(保证nandflash中保存为密文)
4 用户模式只能通过客户端查看存储内容。管理员可以进行各类操作。
5 保存安全中间件,应用程序,实现自动安装。
6 安全SD卡的其它基本功能
规格参数
性能方面
1.SM1在40MHz ECB模式下,加密18.25MB/S,解密18.25MB/S。
2.DES在40MHz ECB模式下,加密16.25MB/S,解密16.25MB/S。
3.SM2在密钥长度为192bit,40MHz下,加密31次/S,解密49次/S,数字签名61次/S,签名验证35次/S,密钥对生成75次/S。
4.SM2在密钥长度为256bit,40MHz下,加密17次/S,解密29次/S,数字签名35次/S,签名验证18次/S,密钥对生成38次/S。
5.RSA(非CRT)在密钥长度为1024bit,40MHz下,数字签名11次/S,密钥对生成1.3S/次。
6.RSA(非CRT)在密钥长度为2048bit,40MHz下,数字签名1次/S,密钥对生成12.14S/次
7.RSA(CRT)在密钥长度为1024bit,40MHz下,数字签名40次/S
8.RSA(CRT)在密钥长度为2048bit,40MHz下,数字签名5次/S
硬件方面
工作温度:-25℃ ~85℃
存储温度:-40℃ ~125℃
工作电压:2.5V~3.6V(SD卡)
ESD >4000V(HBM)
安全体系
安全机制
芯片内部使用CPU内部的SMPU和SOC的MPU双重存储保护单元模块对芯片内部的程序存储区域数据区进行安全保护,确保了安全算法的密钥不出芯片。
芯片支持固件功能。固件程序可配置一块NVM数据区作为安全算法区,用于下载的安全算法库。对于这块NVM,固件可以读、写、执行,用户只可执行。安全算法区是否存在、位置和大小可由固件程序进行配置。
为了提高芯片的抗***性,芯片提供特殊的算法支持RAM 数据加密和(或)地址乱序,使RAM中数据受到保护。为了进一步提高安全性,向用户提供加密配置寄存器,每次复位后,用户可根据需要设置一次该寄存器,以获得不同的乱序结果。
芯片提供特殊的算法支持NVM数据加密和地址乱序,使NVM中的数据受到保护。如何加密由硬线逻辑决定,用户不可干预。
安全算法
纯硬件实现的SM1/DES,软硬结合实现的SM2/RSA,纯软件实现的SHA1/SM3的加密算法为本芯片提供了对称算法及非对称算法,消息摘要算法,从而满足应用层上的数据加密,解密,消息的签名,签名验证,密钥交互等功能,数字信封接收发送等功能。
支持SM1的ECB,CBC,OFB、CFB四种模式,支持DES/3DES,支持ECB/CBC模式,3DES算法支持2-KEY、3-KEY方式可配置。支持RSA(CRT,非CRT)算法1024bit,2048bit模式,支持SM2(192bit,256bit,384bit,521bit)的密钥对生成,加密,解密,签名,签名验证,密钥对交互的基础功能,支持SM3,SHA1,SHA256的消息摘要算法。
数据摘要的数字签名