(由于markdown文档图片添加太麻烦了,在博客中我就没有将全部图片放上来,可以邮箱联系我获取pdf 2216376669@qq.com)
[toc]
实验一
实验题目
安装PKI平台或Git自带的Openssl熟悉PKI 证书申请、证书签发等操作过程。
实验目的
通过这个实验加深对非对称加密、数字签名、数字证书等一些基本概念的了解
实验原理与理论基础
数字证书:采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。
实验环境
win11
实验内容
用Git自带的openssl实现创建私钥、创建证书请求、生成自签名证书步骤,最后得到三个文件。
(一)生成CA证书
创建CA证书私钥
使用命令生成2048位的RSA密钥对,并且将它存放在CA.key文件中
命令:genrsa -out CA.key 2048
genrsa:生成 RSA 私有秘钥
-out:输出证书私钥文件
![](https://i-blog.csdnimg.cn/blog_migrate/a9e92e846f120ce7dbd7489fa523327f.png)
CA私钥如下:
![](https://i-blog.csdnimg.cn/blog_migrate/4d453a1cfe2fb5b616475dd18f195da4.png)
创建CA证书请求
使用刚刚创建的CA.key文件生成一个新的证书请求文件
命令:req -new -out CA.csr -key CA.key
req:生成证书请求
C-----国家(Country Name)
ST----省份(State or Province Name)
L----城市(Locality Name)
O----公司(Organization Name)
OU----部门(Organizational Unit Name)
CN----产品名(Common Name)
emailAddress----邮箱(Email Address)
![](https://i-blog.csdnimg.cn/blog_migrate/e7594493df63cd3525178728f364c449.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ae734d86dc9b187525649b1a3823bdda.png)
生成自签名CA证书
命令:x509 -req -in CA.csr -out CA.crt -signkey CA.key
![](https://i-blog.csdnimg.cn/blog_migrate/c463925c9c269f073d6f2559c4fc3219.png)
CA证书详情:
![](https://i-blog.csdnimg.cn/blog_migrate/8b87327d1ca4601e6d4e18ee55c0005a.png)
(二)生成服务器证书
创建服务器私钥
使用命令生成2048位的RSA密钥对,并且将它存放在server.key文件中
命令:genrsa -out server.key 2048
![](https://i-blog.csdnimg.cn/blog_migrate/d886d57f6e7fb8e4c43ca250fc93fa1b.png)
创建server证书请求
使用刚刚创建的CA.key文件生成一个新的证书请求文件
命令:req -new -out server.csr -key server.key
![](https://i-blog.csdnimg.cn/blog_migrate/5e313f4719ff6a5c553818138379d097.png)
生成CA签名证书
命令:x509 -req -in server.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out server.crt
-CAcreateserial:指明序列号文件,文件不存在时自动生成
证书详情:
![](https://i-blog.csdnimg.cn/blog_migrate/683f2c94a4608a797ebd282034b26332.png)
实验小结
在这个实验中模拟生成一个CA中心,然后用这个CA中心签发了服务端证书,大致实现了申请一个证书的流程,对于一个证书生成分发的细致过程有了更形象的了解。
实验二
实验题目
配置SSL/TLS协议,对数据进行抓包并分析
实验目的
学习数字证书的导入
掌握ssl协议
实验原理与理论基础
SSL协议:SSL是一个安全协议,为基于TCP的应用层协议提供安全连接,主要提供私密性、完整性和身份验证,我们常见的就是SSL为HTTP协议提供安全连接,是一种在两个机器之间提供安全通道的协议,它具有保护数据传输以及识别通信机器的功能。
SSL的基本流程:客户端 A 发起与服务器 B的连接然后 B把自己的证书发送给 A。A 验证 B 的证书,从中提取 B的公钥,然后选择一个用来计算会话密钥的随机数,将其用 B 的公钥加密发送给 B。基于这个随机数,双方计算出会话密钥(主密钥)。然后通信双方使用会话密钥对会话数据进行加密和完整性保护。
实验环境
同在一个局域网的电脑和手机
实验内容
(一)查看本机和手机的IP地址
本机:
手机:
本机:192.168.31.38
手机:192.168.31.50
(二)创建自己的网站
· 打开电脑控制面板,在控制面板中进入卸载程序
(这里每一步都应该有图片,我懒没添加,邮箱联系我获取pdf)
· 点击 启用或关闭windows功能
· 将Internet Information Services全部勾选
· 进入控制面板,点击系统和安全,点击Windows工具,找到iis管理器打开,进入如下界面
· 右键网站,选择添加网站,设置如下,其中IP地址选择本机IP地址
· 在上图的物理路径下添加一个html文件
· 编辑权限:右键刚刚新建好的网站,选择编辑权限,添加一个Everyone用户
· 配置成功,在浏览器输入本机IP地址查看
(三)开始抓包
· 下载wireshark,过滤器选择WLAN,在手机端浏览器输入网站,wireshark设置搜索条件为手机的IP地址
在图中红框部分,可以看出没有配置ssl之前网站的内容很容易被抓包分析出来,不利于保密。
(四)配置ssl
· 在iis中找到服务器证书,进入后点击创建自签名证书
· 删除未配置ssl的网站,重新创建并选择https,添加证书
· 配置ssl后访问网站效果如下
· 手机访问,进行抓包,可以看出ssl协议发挥了作用数据被加密了
(五)测试其它不安全的网站
在网上找到一个未用ssl协议的网站,wireshark抓包如下:
可见数据能被直接看到。
(六)测试过往项目
用软件工程课程做的一个项目进行测试,这个网站已经上线。
抓包如下:
遇到的问题
1.端口错误
在一开始配置完证书后,虽然浏览器处已经显示为https,但wireshark抓包一直没有TLS/SSL,在仔细查阅书本和资料后发现https默认工作在443端口,将端口修改后即抓包成功。
2.手机无法禁用缓存
在第一次用手机访问时抓包出现如下情况,在查询后可以通过禁用缓存处理,但在手机中没找到这个选项,最后更换一部手机访问没有出现该问题,在用虚拟机测试的时候也有出现该问题,可以按F12禁用缓存解决
3.转换证书格式
在git中好像无法转换证书为pfx格式,通过一个网站转换
4.证书导入
在添加网站最后一步提示缺少中间证书,需要将CA证书和server证书导入计算机
5.cookie问题
在测试一些网站抓包时可以显示cookie内容,且cookie基本是经过加密的,但不了解这样抓包的cookie内容能否欺骗服务端。下图是抓包某登录网站的cookie:
实验总结分析
通过这个实验将SSL这个重要知识点具体化了,实践才能出真知,在未给网站配置证书前,用户访问这个网站在这个网站产生的信息会有可能被抓包分析得出,比如在一个购物网站,用户付款时输入银行卡密码有可能被窃取,而且用户的服务端的数据交换也有可能被篡改,在使用SSL协议后,从图中可以看出SSL协议的部分过程,比如客户端向服务端发送了Client Hello和服务端向客户端返回了Server Hello,在Client Hello中我们可以看到产生的随机数、加密套件。
实验三
实验题目
配置 IPSec 协议,对数据进行抓包并分析
实验目的
学会配置IPSec,并且比较IPsec不同选项的作用,以及加密后的效果
实验原理与理论基础
IPSec是IETF制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,主要包括安全协议AH和ESP,密钥管理交换协议IKE以及用于网络认证及加密的一些算法等。
AH协议:AH是报文头验证协议,主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。然而,AH并不加密所保护的数据报。
ESP协议:ESP是封装安全载荷协议。它除提供AH协议的所有功能外(但其数据完整性校验不包括IP头),还可提供对IP报文的加密功能。
IKE协议:IKE协议用于自动协商AH和ESP所使用的密码算法。
ISAKMP协议:Internet 安全关联和密钥管理协议,一种协议框架,定义了有效负载的格式、实现密钥交换协议的机制以及SA协商。它并不规定采用什么样的密钥交换算法,也不关注各个加密算法、认证算法和完整性算法的实现,有很好的扩展性。
实验环境
一台win11电脑,VMware安装win10虚拟机
实验内容
· 在主机和虚拟机中设置好IP安全策略后,让虚拟机先采用不指派IP安全策略访问实验二中的网站,主机进行抓包,再指派IP安全策略进行访问,并通过AH、ESP只认证、ESP认证加密三种方式比较抓包结果。
· 下载VMware并安装win10虚拟机
· 查看虚拟机和主机IP地址
· win+r输入mmc,点击左上角添加或删除管理单元,选中IP安全策略管理,点击添加
· 在空白区域右键选择创建IP安全策略,跟随默认设置直到下图,点击添加
· 选择不指定隧道、所有网络连接,在下图中点击添加
· 在下图点击添加然后一直点击下一步直到完成
· 得到下图中的效果
· 在IP安全策略中双击刚刚设置好的策略,再双击新建的IP筛选器列表,进入身份验证方法,添加预共享密钥方法
· 在虚拟机中以同样的方法创建IP安全策略,注意预共享密钥要设置相同
· 第一次测试:采用AH
双击IP安全策略,双击新IP筛选器列表,点击筛选器操作,双击新筛选器操作,双击下图红色方框区域
在编辑安全方法中选择自定义,点击设置,设置如下,并且在虚拟机也按照上述步骤操作一遍
在虚拟机中进入浏览器,输入主机的IP地址进行访问,通过wireshark进行抓包如下
红框框住的部分是向网站请求图标文件,可以看出数据的传输都是没有被加密的,如果有进行重要数据的交换比如账号密码等就容易被人窃取。
· 第二次测试:采用ESP完整性
进入自定义入口的步骤与上面相同
在编辑安全方法中选择自定义,点击设置,设置如下,并且在虚拟机也按照上述步骤操作一遍
在虚拟机中进入浏览器,输入主机的IP地址进行访问,通过wireshark进行抓包如下
可以看出此时已经采用了ESP协议,并且没有被加密,存在与AH结果中相似的部分。
· 第三次测试:ESP完整性及加密
进入自定义入口的步骤与上面相同
在编辑安全方法中选择自定义,点击设置,设置如下,并且在虚拟机也按照上述步骤操作一遍
在虚拟机中进入浏览器,输入主机的IP地址进行访问,通过wireshark进行抓包如下
此时也是采用了ESP协议,并且可以看出数据已经无法直接看到了,以密文的形式在Internet上传送,测试ESP协议的加密功能成功。
实验遇到的问题
在这次实验中遇到最大的问题就是在对IP筛选器进行修改之后,用wireshark抓包依然没有发生变化,比如从AH更换到ESP后,抓包结果中没有ESP,在一次虚拟机重启之后我认为是浏览器的问题,之后每进行一次修改后抓包前要ctrl+F5强制刷新一次浏览器。
其次就是一直在抓包是出现404 not found,查询得知这是因为浏览器没有获取到favicon.ico文件,于是去下载了一份与html保存在同一目录下解决。
实验总结
通过IPSec我们能确保IP网络上数据通信的完整性,机密性和身份验证,在之前学习课本这一部分内容时对于几个协议只知道功能没有一个具体的认知,在自己动手实操之后对于AH协议和ESP协议之间不同的功能区分有了更深的了解,在wireshark抓包的对比中我们能对完整性、保密性等功能掌握得更有条理。另一条收获就是掌握了更多的虚拟机知识,自学到了很多有用的东西。