描述
产品使用加密原语,使用一个初始化向量(IV),但产品不产生静脉注射,足够根据预期的加密需求不可预测的或独特的原始。
扩展描述
通过设计,一些加密原语(如块密码)需要静脉注射必须拥有某些属性的独特性和/或不可预测性IV。原语在这些属性的重要性可能会有所不同。如果这些属性不维护,如一个错误的代码,那么密码可能会被削弱或被攻击的静脉注射。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
在下面的例子中,CBC模式时使用加密数据:
EVP_CIPHER_CTX ctx; 字符键(EVP_MAX_KEY_LENGTH); 第四char [EVP_MAX_IV_LENGTH]; RAND_bytes(关键,b); 第四memset (0 EVP_MAX_IV_LENGTH); EVP_EncryptInit (ctx EVP_bf_cbc(),钥匙,(四);
公开课SymmetricCipherTest {
公共静态void main () {
byte[]文本= "秘密" .getBytes (); 第四byte [] = {
0 x00, 0 x00 0 x00 0 x00, 0 x00, 0 x00, 0 x00 0 x00 }; KeyGenerator公斤= KeyGenerator.getInstance (DES); kg.init (56); SecretKey关键= kg.generateKey (); 密码密码= . getinstance (“DES / CBC / PKCS5Padding”); IvParameterSpec ips = new IvParameterSpec (iv); cipher.init(密码。ENCRYPT_MODE、关键,ips); 返回cipher.doFinal (inpBytes);
}
}
在这两个例子中,初始化向量(IV)总是一块0。这使得生成的密文更加可预测和容易受到字典攻击。
示例2
有线等效隐私(WEP)协议802.11中使用的无线标准仅支持40位键,和静脉注射只有24位,增加的可能性相同的四对多个消息被重用。第四是包含在明文作为包的一部分,使得攻击者直接可见。只需要5000条消息碰撞发生之前由于“生日悖论”(ref - 1176]。有些实现对每个数据包重用相同的第四。这第四重用使得攻击者更容易恢复明文从第四两个相同的包,使用容易理解的攻击,特别是如果明文以一个包(ref - 1175]。
观察到的例子
参考 |
描述 |
|
ZeroLogon脆弱性第四——使用一个静态的零AES-CFB8模式 |
|
在SSL / TLS 3.0 1.0中野兽的攻击。在CBC模式中,连接初始化向量是随机,允许解密HTTPS使用选择明文攻击流量。 |
|
无线路由器不使用6 24位的WEP加密,使得攻击者更容易破解交通 |
|
WEP卡生成预测IV值,使得攻击者更容易解密流量 |
|
在AES-CBC设备引导装载程序使用一个零初始化向量 |
|
加密框架使用PHP rand函数——不是密码安全——一个初始化向量 |
|
加密程序没有种子随机数生成器,造成重复相同的初始化向量生成 |
|
加密功能在身份验证框架使用一个固定的空IV CBC模式,允许攻击者破解交通应用程序中使用此功能 |
|
消息door-unlocking产品使用一个固定的四世在CBC模式,也就是每次重启后 |
|
应用程序使用AES在CBC模式中,但是使用数学生成伪随机密钥和IV。随机的,这不是密码地强大。 |
|
Blowfish-CBC实现构造一个第四,每个字节计算模8代替模256,导致第四少于12位的有效长度,第四,低于4096可能值。 |
潜在的缓解措施
实施阶段:
他们的静脉注射不同的密码模式有不同的要求。在选择和实施一个模式,重要的是要理解这些需求来保持安全保证完好无损。一般来说,生成一个随机IV是安全的,因为这将是不可预知的和有一个非常低的非唯一的机会。静脉注射不需要保密的,如果产生重复的静脉注射是一种关注,一列已经使用静脉注射可以保持和检查。
|
功能区域
笔记
维护
CWE 4.5,相关术语随机性,熵,和可预测性可以相差很大。在开发人员和其他社区,使用“随机性”。然而,在密码学,“熵”是不同的,通常隐含的测量。没有常用的定义,甚至在标准文件和加密文件。CWE的未来版本将试图定义这些术语,如果有必要,区分他们的方式适合不同的社区,但不会减少可用性CWE的映射,理解,或者其他场景。
引用
|