为什么OS身份验证被认为是Oracle数据库安全性差的?

根据 Oracle Database Security Guide,Oracle正在弃用OS身份验证

Be aware that the REMOTE_OS_AUTHENT
parameter was deprecated in Oracle
Database 11g Release 1 (11.1),and is
retained only for backward
compatibility.

此外,大多数安全信息和工具都要考虑
OS (external) authentication一个安全问题.我试图理解为什么会这样.以下是我看到的OS身份验证的一些优点:

>没有OS身份验证应用程序必须将密码存储在各种应用程序中,每个应用程序都有自己的安全模型和漏洞.
>域身份验证必须是安全的,因为如果不是,那么数据库安全性只会降低对数据库访问速度,但无法阻止它.
>只需要记住一个域密码的用户可以更容易地创建更安全的域密码,因为他们必须连接的不同数据库数量增加,因此可以创建更安全的数据库密码.

请考虑以下情形:

>在Oracle服务器上有一个名为gaius的Unix用户,具有外部身份验证,因此在Oracle中有一个名为ops $gaius的相应用户.登录到shell后,我也可以直接登录到我的Oracle模式,我的cron作业也不需要在脚本中嵌入密码.
>允许远程OS身份验证,假设LAN是100%安全的并且客户端可以信任(与通常允许的rlogin / rsh相同)
>攻击者通过任何方式将他或她的笔记本电脑放到局域网上,知道我在那里工作,并在他们的笔记本电脑上创建一个名为gaius的本地用户并以该用户身份运行sql * Plus
> Oracle看到(即V $SESSION中的OSUSER)是gaius并将远程用户记录为ops $gaius

这不仅是可笑的容易欺骗,而且戴上我的玩世不恭的帽子,甲骨文不能再向你出售他们的fancy single sign-on product了……顺便提一下,你提出的所有要点都是OS级别的优点.两个密码优于一个是完全虚假的;大多数人都会将它们设置为相同(Oracle中没有机制来阻止这种情况).

一般原则是,当攻击者具有物理访问权限时,在软件中进行防御是极其困难的.永远不要相信客户.

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...