admin 管理员组

文章数量: 1086019


2024年4月29日发(作者:switch语句是否可以嵌套使用)

(完整word)Web安全渗透测试(SSL)

企业级Web安全渗透测试之SSL篇

一、简介

目前,许多重要的Web服务都使用了SSL和TLS协议对通信进行保护.我们知道,http协议是使用明文进

行传输的,但是像网络银行之类的web应用如果使用http协议的话,那么所有的机密信息都会暴露在网络连

接中,这就像银行用一个透明的信封给我们邮寄信用卡帐号和密码一样,在从银行到达用户之间任何接触过

这封信的人,都能看到我们的帐号和密码.为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明

文,这样就产生了https通信流量。例如网络银行之类的应用,在服务器和客户端之间传输密码,信用卡号

码等重要信息时,都是通过https协议进行加密传送的。

SSL和TLS是两种安全协议,它们通过加密技术为传输的信息提供安全信道、机密性和身份验证等安全

功能.我们知道由于对高级密码技术的出口限制,会造成遗留系统使用的是弱加密技术。如果系统采用了弱

密码,或者说密码强度过低的话,攻击者可以在有效的时间内破解密钥,而攻击者一旦得到了密钥,就像小偷

得到了我们家的钥匙一样,所有的锁都会形同虚设。但是,新Web服务器就不会使用弱加密系统了吗?答案

是否定的,因为许多新Web服务器也经常被配置成处理虚密码选项.为了实现这些安全特性,协议必须确保

使用的密码算法有足够的强度,并且密码算法得到了正确的实现。即使服务器安装使用了高级的加密模块,

但是如果配置不当的话,也有可能为安全特性要求较高的通信信道的设置了较弱的加密技术。下面,我们将

详细介绍如何对这两种协议的配置进行安全审计。

二、测试SSL/TLS的密码规范

我们知道,http协议是使用明文进行传输的,为了提高其安全性,经常需要通过SSL或者TLS隧道传输

这些明文,这样就产生了https通信流量.除对传输的数据进行加密处理之外,https(安全超文本传输协议,

HTTPS)还能利用数字证书为服务器或客户端提供身份标识。

过去,美国政府对加密系统的出口有许多限制,如密钥长度最大为40位,因为密钥长度越短,它就越容

易破解.后来,密码出口条例已经放宽了许多,但是,检查服务器的SSL配置仍然十分重要,因为它有可能配

置使用了弱加密技术。基于SSL的服务不应该提供选择弱密码的机会。

注意,我们这里所说的弱密码,指的是加密强度不够、容易破解的加密系统。不同的加密算法具有不同

的密码强度,但是在算法一定的情况下,密钥的长度越长,加密强度越高.

技术上,选择加密技术的过程如下所示:在建立SSL连接的初期,客户端向服务器发送一个Client Hello

消息,以告知服务器它支持哪些加密技术等。一般情况下,客户端通常是一个Web浏览器,所以浏览器是目

前最常见的SSL客户端;然而,任何支持SSL的应用程序都可以作为SSL客户端使用。比如,有时候SSL客户

端是些SSL代理(如stunnel),它们使得那些不支持SSL的工具也能与SSL服务通信.同理,SSL服务器端通

常为Web服务器,但是其他应用程序也可以充当SSL服务器端。 加密套件规定了具体的密码协议(DES、RC4、

AES)、密钥长度(诸如40、56或者128位)和用于完整性检验的散列算法(SHA、MD5)。收到Client Hello

消息后,服务器以此确定该会话所使用的加密套件。当然,通过配置可以规定服务器能够接受哪些密码套件,

这样的话,我们就能够控制是否跟仅支持40位加密的客户端通话。

(完整word)Web安全渗透测试(SSL)

三、黑盒测试

为了检测可能支持的弱密码,必须找出与SSL/TLS服务相关的端口.通常情况下,要检查端口443,因为

它是标准的https端口;不过运行在443端口上的却未必是https服务,因为通过配置,https服务可以运

行在非标准的端口上,同时,Web应用程序也许使用了其它利用SSL/TLS封装的服务.一般而言,为了找出这

些端口,必须找出使用了哪些服务。

利用扫描程序nmap时,加上扫描选项–sV,就能用来识别SSL服务。实际上,安全漏洞扫描器除了可以

显示使用的服务之外,还能用来检查弱密码,比如,Nessus就能检查任意端口上的SSL服务,并报告弱密码。

如果攻击者在您修复弱密码之前发现了它们的话,那么您的处境可就不妙了--利用当前强大的桌面计算

力,例如借助GPU的并行运算,他们能够在有效的时间内破解出密钥,然后就能解密出https信道中加密过

的机密信息,如口令,用户名,如果您在使用网络银行,还能获得他们的帐号和口令,等等。所以,我们一定

要在攻击者下手之前发现并修复存在的弱密码配置。

例1。 通过nmap识别SSL服务

[root@test]# nmap —F -sV localhost

Starting nmap 3。75 ( http:///nmap/ ) at

2009—07-28 13:31 CEST

Interesting ports on localhost。localdomain (127.0.0。1):

(The 1205 ports scanned but not shown below are in state:

closed)

PORT STATE SERVICE VERSION

443/tcp open ssl OpenSSL

901/tcp open http Samba SWAT

administration server

8080/tcp open http Apache httpd

2.0.54 ((Unix) mod_ssl/2。0.54 OpenSSL/0.9。7g PHP/4。3。11)

8081/tcp open http Apache

Tomcat/Coyote JSP engine 1。0

Nmap run completed —— 1 IP address (1 host up) scanned in

27.881 seconds

[root@test]#

例2. 利用Nessus识别弱密码.

下面内容摘自Nessus扫描程序生成的报告,它发现了一个允许弱密码的服务器证书(黑体字部分).

https (443/tcp)


本文标签: 密码 使用 服务器 加密