解决方案
我们有一些技术,是以先前我们做咨询服务的经验为基础的,可以用来监控以及审查受到 SSL 防护的服务器。这个解决方案不是很复杂难懂的技术,只是针对一个在网络安全上,人们很少去正视的问题,所提出的新方法而已。
OpenSSL
OpenSSL 包含了一套程序以及函式库,提供前端使用者 SSL 功能,并且允许软件工程师将 SSL 模块与他们的程序结合。在众多由 SSL 提供的产品里面,最能够用来让我们在这里讨论的是命令列模式的(command-line) SSL 客户端以及伺服端工具软件。 OpenSSL 程序是一个指令列接口的程序,它是用来以手动的方式起始 SSL 连结。OpenSSL 让你重新导引与其它程序之间的资料输入以及输出。
使用普遍可得的安全扫描软件来审查 SSL 服务器
在研究技术文件时,我们在 Apache 提供给 OpenSSL 的接口模块mod_ssl 读到了一些有趣的信息。其中有一段常见问题(FAQ)讨论到有关测试在 SSL 保护下的网站服务器。你可以利用 Telnet 连到网页服务器第 80 号连接埠,然后下达如下的 http get 指令,从网页服务器取得网页:
telnet www.ramsec.com 80
Trying 216.182.36.154...
Connected to www.ramsec.com.
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Content-Location: http://216.182.36.154/index.html
Date: Mon, 10 Jul 2000 11:43:59 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Thu, 23 Mar 2000 01:41:15 GMT
ETag: "305fc7e06894bf1:38441"
Content-Length: 886
<!doctype html public "-//w3c//dtd html 4.0
transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
因为 SSL 通联必须要经过一个安全的连接埠,而在这里我们使用的是没有安全防护的连接埠 80,因此,这个技巧在 HTTPS 通讯协议上是行不通的。然而,如果我们用的是 OpenSSL 程序,我们就可以在 SSL 连接上做同样的一件事情。
有了这项技术,我们就可以直接传送资料到有 SSL 保护的网站,然后用我们一般审查任何 HTTP 服务器安全性的方式来审查这个 SSL 网页服务器。