DBMS_RANDOM被认为是危险的吗?

wol*_*lφi 7 security oracle

我们的数据库团队希望从PUBLIC撤消对DBMS_RANDOM的执行以解决安全问题.如果你谷歌为它,一些安全专家认为该包危险,但没有说明原因.Ingram和Shaul的书"Practical Oracle Security"指出

...在加密密钥生成中使用该功能的环境中授予对DBMS_RANDOM的PUBLIC访问权限可能会导致加密数据受损...

Oracle文档说

DBMS_RANDOM不适用于加密.

......而且......

DBMS_CRYPTO.RANDOMBYTES ...返回包含加密安全伪随机字节序列的RAW值,可用于生成加密密钥的随机材料.

因此,DMBS_RANDOM似乎可以用于生成伪随机数(只要您不使用它制作密码).为什么这对PUBLIC来说太危险了?

编辑:刚刚找到一个新的来源,声称

DBMS_RANDOM:允许加密数据,而无需安全管理加密密钥.

这也是胡说八道,不是吗?

Fre*_*Ben 5

当使用 DBMS_RANDOM 进行加密密钥生成时,不应将 DBMS_RANDOM 授予 PUBLIC 的原因是,攻击者可以使用它来确定密钥生成中的种子值和/或模式,从而可用于确定数据的密钥加密与. 这就是为什么它可能导致加密数据泄露的原因。这当然不是一个容易的攻击,但对于具有足够处理能力的人来说是可能的。

DBMS_RANDOM 不应该用于加密,因为它太可预测了。对于加密密钥生成,应仅使用安全随机函数。这些函数试图通过测量白噪声之类的东西并从中产生值来获得尽可能随机的结果。

  • 有趣的。那么 DBMS_RANDOM 只有在我们将其用于加密时才存在安全风险(忽略反对它的建议)?否则,我想这是绝对安全的。 (3认同)
  • 有趣的是,当时一些大型黑客也使用同样的攻击方式在拉斯维加斯的视频扑克游戏中进行作弊。他们买了一台机器,通过它数百万次地注入价值,直到找到种子。机器使用种子来生成玩家卡。通过这样做,他们可以提前预测会出现哪些牌,因此他们知道何时弃牌以及何时下注。由于所有机器都使用相同的种子,因此他们知道每台机器接下来会发生什么。很酷的故事:-) (2认同)