钓鱼攻击防御方法和授权服务器与流程

文档序号:17049309发布日期:2019-03-05 19:52阅读:271来源:国知局
钓鱼攻击防御方法和授权服务器与流程

本发明涉及网络安全领域,特别涉及一种利用开放授权(oauth,openauthorization)认证的钓鱼攻击防御方法和授权服务器。



背景技术:

oauth是一个广泛运用的开放标准。第三方应用可在用户授权的前提下访问用户在服务商存储的信息,而这种授权不会触及用户账号信息,例如用户名和密码等。

钓鱼式攻击是一种通过伪装成信誉卓著的法人媒体,以获得如用户名、密码和信用卡明细等个人敏感信息的犯罪诈骗过程。

目前有一种精准钓鱼攻击非常不容易辨识。如果用户收到一封提示账号异常,需要重新确认登录的邮件,由于是仿冒oauth界面,证书也是绿标安全状态的,故很难区分真假。这样用户的授权码信息将被攻击者窃取,从而导致用户信息泄露。



技术实现要素:

本发明提出一种利用oauth认证的钓鱼攻击防御方案,可以降低oauth授权被窃取的安全风险。

本发明提出一种利用oauth认证的钓鱼攻击防御方法,包括:

授权服务器响应于客户端对用户的导向操作,根据客户端认证申请中的重定向统一资源标识符uri验证客户端身份;

授权服务器将客户端身份提示给用户,以便用户根据提示内容决定是否给予客户端授权。

在一个实施例中,授权服务器根据客户端认证申请中的重定向统一资源标识符uri验证客户端身份包括:

授权服务器将客户端认证申请中的重定向uri与授权服务器端的应用列表进行比对,找到与重定向uri匹配的应用之后,将与重定向uri匹配的应用的身份属性确定为客户端的身份。

在一个实施例中,防御方法还包括:

授权服务器响应于用户给予客户端授权的操作,获取用户的手机号码,生成短信验证码,发送到用户的手机上;其中,短信验证码与客户端认证申请中的客户端id、状态随机值在授权服务器端关联存储;

授权服务器接收用户提交的短信验证码,将用户提交的短信验证码与关联存储的客户端id和状态随机值对应的短信验证码进行比对;

授权服务器在比对结果一致的情况下向客户端下发授权码。

在一个实施例中,防御方法还包括:授权服务器响应于客户端的令牌申请,核对令牌申请中的重定向uri和授权码无误后,向客户端发送令牌,以便客户端利用令牌访问用户存放在资源服务器的资源。

在一个实施例中,授权服务器将客户端身份在授权界面中提示给用户。

本发明还提出一种利用oauth认证的钓鱼攻击防御授权服务器,包括:

身份验证模块,用于响应于客户端对用户的导向操作,根据客户端认证申请中的重定向统一资源标识符uri验证客户端身份;

身份提示模块,用于将客户端身份提示给用户,以便用户根据提示内容决定是否给予客户端授权。

在一个实施例中,所述身份验证模块,具体用于:将客户端认证申请中的重定向uri与授权服务器端的应用列表进行比对,找到与重定向uri匹配的应用之后,将与重定向uri匹配的应用的身份属性确定为客户端的身份。

在一个实施例中,授权服务器还包括:

短信发送模块,用于响应于用户给予客户端授权的操作,获取用户的手机号码,生成短信验证码,发送到用户的手机上;其中,短信验证码与客户端认证申请中的客户端id、状态随机值在授权服务器端关联存储;

短信验证模块,用于接收用户提交的短信验证码,将用户提交的短信验证码与关联存储的客户端id和状态随机值对应的短信验证码进行比对;

授权码模块,用于在比对结果一致的情况下向客户端下发授权码。

在一个实施例中,授权服务器还包括:令牌模块,用于响应于客户端的令牌申请,核对令牌申请中的重定向uri和授权码无误后,向客户端发送令牌,以便客户端利用令牌访问用户存放在资源服务器的资源。

在一个实施例中,所述身份提示模块,具体用于将客户端身份在授权界面中提示给用户。

本发明还提供一种利用oauth认证的钓鱼攻击防御装置,包括:

存储器;以及

耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述的钓鱼攻击防御方法。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的钓鱼攻击防御方法的步骤。

本发明针对客户端认证申请提供身份认证机制,并将客户端身份提示给用户,为用户决策是否授权提供支撑,从而防御部分利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。此外,通过短信验证机制,可以防范由于用户被仿冒而受到的钓鱼攻击,降低oauth授权被窃取的安全风险。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明基于身份提示实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

图2是本发明基于短信验证机制实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

图3是本发明基于双重认证实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

图4是本发明利用开放授权oauth认证的钓鱼攻击防御授权服务器一个实施例的结构示意图。

图5是本发明利用开放授权oauth认证的钓鱼攻击防御授权服务器再一个实施例的结构示意图。

图6是本发明利用开放授权oauth认证的钓鱼攻击防御装置一个实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了防御利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险,提出本发明。

实施例1

本实施例针对客户端认证申请提供身份认证机制,并将客户端身份提示给用户,为用户决策是否授权提供支撑,从而防御部分利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。

图1是本发明基于身份提示实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

如图1所示,本实施例的方法包括:

步骤110:用户通过用户代理(如浏览器)访问客户端,客户端将用户导向服务提供商的授权服务器申请认证。

其中,客户端的认证申请例如包括如下参数:

response_type:表示授权类型,

client_id:表示客户端id,

redirect_uri:表示重定向统一资源标识符(uri),

scope:表示申请的权限范围,

state:表示客户端的当前状态,可以指定任意值,也称状态随机值,

授权服务器会原封不动地返回这个值。

步骤120:授权服务器根据客户端认证申请中的重定向uri验证客户端身份。

其中,授权服务器验证客户端身份的一种示例性方式为:授权服务器将客户端重定向uri(redirect_uri)与授权服务器端的应用列表进行比对,找到与重定向uri(redirect_uri)匹配的应用之后,确定与重定向uri(redirect_uri)匹配的应用的身份属性,将其作为客户端的身份。客户端的身份例如属于官方应用还是第三方应用,或者,属于经认证的应用还是未经认证的应用等,但不限于所举示例。客户端的身份可以表示客户端的可信程度。通常来说,官方应用比第三方应用更可信,经认证的应用比未经认证的应用更可信。

为了提高比对效率,可以利用正则表达式描述重定向uri、应用列表中的应用记录,然后,再将客户端重定向uri与授权服务器端的应用列表进行比对,查找与重定向uri匹配的应用。

步骤130:授权服务器将客户端身份提示给用户,以便用户根据提示内容决定是否给予客户端授权。

其中,授权服务器可以将客户端身份提示在授权界面上,用户根据授权界面上的提示内容决定是否给予客户端授权。待用户同意给予客户端授权后,授权服务器再下发授权码给客户端。

例如,对于官方应用或经认证的应用或用户确认是自己欲使用的应用,用户可以给予授权。对于用户不认识的第三方应用,或用户不使用的第三方应用,或未经认证的应用,用户可以不予授权。

从而,为用户决策是否授权提供支撑,防御部分利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。

实施例2

本实施例提供短信验证机制,防范由于用户被仿冒而受到的钓鱼攻击,降低oauth授权被窃取的安全风险。

图2是本发明基于短信验证机制实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

如图2所示,本实施例的方法包括:

步骤210:用户通过用户代理(如浏览器)访问客户端,客户端将用户导向服务提供商的授权服务器申请认证。具体参考步骤110。

步骤220:如果用户给予客户端授权,执行步骤230。

步骤230:授权服务器获取用户的手机号码,生成短信验证码,发送到用户的手机上。其中,短信验证码与客户端id(client_id)、状态随机值(state)在授权服务器端关联存储。用户将手机上的短信验证码提交给授权服务器,授权服务器将用户提交的短信验证码与关联存储的客户端id(client_id)和状态随机值(state)对应的短信验证码进行比对,如果二者不一致,则用户认证未通过,流程结束,说明用户可能被仿冒,由于非法用户无法获知有效的短信验证码,从而导致认证不通过;如果二者一致,则用户认证通过,授权服务器给予客户端授权,下发授权码给客户端。

从而,防范由于用户被仿冒而受到的钓鱼攻击,降低oauth授权被窃取的安全风险。

实施例3

本实施例将客户端身份验证和提示机制与短信验证机制结合起来,防范利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。

图3是本发明基于双重认证实现的利用开放授权oauth认证的钓鱼攻击防御方法一个实施例的流程示意图。

如图3所示,本实施例的方法包括:

步骤310:用户通过用户代理(如浏览器)访问客户端,客户端将用户导向服务提供商的授权服务器申请认证。具体参考步骤110。

步骤320:授权服务器根据客户端重定向uri验证客户端身份,并将客户端身份通过用户代理提示给用户,用户根据提示内容决定是否给予客户端授权。具体参考步骤120和130。

如果用户不予客户端授权,则客户端认证未通过,流程结束;如果用户给予客户端授权,则进入步骤330,进行进一步认证。

步骤330:如果用户给予客户端授权,授权服务器获取用户的手机号码,生成短信验证码,发送到用户的手机上。其中,短信验证码与客户端id(client_id)、状态随机值(state)在授权服务器端关联存储。用户将手机上的短信验证码提交给授权服务器,授权服务器将用户提交的短信验证码与关联存储的客户端id(client_id)和状态随机值(state)对应的短信验证码进行比对,如果二者不一致,则用户认证未通过,流程结束,说明用户可能被仿冒,由于非法用户无法获知有效的短信验证码,从而导致认证不通过;如果二者一致,则用户认证通过,授权服务器给予客户端授权,执行步骤340。

步骤340:如果授权服务器给予客户端授权,则授权服务器将用户导向客户端认证通过的重定向uri(redirect_uri),同时附上授权码发送给客户端。

步骤350:客户端利用客户端id(client_id)、重定向uri(redirect_uri)和授权码,向授权服务器申请令牌。

步骤360:授权服务器核对重定向uri(redirect_uri)和授权码无误后,向客户端发送令牌。

步骤370:客户端利用令牌访问服务提供商的资源服务器,从而获取用户存放在资源服务器的资源。

其中,步骤350~370也可以在实施例1和实施例2客户端获得授权码之后执行,这里不再赘述。

从而,通过双重认证,可以更好地防范利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。

实施例4

本实施例提供了一种利用开放授权oauth认证的钓鱼攻击防御授权服务器400,参见图4,授权服务器400包括:

身份验证模块410,用于响应于客户端对用户的导向操作,根据客户端认证申请中的重定向统一资源标识符uri验证客户端身份;

身份提示模块420,用于将客户端身份提示给用户,以便用户根据提示内容决定是否给予客户端授权。

在一个实施例中,所述身份验证模块410,具体用于:将客户端认证申请中的重定向uri与授权服务器端的应用列表进行比对,找到与重定向uri匹配的应用之后,将与重定向uri匹配的应用的身份属性确定为客户端的身份。

在一个实施例中,所述身份提示模块420,具体用于将客户端身份在授权界面中提示给用户。

参见图5,授权服务器500还包括:

短信发送模块530,用于响应于用户给予客户端授权的操作,获取用户的手机号码,生成短信验证码,发送到用户的手机上;其中,短信验证码与客户端认证申请中的客户端id、状态随机值在授权服务器端关联存储;

短信验证模块540,用于接收用户提交的短信验证码,将用户提交的短信验证码与关联存储的客户端id和状态随机值对应的短信验证码进行比对;

授权码模块550,用于在比对结果一致的情况下向客户端下发授权码。

参见图5,授权服务器500还包括:令牌模块560,用于响应于客户端的令牌申请,核对令牌申请中的重定向uri和授权码无误后,向客户端发送令牌,以便客户端利用令牌访问用户存放在资源服务器的资源。

从而,防范利用oauth认证的钓鱼攻击,降低oauth授权被窃取的安全风险。

实施例5

本实施例提供了一种利用开放授权oauth认证的钓鱼攻击防御装置600,参考图6,该实施例的装置600包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的用开放授权oauth认证的钓鱼攻击防御方法。

其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

装置600还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为sd卡、u盘等外置存储设备提供连接接口。

本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1