Oracle密码安全问题佚事 (oracle数据库)

教程大全 2025-07-21 11:32:57 浏览

05年那会儿曾经有针对Oracle密码安全问题的一次大讨论,主要是针对当时的Oracle密码加密设计的。下面是冯大辉当时针对这一系列研究报告的一个总结。

这几天(编者注:本文写于05年8月)关于 Oracle 安全方面的消息很是令人震惊.

看来安全专家们是盯上了 Oracle. 随着对 Oracle 加密体系的研究不断深入,有人重新研究了 Oracle 的密码加密算法大致信息. 估计是为了引起 Oracle 技术圈子的注意,有好事者居然冒充 PSOUG 的 Daniel A. Morgan 在Google新闻组贴出了这篇文章.这篇文章先从 Oracle 的密码设计目标开始(“反向工程”),然后说了加密的大致思路是这样的:

oracle数据库

◆用户名字和密码合并成一个字符串”s”

◆”s” 转换为unicode

◆用 DES 的ncbc mode模式加密.Key为 0x123456789abcdef, 初始化向量为 0

◆同样的串用更新的初始化向量作为Key再次加密

◆更新的初始化向量作为 Hash

伴随着”潘多拉的盒子”被打开,很多密码 Crack 工具如雨后春笋般冒了出来,目前不下 10 多种.这其中比较引人注意的是 orabf 0.7 ,因为他是目前最快的工具.在 Pentium 4, 3 GHz (Windows XP) 的机器上每秒钟可以破解 1,100,000 个密码(感觉有些夸张). 著名的 Oracle 安全研究厂商 Red>


oracle ::sqlplus /nolog,conn /as sysdba 我不知道为什么,在命令指示符下这样:sqlplus /nolog,conn

1 sqlplus /nolog,conn /as sysdba 之所以能够登录,在于oracle登录时的身份认证方式。 可以试一下这个:sqlplus /nolog,conn abcd/sss as sysdba,你发现也能够登录成功。 2 oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。 而conn /as sysdba是属于操作系统认证。 为什么这样说呢?你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如是gooooal,它在你电脑的ora_dba组中。 可以在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,双击它,看到成员列表中有“gooooal”。 也就是在conn /as sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于ora_dba组,因此才可以登录成功。 你可以把ora_dba组中的“gooooal”用户删除,再conn /as sysdba,就发现进不去了。 3 密码文件验证可以查阅相关资料,网络oracle的身份验证方式,就可以查到相关资料。 4 其实在linux或unix环境下,安装oracle是要设置很多东西的,比如用户和用户组的设置等,不像在windows下,安装傻瓜化了。 5 关于安全性,如果将oracle安装在本地,其实你本地就是oracle服务器,所以权限高一些。 你用哪个用户来启动oracle实例?哪个用户来mount数据库?哪个用户来打开数据库?从而才能进行之后的select等sql操作?在oracle实例等还没有启动的时候,Oracle数据库里面建的用户肯定是不能使用的。 所以才会有操作系统身份验证。 用这个用户,来启动oracle实例 、转载数据库等。 之后才能做oracle表的增删改查。 以上,希望对你有所帮助。

Oracle数据库安全性设计?大家给点建议

Oracle数据库安全性设计建议一、 什么是安全的系统安全性建设是一个长期并且卓绝的工作。 作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: 高可用性 对敏感数据的访问控制能力。 监测用户行为的审计能力。 用户帐号管理的有效性和扩充性二、 从哪些方面作安全性检查一个企业级系统的安全性建设并不仅仅局限于软件技术方面的设置和控制,甚至我们可以说,技术仅仅位于一个补充和提高现有安全性的地位上。 通常,应该按照重要性依次进行如下的安全性检查。 物理层面的控制控制物理接触是系统安全性建设的第一步,也是最会有成效,最应该优先执行的一步。 权威安全研究显示,70% 的信息系统数据损失和攻击都是由“内部人”(即具备某种系统及其数据访问权限的用户)造成和发起的。 比如,授权人员才可以进入机房,管理人员的密码不要记录在显眼的地方,离开个人终端锁定屏幕,等等,这些建议看上去似乎比较琐碎。 但是如果缺少了这些意识,即使我们运用了再好的安全性技术,再复杂的数据分离技术,当一个人可以接近需要保护的服务器,当一个人可以通过窃取的密码接近需要保护的数据,那么一切的安全性建设都将是一个摆设。 千里之堤,毁于蚁穴。 一个牢固的堤坝不会因为外界洪水的冲击而倒塌,却会崩坏于隐藏在自身内部的蛀虫。 所以,最佳的方法是不要让蚂蚁靠近堤坝。 安全性流程建设实施安全性建设之后,必须要有一个详细周密而且行之有效的流程控制(Process Control)。 其中行之有效是我们应该注意的。 有时候会听到抱怨,在增强了安全性建设的系统中,维护人员由于分工过细,导致整个系统的应变能力下降,维护成本提高,管理效率降低。 以前一个人可以在10分钟内作好的修改,现在却要途经3,4个人之手,耗时1-2天还不一定能够做完。 过犹不及,建立一个符合企业自身需求的安全性流程是我们应该优先考虑的。 普遍性的安全性措施不仅仅是Oracle数据库系统,作为一个具有领先性的IT系统,都应该包括以下的安全性措施。 1. 只安装需要的软件每个软件都有缺陷,对于Oracle数据库软件来说,自定义安装,只选取需要的组件,少作少错,这一点在安全性方面显得尤为重要,一个具有潜在安全性漏洞的组件,如果它没有被安装。 那它就不会影响整个系统。 2. 锁定或者失效默认用户对于Oracle数据库系统来说,安装的时候会有一系列的默认用户生成,应该在数据库安装完毕之后,经过功能筛选,锁定或者失效这些用户。 3. 修改可用用户的默认密码不能锁定或者失效的用户,必须修改默认密码。 比如具有SYSDBA权限的SYS用户和具有DBA权限的SYSTEM用户,都应该修改默认密码。 至于密码长度和复杂性的有效控制在后面将会谈到。 4. 限制操作系统存取权限Oracle数据库系统是依存在操作系统之上的,如果操作系统被人侵入,那么通过修改配置文件等一系列方法,Oracle数据库的安全性也将荡然无存。 5. 定期更新厂家推出的安全性补丁随着时间的推移,厂家通常会推出一系列的安全性补丁来弥补现有系统的安全隐患。 对于Oracle数据库而言,应该定期查看以下网址来获取Oracle公司最新的安全性警告和解决方案。

linux下登录mysql密码有,怎么办

MySQL密码的恢复方法之一1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。 可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。 最安全的状态是到服务器的Console上面操作,并且拔掉网线。 2.修改MySQL的登录设置: # vi /etc/ 在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。 3.重新启动mysqld # /etc/init.d/mysqld restart( service mysqld restart )4.登录并修改MySQL的root密码mysql> USE mysql ; mysql> update user SET Password = password ( new-password ) WHERE User = root ; mysql> flush privileges ; mysql> quit5.将MySQL的登录设置修改回来 # vi /etc/ 将刚才在[mysqld]的段中加上的skip-grant-tables删除 保存并且退出vi。 6.重新启动mysqld # /etc/init.d/mysqld restart ( service mysqld restart )7.恢复服务器的正常工作状态将步骤一中的操作逆向操作。 恢复服务器的工作状态。 MySQL密码的恢复方法之二如果忘记了MySQL的root密码,可以用以下方法重新设置:1. KILL掉系统里的MySQL进程; killall -TERM mysqld2. 用以下命令启动MySQL,以不检查权限的方式启动; safe_mysqld --skip-grant-tables &3. 然后用空密码方式使用root用户登录 MySQL; mysql -u root4. 修改root用户的密码; mysql> update set password=PASSWORD(新密码) where User=root; mysql> flush privileges; mysql> quit 重新启动MySQL,就可以使用新密码登录了

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐