Oracle Wallet与Secure External Password Store安全性原理咨询
Oracle Secure External Password Store 安全性逻辑说明
你提到的免密登录仍属于安全方案的核心原因是其安全控制建立在操作系统身份校验、文件权限隔离和加密绑定的多重基础上,具体安全逻辑如下:
- 第一重控制:操作系统层权限隔离。SEPS钱包文件默认创建时会被设置为仅所属操作系统用户可读(Linux下权限为
0600),同服务器其他用户无法读取钱包内容,自然无法调用免密登录能力。只有成功登录对应服务器、且持有对应操作系统用户权限的主体才能使用该能力,已经过滤了绝大多数未授权访问。 - 第二重控制:钱包加密与绑定机制。通过
orapki创建的钱包可绑定当前主机、用户信息,就算钱包文件被意外泄露,复制到其他服务器或切换到其他用户时,钱包无法被解密打开,内部存储的数据库凭证也无法被提取,不会导致凭证扩散。同时钱包内所有凭证均为非明文加密存储,不存在明文泄露风险。 - 第三重控制:规避传统密码使用场景的风险。对比手动输入密码(存在肩窥、shell历史记录泄露风险)、脚本硬编码明文密码(存在文件权限配置不当、备份泄露风险),SEPS从根源上消除了密码在使用、存储环节明文暴露的可能,反而大幅降低了密码泄露概率。
- 防护边界清晰:它的防护范围不包含操作系统账号本身被攻陷的场景,这属于基础设施层面的安全问题,而非SEPS的设计缺陷。如果攻击者已经拿到了你的操作系统用户权限,就算没有SEPS,也可以通过键盘记录、读取明文密码文件等方式拿到数据库凭证,SEPS并不会放大这类场景的风险。
你示例中的sqlplus /@db11g免密登录并不是任意人员都能调用,只有同时满足「持有对应服务器操作系统用户权限」「可访问绑定后的钱包文件」两个前提的主体才能使用,而这部分主体本身就是被授权可以使用对应数据库账号的,不存在额外扩大授权范围的问题。
内容的提问来源于stack exchange,提问作者Scouse_Bob
相关产品推荐
相关产品推荐

