高强
摘要:随着智能手机的应用程序开发越来越普及,对应用程序的安全也提出了新的要求,iOS作为智能设备的一种常见的操作系统,应用程序的开发过程中也面临着数据加密的问题,通过对iOS开发中常见的问题进行分析,并对iOS应用开发中数据安全的影响因素进行分析,探讨了iOS系统开发中常用的数据加密技术。
关键词:iOS;应用程序;加密技术
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2021)10-0051-03
iOS智能手机的应用为用户提供了全新的体验,在为用户提供便利的同时,手机的信息安全问题也成为人们关注的热点问题,作为日常生活和工作的重要数据载体,数据安全的保护成为人们关注的重点,iOS数据的安全问题日前显得非常突出,在桌面操作系统的背景下,文件透明加密技术在Windows平台环境中已经得到了广泛的应用,在市场应用下,也出现iOS手机加密技术,但是这些加密技术要求用户在使用这些常用的加密程序或者查看加密文件时都需要验证,不仅降低程序的加密效率,还在一定的程度上造成用户的信息泄露,影响用户对iOS手机的使用体验。
1 iOS系统常用应用分析
在iPhone、iPad等移动终端上,采用iOS系统作为设备运行基础,iOS App常用的应用开发一般采用Xcode,通过利用不同模拟器将不同的iOS版本集成在一起,这种开发应用将iPhone、iPad等苹果公司产品的应用集成在一起,在具体的应用上具有很强的灵活性与适用性,iOS系统在应用中具有如下的优势:
1.1 IOS系统有独特的任务管理机制
iOS系統的常见应用只在运行时占用系统内存,当应用程序不在前台运行时,就不会占用系统的内存,一般情况下,除了部分应用服务,需要必须执行外,App的其他应用都会在10分钟内被挂起,当然被挂起的程序在正常情况是不会被执行的,只是运行的数据驻留在系统的内存中,这种任务管理机制保证了用户在收到相关信息时,能够及时推送给用户,方便用户查看。
1.2 内存管理机制
iOS在执行任何一个具体应用时,系统会根据执行程序的大小申请内存空间,以调用相关的程序,来执行应用操作。如果应用在使用的过程中,出现内存不足不够用时,就会不断地申请应用内存,以满足应用的要求,如果应用超过了系统限定的内存区间,这样手机就会警报,系统就不会执行命令,出现死机的现象。同样,如果iOS应用程序向系统申请内存时,系统就会根据程序运行的情况,自动结束一些运行的程序,释放内存空间资源,以满足系统应用程序的需求。
1.3 伪多任务机制
在iOS应用程序中,在一些程序没有运行时,在用户收到信息时,还需要推送给用户,方便用户及时查看信息。例如,微信,退出后不在后台运行,往往会收到一些信息,这都是系统的自动推送服务功能。在iOS常见的应用中,不管用户是否运行应用程序,iOS系统会根据应用程序的实际情况,在后台维护中提供多种维度任务,所有应用程序共用这一服务,及时将信息推送给用户。
2 影响iOS系统的安全因素
2.1 移动网络安全问题
移动通信网络的安全是保证移动通信有效运行的前提条件,也是保证用户信息不被泄露的前提,同时也能有效保证移动设备不受侵害、损坏。移动通信网络的安全是保证iOS应用开发程序安全有效使用的前提,不仅能提高iOS程序使用的效率,还能提高用户获取的效率与体验。iOS应用程序的使用过程中,主要影响因素是信息安全,由于病毒数据很容易通过网络协议的漏洞入侵到用户的移动通信设备中,在破坏系统数据的同时,还会通过一步步的破解iOS用户的加密口令与密码,来获取用户的通信信息,导致iOS的应用程序不能正常的使用。
2.2 手机操作系统存在的问题
iOS操作系统也是一个不断完善的过程,在日常使用的过程中,往往需要更新补丁,才能提高操作系统的安全性。如果iOS操作系统在受到病毒攻击时,应用程序就会受到影响,造成系统的一些功能不能正常使用,并导致手机运行速度变慢,病毒占用移动通信设备的内存,导致用户不能正常的使用iOS的应用程序,而且病毒的入侵往往会导致用户的账号、密码、信息等资源,给用户造成损失,同时病毒还会对iOS的应用程序造成破坏,盗取用户保存在iOS应用程序的信息,造成用户对iOS应用程序的安全性产生怀疑。而造成移动设备操作系统安全的问题,一般情况下都是用户在手机上安装了一些病毒软件,缺乏手机病毒防范意识,导致操作系统不能正常使用,同时也会影响着iOS应用程序的使用。
2.3 数据使用的影响因素
iOS设备中的数据都存储在系统的存储器中,在iOS应用程序开发的过程中,为了保证应用程序使用的流畅性,都会将程序保存在本地,也方便用户的日常使用及寻找,数据在应用的过程中,往往会产生一些临时数据,也会保存在系统的内存中,iOS系统数据的保存具有多种方式与管理方式,在数据调用的过程中需要对其进行解压,这种数据管理方式也会给病毒带来了可乘之机,会破坏应用程序的使用,进而导致应用程序中的用户信息被泄露,影响用户对iOS应用程序的使用。
3 iOS开发过程中常用的加密技术分析
针对iOS应用程序开发的过程中,往往需要一些数据加密技术,才能保证用户的安全,通过采用的一定的安全组合策略,可以提高iOS应用程序的安全性,也能提高用户对iOS移动终端的体验。
3.1 透明加密技术
透明加密在iOS应用程序开发中常用的加密技术,是一种被动的强制加密技术,它的加密与解密过程是不改变用户操作习惯的环境下完成的,这个过程是在用户不知道的情况下完成的。当用户在打开或者编辑指定文件时,iOS系统会自动的结合实际情况对文件进行加密与解密处理,并对已经加密的文件进行自动解密,如果离开iOS系统环境,已经加密的文件就不能自动解密,进而能够起到对应用程序的保护作用。透明加密技术根据加密位置不同,有以下两种加密方法。
3.1.1 钩子透明加密技术
钩子透明加密技术主要工作在应用层,采用的是用户位置动态加密方法,在系统的应用层完成数据的读取,钩子透明加密技术的原理如图1所示。当用户打开文件时,iOS系统需要对加密的文件进行解密,利用内存的数据写入,保证应用程序调用的数据是明文,从而方便用户获取相应的信息;在保存文件时,iOS系统需要先将内存中的明文数据进行加密,完成数据的调用,例如,将NSData类型对象data写入文件,主要是运用data writeToFile:FileName atomically:YES命令来完成文件的存储,加密模块一般采用对称加密AES算法,采用的密钥长度可以是128位、192位或者256,对文件数据进行保护。在iOS系统中,可以利用 HOOKER API对用户打开和关闭文件,并完成相应的数据安全处理,从而实现对文件的加密技术。目前,iOS系统平台下常用的透明数据加密技术主要采用的工具有 Xposed、HOOK 框架等,运用透明加密技术主要是文件的打开与关闭功能进行静态的加密与备份,并对文件中存在的危险数据进行拦截,透明加密技术可以在不修改手机APK的情况下,实施HOOK 服务,可以实现对整个文件进行加密,但是,这种加密技术的速度较慢,实施的技术比较简单。
3.1.2 文件过滤驱动透明加密技术
该技术主要是通过内核态层实现的,过滤驱动加密技术主要是采用Windows 的文件系统过滤驱动(IFS)技术,对iOS系统的应用程序在读取相应的文件进行检测与拦截,将加密过程与解密过程工作在iOS的内核层内完成。文件过滤驱动透明加密技术在不影响上层和下层接口的情况下,在iOS的驱动层完成文件的解密过程,它能够截获所有的应用程序的文件系统请求,结合应用程序的运行情况,从而不需要修改iOS系统的上层的软件或下层的驱动程序,使得应用程序能够快速的读取或者写入数据,可以快速地加入应用程序的新功能,例如在利用NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary命令写入数据时,都可以采用文件过滤驱动透明加密技术,可以快速的完成数据写入。文件过滤驱动透明加密技术原理如图2所示。它的特点是加密效率高、安全性强,对文件数据的加密与解密过程比较快,从应用程序的关联度来说,该技术能够将所有运行的应用程序进行归类,形成应用程序列表,采用文件过滤驱动透明加密技术与应用程序的工作方式无关,只需要采用监控应用程序列表,实时对iOS系统的应用程序运行状态进行监控。但是,它的技术门槛较高,安全性比较强,需要深入理解Windows与iOS系统内核,且开发难度大,对硬件的配置要求也比较高。在数据处理时,首先,读取iOS应用程序终端的mac地址,并进行相应的操作与变换,然后采用AES算法对文件进行加密,生成相应密钥,进而完成数据的加密。其中,iOS终端在获取设备的mac地址时,需要运用/sys/class/net/wlan0 下的 address的命令调取设备的mac地址,进而能有效地保证系统的安全。
3.2 DES 数据加密算法
DES算法是一种最通用的对称密钥算法,具有破译比较困难的特点,安全性比较高,在iOS系统中作为保护应用程序数据安全的一种重要措施,DES算法主要是通过置换与迭代的方式实现对数据的加密保护,DES算法由64位密钥产生16轮的48位子秘钥,通过每一轮的迭代,数据经过循环移动,产生下一轮的置换数据,通过置换与迭代实现对数据的加密,生成不同的子密钥。在iOS系统平台的应用程序开发中,DES算法实现如下的数据保护应用。
3.2.1 DES算法的改进
在iOS系统平台中,为了进一步提高DES加密算法能够满足iOS平台与服务器的数据加密,需要对设计一个初始化向量,对DES算法进行改进,以满足DES算法的需要。设计的初始化向量为8个字节长度的数组,使得服务器端与iOS客户端应用程序开发的字节数保持一致,这样就能够消除DES数据加密在不同使用环境中的影响,也提高iOS系统平台数据加密的有效性,这种初始化向量具有264种数据组合的方式,采用这种复杂的数据组合方式,能够保证DES数据加密算法在iOS平台上的安全性,达到应用程序开发数据保护的目的,在iOS平台上运用DES加密算法主要包括:加密算法的构建、数据加密与解密的工作模式、加密对象(数据)的填充模式,加密对象cipher是DES加密算法的核心。
3.2.2 构造加密的实例化,对加密对象设置加密的参数
在iOS平台上应用DES 数据加密算法时,首先需要构造 cipher 的具体操作,实现加密对象(数据)的填充,采用的具体命令如下:Cipher cipher = Cipher.getInstance (“DES/CBC/PKCS5Pad-ding”),其中,DES/CBC/PKCS5Pad-ding是cipher的核心内容,它明确的定义了分组块的大小是8位。而对cipher的初始化操作为Cipher.init (ENCRYPT_MODE/key/iv),完成算法的加密模式、密钥的生成、向量初始化等几个内容,然后借助Base64算法完成DES算法的加密与解密。
3.2.3 随机产生密钥
在数据迭代与置换的过程中,需要随机产生密钥,在服务器端与iOS客户端通信过程中,对应用程序数据的加密,采用DES算法不需要使用固定的密钥,通过采用改进后的DES算法,可以快速实现每一次的数据传输,并采用相同长度的密钥,加大数据迭代算法的处理时间,虽然占用一定的计算资源,但是使得DES数据加密算法的安全性得到了进一步提升,也能够进一步保障iOS应用程序使用的安全性。
3.3 逐层控制策略
为了提高iOS平台上应用程序数据的安全性,iOS系统在多处采用逐层加密技术,将硬件保密策略与软件策略结合在一起,以增加文件的安全性。在系统调用相应的应用程序时,采用逐层加密的方法对数据进行保护,有效地防止了病毒对系统应用程序的入侵,逐层控制策略的原理如图3所示。在系统调用文件时,数据保护(data protection)为应用程序生成的文件提供256位的密钥,以完成系统数据的加密工作,该密钥称为Per-File密钥,然后通过密码引擎进行迭代与置换,实现AES-XTS模式下的第一层加密;第二,是根据选择的加密数据,对加密的数据进行封装,形成(wrap)Per-File密钥技术,并对调用数据的元数据(file meta-data)进行加密处理,实现iOS系统数据的第二层加密;第三,采用文件系统密钥(file sys-temkey)技术对调用的元数据进行加密处理,实现系统数据的第三层加密,从而实现iOS系统数据的整体加密。在打开iOS应用程序文件时,对文件的解密过程,主要是执行上述操作的逆过程。
硬件加密采用密钥链(keychain)技术也是一种常用的数据加密技术,它的功能与逐层加密技术相似。主要是采用密钥包(keybag)技术对iOS平台中的数据进行加密处理,并生成相应的保护类密钥,在具体的数据加密过程中,主要包括:用户(us-erkeybag)的数据、设备(device keybag)数据、备份(backupkeybag)数据、第三方托管(escrow keybag)数据、iCloud数据备份(icloud backup keybag)5个加密数据密钥包,在iOS系统中,采用硬件加密技术主要包括类密钥由硬件密钥和口令密钥加密,存储在用户密钥包完成数据的第一层封装与加密,利用密钥来实现对数据进行第二层加密,在数据写入存储文件系统时,采用密钥包完成数据的第三层加密。
4 结束语
通过分析可以看出,在iOS平台上应用程序的开发需要具备完善的数据安全保护技术,能保证用户的信息数据不会被泄露,通过对ISO系统的数据加密技术进行分析,涉及分层加密安全策略、DES加密算法的应用、数据透明加密技术进行分析,结合影响iOS平台应用程序使用的安全问题,分析了iOS开发设计中常用的数据加密技术,在具体的应用中,需要结合具体的应用程序需要,选择合适的数据加密技术。
参考文献:
[1] 李林涛,朱珊虹.基于Android系统的手机游戏黑白棋的设计与实现[J].新乡学院学报(自然科學版),2011,28(3):254-255.
[2] 宋杰,党李成,郭振朝,等.Android OS手机平台的安全机制分析和应用研究[J].计算机技术与发展,2010,20(6):152-155.
[3] 朱天楠,施勇,薛质.基于Xposed的Android透明文件加密系统的研究[J].计算机技术与发展,2017,27(2):64-68.
[4] 赵铭伟,毛锐,江荣安.基于过滤驱动的透明加密文件系统模型[J].计算机工程,2009,35(1):150-152.
【通联编辑:唐一东】