V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
rogwan
V2EX  ›  iDev

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

  •  
  •   rogwan · 2020-05-31 13:58:12 +08:00 via iPhone · 4259 次点击
    这是一个创建于 1397 天前的主题,其中的信息可能已经有所发展或是发生改变。
    苹果承认这个漏洞并给报告者 10 万美金奖励,证实了漏洞的存在和严重性。

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

    > 通过“Sign in with Apple”验证用户的时候,服务器会包含秘密信息的 JSON Web Token ( JWT ),第三方应用会使用 JWT 来确认登录用户的身份。Bhavuk 发现,虽然苹果公司在发起请求之前要求用户先登录到自己的苹果账户,但在下一步的验证服务器上,它并没有验证是否是同一个人在请求 JSON Web Token(JWT)。
    4 条回复    2020-07-30 12:22:17 +08:00
    1130335361
        1
    1130335361  
       2020-05-31 20:38:54 +08:00
    hellomsg
        2
    hellomsg  
       2020-07-30 12:05:20 +08:00
    jwt 有过期时间。对 Oath 不是很深入了解,个人认为苹果设计的这些验证步骤是为了检测 jwt 是否是伪造的或是被篡改了,是 app 业务方做的安全检测,最终目的是为了减少虚假注册?
    hellomsg
        3
    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
        4
    hellomsg  
       2020-07-30 12:22:17 +08:00
    这个漏洞是在说 email 用户可以随便写会有安全隐患吗?但是对于一个可以随便写的 email,app 方会使用这个邮箱来创建帐号,并允许使用这个邮箱登录?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3166 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.