我需要在企业SaaS系统中验证每个用户的电话号码。与其使用常见的“输入这种形式的4/8数字代码”,我更希望让用户用短信来回应"hello“,或者可能为每个用户提供一条唯一的消息。
我的目标是让用户更容易地验证他们是否碰巧放弃了网站的入职流程。
让用户在网上输入4/8位数字代码,而不是从他们的设备发送代码或简单消息,有什么本质上更安全的吗?
发布于 2018-12-12 01:23:02
问得好!我会试着破坏安全模型。
让用户在网上输入4/8位数字代码,而不是从他们的设备发送代码或简单消息,有什么本质上更安全的吗?
虽然SMS作为一个整体是一种弱的2FA方法(参见上面Verge的文章),但至少前者要求攻击者对全球电信网络进行一些黑客攻击。后者被任何知道发送带有任何from:号码的短消息的在线服务的人打破了。
。
让我们首先说,SMS不是一个安全的方式来传递敏感的信息。这篇来自Verge的文章似乎非常符合我的理解:
通过利用蜂窝网络中已知的缺陷,该组能够在一段时间内截获发送给该号码的所有文本消息。这足以将密码重置为Gmail帐户,然后控制Coinbase钱包。该组织所需要的只是目标比特币用户的姓名、姓氏和电话号码。积极技术利用自己的研究工具劫持了短信,利用蜂窝网络中的弱点拦截传输中的短信。该网络被称为SS7网络,每个电信公司都共享该网络,以管理电话号码之间的通话和短信。存在许多已知的SS7漏洞,虽然理论上SS7网络的访问仅限于电信公司,但劫持服务经常出现在犯罪市场上。
资料来源:维格.
因此,鉴于我们正在比较一个非常不安全的系统的两个变体的安全性,让我们继续。
用于在web 中输入验证代码的
要完成这一攻击,需要能够实时读取您的短消息,正如Verge在上面指出的那样,这是很容易做到的。
回复短信
安全模型:对于攻击者伪造您电话号码的所有权,他们需要:
乍一看,这与上面的安全模型类似:“如果攻击者有SS7黑客,并且可以读取您的SMSes,那么他们也可以回复它们”。
但实际上,这个模型要弱得多;实际上,步骤2和步骤3之间没有耦合。百万网站允许发送短信并设置您想要的任何from:号码,因此只要攻击者知道服务器的短信号码,即使无法读取传入的SMSes,他们也可以从您的号码中伪造"hello“。
回复短消息
安全模型:对于攻击者伪造您电话号码的所有权,他们需要:
好的,我们已经解决了耦合问题,并要求攻击者能够读取传入的SMSes。如前所述,发送似乎是来自您的消息是微不足道的,所以我认为这个安全模型相当于传统的“在网站中输入SMS代码”。
然而,你会遇到可用性问题,因为在你的手机键盘上正确地输入代码比在你的电脑中输入代码要麻烦得多,所以我不确定你在这里得到了什么。
让用户在网上输入4/8位数字代码,而不是从他们的设备发送代码或简单消息,有什么本质上更安全的吗?
虽然SMS作为一个整体是一种弱的2FA方法(参见上面Verge的文章),但至少前者要求攻击者对全球电信网络进行一些黑客攻击。后者被任何知道发送带有任何from:号码的短消息的在线服务的人打破了。
发布于 2018-12-12 04:31:16
如果您的目标只是为了简化验证过程,那么我不认为需要一条响应消息是个好主意。至少,您应该记住,如果用户无法发送SMS (例如,没有信用或用户正在漫游,并且他没有购买带有发送SMS的计划),则不可能通过验证。
另外,发送短信要花费用户的钱。此外,由于用户不确定这要花多少钱,他很可能会认为这是一个骗局(回想一下,有许多欺诈性网站需要电话号码才能访问“优质内容”)。
https://security.stackexchange.com/questions/199573
复制相似问题