本发明专利技术公开了一种基于iOS的应用程序遭遇假面攻击的防御方法,属于移动智能操作系统安全的范畴。本发明专利技术利用认证机制和专属私钥之间的协同作用,来防范不同形式的假面攻击。本发明专利技术的防护机制阻止了两个假面攻击中经常用到的攻击手段,分别是重放攻击和未经验证的应用更新。因此,本发明专利技术的实施,能为假面攻击提供务实和易于实施的解决方案。
【技术实现步骤摘要】
一种基于iOS的应用程序遭遇假面攻击的防御方法
本专利技术属于移动智能操作系统安全的
,具体涉及可信引导、程序签名、沙盒和权限管理以及密钥链技术。
技术介绍
苹果公司在2007年推出了移动智能操作系统iOS,其通过高度的软硬件整合和封闭的操作系统,为iOS移动设备提供强大的安全保护。iOS通过强制执行可信引导、程序签名、沙盒机制和运行时进程安全性,确保了只有可信的代码和应用程序可以在移动设备上运行,附加的加密和数据保护能有效保护移动设备的用户数据。此外,iOS通过强制程序签名和应用沙盒技术,防止了第三方应用加载执行未经授权的代码;并且通过审查应用程序的方式来检测任何的可疑程序操作行为。另外,还利用数字版权管理技术阻止用户在任意安装了iOS的设备之间共享应用来限制恶意应用的传播。为了加强对用户数据的保护措施,iOS设备使用了一系列加密和数据保护功能。为此,iOS设备提供商会为每个第三方应用程序颁发一对公钥和私钥以及证书,强制程序签名,使用密钥,防止第三方应用加载恶意代码。iOS不会允许第三方应用在仅仅通过了验证证书就上架到AppStore(应用程序商店)。另外,它还防止在程序运行时尝试注入恶意代码的动态攻击。通过为每个第三方应用程序定义单个的沙盒配置文件方式,从而实现禁止一个应用程序运行时访问另一个应用程序的代码和数据。此外,在iCloud中还使用了趋势分析,动态列表和内容过滤等多种技术来自动检测并阻止垃圾邮件。尽管采取了上述安全措施,但是对于最近出现的假面攻击却能绕过iOS的对应安全措施。所谓假面攻击,就是利用一系列手段使恶意程序替换掉从AppStore安装的原始应用。通常情况下,假面攻击通过两种方式达到攻击目的:一个是通过配置Ad-hoc(点对点),另外一个是使用企业证书签名。在配置Ad-hoc的情况下,攻击者需要获得目标设备的UDID(设备唯一标识符)。然而获取UDID(设备唯一标识符)的难度非常大,而且该方式会限制安装应用的移动设备的数量。因此攻击者更喜欢使用企业证书签名的方法,采用该方式的另一个好处是企业证书签名的恶意应用程序更容易传播,因为其不需要通过AppStore的审核通过的基础上就可以安装在任何移动设备上。参见图1,采用假面攻击的方式替换AppStore中下载的App(应用程序),利用相同的bundleID(应用唯一标识符)对原有AppStore中的应用程序进行替换的流程如下:1)读取目标应用的bundleID,图1所示的com.company.product则为目标应用的bundleID;2)解压分析从AppStore中下载的原有App(待替换APP),例如版本号为V.1.0;修改替换原有App,得到版本为V.1.1的替换APP:通过企业账户重新签名封装打包,越狱环境下不需要企业账户签名就可直接安装;3)诱导移动设备的用户下载安装攻击者提供的网站的App应用(V.1.1),安装替换包;4)安装完成后打开原有App发现已变为攻击者提供的恶意应用。在解决假面攻击的问题上,若采取限制安装企业证书签名应用程序的移动设备数量的方式,则会阻碍正常的iOS开发;另一方面,禁止包含相同包标识符(bundleID)的应用也是不切实际的,因为其将禁止正常的更新。此外,由于恶意应用程序不需要通过AppStore的审查,很难去验证其企业证书的真实性,再由于iOS的封闭性(禁止外部监控),从而导致通现有处理方式很难阻止包含相同软件包标识符的应用的安装,即现有的iOS的安全措施不能避免假面攻击。
技术实现思路
本专利技术的专利技术目的在于:针对攻击者基于获得的bundleID和版本信息开发具有相同bundleID和下一个版本号的恶意应用程序的假面攻击,提出一种有效的防御方法。本专利技术的一种基于移动智能操作系统iOS的应用程序遭遇假面攻击的防御方法,包括下列步骤:在应用程序的属性列表文件中增加更新信息,所述更新信息包括更新密钥,并通过iOS提供方为应用程序的开发人员颁发的私钥对更新密钥进行签名;当基于iOS的移动终端接收到应用程序安装包,iOS接收到与已安装的应用程序的应用唯一标识相同的更新安装请求时,从属性列表文件中获取更新信息中的签名的更新密钥,并使用iOS设备供应商为应用程序颁发的公钥进行解密;再将解密结果(当前接收到的更新密钥,简称当前更新密钥)与本地的更新密钥(当应用程序在移动设备首次安装成功后,从属性列表文件中获取更新信息中的签名的更新密钥,并使用iOS设备供应商为应用程序颁发的公钥进行解密,得到更新密钥并存储到当前移动上。)进行匹配,若匹配,则运行更新;否则,拒绝。虽然假面攻击者可以基于获得的bundleID(应用唯一标识符)和版本信息开发具有相同bundleID的下一个版本号的恶意应用程序,但是更新密钥不是所有人都可用,即便攻击者可以通过任何方式收集或猜测更新密钥,但是其也不能取得iOS提供方(苹果官方)为原始开发者颁发的私钥。因此,攻击者不能成功地通过本专利技术所提出的认证机制。因为如果没有获得使用私钥签名的更新密钥,iOS将不允许更新,从而实现对假面攻击的有效防御。另外,本专利技术的保护措施不取决于用户对“不受信任的应用程序开发人员”的弹窗警告的响应。无论用户选择了“信任”或“不信任”,在即将更新的应用程序安装包显示出与原应用程序的相同bundleID的情况下,系统会检查被原应用程序的更新密钥(使用iOS提供方给应用程序的开发人员的私钥签名过的)。因此,假面攻击的第一种攻击手段失效。即当系统提示用户是否信任此程序,而恰好用户点击了“信任”按钮,即便如此,恶意应用也不能成功安装。为了解决重攻击的技术问题,本专利技术通过在更新信息中添加更新密钥的随机值,并将更新密钥与随机值进行异或运算后再对更新密钥进行签名;iOS接收到与已安装的应用程序的应用唯一标识相同的更新安装请求时,从属性列表文件中获取更新信息中的随机值,并与当前应用程序中已经存储过的随机值进行匹配,若匹配成功,则拒绝更新;否则使用iOS设备供应商为应用程序颁发的公钥对签名的异或值进行解密后,再与当前接收的随机值进行异或运算,得到当前更新密钥,同时存储当前接收的随机值,即将接收到的对应同一应用程序的随机值在移动设备上进行存储,以用于重攻击的检测;然后,将当前更新密钥与本地的更新密钥进行匹配,若匹配,则运行更新;否则,拒绝。因为重放攻击是绕过认证的最直观的方式之一。如果只给更新密钥使用原始私钥签名,则重放攻击可以成功击破这种防御手段。攻击者可以通过嗅探或任何其他方式窃取签名的更新密钥,再通过重放签名的更新密钥来成功地执行模拟原始开发人员的目标应用的更新。为了防御此种重放攻击,本专利技术采用了除了更新密钥(用符号K表示)之外的随机数N的概念。其中K和N均异或计算过并且被原始开发者的私钥签名。N作为明文发送,使得可以通过公钥对签名的K⊕N进行解密,进而计算出更新密钥K。当安装包到达时,N与本地存储的同一应用程序的随机值进行匹配,以确保没有发生重放攻击。然后,系统使用公钥解密签过名的K⊕N,并再次用N与上一次的异或结果再次进行异或计算,得到更新密钥K。这样,更新密钥K与已经存储的K相匹配以确保认证。如果从目标应用程序的开发人员哪里从未接收到过N,并且更新密钥与已本文档来自技高网...

【技术保护点】
一种基于移动智能操作系统iOS的应用程序遭遇假面攻击的防御方法,其特征在于,包括下列步骤:在应用程序的属性列表文件中增加更新信息,所述更新信息包括更新密钥,并通过iOS设备供应商为程序开发者的私钥对更新密钥进行签名;当基于iOS的移动终端接收到应用程序安装包,iOS接收到与已安装的应用程序的应用唯一标识相同的更新安装请求时,从属性列表文件中获取更新信息中的签名的更新密钥,并使用iOS设备供应商为应用程序颁发的公钥进行解密;再将解密结果与本地的更新密钥进行匹配,若匹配,则运行更新;否则,拒绝;其中本地的更新密钥获取方式为:当应用程序在移动设备首次安装成功后,从属性列表文件中获取更新信息中的签名的更新密钥,并使用iOS设备供应商为应用程序颁发的公钥进行解密,得到更新密钥并存储到本地。
【技术特征摘要】
1.一种基于移动智能操作系统iOS的应用程序遭遇假面攻击的防御方法,其特征在于,包括下列步骤:在应用程序的属性列表文件中增加更新信息,所述更新信息包括更新密钥,并通过iOS设备供应商为程序开发者的私钥对更新密钥进行签名;当基于iOS的移动终端接收到应用程序安装包,iOS接收到与已安装的应用程序的应用唯一标识相同的更新安装请求时,从属性列表文件中获取更新信息中的签名的更新密钥,并使用iOS设备供应商为应用程序颁发的公钥进行解密;再将解密结果与本地的更新密钥进行匹配,若匹配,则运行更新;否则,拒绝;其中本地的更新密钥获取方式为:当应用程序在移动设备首次安装成功后,从属性列表文件中获取更新信息中的签名的更新密钥...
【专利技术属性】
技术研发人员:梁泽华,于鸿洋,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。