译者 | 陈峻
审校 | 重楼
现如今,随着
人工智能(
AI)应用的普及和快速迭代,几乎任何人都可以轻而易举地利用AI进行密码破解之类的攻击。这已经引起了业界的担忧。下面,我将围绕着:密码破解究竟意味着什么,基于AI的密码猜测技术,以及我们该如何保护自己的密码免受此类攻击这三个方面展开讨论。
破解密码意味着什么?
长期以来,密码始终是网络攻击者关注的焦点。他们只需获取密码,就能绕过所有的安全系统,攫取整个系统的相关信息,及其存储在其中的所有数据。
让我们先来了解一下与密码破解有关的散列(哈希,hashing)概念。密码散列是一种通过更改原始记录中的数字,来安全地存储用户密码的方法。其过程为:对用户的真实密码(通常为纯文本)进行数学计算处理,以输出固定长度的加密散列值。例如,您在登录某个
网站时将密码设置为“secret_pass
word123”,那么该网站的预定义散列函数会根据该输入的数据,生成类似“3a5b9c1d8e7f2b6g”的特定散列输出。换句话说,您在该网站数据库中留存的数据记录将是“3a5b9c1d8e7f2b6g”,而不是“secret_password123”。对此,如果网络攻击者劫持了该网站的数据库,他们就不得不通过计算“3a5b9c1d8e7f2b6g”值,来逆向推导出您的真实密码。然而,散列(哈希)算法的一个特点便是单向性。这会使得密码的破解过程变得相当复杂。不过,随着AI的赋能,
黑客如今已可以采用多维度、不同的方法,去尝试着破解真实的散列密码。
AI能够破解密码吗?
凭借人工智能的快速计算、以及处理大型数据集的能力,网络攻击者能够据此,来缩短并破解某些由加密算法保护的密码。其中,最为典型的当属AI在密码破解过程中的学习能力。只要有足够的数据和时间被用来学习特定的加密算法,人工智能模型就能够学会理解和破解加密所用到的数学关系。可见,与普通的试错方法相比,人工智能可以更有效、更快速地破解密码。
除了机器学习,网络攻击者仍然可以借助人工智能,对密码开展暴力破解的攻击方式。此处的暴力破解是指,尝试所有可能的密码组合,以找到正确密码的过程。而人工智能完全可以优化该过程,以减少重复破解密码的尝试次数。
此外,人工智能还可以研究文本语言以及语法,成功地破解出那些基于自然语言的加密密钥。也就是说,利用人工智能的语言模型,网络攻击者可以更加高效地在密码分析中,使用基于频率分析的方式予以破解。
基于AI的密码猜测技术
密码的猜测往往直接涉及到各种数学方法。作为密码学研究领域的一个分支,密码分析最典型的方式莫过于历史上赫赫有名的英格玛密码(Enigma Code)。当然,人工智能也会用到如下以数学为基础的方式:
- 频率分析:它试图通过分析密文中字母或符号的出现频率,来猜测加密密钥或密码。通常,自然语言中的字母有着一定的频率分布规律,而经过加密后的文本字母也会出现类似的频率分布。这种规律的捕捉对于简单的加密算法而言,是特别有效的。
- 差分密码分析:这是发现块密码算法(block cipher algorithms)弱点的理想方法。该分析方法试图通过检查加密算法,在输入和输出之间的差异中,找到所使用的加密密钥。
- 线性和微分密码分析:它涉及到用于分析对称密钥加密算法的数学技术。该技术试图利用加密算法的线性方程、或差分方程,去发现加密密钥。
- 错误分析:在加密算法的实际执行过程中,系统极可能会出现各种潜在的错误,或是暴露出与安全相关的漏洞。该分析试图利用此类错误或漏洞,来伺机获取加密密钥。
- 随机性测试:由于加密算法的安全性主要取决于随机性,因此攻击者可以通过数学方法,来测试确定加密算法中使用到的随机性(其实是基于算法的“伪随机性”),以预测算法的输出结果。
- 特殊算法攻击:利用加密算法的相关知识和深入研究,网络攻击者可以发现某些典型算法的弱点,进而在此基础上开发出专门设计好的攻击方式。
上述密码分析方法不仅能够帮助到网络攻击者,也能够协助密码分析师,来评估正在使用、或已经采用的密钥算法的健壮程度。因此,它们对于密码安全的重要程度,是不言而喻的。
如何加强密码安全,防范人工智能攻击
鉴于网络攻击者可以将人工智能和密码破解技术结合起来发起攻击,普通用户又该如何采取行之有效的措施,来予以应对呢?
使用长而复杂的密码
许多人趋向使用简单的短语作为密码,以方便记忆。素不知,此举也方便了攻击者。对此,我们需要采用足够长的密码(至少12个字符),以应对简单的猜测攻击。
与此同时,密码中必须包含不同类型的字符,如:大、小写字母、数字和特殊字符等。例如,您不应该使用曾被认为神秘难测的“P@ssw0rd”之类的简单密码,而应当使用“Tr#78sF$a24pQ”这样在结构上更为复杂的密码。
如果您担心自己记不住长而复杂的密码的话,请使用一些功能强大的密码管理工具来协助您。当然,笔和纸这种老套的方式,并非毫无使用场景。
为每个平台设置不同的密码
许多人会在不同平台的多个账户中使用相同的密码。这种所谓的“图省事儿”往往潜藏着重大的安全风险。试想,如果网络攻击者获取了您其中一个账户的访问权限,那么他将轻而易举地访问您的其他账户。因此,我们需要通过为每个平台创建不同的密码的方式,来切断账户之间的联系。注意,此处所谓的“账户之间的联系”,不应只是简单地从一个应用的“password_1234”密码,更换为另一个应用的密码--“1235_password”,而是要尽量减少重复字符组合的出现频率。
使用双因素身份验证
双因素身份验证(Two-factor authentication,2FA)可以提供额外的安全保障。除了密码,2FA机制需要向您的
手机、电子邮件或其他设备发送一串代码,以完成后续的身份验证。由于此举能够更好地保护您的账户免受恶意攻击,因此请确保您在主动支持 2FA 的平台上启用此项功能。
遵守密码更新和注销政策
定期更改密码有助于防范那些曾被用到过的密码被盗取,而不会波及到现有使用的密码。此外,请养成注销个人资料的习惯。此举将能够避免那些不再使用的设备、应用等在您毫不知情的状态下泄漏出去。
人工智能和网络安全的未来
人工智能技术的发展可谓日新月异。不只是技术专家和软件开发者正在积极探索AI的使用场景,让人类的生活更加轻松;也不乏黑客和恶意攻击者使用AI获取他人的密码,或达到其他不可告人的目的。针对如何防范AI盗取用户密码,希望上述简单实用的规避要点,能够给您提供帮助。
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。
原文标题:Yes, AI Can Crack Your Password, but Can You Prevent It? ,作者:FATIH KÜÇÜKKARAKURT)