六种双因素认证方式的利与弊

译文
安全 数据安全
本文将和您探讨六种常见双因素身份认证方式的利与弊,并最终给出过往项目的经验和建议,以便您做出选择。

【51CTO.com快译】您一定听说过双因素身份认证的概念及其优势吧?它需要您输入除了密码以外的其他身份特征,并通过认证的方式,才能解锁并登陆您的在线帐户。在实际应用中,我们可以有多种方式来实现双因素身份认证。本文将和您一起探讨各种双因素身份认证方式的优缺点,以方便您根据实际情况作出选择。

双因素身份认证与两步身份认证

在开始深入讨论之前,让我们先花一点时间来厘清双因素身份认证和两步身份认证之间的区别。它们既有相似之处,又不尽相同。

双因素身份认证是使用两种不同类型的认证方式保护用户的帐户。也就是说,您必须提供下面三种要素中的两种:

  • 您知道什么:诸如密码信息、或是安全问题的答案。
  • 您拥有什么:例如,您持有智能手机、或是其他物理设备。
  • 您是谁:诸如指纹或虹膜之类的身体特征。

因此,真正的双因素身份认证意味着您必须持有上述两种不同的因素,才能通过认证完成登录。

而如果您的帐户只是受到上述三种因素中同一种类型的两个“锁”的保护,那只能称为两步身份认证。例如:密码信息和安全性问题的答案都是您所知道的,只是在身份认证过程分为了两个步骤,而不是两个因素。虽然它相比单一密码的保护效果较强,但是仍然达不到双因素身份认证的效果。

下面我们来探讨六种常见的双因素认证方式的优缺点:

方式1:安全问题

作为大家比较收悉的一种方式:我们在创建帐户时,可以选取一到多个安全问题,并事先为每个问题设置好相应的答案。后续在使用该帐户登录的时候,我们必须针对每一个问题提供正确的答案,方可完成身份验证以及访问授权。

(1) 安全问题的优点

安全问题本身非常容易被设置。在大多数情况下,我们只需从一个下拉菜单中,选择便于记忆且能够给出确定回答的问题即可。而且我们不需要任何其他设备,毕竟那些答案就储存在我们的脑海中。

(2) 安全问题的缺点

许多安全问题的答案很容易被推敲出来。例如:人们可以在公共记录、或社交媒体上找到诸如:父亲的姓氏、或是您所在的街道等的信息。也就是说,我们很容易通过社会工程(例如:网络钓鱼电子邮件或电话),意外地泄露此类敏感信息。

要解决安全问题的缺点,您可以通过输入乱码,来有效地使其成为自己的“第二密码”。当然,您必须小心,以避免丢失或遗忘它们。因此,您可以适当地选用密码管理器来予以保护。

方式2:短信或电子邮件

另一种常见的方式是:在您创建帐户的时候,提供某个常用的手机号码。而当您再次登录时,系统会通过短信或电子邮件向您发送验证代码。这是一个临时的验证码,它会在较短的时间内(如:1~5分钟)过期。因此,您必须及时将它输入并提交,才能完成登录。

(1) 短信邮件验证的优点

只要您手头有能够接受短信或电子邮件的设备,便可在代码发出后的几分钟之内接收到。而且此类设备通常比较便宜。当然,如果您丢失了该设备,通常也可以通过重发手机卡号等方式,从另一台设备上继续接收到相关的代码信息。

(2) 短信邮件身份认证的缺点

该方式的运作前提是:您必须充分信任需要登录的系统服务。也就是说,一些信誉不佳的服务提供商,可能会将您的电话号码用于其他广告营销目的。另一方面,如果某个区域的移动网络信号不佳、甚至没有服务的话,您可能无法接收到相应的登录代码。

此外,短信和电子邮件的通信信道不一定会被安全加密,因此一些技术高超的黑客可以扮演“中间人(MIM)”的角色,在无需接触到接收设备的情况下,轻而易举地以电磁拦截等方式获悉代码的具体内容。

方式3:基于时间的一次性密码(One-Time Password,OTP)

如上图所示,如果有条件的话,我们可以使用身份认证应用程序(请参见: https://www.makeuseof.com/tag/5-best-alternatives-google-authenticator/),扫描某个包含密钥的二维码(QR)。据此,密钥会被加载到该应用之中,并生成定期变化的临时密码。你通过将该密码输入页面,便可完成登录所需的认证。

(1) 一次性密码的好处

在将帐户添加入身份认证应用之后,您完全可以在移动网络服务的情况下访问它们。由于密钥存储在设备之中,因此不会像短信那样被截获。而且,如果您使用的是诸如Authy的身份认证应用,则可以在多个设备之间同步密码,以有效地避免单一设备的局限性。

(2) 一次性密码的缺点

如果手机电池的电量耗尽,那么您将无法访问到验证码(当然短信的方式也有此局限性)。由于设备需要花时间来生成代码,因此如果设备和服务之间的时钟不同步的话,则会导致代码的无效。这恐怕就是为什么我们需要始终将密码打印服务,作为一种紧急的备用登录方式的原因。

虽然可能性很小,但是如果黑客以某种方式克隆了您的密钥,那么他就可以随意生成自己的有效代码。而且,如果该登录服务不限制登录尝试的失败次数的话,那么黑客也可能会通过蛮力破解的方式,来穷举您的帐户密码。

方式4:U2F钥匙

[[323686]]

通用双因素(Universal 2nd Factor,U2F)是一种开放的标准,可被用于USB设备、NFC设备、以及智能卡中。在身份认证的过程中,您只需插入USB密钥,碰一碰NFC设备、或是滑一下智能卡即可。

(1) U2F的优点

作为一种真正独立的物理介质,U2F钥匙只要得到了妥善的保管,就不会被黑客进行数字拦截或重定向。与大多数双因素方式不同,由于只对注册过的账户生效,因此U2F钥匙能够有效地应对网络钓鱼类攻击。它可谓当前最安全的双因素身份认证(2FA)方式之一。

(2) U2F的缺点

由于相对较新,因此U2F钥匙的应用范围并不太广泛。U2F钥匙的另一个主要缺点是设备上的USB接口类型并不通用(请参见:https://www.makeuseof.com/tag/understanding-usb-cable-types-one-use/)。如果您拥有一个带有USB-A接口的U2F钥匙,那么在没有适配器的情况下,它将无法被插到Android、iPhone或最新的MacBook上使用。

U2F钥匙的起价为20美元左右。同时它提供了一种坚固耐用的高级版。虽然高端的U2F钥匙内置了NFC,以方便您在移动设备上直接使用它们,但是其售价比较昂贵。

方式5:推送通知(Push Notification)

在某些平台上,当您输入了密码之后,会在设备上收到包含相关登录尝试通知的推送消息。您只需在设备上点击批准或拒绝,便可响应请求。

(1) 推送通知的好处

推送通知显然比先打开身份认证应用,再复制代码的操作要方便得多。此类通知通常会包含有关:谁在何种设备类型上,通过哪个IP地址,以及在哪里正在尝试登录等信息。这些通知类报警对于正在发生的恶意登录尝试,将十分及时且有效。

此外,由于推送通知能够与您的手机绑定在一起,因此它巧妙地避开了黑客复制您的密码,或窃取短信内容的风险。当然,我们也需要随身携带着此类设备才能保证正常的登录。

(2) 推送通知的缺点

与前面不同,推送通知的认证方式要求您的手机设备能够连接到互联网上。也就是说:如果您没有移动数据连接,且并未连接到Wi-Fi上的话,将无法收到推送过来的登录提示。此外,在您忙碌或精神不集中时,有可能会忽略推送中提示,或在未经思考的情况下批准了陌生的登录验证请求。

方式6:生物识别(面部、语音或指纹)

[[323687]]

面部识别、语音识别和指纹扫描都属于生物识别的类型。它们往往被运用在某些需要安全检查的区域(例如:政府),以确定访客的真实身份。

(1) 生物识别技术的优势

生物识别技术极难被破解。即使是最容易复制的指纹,也需要与指纹所有者进行某种的物理接触才能获取。语音识别往往需要通过您的语音说出某段文字,而面部识别更是需要脸部上的多个特征点去比对已登记的样本信息。

(2) 生物识别技术的缺点

人们在面对生物识别技术的时候,往往会心存顾虑,生怕此类“高科技”可能会对自己的某些器官造成损伤。同时,他们也害怕这些与生俱来的生命特征,会被认证技术采集后泄露出去,进而给自己的生活造成巨大的困扰。

当然,生物识别技术在面对多样性的人体特征时,也有可能产生“误判”。此类错误率往往和技术实现的成本及造价有着密切的关系。

多重身份认证的选择

综上所述,各种双因素身份认证方式可谓各有利弊。究竟该如何取舍?其实还是取决于您的真实场景需求。在此,我们仅给出过往项目的经验和建议:

  • 如果是为了获得最大的安全性和私密性,您可以选用U2F钥匙。它们既不会被跟踪,又不会泄露个人信息。不过您需要花钱购买U2F钥匙,而且可能要随身携带。
  • 如果是为了方便起见,您最好选用短信或邮件。该方式虽然比单步身份认证更快、更容易使用,但是您可能会碰到信号不佳,以及消息被截获的潜在危险。
  • 如果想达到上述两方面的平衡,您最好使用身份认证应用、以及基于时间的一次性密码。不过,您必须小心地保留和备份机密性的代码,以防止设备的丢失或损坏。您也可以使用Authy,在多台设备上实现同步与登录。
  • 如果您想实时获悉登录的尝试,则可以选用推送通知。当然,您需要在确保使用的时候,具有稳定的互联网连接,并能够认真地查看推送过来的消息内容。

原文标题:The Pros and Cons of Two-Factor Authentication Types and Methods ,作者:Ben Stegner

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:赵宁宁 来源: 51CTO
相关推荐

2020-04-29 16:04:21

网络安全网络安全技术周刊

2017-06-26 10:35:58

前端JavaScript继承方式

2019-05-16 13:00:18

异步编程JavaScript回调函数

2020-07-31 11:12:39

安全威胁网络攻击网络安全

2022-01-14 10:34:50

黑客隐藏踪迹网络安全

2009-02-11 09:46:00

ASON网络演进

2009-08-18 17:53:08

思科认证介绍思科培训

2022-03-23 12:55:50

农业物联网

2023-08-11 13:39:06

首席信息官IT领导

2022-07-15 10:30:41

ITCIO

2018-10-19 10:30:51

SD-WAN软件定义广域网网络

2022-03-28 20:57:31

私有属性class属性和方法

2023-10-30 11:53:37

继承JS父类

2022-08-01 00:08:03

双因素认证2FA

2021-12-15 23:10:34

JS Debugger 前端开发

2021-01-08 10:52:22

物联网万物互联IoT,Interne

2023-05-10 13:58:13

服务限流系统

2021-07-13 15:20:05

物联网IOT

2012-08-22 10:43:10

云计算虚拟化敏捷软件开发

2018-08-03 16:40:06

前端前端框架微服务
点赞
收藏

51CTO技术栈公众号