关于 “Sign in with Apple” 安全漏洞的疑问

2020-05-31 13:58:12 +08:00
 rogwan
苹果承认这个漏洞并给报告者 10 万美金奖励,证实了漏洞的存在和严重性。

有两个疑问:
1 、 “Sign in with Apple” 符合 oath2.0 标准吗?
2 、苹果发出的 jwt 令牌没有过期时间吗?(按理说有过期时间应该就不用再次验证吧?)

> 通过“Sign in with Apple”验证用户的时候,服务器会包含秘密信息的 JSON Web Token ( JWT ),第三方应用会使用 JWT 来确认登录用户的身份。Bhavuk 发现,虽然苹果公司在发起请求之前要求用户先登录到自己的苹果账户,但在下一步的验证服务器上,它并没有验证是否是同一个人在请求 JSON Web Token(JWT)。
4292 次点击
所在节点    iDev
4 条回复
1130335361
2020-05-31 20:38:54 +08:00
hellomsg
2020-07-30 12:05:20 +08:00
jwt 有过期时间。对 Oath 不是很深入了解,个人认为苹果设计的这些验证步骤是为了检测 jwt 是否是伪造的或是被篡改了,是 app 业务方做的安全检测,最终目的是为了减少虚假注册?
hellomsg
2020-07-30 12:11:37 +08:00
我还有个疑问,苹果的 `refreshToken` 和 `access tokens` 是干嘛用的?文中说“which you use to obtain access tokens with future calls”,但是他也没有提供其他接口需要这个 `access tokens` 用来获取用户信息。

> Obtain a Refresh Token
After verifying the identity token on your server, call the Generate and Validate Tokens endpoint with the client_id, client_secret, and nonce information.

On success, the server issues a refresh token, which you use to obtain access tokens with future calls. You may verify the refresh token up to once a day to confirm that the user’s Apple ID on that device is still in good standing with Apple’s servers. Apple’s servers may throttle your call if you attempt to verify a user’s Apple ID more than once a day.

If any step of the token verification fails, direct your app to fetch a new identity token for the user. Obtaining a new identity token on the device requires user interaction.
hellomsg
2020-07-30 12:22:17 +08:00
这个漏洞是在说 email 用户可以随便写会有安全隐患吗?但是对于一个可以随便写的 email,app 方会使用这个邮箱来创建帐号,并允许使用这个邮箱登录?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/677173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX