 描述
实现需要加密原语,使用非标准产品实现了一种加密算法,未经证实的,或不允许/不一致的加密实现。
 扩展描述
加密协议和系统依赖于加密原语(和相关的算法)的基本构建块。一些常见的原语的例子有数字签名、单向散列函数,密码,公钥密码术;然而,“原始”的概念可以取决于的观点。看到“术语笔记”概念的进一步解释。
加密原语来完成一个特定任务定义精确定义和数学上可靠的方式。例如,假设为一个特定的加密原语(如一个加密程序),原始的共识是只能被打破后尝试不同输入N (N的值越大,越强加密)。aes - 256这样的加密方案,一个希望N是如此之大,是不可行的,在合理的时间内执行。
如果漏洞发现表明,可以打破一个加密原始显著低于预期数量的尝试,那么原始的被认为是削弱(有时在极端情况下,一般是“破”)。因此,任何使用该加密原始现在将被视为不安全或危险。因此,甚至破坏或削弱一个看似小加密原语有可能使整个系统脆弱,因为它依赖于原始。一个历史的例子可以发现在TLS使用DES。人会通俗的叫DES加密原始运输在这个版本的TLS加密。在过去,DES被认为是强大的,因为没有发现弱点;重要的是,DES密钥长56位。在N = 2 ^ 56键对于大多数演员被认为是不切实际的。不幸的是,与56位密钥攻击系统现在实际通过蛮力,这使得击败DES加密实用。现在对敌人实际发送的任何信息在这个版本的TLS和使用此信息来攻击系统。结果,它可以声称这使用TLS是弱,,任何系统根据TLS DES可能使整个系统更容易受到攻击。
加密原语和相关算法只考虑安全从学术界广泛研究和审查经验的密码后,工业和政府实体寻找任何可能的缺陷。此外,加密原语和相关算法经常重新评估安全当新的数学发现和攻击技术。结果,随着时间的推移,甚至著名的加密原语可以失去合规状态与小说的发现攻击可能击败算法或显著减少其鲁棒性。
如果特别加密原语实现,它几乎可以肯定的是,实现将所了解的密码容易受到攻击,导致暴露敏感信息和其他后果。
这个弱点更加难以管理的hardware-implemented部署加密算法。首先,因为硬件不是patchable软件好用,释放后发现的任何缺陷和生产通常不能固定没有召回的产品。其次,硬件产品往往是工作多年,在此期间计算功率提供给攻击者只会增加。因此,对于硬件的实现加密原语,它是绝对必要的,只有坚强,证明使用加密原语。
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
327年 |
使用损坏或危险的密码算法 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
310年 |
密码问题 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关观点“硬件设计”(cwe - 1194)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1205年 |
安全原语和加密问题 |
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
这个弱点主要是在体系结构和设计阶段引入风险包括原语。 |
实现 |
即使在正常情况下建筑阶段指定一个密码安全设计,设计可能会改变在实现由于不可预见的约束。 |
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
|
不正确的使用加密原语可以渲染所谓的加密数据加密的明文在最坏的情况下。 |
高 |
 示范例子
示例1
再利用随机值可能会影响安全。
假设一个加密算法需要一个关键的随机值。而不是使用DRNG(确定性随机数字生成器),设计师使用了一个线性反馈移位寄存器(LFSR)生成的值。
而LFSR可以提供伪随机数生成服务,熵(衡量随机性)产生的输出可能会低于一个公认DRNG (dev / urandom)中使用。因此,使用一个LFSR削弱了加密系统的力量,因为它可能对攻击者猜测LFSR输出和随后的加密密钥。
如果一个密码算法预计一个随机数作为输入,提供一个。不提供一个伪随机值。
 观察到的例子
参考 |
描述 |
|
安全软件使用MD5,低于默认sha - 256使用的相关产品 |
|
默认配置的产品使用MD5代替强算法可用,简化伪造的证书。 |
|
身份证使用MD5哈希的盐和密码 |
|
个人密钥使用替换密码在网络上传播 |
|
产品没有禁用TLS-RSA密码套件,让交通如果TLS 2.0和安全密码解密不启用。 |
|
SSL / TLS库生成16字节目前但减少他们12字节目前ChaCha20-Poly1305密码,将他们的方式违反了密码的要求独特的目前。 |
|
LDAP接口允许使用弱密码 |
|
SCADA产品允许“过时的密码套件的使用” |
|
芯片实现蓝牙使用一个低熵PRNG代替硬件RNG,允许欺骗。 |
|
安全产品在DRBG熵不足,使碰撞和私钥的发现 |
|
Dual_EC_DRBG实现RSA工具并不能正确地处理某些字节请求,简化明文复苏 |
|
推荐Dual_EC_DRBG算法包含点Q的常量,可以简化解密 |
 潜在的缓解措施
阶段:需求
需要遵守strongest-available推荐信任党,和要求合规必须保持最新的,因为建议随时间而变化。例如,美国政府系统需要FIPS 140 - 3认证,它取代FIPS 140 - 2 ( ref - 1192][ ref - 1226]。
|
阶段:体系结构和设计
确保架构/设计使用信任党strongest-available原语和算法。例如,美国政府系统需要FIPS 140 - 3认证,它取代FIPS 140 - 2 ( ref - 1192][ ref - 1226]。
|
阶段:体系结构和设计
不开发自定义或私人密码算法。他们可能会暴露于攻击易于理解的密码。正如所有加密机制,应该用于分析源代码。如果该算法可能会妥协当攻击者发现它是如何起作用的,那么它尤其薄弱。
|
阶段:体系结构和设计
尽量不要使用加密算法的新方法或新模式的操作,即使你“知道”它是安全的。例如,使用SHA-2链接来创建一个加密1次垫可能听起来像一个好主意,但是我们不应该这样做。
|
阶段:体系结构和设计
确保设计可以代替一个加密原语或算法,另一个在下一代(“加密敏捷”)。在可能的情况下,使用包装器进行统一的接口。这将使它更容易升级到更强的算法。这是特别重要的硬件,可以更加难以升级快于软件;设计在一个可替换的块级别的硬件。
|
阶段:体系结构和设计
不要使用过时的或不一致的加密算法。一些老算法,一度被认为需要十亿年的计算时间,现在可以打破在几天或几小时。这包括MD4 MD5、SHA1 DES和其他算法,曾被认为是强大的 ref - 267]。
|
阶段:体系结构和设计;实现
不要使用一个线性反馈移位寄存器(LFSR)或其他传统方法代替一个公认和标准随机数发生器。
|
阶段:体系结构和设计;实现
不要使用校验和代替密码生成的散列。
|
阶段:体系结构和设计
使用一个审查加密库或框架。行业标准的实现将节省开发时间和更有可能避免错误可能发生在加密算法的实现。然而,库/框架可以使用期间不正确的实现。
|
阶段:体系结构和设计;实现
当使用有技术,正确地使用它们。不偷工减料,跳过资源密集型步骤( cwe - 325)。这些步骤通常是必不可少的预防常见的攻击。
|
阶段:体系结构和设计;实现
不存储键访问地区不可信的代理。精心管理和保护密钥(请参阅 cwe - 320)。如果键可以猜测或被盗,那么加密算法的强度是无关紧要的。
|
 弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
 检测方法
体系结构或设计审查
评审需求、文档和产品设计,以确保原语与信任党strongest-available建议一致。如果产品似乎是使用自定义或专有实现,没有足够的公众审查和批准,然后这是一个重要的问题。
|
手动分析
分析每个原始的产品,以确保实现不包含任何已知的漏洞,不使用任何known-weak算法,包括MD4 MD5、SHA1, DES等。
|
动态分析与人工解释结果
硬件,在实现(pre-Silicon / post-Silicon)阶段,动态测试应该从加密以确保输出例程的确是正常工作,例如测试向量由NIST ( ref - 1236]。
|
动态分析与人工解释结果
需要决定如果缺乏加密原语的输出熵,这是一个明显的迹象表明,出问题时加密的实现。存在许多测量bytestream的熵的方法,从复杂的国家(如香农熵的计算序列的字符)原油的(通过压缩和比较原始bytestream与压缩的大小——一个真正随机的字节流不应可压缩,因此未压缩和压缩bytestreams应该几乎相同的大小)。
|
 笔记
术语
密码学术语变化很大,从非正式的、口语化的理论上,不同精度和形式取决于利益相关者是一个开发人员,密码学家等。然而,有必要为CWE首尾一致的同时保持多个观众理解和接受。
CWE 4.6, CWE术语“原语”和“算法”正成为下面的例子所示,接受未来的协商和协议在CWE和密码学的社区。假设一个希望发送加密数据使用CLI OpenSSL等工具。人们可能会选择使用AES与一个256位的密钥,需要篡改保护(GCM模式,例如)。为了兼容,也可以选择要格式化的密文的PKCS # 5的标准。在这种情况下,“加密系统”将aes - 256 gcm PKCS # 5格式。“密码功能”将AES - 256在GCM的操作模式,和“算法”将AES。通俗,人会说AES(有时AES - 256)是“加密原始,”,因为它是对称加密的算法,实现了概念(没有操作模式或其他协议相关的修改)。在实践中,开发人员和架构师通常指基础加密算法(AES、沙等)作为加密原语。
维护
CWE 4.4以来,各种cryptography-related条目,包括 cwe - 327和 cwe - 1240已定于广泛的研究、分析和社区协商定义一致的术语,改善人际关系,减少重叠或重复。CWE 4.6,这项工作仍在进行中。
 引用
 内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2020-02-10 |
Arun Kanuparthi Hareesh Khattri Parbati Kumar吗哪,哈Kumar V Mangipudi |
英特尔公司 |
|
贡献 |
贡献的日期 |
贡献者 |
组织 |
2021-10-18 |
Parbati k吗哪 |
英特尔公司 |
提供检测方法和观察到的例子 |
修改 |
修改日期 |
修饰符 |
组织 |
2020-08-20 |
CWE内容团队 |
主教法冠 |
更新Background_Details、Common_Consequences Demonstrative_Examples、描述Maintenance_Notes, Modes_of_Introduction, Potential_Mitigations, Related_Attack_Patterns Research_Gaps |
2021-07-20 |
CWE内容团队 |
主教法冠 |
更新Maintenance_Notes Research_Gaps |
2021-10-28 |
CWE内容团队 |
主教法冠 |
更新Background_Details Demonstrative_Examples,描述、Detection_Factors Maintenance_Notes,名字,Observed_Examples, Potential_Mitigations,引用关系,Terminology_Notes Weakness_Ordinalities |
以前的条目名称 |
改变日期 |
以前的条目名称 |
2021-10-28 |
使用危险的加密原语 |
|
|