论文部分内容阅读
随着应用程序使用场景的复杂化,除了古老的口令认证方式外,一些新型的认证方式开始被应用程序使用。得益于近些年移动互联网和社交网络的发展,手势锁认证和基于OAuth 2.0协议的第三方登录认证被应用程序广泛使用。这两种认证方式虽然提升了用户体验,却也给应用程序的认证机制带来了新的安全威胁。例如,很多应用程序的手势锁认证可以被绕过,导致攻击者可以使用应用程序存储的登录信息直接进行敏感操作。第三方登录的缺陷更是会导致用户账号被攻击者远程劫持。经调研发现,很多软件开发者虽然使用了这两种新型认证方法,却不了解其中的安全问题。因此,本文对这两种最常用的新型认证机制进行了安全研究,挖掘其中可能存在的安全漏洞,并分析漏洞的形成原因,从而让软件开发人员在实现这两种认证机制时避免出现相应的问题。本文创新点及主要工作如下:1.首次在Android平台上研究了应用程序手势锁认证机制的安全问题。分析了Android系统属性对手势锁认证机制的安全影响,并揭示了手势锁认证机制可以被绕过的本质原因:错误的Activity启动模式可以导致手势锁Activity被系统销毁,从而绕过手势锁认证。在此基础上,就如何实现安全的手势锁认证机制和修复手势锁认证绕过漏洞提出了安全建议。2.设计并实现了一套针对手势锁认证机制的漏洞检测系统Lock-Breaker。系统主要采用动态测试方法,通过不断启动对外暴露的Activity来确定手势锁认证机制是否被绕过。利用Lock-Breaker检测了63个应用程序,发现28个应用程序的手势锁认证机制存在安全威胁,并且这28个应用程序中有10个应用程序的手势锁认证机制可以被绕过。3.从漏洞产生源头角度分析了第三方登录的核心——OAuth 2.0协议实现的安全问题,并总结了8种会对第三方登录造成影响的安全漏洞,其中2种来自第三方登录服务提供方,6种来自应用程序自身。基于本文的分析与总结,第三方登录服务提供方和应用程序自身的开发者可以更加明确实现第三方登录认证机制时应当注意的安全问题。4.基于对第三方登录安全问题的分析,设计并实现了针对应用程序第三方登录的漏洞检测系统OAuthLoginVulDetector。来自应用程序自身的影响第三方登录的6种安全漏洞中,有一种可以通过传统XSS(Cross Site Script,跨站脚本攻击)漏洞检测工具检测。因此OAuthLoginVulDetector主要检测另外5种来自应用程序自身的安全漏洞。系统采用模拟攻击的方法对应用程序进行测试,通过cookie差异、重定向地址差异以及响应页面的特征三种方式来判定模拟攻击是否成功,从而确定相应的漏洞是否存在。利用OAuthLoginVulDetector检测了85个应用程序,并对这85个应用程序进行了人工复测确认,发现58个应用程序的第三方登录认证机制至少存在一种安全漏洞,OAuthLoginVulDetector的检测正确率达85.88%。