保护电商网站的最常用密码—哈希方法

对于电子商务网站所有者和提供商业软件应用程序的人来说,密码哈希变得比以往任何时候都更加重要。保护用户数据 不再是一个建议,而是一项要求,因为消费者将他们的安全和数据安全放在首位。

Password Hashing Methods Securing Ecommerce

如果黑客或恶意行为者获得了对您的密码数据库的访问权限,并且这些密码以纯文本形式存储,则入侵者将可以访问您网站或应用程序上的每个用户帐户。

避免这种情况的推荐方法是通过密码散列。

电子商务黑客

如果没有适当的网络安全协议,电子商务商店所有者就有可能将自己和他们的客户置于风险之中。我们不需要再看2013 年 Target 黑客攻击就可以了解黑客攻击如何以及为何成为电子商务平台的主要威胁。

话虽这么说,较小的电子商务商店比大公司面临更大的风险,因为它们针对网络犯罪分子的安全协议较少。小型电子商务商店可能面临的两种最大的网络犯罪包括网络钓鱼攻击和信用卡欺诈,前者的攻击目标是用户数据,例如信用卡号和登录信息,后者试图提取信用卡号,然后将其出售在黑市上。

正如您现在所希望知道的那样,电子商务商店的安全性一定是您最关心的问题,这将需要您采用多种安全措施,包括密码散列。

什么是密码散列?

要 了解当前如何在内容管理系统和 Web 应用程序上使用密码散列,我们必须定义一些关键内容。

当您对密码进行哈希处理时,它基本上会将密码转换为加扰表示或“字符串”,您可以使用它来避免将密码存储为纯文本,以免恶意行为者找到它们。哈希在内部将值与加密密钥进行比较以实际解释密码。

还应注意,哈希是一种不同于 加密的加密安全形式。这是因为加密旨在通过两步过程对消息进行加密和解密,但正如我们刚刚介绍的那样,散列旨在从文本中的前一个字符串生成一个字符串,该字符串可能会因输入变化很小而有很大差异。

您将看到的另一种散列方法是 所谓的加盐,它只是将字符添加到散列密码的末尾,以使其更难解码。

与盐腌类似的是所谓的胡椒腌制。这还会在密码末尾添加一个附加值。有两种不同的加盐版本,第一种是将值添加到密码末尾,如我上面提到的,第二种是添加到密码的值在位置和值上都是随机的。这样做的好处是它使蛮力攻击和某些其他攻击变得非常困难。

目前使用的哈希算法

根据平台的不同,您将看到用于密码的各种散列方法。这也可能因内容管理系统而异。

最不安全的散列算法之一 称为 MD5,它创建于 1992 年。正如您可以从 1992 年创建的算法中想象的那样,它不是最安全的散列算法。该算法使用比传统加密标准低很多的 128 位值,因此这意味着它不是一个非常安全的密码选项,而是更常用于不太安全的要求,例如文件下载。

您将看到的下一个常见哈希算法 是 SHA-1该算法由美国国家安全局于 1993 年创建。他们等了几年才发布该算法,然而尽管比 MD5 只晚了一年才开发出来,但它在当时要安全得多。您可能仍会看到一些密码以这种方式进行哈希处理,但不幸的是,该标准已被确定不再安全。

作为国家安全局发布的 SHA1 的升级版本,SHA-2 于 2001 年创建。与它的前身一样,它不是由 NSA 专门创建的,只是在几年前才被标准化。它仍然是安全散列密码的可行方法。

您将看到的另一种密码哈希算法是 //medium.com/@danboterhoven/why-you-should-use-bcrypt-to-hash-passwords-af330100b861" target="_blank" rel="nofollow noopener" style="box-sizing: border-box; color: rgb(0, 176, 255); text-decoration: none; background-color: transparent; touch-action: manipulation;">BcryptBCrypt 算法包含一种盐,旨在防止暴力攻击。

BCypt 用来使蛮力攻击更加困难的工具之一是减慢恶意行为者可能正在使用的蛮力操作或程序。这意味着如果尝试使用蛮力攻击,则可能需要数年时间才能成功。

与 bCrypt 类似的是 Scrypt。这种密码散列算法还通过盐等额外防御来扩展密钥 (旨在将随机数据添加到散列函数输入以创建更独特的输出),并使蛮力攻击几乎不可能,而 Scrypt 的另一个优势是它被设计为在被蛮力攻击时占用大量计算机内存。这意味着它有一个额外的措施来延长暴力攻击成功所需的时间。

我们将在内容管理系统和 Web 应用程序上看到的最后一种密码哈希算法是 PBKDF2。此密码哈希算法由 RSA Laboratories 创建,与前面提到的算法一样,还向哈希添加扩展以使 Brute Force 更加困难。

存储散列密码

在散列过程之后,以及在使用任何算法完成其工作之后,密码的输出将是其自身的加扰十六进制表示形式。

这意味着这将是一串很长的字母和数字,这些字母和数字将是网站或应用程序存储的内容,以防黑客获得该信息的访问权限。

因此换句话说,如果黑客进入您的电子商务网站并找到用户密码数据库,那么他将无法使用它们直接登录用户帐户。

相反,他或她将不得不解释随机字母和数字来弄清楚您的密码实际上是什么。

Storing Hashed Passwords

多个网站密码

有时您会遇到电子商务商店用户 可能需要在不同服务之间共享密码的情况。

这方面的一个例子可能是您有一个单独构建的移动设备应用程序,与基于 Web 的版本相比,它可能采用不同的技术或在不同的平台上。在这种情况下,您需要跨多个平台同步散列密码,这可能非常复杂。

幸运的是,有些公司可以帮助跨平台同步哈希密码。 一个例子是 FoxyCart,它是一种允许在应用程序之间同步散列密码的服务。