写点什么

Sign in with Apple 被曝零日漏洞,可远程劫持任意用户帐号

  • 2020-06-01
  • 本文字数:1249 字

    阅读完需:约 4 分钟

Sign in with Apple被曝零日漏洞,可远程劫持任意用户帐号


5 月 30 日,印度漏洞安全研究专家 Bhavuk Jain 在官方博客中披露:Sign in with Apple(通过 Apple 登录)中存在一个零日漏洞,影响非常严重,因为它允许攻击者远程劫持任意用户账户。


Bhavuk Jain 在博客中写道,“今年 4 月,我在 Sign in with Apple 中发现一个零日漏洞(zero-day)。如果第三方应用使用了 Sign in with Apple(通过 Apple 登录),并且未部署额外的安全措施,那么它们均会受到该零日漏洞的影响。“


最关键的是,该漏洞允许远程攻击者绕过身份验证,接管目标用户在第三方服务和应用中使用 Sign in with Apple 创建的账号。



据了解,在去年的 WWDC 上,苹果正式推出属于自己的第三方登录服务——Sign in with Apple(通过 Apple 登录)。


说起第三方登录,就不得不提 OAuth。简单说,OAuth 是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。

现在,大多数第三方登录都是基于 OIDC 或者利用 OAuth 2.0 修改实现的。


根据苹果官方解释:


"Sign in with Apple(通过 Apple 登录)"让用户能用自己的 Apple ID 轻松登录您的 app 和网站。用户不必填写表单、验证电子邮件地址和选择新密码,就可以使用“通过 Apple 登录”设置账户并立即开始使用您的 app。所有账户都通过双重认证受到保护,具有极高的安全性,Apple 亦不会跟踪用户在您的 app 或网站中的活动。


截至目前,有许多开发者已经将 Sign in with Apple 整合到应用程序中,比如国外的 Dropbox、Spotify、Airbnb、Giphy ,国内的喜马拉雅、懒饭、厨房故事等。这些应用程序未经测试,如果在验证用户时未采取其他任何安全措施,则可能被攻击者利用漏洞实现完全的账户接管。


据 Bhavuk Jain 的博客文章介绍,Sign in with Apple 的工作原理与 OAuth 2.0 类似,对用户身份的认证有两种办法:一种是利用 JWT(JSON Web Token),另一种是利用由 Apple 服务器生成的 code。


下面的示意图表示 JWT 创建和验证的工作方式。



通过“Sign in with Apple”验证用户时,服务器会包含秘密信息的 JWT,第三方应用会使用 JWT 来确认登录用户的身份。


Bhavuk Jain 发现,虽然苹果公司在发起请求前要求用户先登录到自己的苹果账户,但在下一步的验证服务器上,它并没有验证是否是同一个人在请求 JWT。


因此,该部分机制中缺失的验证可能允许攻击者提供一个属于受害者的单独的苹果 ID,欺骗苹果服务器生成 JWT 有效的有效载荷,以受害者的身份登录到第三方服务中。


Bhavuk Jain 说:“我发现我可以向苹果公司的任何 Email ID 请求 JWT,当这些令牌的签名用苹果公司的公钥进行验证时,显示为有效。这意味着,攻击者可以通过链接任何 Email ID 来伪造 JWT,并获得对受害者账户的访问权限。”


据悉,一个月前,他向苹果安全团队报告了这个问题,为此苹果向其支付了 10 万美元的巨额赏金。目前,苹果已经对该漏洞进行了修复,并且还对服务器日志进行了调查,发现该漏洞没有被用来危害任何用户账户。


参考资料:


Zero-day in Sign in with Apple


2020-06-01 15:095807
用户头像
万佳 前InfoQ编辑

发布了 681 篇内容, 共 392.5 次阅读, 收获喜欢 1805 次。

关注

评论

发布
暂无评论
发现更多内容

2022前端react高频面试题

buchila11

React

深入浅出Redis宝典,阿里架构师10年经验汇总,PDF免费分享

Java redis 架构

网站攻击到提权的全部过程

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞分析

如何处理各种「陨石开发」的紧急要求?

LigaAI

敏捷开发

内含(基础+进阶+高级+调优)的神仙级的阿里巴巴“MySQL”教程限时开源!

Java 架构 面试 程序人生 编程语言

大模型时代的AI之变与开发之根

脑极体

顺丰对供应链+区块链应用的思考与规划

CECBC

P8整理的OpenStack构架,希望能帮助到你

hanaper

膜拜!不愧是阿里大牛总结的Java10W字面经,Github访问量已破百万

Java 程序员 架构 面试 计算机

低代码的自动化工作流靠谱吗?对企业有何帮助?

优秀

自动化 低代码

GraphQL 快速入门【4】GraphQL 组件

码界行者

Rest graphql

DCEP:真正的“无现金新时代”!现已完成技术对接!

CECBC

想要入职阿里P8?至少是要啃完这本500页Java并发多线程源码笔记!

Java 架构 面试 程序人生 编程语言

网络攻防学习笔记 Day150

穿过生命散发芬芳

9月日更 网络流量分析

2021年最新整理, C++ 学习资料,含C++ 11 / 14 / 17 / 20 / 23 新特性、入门教程、推荐书籍、优质文章、学习笔记、教学视频等

奔着腾讯去

c++

java 虚拟机 GC :G1配置参数

风翱

GC 9月日更

后端选择 java, 还是 python?

cdhqyj

夸克APP端智能:文档关键点检测实践与应用

阿里巴巴终端技术

算法 移动开发 客户端 端智能

AI技术在漫画阅读体验上的应用

快看工程技术中心

深度学习 AI 漫画

十大算法

wudaxue

秋招如何抱佛脚?2021最新大厂Java面试真题合集(附权威答案)

Java 架构 面试 程序人生 编程语言

列举出常见的Java面试题100+,我靠这个在十月拿到了阿里的offer

Java 程序员 编程语言

android逆向之root方式注入apk

轻口味

android 9月日更

「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“情报信息”

码界西柚

后端 秒杀系统 秒杀架构 秒杀架构设计 引航计划

当支付宝 App 遇见 AndroidX......

阿里巴巴终端技术

android App 移动端 AndroidX

VSCode 中,TS 提示 ”无法找到 *.vue 声明文件“ 的解决方案

编程三昧

vscode Vue3 ts 9月日更

小程序下一破局点?钉钉小程序卡片,应用与平台的深度集成

阿里巴巴终端技术

小程序 ios android App 移动开发

太有用,Alibaba架构师十年心血熬成的435网络协议文档

程序员 编程语言 网络协议 TCP/IP

第6章-《Linux一学就会》- Centos8 用户管理

学神来啦

Linux 运维 linux学习 linux云计算

百度智能云全面升级金融AI中台解决方案, 打造软硬一体AI开发全栈能力

百度大脑

人工智能 金融

云拨测助力节卡机器人 全面优化海外网站性能

阿里巴巴云原生

阿里云 云原生 拨测 成功案例

Sign in with Apple被曝零日漏洞,可远程劫持任意用户帐号_安全_万佳_InfoQ精选文章