!#$%&系统中第三方登录漏洞与解决方案cjc.ict.ac.cn/online/onlinepaper/dc-2016226114857.pdf ·...
TRANSCRIPT
书书书
第!"
卷!
第!
期
#$%&
年!
月
计!!
算!!
机!!
学!!
报
'()*+,+-./0*12.3'.45/6+0,
789:!" *8:!
4;<:#$%&
!
收稿日期!
#$%=>%#>%#
"最终修改稿收到日期!
#$%?>$">#":
本课题得到国家自然科学基金青年基金#
&%!$!#%"
$
&%=@#!%$
%&陕西省自然科
学基础研究计划项目#陕西省自然科学基金%#
#$%=-AB#"?
%和中央高校基本科研业务费#
-C%=$!$!
%资助:
董!
超$男$
%""$
年生$硕士研
究生$主要研究方向为网络安全&移动智能计算的安全:+>D;E9
!
FGG<;H
I
J8
I!K
D;E9:G8D:
杨!
超$男$
%"@"
年生$博士$副教授$中国计算
机学会#
''3
%会员$主要研究方向为大数据与云计算的安全&移动智能计算的安全:
马建峰$男$
%"&!
年生$博士$教授$博士生导师$中国
计算机学会#
''3
%会员$主要研究领域为信道编码&密码学&无线和移动安全&系统可生存性:
张俊伟$男$
%"B%
年生$博士$副教授$中国
计算机学会#
''3
%会员$主要研究方向为无线网络安全&密码学&协议的形式化分析与设计:
!"#$%&#
系统中第三方登录漏洞与解决方案
董!
超!
杨!
超!
马建峰!
张俊伟#西安电子科技大学计算机学院
!
西安!
@%$$@%
%
摘!
要!
由于1LF<8EF
系统中的第三方登录服务具有快捷方便&易于使用等优点$因此其在众多互联网厂商中应
用极其广泛:
然而$由于第三方登录服务中对应用155
的身份认证过程存在无人介入的特点$这将导致恶意应用
可以逆向伪造认证信息&获取非法权限等类型的攻击:
针对上述问题$该文对国内两家著名互联网公司所提供的第
三方登录协议进行了研究与分析$通过逆向工程和密码协议分析方法$发现其存在严重的身份信息泄露和权限非
法提升漏洞"同时$在获得相关厂商官方的漏洞确认的基础上$根据实际的安全需求$提出了基于可信第三方的应
用155
身份信息强制验证解决方案$并对该解决方案进行了实现$从有效性&执行性能和兼容性等方面对其进行
了测试与分析评估:
结果表明!该文所提解决方案不仅能够完全防御此类攻击$同时具有性能优兼容性好的特点:
关键词!
第三方登录"
1LF<8EF
安全"协议漏洞分析
中图法分类号65!"!
!!!
'()
号%$:%%B"@
'
,5:-:%$%&:#$%&:$$?B#
*+,-./",$01&/&2&,30"#4%/.2&%"3%5*+&$#670$2
8
9%
:
&"4,$;&<,3
&"!"#$%
8
32,=
M.*N'O;8
!
P1*N'O;8
!
41-E;L>3QL
K!
R(1*N-SL>TQE
#
!"#$$%$
&
'$(
)
*+,-!".,/",0/12,"#/$%$
34
$
5.1.0/6/.7,-8.+
4
$
5.
(
0/
!
@%$$@%
%
!132$0<2
!
1UVOQVOE<F>
W
;<V
I
98
K
ELUQ<XEGQELVOQ1LF<8EFU
I
UVQDEUG8LXQLEQLV;LFQ;U
I
V8SUQ
$
EV
EUYEFQ9
I
;F8
W
VQFJ
I
D;L
I
)LVQ<LQV;
WW
9EG;VE8LU;LFG8D
W
;LEQU:(8YQXQ<
$
JQG;SUQVOQ<QEUL8
8LQV8
W
;<VEGE
W
;LVELVOQ;SVOQLVEG;VE8L
W
<8GQUU8ZVOE<F>
W
;<V
I
98
K
ELUQ<XEGQUZ8<155U
$
D;9EGE8SU
;
WW
9EG;VE8LUG8S9FZ8<
K
QEFQLVEV
I
ELZ8<D;VE8L8Z9Q
K
;9155U;LF8JV;ELSL;SVO8<EHQF<E
K
OV8ZZE9Q
;GGQUU:1EDEL
K
;VVOEU
W
<8J9QD
$
VOEU
W
;
W
Q<UVSFEQU;LF;L;9
I
UQUVOQ;SVOQLVEG;VE8L
W
<8V8G898Z
VOE<F>
W
;<V
I
98
K
ELUQ<XEGQU
W
<8XEFQFJ
I
VY8Z;D8SU)LVQ<LQVG8D
W
;LEQU:6O<8S
K
OVOQDQVO8F8Z
<QXQ<UEL
K
QL
K
ELQQ<EL
K
;LFG<
IW
V8
K
<;
W
OEG
W
<8V8G89U;L;9
I
UEU
$
UQ<E8SUXS9LQ<;JE9EV
I
$
9Q;[;
K
Q8ZEFQLVEV
I
ELZ8<D;VE8L;LF;JSUQ8ZZE9Q;GGQUU<E
K
OV
$
EUZ8SLFELVOQVOE<F>
W
;<V
I
98
K
ELUQ<XEGQUDQLVE8LQF
;J8XQ:1ZVQ<8JV;ELEL
K
VOQ8ZZEGE;9G8LZE<D;VE8L8ZVOQXS9LQ<;JE9EV
I
Z8SLFZ<8DVOQVY8Z;D8SU
)LVQ<LQVG8D
W
;LEQU
$
VOEU
W
;
W
Q<
W
<8
W
8UQU;LQY;SVOQLVEG;VE8L
W
<8V8G89Z8<VOQVOE<F>
W
;<V
I
98
K
EL
UQ<XEGQUV8G8D
W
S9U8<E9
I
;SVOQLVEG;VQ155U
(
EFQLVEZEG;VE8LYEVOVOQOQ9
W
8Z;V<SUVQFVOE<F
W
;<V
I
:
6OQ
W
<8
W
8UQFU89SVE8LEUED
W
9QDQLVQF;LFQX;9S;VQFZ<8D;U
W
QGVU8ZQZZQGVEXQLQUU
$
W
Q<Z8<D;LGQ
;LFG8D
W
;VEJE9EV
I
:6OQ<QUS9VU8ZVOQVQUVUO8YVO;VVOQ
W
<8
W
8UQFU89SVE8LG;LG8D
W
9QVQ9
I
FQZQLUQ
;
K
;ELUVUSGO;VV;G[UDQLVE8LQF;J8XQ
$
;LFO;UVOQ;FX;LV;
K
QU8ZOE
K
O
W
Q<Z8<D;LGQ;LF
K
88F
G8D
W
;VEJE9EV
I
:
>,
8
?%$#3
!
VOE<F>
W
;<V
I
98
K
EL
"
1LF<8EFUQGS<EV
I
"
W
<8V8G89XS9LQ<;JE9EV
I
;L;9
I
UEU
@
!
引!
言
随着移动互联网的高速发展$涌现出越来越丰
富的互联网服务$如团购&订票等:
随之而来的问题
是$用户必须针对每个服务进行注册并记忆&管理复
杂的账号密码$执行繁琐的登录流程后才能使用之:
为了解决此问题$出现了第三方账号登录的解决方
案:
简单来讲$第三方账号登录就是当没有1
应用
服务的账号时$可使用与1
应用服务合作的第三方
账号#例如AA
号&新浪微博账号%来登录1
应用服
务:
这种场景越来越多见于团购&酒店预定和机票预
定等应用:
由于第三方登录服务具有快捷方便&易于
使用等优点$其在众多互联网服务厂商中应用极其
广泛"
:
第三方登录服务的特点是!要对用户和应用
155
两个实体同时认证$即第三方登录服务商除了
要对用户的合法身份进行认证外$其还需对应用
155
的身份进行认证$以确定该应用155
已经注
册$并具有合法的用户数据访问权限:
通过该二次认
证机制$第三方登录服务商能够对第三方登录服务
进行有效的权限控制:
然而$对这两者的身份认证存在着显著差异$其
中对应用155
的身份认证存在着巨大的安全隐患:
具体来讲$第三方登录服务商对用户的认证使用安
全可靠的技术方案$例如$基于(665,
保护的用户
名\
密码验证方案"其对用户认证的私密信息通常
由用户自行保存$一般通过记忆存储在人类大脑中$
所以该私密信息被窃取的可能性很低:
但是$在对应
用155
的认证中$具有无人介入的特点$因此$其用
于认证的应用155
的机密信息$例如155
(
U)M
&
155
签名等只能保存在自身应用155
的程序代码
中$而应用155
本身#程序代码编译后的可执行文
件%对于普通用户和攻击者来说却是完全公开和容
易获取的:
所以$通过逆向工程和反汇编等手段$恶
意攻击者便可对第三方应用进行分析与破解#$%
$
从而盗取其用于身份认证的机密信息$并利用该信
息$冒充合法应用$骗取第三方登录服务提供商的认
证授权$对用户账户实施恶意操作或权限滥用等
攻击)
%>!
*
:
文献)
=
*通过检查浏览器与服务器之间的数据
流$对商用的TQJ
单点登录认证协议进行了分析与
安全性评估$并发现了几个逻辑缺陷$最后给出了相
应的解决方案$该研究具有一定的应用意义$但其未
涉及第三方登录的安全问题"文献)
?
*提出了一种新
的基于角色和证书的单点登录认证机制$可以实现
第三方身份认证服务器缺失情况下的单点登录认
证$并通过仿真测试给出了方案的性能边界$但其所
提出的认证方案需要提前进行角色分配和高计算量
的公钥操作$不适用于移动计算的环境"文献)
&
*对
分布式计算机网络中的单点登录机制的安全性进行
了分析$发现了前人提出的单点登录机制中的缺陷$
提出了两种攻击方案$并给出了改进方案$但其方案
也没有解决第三方登录中应用155
机密信息泄露
的安全问题"文献)
@
*提出了一种跨域的信任建立机
制$在没有可信第三方帮助的情况下$可以实现单点
登录$并使用基于图的优化算法提高跨域信任建立
的效率$但该解决方案所针对的跨域认证问题与第
三方安全登录问题具有较大的差异性"文献)
B
*基于
集中式的信任管理模型$提出了一种联合身份认证
管理$用于解决跨企业间不同用户的身份认证和授
权管理$但该解决方案不能用于解决应用155
的第
三方安全登录问题:
综上所述$上述文献所研究的单
点登录认证机制与本文所针对的移动终端第三方登
录服务存在本质区别!传统的单点登录认证仅涉及
到浏览器&第三方身份认证服务器和应用服务器$而
移动终端第三方登录服务则涉及应用155
&第三方
账号应用155
和第三方账号认证服务器三个不同
的实体:
而且$其认证流程和协议也完全不同$因此
其方案均不能用于第三方的安全登录问题:
同时$据
我们所知$现有文献中还没有涉及移动终端第三方
登录服务的安全漏洞挖掘&分析与改进的研究工作:
针对第三方登录潜在的安全缺陷$本文对国内
两个主流的互联网公司$腾讯和新浪$在1LF<8EF
平
台上所提供的第三方登录服务的安全性进行了分析
与研究$结果发现!腾讯提供的,,.
#
,EL
K
9Q,E
K
L
.L
%
&登录方式及新浪提供的TQJ
登录方式存在着
严重的安全漏洞$恶意应用可以通过伪造身份信息$
伪装成合法第三方应用$非法获取用户在该平台的
操作权限$并实施账户的恶意操作和权限滥用等攻
!B?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
"
#
$
%
&
C9SQ0QUQ;<GO:'8LUSDQ<5Q<GQ
W
VE8LU8Z.L9ELQ0Q
K
EUV<;>
VE8L ;LF ,8GE;9,E
K
L>)L:OVV
W
!''
]
;L<;EL:G8D
'
G8LUSDQ<>
<QUQ;<GO>U8GE;9>UE
K
LEL#$%!
$
%
1*M0.)M915̂ 6..2:1 V889Z8<<QXQ<UQQL
K
ELQQ<EL
K
1LF<8EF;
W
[ZE9QU
)
+C
'
.2
*
:OVV
W
U
!''
G8FQ:
K
88
K
9Q:G8D
'
W
'
;LF<8EF>;
W
[V889
'
#$%=
$
%#
$
"
M9N/):1UV;LF;98LQ
K
<;
W
OEG;9SVE9EV
I
VO;VFEU
W
9;
I
U-;X;
U8S<GQG8FQU8Z
+
G9;UU
,
ZE9QU
)
+C
'
.2
*
:OVV
W
!''
]
F:JQL8Y:
G;
'
#$%=
$
%#
$
"
M+_#-10:6889UV8Y8<[YEVO;LF<8EF:FQ̀ ;LF
]
;X;:G9;UU
ZE9QU:OVV
W
U
!''
G8FQ:
K
88
K
9Q:G8D
'
W
'
FQ̀#
]
;<
'
#$%=
$
%#
$
"
,EL
K
9QUE
K
L>8L:OVV
W
!''
QL:YE[E
W
QFE;:8<
K
'
YE[E
'
,EL
K
9Q
-
UE
K
L>
8L#$%=
$
"
$
%$
击:
相关漏洞和缺陷已经提交给上述两家公司$并得
到了正面的漏洞确认和官方的感谢:
同时$本文针对
上述漏洞提出了相应的解决方案$并对其进行了实
现和评估:
测试结果表明$所提出的解决方案可以完
全克服所发现的漏洞和缺陷$提供高安全级别的第
三方登录中应用155
的身份认证$并在性能及兼容
性上具有较大的优势:
本文的主要贡献如下!
#
%
%新问题:
据我们所知$
1LF<8EF
平台上第三
方登录服务中的应用身份认证缺陷问题是首次提
出$对于此类问题的研究将提高互联网公司对第三
方应用身份认证机制安全性的重视$降低了可能存
在的攻击风险"
#
#
%新方案:
通过对此类问题的研究$我们提出
了新型的&高安全强度的第三方登录应用155
的身
份认证方案"
#
!
%实现和评估:
我们在1LF<8EF
系统上对所
提出的解决方案进行了实现$并从有效性&性能&兼
容性三个方面对解决方案进行了评估$结果表明$所
提方案在保证高安全强度的前提下具有较好的性能
和兼容性:
本文第#
节对发现的漏洞缺陷进行描述$并对
其攻击原理进行分析"第!
节针对发现的漏洞缺陷$
提出相应的安全解决方案$并对该方案进行实现"第
=
节从有效性&性能和兼容性!
个方面对所提出解
决方案进行测试与评估"第?
节对全文总结:
A
!
漏洞与攻击
国内第三方登录服务厂商主要提供,,.
&
TQJ
和'8FQ
这!
种第三方登录方式:
然而$由于'8FQ
登录方式需要将应用155
的认证信息保存在第三
方登录服务对应的155
安装包内$此方式存在诸多
安全隐患$绝大多数第三方登录服务提供商均不建
议使用这种登录方式$因此本文仅仅对,,.
和TQJ
第三方登录方式进行分析与研究:
AB@
!
44(
登录方式漏洞与攻击
国内某著名互联网公司为TQJ
网站&智能终
端&数字媒体等应用在1LF<8EF
操作系统中提供开
放平台的支持:
该开放平台一方面借助其庞大的用
户账号群优势$为用户提供方便快捷的&基于,,.
方式的第三方登录服务"另一方面为第三方应用
155
提供针对用户账号相关数据的访问权限和访
问接口$方便第三方应用155
的开发:
然而$该平台所提供的,,.
第三方登录服务存
在巨大的安全隐患:
具体来讲$该开放平台及其在移
动终端中的主应用155
在收到第三方应用155
的
登录请求后仅根据第三方应用所提交的身份信息进
行鉴别与认证$而并未对真实的&正在进行信息交互
的第三方应用的真实身份进行验证"而且$由于该认
证过程没有人的介入$其用于155
认证的身份信
息$例如第三方应用155
(
U)M
&签名等直接保存在
自身应用155
的文件中$对于攻击者来说$这些机
密的身份信息几乎是完全公开和较易获取的:
因此$
该平台所提供的基于,,.
方式的第三方登录服务
存在假冒和欺骗的安全漏洞:
具体登录协议和漏洞
利用如下:
在,,.
第三方登录服务中$第三方应用155
通过1LF<8EF
操作系统的)LVQLV
机制"将其身份信
息发送至主应用155
"主应用155
验证用户的账
号信息$并利用(665,
协议将第三方应用155
的
身份信息转发给第三方登录服务器进行验证"对第
三方应用155
的身份进行验证后$第三方登录服务
器根据用户操作$对第三方应用155
的用户私有数
据访问权限进行一次性授权$从而完成第三方登录
服务$具体流程如图%
所示:
图%
!
第三方登录,,.
登录方式
#
%
%符号约定
6
!第三方应用"
1
!主应用"
,
!第三方登录服务
器"
,M̂
!第三方登录软件开发库,M̂ :
#
#
%
,,.
第三方登录流程
"
6
"
1
!
68[QL61
第三方登录请求!第三方应用通过平台提供的
,M̂
将其)M
&签名&包名等信息发至主应用$发起
第三方登录请求"
#
1
"
,
!
SUQ<L;DQ
#W
;UUY8<F
标准用户登录流程!主应用检查用户是否已经
登录主应用$若用户还未登录主应用$则要求用户使
用用户名&密码登录主应用"
=B?
计!!
算!!
机!!
学!!
报#$%&
年
" )LVQLVU;LF)LVQLV3E9VQ<U:OVV
W
!''
FQXQ98
W
Q<:;LF<8EF:G8D
'
K
SEFQ
'
G8D
W
8LQLVU
'
ELVQLVU>ZE9VQ<U:OVD9#$%=
$
"
$
%$
$
1
"
,
!
68[QL1,
认证第三方应用!主应用将第三方应用的)M
&
签名&包名等信息发送至第三方登录服务器,
$
,
验
证第三方应用身份是否合法"
%
,
"
1
!
<Q
a
SQUV
-
V8[QL
请求用户授权!主应用在第三方应用身份被验
证合法的情况下$请求用户对第三方应用进行用户
数据访问行为授权"
&
用户授权!在验证第三方应用身份合法的情
况下$弹出授权窗口$由用户对其进行授权"
'
1
"
,
!
;998Y
-
V8[QL
用户允许授权!主应用将用户允许授权信息发
送至第三方登录服务器,
"
(
,
"
1
!
;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
发送授权密钥!第三方登录服务器将授权密钥
发送至主应用"
)
1
"
6
!
;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
获得授权密钥!主应用将授权密钥发送至第三
方应用"
其中!
*%C,"*!D*%C,"!4DUG8
W
Q
#
G9EQLV
-
EF
#
8;SVO
-
;
WW
-
L;DQ
#
UE
K
L
#
VEDQ
$,
E
.,32
-
2%C,"D8;SVO
-
G8LUSDQ<
-
[Q
I#
G8L>
USDQ<
-
UQG<QV
#
8;SVO
-
G;99J;G[
#
8;SVO
-
L8LGQ
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
XQ<UE8L
#
<Q
a
SUV
-
V8[QL
-
S<9
#
;SVO8<EHQ
-
S<9
#
;GGQUU
-
V8[QL
-
S<9
0//%?
-
2%C,"D8;SVO
-
L8LGQ
#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
G8LUSDQ<
-
[Q
I#
8;SVO
-
V8[QL
#
8;SVO
-
XQ<EZEQ<
#
8;SVO
-
UE
K
L;VS<Q
经过上述协议流程$第三方应用可在不获取用
户名&密码的情况下$以第三方应用的身份完成第三
方登录操作$并获得用户文件部分的访问权限:
然
而$在上述登录流程中$主应用未能对第三方应用身
份进行有效验证$存在安全漏洞:
即在图%
步%
中第
三方应用通过第三方登录,M̂
发送至主应用的
)M
&签名&包名等信息可以通过逆向工程被静态反
编译所获取$并且由于这些信息长期不变$因此存在
伪造和冒充的攻击:
恶意应用可以通过伪造该参数$
从而伪装成合法第三方应用欺骗主应用及用户并在
图%
步B
中通过回调函数接收到用户授权密钥获得
非法授权$具体的攻击流程如图#
所示:
图#
!
第三方登录,,.
登录方式漏洞攻击
#
%
%约定
4
!恶意应用"
1
!主应用"
,
!第三方登录服务
器"
,M̂ b
!恶意构造的登录,M̂ :
#
#
%
,,.
第三方登录攻击流程
"
4
"
1
!
68[QL41
#
1
"
,
!
SUQ<L;DQ
#W
;UUY8<F
$
1
"
,
!
68[QL1,b
%
,
"
1
!
<Q
a
SQUV
-
V8[QL
&
在验证4
身份合法的情况下$弹出授权窗
口$由用户对4
进行第三方登录操作进行授权"
'
1
"
,
!
;998Y
-
V8[QL
(
,
"
1
!
;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
)
1
"
4
!
;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
其中!
*%C,"F!D*%C,"!4GDUG8
W
Q
#
G9EQLV
-
EF
#
8;SVO
-
;
WW
-
L;DQ
#
UE
K
L
#
VEDQ
$,
E
.,32
-
2%C,"D8;SVO
-
G8LUSDQ<
-
[Q
I#
G8L>
USDQ<
-
UQG<QV
#
8;SVO
-
G;99J;G[
#
8;SVO
-
L8LGQ
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
XQ<UE8L
#
<Q
a
SUV
-
V8[QL
-
S<9
#
;SVO8<EHQ
-
S<9
#
;GGQUU
-
V8[QL
-
S<9
0//%?
-
2%C,"D8;SVO
-
L8LGQ
#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
G8LUSDQ<
-
[Q
I#
8;SVO
-
V8[QL
#
8;SVO
-
XQ<EZEQ<
#
8;SVO
-
UE
K
L;VS<Q
在此攻击中$恶意应用首先通过签名工具获得
合法第三方应用的签名信息"再通过对合法第三方应
用的安装包进行反汇编$从1LF<8EF4;LEZQUV:̀D9
文件中获得合法第三方应用的包名信息"然后通过
反汇编合法第三方应用二进制代码$获得合法第三
方应用的)M
$至此就能破获合法第三方应用的所有
身份认证信息:
恶意应用使用上述的合法)M
&签名&包名等第
三方应用身份信息$通过构造恶意的第三方登录
,M̂
流程$使用1LF<8EF
操作系统)LVQLV
机制对主
应用提出登录请求$即图#
中步%
所示"恶意应用发
?B?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
起请求后$用户将看到主应用提示是否对合法第三
方应用进行授权"因为用户信任第三方应用的合法
性$因此易对此登录请求授权而且不需要输入密码"
若用户对此次第三方登录请求允许授权$或用户曾
对此合法第三方应用的登录请求授权过$恶意应用
就能通过回调函数接收授权密钥$即图#
中步B
所
示"随后$恶意应用便可以从服务器,
返回的数据
中$读取出用户的$
)
,/.1
&
0"",88
-
+$:,/
等信息$非
法获得用户权限:
通过此漏洞和缺陷$恶意应用可伪造合法第三
方应用的身份信息$非法获取用户对合法第三方应
用的授权$从而冒充第三方应用的身份对用户账号
进行恶意操作$其带来的危害是以非法授权的方式
调用开放平台向第三方应用开放的所有15)
$主要
包括!访问用户资料&访问用户相册&分享内容到微
博等权限:
通过上述授权15)
$恶意应用相当于拥有
了用户账号大部分的操作权限$能够完成大量恶意
操作$因此其影响及其恶劣与广泛:
此安全漏洞已提交至该互联网公司$并得到该
公司官方的漏洞确认$现正协助其进行漏洞修补与
新方案设计:
ABA
!
H,1
登录方式漏洞与攻击
国内另一著名互联网公司在其开放平台中对
1LF<8EF
操作系统的第三方应用提供了,,.
&
TQJ
和'8FQ
这!
种第三方登录服务$该平台拥有数量庞
大的用户群及优秀的信息传播功能$并提供了丰富
的服务接口:
然而$该开放平台所提供的基于TQJ
的第三方登录服务同样存在类似的漏洞与缺陷:
具
体来讲$该开放平台仅根据第三方应用所提交的身
份信息进行鉴别$而未对真实的&正在进行信息交互
的第三方应用155
的真实身份进行验证"而且$
155
的)M
&签名等敏感的认证信息仅保存在应用
155
的程序文件中$这对于攻击者来说是可以通过
逆向工程和反编译而破译截获的:
因此$该平台所提
供的基于TQJ
方式的第三方登录服务存在身份假
冒和非法授权的安全漏洞:
具体登录协议和漏洞利
用如下:
在该平台所提供的第三方登录服务TQJ
登
录方式中$第三方应用通过1LF<8EF
操作系统中
TQJ7EQY
控件使用(665,
协议将第三方应用身
份认证信息发送至第三方登录服务器$发起第三方
登录请求"第三方登录服务器验证用户账号和第三
方应用身份后$根据用户操作给第三方应用授权用
户私有文件访问的权限$具体如图!
所示:
图!
!
第三方登录TQJ
登录方式
#
%
%约定
6
!第三方应用"
,
!第三方登录服务器"
,M̂
!第
三方登录软件开发库,M̂ :
#
#
%基于TQJ
方式第三方登录流程
"
6
"
,
!
<QASQUV
第三方登录请求!第三方应用通过该平台,M̂
向第三方登录服务器,
发起登录请求"
#
6
"
,
!
SUQ<L;DQ
#W
;UUY8<F
标准用户登录流程!第三方登录服务器,
检查
用户是否已经登录$若用户还未登录$则要求用户使
用其用户名&密码进行登录"
$
6
"
,
!
;
WW
)M
#
UE
K
L
#W
;G[;
K
Q*;DQ
认证第三方应用!第三方应用将其)M
&签名&包
名等信息发送至第三方登录服务器,
$
,
验证其应
用身份是否合法"
%
,
"
6
!
<Q
a
SQUV
-
V8[QL
请求用户授权!在第三方应用身份被验证合法
情况下$请求用户对第三方应用进行用户数据访问
行为授权"
&
用户授权!在验证第三方应用身份合法的情
况下$弹出授权窗口$由用户对其进行授权"
'
6
"
,
!
;998Y
-
V8[QL
用户允许授权!主应用将用户允许授权信息发
送至第三方登录服务器,
"
(
,
"
6
!
;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
发送授权密钥!第三方登录服务器将授权密钥
发送至第三方应用"
其中!
$,
E
.,32
-
2%C,"D8;SVO
-
G8LUSDQ<
-
[Q
I#
G8L>
USDQ<
-
UQG<QV
#
8;SVO
-
G;99J;G[
#
8;SVO
-
L8LGQ
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
XQ<UE8L
#
<Q
a
SUV
-
V8[QL
-
S<9
#
;SVO8<EHQ
-
S<9
#
;GGQUU
-
V8[QL
-
S<9
0//%?
-
2%C,"D8;SVO
-
L8LGQ
#
8;SVO
-
UE
K
L;VS<Q
-
&B?
计!!
算!!
机!!
学!!
报#$%&
年
DQVO8F
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
G8LUSDQ<
-
[Q
I#
8;SVO
-
V8[QL
#
8;SVO
-
XQ<EZEQ<
#
8;SVO
-
UE
K
L;VS<Q
经过上述协议流程$恶意的第三方应用可在不
获取用户的用户名&密码情况下$冒充合法第三方应
用的身份完成第三方登录操作:
具体来讲$该开放平
台TQJ
登录方式未能对第三方应用身份进行有效
确认$在图!
步%
中第三方应用通过该平台第三方
登录,M̂
发送至第三方登录服务器的)M
&签名&包
名等信息容易被静态反编译获取$并且由于这些信
息长期不变$因此存在伪造和冒充的攻击:
恶意应用
可以通过伪造该参数$从而伪装成合法第三方应用
欺骗主应用及用户$并通过回调/02
接收到用户
授权密钥$攻击流程如图=
所示:
图=
!
第三方登录TQJ
登录方式漏洞攻击
#
%
%约定
4
!恶意应用"
,
!第三方登录服务器"
,M̂ b
!恶
意构造的登录,M̂ :
#
#
%基于TQJ
方式恶意第三方登录流程
"
4
"
,
!
<QASQUV
#
4
"
,
!
SUQ<L;DQ
#W
;UUY8<F
$
4
"
,
!
;
WW
)M
#
UE
K
L
#W
;G[;
K
Q*;DQ
%
,
"
4
!
<Q
a
SQUV
-
V8[QL
&
在验证4
身份合法的情况下$弹出授权窗
口$由用户对4
进行第三方登录操作进行授权"
'
4
"
,
!
;998Y
-
V8[QL
(
,
"
6
!
;
WW
)M
#
;GGQUU68[QL
#
8
W
QL)M
#
Q̀
W
E<QU)L
其中!
$,
E
.,32
-
2%C,"D8;SVO
-
G8LUSDQ<
-
[Q
I#
G8L>
USDQ<
-
UQG<QV
#
8;SVO
-
G;99J;G[
#
8;SVO
-
L8LGQ
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
XQ<UE8L
#
<Q
a
SUV
-
V8[QL
-
S<9
#
;SVO8<EHQ
-
S<9
#
;GGQUU
-
V8[QL
-
S<9
0//%?
-
2%C,"D8;SVO
-
L8LGQ
#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
G8LUSDQ<
-
[Q
I#
8;SVO
-
V8[QL
#
8;SVO
-
XQ<EZEQ<
#
8;SVO
-
UE
K
L;VS<Q
在此攻击中$恶意应用首先通过该平台提供
的签名工具获得合法第三方应用的签名信息"再通
过对合法第三方应用的安装包进行反汇编$从
1LF<8EF4;LEZQUV:̀D9
文件中获得合法第三方应用
的包名信息"接着通过反汇编合法第三方应用二进
制代码$从中获得其身份)M
$至此就能获得合法第
三方应用的所有身份认证信息:
恶意应用使用上述合法第三方应用的)M
&签
名&包名等身份信息$通过构造恶意的第三方登录
,M̂
$使用1LF<8EF
操作系统TQJ7EQY
控件对第
三方登录服务器提出登录请求$即图=
中步%:
恶意
应用发起请求后$用户将看到主应用提示是否对合
法第三方应用进行授权$因为用户信任第三方应用
的合法性$因此易对此登录请求授权而且不需要输
入密码:
若用户对此次第三方登录请求允许授权$或
用户曾对此合法第三方应用的登录请求授权过$恶
意应用就能通过回调/02
截获授权密钥$即图=
中步@
所示:
恶意应用可以从返回的数据中$读取合
法应用的$
)
,/.1
&
0"",88
-
+$:,/
等敏感信息$并非法
获得访问用户数据的授权:
通过此漏洞和缺陷$恶意应用可伪造合法第三
方应用的身份信息$非法获取用户对合法第三方应
用的授权$从而冒充第三方应用的身份对用户账号
进行恶意操作$其带来的危害是能调用该开放平台
向第三方应用开放的所有15)
$包括!获取用户信
息&发布微博&评论微博等权限:
通过上述授权15)
$
恶意应用相当于拥有了用户账号大部分的操作权
限$能够完成大量恶意操作$因此其影响及其恶劣与
广泛:
此安全漏洞已提交至该互联网公司$并得到该
公司官方的漏洞确认$现正协助其进行漏洞修补与
新方案设计:
I
!
解决方案
IB@
!
解决方案思路
由于1LF<8EF
系统的开放性$应用能够通过众
多途径进行分发与安装$因此应用的安装包极容易
被获得$应用的二进制代码也能够通过反汇编等手
段对其进行逆向分析$并获得机密的认证信息和安
全协议的执行流程等:
因此$
1LF<8EF
系统中的应用
很难隐藏算法过程或安全存储机密信息:
而认证的
本质是被认证方向认证方展示其独有的机密信息$
或者展示其独有的密码学计算能力$从而排除非法
@B?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
用户身份欺骗的可能性:
然而$在第三方登录场景中
对第三方应用进行身份认证时$由于安装包中的认
证流程和机密信息均易被逆向工程获得$并且不
需要用户参与输入额外的验证信息$导致当前的
认证方案均无法保证此认证流程的安全性:
因此$
1LF<8EF
系统中应用155
的身份认证是一个巨大
的挑战$仅凭借应用自身$几乎不能与服务器形成安
全有效的认证:
通过对1LF<8EF
系统和第三方认证
流程的上述分析发现$要完成安全有效的身份认证$
需要满足以下两个条件:
#
%
%存在一个可利用的可信第三方
1LF<8EF
操作系统及其系统调用设计优良$恶
意软件很难绕过系统安全防护机制对应用进行破坏
与修改$所以基本可以认为1LF<8EF
系统是一个可
以借用的&安全可靠的可信第三方:
#
#
%可信第三方必须参与并控制认证流程
尽管恶意应用可以伪造机密信息并伪装合法应
用的交互行为$但恶意应用一旦调用系统函数$例如
进行)LVQLV
请求'(665
请求$均会在1LF<8EF
系
统中留下真实的身份信息$且1LF<8EF
系统提供了
获取这些信息的15)
接口:
因此$若需要在1LF<8EF
操作系统中实现对第
三方应用155
身份的可靠与安全验证$可以让第三
方登录服务提供商借助1LF<8EF
操作系统这个可信
第三方$增强对第三方应用的身份认证能力:
在1LF<8EF
操作系统中$应用155
的包名用
来标示应用的身份信息$但由于155
包名可以任意
填写$则攻击者可以使用合法应用的包名并在
1LF<8EF
系统中安装成功$因此$对应用身份的认证
并不能仅仅根据包名信息"而且$由于1LF<8EF
系统
中应用安装包均具有数字签名$此签名是由应用开
发者所生成并签名的$因此签名信息非常难被伪造:
综上所述$可以借助1LF<8EF
操作系统作为可信第
三方$获得请求服务的应用155
的真实包名&签名
信息$来唯一确定该应用的身份:
对于前述的两种认证协议漏洞$其产生的根本
原因在于第三方登录服务提供商无法对第三方应用
自行提交的身份信息的合法性进行有效验证:
针对
此问题$分别针对,,.
第三方登录方式的漏洞和基
于TQJ
第三方登录方式的漏洞提出解决方案$以增
强第三方登录服务提供商对第三方应用身份验证的
能力:
IBA
!
44(
登录方式漏洞解决方案
从前述的协议漏洞分析可知$恶意应用可通过
伪造合法应用155
的身份信息骗取主应用和第三
方认证服务器的信任$并非法获得权限:
解决方案的
主要思路是$对主应用进行修改$当主应用接收到第
三方应用登录请求时$主应用通过1LF<8EF
操作系
统这个可信第三方提供的15)
主动获取真实的第
三方应用的签名&包名等信息$并与第三方应用传入
的认证参数进行对比检查$判断第三方应用所提供
的身份认证信息是否真实$从而解决第三方应用
通过伪造签名&包名骗取主应用和第三方认证服
务器的信任$非法获取权限的安全性问题$修补和
增强1LF<8EF
操作系统中第三方登录功能身份认证
能力:
解决方案主要对图%
中步%
修改为以下=
个步
骤$具体如图?
所示:
图?
!
第三方登录,,.
登录方式漏洞解决方案
第三方登录,,.
登录授权漏洞解决方案执行
流程如下:
#
%
%
6
"
1LF<8EF
!
5[
K
,E
K#
5[
K
*;DQ
第三方应用发起第三方登录请求
"
第三方应用创建)LVQLV
对象;,
<
*,8+
$用于
发起第三方登录请求"
#
第三方应用将签名=:
3
!.
3
作为参数填入
)LVQLV
对象;,
<
*,8+
中"
$
第三方应用将包名=:
3
>0(,
作为参数填入
)LVQLV
对象;,
<
*,8+
中"
%
第三方应用通过1LF<8EF
操作系统提供的
UV;<V1GVEXEV
I
38<0QUS9V
发起;,
<
*,8+
请求"
#
#
%
1LF<8EF
"
1
!
5[
K
,E
K#
5[
K
*;DQ
主应用接收第三方登录请求
"
主应用通过注册接口W
<8VQGVQFX8EF8L'<Q;VQ
#
CSLF9QU;XQF)LUV;LGQ,V;VQ
%获取第三方登录请求
;,
<
*,8+
"
#
主应用通过1LF<8EF
操作系统提供的3
,+9
!+-./
3
?@+-0
函数从;,
<
*,8+
中读取第三方应用传
递的签名=:
3
!.
3
"
$
主应用通过1LF<8EF
操作系统提供的3
,+9
BB?
计!!
算!!
机!!
学!!
报#$%&
年
!+-./
3
?@+-0
函数从;,
<
*,8+
中读取第三方应用传
递的包名=:
3
>0(,
"
#
!
%
1
"
1LF<8EF
!
0Q;95[
K
*;DQ
#
0Q;95[
K
,E
K
>
L;VS<QU
主应用查询身份信息
"
主应用通过1LF<8EF
操作系统提供的3
,+9
'0%%./
3
A"+.7.+
4
函数及3
,+=0":0
3
,>0(,
函数从
;,
<
*,8+
中获得第三方应用包名;,0%=:
3
>0(,
"
#
主应用根据包名;,0%=:
3
>0(,
通过1LF<8EF
操作系统提供的包管理器中3
,+=0":0
3
,B/
&
$
函数
获得包签名;,0%=:
3
!.
3
/0+*-,8
"
$
主应用通过1LF<8EF
操作系统提供的4QUU;
K
Q>
ME
K
QUV
类库中1.
3
,8+
函数计算;,0%=:
3
!.
3
/0+*-,8
的4M?
摘要;,0%=:
3
!.
3
"
#
=
%对比身份信息!
"
主应用将=:
3
!.
3
与;,0%=:
3
!.
3
对比$若
一致则继续$否则身份检测失败"
#
主应用将=:
3
>0(,
与;,0%=:
3
>0(,
对
比$若一致身份验证成功$否则身份验证失败:
#
?
%其他步骤同正常登录授权流程:
通过以上步骤$主应用可以完成对第三方应用
155
合法身份的验证:
IBI
!
H,1
登录方式漏洞解决方案
由于TQJ
登录方式中恶意应用通过类似的漏
洞与缺陷可伪造身份信息对第三方登录服务器进行
欺骗并获得非法授权$因此$其解决方案的思路与
,,.
登录方式的漏洞解决方案类似$即需要借助某
个可信第三方$让其参与认证流程$并获取认证协议
参与方的真实身份信息来阻止此类攻击:
具体来讲$
基于TQJ
第三方登录漏洞的解决方案借用1LF<8EF
操作系统中的TQJ7EQY
系统控件作为可信第三
方$并对其进行修改完成对认证能力的增强:
在
1LF<8EF
操作系统中$应用程序通过创建TQJ7EQY
对象$并对此对象调用%$016-%
'
)
$8+6-%
函数启动
TQJ7EQY
$
TQJ7EQY
将对服务器发起一次(665
协议N+6
'
5.,6
方法请求$在该请求中可以将应
用程序所传递的参数$比如身份信息$添加至请求
包包头中$完成这次请求:
本解决方案通过修改
%$016-%
'
)
$8+6-%
函数$在其中获取第三方应用
155
的真实身份信息并将之添加至请求报头部$从
而完成以TQJ7EQY
系统控件为可信第三方$在其
(665
协议N+6
'
5.,6
方法的请求数据包添加身
份认证信息$进而增强第三方对应用155
的认证
能力:
本解决方案包括N+6
'
5.,6
方法两个部分$
这两个部分解决方案相同$均是在请求包中添加认
证信息来增强认证能力$区别在于实施步骤的位置
分别为'Z<;DQY8<[U
'
YQJXEQY
'
GO<8DESD
'
]
;X;
'
G8D
'
;LF<8EF
'
YQJXEQY
'
GO<8DESD
'
TQJ7EQY'O<8DESD:
]
;X;
文件中%$016-%
函数和)
$8+6-%
函数$如图&
所示:
图&
!
第三方登录TQJ
登录方式漏洞解决方案
第三方登录TQJ
登录授权漏洞解决方案执行
流程
#
%
%
6
"
,
!
W
;G[;
K
Q9L;DQ
#W
;G[;
K
Q9UE
K#
)M
#
(;UO
"
获取请求数据包包头对象C,01,-8
!检查
C,01,-8
对象是否为空$若其为空$则创建C08#D0
)
.
!+-./
3
$
!+-./
3
/作为C,01,-8
对象"若不为空$则
本步骤结束"
#
移除C,01,-8
对象中包名&签名字段!
#
E
%判断C,01,-8
对象+
)
0":0
3
,9/0(,
,字段是
否存在$若不存在$则完成此步"若存在$则删除此字
段内容"
#
EE
%判断C,01,-8
对象+
)
0":0
3
,98.
3
,字段是否
存在$若不存在$则完成此步"若存在$则删除此字段
内容"
$
获取当前线程所属应用程序包名=:
3
>0(,
!
通过1LF<8EF
操作系统提供的A"+.7.+
4
2#-,01
类
库中"*--,/+=0":0
3
,>0(,
函数获取当前应用程序
包名=:
3
>0(,
"
%
获取当前线程所属应用程序签名=:
3
!.
3
/09
+*-,8
!
#
E
%获取当前线程所属的包管理器=:
3
D
3
-
!通
过1LF<8EF
操作系统提供的A"+.7.+
4
2#-,01
类库
中3
,+=0":0
3
,D0/0
3
,-
函数获取当前进程所属的
包管理器=:
3
D
3
-
"
#
EE
%根据包名=:
3
>0(,
通过包管理器=:
3
D
3
-
获取当前包的包信息=:
3
B/
&
$
!通过1LF<8EF
操作
系统提供的A"+.7.+
4
2#-,01
类库中3
,+=0":0
3
,B/
&
$
函数根据包名=:
3
>0(,
获取当前线程所属的包信
息=:
3
B/
&
$
"
"B?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
#
EEE
%通过包信息=:
3
B/
&
$
获取当前包的签名
=:
3
!.
3
/0+*-,8
!通过包信息=:
3
B/
&
$
的UE
K
L;VS<QU
属性获得当前包签名=:
3
!.
3
/0+*-,8
"
&
计算=:
3
!.
3
/0+*-,8
的4M?
摘要=:
3
!.
3
!
通过1LF<8EF
操作系统提供的D,880
3
,E.
3
,8+
类库
中1.
3
,8+
函数计算=:
3
!.
3
/0+*-,8
的4M?
摘要
=:
3
!.
3
"
'
将包名&签名添加至C,01,-8
对象!
#
E
%将包名=:
3
>0(,
添加至C,01,-8
对象
+
)
0":0
3
,9/0(,
,字段"
#
EE
%将 签 名=:
3
!.
3
添加至C,01,-8
对 象
+
)
0":0
3
,98.
3
,字段"
#
#
%检查用户登录状态$若用户已登录$则继
续"若用户未登录$则弹出登录框$请求用户登录"
#
!
%
6
"
,
!
SUQ<L;DQ
#W
;UUY8<F
#
=
%
,
"
6
!
<Q
a
SQUV
-
V8[QL
#
?
%
6
"
,
!
;998Y
-
V8[QL
#
&
%
6
"
,
!
68[QL
#
@
%获取68[QL
$进行权限内操作:
其中!
$,
E
.,32
-
2%C,"D8;SVO
-
G8LUSDQ<
-
[Q
I#
G8L>
USDQ<
-
UQG<QV
#
8;SVO
-
G;99J;G[
#
8;SVO
-
L8LGQ
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
XQ<UE8L
#
<Q
a
SUV
-
V8[QL
-
S<9
#
;SVO8<EHQ
-
S<9
#
;GGQUU
-
V8[QL
-
S<9
0//%?
-
2%C,"D8;SVO
-
L8LGQ
#
8;SVO
-
UE
K
L;VS<Q
-
DQVO8F
#
8;SVO
-
VEDQUV;D
W#
8;SVO
-
G8LUSDQ<
-
[Q
I
#
8;SVO
-
V8[QL
#
8;SVO
-
XQ<EZEQ<
#
8;SVO
-
UE
K
L;VS<Q
*%C,"D;
WW
-
EF
#
;GGQUU
-
V8[QL
#
8
W
QLEF
#
Q̀
W
E<QU
-
EL
至此已将身份认证信息添加至请求包包头$第
三方登录服务提供商服务器可以完成对第三方应用
的身份认证:
J
!
解决方案评估
JB@
!
评估场景与方案
本小节从有效性&性能和兼容性!
个方面对所
提出的解决方案进行测试与评估$具体的评估场景&
评估方案和数据分析如下:
#
%
%评估场景
使用一台)LVQ9'8<QE?>!=@$=
核!c#$N(H
'5/
&
BNC
内存&
?$$NC
机械硬盘&
/JSLVS%#c$=
操作系统的5'
$在其上安装1LF<8EF
虚拟机对原始
方案和解决方案进行评估:
#
#
%评估方案
在有效性测试与分析中$首先对解决方案的有
效性进行理论分析$分析其是否能达到认证的安全
性需求"然后进行漏洞补救前后的对比测试$验证方
案的真实有效性:
在性能测试与评估中$采用-;X;
语言精度达到
%LU
的/0/$2.(,
#%函数对解决方案的代码运行时
间进行测试$分别收集每个解决方案的多次测量结
果$比较解决方案实施前后的性能差异$分析解决方
案的执行效率:
在兼容性评估中$从现有协议及操作系统的兼
容性两个方面对解决方案的兼容性进行分析:
JBA
!
解决方案有效性分析与测试
=c#c%
!
,,.
登录方式漏洞解决方案有效性分析
在前述的第三方,,.
登录方式漏洞解决方案中$
由于第三方应用通过)LVQLV
对象调用8+0-+A"+.7.+
4
9
F$-;,8*%+
#%函数向主应用提出请求$因此主应用可
以通过3
,+'0%%./
3
A"+.7.+
4
#%系统函数获得调用者
的1GVEXEV
I
$由于这里获得的1GVEXEV
I
是操作系统
所提供的$因此能够保证其正确性"而基于获得的
1GVEXEV
I
$可以通过3
,+=0":0
3
,>0(,
#%系统函数获
得调用者真实的包名$同理$该包名也是由操作系统
保证的$因此能够保证包名的正确性"基于所获包
名$主应用可通过包管理器获得应用的签名信息$这
里获得的签名也是操作系统所保证的$因此也不存
在造假的可能:
至此$主应用能够通过1LF<8EF
操作系统获得
第三方应用真实的包名&签名信息$因此主应用能够
对第三方应用的身份进行安全有效的验证:
同时$针对该漏洞解决方案的效果评估$我们对
目标应用进行了攻击实验$实验中恶意应用可以利
用此漏洞假冒合法应用的身份$骗取认证服务器的
信任$欺骗用户对其请求进行授权$并非法读取用户
端隐私数据和进行非法操作$具体的测试与对比如
图@
所示:
通过非法获取用户的授权$恶意应用可以进行
恶意的越权操作$例如获取用户信息$使用用户账号
进行微博发送等$具有较大的破坏力和影响力:
同时$也实现了前述,,.
第三方登录方式漏洞
的解决方案$即主应用通过可信第三方1LF<8EF
系
统的帮助$对恶意应用的)LVQLV
调用来源进行真实
的身份获取和比对$可以完全实现区分恶意应用与
合法第三方应用的身份$测试结果如图B
所示:
$"?
计!!
算!!
机!!
学!!
报#$%&
年
图@
!
,,.
恶意应用冒充合法应用授权请求
图B
!
,,.
恶意应用的真实身份
本解决方案成功获取了请求者的真实包名&签
名等身份信息$从而可以对恶意应用和合法应用进
行区分$达到了高安全级别的应用155
身份认证和
鉴权:
=c#c#
!
TQJ
登录方式漏洞解决方案有效性分析
在前述基于TQJ
第三方登录方式漏洞的解决
方案中$由于第三方应用通过(665
协议对第三方
登录服务器提出请求$本解决方案则对发送(665
请求的TQJ7EQY
控件进行修改$在每次请求中添
加真实的身份认证信息以抵抗假冒攻击:
具体来讲$
通过"*--,/+=0":0
3
,>0(,
#%函数获得当前应用的
包名$由于此函数由1LF<8EF
操作系统提供$因此能
够保证获取包名的正确性"基于所获包名$主应用可通
过包管理器获得该应用的签名信息$这里获得的签名
也是操作系统所提供的$因此也不存在造假的可能:
至此$基于TQJ7EQY
的解决方案能够将真实
的第三方应用的包名&签名信息获取并强制添加至
(665
请求数据包包头中$使得第三方登录服务提
供商服务器能够对第三方应用的身份的真实性进行
安全有效的验证:
针对该漏洞解决方案的效果评估$进行了攻击
实验:
实验中恶意应用可利用此漏洞假冒合法应用
的身份$骗取认证服务器的信任$欺骗用户对其授权
请求进行授权$从而非法读取用户端隐私数据和进
行非法操作$测试结果如图"
所示:
同时$也实现了基于TQJ
第三方登录方式漏洞
的解决方案$即主应用通过可信第三方TQJ7EQY
图"
!
TQJ
恶意应用冒充合法应用授权请求
系统控件的帮助$对恶意应用的(665
请求来源进
行真实的身份获取和比对$可以完全实现区分恶意
应用与合法第三方应用的身份$具体的测试结果如
图%$
所示:
图%$
!
TQJ
恶意应用的真实身份
本解决方案成功获取了请求者的真实包名&签
名等身份信息$从而可以对恶意应用和合法应用进
行区分$达到了高安全级别的应用155
身份认证和
鉴权:
JBI
!
解决方案性能测试与分析
=c!c%
!
,,.
登录方式漏洞解决方案性能测试与分析
在,,.
第三方登录方式漏洞解决方案中$本文
基于1LF<8EF
可信第三方$对主应用进行修改$增加
了额外的第三方应用身份验证的代码:
新增代码的
执行增加了整个验证过程的计算时延$但没有增加
认证数据的传输量:
本节中分别测量了,,.
第三方
登录方式原始方案的时间消耗$以及本文所提出的
%"?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
解决方案的额外时间消耗$并对两者进行对比:
实验
结果表明$所提出的解决方案对原始认证方案的执
行总时间几乎没有影响$即解决方案具有较高的执
行效率:
对原始,,.
登录方式分别进行了?$
次登录
测试$其登录时间消耗如图%%
所示$平均耗时为
%B&#!cBDU:
图%%
!
第三方,,.
登录方式原始方案执行时间
同时$对本解决方案的代码执行时间进行了
?$
次测试$数据如图%#
所示$其平均运行时间为
%$cB&#DU:
图%#
!
第三方,,.
登录方式漏洞解决方案执行时间
如图%!
对比所示$本文所提出的解决方案对
于原始方案的执行总时间仅仅增加了$c$?B!d
$几
乎可以忽略不计$即该解决方案具有较高的执行
效率:
图%!
!
第三方,,.
登录方式执行时间对比
=c!c#
!
TQJ
登录方式漏洞解决方案性能测试与分析
在基于TQJ
第三方登录方式漏洞解决方案中$
本文基于TQJ7EQY
可信第三方$对其进行了修改$
在其(665
请求包的头部增加了第三方应用身份
信息及其验证代码:
新增代码的执行增加了整个验
证过程的计算时延$也增加了认证数据的传输量:
本
节分别测量了基于TQJ
第三方登录方式原始方案
的时间开销和空间开销$以及本文所提解决方案额
外增加的时间和空间开销$并对两者进行了对比$实
验结果表明$所提出的解决方案的时间和空间开销
分别增加了$c%#d
和%!c@d
$就执行时间来讲$对
原始认证方案几乎没有影响"就空间开销来讲$虽然
增加了一些额外的认证数据$但对原始方案的执行
时间几乎没有影响$又因为网络传输的主要时延存
在于建立连接过程和网络时延$所以解决方案具有
较高的执行效率:
本文对原始TQJ
登录方式进行?$
次登录测
试$其登录时间消耗如图%=
所示$平均耗时为
#!""c&DU:
图%=
!
第三方TQJ
登录方式原始方案执行时间
同时$对本解决方案代码的执行时间进行了
?$
次测试$数据如图%?
所示$其平均运行时间为
#c"=DU:
图%?
!
第三方TQJ
登录方式漏洞解决方案执行时间
如图%&
对比所示$本文所提出的解决方案对于
原始方案的执行总时间只增加了$c%#d
$几乎可以
忽略不计:
由于每次第三方登录请求传输的数据量相同$
因此不需要多次测试:
本节首先对原始TQJ
登录方
#"?
计!!
算!!
机!!
学!!
报#$%&
年
图%&
!
第三方TQJ
登录方式时间性能对比图
式进行第三方登录测试$其登录请求包为&#B
个字
节:
同时$又对解决方案代码进行了测试$其登录请
求包新增了B&
个字节$用于传输应用的身份认证
信息:
因此$解决方案较原始方案的传输数据量增加
了%!c@d
$但由于网络传输中的主要时延存在于连
接建立过程和网络时延$因此增加的数据量对认证
方案的执行效率几乎没有影响:
JBJ
!
解决方案兼容性分析
=c=c%
!
,,.
登录方式漏洞解决方案兼容性
#
%
%第三方登录协议兼容性!本解决方案对主
应用增加了身份验证功能$对第三方登录协议其他
步骤并未做任何修改$第三方应用及第三方登录服
务提供商服务器均不需要针对该解决方案做任何更
新或修改$即本解决方案与现有第三方登录协议具
有较好的兼容性:
#
#
%
1LF<8EF
操作系统兼容性!因为无需修改
1LF<8EF
操作系统$所以对1LF<8EF
操作系统及
1LF<8EF
操作系统上其他应用均无影响$即本解决
方案具有较好的操作系统兼容性:
=c=c#
!
TQJ
登录方式漏洞解决方案兼容性
#
%
%第三方登录协议兼容性!本解决方案在
(665
请求包包头添加了第三方应用的身份信息$
但对第三方登录协议其他步骤并未做任何修改$添
加额外头部信息对于(665
协议也完全兼容:
第三
方登录服务提供商服务器仅仅需要提取并验证此认
证信息即可$并且对第三方应用不需要做任何修改$
即本解决方案与现有第三方登录协议具有较好的兼
容性:
#
#
%
1LF<8EF
操作系统兼容性!由于需要修改
1LF<8EF
操作系统中TQJ7EQY
控件$因此可能会对
使用TQJ7EQY
控件的其他应用产生影响:
为此$本
文对修改后的TQJ7EQY
控件及其使用进行了测
试$结果表明$修改后的TQJ7EQY
控件可以正常启
动和工作$使用该控件的应用155
$如美团&
AA
等$
均能正常运行$即本解决方案具有较好的系统兼
容性:
K
!
结束语
本文分析研究了移动终端应用的第三方登录协
议中身份认证协议的安全问题$并具体针对腾讯&新
浪等公司的第三方登录服务进行反编译分析$研究
其认证登录流程$并发现了其存在的漏洞与缺陷$相
关公司也对该漏洞进行了官方确认:
经过对漏洞的
深入研究$本文分别针对第三方登录服务,,.
&
TQJ
登录方式的漏洞$提出了相应的解决方案$并从有效
性&性能&兼容性!
个方面对解决方案进行了评估$
并与存在漏洞的厂商合作$对该问题进行了完全的
修复:
参 考 文 献
)
%
*
M;XE2
$
MDEV<EQL[81
$
,;FQ
K
OE1>0
$
QV;9:5<EXE9Q
K
QQUG;9;VE8L
;VV;G[U8L ;LF<8EF
''
5<8GQQFEL
K
U8ZVOQ%!VO)LVQ<L;VE8L;9
'8LZQ<QLGQ8L)LZ8<D;VE8L,QGS<EV
I
:C8G;0;V8L
$
/,1
$
#$%%
!
!=&>!&$
)
#
*
N<;GQ4
$
RO8SP
$
T;L
K
R
$
QV;9:,
I
UVQD;VEGFQVQGVE8L8Z
G;
W
;JE9EV
I
9Q;[UELUV8G[;LF<8EFUD;<V
W
O8LQU
''
5<8GQQFEL
K
U8Z
VOQ%"VO 1LLS;9,
I
D
W
8UESD 8L *QVY8<[;LF MEUV<EJSVQF
,
I
UVQD,QGS<EV
I
:,;LMEQ
K
8
$
/,1
$
#$%#
$
%
!
!>B
)
!
*
(S5
$
P;L
K
0
$
2EP
$
QV;9:1
WW
9EG;VE8LED
W
Q<U8L;VE8L
!
5<8J9QDU8Z.1SVO;LF15)FQUE
K
LEL8L9ELQU8GE;9LQVY8<[U
''
5<8GQQFEL
K
U8ZVOQ#LF+FEVE8L8ZVOQ1'4 '8LZQ<QLGQ8L
.L9ELQ,8GE;9*QVY8<[U:MSJ9EL
$
)<Q9;LF
$
#$%=
!
#@%>#@B
)
=
*
T;L
K
0SE
$
'OQL,OS8
$
T;L
K
_E;8>3QL
K
:,E
K
LEL
K
DQ8LV8
I
8S<;GG8SLVUVO<8S
K
O3;GQJ88[;LFN88
K
9Q
!
1V<;ZZEG>
K
SEFQF
UQGS<EV
I
UVSF
I
8ZG8DDQ<GE;99
I
FQ
W
98
I
QFUEL
K
9Q9UE
K
L>8L TQJ
UQ<XEGQU
''
5<8GQQFEL
K
U8ZVOQ#$%#)+++,
I
D
W
8UESD8L,QGS<EV
I
;LF5<EX;G
I
:T;UOEL
K
V8LM'
$
/,1
$
#$%#
!
!&?>!@"
)
?
*
6<;L6
$
,JQEVE4
$
TEQVZQ9F':1L8XQ9<89Q9;LFGQ<VEZEG;VQ9
J;UQFUEL
K
9QUE
K
L>8LU
I
UVQDZ8<QDQ<
K
QLG
I
<QUGSQ8
W
Q<;VE8LU
''
5<8GQQFEL
K
U8ZVOQ#$%%)+++)LVQ<L;VE8L;9'8LZQ<QLGQ8L
'8DDSLEG;VE8LU
#
)''
%
:̂
I
8V8
$
-;
W
;L
$
#$%%
!
%>&
)
&
*
T;L
K
NSE>2EL
$
PS-E;L
K
>,O;L
$
_EQAE:,QGS<EV
I
;L;9
I
UEU8Z;
UEL
K
9QUE
K
L>8L DQGO;LEUDZ8<FEUV<EJSVQFG8D
W
SVQ<LQVY8<[U:
)+++6<;LU;GVE8LU8L)LFSUV<E;9)LZ8<D;VEGU
$
#$%#
$
"
#
%
%!
#"=>!$#
)
@
*
CO8LU9Q4 7
$
5889U;
WW
;UEV*
$
4;F<E;,^:+6),
0
+ZZEGEQLV
V<SUV;LFEFQLVEV
I
D;L;
K
QDQLVU
I
UVQDZ8<ZQFQ<;VQFUQ<XEGQ
W
<8XEFQ<U;FX;LGQFELZ8<D;VE8L
''
5<8GQQFEL
K
U 8ZVOQ)+++
#@VO)LVQ<L;VE8L;9'8LZQ<QLGQ8L*QVY8<[EL
K
;LF1
WW
9EG;VE8LU
#
1)*1
%
:C;<GQ98L;
$
,
W
;EL
$
#$%!
!
#%">##&
!"?
!
期 董!
超等!
1LF<8EF
系统中第三方登录漏洞与解决方案
)
B
*
-E;L
K
-E;L
$
MS;L(;E>_EL
$
2EL6;8
$
QV;9:1ZQFQ<;VQFEFQLVEV
I
D;L;
K
QDQLVU
I
UVQD YEVOGQLV<;9EHQFV<SUV;LFSLEZEQF,EL
K
9Q
,E
K
L>.L
''
5<8GQQFEL
K
U8ZVOQ&VO)LVQ<L;VE8L;9)',6'8LZQ<QLGQ
8L'8DDSLEG;VE8LU;LF*QVY8<[EL
K
EL'OEL;
#
'()*1'.4
%
:
(;<JEL
$
'OEL;
$
#$%%
!
@B?>@B"
'(LMN+0%
$
J8<LEL%""$
$
4:,:
G;LFEF;VQ:(EUGS<<QLV<QUQ;<GOELVQ<QUVU
ELG9SFQLQVY8<[UQGS<EV
I
$
D8JE9QG8D
W
S>
VEL
K
UQGS<EV
I
:
O!LMN+0%
$
J8<LEL%"@"
$
5O:M:
$
;UU8GE;VQ
W
<8ZQUU8<:
(EU<QUQ;<GOELVQ<QUVUELG9SFQG<
IW
V8
K
<;
W
O
I
;LFELZ8<D;VE8L
UQGS<EV
I
;LFLQVY8<[UQGS<EV
I
:
F!P&0"6Q,"
:
$
J8<LEL%"&!
$
5O:M:
$
W
<8ZQUU8<:(EU
<QUQ;<GOELVQ<QUVUELG9SFQGO;LLQ9G8FEL
K
$
G<
IW
V8
K
<;
W
O
I
$
YE<Q9QUU;LFD8JE9QUQGS<EV
I
$
U
I
UVQDUS<XEX;JE9EV
I
:
RS!LM P."6H,&
$
J8<LEL %"B%
$
5O:M:
$
;UU8GE;VQ
W
<8ZQUU8<:(EU<QUQ;<GOELVQ<QUVUELG9SFQYE<Q9QUULQVY8<[
UQGS<EV
I
$
G<
IW
V8
K
<;
W
O
I
$
Z8<D;9;L;9
I
UEU ;LF FQUE
K
L Z8<
W
<8V8G89U:
T0<C
:
$%."#
!!
1LF<8EFUD;<V
W
O8LQU;<QYEFQ9
I
SUQFELVOE<F>
W
;<V
I
98
K
EL
UQ<XEGQUZ8<
a
SEG[;LFQ;U
I
$
JSVVOE<F>
W
;<V
I
98
K
EL
W
<8V8G89U8Z
UQGS<EV
I
LQQFV8JQED
W
<8XQF:68F;
I
J8VO;VO8DQ;LF
;J<8;FZ8<VOE<F>
W
;<V
I
98
K
EL5<8V8G89<QUQ;<GO;9U8Z8GSUQU8L
W
<8V8G89FQUE
K
LU;ZQV
I
9QXQ9U
$
;LFVOQ<QZ8<QVOQ 5<8V8G89
ED
W
9QDQLV;VE8LU
W
QGEZEGEUUSQEUL8VYQ99UVSFEQF:6OEU
W
;
W
Q<
Z8GSUQU8LVOQF8DQUVEG)LVQ<LQV;VV;G[U8L1LF<8EF
W
9;VZ8<D
W
<8XEFQF J
I
VOQVOE<F>
W
;<V
I
98
K
EL UQ<XEGQU
$
XS9LQ<;JE9EV
I
Q̀EUVUELVOQFEUG8XQ<
IW
<8GQUUZ8<;SVOQLVEG;VE8L8ZEFQLVEV
I
$
U8VOEU
W
<8J9QDEU
W
<8
W
8UQFZ8<VOQZE<UVVEDQ:C;UQF8LVOEU
V
IW
Q8ZXS9LQ<;JE9EV
I
<QUQ;<GO
$
YQ
W
<8
W
8UQFU89SVE8LU
$
;LF
VOQED
W
9QDQLV;VE8L;LFQX;9S;VE8L:,89SVE8LUV8;FF<QUUVOEU
V
IW
Q8Z;VV;G[
$
;LFELG<Q;UQVOQ;JE9EV
I
8Z;
WW
9EG;VE8L8LVOQ
1LF<8EF
W
9;VZ8<D;SVOQLVEG;VE8L
$
VOEU;SVOQLVEG;VE8LDQVO8F
EUL8V8L9
I
FQUE
K
LQFZ8<VOE<F>
W
;<V
I
98
K
EL5<8V8G89:
6OEUY8<[JQ
K
;L;U;
W
;<V8ZVOQ<QUQ;<GO
W
<8
]
QGV
+
6OQ8<
I
;LFDQVO8FUZ8<
W
<8V8G89UQGS<EV
I
VQUVEL
K
J;UQF8LUQGS<EV
I
;VV<EJSVQUD8FQ9EL
K
#
&%!$!#%"
%,$
YOEGOEUUS
WW
8<VQFJ
I
VOQ
*;VE8L;9*;VS<;9,GEQLGQP8SVO38SLF;VE8L5<8
]
QGV;LFVOQ
,O;L̀E5<8XELGQ*;VS<;9,GEQLGQ38SLF;VE8L0QUQ;<GO5<8
]
QGV:
TQO;XQ D;FQU8DQ<QUQ;<GO Y8<[
$
USGO;U
+
5<8X;J9Q
.YLQ<UOE
W
8Z3E9QUEL MQ9FS
W
9EG;VE8L '98SF,V8<;
K
Q
)
-
*,
W
SJ9EUOQF8L9ELQEL,QGS<EV
I
;LF'8DDSLEG;VE8L *QVY8<[U
#
,')
%!
%"-/2 #$%!
$+
5<8X;J9Q .YLQ<UOE
W
8Z3E9QEL
MQ9FS
W
9EG;VE8L '98SF ,V8<;
K
Q
)
'
*,
W
SJ9EUOQF EL )+++
N2.C+'.4 #$%!
$
MQGQDJQ<">%!
$
5;
K
Q
#
U
%!
&"?>@$$
$
1V9;LV;
$
NQ8<
K
E;
$
/,1:6OEU<QUQ;<GO
W
<8
]
QGVD;EL9
I
VQUVU
VOQ;
WW
9EG;VE8L
W
<8V8G89UQGS<EV
I
$
G8DJELQFYEVOVOQ
W
<;GVEG;9
;
WW
9EG;VE8L8ZVOQ8<
I
VQUVEL
K
DQVO8FU:
="?
计!!
算!!
机!!
学!!
报#$%&
年