网络安全等级保护:​良好的加密及数字签名和证书

admin 2024年1月6日09:58:36评论24 views字数 4875阅读16分15秒阅读模式

识别良好的加密

每年还有数十种其他加密方法免费向公众发布或获得专利并出售以获取利润。然而,计算机行业的这个特定领域充满了欺诈和江湖骗子。人们只需在任何搜索引擎上搜索加密,就能找到大量最新、最伟大的牢不可破加密的广告。如果您不了解加密,如何区分合法的加密方法和欺诈方法?

尽管不存在检测欺诈的有保证的方法,但以下准则应该可以帮助您避免大多数欺诈性加密声明:

· 牢不可破任何有密码学经验的人都知道,不存在牢不可破的代码。存在尚未被破解的密码。有些代码很难破解。然而,当有人声称他的方法完全牢不可破时,你就应该怀疑了。

· 已认证不存在公认的加密方法认证流程,因此公司拥有的任何认证都是毫无价值的。

· 缺乏经验的供应商:了解任何营销新加密方法的公司的经验。使用它的人有什么经验?他们有数学、加密或算法背景吗?如果没有,他们是否已将其方法提交给同行评审期刊的专家?他们是否至少愿意披露他们的方法是如何运作的,以便能够得到公正的判断?

一些专家声称您应该只使用众所周知的方法,例如 Blowfish。我不同意。拥有一个使用不太知名甚至新的加密方法的安全系统当然是可能的。当今所有广泛使用的方法都曾经是新的且未经测试的。但是,有必要采取额外的预防措施,以确保您在使用不太知名的方法时不会被误导。需要明确的是,我绝不建议未经测试的算法。例如,当 NIST 举办竞赛并最终选择 Rijndael 密码作为 AES 时,还有其他四种入围算法经过严格测试,但被拒绝,其中一些是因为性能问题。这些可能是值得考虑的好算法。

了解数字签名和证书

数字签名不是用来确保消息的机密性,而是用来保证消息的发送者。这称为不可否认性。本质上,数字签名证明了发送者是谁。数字签名实际上相当简单,但是很聪明。他们只是逆转非对称加密过程。回想一下,在非对称加密中,公钥(任何人都可以访问)用于加密发送给收件人的消息,而私钥(保持安全且私有)可以对其进行解密。通过数字签名,发送者可以使用他或她的私钥对某些内容进行加密。如果收件人能够使用发件人的公钥解密该消息,则该消息一定是由声称发送该消息的人发送的。

数字证书

请记住,从非对称密码学讨论中可以看出,公钥分布广泛,并且获取某人的公钥相当容易。您在上一节中还了解到,验证数字签名也需要公钥。至于公钥是如何分发的,大概最常见的方式是通过数字证书。数字证书包含公钥和一些验证公钥是谁的方法。

X.509 是数字证书中包含的格式和信息的国际标准。X.509 是世界上最常用的数字证书类型。它是一个数字文档,包含由受信任的第三方(称为证书颁发机构 (CA))签名的公钥。X.509 证书的内容是

· 版本

· 证书持有者的公钥

· 序列号

· 证书持有者的专有名称

· 证书有效期

· 证书颁发者的唯一名称

· 发行人的数字签名

· 签名算法标识符

证书颁发机构颁发数字证书。CA 的主要作用是对绑定到给定用户的公钥进行数字签名和发布。它是一个受一个或多个用户信任的管理证书的实体。

注册机构 (RA) 通常用于通过在颁发证书之前处理验证来减轻 CA 的负担。RA 充当用户和 CA 之间的代理。RA 接收请求,对其进行身份验证,然后将其转发给 CA

公钥基础设施 (PKI) 分发数字证书。这是一个由受信任的 CA 服务器组成的网络,充当分发包含公钥的数字证书的基础设施。PKI 是一种通过 CA 将公钥与各个用户身份绑定的安排。

如果证书过期或被吊销怎么办?证书吊销列表 (CRL) 是由于某种原因已被吊销的证书的列表。证书颁发机构发布自己的证书吊销列表。验证证书的较新方法是在线证书状态协议 (OSCP),它是一种用于验证证书的实时协议。

X.509 证书有多种不同类型。它们各自至少具有本节开头列出的元素,但用途不同。此处列出了最常见的证书类型。

· 域验证证书是最常见的。它们用于保护与特定域的通信。这是一个低成本证书,网站管理员使用它为给定域提供 TLS

· 通配符证书,顾名思义,可以使用更广泛,通常与给定域的多个子域一起使用。因此,您不必为每个子域使用不同的 X.509 证书,而是为所有子域使用通配符证书。

· 代码签名证书是用于对某种类型的计算机代码进行数字签名的 X.509 证书。这些通常需要对请求证书的人进行更多验证,然后才能颁发。

· 机器/计算机证书是分配给特定机器的 X.509 证书。这些通常用于身份验证协议中。例如,为了使计算机登录网络,它必须使用其计算机证书进行身份验证。

· 用户证书用于个人用户。与机器/计算机证书一样,它们通常用于身份验证。用户在访问某些资源之前必须出示他或她的证书进行身份验证。

· 电子邮件证书用于保护电子邮件。安全多用途 Internet 邮件扩展 (S/MIME) 使用 X.509 证书来保护电子邮件通信。PGP 当然使用 PGP 证书。

· 主题备用名称 (SAN) 与其说是一种证书,不如说是 X.509 中的一个特殊字段。它允许您指定要受此单个证书保护的其他项目。这些可能是其他域或IP地址。

· 根证书用于根权限。这些通常由该机构自签名。

PGP证书

Pretty Good Privacy (PGP) 不是一种特定的加密算法,而是一个系统。提供数字签名、非对称加密和对称加密。经常出现在电子邮件客户端中。PGP 20 世纪 90 年代初推出,被认为是一个非常好的系统。

PGP使用自己的证书格式。然而,主要区别在于PGP证书是自行生成的。它们不是由任何证书颁发机构生成的。

散列

哈希函数H是一种接受可变大小输入m并返回固定大小字符串的函数。返回的值称为哈希值h或摘要。这可以在数学上表达为h = H(m)。哈希函数应具有三个属性:

· 可变长度输入和固定长度输出。换句话说,无论您在哈希算法中输入什么内容,都会产生相同大小的输出。

· H(x)是单向的;你不能取消哈希某些东西。

· H(x)是无碰撞的。两个不同的输入值不会产生相同的输出。冲突是指两个不同的输入产生相同的输出的情况。哈希函数不应发生冲突。

散列是 Windows 存储密码的方式。例如,如果密码是“password”,那么 Windows 将首先对其进行哈希处理,生成类似以下内容的内容:

0BD181063899C9239016320B50D3E896693A96DF

然后,将该哈希值存储在 Windows 系统目录中的 SAM(安全账户管理器)文件中。当用户登录时,Windows 无法取消哈希密码,因此Windows 所做的就是获取输入的任何密码,对其进行哈希处理,然后将结果与SAM文件中的内容进行比较。如果它们(完全)匹配,那么就可以登录。

存储 Windows 密码只是哈希的一种应用。还有其他的。例如,在计算机取证中,在开始取证检查之前对驱动器进行哈希处理是常见的做法。然后,可以随时再次对其进行哈希处理,以查看是否有任何更改(意外或故意)。如果第二个哈希值与第一个哈希值匹配,则没有任何变化。

与散列相关,术语盐”是指用作散列输入之一的随机位。本质上,盐与要散列的消息混合在一起。盐数据使使用字典条目预加密的字典攻击变得复杂。它还可以有效抵御彩虹表攻击。为了获得最佳安全性,盐值是保密的,与密码数据库/文件分开。

MD5

MD5 RFC 1321 指定的 128 位哈希值。由 Ron Rivest 1991 年设计,用于取代早期的哈希函数 MD41996年,MD5的设计被发现存在缺陷。尽管这并不是一个明显致命的弱点,但密码学家开始建议使用其他算法,例如 SHA-1MD5最大的问题是不抗碰撞。

SHA

安全哈希算法可能是当今使用最广泛的哈希算法。现在存在 SHA 的多个版本。SHA(所有版本)被认为是安全且无冲突的。版本包括

· SHA-1 160 位哈希函数类似于MD5 算法。这是由国家安全局 (NSA) 设计的,作为数字签名算法的一部分。

· SHA-2这实际上是两个类似的哈希函数,具有不同的块大小,称为 SHA-256 SHA-512。它们的字长不同;SHA-256 使用 32 字节(256 位)字,而SHA-512 使用 64 字节(512 位)字。每个标准还有删减版本,称为 SHA-224 SHA-384。这些也是由美国国家安全局设计的。

· SHA-3这是 SHA 的最新版本。该法案于 2012 10 月获得通过。

RIPEMD

RACE 完整性原语评估消息摘要是由Hans DobbertinAntoon Bosselaers Bart Preneel 开发的 160 位哈希算法。该算法存在 128 位、256 位和 320 位版本,分别称为 RIPEMD-128RIPEMD-256 RIPEMD-320。这些都取代了原来被发现存在碰撞问题的 RIPEMD。较大的位大小使其比 MD5 RIPEMD 更安全。

RIPEMD-160 作为 RIPE 项目的一部分在欧洲开发,并得到德国安全局的推荐。该算法的作者将 RIPEMD 描述如下:“RIPEMD-160 是一种快速加密哈希函数,针对 32 位架构上的软件实现进行了调整。它是由 Ron Rivest 1990 年推出的 MD4 256位扩展演变而来。它的主要设计特点是两条不同且独立的并行链,其结果在每次压缩函数应用结束时组合在一起。

Tiger 

Tiger 是使用Merkle-Damgard 结构(有时称为 Merkle-Damgard 范式)设计的。Tiger 生成 192 位摘要。这种加密哈希由 Ross Anderson Eli Biham 发明,并于 1995 年发布。单向压缩函数对 64 位字进行操作,维护三个字的状态并处理八个字的数据。有 24 轮,使用 XOR 混合运算、加法/减法、旋转和 S 盒查找的组合,以及相当复杂的密钥调度算法,用于从 8 个输入字导出 24 轮密钥。

HAVAL

HAVAL 是一种加密哈希函数。与MD5 不同,但与大多数其他现代加密哈希函数一样,HAVAL 可以生成不同长度的哈希值。HAVAL 可以生成长度为 128 位、160位、192 位、224 位和 256 位的哈希值。HAVAL 还允许用户指定用于生成哈希的轮数(34 5)。哈弗由郑玉良、约瑟夫·皮耶普兹克 (Josef Pieprzyk) 和詹妮弗·塞伯里 (Jennifer Seberry) 1992 年发明。

SWIFFT

SWIFFT实际上是哈希函数的集合。这些哈希函数之所以引人注目,是因为它们是可证明安全的,这实际上意味着它们已在数学上被证明是安全的。SWIFFT 哈希的数学有点复杂,因为 SWIFFT 利用快速傅里叶变换并使用基于格的数学,这超出了本文的范围。然而,由于这些算法已被证明是安全的,因此值得在这里提及。

MAC 和 HMAC

如前所述,散列算法通常用于确保消息完整性。如果消息在传输过程中被更改,接收者可以将他们收到的哈希值与他们计算的哈希值进行比较,并检测传输中的错误。但是故意改变消息又如何呢?如果有人故意更改消息、删除原始哈希并重新计算新哈希,会发生什么情况?不幸的是,简单的哈希算法无法解释这种情况。

消息验证码 (MAC) 是检测消息中有意更改的一种方法。MAC 通常也称为密钥加密哈希函数。这个名字应该告诉你它是如何工作的。实现此目的的一种方法是通过哈希消息身份验证代码 (HMAC)。假设您使用 MD5 来验证消息完整性。为了检测有意更改消息的拦截方,发送方和接收方必须事先交换适当大小的密钥(在本例中为 128 位)。发送者将对消息进行哈希处理,然后将哈希值与该密钥进行异或。接收者将对他们收到的内容进行哈希处理,然后将计算出的哈希值与密钥进行异或。然后交换两个哈希值。如果拦截方只是重新计算哈希值,他们将没有与其进行异或的密钥(甚至可能不知道应该对其进行异或),

实现 MAC 的另一种常见方法是通过CBC-MAC。为此,使用块密码(任何密码都可以)而不是哈希。该算法采用CBC模式。然后只有最后一个块用于 MAC。这可以使用您选择的任何分组密码来完成。从实际角度来看,MAC HMAC 都比哈希更安全。共享密钥的添加提高了安全性。只要有可能,使用 MAC HMAC 优于仅使用哈希。


参考:
网络安全等级保护基本要求
等级保护技术基础培训教程

原文始发于微信公众号(河南等级保护测评):网络安全等级保护:​良好的加密及数字签名和证书

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月6日09:58:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络安全等级保护:​良好的加密及数字签名和证书http://cn-sec.com/archives/2366148.html

发表评论

匿名网友 填写信息