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中没有机制来阻止这种情况).
一般原则是,当攻击者具有物理访问权限时,在软件中进行防御是极其困难的.永远不要相信客户.