文章目录
- 前言
- 一、你知道什么?
- 二、你拥有什么
- 1.智能卡
- 2.令牌
- 三、你是什么
- 四、其他因素身份认证
前言
当我们探讨多因子/多因素身份认证时,我们可能会好奇这里的“因素”具体指的是什么?显然,用户名和密码是一种因素,但验证码是否也能被视为另一种因素呢?
让我们一起来深入了解一下三种主要的身份验证因素:
-
知识因素,也被称为“你知道什么”。这包括了所有需要记住的秘密信息,比如密码、PIN码等。在早期的文献中,这一因素通常被归类为类型1身份验证因素。
-
物理因素,也被成为“你拥有什么”。这可能包括智能卡、硬件令牌、存储卡或通用串行总线(USB)驱动器等。在早期的文献中,这一因素通常被归类为类型2身份验证因素。
-
生物因素,又被称为“你是什么”。这包括指纹、面部扫描、视网膜、虹膜和手掌扫描等。在早期的文献中,这一因素通常被归类为类型3身份验证因素。
如果正确实现的话,三者的安全性处于逐渐增强:“你知道什么“
最弱,“你是什么“
最强。
一、你知道什么?
密码是用户输入的一串字符串,是最常见的身份认证技术。秘密通常是静态的,静态密码在一段时间内保持不变,例如 60 天,但静态密码通常是最弱的身份认证形式:
- 用户往往选择容易记住的口令,这样的口令也容易猜测或破解。
- 随机生成的门令难以记忆,因此,许多用户将口令抄写下来。
- 用户经常共享口令或忘记口令。
- 攻击者可以通过多种方式查出口令,包括监视、网络嗅探和窃取数据库。
- 口令有时通过明文形式或容易破解的加密协议传输。攻击者可以使用网络嗅探器来捕
获这些口令。 - 口令数据库有时存储在可公开访问的网络位置。
- 暴力破解攻击可以快速发现弱口令。
我们可以使用密码短语来增强密码,比如选择一句你最喜欢的古诗词,"竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。”使用这句诗词的字的所有开头字母和间隔符号作为密码,进一步的,还可以将不同系统的缩写拼接到你的增强密码后面。
那么当我们设计一个用户登录系统时,如何设计密码策略来提高安全性呢?
- 最长期限:此设置要求用户定期更改其密码,例如每 45 天修改一次。一些文档将此称为密码过期。
- 密码复杂度: 密码复杂度是指密码包含几种字符类型。小写字母、大写字母、数字和特殊字符均是不同类型的字符。简单密码,如 123456789, 仅包含一种字符类型(数字)。复杂密码强制需要使用三种或四种字符类型。
- 密码长度: 长度是指密码中的字符数,例如至少8个字符。密码使用相同字符类型时,较短的密码更容易被破解,而较长的密码更难以破解。
- 密码历史: 许多用户养成了轮换使用两个密码的习惯。密码历史记录可以记录一定数量的历史密码,防止用户重复使用密码。
截至目前,密码建议是不断变化的,还没有形成人人都遵循的共识。根据不同的资料来源,也有不同的密码建议,以NIST SP 800-63B中跟一般共识相反的建议举例:
- 密码不应该过期。不应要求用户定期修改密码,例如每 30 天修改一次。在强制修改密码时,用户往往仅修改单个字符。例如,用户将 Password 更改为 Password2 。虽然这种情况符合修改密码的要求,但不能增加安全性。攻击者在猜测密码时可能使用相同的方法。
- 不应要求用户使用特殊字符。如果要求密码包含特殊字符,通常会让用户面临记忆挑战,因此用户会写下这些密码。此外, NIST 分析了被攻破的密码数据库,发现密码中的特殊字符没有达到预期的效果。
二、你拥有什么
1.智能卡
智能卡,一种信用卡大小的识别工具,内部嵌有微型集成电路芯片。这种卡片储存了授权用户的信息,用于身份的识别和验证。大多数智能卡都配备了微处理器,并携带了一个或多个数字证书。这些数字证书在非对称加密过程中扮演着重要角色,例如数据加密和电子邮件的数字签名,它们还具备防篡改功能,为用户提供了一种简便的方式,来携带和使用复杂的加密密钥。
然而,智能卡的一个限制在于其可共享性和可转移性,这就意味着它并不是一个绝对可靠的身份标识工具。在进行身份认证时,用户需要将智能卡插入读卡器。除了这个步骤,系统通常还会要求用户输入PIN码或口令,这就构成了智能卡的第二个身份验证因素。
2.令牌
令牌设备,也被称为硬件令牌,是一种可随身携带的口令生成工具。回想一下,当我们在早期开通网银时,银行会提供一种名为动态口令卡的设备。这种硬件令牌设备使用动态一次性口令,其安全性远超于静态口令。这些口令通常由6或8位的数字PIN码组成。
令牌设备可分为同步动态口令令牌和异步动态口令令牌两种类型。
-
同步动态口令令牌,它和身份认证服务器保持时间同步,并定期生成新的PIN码,例如每60秒更新一次。这种同步动态口令需要令牌设备和服务器都具备准确的时间。
-
异步动态口令令牌,它是根据特定算法和递增计数器来生成PIN码。在使用递增计数器时,硬件令牌会创建一个在用于身份认证之前保持不变的动态一次性PIN码。当用户将身份认证服务器提供的PIN码输入令牌中时,一些令牌会创建一次性的PIN码。
举个例子,用户首先向网页提交用户名和口令。在验证用户的凭证之后,身份认证系统会使用令牌的标识符和递增计数器来创建一个挑战号码,并通过网页将挑战号码返回给用户。每当用户进行身份认证时,挑战号码都会发生变化,因此,挑战号码通常被称为“nonce”,即“一次使用的数字”的缩写。这个挑战号码只能在该用户的设备上生成正确的一次性口令。用户在令牌中输入挑战号码,硬件令牌便会创建出口令。最后,用户将这个口令输入网站,完成身份认证的过程。
三、你是什么
在当今的身份验证技术中,生物特征识别已占据重要地位。此技术要求将个体提供的生物特征数据与其所声明身份的存储模式进行精确匹配。换言之,当用户声称某一身份时,认证系统会通过比对用户的生物特征来确认其身份的真实性。
生理生物识别方法包括指纹、面部扫描、视网膜扫描、虹膜扣描、手掌扫描和声纹识别。
指纹和面部扫描在我们常见的智能手机上已经得到了普及,此处不再赘述。
- 视网膜扫描:视网膜扫描关注眼睛后部的血管图案。视网膜是最精准的生物特征认证方式,可以区分同卵双胞胎。但是,一些隐私支持者反对使用视网膜扫描,因为视网膜扫描可以泄露用户的病史,例如高血压和怀孕。较旧的视网膜扣描技术将一股空气吹入用户的眼睛,但较新的视网膜扫描技术通常使用红外光。此外,视网膜扫描仪通常要求用户和扫描仪相隔3英寸(大约7.62厘米)。
- 虹膜扫描: 虹膜扫描关注瞳孔周围的彩色区域,是第二准确的生物特征认证方式。与视网膜一样,虹膜在一个人的人生中保持相对不变(除非眼睛受损或病变)。用户通常认为虹膜扫描比视网膜扫描更容易接受,因为扫描可以从远处进行,且侵入性较小。通常可以从6到12 米(大约 20到40 英尺)之外的地方进行虹膜扫描。然而,攻击者可以使用高质量的图像代替人的眼睛来欺骗一些扫描仪。此外,照明变化、某些眼镜和隐形眼镜的使用可能影响扫描的准确性。
- 手掌扫描:手掌扫描仪通过扫描手掌来识别用户身份。手掌扫描仪使用近红外光来测量手掌中的静脉图案,这些图案与指纹一样独一无二。在手掌注册过程中,人们仅需要将手掌放在扫描仪上几秒钟。之后,用户再次将手掌放在扫描仪上以进行身份认证。
- 声纹识别: 这种类型的生物特征认证凭借的是个人说话声音的特征(称为声纹)。用户叙述一个特定的短语,并由身份认证系统记录下来。为了进行身份认证,用户需要重复相同的短语,然后系统将其与原始短语进行比较。声纹识别有时被用作附加的身份认证机制,它很少单独使用。
由于生物特征间的相似性,生物识别技术可能导致误报和漏报。因此,评估生物识别设备性能时,需考虑其产生错误的类型。
- 错误拒绝率: 当未对有效主体进行身份认证时,身份认证系统就出现了错误拒绝。这种现象有时也被称作假阴性身份认证。错误拒绝与有效身份认证的比率被称作错误拒绝率(FRR) 。错误拒绝也被称为 I 类错误。
- 错误接受率 当对无效主体进行身份认证时,身份认证系统就出现了错误接受。这也被称为假阳性身份认证。误报与有效身份认证的比率是错误接受率(FAR) 。错误接受有时被称为 II 类错误。
两者相等时的交叉点称为错误交叉率或等错误率(Equal Error Rate, CER),CER越低,设备的精准度越高。
在实际应用中,企业往往不会将设备灵敏度设置在CER水平,因为相较于错误接受的高风险,错误拒绝的后果更易于通过多次尝试来纠正。
四、其他因素身份认证
在身份认证领域,除了传统的三种基本方式,我们还会结合特定的属性来进行更为复杂的身份验证,以增强安全性:
-
地理位置验证:这种方式通过识别用户所在的具体位置来确认其身份。通常,系统会利用用户的 IP 地址或者来电显示信息来判断其地理位置。
-
上下文感知身份认证:这是一种先进的身份认证方式,常用于移动设备管理系统(MDM)。它能够根据多个因素,如用户当前的位置、时间以及所使用的移动设备等,来识别用户的身份。当用户尝试登录时,MDM 系统会检查这些上下文信息。如果所有条件都符合预设的标准,例如用户位于正确的地点,且在合适的时间段使用指定的设备,系统则会允许用户进一步进行用户名和密码的输入。
-
行为生物特征验证:在某些情况下,尤其是当用户试图访问敏感数据时,系统可能会要求用户完成一个交互式任务,例如拖动滑动窗口。在此过程中,系统会记录并分析用户的行为模式,以此来区分真实用户和自动化程序或机器人。这种方法基于“你做什么”的理念,强调用户的行为特征在身份认证中的重要性。