在这个任务中,我们将展示PKI如何击败中间人(MITM)攻击。下图描述了MITM攻击的工作原理。假设Alice想通过HTTPS协议访问example.com。她需要从example.com服务器获取公钥;Alice将生成一个密钥,并使用服务器的公钥对该密钥进行加密,然后将其发送到服务器。如果攻击者可以拦截Alice和服务器之间的通信,则攻击者可以用自己的公钥替换服务器的公钥。因此,Alice的秘密实际上是用攻击者的公钥加密的,因此攻击者将能够读取秘密。攻击者可以使用服务器的公钥将密钥转发给服务器。秘密用于加密Alice和服务器之间的通信,因此攻击者可以解密加密的通信。
Step 1: Setting up the malicious website. 在Task 4中,我们已经为SEEDPKILab2018.com建立了一个HTTPS网站。我们将使用相同的Apache服务器模拟example.com 。为此,我们将按照任务4中的指令向Apache的SSL配置文件添加一个VirtualHost条目:ServerName应该是example.com,但配置的其余部分可以与任务4中使用的相同。我们的目标如下:当用户试图访问example.com时,我们将让用户登陆我们的服务器,其中为example.com托管一个假网站。如果这是一个社交网站,虚假网站可以显示一个登录页面类似于目标网站。如果用户不能分辨出两者的区别,他们可能会在假网页中输入他们的帐户凭据,本质上就是向攻击者披露凭据。
Step2: Becoming the man in the middle 。有几种方法可以让用户的HTTPS请求到达我们的web服务器。一种方法是攻击路由,将用户的HTTPS请求路由到我们的web服务器。另一种方法是攻击DNS,当受害者的机器试图找到目标网络服务器的IP地址时,它会得到我们的网络服务器的IP地址。在此任务中,我们使用“攻击”DNS。我们只需修改受害者机器的/etc/hosts文件,以模拟DNS缓存设置攻击的结果,而不是启动实际的DNS缓存中毒攻击。