暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 通过alter <username> 更改密码是否由值 “<hash>” 标识; 安全风险?

askTom 2017-03-10
262

问题描述

create user testuser1 identified by "DummyPass1";
create user testuser2 identified by "DummyPass1";

select name, spare4 from sys.user$ where name in ('TESTUSER1','TESTUSER2');
复制


对于上述测试用例,testuser1和testuser2之间的密码散列是不同的,我认为这是因为Oracle 12c如何盐化密码散列,从而提高了安全性,以防散列被盗。

我们在某些直接相互依赖的数据库之间使用公共代理数据库链接。出于对我们程序员团队的礼貌,当程序员更改其密码时,DBA团队可以通过以下方式将密码哈希复制到另一个数据库: alter user > 由值 “” 标识; 这样一来,代理数据库链接仍按预期运行。

由于我们正在复制哈希,而不是让Oracle生成哈希,我们是否引入了任何安全漏洞?我特别指的是外部威胁: 如果哈希本身被盗,而不是 “允许DBA团队将密码哈希复制到其他用户” 的明显内部安全风险。

专家解答

您可能还记得旧版本的Oracle,您可以在其中查询DBA_USERS上的密码列并在那里查看哈希值。

如今你会看到这样的:

SQL> select password from dba_users;

PASSWORD
----------------------------------------------









复制


这是有原因的。即使只有哈希也是有风险的,因为如果你有哈希,并且你知道哈希 * 算法 *,那么你可以很容易地蛮力破解密码。

因此,以与密码本身类似的谨慎对待散列的传播。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论