iOS MSAL库被标记使用不安全加密算法相关问题咨询
问题解答
1. AES 128使用的加密模式
你所提供的代码调用了Apple CommonCrypto框架的CCCrypt函数,该函数在未传入kCCOptionECBMode配置项时,默认使用CBC(密码分组链接)模式。当前代码仅传入了kCCOptionPKCS7Padding填充参数,没有启用ECB模式的标识,因此实际运行的是AES-128-CBC加密模式。
2. 初始化向量(IV)的生成逻辑
当前代码显式将IV参数设置为NULL,不存在自定义的IV生成、存储逻辑。按照CommonCrypto的底层实现规则,CBC模式下传入NULL作为IV参数时,框架会自动使用全0的16字节固定值作为IV,这也符合你所提到的CCCrypt NULL IV场景的表现。
额外说明:当前实现确实存在安全风险:CBC模式搭配固定全0IV,不仅易遭受填充预言机攻击,相同明文在相同密钥下会生成相同密文,存在明文信息泄露的可能性。修复时可参考示例代码切换为CTR或GCM模式,IV需在每次加密时通过密码学安全的随机数生成器生成,且同一个密钥下不可重复使用IV。
内容的提问来源于stack exchange,提问作者user2480766
相关产品推荐
相关产品推荐

