什么是密钥扩展?

007bug2023-12-22 11:11:42

为了访问自己的数字账户,我们通常需要用到密码或口令。不过,正如现实生活中开锁的钥匙可能并不总是牢靠一样,并非所有的密码都是安全的。为了加强在线防御,安全专家开发了一系列技术和方法,来提高密码的安全性。这些方法包括:散列(Hashing)、加盐(Salting)、掺杂(Peppering)和密钥扩展(Key Stretching)等。下面,让我们来探讨一下密钥扩展的重要性,以及它是如何大幅提高在线安全性的。

什么是密钥扩展?

作为一种加密技术,密钥扩展可被用于增强密码和口令的安全性,尤其是在原始密码的随机性或长度不足以抵御各种攻击(如:蛮力攻击或字典攻击)的情况下。总体而言,密钥扩展会通过对密码或密钥进行多次散列处理,来实现更强大的安全性。

密钥扩展也被称为密钥强化,通常是将一个相对较弱、较短的密码或加密密钥,应用某种加密函数或算法,以生成一个更强且更长的密钥。新生成的密钥输出又作为后续的输入,如此反复进行,直到能够输出所需的密钥。从根本上说,此举的目的在于:使得攻击者即使获得了原始密钥的散列或加密版本,也需要耗费大量的计算成本和时间,才可能恢复原始密钥。

目前,密钥扩展在在线账户、金融交易、以及数据保护等具有高安全性要求的应用中,发挥着至关重要的作用。它是确保已存密码和加密密钥安全性的重要组成部分,并最终可以保障用户账号与数据可信。

密钥扩展是如何工作的?

为了理解密钥扩展是如何将弱密码转换成强大安全的密码,让我们来看一个简单的例子:想象一下,您有一个类似"iloveyou"这样再普通不过的密码。那么对于攻击者来说,该密码可能都称不上什么秘密。他们很容易通过暴力破解单词表和字典的方式,打开这扇“大门”。而事实上,攻击者的确只需 30 秒,就能破解并访问该账户。

而密钥扩展会对这个易受攻击的密码进行散列处理,以创建更长、更复杂的密码。例如:"iloveyou"会变成"e4ad93ca07acb8d908a3aa41e920ea4f4ef4f26e7f86cf8291c5db289780a5ae"。不过,整个扩展过程并未就此结束。

接着,这个新密码通过再次散列,就变成了:"bc82943e9f3e2b6a195bebdd7f78e5f3ff9182ca3f35b5d415cf796ab0ce6e56"。

而将其继续做一次散列,就会得到:"46e95d6374c00c84e4970cfe1e0a2982b2b11b1de9343a30f42675a2154a28f5"。以此类推,您可以根据需求执行多次此类操作。

那么,我们是否需要自己从头开始写代码,以实现整个过程呢?显然不需要。目前,业界已有一些用于密钥扩展的代码库,可以为您完成此类繁重的工作。其中,较为典型和流行的密钥扩展算法有:PBKDF2、scrypt、Argon2和bcrypt。其中当属bcrypt和PBKDF2最广为人知。

具体而言,bcrypt采用blowfish密码进行多轮散列,使之成为保护密码安全的可靠选择。而PBKDF2(Password-Based Key Derivation Function,基于密码的密钥推导函数2)是另一种增强密钥或密码安全性的可靠选择。这些工具都可以确保即使是最微弱的密码,也能够得到极大限度的屏蔽,以防止未经授权的访问。

密钥扩展与加盐

密钥扩展和加盐都是密码安全领域的重要技术,它们在增强密码强度等方面,各自发挥着独特的作用。

如上所述,密钥扩展主要是对密码进行多轮散列处理,从而有效地将弱密码转化为更安全的版本。因此,执行的次数越多,密码就越安全。而密码加盐则提供了额外的一层防御。它需要在应用散列过程之前,在密码中添加一串不同的字符,即,通过增加复杂性,来提高密码的强度。

在实际中,这两种技术可以被协同使用,以增强密码的整体强度。不过,需要注意的是,加盐并非事后补救之法,而应当从一开始便融入其中,从而在弱密码进行散列处理之前,就对其进行增强。从本质上讲,密钥扩展和加盐就像一个协作团队,共同为您的敏感信息提供额外的保护。

密钥扩展的重要性

密钥扩展通常被用于基于密码的加密和身份验证系统。它有助于降低弱口令或易猜密码的风险性,使得攻击者即使获得了原始口令的散列或加密版本,也很难恢复其经历了高昂计算代价的原始信息。在诸如:保护已存密码和加密密钥等各种实际应用场景中,我们时常可以用到它。下面,我为您总结了密钥扩展的4项典型安全功能:

  1. 增强安全性:密钥扩展的主要目的就是为了大幅提高密码或加密密钥的安全性。为此,它会将那些脆弱的、易被猜测的密码转化为强大的、复杂的密钥,使其更能够抵御蛮力和字典攻击等攻击。
  2. 抵御彩虹表:彩虹表又被称为预计算表。此类表格是预先生成的散列密码对应表。攻击者可以利用它们来快速地查找相应的密码。而加盐和密钥扩展等方法恰好可以使这种表格丧失功效。
  3. 降低弱密码影响:在实际操作中,用户通常会选用便于记忆、但易受攻击的弱密码。而密钥伸展功能则提供了一个额外的安全层面,在用户和服务之间实施安全保护。
  4. 减缓攻击者的速度:密钥扩展的复杂计算大幅降低了攻击者破解密码的速度。显然,每一次额外的迭代都会使得破解过程更加耗时,进而让攻击者望而却步。

使用密码强化技术确保资产安全

虽然密码是安全的第一道防线,但是如果过于简单,被破解就只是时间问题了。如今,攻击者正变得越来越狡猾,破解水平也在持续增强。因此,若想在这场“猫鼠游戏”中保持领先,密钥的处理机制就需要“多走一步”。例如采取上文提到的密钥扩展、加盐和掺杂等先进技术,就能够很好地协助用户将弱密码转化为可以抵御潜在威胁的坚固之盾。

原文标题:What Is Key Stretching? Here's How Your Passwords Can Be Kept Secure,作者:CHIOMA IBEAKANMA

信息安全散列算法
本作品采用《CC 协议》,转载必须注明作者和本文链接
下一代加密技术接口是微软在 Windows 下实现的取代上一代加密应用程序接口的密码服务接口。其目的是提供一种可扩展的方式以支持各种应用程序和未知的密码算法,以便不同的算法、协议向操作系统注册,并对应用程序提供统一的调用接口,应用程序无需改造即可支持对新算法的使用。研究了基于下一代加密技术接口在操作系统中注册国密SM2、SM3 算法,完成解析和验证国密 SM2 证书,实现了国密算法在系统中的注册及
虽然加密技术新辈多出,但哈希算法(也称“算法”)自诞生以来,已成为加密算法领域不可或缺的应用。 最简单的算法也被用来加密存在数据库中的密码字符串,日常我们在各大APP中注册时填写的密码均是以字符串方式保存在服务器中,用户登陆时需要再次对输入密码实施哈希计算,而后将两个密码字符串进行碰撞验证登陆。
成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。
结合商用密码技术,设计铁路行业统计调查系统密码保障体系,并提出对应的保障措施。基于商用密码技术的产品和服务是实现信息安全的重要手段,可以实现重要敏感信息的真实性、机密性、完整性和不可否认性等功能 。
近年来,越来越多的智能终端和信息系统集成了生物识别技术,并在金融、安防等领域中广泛使用。用户的生物特征信息一旦泄露,将严重威胁用户的切身利益。依托模糊提取技术、纠错算法和安全算法,提出了一种指纹生物特征的隐私保护和认证方法。
美国国家安全局发布量子密码FAQ,疯狂暗示不用担心量子计算机破解当前公钥密码体制。
Cybernews研究团队透露,美国政府和国防承包商Belcan将其超级管理员证书向公众开放。5月15日,网络新闻研究团队发现了一个开放的 Kibana 实例,其中包含有关 Belcan、其员工和内部基础设施的敏感信息。Kibana 是数据搜索和分析引擎 ElasticSearch 的可视化仪表板。这些系统可帮助企业处理大量数据。
融业一直是探索利用科技手段促进数据要素价值释放的前沿行业。在数据成为生产要素并推动其流通的情况下,隐私计算技术及其在行业的应用正在加速发展。
007bug
暂无描述