关于 SSL/TLS 安全
当我们通过网络传输敏感数据时,我们希望确保其安全性。为此,我们使用 HTTPS 流量,即通过 SSL/TLS 保护的 HTTP 协议。它会检查机密性和身份验证,而身份验证是通过数字证书完成的。让我们来探索如何测试 HTTP 协议传输中的漏洞。我们将使用什么?
Openssl
正如官方网站所解释的,openssl 是一个软件库,适用于那些需要保护计算机网络通信安全、防止窃听或识别对方身份的应用程序。它通常包含在 Linux 系统中,但在基于 Debian 的系统中,可以使用 进行安装sudo apt install openssl
。
nmap
nmap 是一款用于发现计算机网络上主机和服务的安全扫描器。在 Debian 中,您可以使用 进行安装。这是一款广泛使用的安全工具,因此,如果您还没有安装,并且对网络安全感兴趣,那么安装sudo apt install nmap
它是必须的。
好的,我们开始吧。测试 SSL/TLS 安全性时,我们要关注什么?首先,我们要检查是否存在弱密码或协议。正如OWASP wiki中关于此主题的解释,匿名 Diffie-Hellmann 是身份验证漏洞或 SSLv2 协议的一个很好的例子。使用 nmap,我们可以使用例如 来扫描主机nmap [target]
;使用 进行 ping 扫描nmap -sn [target]
;使用 进行 TCP SYN ping nmap -PS [target]
。我们准备使用 ,-sV
这是标准的服务扫描。
nmap -sV www.example.com
我们可以使用其他自定义选项,例如-PN
、--top-ports
等。总之,使用最后一个命令,我们能够识别 SSL 服务。现在我们可以检查每个端口的证书信息、弱密码和 SSLv2。示例中我们检查的是 443,465,993,995,但具体情况需要根据实际情况进行自定义。
nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 www.example.com
最后,openssl 用于手动测试 SSL/TLS,尝试通过使用 openssl 连接到服务器的客户端启动重新协商。

openssl s_client -connect www.example.com:443
我创建了一个简单的Gist,使用默认配置和自定义主机来自动化所有这些操作。它将输出保存在三个不同的文件中以供分析。代码如下:
#!/bin/bash
BLUE='\033[0;36m'
RED='\033[0;31m'
NC='\033[0m' # No Color
#based in OWASP wiki
if [[ -z "$1" || -z "$2" ]]; then
echo "./tls.sh host directory"
else
mkdir $2
cd $2
echo -e "${BLUE}Checking for Client-initiated Renegotiation and Secure Renegotiation via openssl...${NC}"
openssl s_client -connect $1:443 > negotiations
if grep -q 'Secure Renegotiation IS NOT supported' "negotiations"; then
echo -e "${RED}Secure Renegotiation IS NOT supported.${NC}"
else
echo -e "${BLUE}Certificate validity ensured.${NC}"
fi
echo -e "${BLUE}Checking for Certificate information, Weak Ciphers and SSLv2 via nmap...${NC}"
nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 $1 > ciphernmap
if grep -q SSLv2 "ciphernmap"; then
echo -e "${RED}Weak protocol found (SSLv2).${NC}"
else
echo -e "${BLUE}No weak protocol found.${NC}"
fi
echo -e "${BLUE}SSL service recognition via nmap...${NC}"
nmap -sV --reason -PN -n --top-ports 100 $1 > nmapsslservice
echo -e "${BLUE}Done.${NC}"
echo -e "${RED}Don't forget to manually check the files created in case of doubt. Check OWASP wiki for more information.${NC}"
fi
欲了解更多信息,请查看OWASP 的精彩维基。
文章来源:https://dev.to/terceranexus6/about-ssltls-security-48fj