7

我们的数据库团队希望从 PUBLIC 撤销对 DBMS_RANDOM 的执行以解决安全问题。如果你用谷歌搜索它,一些安全专家会认为这个包很危险,但没有说明原因。Ingram 和 Shaul 的《实用 Oracle 安全性》一书指出

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

甲骨文文档说

DBMS_RANDOM 不适用于加密。

... 和 ...

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

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

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

DBMS_RANDOM:允许加密数据而不需要安全管理加密密钥。

这也是废话,不是吗?

4

1 回答 1

4

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

DBMS_RANDOM should not be used for crypto because it is too predictable. For crypto key generation, only a secure random function should be used. These functions attempt to get as random as possible by measuring things like white noise and producing values off of it.

于 2013-06-06T22:59:32.853 回答