# Sakai kernel-impl 加密密钥预测漏洞
## 概述
Sakai 是一个协作与学习环境。在版本 23.5 和 25.0 之前,`EncryptionUtilityServiceImpl` 中使用了非加密级别的伪随机数生成器(`java.util.Random`)来生成 AES256TextEncryptor 的密码(`serverSecretKey`),导致安全性下降。
## 影响版本
- 在版本 23.5 和 25.0 之前受影响
- 已在版本 23.5、25.0 和 trunk 中修复(补丁编号:SAK-49866)
## 细节
`EncryptionUtilityServiceImpl` 使用 `RandomStringUtils` 生成 `serverSecretKey`,而其底层依赖 `java.util.Random`,该随机数生成器不是加密安全的伪随机数生成器(PRNG)。
由于 `java.util.Random` 的种子信息(如服务器启动时间窗口)较易被预测,攻击者可通过有限的状态信息推测其生成的随机值,从而显著减少密钥的搜索空间。
## 影响
攻击者若能获取使用该加密服务保护的密文(例如导出或静态数据),并能估算 PRNG 的种子信息,就有可能重建 `serverSecretKey`,进而解密受影响的数据,造成敏感信息泄露。
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Sakai kernel-impl: predictable PRNG used to generate server‑side encryption key in EncryptionUtilityServiceImpl · Advisory · sakaiproject/sakai · GitHub -- 🔗来源链接
标签: x_refsource_CONFIRM
神龙速读标题: SAK-49866 use commons-text for generation · sakaiproject/sakai@bde0701 · GitHub -- 🔗来源链接
标签: x_refsource_MISC
神龙速读暂无评论