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

2018-01-16 13:10:01 +08:00
 mario85
如图所示,在老系统上登录开启了双重验证的 Apple ID 时,会要求在密码后面直接附加上其他设备显示的六位验证码



求问,这是不是能说明苹果公司不是用摘要类算法存储我们的密码?如果不能,那么什么样的算法能够让苹果公司从拼接字符串的摘要中直接同时验证密码和验证码?
2817 次点击
所在节点    Apple
16 条回复
jasontse
2018-01-16 13:14:04 +08:00
验证密码的时候去掉最后六位
xuanboyi
2018-01-16 13:15:31 +08:00
分段验证?
xuanboyi
2018-01-16 13:17:34 +08:00
同意一楼,因为完全正确的话只有一种可能,密码和验证码都正确,而密码长度不可知,验证码的长度是固定的,所以只要方便验证应该就可以了吧
FFLY
2018-01-16 13:21:12 +08:00
这个还算简单的,智能门锁的更复杂,输入密码的时候可以任意的输入掩饰码。
ofnh
2018-01-16 13:30:21 +08:00
密码+token 的操作,很多大公司内部系统登陆方式也是这样的
SuperMild
2018-01-16 13:31:46 +08:00
@FFLY 这个创意不错,由于门锁是不联网的设备,直接明文保存密码然后正则匹配就可以了。可惜联网的设备不能用这招。
gy911201
2018-01-16 13:36:20 +08:00
去掉后六位,前面的是密码,后面的是验证码
因为验证码是恒定六位的,所以做起来还是很容易的……
bumz
2018-01-16 13:38:29 +08:00
储存的密码哈希,提交的密码加密但不哈希

这样服务器拿到老设备提交的密码就直接解密,分割就可以正常验证了
Tink
2018-01-16 13:39:58 +08:00
后面去掉 6 位不行吗?
mario85
2018-01-16 13:43:15 +08:00
@jasontse
@xuanboyi
@gy911201
是这样的,在 iCloud 界面登录时,第一次输入原始密码,点击登录,苹果返回提示需要输入验证码;然后返回到原来的界面(即第一次输入原始密码的界面),重新输入密码并在后面加上验证码,点击登录
如果密码只是存储时作摘要,提交时为非摘要加密或不加密提交(即全靠 https 保证数据不被抓到),那直接去掉后六位是可行的,就不会有这样的疑问了
但是有没有可能是,提交前就已经被摘要了,到了苹果那边只能看到摘要。那如果是这样的话,只能看到摘要的情况下怎么分开验证码和密码?
gy911201
2018-01-16 13:49:10 +08:00
@mario85 HTTPS 已经足够保证密码的安全了,没有必要在客户端就进行一次摘要操作的,我认为上传的就是原始的密码……
dndx
2018-01-16 13:51:08 +08:00
@gy911201 显然是上传的原始的密码,如果在客户端哈希后再上传那哈希存储的意义就完全没有了,攻击者直接传哈希上来服务器无法得知到底客户端知不知道明文的密码。
mario85
2018-01-16 14:15:29 +08:00
@bumz
@gy911201
@dndx
感谢回复,看来应该是这样的了
hotpki
2018-01-16 15:29:18 +08:00
应该是
1.客户端哈希密码,2.客户端哈希(密码哈希+验证码),3.上传,4.服务器端哈希(存储的密码哈希+验证码),5.比对两个哈希值。
这样,攻击者拿不到密码原文和密码哈希,而且,加入验证码可以抗重放攻击。
bumz
2018-01-16 16:43:18 +08:00
@gy911201 #10 客户端加密也有一丁点用,比如遇到能够读取明文但不能篡改的 HTTPS 协议漏洞(如 heartbleed )的时候 233
mario85
2018-01-16 17:15:46 +08:00
@hotpki
但是“客户端” iOS 6 iCloud 的逻辑,苹果是改不了的,而这个双重验证明显是后来才出的功能
所以应该是楼上说的,客户端不做哈希了

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

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

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

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

© 2021 V2EX