PKI-Lab

PKI-Lab

Task 1: Becoming a Certificate Authority (CA)

文件配置:

  1. 将usr/lib/ssl下的openssl.cnf复制到自己的CA文件夹下并将unique_subject这行的注释取消掉,并在CA文件夹中创建一个空文件index.txt,并创建一个含有数字1000的文件serial,以及创建一系列文件

        

  1. 执行命令,生成私钥文件ca.key和公钥证书ca.cry

openssl req -config openssl.cnf -x509 -newkey rsa:4096 -sha256 -days 3650 -keyout ca.key -out ca.crt

        

  1. 分别执行以下命令

openssl x509 -in ca.crt -text -noout

得到证书相关信息

        

openssl rsa -in ca.key -text -noout

随后输入生成时设置的密码dongda得到私钥相关信息

        

针对实验手册中提出的问题,我们回答如下:

  1. What part of the certificate indicates this is a CA’s certificate?

        

        这里CA:TRUE表明这是一个CA证书

  1. What part of the certificate indicates this is a self-signed certificate?

        

        这里的Issuer和Subject信息相同说明这是一个自签名证书

  1. In the RSA algorithm, we have a public exponent e, a private exponent d, a modulus n, and two secret numbers p and q, such that n = pq. Please identify the values for these elements in your certificate and key files

        公钥指数e:

                

              模数n:

                    

              私钥指数d:

                    

              p:

                    

              q:

                    

综上综述,通过执行以上操作,我们完成了生成CA证书、密钥的任务

Task 2: Generating a Certificate Request for Your Web Server

使用以下命令生成:

openssl req -newkey rsa:2048 -sha256 -keyout server.key -out server.csr -subj "/CN=www.HZH2022.com/O=HZH2022 Inc./C=CN" -passout pass:dees

再利用以下两个命令查询:

openssl req -in server.csr -text -noout

        

openssl rsa -in server.key -text -noout

        

添加拓展域名/Adding Alternative names:

直接在生成证书的命令后添加

-addext "subjectAltName=DNS:www.HZH2022.com, DNS:www.HZH2022A.com, DNS:www.HZH2022B.com"

查看发现拓展域名已添加

        

Task 3: Generating a Certificate for your server

使用task2中的证书申请与之前生成的CA证书为服务器创建证书

openssl ca -config my_openssl.cnf -policy policy_anything -md sha256 -days 3650 -in server.csr -out server.crt -batch -cert ca.crt -keyfile ca.key

之后CA文件夹内生成了一些新文件

        

使用命令openssl x509 -in sever.crt -text -noout发现并未生成拓展域名,因此将copy过来的cnf文件的下面这行取消注释

        

重新签署证书,并使用命令openssl x509 -in sever.crt -text -noout,可知拓展域名已写入

        

Task 4: Deploying Certificate in an Apache-Based HTTPS Website

  1. 根据模板修改HZH2022_apache_ssl.conf以及Dockerfile,并将对应各种文件移入相应位置

          

在etc/hosts中添加我们的域名

        

之后在虚拟机执行dcbuild

执行dcup启动container

  1. 进入container中,在docker10.9.0.80使用以下命令启动ssl服务

a2enmod ssl

a2ensite HZH2022_apache_ssl

接着执行service apache2 start

输入密码dees之后在Ubuntu firefox游览器成功访问https://www.hzh2022.com

      

  1. VM和container的共享文件夹

创建完container后,在VM中的volumes中添加文件share_test,在container中进入volumes中ls可看到添加的share_test文件,说明文件共享功能正常

        

  1. 我们发现,在访问时游览器提示访问不安全,这是因为游览器中并无我们的CA证书,因而需要添加证书,打开firefox游览器的设置,在Privary&Security中找到Certificate,导入我们原先生成的ca.crt,之后重新访问发现警告提示消失,说明游览器已经信任来自我们的证书。

        

  1. Task 5: Launching a Man-In-The-Middle Attack

  1. 我们的www.lib.seu.edu.cn是东南大学图书馆的网站,我们在/etc/hosts中将DNS缓存改成了10.9.0.80 www.lib.seu.edu.cn,因而所有要访问 www.lib.seu.edu.cn的用户都被劫持到我们的 10.9.0.80这个地方

        

  1. 我们通过修改index.html的内容来模仿东南大学图书馆的网站,则用户访问时将被定位到我们仿造的网站

        

Task 6: Launching a Man-In-The-Middle Attack with a Compromised CA

  1. 不严格来说,通过前面的步骤已经完成了这个任务,但由于网站证书是用的还是www.HZH2022.com,因此在访问时游览器还会提醒网站证书存在问题。

        

  1. 假设我们得到了被破坏的CA的私钥,同以上几个步骤利用这个私钥为所要伪造的网站创建新的证书

修改一系列配置文件,重新构建container并启动ssl

访问网站可发现网站以定位到我们伪造的网站,且游览器没有进行任何拦截

        

至此完成了MITM Attack

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江夏哲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值