应用安全四十三:无密码认证安全

什么是无密码认证?

无密码认证是一种新兴的安全技术和身份认证手段,是用密码以外的东西验证软件用户身份的过程,旨在替代传统的用户账号和密码认证方法,提高账号的安全性和用户体验。无密码技术通过生物识别、多因素认证、基于硬件设备的认证等方法来实现身份验证和授权,可以减少由于密码泄露、用户的疏忽或恶意攻击等因素导致的安全问题。

无密码身份验证可以降低任何组织的成本和安全风险。在无密码身份验证模型中,用户无需输入用户名或电子邮件地址以及密码组成的凭据,而是使用另一种方法来验证身份信息。常见的无密码身份验证包括生物识别(如面部识别、指纹识别、声纹识别等)、短信验证等。无密码技术的最大优势在于解决了密码泄漏这一核心问题。正如谷歌云产品管理总监萨姆·斯里尼瓦斯所解释的那样,在不久的将来,无密码认证的使用可能会迅速增长。

在现实的生活中,其实已经很多手机应用已经开启了无密码验证的应用。例如:使用面容或者指纹开机,登录APP时,也可以选择使用指纹或者短信验证,这样用户就可以不用记住繁琐的密码,也降低了密码泄露的风险。

Passwordless的类型

传统的系统需要用户输入用户名和密码,也就是所谓的What they know,来验证用户是谁? 而无密码认证需要用户通过What they have[例如:移动设备]或者Who they are[例如:生物信息的唯一性可以确定一个用户]。以下是几种常用的无密码认证方式:

生物信息Biometrics):人的很多生物特征都是唯一的,例如:指纹、人脸或者虹膜等。生物信息认证就是通过这些个人唯一的特征来验证登录的用户就是它所声明的那个用户,无需密码。例如:人脸完全的可能性是小鱼一万亿分之一的,完全可以忽略不计,因此人脸识别是一个有效地认证的方式。

魔鬼链接:这种系统登录也不需要用户输入密码,而是要用户输入一个邮箱,系统就会发送一个具备一定随机性的链接到邮箱里,通过这个链接,用户可以点击直接登录系统。这种方式其实还是和密码密码不能完全脱离关系,因为邮箱的认证还是需要密码的,一旦邮箱的密码被攻破,该系统的登录也就被攻破了。这种方式成本比较低,实现起来也比较简单。

OTP/OTC:一次性密码(OTP)或一次性代码(OTC)类似于魔法链接,但要求用户输入您发送给他们的代码(通过电子邮件或通过SMS发送到他们的移动设备),而不是简单地点击链接。

推送通知:英文是Push Notification,用户通过专用的身份验证应用程序(例如Google authenticator)在移动设备上收到推送通知,并通过推送通知打开应用程序以验证其身份。

硬件令牌:如智能卡、安全令牌、近场通信令牌和Rivest-Shamir-Adleman安全令牌是一种在硬件设备中包含证书的人性化方式。这些硬件设备处理身份验证签名过程,并保护密钥不被泄露。这种方式成本比较高,需要硬件支持,还需要有移动的智能卡,一旦智能卡丢失也会对安全造成很大的威胁。

无密码验证与多因子验证

MFA(多因素身份认证)和Passwordless Authentication(无密码身份认证)都是用于增强身份验证安全性的技术,但是它们有一些不同之处。

MFA是一种数字身份认证系统,需要用户通过多个身份认证查验点。通常,MFA会要求用户输入用户名和密码,然后通过其他方式进行额外的身份验证,例如发送一次性访问密码到用户的手机或电子邮件,或者使用生物特征识别技术,如指纹或面部识别。MFA的目的是增加破解密码的难度,减少身份被盗用的风险。

无密码验证则不需要用户输入密码来进行身份验证。它通常利用生物特征识别技术或占有因素来进行身份验证,例如通过指纹识别或通过向用户的手机发送一次性访问密码或电子邮件链接来进行身份验证。这种方法的优点是用户不需要记住复杂的密码,也不需要担心密码被盗用或被破解。

总的来说,MFA和无密码验证都是为了提高身份验证的安全性,但它们采用的方法不同。MFA采用多个身份认证查验点来增加破解密码的难度;而无密码验证则通过利用生物特征识别技术或占有因素来进行身份验证,避免了使用密码带来的风险。

无密码验证的优点和好处

无密码验证比使用密码验证带来很多好处。

从用户的角度来说,当用户密码设置简单时,容易被破解;当用户密码设置复杂时,又容易忘记,经常在重置密码的道路上行进,造成不必要的麻烦。启用无密码验证之后,用户无需再担心密码泄露,也不需要再记住冗长的密码。例如,使用短信验证码验证,只需要输入手机号,获取验证码,就可以使用验证码登录。在移动APP上验证码还支持自动填入,用户都不需要输入验证码就可以登录了。 这就大大方便了用户,提升了用户体验。

从维护系统公司的角度来说,可以降低风险。根据Verizon的2021年数据泄露调查报告(DBIR),登录凭证漏洞占所有数据泄露的84%以上。完全消除密码可以降低数据泄露的风险,因为它降低了攻击者使用密码(以及经常暴露密码的不安全行为)攻击系统和系统的用户的能力。例如,网络犯罪分子经常使用登录凭证填充(使用来自一个网站的用户凭证来访问另一个网站)来攻击该网站,因为超过三分之二的人重复使用密码。消除密码消除了网络犯罪分子使用他们在其他地方获得的凭据访问您系统帐户的能力,降低了撞库攻击的可能。

由于网络钓鱼占所有数据泄露的36%,并且许多都是为了获取用户名和密码而执行的,如果他们收到网络钓鱼电子邮件,因此消除密码意味着您的用户或员工不会意外地向恶意行为者提供任何可以用来访问其帐户和个人数据的东西,也降低了钓鱼攻击的概率。

从维护系统公司的角度来说,还可以降低成本。有些公司的系统重置密码可能需要联系管理人员,这就给管理人员增加了负担。同时,管理系统存储这些密码信息,需要消耗一定的存储空间,而且需要有人维护和管理这些数据。使用了无密码验证,就可以消除存储和维护这些数据的需要【有些无密码验证可能还需要存储一些信息,例如:指纹和面容等】。

从公司的角度而言,如果竞争对手没有提供无密码验证,本公司提供了无密码验证,可以提高用户体验,争取更多的用户。

从预防攻击的角度而言,无密码验证可以预防一下攻击:

暴力破解:无密码身份验证不依赖于人类可读的数据,因此更难以猜测。即使是短信验证码,有效时间非常有限,难以暴力破解或者暴力破解成本很高;

撞库攻击:由于密码不可再用,所以,可以预防撞库攻击;

Keylogger:实现完备的无密码验证是不允许验证码被使用两次的,即使Keylogger可以盗取登录凭证,由于是一次性的,所以,盗取了也没有什么用途。

无密码验证的缺点

第一、如果使用生物信息,由于生物信息是唯一的而且不能改变的,所以,很难重置生物信息,例如,一个人的指纹是不能被重置的。而密码而言,重置密码就很灵活。

第二、无密码验证需要一个安全方法保护好验证码,如果验证码被泄露,再结合个人信息的泄露,就可以被不法分子用于做违法的事情。例如:短信验证码用于验证用户登录,有些人员就利用一些用户对安全知识的认识的不足,尝试通过各种方法获取短信验证码,通过在线会议共享手机屏幕的方式就可以获取短信验证码。另外,如果用户的手机被盗,也会导致短信验证码被截取,因为手机的短信通知里可以在手机不解锁的情况下看到短信验证码。

无密码认证常见的威胁和预防

第一、OTP太短,当使用SMS或者邮件发送短信验证码时,发送的验证码太短,有时还会遇到四位数字的验证码,四位数字组合起来也就10000中情况,很容易就被破解。

预防措施: 使用长一些的短信验证码,例如:6位以上数字。目前手机短信验证码使用的6位数字居多,可能是为了用户友好和安全相结合的结果。不过,大多手机都可以自动填入手机验证码,增加到8位其实也不会给用户带来什么麻烦,而且更加安全。

第二、OTP超时时间太长,一般一次性密码的长度都不长,目前以6位数字为主,如果超时时间太长,就可能给攻击者机会。虽然6位数字组合起来有100万中可能,去掉一些重复的数字再加上生日攻击,尝试的次数就会大大降低。曾经渗透测试时遇到一个网站,6位验证码的有效时间居然给了10分钟的超时时间。

预防措施: 就是缩短一次性密码的有效时间,最长不能大于1分钟。

第三、用户端设备丢失,当一个用户的手机丢失时,捡到手机的人,一旦知道手机号,就可以通过手机号去尝试发送OTP,目前大多数的市场上的手机,如果选择了短信通知的情况下,如下图:

都可以在不解锁的情况下查看到短信的内容,尤其是OTP的短信通知,由于短信内容较短,一般都可以查看整条消息的内容。

预防措施: 就是非必要尽量不要打开短信通知,如下图:

第四、手机端恶意软件,除了盗窃之外,手机端威胁还可能来自包含恶意软件的不安全应用程序、恶意网站或不安全的公共或开放网络等。

预防措施:需要教育用户不要随意点击不明来源的链接,不要使用公共区域的WIFI网络。

第五、安全错误配置和新的安全漏洞,安全配置错误在2019年占所有漏洞的82%,这是黑客的一个容易攻击的目标,因为他们可以容易地发现和利用这些弱点来窃取数据并在组织中制造混乱。这些错误包括未加密的文件、未打补丁的系统、继续使用默认凭据、未受保护的设备以及弱(或不存在)的防火墙保护。配置错误的环境还会使组织容易受到恶意软件感染、僵尸网络和勒索软件攻击的影响,这可能导致数据泄露和赎金要求、身份欺诈和代价高昂的业务停机等问题。

预防措施:通过在整个技术堆栈进行全面的基于风险漏洞评估,加上渗透测试、补丁管理和强大的IAM治理,来识别和解决这些缺陷是至关重要的。为了防止攻击,制定符合企业安全需求的策略和安全基线,指导企业应实施安全配置,并进行符合性检查。定期使用SCA工具扫描是否使用含有严重CVE漏洞的第三方组件等,最好SCA工具可以探测相关CVE是否可以被直接利用,这样可以根据是否可以直接利用设置优先级顺序,优先升级和测试明显可以被利用的漏洞的组件。

第六、内部威胁,来自恶意或疏忽的内奸对各地的组织来说,正在成为越来越大的无密码风险。根据Verizon DBIR 2020的数据,2019年,超过30%的数据泄露涉及内部人员,例如现任或前任员工,或第三方承包商和供应商。许多内部威胁还源于滥用合法的特权帐户。

预防措施:为了降低此类风险,至关重要的是采取安全控制措施,防止滥用和/或提升特权,例如多方授权和将策略执行点分散化以防止IAM策略被篡改。组织还必须确定敏感文件的位置,并确定哪些人可以访问数据,哪些人不能访问数据。 维护最少特权访问模型、围绕数据安全创建一种文化并遵循零信任原则来保护企业资产变得越来越重要。定期检查敏感数据访问日志,及时发现违规行为,及时制止。

第七、用户对隐私的关注,一些用户在使用个人设备进行无密码身份验证时感到不舒服,并担心他们的生物识别数据或上下文数据将被用于侵犯他们的隐私。 对密码的熟悉程度和对无密码身份验证优势的不熟悉也造成了对变革的抵制。

预防措施:使用基于零知识证明和无PII原则的无密码身份验证解决方案,确实可以在使用个人设备时确保不收集用户数据。

第八、不同地方对信息安全的要求的不同,各个国家对网络安全和个人隐私都有专门的法律,不同的国家的法律也不尽相同,如果一个应用要在全球范围内广泛被使用,可能会出现违反当地法律的可能。例如:2019年1月21日,法国的数据保护监管机构——国家信息与自由委员会(CNIL)向谷歌开出5000万欧元(约合5680万美元)的罚单,原因是谷歌没能遵守欧洲《通用数据保护条例》(GDPR)的要求。

预防措施:成立合规部门,研究各个国家的信息安全法律对于收集个人隐私数据的要求,严格按照当地法律实施。在欧洲国家,必须要求工作人员咨询审查无密码身份验证解决方案,以确保其遵守零知识证明和无PII原则。

无密码认证总结

无密码登录确实给用户带来了很大的方便,使用户可以从各种冗长的密码中解脱出来。 但无密码认证给用户带来方便的同时也会带来相应的威胁。在实施无密码认证的时候,需要在系统启动开发之初,考虑到可能收到的威胁,在设计时,需要针对相对的威胁设计好预防方案。由于可能存在未被发现的威胁,在系统投入使用之后,需要时刻关注业界关于无密码认证的攻击事件,及时根据相应事件加强系统的预防措施。

了解无密码身份验证的优点和缺点对于帮助组织实现无密码至关重要。知己知彼才能百战不殆,在信息安全的领域里,也需要做到知己知彼,才能正确地预防。

参考:

Passwordless Authentication 101 | eSecurity Planet

What is passwordless authentication and how does it work?

What Is Passwordless Authentication?

What is Passwordless Authentication?

7 Passwordless Risks and How to Mitigate Them

The Truth About Passwordless Authentication | OneLogin

你可能感兴趣的:(安全,无密码认证)