流量分析-SSL/TLS与FTP学习

前些天在公众号看到一篇有关流量分析的文章,写的挺详细的,由于之前学习计网并没有详细的了解这些协议的内容,自己也缺乏流量分析的经验,便顺着作者的思路学习一下
文章链接: https://mp.weixin.qq.com/s/Uy48omcNlpTlTHhLq64FbA

分析前,先搞清楚公钥、私钥、数字签名以及运输层和应用层的一些协议

对称秘钥体制与公钥密码体制

1.对称密码体制,即加密秘钥与解密秘钥相同的密码体制;在通信信道上可以进行一对一的双向保密通信,每一方既可以用此秘钥加密密文,发送给对方,也可以接受密文,并用同一秘钥对密文解密;这种保密通信仅限于持有此秘钥的双方

2.在对称秘钥体制中,如何才能给加解密的双方分配秘钥呢?如果使用高度安全的秘钥分配中心KDC,会使得网络成本增加;于是提出了公钥密码体制

3.在公钥密码体制中,加密秘钥PK是向公众公开的,而解密秘钥SK(私钥或秘钥)则是需要保密的;加密算法和解密算法也都是公开的

在公钥密码体制中,在通信信道上可以是多对一的单向保密通信

例如,在网购时,许多客户端都向同一网站发送自己的账号密码等信息:

数字签名

签名在我们生活中很常见,比如盖章、在合同上签字;那么计算机网络中传送的数据如何签名呢?就要使用数字签名

数字签名必须保证能够实现以下功能:

  • 报文鉴别,接收者能够核实发送者对报文的签名,即接收者能够确信该报文的确是发送者发送的,其他人无法伪造对报文的签名
  • 报文的完整性,接收者确信所收到的数据和发送者发送的完全一样,没有被篡改过
  • 不可否认,发送者事后不能抵赖对报文的签名

数字签名流程:

为了进行签名,A用其私钥对报文进行D运算(这里D运算不是解密运算,只是得到了某种不可读的密文),A把经D运算得到的密文传送给B,B为了核实签名,用A的公钥进行E运算,还原出明文;

数字签名的三项功能的关键在于,没有其他人能够持有A的私钥

上述过程仅对报文进行了签名,如果还要对报文进行加密,可以用下图表示:

HTTP/HTTPS

HTTP,超文本传输协议,被用在浏览器与服务器之间传递明文信息;如果攻击者截取了传输的报文,则可以直接读懂其中的信息,因此HTTP协议不适用于传输密码或者其他敏感信息;使用TCP的80端口

为了解决HTTP的缺陷,需要使用另一种协议HTTPS

HTTPS,超文本传输安全协议,在HTTP下加入SSL层;使用TCP的443端口

SSL/TSL

SSL,Secure Socket Layer,即安全套接字层。SSL作用在运输层与应用层的HTTP之间,在TCP之上建立一个安全通道,为通过TCP传输的应用层数据提供安全保障

TSL,Transport Layer Security,即运输层安全。TSL协议是在SSL 3.0的基础上设计的,为所有基于TCP的网络应用提供安全数据传输服务

SSL/TSL并非仅用于HTTP,而是可用于任何应用层协议

SSL/TSL提供的安全服务可归纳为以下三种:

  • SSL/TSL服务器鉴别,允许用户证实服务器的身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥
  • SSL/TSL客户鉴别,SSL/TSL的可选安全服务,允许服务器证实客户的身份
  • 加密的SSL/TSL会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改

FTP

FTP,File Transfer Protocol,即文件传输协议,是用于在网络上进行文件传输的一套协议标准

默认情况下FTP使用TCP的2021端口;

  • 21 : 建立连接
  • 20 : 传输数据

SMTP

SMTP,Simple Mail Transfer Protocol,即简单邮件传输协议;使用TCP的25端口

流量分析

题目描述:

一家安全公司开发的人工智能系统已经叛变,为防止机械大战。我们要找到叛变AI的计划,
所幸我们在敌人后方安插了间谍,他已经捕获了敌人的通信报文,你所需的所有内容应该
都能从中找到。答案格式INS{xxx}

用wireshark打开流量包后,首先点开统计中的协议分级

可以看到数据包使用的协议,SMTP、SSL、HTTP、FTP Data以及FTP

先看一下SMTP,过滤一下,再进行流追踪,发现一段英文:

注意到这个网址https://ssc.teaser.insomnihack.ch

再用FTP,进行流追踪,来看下FTP中有什么信息:

发现有用户名、密码、端口号、以及一个文件名;而且发现端口号是21;则查看20端口号:

输入tcp.port==20进行过滤,发现一串秘钥:

将这串秘钥保存下来,命名为ssc.key;利用上面的信息,就可以将SSL加密的数据包进行解密了