基于OAuth2.0协议的授权登录国内应用现状研究
2019-10-21朱博昌
摘 要:平台化是互联网发展的大趋势,为了解决当中的身份验证问题,2010年OAuth协议被提了出来。OAuth2.0协议因为安全、便捷等特性很快被众多互联网平台采纳,与API(Application Programming Interface,开放应用程序编程接口)配合为用户提供丰富多彩的网络服务。为了研究OAuth2.0协议应用现状,本文对使用该协议的平台和接入平台的第三方进行了研究,并根据研究结果对协议的优势和潜在的安全特性进行了分析,最后提了出相关使用建议。
关键词:开放平台;OAuth2.0;授权登录
中图分类号:TP393.08 文献标识码:A 文章编号:2096-4706(2019)20-0151-04
Absrtact:Platform is the main trend of internet development. In order to solve the identity authentication problem,OAuth protocol was proposed in 2010. Because of its security and convenience,OAuth 2.0 protocol is quickly adopted by many internet platforms,and cooperates with application programming interface(API) to provide users with rich and colorful network services. In order to study the application status of OAuth 2.0 protocol,this paper studies the platform using the protocol and the third party accessing the platform. According to the research results,the advantages and potential security characteristics of the protocol are analyzed. Finally,some suggestions are put forward.
Keywords:open platform;OAuth 2.0;authorized login
1 背景
随着Web2.0技术的发展,网络应用迎来了“井喷”,这些应用充斥着人们的生活,在满足了互联网用户各种需求的同时,也让互联网信息变得杂乱无章,使得用户信息的搜寻和管理变得愈发困难。Web3.0是新一代网络应用的统称,它继承了Web2.0的所有特点并在此基础上提供了更加高效、精确、个性化的服务,协助用户从网络纷繁复杂的海量信息中找到自己所需要的那一部分(面向Web3.0的分众分类研究)。尽管国内外学者对于Web3.0有不同的定义和理解,但可以肯定的是个性化的信息聚合和平台化的信息交互是Web3.0的一个发展方向。
2007年5月份,Facebook宣布改版,最早提出了开放平台的概念,正式从一个社交网站向一个社交应用平台转型[1]。开放平台为第三方开发者提供了一整套“开放API”,通过帮助第三方调取开放平台上用户储存的个人信息,来达到数据互联共享的目的,第三方平台让网络公司的服务从单一的社交升级为围绕社交账户而展开的包括学习、娱乐、网上购物、出行等一系列网络服务,一站式满足用户个性化需求。国内网络公司也效仿Facebook推出了自己的开放平台,随着接入平台的开发者逐渐增多,平台的功能也越来越丰富,并逐渐形成一个完整的生态。
开放平台和接入平台的开发者并不属于同一家公司,用户想要使用平台内的应用就需要授权开发者调度用户储存在平台内的个人信息,一般情况下,将用户的用户名和密码直接提供给开发者是一种不安全的行为。OAuth2.0协议正好规避了这一不安全行为,在用户不向开发者提供账号密码的前提下,授权其访问用户储存在平台内的数据。
1.1 OAuth2.0協议介绍
OAuth(Open Authorization)又称开放认证,2010年OAuth1.0被IETF认定为互联网标准协议,OAuth2.0是OAuth1.0的升级版且不兼容OAuth1.0,主要支持Web应用、桌面应用、移动终端、家庭设备等应用环境。它的主要特点有:开发简单,支持PHP、Java Script等多种语言开发包;运行机制安全,通过令牌授权访问,不会泄露用户的账号和密码;运行环境开放,支持PC端、移动端等多种设备和运行环境[2]。
OAuth2.0协议通常以“授权登录”“合作账户登录”或者“第三方登录”等形式出现在各种网站和应用的登录页面上(接入平台的网站或应用一般被称为“第三方”,但当用户使用开发者服务时,开放平台有时也会被称为“第三方”),与API配合使用。用户在登录之后,开发者可获得用户的昵称、头像等信息,并且根据平台的实际情况,开发者甚至能获得用户的关系链等更为重要的个人信息。
授权登录操作简单,用户点击进入登录页面,在“授权登录”分类中有多家平台图标,用户一般会选择已注册过且常用的的开放平台,随后进入平台授权页面,在这个网页中用户须确认网站调用个人信息的种类并阅读相关协议,用户输入平台的账号密码或者手机扫描二维码后,就可以凭借开放平台用户的身份使用该网站的服务。在这一简单操作的背后,是三个角色之间的数据交互,这三个角色包括用户、开放平台(以下简称“平台”)和第三方网站或应用(以下简称“第三方”)。
OAuth2.0协议授权方式流程大致如下:
(1)第三方通过授权服务器或者授权登录页面向用户请求权限。
(2)用户同意授权,第三方从用户端接收到一个访问第三方资源服务器的许可。
(3)第三方使用自己的私有证书在平台的鉴权服务器进行鉴权,请求访问令牌。
(4)鉴权服务器验证通过,为第三方颁发访问令牌。
(5)第三方利用令牌向平台的资源服务器请求访问受保护的用户信息。
(6)资源服务器验证令牌的有效性,为第三方提供相应的用户信息。
1.2 OAuth2.0应用现状研究
OAuth2.0协议在国内应用已经较为普及,随之出现的新特征在信息组织和信息安全领域有着一定的研究意义,但是目前尚无学者对OAuth协议的使用情况进行研究。本文利用互联网对OAuth协议的使用情况进行了收集、整理和分析。站长之家(http://www.chinaz.com)是国内知名网络基础服务提供方,提供的数据有较强的权威性,其网站排名服务共收录了57545个网站,综合Alexa、百度权重、Google的PR值、反链数等多个参考标准,对这些网站进行了综合排序和种类划分,后文提及网站分类皆以此网站为依据。
2 数据选取和规则
本文选取了站长之家7月21日综合排名前200的网站,根据这些网站的域名情况进行筛选,例如新浪网和新浪汽车频道同时存在的情况下,去除新浪汽车频道保留新浪网。共得到157个网站,对这些网站登录页面的“授权登录”选项逐一进行统计,表格中第一竖列为网站名称,第一横排为授权登录的开放平台,如果一个网站可以通过QQ进行授权登录,那么在该网站和QQ的相交位置填入“1”,没有则不填。根据以上操作得到的结果如表1所示。
3 基于OAuth认证框架的开放平台研究
提供OAuth2.0协议的网络公司首先需要具备较强的技术实力和经济实力,开放平台的建设和维护需要耗费一定的人力、物力和财力,普通的小公司无法做到这一点;其次,开放平台需要有较多的用户基数,第一个转型开放平台的Facebook拥有23.2億月活用户,使用授权登录的前提,就是用户拥有平台账号。
在这157个网站的登录页面中,有27家公司提供基于OAuth协议的授权登录,网站如表2所示。
3.1 平台数量研究
这27个网站中,除了GitHub、Facebookhe、MSN和Twitter以外,都是国内网站,其中有微信、QQ、微博、淘宝、支付宝、百度等民最常用的平台,也有盛大、友盟等冷门平台。
从图1接入网站的数量来看,在这157个网站中,接入QQ平台的网站数量最多,达到了91个,其次是微信和微博,分别有87和82个。它们是国内用户数量和活跃度最高的社交平台,接入这三个平台的网站可以增加潜在的用户数量,在激烈的行业竞争中抢占先机。除了微信、QQ、微博,百度、支付宝和淘宝也是接入网站较多的平台,分别达到了14个、13个和8个,其中淘宝和支付宝是国内用户最多的电子商务平台,但是由于平台功能较为单一,因此难以吸引更多的网站接入。
3.2 提供方分类研究
提供授权登录的平台主要分为4个大类包括:(1)社交平台:微信、QQ、微博、人人、豆瓣、开心网、YY、脉脉、领英、Facebook、Twitter、MSN。(2)电子商务平台:淘宝、支付宝、我买网、1688。(3)综合平台:百度、网易。(4)专用平台:360、盛大、钉钉、友盟、小米、115、GitHub、中国移动、中国电信。
社交类平台在各类平台中占有绝对领先的地位,特别是微信、QQ、微博平台,除了因为用户数量多,还因为向第三方提供了更多功能,例如内容分享和关系链API接口,让平台的功能更加丰富,并加强了用户之间的交互。电子商务平台的功能主要涉及网购和支付,这类信息与用户的经济安全直接相关,并不适合开展社交,同时电子商务网站之间是强烈的竞争关系,无法像社交网站那样相互促进、合作共赢,因此接入网站数量较少。综合类网站平台,业务广而不精,用户粘性较差。专用平台只针对某个特殊群体,例如钉钉主要针对上班签到人群,用户数量较少,作为开放平台效果也难以收到成效。
4 第三方接入研究
网站想要接入开放平台,需要首先在微信平台注册开发者账号并拥有一个已经审核过的网站应用并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程[3]。
接入平台后,用户可以凭借平台用户身份使用该网站上的应用,网站可通过平台提供的API调取用户信息,完善用户资料。
4.1 接入数量研究
如图2所示,157个网站中接入开放平台的多达103个,剩余的54个网站没有接入开放平台,其中包含了网页版微信和腾讯网这些提供平台服务的网络公司,以及7个不支持账户登录功能的网站,可以看出授权登录在网络中有着较高的普及程度。就单个网站的接入平台的数量来看,接入平台数量大于等于3的网站有78个,大于等于5的网站有13个,接入平台数量越多,潜在的用户数量就越大,对于用户来说有助于他们选择更适合自己的平台。
4.2 接入网站类型研究
本次研究的157个网站总共分为11个大类,每种网站数量和接入情况如图3所示。
从网站分类来看,平台接入率较高的网站都与用户生活较为密切,生活服务类网站包括了房产、汽车、金融、分类、餐饮、求职等分类;休闲娱乐类网站包括了视频、小说、游戏、音乐、漫画等分类;交通旅游类网站主要以机票、住宿、旅游攻略为主。这些网站的生存比较依赖用户流量,因此除部分不支持登录的网站外,绝大部分需要接入平台来吸引用户。教育文化、网络科技、行业企业等网站用户覆盖面较小,专业性较强,因此其中有些网站不需要借助平台来吸引用户。
4.2.1 OAuth2.0优势分析
通过分析可以看出,以OAuth2.0协议为主的授权登录在网络中普及程度较高。这对于平台,接入方还有用户都有明显的好处。首先,腾讯、微信、微博等平台通过吸引第三方的接入来扩大影响力,覆盖互联网,进而实现利益最大化;其次,接入平台的第三方可以利用开放平台宣传自己,利用授权登录的便利性将平台用户纳为自己的潜在用户;再次,授权登录相对安全且高效,尽管现有的互联网规定要求用户需使用手机号码进行实名制注册,但是授权登录仍然可以帮助用户简化注册流程和登录流程,避免用户因为在中毒的电脑上输入账号和密码而导致账户被盗;最后,在互联网各类应用泛滥的今天,授权登录可以帮助用户有效管理网站账户,免除记忆账户的麻烦。
4.2.2 OAuth2.0应用安全
伴随着OAuth2.0协议的普及,它的安全问题也逐渐暴露出来:授权登录有多种授权方式,从技术的角度看,Resource Owner Password Credentials授权流程容易导致账号和密码被暴力破解导致账号密码的泄露;Implicit Grant客户端授权流程中,攻击者伪造回调地址诱骗用户访问钓鱼网站劫持并解析用户的access_token;Authorization Code授权登录也有可能受到CSRF(Cross Site Request Forgery,跨站请求伪造)攻击,将应用账户绑定至他人的平台账号上,造成个人信息的泄露[4]。OAuth2.0协议的广泛使用虽然带来了新的安全问题,但是其大大降低了賬户在输入阶段被盗的概率,抬高了攻击者盗取账户的技术门槛,因此授权登录从总体上提升了账户安全,随着协议不断升级和完善还有开发者技术的提高,授权登录会更加安全。
比起技术安全,授权登录的使用安全更需要人们关注。授权登录因为其便利性受到了用户的青睐,但是简化的登录流程容易让用户过于依赖同一个平台账号,一旦平台账号被盗,那么使用其授权的所有网站和应用内的信息都会泄露。尽管目前微信、QQ等平台账户安全策略较为完善,但是被盗的情况仍然时有发生。使用授权登录的第三方配合平台提供的API接口,同样会对用户隐私构成威胁,例如某些接入微信的小程序表面上利用算命、心理测验等形式吸引用户点击和分享,根据用户点击情况收集用户头像、昵称和关系链。平台作为授权登录的提供方,在与其他网络公司的竞争中动用授权登录来限制竞争对手的情况也时有发生,例如2019年1月微信为了限制抖音的发展,取消了抖音的授权登录,之前微信授权登录的用户只能重新注册。
5 结 论
基于OAuth2.0协议的授权登录最初是为了解决用户认证问题而被设计出来的,在广泛使用的过程中被赋予了越来越重要的功能和地位,围绕授权登录的三方都需要对这项功能有一个重新的认识。对于广大用户来说,应当完善账户信息,配合平台账户安全策略,同时谨慎使用授权登录,适时取消授权;平台方需完善安全策略,严格把控平台开发质量避免系统漏洞,加强对第三方的审查,确保用户信息安全;第三方开发者应当约束自身行为,避免越权侵犯用户利益。
参考文献:
[1] 时子庆,刘金兰,谭晓华.基于OAuth2.0的认证授权技术 [J].计算机系统应用,2012,21(3):260-264.
[2] 刘大红,刘明.第三方应用与开放平台OAuth认证互连技术研究 [J].电脑知识与技术,2012,8(22):5367-5369.
[3] 网站应用微信登录开发指南 [EB/OL].(2018-10-01).https://open.weixin.qq.com/cgi-bin/showdocument?action= dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN.
[4] 张天琪.OAuth协议安全性研究 [J].信息网络安全,2013(3):68-70.
作者简介:朱博昌(1989-),男,汉族,山西太原人,就职于图书馆,助理馆员,毕业于广西民族大学情报学专业,硕士研究生,研究方向:信息组织。