苹果是怎么做到识别密码后附加的验证码的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mario85
V2EX    Apple

苹果是怎么做到识别密码后附加的验证码的?

  •  
  •   mario85 Jan 16, 2018 3492 views
    This topic created in 3032 days ago, the information mentioned may be changed or developed.
    如图所示,在老系统上登录开启了双重验证的 Apple ID 时,会要求在密码后面直接附加上其他设备显示的六位验证码



    求问,这是不是能说明苹果公司不是用摘要类算法存储我们的密码?如果不能,那么什么样的算法能够让苹果公司从拼接字符串的摘要中直接同时验证密码和验证码?
    jasontse
        1
    jasontse  
       Jan 16, 2018 via iPad
    验证密码的时候去掉最后六位
    xuanboyi
        2
    xuanboyi  
       Jan 16, 2018 via iPhone
    分段验证?
    xuanboyi
        3
    xuanboyi  
       Jan 16, 2018 via iPhone
    同意一楼,因为完全正确的话只有一种可能,密码和验证码都正确,而密码长度不可知,验证码的长度是固定的,所以只要方便验证应该就可以了吧
    FFLY
        4
    FFLY  
       Jan 16, 2018
    这个还算简单的,智能门锁的更复杂,输入密码的时候可以任意的输入掩饰码。
    ofnh
        5
    ofnh  
       Jan 16, 2018 via Android
    密码+token 的操作,很多大公司内部系统登陆方式也是这样的
    SuperMild
        6
    SuperMild  
       Jan 16, 2018
    @FFLY 这个创意不错,由于门锁是不联网的设备,直接明文保存密码然后正则匹配就可以了。可惜联网的设备不能用这招。
    xiaolanglang
        7
    xiaolanglang  
       Jan 16, 2018
    去掉后六位,前面的是密码,后面的是验证码
    因为验证码是恒定六位的,所以做起来还是很容易的……
    bumz
        8
    bumz  
       Jan 16, 2018 via iPhone
    储存的密码哈希,提交的密码加密但不哈希

    这样服务器拿到老设备提交的密码就直接解密,分割就可以正常验证了
    Tink
        9
    Tink  
    PRO
       Jan 16, 2018
    后面去掉 6 位不行吗?
    mario85
        10
    mario85  
    OP
       Jan 16, 2018
    @jasontse
    @xuanboyi
    @gy911201
    是这样的,在 iCloud 界面登录时,第一次输入原始密码,点击登录,苹果返回提示需要输入验证码;然后返回到原来的界面(即第一次输入原始密码的界面),重新输入密码并在后面加上验证码,点击登录
    如果密码只是存储时作摘要,提交时为非摘要加密或不加密提交(即全靠 https 保证数据不被抓到),那直接去掉后六位是可行的,就不会有这样的疑问了
    但是有没有可能是,提交前就已经被摘要了,到了苹果那边只能看到摘要。那如果是这样的话,只能看到摘要的情况下怎么分开验证码和密码?
    xiaolanglang
        11
    xiaolanglang  
       Jan 16, 2018
    @mario85 HTTPS 已经足够保证密码的安全了,没有必要在客户端就进行一次摘要操作的,我认为上传的就是原始的密码……
    dndx
        12
    dndx  
       Jan 16, 2018
    @gy911201 显然是上传的原始的密码,如果在客户端哈希后再上传那哈希存储的意义就完全没有了,攻击者直接传哈希上来服务器无法得知到底客户端知不知道明文的密码。
    mario85
        13
    mario85  
    OP
       Jan 16, 2018
    @bumz
    @gy911201
    @dndx
    感谢回复,看来应该是这样的了
    hotpki
        14
    hotpki  
       Jan 16, 2018   1
    应该是
    1.客户端哈希密码,2.客户端哈希(密码哈希+验证码),3.上传,4.服务器端哈希(存储的密码哈希+验证码),5.比对两个哈希值。
    这样,攻击者拿不到密码原文和密码哈希,而且,加入验证码可以抗重放攻击。
    bumz
        15
    bumz  
       Jan 16, 2018
    @gy911201 #10 客户端加密也有一丁点用,比如遇到能够读取明文但不能篡改的 HTTPS 协议漏洞(如 heartbleed )的时候 233
    mario85
        16
    mario85  
    OP
       Jan 16, 2018
    @htpki
    但是“客户端” iOS 6 iCloud 的逻辑,苹果是改不了的,而这个双重验证明显是后来才出的功能
    所以应该是楼上说的,客户端不做哈希了
    About     Help     Advertise     Blog     API     FAQ     Solana     6148 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 98ms UTC 03:00 PVG 11:00 LAX 20:00 JFK 23:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86