信息安全实践1.3(HTTPS)

前言

        做这个实验对Tomcat的版本有要求,最好是使用Tomcat8。因为我之前使用Tomcat10,然后一直做不出来。

要求

        部署Web服务器端HTTPS功能,通过网络嗅探分析HTTPS通过SSL实施安全保护的效果

关键步骤

  1. 首先要给tomcat配置https,也就是让tomcat使用https协议。

        想要通过https访问程序,需要获得一个证书,自己给自己签发而来的证书也叫自签名ssl证书。这里我要使用java jdk自带的keytool工具来创建本地SSL证书。

        打开jdk下的bin目录:

        在该目录下看到keytool工具后,在该目录中打开终端:

        输入如下图中的命令,生成证书:

        证书的密钥我设置为123456。

        然后来到tomcat的conf目录下,发现证书已经生成:

        而后打开该目录下的server.xml文件,在8080端口后添加如图中的代码:

 

        这样就让tomcat可以通过https://localhost:8443的方式访问。

        点击不安全我们可以查看该网站的证书:

        最后,为了方便访问,我们要让访问http://localhost:8080时自动跳转到https://localhost:8443。

        在conf目录下的web.xml文件的最后面(在标签的包含内)添加如下代码即可:

         2.因为没有第二台电脑,所以上面做的https的连接无法使用wireshark进行捕获。所以这里我选择用百度的官网来查看https中SSL的作用。

        

        如图,百度官网使用的是https协议。

        在最新版的wireshark中,已经将SSL改为TLS,所以直接用wireshark进行捕获是不会显示有SSL协议的。

        我们知道,http只有三次TCP握手,而https除了TCP的三次握手外,还有9次SSL握手。如下图,我对百度官网进行访问,发现很多TCP三次握手之后,就会有很多的TLS协议,这里的TLS协议实际就是SSL协议。        

        显然,因为SSL协议对https的信息进行了加密,所以在捕获到数据包之后我们无法直接看到https的详细信息。

        3.为了解密https,需要通过设置环境变量截取浏览器的pre_master_secret。

        如上图,在用户变量中添加SSLKEYLOGFILE,变量值可以随意设置,方便找到就行。

        然后我们打开谷歌浏览器,访问一下百度官网,之后发现对应目录下成功出现了文件ssl.log:    

        接下来打开wireshark,点击编辑来到首选项:

        在Protocols也就是协议中找到TLS协议(最新版的wireshark没有SSL协议)。

         将刚刚生成的文件路径放入下方的框中。而后保存退出,再重新进行捕获:

        然后我们就可以直接看到https数据包中的信息了。同时http的数据包中多了一列数据可以进行查看:Hypertext Transfer Protocol,里面放的就是一些密钥,证书之类的信息数据。

在Web和HTTP广泛应用的现代信息社会中HTTPS意义分析

        http是明文传输的,数据都是未加密的,安全性较差,https(ssl+http)数据传输过程是加密的,安全性较好。所以在现代信息社会中,在这十分缺乏信息安全的时代,https是十分有必要的。当然,https也不是方方面面都比https好,比如,http建立连接只需要进行TCP三次握手(共3个包),而https除了TCP三次握手外,还要加上ssl握手需要的9个包(共12个包),所以https页面的响应速度要比http慢一些,不过在硬件软件都快速更新换代的现代,这些缺点几乎可以忽略不计。

结语

        其实信息安全实践一后面还有一个SSL编程实践,但是因为我写的不好就不放出来了,是个半成品。但是SSL编程其实就是要用弄一个服务端和客户但通信,这个刚好就是网络编程的内容,可以去看我写的网络编程实践或者其他博主的相关博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/24971.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D安装:离线安装 Unity

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 在没有 Hub 的情况下离线安装 Unity Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中,可下载用于安装 Unity 的所有文件,然后生成脚本…

采购申请审批测试

采购申请审批的配置并不难,但是总会有原因导致业务无审批策略,而且这个配置也比较脆弱,有时同步也会出现问题,小编利用这篇操作记录下测试结果。 1、项目类别的审批策略分类 下图是审批策略分类-项目类别不给值,测试…

(浙大陈越版)数据结构 第三章 树(上) 3.4 小白专场:树的同构(PTA编程题讲解)

题意理解和二叉树表示 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换变成T2,则称两棵树是“同构”的。 eg1:现请你判断如下两棵树(左侧为T1,右侧为T2)是否为同构树? 显然T1可以通过有限次左右孩子…

如何利用IDEA将Git分支代码回退到指定历史版本

一、背景 作为一名后端开发,相信大家一定遇到过这样的情景,代码开发人员过多,并且开发分支过多,导致代码版本管理困难,这样就难免遇到一些代码合并出错,比如,当我提交了本次修改到本地和远程分…

jsp页面调试

现象: 访问jsp页面, 页面为空, 网络请求显示失败, 控制台打印错误net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 分析: 错误描述:编码模块不完整,返回浏览器的流不完整 可能得原因: 1、网络是否稳定 2、服务器端是否有对响应数据做限制,比如…

photoshop矫正扫描图片的倾斜问题以及修改图片内容

由于工程原因,资料需要重新梳理 1.扫描工程表格到电脑中 2.在ps中导入表格内容(表格有时候是倾斜的) 需要修正为正常状态,即垂直状态 设置步骤: 1.调整ps的背景颜色与所在图片的背景颜色一致 用吸管工具&#xff…

【thingsboard+NodeRed+chirpstack】实现Lora节点设备的数据上下行通讯

本文主要实现基于 thingsboard+NodeRed+chirpstack 实现 lora设备的数据上下行通讯。 NodeRed作为mqtt桥接器,在开源的社区版 thingsboard上实现 这里写目录标题 LoRa 设备上下行通讯方案数据上行数据下行Device 层面创建设备时,要添加 relation规则链层面灯控模块规则链规则…

Sentinel降级规则

1.降级规则简介 官方文档 熔断降级概述 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的…

华为OD机试之处理器问题(Java源码)

处理器问题 题目描述 某公司研发了一款高性能AI处理器。每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。 编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信。 如下图所示。…

基于html+css的图展示97

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

安装Arch Linux后要做的十件事

Arch Linux 是一款轻量级、灵活且高度可定制的Linux发行版,被广泛用于个人电脑和服务器。一旦您成功安装了Arch Linux,接下来有一些重要的任务需要完成,以确保系统的稳定性和安全性,并为您的需求做好准备。 本文将详细介绍安装Ar…

【Android】配置不同的开发和生产环境

目录 前言 配置build.gradle(Module级别) 创建对应环境的目录 切换不同环境 ​编辑选择打包的环境 前言 在web开发中不同的环境对应的配置不一样,比如开发环境的url是这样,测试环境的url是那样的,在app中也会涉…

jdk15至17——sealed密封关键字

sealed关键字是从jdk15开始预览,直到jdk17成为正式版,可以对继承父类和实现接口进行更加细粒度的限制,之前的限制也只有final用于禁止继承,默认包权限限制在同一个包内,sealed密封类/接口可以明确指定哪些类可以进行继…

通过Python的PIL库给图片添加马赛克

文章目录 前言一、Pillow是什么?二、安装PIL库三、查看PIL库版本四、使用方法1.引入库2.定义图片路径3.打开需要打马赛克的图片4.获取图片尺寸5.创建一个新的图片对象6.定义块的宽高7.循环遍历图片中的每个块进行处理8.保存马赛克图片9.效果 总结 前言 大家好&#…

客服配置-shopro

客服配置 注意事项 shopro客服系统 采用 workerman 的 gateway-worker 作为服务基础,请先安装 gateway-worker 扩展包shopro商城 已不再支持 workerman 在线客服插件 安装部署 安装扩展包 composer require workerman/gateway-worker:~3.0 删除禁用函数(如有未列…

C Primer Plus第十二章编程练习答案

学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 1.不使用全局变量,重写程序…

idea使用Alibaba Cloud Toolkit插件远程操作Docker

idea使用Alibaba Cloud Toolkit插件远程操作Docker 文章目录 前言一、tcp://IP:2375或者Unix socket 连接Docker(不安全)问题1:为什么本地虚拟机能连上,xxx云ECS服务器连不上?问题2:什么是Unix域套接字?有什么作用&…

Linux之创建进程、查看进程、进程的状态以及进程的优先级

文章目录 前言一、初识fork1.演示2.介绍3.将子进程与父进程执行的任务分离4.多进程并行 二、进程的状态1.进程的状态都有哪些?2.查看进程的状态2.运行(R)3.阻塞4.僵尸进程(Z)1.僵尸状态概念2.为什么要有僵尸状态&#…

伺服系统使用S曲线

在之前文章《S形曲线规划方式汇总》 介绍过贝塞尔曲线方式,并且在Marlin开源工程中也有贝塞尔曲线步进系统的实现方式。本篇介绍伺服系统中基于时间分割法实现的贝塞尔S曲线。 1 贝塞尔曲线路程规划 上文中推导过贝塞尔曲线,本文直接用结论&#xff1a…

OFGF光流引导特征:用于视频动作识别的快速且稳健的运动表示【含源码】

论文地址:https://openaccess.thecvf.com/content_cvpr_2018/papers/Sun_Optical_Flow_Guided_CVPR_2018_paper.pdf 这个 repo 包含论文的实现代码: Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video Action Recognition,Shuyang Sun,Zh…