论文部分内容阅读
随着数字化信息的发展,人们的生活节奏也变得越来越快,移动终端成为了这些新型数字服务的重要组成部分和载体。手机是目前使用率最高的移动终端设备主要以IOS和安卓(Android)为主,这两种操作系统为用户提供开放的运行环境。虽然开放的运行环境使得个人移动终端具备个性化功能,有更好用户体验。但这些开放式操作系统是一个不安全的运行环境,会导致设备暴露在越来越多的攻击之下,木马程序、病毒、具备数据窃取功能恶意的软件层出不穷,所引发用户信息泄露、密码被盗取等安全问题激增,也因此诞生了可信执行环境技术。可信执行环境技术通过基于硬件的资源隔离机制将安卓、IOS等富执行环境(Rich Execution Environment,以下简称REE)系统与安全的可信执行环境(Trusted Execution Environment,以下简称TEE)系统进行隔离,安全系统的资源不允许REE端直接访问,并通过一整套访问控制策略和密码算法机制保证用户数据的安全性。目前,TEE技术已经广泛应用于我们的手机支付应用中。人民银行为引导技术产品在我国金融行业健康发展,于2017年发布了GB/T 0156-2017《移动终端支付可信环境技术规范》[1]规范中描述了 TEE技术产品应具备的安全功能和密码算法。另外,于2020年1月正式实施的《中华人民共和国密码法》[2]中提出:交通、金融、水利、能源等关系到国计民生的基础性设施在设计、实施、使用过程中所采用信息安全产品必须使用符合国家密码管理部门认可的密码算法,并着重强调应优先使用国家商用密码算法(SM2、SM3、SM4)。但是目前,TEE技术在国内还处于发展阶段,金融行业所采用的TEE技术产品主要是参考国际标准组织GlobalPlatform(以下简称GP)制定的技术规范进行开发,因此多数TEE技术产品仅支持国际密码算法,其中还包括已经被证明存在安全风险的密码算法(MD5[3]、DES、RSA1024),使用这些高风险密码算法会导致我国金融行业的信息安全建设得不到保障。因此开发一款基于安全密码算法又可兼容目前已有设备的TEE产品成为了迫切需求。经公司讨论后决定采用开源的OP_TEE操作系统开发一款新的TEE操作系统,新的TEE操作系统支持GP TEE规范[4]中安全功能和业务流程,并加入国家商用密码算法保证产品安全性;为保障产品兼容性,新的安全功能接口参考GP规范[5]中应用功能接口(Application Programming Interface,以下简称功能接口)的实现方式,以方便TEE产品开发者和供应商使用。在本次项目中作者的工作是实现SM2、SM3以及SM4算法,并且参考GPTEE规范中调用密码算法的流程和接口实现来完成国产商用密码算法模块的开发工作。本文的主要内容是作者在完成本次工作时的思考和实现过程,首先为了达到项目目标需要了解国内外相关标准的要求,目的是学习新TEE操作系统应具备的安全功能和应用接口,以此进行架构性需求分析;其次深入学习国家商用密码算法的实现以及GP功能接口的调用流程,进行具体的需求分析和工作分解,并以此制定工作安排;然后根据前期所学内容对功能接口和密码算法进行实现设计;最后对模块功能实现的正确性进行验证。项目完成时进行工作总结,对项目过程中的收获和不足进行陈述,并展望今后的工作方向。