PKI及SSL协议分析

PKI及SSL协议分析

​ 本实验主要介绍了PKI及SSL协议的分析,通过本实验的学习,你能够了解和掌握证书服务的安装,理解证书的发放过程,掌握在WEB服务器上配置SSL, 使用HTTPS协议访问网站以验证结果。

实验简介

实验所属系列:安全协议应用与分析/网络安全与防护

实验对象:本科/专科信息安全专业

相关课程及专业:信息网络安全概论、网络攻击与防御技术、计算机网络

实验时数(学分):2学时

实验类别:实践实验类

实验目的

通过该实验了解和掌握证书服务的安装,理解证书的发放过程,掌握在WEB服务器上配置SSL, 使用HTTPS协议访问网站以验证结果,最后对HTTPS协议进行分析。

预备知识

本实验要求实验者具备如下的相关知识。

PKI

PKI是Public Key Infrastructure的缩写,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。PKI是由硬件、软件、策略和人构成的系统,当完善实施后,能够为敏感通信和交易提供一套信息安全保障,包括保密性、完整性、真实性和不可否认。

PKI的基本组成,完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。

数字证书,是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

HTTPS

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

实验环境

在这里插入图片描述

本实验中自己指定CA服务器与申请证书的网站。

实验过程中建议使用IE浏览器,如果不使用IE,可能会导致后续实验过程中证书不能下载。

实验步骤一

任务一:搭建CA服务器

本任务初步了解CA服务器的原理和配置过程。操作都在CA服务器上。

1、远程桌面方式登录到CA服务器,在CMD下查看本机IP地址:

在这里插入图片描述

注:在本例中CA服务器IP为10.1.1.245,但在做实验过程中,IP可能会出现变动,要记住自己CA的IP,在后面实验过程中填写自己的IP,否则实验可能失败。

2、安装证书服务

依次点击:“开始”->>“控制面板”->>“添加或删除程序”,以打开添加或删除程序对话框:

在这里插入图片描述

依次点击:“添加删除windows组件”,在组件向导中选中“应用程序服务器”与“证书服务”,先不要点击下一步:

在这里插入图片描述

双击“应用程序服务器”,选中“ASP.NET”与“Internet信息服务(IIS)”,如下图:

在这里插入图片描述

点击“确定”开始安装,在出现的对话框中选择“独立根”,继续安装过程

在这里插入图片描述

选择相关的参数,如下图:

在这里插入图片描述

下一步后,会出现证书数据库的相关设置,不用修改,继续下一步:

在这里插入图片描述

单击下一步后进行安装,在安装过程中会提示“输入磁盘”,按照安装IIS的方式,单击“浏览”、找到文件,确定完成安装。

(浏览到桌面-win2003-I386目录下)

在安装完成后会提示启用Active Server Page,点击“确定”

在这里插入图片描述

安装完成后会发现有管理工具中多了“Internet信息服务(IIS)”,找到并打开:

在这里插入图片描述

右键“默认网站”,选择“属性”:

在这里插入图片描述

会出现如下属性对话框,在对话框中IP地址选择为本机IP(一般IP已经存在,不用手工输入),并点击确定:

在这里插入图片描述

打开浏览器输入 http://10.1.1.245/certsrv/ 可以浏览证书服务器

在这里插入图片描述

至此,证书服务器搭建完成。

实验步骤二

任务二:搭建HTTPS服务器

1、证书申请

登录到要搭建https服务的“网站”主机,查看IP:

在这里插入图片描述

按照搭建CA服务器的方法安装IIS,区别是只选择“应用程序服务器”,如下图:

在这里插入图片描述

安装完成后,打开IIS,右键“默认网站”,选择“属性”:

在这里插入图片描述

在“默认网站属性”中选择“目录安全性”标签,点击“服务器证书”:

在这里插入图片描述

会出现安装向导,点击下一步:

在这里插入图片描述

出现如下对话框,保持默认选项“新建证书”不动,继续下一步:

在这里插入图片描述

继续保持默认选项,单击下一步:

在这里插入图片描述

在这里插入图片描述

填写单位与部门信息:

在这里插入图片描述

填写公用名称,由于在本环境中没有使用DNS服务器,没有域名因此使用IP地址访问,在公用名称中输入本机的IP地址,如果名称错误,后面过程中会出现问题,因此应仔细核对:

在这里插入图片描述

在下一步中输入证书的相关信息:

在这里插入图片描述

可以使用默认的文件名,但要记住存放地址:

在这里插入图片描述

确认信息后,完成请求证书的设置。

接下来申请证书。

打开浏览器,输入刚才我们搭建的证书服务器地址:

Http://10.1.1.245/certsrv/ (在实验中根据自己情况填写IP),在证书服务页面点击“申请一个证书”

在这里插入图片描述

在下图的页面中点击“高级证书申请”:

在这里插入图片描述

在出现的页面中选择第二个“使用base64编码的CMC……”

在这里插入图片描述

在这里插入图片描述

打开前面步骤建立的文本文件,将文本文件的内容复制到页面中,并提交:

在这里插入图片描述

会出现等待管理员审核批准的页面。

在这里插入图片描述

2、证书的颁发

证书的颁发在证书服务器中操作,接下来的操作是证书审核员的角色,切换到CA服务器,点击“开始”>>“管理工具”>>“证书颁发机构”:

在这里插入图片描述

可以在挂起的申请中看到刚才我们的申请:

在这里插入图片描述

右键所有任务,选择“颁发”:

在这里插入图片描述

颁发后可以在“颁发的证书”中看到,如下图:

在这里插入图片描述

3、下载并应用证书

本操作是网站主机上。

在这里插入图片描述

可以看到,证书已经审核通过,可以下载了:
在这里插入图片描述

​ 点击“保存的申请证书”,进入到下一页面:

在这里插入图片描述

选择“Base 64编码”,并点击“下载证书”:

在这里插入图片描述

​ 将证书保存到桌面,以便查找,可以看到桌面上的证书文件。

​ 再进入到默认网站属性,选择“目录安全性”,单击“服务器证书”:

在这里插入图片描述

进入Web服务器证书向导,点击下一步:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在“处理挂起请求”中选择“浏览”,选择刚才下载的证书文件,并打开,下一步,使用默认的443端口,点击下一步:

在这里插入图片描述

继续下一步,完成向导。

打开默认网站属性,选择“目录安全性”标签,单击“编辑”

在这里插入图片描述

选择“要求安全通道”,确定:

在这里插入图片描述

实验步骤三

任务三:访问HTTPS服务器

在“CA服务器”中打开已经申请了HTTPS服务的网站:

在这里插入图片描述

输入https://10.1.1.196 (按照实际情况),会出现一个证书安全问题的确认,单击“是”,进行浏览:

在这里插入图片描述

可以看到能够通过HTTPS协议浏览。

在这里插入图片描述

答案

在这里插入图片描述

分析与思考

1.通过本实验,论述本实验中有哪些角色?他们的任务分别是什么?

​ CA服务器 任务:建立SSL加密通道
​ 网站主机 任务:申请HTTPS服务的网站

2.对数据包进行分析,比较使用HTTP和HTTPS有什么不同?

http 是超文本传输协议,信息是明文传输,https则是 具有安全性的ssI加密传输协议。简单来说它是HTTP的安全版。
https://前缀表明是用SSL (安全套接字)加密的,你的电脑与服务器之间收发的信息传输将更加安全。

https协议需要申请证书,一般免费证书很少,需要交费,Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

http和https使用的是完全不同的连接方式,同时使用的端口也不同,http使用的是80端口,https使用的是443端口。http的连接很简单,是无状态的,而HTTPS协议是由SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。HTTPS安全超文本传输协议是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息。

区别统计: HTTP是不安全的,而HTTPS是安全的; HTTP标准端口是80,而HTTPS的标准端口是443;在网络模型中,HTTP工作于应用层,而HTTPS工作在传输层; HTTP无需证书,而
HTTPS需要认证证书。

热门文章

暂无图片
编程学习 ·

Java输出数组的内容

Java输出数组的内容_一万个小时-CSDN博客_java打印数组内容1. 输出内容最常见的方式// List<String>类型的列表List<String> list new ArrayList<String>();list.add("First");list.add("Second");list.add("Third");list.ad…
暂无图片
编程学习 ·

母螳螂的“魅惑之术”

在它们对大蝗虫发起进攻的时候&#xff0c;我认认真真地观察了一次&#xff0c;因为它们突然像触电一样浑身痉挛起来&#xff0c;警觉地面对限前这个大家伙&#xff0c;然后放下自己优雅的身段和祈祷的双手&#xff0c;摆出了一个可怕的姿势。我被眼前的一幕吓到了&#xff0c;…
暂无图片
编程学习 ·

疯狂填词 mad_libs 第9章9.9.2

#win7 python3.7.0 import os,reos.chdir(d:\documents\program_language) file1open(.\疯狂填词_d9z9d2_r.txt) file2open(.\疯狂填词_d9z9d2_w.txt,w) words[ADJECTIVE,NOUN,VERB,NOUN] str1file1.read()#方法1 for word in words :word_replaceinput(fEnter a {word} :)str1…
暂无图片
编程学习 ·

HBASE 高可用

为了保证HBASE是高可用的,所依赖的HDFS和zookeeper也要是高可用的. 通过参数hbase.rootdir指定了连接到Hadoop的地址,mycluster表示为Hadoop的集群. HBASE本身的高可用很简单,只要在一个健康的集群其他节点通过命令 hbase-daemon.sh start master启动一个Hmaster进程,这个Hmast…
暂无图片
编程学习 ·

js事件操作语法

一、事件的绑定语法 语法形式1 事件监听 标签对象.addEventListener(click,function(){}); 语法形式2 on语法绑定 标签对象.onclick function(){} on语法是通过 等于赋值绑定的事件处理函数 , 等于赋值本质上执行的是覆盖赋值,后赋值的数据会覆盖之前存储的数据,也就是on…
暂无图片
编程学习 ·

Photoshop插件--晕影动态--选区--脚本开发--PS插件

文章目录1.插件界面2.关键代码2.1 选区2.2 动态晕影3.作者寄语PS是一款栅格图像编辑软件&#xff0c;具有许多强大的功能&#xff0c;本文演示如何通过脚本实现晕影动态和选区相关功能&#xff0c;展示从互联网收集而来的一个小插件&#xff0c;供大家学习交流&#xff0c;请勿…
暂无图片
编程学习 ·

vs LNK1104 无法打开文件“xxx.obj”

写在前面&#xff1a; 向大家推荐两本新书&#xff0c;《深度学习计算机视觉实战》和《学习OpenCV4&#xff1a;基于Python的算法实战》。 《深度学习计算机视觉实战》讲了计算机视觉理论基础&#xff0c;讲了案例项目&#xff0c;讲了模型部署&#xff0c;这些项目学会之后可以…
暂无图片
编程学习 ·

工业元宇宙的定义与实施路线图

工业元宇宙的定义与实施路线图 李正海 1 工业元宇宙 给大家做一个关于工业元宇宙的定义。对于工业&#xff0c;从设计的角度来讲&#xff0c;现在的设计人员已经做到了普遍的三维设计&#xff0c;但是进入元宇宙时代&#xff0c;就不仅仅只是三维设计了&#xff0c;我们的目…
暂无图片
编程学习 ·

【leectode 2022.1.15】完成一半题目

有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目&#xff0c;整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题&#xff0c;请返回被选的 N 道题目至少包含多少种知识点类型。 示例 1&#xff1a…
暂无图片
编程学习 ·

js 面试题总结

一、js原型与原型链 1. prototype 每个函数都有一个prototype属性&#xff0c;被称为显示原型 2._ _proto_ _ 每个实例对象都会有_ _proto_ _属性,其被称为隐式原型 每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype 3. constructor 每个prot…
暂无图片
编程学习 ·

java练习代码

打印自定义行数的空心菱形练习代码如下 import java.util.Scanner; public class daYinLengXing{public static void main(String[] args) {System.out.println("请输入行数");Scanner myScanner new Scanner(System.in);int g myScanner.nextInt();int num g%2;//…
暂无图片
编程学习 ·

RocketMQ-什么是死信队列?怎么解决

目录 什么是死信队列 死信队列的特征 死信消息的处理 什么是死信队列 当一条消息初次消费失败&#xff0c;消息队列会自动进行消费重试&#xff1b;达到最大重试次数后&#xff0c;若消费依然失败&#xff0c;则表明消费者在正常情况下无法正确地消费该消息&#xff0c;此时…
暂无图片
编程学习 ·

项目 cg day04

第4章 lua、Canal实现广告缓存 学习目标 Lua介绍 Lua语法 输出、变量定义、数据类型、流程控制(if..)、循环操作、函数、表(数组)、模块OpenResty介绍(理解配置) 封装了Nginx&#xff0c;并且提供了Lua扩展&#xff0c;大大提升了Nginx对并发处理的能&#xff0c;10K-1000K Lu…
暂无图片
编程学习 ·

输出三角形

#include <stdio.h> int main() { int i,j; for(i0;i<5;i) { for(j0;j<i;j) { printf("*"); } printf("\n"); } }
暂无图片
编程学习 ·

stm32的BOOTLOADER学习1

序言 最近计划学习stm32的BOOTLOADER学习,把学习过程记录下来 因为现在网上STM32C8T6还是比较贵的,根据我的需求flash空间小一些也可以,所以我决定使用stm32c6t6.这个芯片的空间是32kb的。 #熟悉芯片内部的空间地址 1、flash ROM&#xff1a; 大小32KB&#xff0c;范围&#xf…
暂无图片
编程学习 ·

通过awk和shell来限制IP多次访问之学不会你打死我

学不会你打死我 今天我们用shell脚本&#xff0c;awk工具来分析日志来判断是否存在扫描器来进行破解网站密码——限制访问次数过多的IP地址&#xff0c;通过Iptables来进行限制。代码在末尾 首先我们要先查看日志的格式&#xff0c;分析出我们需要筛选的内容&#xff0c;日志…
暂无图片
编程学习 ·

Python - 如何像程序员一样思考

在为计算机编写程序之前&#xff0c;您必须学会如何像程序员一样思考。学习像程序员一样思考对任何学生都很有价值。以下步骤可帮助任何人学习编码并了解计算机科学的价值——即使他们不打算成为计算机科学家。 顾名思义&#xff0c;Python经常被想要学习编程的人用作第一语言…
暂无图片
编程学习 ·

蓝桥杯python-数字三角形

问题描述 虽然我前后用了三种做法&#xff0c;但是我发现只有“优化思路_1”可以通过蓝桥杯官网中的测评&#xff0c;但是如果用c/c的话&#xff0c;每个都通得过&#xff0c;足以可见python的效率之低&#xff08;但耐不住人家好用啊&#xff08;哭笑&#xff09;&#xff09…