高级网络安全——SSL/TLS, HTTPS, VPN(week4)

文章目录

  • 一、前言
  • 二、重点概念
      • 1. 安全外壳(SSH)
      • 2. SSH概述
      • 3. SSH-2的安全目标
      • 4. SSH传输层协议
      • 5. SSH密钥指纹
      • 6. SSH密钥指纹
      • 7. SSH-2算法
        • SSH传输层协议
      • 8. SSH传输层协议
        • Diffie-Hellman密钥交换
      • 9. SSH传输层协议
        • Diffie-Hellman密钥交换
      • 10. SSH传输层协议
        • Diffie-Hellman密钥交换
      • 11. SSH传输层协议
        • 密钥派生
      • 12. SSH传输层协议
        • 密钥派生
      • 13. SSH传输层协议
        • 二进制数据包协议
      • 14. SSH用户认证协议
      • 15. SSH连接协议
      • 16. SSH端口转发
        • 无SSH时的情况
        • 使用SSH和端口转发
      • 17. SSH端口转发
      • 18. SSH端口转发(应用)
      • 19. SSH端口转发(本地)
      • 20. SSH端口转发(远程)
      • 21. 端口转发
      • 22. SSH应用
      • 23. SSL/TLS
      • 24. SSL/TLS应用
      • 25. SSL/TLS架构
      • 26. TLS记录协议
      • 27. TLS记录协议格式
      • 28. TLS记录协议
      • 29. TLS更改密码规范协议
      • 30. TLS警报协议
      • 31. TLS警报协议
      • 32. TLS握手协议
      • 33. TLS握手协议
      • 34. TLS握手协议的四个阶段
      • 35. Diffie-Hellman重新介绍
      • 36. 密钥传输
      • 37. TLS1.2支持的密钥交换方法
      • 38. 握手协议
      • 39. 握手协议
      • 40. 握手协议
      • 41. 握手协议
      • 42. 握手协议
      • 43. 握手协议
      • 44. 握手协议
      • 45. SSL密钥派生
      • 46. SSL密钥派生
      • 47. TLS密钥派生
      • 48. 会话恢复(Session Resumption)
      • 49. HTTPS (HTTP over SSL/TLS)

一、前言

二、重点概念

1. 安全外壳(SSH)

  • SSH = Secure Shell(安全壳)
    • 最初设计用于替代不安全的rsh和telnet工具。
    • 主要用于安全的远程管理(通常是Unix系统)。
    • 后来,SSH被用于提供网络应用程序的通用安全通道。
    • 只保护明确指定的流量。
    • 应用程序需要进行修改,但端口转发在一定程度上简化了这个过程。

2. SSH概述

SSH协议栈采用三层架构:

  • SSH传输层协议

    • 负责初始连接。
    • 服务器认证。
    • 通过密钥交换等方式在客户端和服务器之间建立安全通道。
  • SSH认证协议

    • 在安全的传输层通道上进行客户端认证。
  • SSH连接协议

    • 在一个传输层协议的安全通道上支持多个连接。
    • 提高了效率(会话复用)。

3. SSH-2的安全目标

  • 服务器认证:在传输层协议中进行服务器认证。
  • 客户端认证:通过公钥(DSS,RSA)或简单密码在认证协议中进行客户端认证。
  • 建立新的共享密钥
    • 共享密钥用于派生进一步的密钥(加密密钥、MAC密钥、IV等),类似于SSL/TLS。
    • 用于SSH传输层协议中的保密性和真实性。
  • 安全加密套件协商
    • 包括加密、MAC和压缩算法。

4. SSH传输层协议

  • 服务器认证:基于服务器的主机密钥对(公钥和密钥)。
  • 数据包交换
    • 建立TCP连接。
    • 然后可以交换数据(数据包交换)。
    • 包括标识字符串交换、算法协商、密钥交换、密钥交换结束、服务请求。
    • 服务请求:用户认证或连接协议。

5. SSH密钥指纹

  • 连接的安全性依赖于服务器向客户端认证自身。
  • 当你第一次连接到远程主机时,主机会将其公钥发送到你的本地电脑以识别自己。为了帮助你验证主机的身份,主机会向你展示其公钥的指纹供你验证。
  • 许多用户会盲目接受展示的密钥。
  • SSH对普通大众来说并不友好。

6. SSH密钥指纹

  • 通过Diffie-Hellman密钥交换建立密钥。
    • 短暂的Diffie-Hellman密钥交换。
  • 服务器认证通过RSA或DSS签名进行。
  • 采用HMAC-SHA1或HMAC-SHA256作为MAC算法。
  • 采用3DES、AES、RC4等作为加密算法。

7. SSH-2算法

SSH传输层协议
  • Diffie-Hellman密钥交换
    • 客户端生成一个随机数xc并计算yc = g^xc mod p
    • 客户端将yc发送给服务器。

8. SSH传输层协议

Diffie-Hellman密钥交换
  • 服务器生成一个随机数xs并计算ys = g^xs mod p
  • 服务器计算共享密钥K = yc^xs mod p

9. SSH传输层协议

Diffie-Hellman密钥交换
  • 服务器计算交换的哈希值H = hash(idC || idS || initC || initS || PKS || yc || ys || K)
    • idSidC:服务器和客户端的标识字符串。
    • initSinitC:服务器和客户端的初始消息。

10. SSH传输层协议

Diffie-Hellman密钥交换
  • 服务器对交换的哈希值H生成签名signature = SignSKS(H),并将(ys, PKS, signature)发送给客户端。

11. SSH传输层协议

密钥派生
  • 在密钥交换之后,服务器和客户端都获得了两个共享值:
    1. 共享的密钥值K
    2. 交换的哈希值H
  • 加密密钥和MAC密钥是从KH派生的。
  • 第一次密钥交换的交换哈希值H还用作会话标识符。

12. SSH传输层协议

密钥派生
  • 加密密钥的计算方法是:将共享密钥K和哈希值H组合并进行哈希运算。
    • 客户端到服务器的初始IVhash(K || H || "A" || session id)
    • 服务器到客户端的初始IVhash(K || H || "B"

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Perforce《2024游戏技术现状报告》Part3:生成式AI、版本控制、CI/CD等游戏技术的未来趋势与应用

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注,正在改变着组织进行数字创作的方式。 近期,Perforce发布了《2024游戏技术现状报告》,通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

4-SpringCloud整合服务间的调用即负载均衡

springcloud目录: 1.Spring Cloud简介 2.SpringCloud整合eureka注册中心 3.SpringCloud整合服务注册 4.SpringCloud整合服务间的调用即负载均衡 5.SpringCloud整合Feign调用 6.SpringCloud整合config配置中心 7.SpringCloud整合zuul路由网关 我们复制一个yqx-user服…

Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?

大家好,我是锋哥。今天分享关于【Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?】面试题。希望对大家有帮助; Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的? 100…

深入浅出,快速安装并了解汇编语言

1.什么是汇编语言 了解汇编语言需要先从了解机器语言开始,在计算机发展的初期阶段,机器语言是计算机直接理解和执行的二进制代码语言,其核心特点包括直接执行性、资源高效性、学习难度大以及平台依赖性。它主要由指令码构成,这些…

2.2_3 纠错编码—海明码

目录 1、海明码的纠错过程 2、海明距离 3、确认检验码位数 4、确定校验码和数据的位置 5、求出校验码的值 6、检错并纠错 方法一 方法二 1、海明码的纠错过程 2、海明距离 两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一…

1992-2021年 各省市县经过矫正的夜间灯光数据(GNLD、VIIRS)区域汇总:省份、城市、区县面板数据

1992-2021年 各省市县经过矫正的夜间灯光数据(GNLD、VIIRS)区域汇总:省份、城市、区县面板数据 .r.rar https://download.csdn.net/download/2401_84585615/90001905 从1992年至2021年,中国各省份、城市及区县的夜间灯光数据经过…

微信小程序上传微信官方审核流程(1)

1,打开微信开发者工具 2,微信开发者工具右上角有一个上传按钮,点击上传按钮 3,点击完上传按钮会弹出一个上传成功的提示,点击提示框中的确定按钮 4,点击完确定按钮后会显示填写版本好和项目备注 5&#x…

快速获取镜像包的方法

1、当我们需要在无网络的环境中,在Docker环境中安装某个镜像时,需要先下载这个镜像包后,再上传 2、下面以在minio为例 在有网络的电脑中使用使用命令下载 docker pull minio/minio将下载好的tar包保存到指定的目录下 save -o /home/cl/app…

11 —— 打包模式的应用

需求:在开发模式下想让webpack使用style-loader进行css样式的处理;让它把css代码内嵌在js中;在生产模式下提取css代码 —— 判断当前运行命令时所在的环境 方案:借助cross-env全局软件包,设置参数区分打包运行环境 …

docker容器化部署springboot项目

前言 docker安装 下载官网 选择自己的系统 然后安装文档内给的命令按顺序执行即可。设置仓库,安装docker. 一、更换镜像源 一般情况下,docker原本自带的镜像网站不一定连的上,就很容易导致下载镜像失败,因此需要换源. 创建/etc/docker/daemon.json并填入数据…

2024深育杯misc2

题目描述:攻击者远程服务器监听所用的端口是( )?请提交flag,例如端口号为80,则提交Sangfor{80} 附件解压打开是一个raw文件 用volatility3工具查看ip链接信息

UI自动化测试中公认最佳的设计模式-POM

一、概念 什么是POM? POM是PageObjectModule(页面对象模式)的缩写,其目的是为了Web UI测试创建对象库。在这种模式下,应用涉及的每一个页面应该定义为一个单独的类。类中应该包含此页面上的页面元素对象和处理这些元…

L14.【LeetCode笔记】返回倒数第k个节点

目录 1.题目 2.分析 思路 代码 提交结果 1.题目 面试题 02.02. 返回倒数第 k 个节点 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 …

linux-进程间通信

进程的通信是两个或多个进程实现数据的交互,让不同的进程看到同一份资源,而这份资源是由操作系统创建管理的。如果让其中一个进程来提供的话会破坏该进程的独立性,因为这个进程内部的数据可以被其他进程看到,那这个独立性就遭到了…

基于阿里云服务器部署静态的website

目录 一:创建服务器实例并connect 二:本地文件和服务器share 三:关于IIS服务器的安装预配置 四:设置安全组 五:建站流程 六:关于备案 一:创建服务器实例并connect 创建好的服务器实例在云…

Java算法OJ(10)哈希表练习

目录 1.前言 2.正文 2.1俩数之和 2.2无重复字符的最长子串 2.3罗马数字转整数 2.4整数转罗马数字 3.小结 1.前言 哈喽大家好吖,今天来分享几道哈希表相关的练习题,操作比较基础但是思想比较重要,另外有许多思路与解法都是学习参照题解…

二叉树:堆的建立和应用

在建立堆之前,我们要知道什么是树和二叉树 树 树是一种非线性的数据结构,它是由n(n>0)个结点组成的一个具有层次关系的集合,之所以把它叫做树,是因为它长得像一棵倒挂的树,也就是根在上面&…

oracle的静态注册和动态注册

oracle的静态注册和动态注册 静态注册: 静态注册 : 指将实例的相关信息手动告知 listener 侦 听 器 , 可以使用netmgr,netca,oem 以及直接 vi listener.ora 文件来实现静态注册,在动态注册不稳定时使用,特点是:稳定&…

postgresql按照年月日统计历史数据

1.按照日 SELECT a.time,COALESCE(b.counts,0) as counts from ( SELECT to_char ( b, YYYY-MM-DD ) AS time FROM generate_series ( to_timestamp ( 2024-06-01, YYYY-MM-DD hh24:mi:ss ), to_timestamp ( 2024-06-30, YYYY-MM-DD hh24:mi:ss ), 1 days ) AS b GROUP BY tim…

调试器 gdb/cgdb 的使用

一. touch mycode.c vim mycode.c cgdb 下载 Ubuntu:sudo apt-get install -y cgdb Centos: sudo yum install -y cgdb Linux 下我们编译好的代码无法直接调试 g/gcc 默认的工作模式是release模式 程序要调试,必须是debug模式,编译时…