王秋晨,王 雷,夏鲁宁,荆继武
(1.中国科学院信息工程研究所,北京100093;2.中国科学院数据与通信保护研究教育中心,北京100093;3.信息安全国家重点实验室,北京100093;4.中国科学院大学,北京100049)
近年来,移动存储设备作为一种灵活、快捷的存储介质在企业机构中被广泛使用。这些设备中存储的文件数据,很多涉及了企业的雇员和消费者档案资料、知识产权、商业秘密等信息。内部人员如果将存有这些敏感信息的移动存储设备带出并在外部场合使用,则存在不慎泄露敏感信息的风险,可能给企业机构带来巨大的损失[1]。因此如何更好地管控企业内部的移动存储设备、保护设备内的数据安全,成为了当前亟待研究解决的问题。目前,针对安全移动存储设备的研究方案中,主要采用了加密存储[2,3]和用户认证[4,5]的方式,保证设备中的信息不被非法使用者窃取,但是并没有限制合法用户对于设备的使用。部分针对限制设备使用环境的研究中,通过在主机上安装相应的软件模块[6]或硬件模块[7,8],限制了设备的接入主机,但是这类方案不容易对设备的使用进行监控和审计;另外,有学者提出可以通过验证接入主机IP地址来认证设备的使用环境[9],然而,该方案仍不能防止合法使用者将设备带出公司。鉴于此,本文描述了一种基于环境感知的安全移动存储系统,该系统采用了双射频RFID(radio frequency identification)的设计,确保移动存储设备的授权使用、加密存储、离境告警和可靠销毁,从而能够严格控制移动存储设备的安全使用区域,并在设备被带离安全使用区域时,综合使用告警和密钥销毁手段,显著降低敏感信息经由移动存储介质外泄的风险。
(1)文件加解密:对系统中的所有文件进行加密存储,在用户对系统进行读、写操作时进行相应文件的加解密。若存储设备丢失,非法使用者只能获取密文数据,从而保护设备中重要文件的安全。同时,加解密操作对用户透明,并且不会改变文件本身的属性。
(2)用户管理:管理企业内部环境中移动存储设备的用户信息,在每个存储设备初始化时由管理员统一设置用户名和口令。每个设备可对应多个用户,后期使用过程中管理员可以对用户进行添加和删除。在用户访问存储设备的过程中,对用户身份进行认证。
(3)文件访问控制:每个用户对应一个文件加密密钥,当用户创建文件时,利用这个用户的文件密钥来加密文件,并为每个文件维护一个访问控制列表。经过身份认证后,设备只呈现出该用户的文件,并按照既定的策略对文件进行严格的访问控制,避免由于设备的交叉使用带来的安全隐患。
(4)主机级别控制:在接入主机的USB(universal serial bus)插座和存储设备的USB插头上分别设置主机访问级别检测引脚,当存储设备接入主机时,根据USB插座上检测引脚的电平信号来对主机设备的访问级别进行认证,保证只有符合级别要求的主机才能访问存储设备。
(5)环境管控:在合法接入主机上和管控范围的出口部署HF(high frequency)射频读写器,利用存储设备上的HF射频接口与外部射频读写装置相互鉴别,保证设备只有在接入了管控范围内的合法主机的情况下才能进行正常读写,若系统被带出管控范围,存储的密钥将被销毁。
(6)密钥管理:设备为每个用户生成一个文件加密密钥,用来对该用户的文件进行加解密,该文件密钥存储于设备中的安全存储区域,由专门的密钥管理程序对其进行控制。另外,为了确保密钥销毁操作可以安全完成,还需在管控范围的出口部署UHF(ultra high frequency)射频读写器,从而在存储设备被带离管控区域时,通过设备上的UHF射频接口远距离写入一个离境告警标志,保证设备在下次接入主机时进行可靠销毁。
基于环境感知的安全移动存储系统主要由微控制器、NAND Flash、双界面CPU卡芯片、UHF射频标签芯片和天线组成,如图1所示,系统一方面通过USB接口与接入主机通信,另一方面通过两个射频接口分别与HF射频读写器和UHF射频读写器通信。
图1 系统总体结构
(1)微控制器:微控制器是系统的控制中心,它通过USB接口与接入主机进行通信,执行对主机的访问级别控制,并配合接入主机的接口程序,对用户身份进行认证。微控制器的另一个重要任务是利用7816接口与双界面CPU卡芯片进行通信,完成环境认证与数据读写的联动,并在各项认证都完成后执行对文件的访问控制和高速的文件数据加解密操作。
(2)NAND Flash:用户的文件数据以密文的形式安全地存储在NAND Flash之中,Flash的存储单元组织形式采用FAT文件系统,微控制器内有专门的控制程序对其进行控制。
(3)双界面CPU卡芯片:作为一个安全芯片存储了系统的所有安全信息,包括系统状态、系统主密钥、系统支持的主机级别和用户信息(用户名、口令和该用户的文件加密密钥),这些信息大都在进行初始化操作时设置或生成。另外,双界面CPU卡芯片还负责接收并执行来自微控制器的各种命令,包括对系统状态、系统支持的主机级别、用户口令的查询与验证以及对当前环境进行认证的命令。该芯片在HF射频读写器的读写距离内与其进行通信,以进行环境认证和近距离的密钥销毁。
(4)UHF射频标签芯片:UHF射频标签芯片实际上也是一个双界面的芯片,其射频接口符合ISO 18000-6C协议,用来与UHF射频读写器进行通信;另外该芯片还带有一个I2C接口,可以与微控制器相连。在存储设备被带离管控区域时,一旦进入UHF射频读写器的读写范围(5m),读写器就向该标签芯片远距离写入一个离境告警标志;当设备在下次接入主机时,微控制器首先会检测UHF射频标签芯片中是否有上述告警标志,若有则控制双界面CPU卡芯片进行可靠的密钥销毁。
(5)HF射频读写器:HF射频读写器的工作频率为13.56MHz,支持ISO 14443协议,读写距离在10cm以内。与系统进行通信的HF射频读写器包括3类:首先是由初始化主机控制的初始化读写器,用来对系统进行必要的初始化操作;其次是由运行使用区环境认证程序的服务器控制的使用区读写器,部署在管控范围内的合法主机上,在用户有数据读写请求时进行环境认证;最后是由运行警戒区环境认证程序的服务器控制的警戒区读写器,部署在管控范围的出口,在系统被带离管控范围时进行近距离的密钥销毁。
(6)UHF射频读写器:UHF射频读写器的工作频率为860MHz-960MHz,支持ISO 18000-6C协议,读写距离可达到5m。与系统进行通信的UHF射频读写器由运行远距离设备识别程序的服务器控制,该读写器同样部署在管控范围的出口,在系统被带离管控范围时进行离境告警标志的写入。
为了实现移动存储系统与接入主机的安全交互,需要考虑硬件芯片和软件实现的安全关联和功能分配。一个可行的系统模块设计方案如图2所示,主机部分主要是指用户界面的交互;安全移动存储系统部分由主控模块和安全模块组成,其中主控模块在硬件上基于微控制器,包含鉴别、访问控制和文件加解密几个子模块,安全模块在硬件上基于双界面CPU卡芯片和UHF射频标签芯片,包含环境管控和信息管理两个子模块;射频读写器部分由HF射频读写器模块和UHF射频读写器模块组成,其中HF射频读写器模块又分为初始化、环境认证和近距离密钥销毁几个子模块。
图2 模块设计
主机、安全移动存储设备和射频读写器的各个模块相互配合,共同实现系统的各项功能。系统模块与安全功能的对照见表1。
管理员在初始化主机上对安全移动存储系统进行必要的初始化操作。为了保证系统接收到的初始化信息的真实性和完整性,在设置好系统主密钥后,所有由初始化主机导入的数据都添加了HMAC校验值,系统对数据校验成功后才将相应的初始化信息存储于系统的安全区域。
(1)每一个安全移动存储系统都有一个唯一ID号,在出厂时写入系统内部。初始化主机首先请求系统的这个唯一ID,根据该ID生成系统主密钥并传入系统,用于后续的环境管控。主密钥的生成方法为:初始化主机拥有一个根密钥,用根密钥加密每个系统的ID即得到系统主密钥。之后,管理员设置管理员口令,并根据该存储设备的用途为其设定支持的主机级别。
(2)新用户加入系统时需要进行注册,由管理员统一设置用户名和口令等信息,同时需要其输入管理员口令以证明自己的身份。随后,系统会验证管理员口令的正确性,若正确则接受新注册用户的信息,并为该用户生成一个文件加密密钥,专门用于对该用户文件的加解密。
表1 系统模块与安全功能的对照
(1)状态标志检查:系统内部维护了一个指示其当前状态的标识(出厂、锁定、激活、销毁),例如,经过上述初始化操作后,系统将由出厂状态变为锁定状态。每当系统接入一台主机时,首先进行该状态标志的检查,只有当前状态为锁定或激活时,才能继续使用;若当前状态为出厂状态,则提示用户通知管理员进行初始化;若当前状态为销毁状态,则向用户告警该设备已经被销毁。
(2)离境告警标志检查:为了防止用户因疏忽将系统带出管控区域,并因此饶过了HF射频读写器的检测和销毁,系统还需要检测UHF射频标签中是否有由UHF射频读写器远距离写入的离境告警标志,若存在该标志,而系统当前状态并不是销毁,则进行相应的密钥销毁操作,并将系统状态设置为销毁。
(1)主机级别读取:由于接入主机的USB插座和存储设备的USB插头上都设置有主机访问级别检测引脚,当USB插头和插座连接后,微控制器通过电平检测电路读取USB插座上检测引脚的电平值,从而获取该主机的访问级别信息。该引脚默认的电平值为高电平,当接入主机为引脚提供低电平时,微控制器将检测到低电平。
(2)访问级别控制:微控制器将检测到的主机访问级别信息传入双界面CPU卡芯片。由于系统在初始化时就已经由管理员设定了支持的主机级别,双界面CPU卡芯片将当前接入主机的级别信息和系统支持的主机级别作对比,并将结果传回微控制器。若验证通过,微控制器才允许接入主机访问存储系统,否则提示设备不支持当前级别主机的访问。
对主机访问级别验证通过后,接入主机上会弹出用户交互界面,提示用户输入用户名和口令。系统对接收到的用户名和口令信息进行验证,若与之前存储的用户信息一致,则认证成功。经过身份认证之后,将为用户呈现操作界面,该界面仅列出属于该用户的文件,用户可以直接以操作U盘的方法来操作,后续的环境认证和文件加解密对用户是透明的。
用户身份认证通过后,就会发起对其文件的数据读写请求。此时,微控制器会通知双界面CPU卡芯片进行环境认证,也就是与部署在管控范围内的合法主机(当前接入主机)上的HF射频读写器进行双向鉴别。
(1)环境认证:安全移动存储系统与使用区HF射频读写器的双向鉴别采用实体鉴别国标(GB/T 15843.2—2008/ISO/IEC 9798-2:1999)中的对称加密算法机制,具体的鉴别方案如图3所示。首先HF射频读写器产生一个挑战随机数RA并发送给安全移动存储系统,以发起认证请求;双界面CPU卡芯片只有在收到微控制器的环境认证通知的情况下,才响应读写器的认证请求,生成另外一个随机数RB,然后利用系统ID、RA、RB和系统主密钥计算出TokenBA,并发送给HF射频读写器;读写器一旦收到包含TokenBA的消息,则利用根密钥加密ID得到系统主密钥,从而将加密部分解密,得到明文后检验ID的正确性,并比较解密得到的随机数是否与(1)中发送的挑战随机数一致,以验证TokenBA,验证通过后产生并向移动存储系统发送TokenAB,以激活系统;系统收到包含TokenAB的消息后,将加密部分解密,同时检验RA、RB和ID的正确性。此时,系统已经完成与读写器的双向鉴别,若上述各项验证通过,则系统确定了自身确实接入了管控范围内的合法主机,于是执行激活命令,系统进入激活状态。
图3 系统与使用区HF射频读写器的双向鉴别
(2)数据读写:双界面CPU卡芯片将上述环境认证的结果返回到微控制器。若认证失败,则拒绝用户的数据读写请求,并在界面上提示当前环境下不允许使用该存储设备;若认证成功,才可进行后续的访问控制和文件读写等,具体过程如下:当用户请求操作某文件时,微控制器将用户的操作级别与其对文件的访问权限进行比较,根据访问控制策略做出判断,允许或拒绝当前操作。若操作符合访问权限规定,微控制器向双界面CPU卡芯片请求该用户的文件加密密钥,并按照用户的要求进行文件的读写。当执行的是文件数据读取操作时,微控制器首先从NAND Flash中获取密文数据,然后对数据进行解密并向主机返回用户请求的明文文件;当执行的是文件数据写入功能时,首先利用密钥对数据进行加密,然后将密文数据写入NAND Flash。这里需要注意的是,双界面CPU卡芯片每次向微控制器提供文件加密密钥之后,会将系统状态设置为锁定,下一次读写操作(微控制器下一次请求文件加密密钥)时需要重新进行环境认证。
当被带离管控范围时,系统会与部署在管控范围出口的射频读写器通信,进行密钥销毁操作。该过程中,系统首先会进入UHF射频读写器的读写范围(5m),然后进入HF射频读写器的读写范围(10cm)。
(1)UHF射频通信:当UHF射频读写器检测到有安全移动存储系统经过时,立即通过存储设备上的UHF射频接口远距离写入离境告警标志,保证设备在下次接入主机时进行可靠的密钥销毁。
(2)HF射频通信:当系统进入警戒区HF射频读写器的读写范围后,HF射频读写器会发起双向鉴别请求。此时的环境认证机制同样采用3.5节中描述的双向鉴别方案,这里不再赘述。唯一不同的是,一旦收到来自于警戒区HF射频读写器的认证请求,系统会立即无条件响应该请求。双向鉴别完成后,若其中各项验证都通过,系统确认自身正在被带离限定的管控区域,于是执行密钥销毁指令,双界面CPU卡芯片将删除其内部存储的各类密钥和初始化信息,并将系统状态设置为销毁。
(1)主机部分用户交互界面:在Visual Studio 2012中,基于MFC在Windows系统上实现了主机部分的用户交互界面。操作流程为:用户将安全移动存储系统的USB接口接入主机的USB插座上,该交互界面则会自动弹出;用户输入正确的用户名和口令信息后,点击登录,即可进入仅列出属于该用户的文件的视图。
(2)系统主体的软硬件实现:为了满足系统的各项功能要求,在本系统的硬件实现中,微控制器选用飞思卡尔公司的MK60FX512VLQ12(R),NAND Flash选用三星公司的K9 MDG08U5M,双界面CPU卡芯片选用英飞凌公司的SLE 78CLFX3007P(M),UHF射频标签芯片选用英频杰公司的Monza X-2K Dura。按照上述的系统设计方案,我们在Keil u Vision V4.7中,采用C语言,在这些硬件芯片之上进行了相应的软件开发,实现了安全移动存储设备的原型系统。
(3)射频读写器的控制:为了控制HF射频读写器和UHF射频读写器,需要在读写器的控制机上开发相应的接口程序。对于HF射频读写器,涉及到的控制命令较多,我们采用C++编程语言,根据微软的PC/SC规范,调用该规范中的一些标准API接口,分别实现了初始化程序、使用区环境认证程序和警戒区环境认证程序。对于UHF射频读写器,相应的控制命令比较简单,仅需要一个远距离设备识别程序实现离境告警标志的写入即可。
为了测试系统的各项功能和稳定性,我们部署了上述系统的测试环境,如图4所示,测试环境包括一个安全移动存储系统、一台初始化主机、3台读写器控制机(分别控制使用区HF射频读写器、警戒区HF射频读写器和警戒区UHF射频读写器)、两个HF射频读写器、一个UHF射频读写器和一台测试主机。
在上述测试环境下,对系统的各项功能和读写操作性能进行了反复测试,达到了预期的效果。表2列出了对原型系统的实验方法和结果。
实验结果表明,我们实现的安全移动存储系统达到了设计要求,成功地实现了文件加解密、用户管理、文件访问控制、主机级别控制、环境管控和密钥管理六大功能,具有较好的稳定性;系统操作简洁,易于使用,附加的安全功能不会对用户对于文件的操作产生任何影响,每次读写操作都能够较快地完成,可以很好地满足实际应用的需求。
图4 系统的测试环境
表2 主要测试内容和结果
(1)文件加密存储和严格的密钥管理保障数据安全:移动存储设备面临的最大安全威胁是文件数据被非法获取,通过文件的加密存储,配合用户身份认证,可以有效地防止非法用户获取明文数据。同时,密文的解密需要文件解密密钥,而该密钥安全地存储于双界面CPU卡芯片之中,并对密钥进行了严格地管理。这里对密钥的访问控制体现在两个方面:首先,对密钥的访问需要进行Pin码验证;其次,只有采用开发者自己定义的合法接口,并且满足特定的条件(如环境认证通过,系统被激活)时才能获取密钥。这种密钥管理方案可以防止攻击者伪造一些射频或7816命令来盗取密钥。
(2)级别与权限控制防止合法用户非法获取文件:通过对主机级别的控制,杜绝了高级别存储设备被低级别主机(用户)访问的可能。另外,对文件的访问控制保证了,即使系统拥有多个用户,每个用户却只能按照既定的访问控制策略访问属于自己的文件,从而避免了由于设备的交叉使用带来的安全隐患。
(3)HMAC机制保护交互数据的完整性:系统与外部设备进行交互时,如管理员通过初始化设备对系统进行初始化操作期间,存在一定的安全威胁。首先这些交互数据有可能被攻击者篡改;其次,攻击者也可能伪造一台设备对系统进行部分初始化信息的设定。为了防止上述威胁,在初始化设备与系统交互的数据中添加了HMAC校验值,系统对数据校验成功后才接受这些初始化信息,从而保证了交互数据的真实性和完整性。
(4)双射频环境感知机制保证密钥可靠销毁:系统最显著的特性是对使用环境的感知,保证自身只能在管控区域内的合法主机上使用,超出管控范围,密钥将被销毁,这种环境感知的机制[10]曾被用于保护手机中的敏感信息。但是,基于HF射频技术的环境管控中,射频读写距离只能达到10cm,那么在管控范围的出口,合法用户有可能因疏忽忘记向HF射频读写器出示存储系统,造成销毁操作无法完成。而UHF射频通信协议的读写距离可以达到5m,通过两种射频技术的结合,保证了系统被带离管控范围时,密钥可以被可靠地销毁。
本文设计的基于环境感知的安全移动存储系统,将加解密、射频识别和实体鉴别技术相结合,可以有效地保障存储设备内的数据安全。系统测试效果良好,可以确保只有授权的用户在管控区域内的合法主机上才能使用设备,并对不同用户和不同级别主机的访问进行了控制;相对于目前常见的加密U盘,本系统独有的双射频环境感知机制,可以保证在系统被带离管控区域时,密钥被安全地销毁。该系统可以应用于各企业机构,从而更好地管控企业内部使用的移动存储设备,保证内部环境的信息安全。
[1]Study:Companies lose millions from missing memory sticks[EB/OL].[2013-06-26].http://www.cio.com.au/article/396622/study_companies_lose_millions_from_missing_memory_sticks/.
[2]Li Yamin,Shi Lin.Design and implementation of encryption filter driver for USB storage devices[C]//IEEE Fourth International Symposium on Computational Intelligence and Design,2011:356-359.
[3]Chen Hanlin.The single-chip solution of embedded USB encryptor[C]//IEEE International Conference on Information Theory and Information Security,2010:42-45.
[4]Yang Fuw-Yi,Wu Tzung-Da,Chiu Su-Hui.A novel mutual authentication scheme for USB storage devices[C]//Proceedings of the 11th International Conference on Information Integration and Web-based Applications &Services,2009:410-413.
[5]Lee Sun-Ho,Yim Kang-Bin,Lee Im-Yeong.A secure solution for USB flash drives using FAT file system structure[C]//13th International Conference on Network-Based Information Systems,2010:487-492.
[6]LI Wei,LIU Jiayong.A security method based on boot sector of logic partition for removable storage medium[J].Journal of Chengdu University of Information Technology,2007,22(1):92-97(in Chinese).[李为,刘嘉勇.一种基于分区引导扇区控制的移动存储介质安全控制方法[J].成都信息工程学院学报,2007,22(1):92-97.]
[7]Kevin RB Butler,Stephen E Mc Laughlin,Patrick D McDaniel.Protecting portable storage with host validation[C]//Pro-ceedings of the 17th ACM Conference on Computer and Communications Security,2010:651-653.
[8]Kevin RB Butler,Stephen E Mc Laughlin,Patrick D McDaniel.Kells:A protection framework for portable data[C]//Proceedings of the 26th Annual Computer Security Applications Conference,2010:231-240.
[9]Takesue Masaru.A scheme for protecting the information leakage via portable devices[C]//The International Conference on Emerging Security Information,Systems,and Technologies,2007:54-59.
[10]Seifert Julian,De Luca Alexander,Conradi Bettina,et al.TreasurePhone:Context-sensitive user data protection on mobile phones[C]//Proceedings of Pervasive Computing,2010:130-137.