介绍加密和哈希

已完成

要防范常见的网络安全威胁,一种方法就是对敏感或有价值的数据进行加密。 加密是使数据对未经授权的查看者不可读且不可用的过程。 必须使用密钥进行解密,才能使用或读取加密数据。

有两种顶级加密类型:对称和非对称。 对称加密使用相同的密钥来加密和解密数据。 非对称加密使用公钥和私钥对。 这两种密钥都可加密数据,但用于加密的密钥无法用于解密已加密的数据。 需要配对密钥才能进行解密。 例如,如果使用公钥来加密,则只能使用对应的私钥来解密。 非对称加密用于使用 HTTPS 协议和电子数据签名解决方案访问 Internet 上的站点之类的内容。 加密可保护静态数据或传输中的数据。 有关加密概念的其他信息,请参阅描述加密的概念

示意图显示对称和非对称加密的概念。

静态数据加密

静态数据是存储在物理设备(如服务器)上的数据。 该数据既可存储在数据库中,也可存储在存储帐户中,但无论存储在哪里,静态数据的加密都可确保在没有解密密钥和机密的情况下,无法读取它们。

如果攻击者获取了包含加密数据的硬盘驱动器,但无法访问加密密钥,那么他们就没法读取数据。

加密传输中的数据

传输中的数据是指从一个位置移动到另一个位置的数据,例如通过 Internet 或通过专用网络。 可以通过多个不同的层来处理安全传输。 执行时,可先在应用程序层加密数据,然后再将其通过网络发送。 HTTPS 就是一种传输中加密。

加密传输中的数据可保护数据免受外部观察程序的影响,并提供传输数据的机制,同时降低暴露的风险。

加密使用中的数据

加密使用中的数据的一个常见用例涉及保护非永久性存储(如 RAM 或 CPU 高速缓存)中的数据。 这可以通过创建 enclave(将其视为安全密码箱)的技术来实现,该 enclave 保护数据并在 CPU 处理数据时保持数据加密。

哈希

哈希使用算法将文本转换为唯一的定长值,称为哈希。 每次使用同一算法对相同的文本进行哈希处理时,都会生成相同的哈希值。 该哈希值随后可用作其关联数据的唯一标识符。

哈希不同于加密,因为它不使用密钥,而且哈希值随后不会解密变回原始值。

哈希通常用于存储密码。 当用户输入其密码时,创建存储的哈希所用的算法会创建输入的密码的哈希。 这与存储的密码哈希版本进行比较。 如果两者匹配,则用户输入的密码正确。 这比存储纯文本密码更安全,但黑客也知道哈希算法。 因为哈希函数是确定的(相同的输入生成相同的输出),所以黑客可能会通过对密码进行哈希处理来实施暴力字典攻击。 对于每个匹配的哈希,他们都知道实际密码。 为了降低这种风险,通常要对密码“加盐”。 这是指将定长随机值添加到哈希函数的输入中,为相同的输入创建唯一的哈希。

示意图显示哈希算法的概念。