我们的数据库团队希望从 PUBLIC 撤销 DBMS_RANDOM 上的执行,以解决安全问题。如果你用谷歌搜索它,一些安全专家会认为这个包很危险,但没有说出原因。 Ingram 和 Shaul 的书《Practical Oracle Security》指出
...在以下环境中授予对 DBMS_RANDOM 的 PUBLIC 访问权限
函数用于加密密钥生成可能会导致
加密数据的泄露...
Oracle 文档说
DBMS_RANDOM 不适用于加密。
... 和 ...
DBMS_CRYPTO.RANDOMBYTES ...返回一个包含
加密安全的伪随机字节序列,可以是
用于生成加密密钥的随机材料。
因此,DMBS_RANDOM 似乎适合生成伪随机数(只要您不用它伪造密码)。为什么这对公众来说太危险了?
Edit:
刚刚发现一个新的source https://www.stigviewer.com/stig/oracle_database_11g_instance/2016-06-15/finding/V-2539,它声称
DBMS_RANDOM:允许数据加密,无需安全管理加密密钥。
这也是无稽之谈吧?
当使用 DBMS_RANDOM 进行加密密钥生成时,不应将 DBMS_RANDOM 授予 PUBLIC 的原因是,攻击者可以使用它来确定密钥生成中的种子值和/或模式,从而可用于确定数据的密钥加密与.这就是为什么它可能导致加密数据泄露的原因。这当然不是一个容易的攻击,但对于具有足够处理能力的人来说是可能的。
DBMS_RANDOM 不应该用于加密,因为它太可预测了。对于加密密钥生成,应仅使用安全随机函数。这些函数试图通过测量白噪声之类的东西并从中产生值来获得尽可能随机的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)