用户身份验证:超越密码

安全
对于广大普通用户来说,在访问需要对身份进行确认的指定系统时,密码就属于最经常见到的工具之一。不过,由于密码已经被公认属于效力比较弱的身份验证模式。

对于广大普通用户来说,在访问需要对身份进行确认的指定系统时,密码就属于最经常见到的工具之一。不过,由于密码已经被公认属于效力比较弱的身份验证模式;所以,我们现在就需要利用到替代或者补充措施来对用户实际身份进行更准确的确认。本文将对目前最经常使用的多因素身份验证技术进行全面介绍,并对相关的优缺点进行详细说明,为接下来的深入讨论打好理论基础。

身份验证意味着什么?

所谓身份验证,指的就是对一名普通人(或者一位用户)所声称的情况是否符合实际进行确认的基本过程。在对用户身份标识进行确认的时间,我们通常需要用到下面列出的三项基本“因素”:

1.使用只有用户才能知道的隐私信息

2·使用只有用户才能拥有的专门物品

3·使用只有用户才能代表的独特事物

当然,某些情况下,我们也可以在验证过程中使用到包含时间与位置信息在内的其它类型因素。举例来说,我们可以选择利用某位特定用户工作日程中的相关设定来对登录时间的有效范围进行相应的限制,还能够利用地理位置信息来对用户登录网络的具体位置进行控制。不过,由于这些因素往往只适用于非常特殊的情况下,所以它们在绝大多数时间里都只能作为基本身份验证因素的补充措施使用。接下来,我们就一起来深入了解一下基础认证因素的具体内容。

只有用户才能知道的隐私信息

在所有基本因素的应用中,使用范围最广阔的一种情况就是依靠只有用户才能知道的隐私信息(最常见的形式就是密码)来对实际身份进行验证。造成这种情况的原因就是,作为一种身份验证方式,密码不仅使用起来非常方便,而且在绝大多数情况下都可以达到成本低廉的效果。至于密码的具体内容,则可以从最简单的4位个人身份号码到由字母数字组成非常复杂的口令这一宽广领域中随意选择。

由于密码已经变得非常流行,所以我们在选择使用的时间就需要进行极其严格的专门审核。并且,在绝大多数情况下,它应该被认为属于效力薄弱的验证模式。单就密码本身而言,最大的薄弱环节是用户在使用时经常会表现出来的各种不良习惯。在确认密码的时间,用户往往会选择利用可以被轻易猜到的简单信息作为基础,还有可能无法做到内容足够复杂,而这就会导致系统被暴力破解攻击轻松搞定的情况出现。当然,在某些情况下,错误的密码策略也需要对所出现的问题承担部分责任。不过,上面提到的部分问题可以通过对(包括最终用户和技术人员在内的所有人员)使用者进行培训和教育的方式来进行清除处理。

只有用户才能拥有的专门物品

它作为另一项已经获得了广泛使用的因素,目前最常见的表现形式就是银行卡。在这种情况下,系统所采用的基本原则就是:由于“用户所拥有的专门物品”属于特定人员所拥有的唯一项目,所以系统可以接受它作为用户获得授权的证明文件。

以计算机系统为例,里面就涉及到很多种采用该因素的验证模式。它的使用范围也非常广泛,从智能卡,到USB令牌,无线令牌/卡以及最近出现利用手机作为令牌的项目(通过短信或下载的应用程序)不一而足。如果需要对这种类型的解决方案进行评估的话,我们就应该考虑到包括部署成本、硬件和软件方面的需求、易用性、用户验收情况、项目耐久性等部分在内的的问题。

如果攻击者试图对这种类型的系统进行破坏,最直接的选择就是窃取相关设备。这样的话,攻击者就可以利用拥有者报告遗失系统将被盗设备标记为无效之前的空窗期作为进行入侵的有效时间。此外,如果对设备进行复制处理的话,就可以在攻击时带来更好的效果。当然,不少系统中也可能会设置有复制保护机制,从而实现有效阻止这种类型攻击的目标。在某些情况下,攻击者也会选择利用中间人模式来进行系统入侵。尽管这么做会让实际操作变得更加复杂,但却可以保证攻击的隐蔽性和有效性获得极大提高。举例来说,最近针对RSA令牌所发起的成功攻击就属于极佳的例证。而移动类恶意软件的蔓延则属于另外一个典型的例子,攻击者通过对手机造成威胁的方式变相实现了降低该认证因素实际效力的目标。

只有用户才能代表的独特事物

对于利用只有用户才能代表的事物作为身份验证模式的解决方案来说,通常选择的是使用者生物体征方面的基本信息。而这往往就会涉及到指纹、声纹或者虹膜类扫描技术,以及利用原始记录中存档进行比较的工作。

通常情况下,系统会将利用计量生物学技术获得的具体读数用某种数学算法处理成为一个哈希值并保存起来。在对用户进行认证的时间,系统就会对两个哈希值进行比较;如果它们之间的相似度达到了设定要求的话,用户就会被认为确实属于本人从而获得系统访问权限。对于生物识别设备来说,可能出现的错误有将虚假读数当作正确的(假阳性)或者正确读数被拒绝(假阴性)两种。而对于制造商来说,用来计量这些错误等级的具体参数就是假阳性导致的错误接受率(FAR)以及假阴性导致的错误拒绝率(FRR)。为了对两项读数之间的准确性进行更好的比较,我们在这里还需要使用到相等错误率(EER,两种错误相等时间的比率)。通常情况下,设备的EER越低,就意味着实际准确度越高。具体到实际部署的过程,这些类型的身份验证措施也往往会面临来自其它方面的挑战。这其中就包括了相对较高的成本、用户的抵制以及硬件方面的特殊需求。此外,我们必须考虑到的问题还包括了采集用户原始读数(“注册”)并输入到生物识别系统中这一启动过程中会出现的问题。

对于生物识别器来说,工作时遭遇到有针对性的中间人攻击并不属于非常罕见的情况。而造成这种情况的原因就在于攻击者能够捕获并记录下原始读数,随意进行发送或者重播。此外,生物识别读数的固有缺点就是可以被轻松复制或伪造(举例来说,我们只要利用明胶就可以复制出一枚假指纹来,而依靠录音技术就可以获得识别语音),并且非常难于进行调整。毕竟,对于用户来说,更换泄露的密码或者领取新的智能卡都属于非常简单的工作,但如果想改变自己固有声纹的话,基本上就属于不可能完成的任务了。

对于生物类别的身份验证技术来说,有时间还会涉及到“使用者行为表现”领域的相关工作。这种情况下,该技术通常不会被用来进行初始验证,而是将侧重于对既定身份进行确认。最典型的例子就是,当信用卡交易中出现反常使用情况时,用户身份的真实有效性就会受到怀疑。目前,美国国防部高级研究计划局正在寻找行为模式应用的新方法,以达到在无需打断用户正常活动的情况下对身份有效性进行验证的目标。#p#

实施多因素认证:该考虑的问题

上面介绍了几种基本的用于身份认证的认证要素,以及它们各自的优劣。下文将讨论在采用多因素认证(多重认证)系统的时候要考虑哪些问题。

什么是多因素认证?

从字面理解,多因素认证即采用两种或两种以上的认证因素对用户的身份进行认证。采用两种认证因素的认证机制被称作双重认证或双因素认证。典型的双重认证是ATM卡和PIN码组合而成的认证机制。它采用的是“你所持有的”(卡片)与“你所知道的”(PIN密码)组合的机制。这里重点要强调的是,认证所考虑的多种因素之间应该是相互独立的关系。比如,采用两组密码作为认证因素,并不能称之为多因素认证,因为这种方式虽然经过多次认证过程,但只采用了一种认证因素即密码因素。

多因素认证由于采取了类型独立的多种认证因素,导致攻击者也必须同时采用多种攻击手段进行攻击,大大增加了攻击成功的难度。而要想有效的实施多因素认证机制,必须要注意一些要点。

成本

首先要考虑的就是成本问题。与直接购买软件的许可证相比,实施多因素认证系统会涉及到一些隐性成本。比如你可能需要考虑到硬件设备分发的成本(口令卡,智能卡或生物特征识别器),或者涉及到生物特征识别的合理的成本。另外,技术支持的成本也要计算在内,因为能够想象到在整套机制部署过程甚至部署完成后的一定时期内,要求技术支持的电话都会很频繁。

事先评估解决方案的成本将有助于防止项目经费超过预算。对于那些没有合适的风险管控机制,以及对企业最重要的资产和数据到底是什么或者存放在哪里都不清楚的企业领导来说,事先评估尤其重要。当然,也有可能你的项目成本就是企业的运营成本,尤其是在一些高度规范的行业,比如金融行业。

用户接受度

其次考虑的就是用户接受度了,也可以叫做“用户排斥度”。比如对于大多数人来说,潜意识中都比较排斥和拒绝别人对自己进行的身体特征的扫描行为。另外对于体积笨重的身份识别设备,人们也不喜欢随身携带,那些会影响到人们正常工作和生活流程的验证步骤,他们也比较排斥。这些反对的声音可以通过适当的管理策略来调和或强制实施,另一些则需要通过教育,改变人们的思维观念和态度。

你还要清楚哪类人群将会是多因素验证方案的最终用户,他们的技术经验如何,他们所使用的硬件和软件类型是什么样的。比如,如果企业用户都在使用你所提供的标准的硬件和软件,那么这种情况将帮你更恰当的制定出解决方案,并充分利用现有环境。相反,如果最终用户与你的企业关系并不是那么紧密,你可能无法确切的知道他们在使用什么样的硬件和软件,因此你就需要找到一个适用范围更广的解决方案。

支持过程

在项目部署开始前,必须要对用户进行日复一日的研究。比如,如果在你的多因素认证解决方案中,需要引入“你所知道的”这个因素作为身份认证的因素之一,你必然会遇到用户忘记他们的密码这种问题,因此你的解决方案中还应该加入密码重置功能。此外还有很多需要考虑的,他们都与你所选择的认证因素有关。下面就是一些你可能需要考虑到的事项:

1·口令或证书的撤销

2·身份丢失或被盗的后续补救动作。

3·验证系统受损或失败后的替代方案。

另外,在认证系统中还要小心布置后门。很多时候,设计人员会出于“万一”的考虑,在系统中留下一个后门,但是这个后门如果设置不当,将有可能让整个身份认证系统形同虚设。

方案安全性

再次检查你的方案的安全性,以确保验证机制安全可靠,这听上去有些多余,但是能让你进一步确定整个验证环节中不存在安全弱点。目前市场上很多产品会将关键内容以明文形式存放,比如存放在令牌或智能卡上,或者存放在后端服务器上。这对于生物学数据来说非常危险,因为一旦数据遭到窃取,受害人基本无法修改这些数据以避免未来身份被盗用的风险。

方案多种多样

能够使用多因素验证系统的环境很多,而且不同的验证因素相互组合,会令解决方案更加多种多样,希望本文能帮助你设计出适合需求的更加有效的多因素身份认证系统方案。
 

责任编辑:于爽 来源: ZDNet应用安全
相关推荐

2021-06-03 08:56:34

密码身份验证无密码

2019-06-03 12:02:37

2019-06-03 11:14:16

2012-10-23 16:12:35

2012-01-06 10:35:07

2021-08-27 10:40:49

GitHubGitLinux

2022-06-20 15:38:39

密码安全身份验证

2022-02-14 21:31:00

用户身份验证

2017-01-19 09:36:02

2010-09-06 11:24:47

CHAP验证PPP身份验证

2014-06-24 09:24:24

密码身份验证

2022-11-02 11:42:02

2013-07-21 18:32:13

iOS开发ASIHTTPRequ

2011-02-21 10:54:45

2011-05-04 16:40:00

2011-05-04 17:06:46

2022-08-11 08:35:40

Hanko开源

2013-04-25 09:46:19

身份验证谷歌

2010-07-17 00:57:52

Telnet身份验证

2010-11-30 15:31:38

SharePoint Kerberos
点赞
收藏

51CTO技术栈公众号