安全芯片操作系统的设计方法

(整期优先)网络出版时间:2022-07-18
/ 2

安全芯片操作系统的设计方法

陈强

深圳市硅格半导体有限公司 广东省深圳市 518000

摘要:设计了一种安全芯片操作系统,系统本身分为安全子系统和文件管理子系统两部分,文件管理系统采用的基本单位是扇区,在配合热备份机制的情况下,能够实现对于无冗余写入的掉电保护。运用基于指令驱动的安全状态寄存器,通过对比其读写权限状态和文件预置读写权限的方式,能够对访问的合法性做出准确判断。试运行结果显示,该系统文件空间可以随应用自适应增长,同时能够实现功能的自由定制和搭配。

关键词:安全启动;数据加密;身份认证

0 引言

智能卡出现于20世纪80年代,其本身具有安全性和易用性的特点,被广泛应用在安全计算、身份识别等相关领域。而在不断的发展过程中,为了进一步扩大智能卡的应用领域,技术人员开始在智能卡中引入新的通信接口和封装形式,安全芯片应运而生。对比常规的智能卡,安全芯片采用的是USB或者SPI接口,CPU内核更加强大,通信速率能够达到数十兆每秒,加密和解密的速率也接近百兆每秒。安全芯片虽然知名度较小,但是其在金融后台系统、电力终端等方面同样应用广泛,对于电力、金融等系统的运行安全影响巨大。

1 安全芯片操作系统现状

智能安全芯片在社保卡、IC卡、身份证等方面都有着广泛应用,与智能手机一样需要操作系统一样,智能安全芯片同样需要在操作系统的支持下才能正常使用。伴随着不断的发展,我国安全芯片已经打破了被垄断的局面,2015年,全球95%以上的安全芯片市场被荷兰恩智浦把持,而到2019年,中国银行卡累计突破80亿张,约50%使用的都是过长安全芯片。不过,在安全芯片操作系统方面,我国依然处于相对被动的状态,智能安全芯片采用的多是基于授权技术架构开发出的操作系统,以银行卡为例,安全芯片操作系的基础是JAVA系统,这样显然并不利益实现金融支付产业的安全发展。因此,做好安全芯片操作系统的研发和设计,也就显得至关重要[1]

安全芯片操作系统一般采用的都是模块化设计,依照模块功能,可以将其分为存储管理系统、文件系统、固件系统、安全管理系统等。在系统发展早期,软件编写采用的是汇编语言,有着较高的执行效率,但是通用性较差;当芯片性能提高时,基于C语言的小型链式文件系统开始成为安全芯片操作系统的主流。实际上,不管安全芯片操作系统如何发展,需要关注的核心问题,都是为芯片提供相应的数据管理服务和安全服务,这也是系统设计的关键所在。

2 安全芯片操作系统设计方法

安全芯片一般都会设置有相应的存储区,通过文件的形式对用户数据进行保存,而想要实现这一功能,需要做好文件系统和存储管理功能设计。

2.1存储管理系统

安全芯片中使用的存储介质,一般是EEPROM或者FLASH,容量从数十字节到数千字节不等,部分产品的存储空间可以达到数兆,这些存储单位会组织成扇区,扇区也是芯片最为基本的读写管理单位。系统设计中,需要将扇区作为基本的文件空间管理单元,数据扇区和空间管理表共同构成了存储空间。在存储管理系统中,空间管理表是第一个扇区,可以对总扇区的数量进行记录,对被占用的扇区进行标记[2]

扇区大小主要受安全芯片型号的影响,这里假定其大小为256字节,空间管理表占用一个扇区,前2个字节表示所有可以使用的扇区数量,最后2个字节则表示下一个空间管理表的扇区好。在这种情况下,一个空间管理表管理的扇区数量为252,空间大小为64K,基本能够满足小型文件系统的需求。空间管理表中的每个字节对应一个物理扇区,若字节显示数值为0x55,则表明扇区被占用,扇区空闲的情况下,显示的值为0xFF。

在系统中新建文件时,会申请相应的分配空间,系统会自动从空间管理表中检索第一个可用扇区,字节本身在空间管理表中的偏移位置,是分配给文件的首个空闲扇区的扇区号。存储管理系统会依照文件系统申请的空间大小,找到足够的空闲扇区,依照链表对其进行组织,只有文件系统会返回到首个空闲的扇区号。在对芯片进行初始化操作时,空间管理表会依照用户需求以及扇区大小,计算出需要占用的扇区总数,将之填入到空间管理表的前2个字节中。当芯片进行文件的新建和删除操作时,空间管理表会发生相应变化,其他时间会保持不变,这样的设计可以确保用户写入数据量超出文件大小时,存储系统能够通过动态申请文件空间的方式,满足用户需求[3]

2.2文件系统

安全芯片中,基本文件(EF)是对数据信息保存的最小单元,借助内容或者工作上相互关联的基本文件集合,可以形成相应的应用目录(ADF),而功能相近的应用目录又可以组成环境目录(DF),最终的系统根目录(MF)应用目录和环境目录发构成,系统架构如图1所示。

图1 文件系统架构

文件系统设计中,文件头需要依照目录进行集中保存,系统中的第一个扇区保存的是文件目录信息,一个扇区保存一个目录索引表,如果目录较大,无法保存在一个表中,则需要借助指针连接下一个目录索引表。

2.3写保护

写保护一般是借助冗余写入实现数据保护,这里采用的是不增加冗余写入的写保护方法,为每个扇区设置一个累加计数器和CRC校验标志,计数器的数值越大,保存的内容越新。读数据时,数值高同时CRC校验正确的扇区为有效数据扇区,在对文件进行更新时,主要是针对CRC正确但是计数值较低的扇区进行更新。这种方法读操作和CRC计算消耗的时间都在微秒级,不会影响系统的正常运行。

2.4安全机制

安全芯片文件系统中,每个ADF都会对应一个应用,而每个应用都需要设置相应的安全状态寄存器,芯片整体定义全局安全状态寄存器。当用户执行相应的芯片鉴权指令后,安全状态寄存器会被赋值,常见的鉴权指令有初始化指令、应用选择指令、pin校验等,指令执行过程中华,需要系统调用相应的密钥实施加密和解密操作,而指令执行成功后,密钥属性中对应的访问权限就会被赋予到当前用户的安全状态寄存器中。安全芯片在访问文件时,需要同时满足文件访问模式匹配和文件访问权限匹配两个条件,然后系统才会依照用户需求完成数据访问,这样能够最大限度地保障芯片操作的安全性[4]

3 结语

总而言之,提出了一种安全芯片操作系统设计方法,能够借助双机热备份的方式实现掉电保护。可以借助32位ARM平台实现系统,芯片数据先入过程减少了60%的操作,使得整体效率得到了显著提升,而且芯片本身的安全型和可靠性同样提升明显。

参考文献:

[1]张峰.国密算法安全芯片与电子标签在资产巡检系统中的应用[J].科技视界,2021,(07):163-166.

[2]张伟,梁昭庆,付青琴,等.一种安全芯片操作系统测试装置[J].信息与电脑(理论版),2020,(19):112-114.

[3]金洁羽.强化信息安全的燃气物联网安全芯片的应用[J].煤气与热力,2020,(06):33-39,46.

[4]吴淼,严则明,黄俊.一种面向手机安全芯片的eID签发方法[J].微型电脑应用,2019,(12):27-30.