教你如何截获Oracle数据库连接密码
作者: , 出处:网络整理, 责任编辑: jinpu,
2006-11-02 08:00
大部分的服务器/客户端系统的结构可以这样描述: 客户端 <---(1)---> 系统TCP/IP模块 <---(2)---> 网络 <----> 系统的TCP/IP模块 <----> 服务端 对于这些系统,一般的安全问题出在由(2)所示的地方,比如说当使用 POP3 协议收取邮件,或者用 Telnet 登录到远程主机的时候,其登录密码都是未经加密的,只要在网络上安装一个嗅探器 (Sniffer) 来监听数据包,就可以很容易地截获用户名和密码。 但对于 Oracle 系统来说,用户名和密码在网络上传递之前,是经过加密的,而且加密的算法是不可逆的,即使使用嗅探器探听到数据包,开始无法把数据库的连接密码恢复出来,Oracle 系统的结构可以如下描述: 客户端应用程序 <--(1)--> Oracle客户端软件 <---(2)---> 系统TCP/IP模块 <---(3)---> 网络 <--> 系统的TCP/IP模块 <---> Oracle数据库 对于这一类系统,所有在(2)或者(3)处监听到的登录数据包都是已经经过加密的,但是,考虑一下我们编写 Oracle 数据库应用程序的时候,无论是通过 ODBC 还是 Pro C,或者其他的 BDE 环境等,都是将数据库连接的用户名和密码用明文的方式传递给 Oracle 客户端驱动程序的,所以在(1)位置的数据流肯定明文的,密码是在 Oracle 客户端软件中被加密后才经过(2)、(3)等步骤发送出去,如果在(1)的位置进行拦截,就可能拦截到密码。
大部分的服务器/客户端系统的结构可以这样描述:
客户端 <---(1)---> 系统TCP/IP模块 <---(2)---> 网络 <----> 系统的TCP/IP模块 <----> 服务端
对于这些系统,一般的安全问题出在由(2)所示的地方,比如说当使用 POP3 协议收取邮件,或者用 Telnet 登录到远程主机的时候,其登录密码都是未经加密的,只要在网络上安装一个嗅探器 (Sniffer) 来监听数据包,就可以很容易地截获用户名和密码。
但对于 Oracle 系统来说,用户名和密码在网络上传递之前,是经过加密的,而且加密的算法是不可逆的,即使使用嗅探器探听到数据包,开始无法把数据库的连接密码恢复出来,Oracle 系统的结构可以如下描述:
客户端应用程序 <--(1)--> Oracle客户端软件 <---(2)---> 系统TCP/IP模块 <---(3)---> 网络 <--> 系统的TCP/IP模块 <---> Oracle数据库
对于这一类系统,所有在(2)或者(3)处监听到的登录数据包都是已经经过加密的,但是,考虑一下我们编写 Oracle 数据库应用程序的时候,无论是通过 ODBC 还是 Pro C,或者其他的 BDE 环境等,都是将数据库连接的用户名和密码用明文的方式传递给 Oracle 客户端驱动程序的,所以在(1)位置的数据流肯定明文的,密码是在 Oracle 客户端软件中被加密后才经过(2)、(3)等步骤发送出去,如果在(1)的位置进行拦截,就可能拦截到密码。
- 本文关键词:

