CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>CWE列表> cwe-单个字典定义(4.10)
ID

CWE-329:通过CBC模式生成可预测的IV

弱点ID:329
抽象:变体
结构:简单的
查看自定义信息:
+描述
该产品生成并使用具有密码块链(CBC)模式的可预测初始化向量(IV),这会导致算法在同一键下加密时易于字典攻击。
+扩展描述

CBC mode eliminates a weakness of Electronic Code Book (ECB) mode by allowing identical plaintext blocks to be encrypted to different ciphertext blocks. This is possible by the XOR-ing of an IV with the initial plaintext block so that every plaintext block in the chain is XOR'd with a different value before encryption. If IVs are reused, then identical plaintexts would be encrypted to identical ciphertexts. However, even if IVs are not identical but are predictable, then they still break the security of CBC mode against Chosen Plaintext Attacks (CPA).

+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级- a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. 573 呼叫者的规格不正确
Childof 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 1204 产生弱初始化载体(IV)
+背景详细信息

CBC模式是块密码的常用操作模式。它通过在加密之前与明文的初始块进行XOR-ing IV起作用,然后在加密之前与先前的Ciphertext块一起使用Ciphertext的前块。

C_0 = IV
c_i = e_k {m_i xor c_ {i-1}}}

正确使用时,CBC模式为选择的明文攻击提供了安全性。拥有不可预测的IV是对此的关键基础。看 [Ref-1171]。

+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计 设计师可能会为加密变量假设非晶状体上下文。
执行 开发人员可能会忽略不可预测的IV的重要性,并选择更轻松的实施来节省努力,从而削弱该计划中的计划。
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

班级:不是特定语言的(不确定的患病率)

技术

班级:ICS/OT(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
Confidentiality

技术影响:读取应用程序数据

如果静脉注射未正确初始化,则加密的数据可能会受到损害并泄漏信息。
+利用的可能性
中等的
+示例的例子

示例1

在以下示例中,加密数据时使用CBC模式:

(不良代码)
示例语言:C
evp_cipher_ctx ctx;
char键[evp_max_key_length];
char iv [evp_max_iv_length];
rand_bytes(key,b);
memset(iv,0,EVP_MAX_IV_LENGTH);
evp_encryptinit(&ctx,evp_bf_cbc(),key,iv);
(不良代码)
示例语言:爪哇
公共类Symmetricciphertest {
公共静态void main(){

字节[] text =“ secret” .getBytes();
字节[] iv = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
KeyGenerator kg = KeyGenerator.getInstance("DES");
kg.init(56);
secretkey key = kg.generekey();
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
ivparameterspec ips =新的ivparameterspec(iv);
cipher.init(cipher.encrypt_mode,key,ips);
返回cipher.dofinal(inpbytes);
}
}

在这两个示例中,初始化矢量(IV)始终是零的块。这使得生成的密码文本更加可预测,并且容易受到字典攻击。

+Observed Examples
参考 描述
身份验证框架中的加密功能使用CBC模式使用固定的NULL IV,允许攻击者在使用此功能的应用程序中解密流量
门上锁定产品的消息在CBC模式下使用固定的IV,每次重新启动之后,该iv是相同的
应用程序在CBC模式下使用AES,但是使用Math.random生成了伪随机秘密,而IV在密码上并不强。
Blowfish-CBC实现构建IV,其中计算每个字节的模拟8而不是Modulo 256,导致有效的IV长度少于12位,小于4096可能的IV值。
SSL 3.0 / TLS 1.0中的野兽攻击。在CBC模式下,链式初始化向量是非随机的,可以使用所选的明文攻击使用HTTPS流量解密。
+潜在的缓解

阶段:实施

NIST recommends two methods of generating unpredictable IVs for CBC mode [Ref-1172]。首先是随机生成IV。第二种方法是使用相同的密钥和密码加密授权,以加密纯文本。在这种情况下,nonce必须是唯一的,但可以预测,因为块密码将充当伪随机排列。
+功能区域
  • 密码学
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 959 SFP次级群集:弱加密
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1346 OWASP前十2021年A02:2021-加密故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1370 ICS供应链:公共模式脆弱
+笔记

维护

As of CWE 4.5, terminology related to randomness, entropy, and predictability can vary widely. Within the developer and other communities, "randomness" is used heavily. However, within cryptography, "entropy" is distinct, typically implied as a measurement. There are no commonly-used definitions, even within standards documents and cryptography papers. Future versions of CWE will attempt to define these terms and, if necessary, distinguish between them in ways that are appropriate for different communities but do not reduce the usability of CWE for mapping, understanding, or other scenarios.
+分类映射
映射的分类名称 节点ID Fit 映射的节点名称
扣子 不使用CBC模式的随机IV
+参考s
[Ref-62] Mark Dowd,John McDonald和Justin Schuh。“软件安全评估的艺术”。第2章,“初始化向量”,第42页。第一版。艾迪生·卫斯理。2006。
[Ref-18] Secure Software,Inc.。“ The CLASP应用程序安全过程”。2005年。<https://cwe.mitre.org/documents/sources/theclaspapplicationsecurityprocess.pdf>。
[Ref-1171] Matthew Green。“为什么IND-CPA意味着随机加密”。2018-08-24。<https://blog.cryptographyEngineering.com/why-ind-cpa-implies-randomized-ecryption/>。
[Ref-1172] NIST。“建议块密码操作模式”。附录C. 2001-12。<https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-38a.pdf>。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 扣子
+修改
修改日期 Modifier 组织
2008-07-01 埃里克·达奇(Eric Dalci) Cigital
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新后台_DETAILS,common_consequences,function_areas,关系,分类_mappings
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2012-05-11 CWE内容团队 MITER
updated References, Relationships
2012-10-30 CWE内容团队 MITER
更新了示范_examples,势_mitigations
2014-07-30 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新了适用的_platforms,示例_examples
2019-06-20 CWE内容团队 MITER
更新了示范_examples
2020-02-24 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新后台_DETAILS,common_consequences,示例_examples,Description,modes_of_introduction,name,obseved_examples,eneligth_metigations,参考,关系,关系
2021-07-20 CWE内容团队 MITER
更新的描述,维护_notes,名称,参考
2021-10-28 CWE内容团队 MITER
更新的关系
2022-04-28 CWE内容团队 MITER
更新的关系
2023-01-31 CWE内容团队 MITER
更新了适用的_platforms
+先前的输入名称
改变日期 先前的输入名称
2021-03-15 不使用CBC模式的随机IV
2021-07-20 不使用CBC模式使用不可预测的IV
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日