Nginx: https解决安全问题

news2024/11/15 22:43:52

https原理


1 )http协议存在的问题

  • 数据使用明文传输,可能被黑客窃取 (需要信息加密)
  • 报文的完整性无法验证,可能被黑客篡改 (需要完整性校验)
  • 无法验证通信双方的身份,可能被黑客伪装 (需要身份认证)

2 ) https 原理

  • 所谓 https, 其实只是身披TLS/SSL协议外壳的http
  • HTTPS = HTTP + TLS/SSL

解决信息被窃听问题


1 )数据使用明文传输,可能被黑客窃取

  • 明文被截获非常不安全

1.1 加密算法

  • 对称加密,常见算法:DES、AES、3DES
  • 非对称加密,常见算法:RSA、DSA、ECC

1.2 关于对称加密

  • 客户端,服务器都用同一把,密钥如何进行协商是一个问题
  • 通过互联网传输,密钥如何保证不被窃听
  • 优势
    • 解密效率高
  • 劣势
    • 密钥无法实现安全传输
    • 密钥的数目难于管理
    • 无法提供信息完整性校验

1.3 关于非对称加密算法

  • 优势
    • 服务器仅维持一个私钥即可
  • 劣势
    • 公钥是公开的
    • 非对称加密算法加解密过程中耗费一定时间
    • 公钥并不包含服务器信息,存在中间人攻击的可能性

1.4 https 加密原理

  • https 混合使用对称加密和非对称加密
  • 在连接建立阶段使用非对称加密算法
  • 内容传输阶段使用对称加密算法
  • 上图简单描述,客户端发起一个https请求
  • 服务端收到请求后,蒋公钥发给客户端
  • 客户端验证公钥的合法性,不合法则显示警告
  • 合法,则客户端生成一个伪随机数作为一个客户端的秘钥
  • 客户端使用公钥加密这个伪随机数,发送到服务器端
  • 服务器使用私钥解密这个被加密的伪随机数
  • 这个时候,客户端和服务器端都存在伪随机数这个秘钥了
  • 整个建立连接的过程结束
  • 通信的时候,客户端和服务器端都使用这个伪随机数进行加密通信
  • 由此,保证了安全和效率

2 )报文的完整性无法验证,可能被黑客篡改

  • 解决报文被篡改 — 数字签名
    • 确定消息的确是由发送方签名发送过来,因为别人假冒不了发送方的签名
    • 能确定消息的完整性,证明数据从未被其他人篡改过

2.1 数字签名的生成

  • 经过上述过程,服务端会将签名和原文返回给客户端

2.2 数字签名的校验流程

  • 客户端收到签名,使用公钥进行解密出消息摘要
  • 客户端将消息摘要通过哈希算法计算出消息摘要
  • 客户度将两个消息摘要进行对比
    • 对比不一致,报文可能会被更改
    • 对比一致,则没有问题
  • 保证签名不被篡改,保证报文不会被篡改
  • 通过数据签名,保证报文完整性的校验

2.3 数字签名的合法性验证

  • 客户端是需要使用服务器的一个公钥,对数字签名进行解密的
  • 从服务器收到这样一个数字签名,如何去验证它就是这台服务器返回的
  • 在中间可能会被第三者把这个数字签名返回给我的
  • 也就是说数字签名,在传输的过程中,可能会被替换
  • 因为服务器公钥,任何人都是可以拿到
  • 因此为了解决这样一个身份验证问题,需要引入CA这样一个概念
  • 也就是说这个证书是谁来颁发的

2.4 CA 证书申请过程中做的事情

  • 你申请的某一个域名,一定会归属于某一个组织
  • 在申请证书的时候,会将组织信息,域名信息提交给CA(证书颁发机构)
  • CA会通过一些线上的方式或者是线下的方式, 对你的这些信息进行验证
  • 验证你这些信息是正确之后,就颁发这样一个证书
  • 这些证书通样是包含了这样一些以下信息的
    • 申请者的公钥
    • 申请者的组织信息和个人信息等等
    • 签发机构CA的信息
    • 证书的一个有效时间,证书序列号等等。
    • 同时它会会包含一个数字签名
  • 至此,整个组织向CA就申请了这样一个合法的证书
  • 给我们的服务器配上这样一个证书之后
  • 我们的客户端向服务器发起请求的时候
  • 我们服务器会将申请的这样一个证书,给返回给我们的客户端
  • 客户端会读取的证书中相关的一个明文信息
  • 同时它会采用一定的哈希算法去计算这样一个信息摘要
  • 它计算完之后,能够利用对应CA的公钥去解密这样一个签名数据,对比证书的信息摘要,如果一致,就认为,这样一个证书是合法的,反之就认为是非法的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新160个crackme - 043-riijj_cm_20041121

运行分析 除了主程序还有一个dll文件,应该是要加载pf1.dll这个动态链接库运行主程序,需破解Name和Serial,点击注册无反应 PE分析 C程序,32位,无壳 静态分析&动态调试 尝试ida动调加载动态链接库pf1.dll&#xff0c…

全能型AI“草莓”:未来趋势还是市场泡沫?

你好,我是三桥君 近日,OpenAI宣布将在秋季推出代号为“草莓”的新AI模型。这一消息迅速引起了科技界和市场的广泛关注。 OpenAI的新项目“草莓”(Strawberry)是一个备受关注的人工智能模型,预计将在今年秋季发布。这个…

算法复盘——LeetCode hot100:哈希

文章目录 哈希表哈希表的基本概念哈希表的使用1. 插入操作2. 查找操作3. 删除操作 哈希表的优点和缺点1.两数之和复盘 242.有效的字母异位词复盘 49.字母异位词分组复盘 128. 最长连续序列复盘HashSet 哈希表 先来搞清楚什么是哈希表吧~ 概念不清楚方法不清楚怎么做题捏 哈希表…

MongonDB-索引

一、索引-index (一) 概述 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时&am…

firewalld 防火墙常用命令,新手必看

firewalld 防火墙常用命令 防火墙状态命令 systemctl start firewalld #启动防火墙 systemctl stop firewalld #关闭防火墙 systemctl restart firewalld #重启防火墙 systemctl enable firewalld #设置开机自启 systemctl disable firewalld #禁用开机自启 systemctl s…

自己开发完整项目一、登录功能-03(使用springSecurity安全框架,查询用户角色权限)

一、说明 在前面两章节,实现了通过springsecurity来进行用的登录认证,当用户输入用户名和密码之后,通过额数据库中的信息比对,比对成功那么放行。但是还存在一个问题:因为系统的所有页面包括按钮都是有各自的权限&…

全网最全robotframework自动化测试环境搭建

一、前言 1、在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的环境上,导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安…

Golang 读取文件

GoLang读取文件需要用到os类去打开文件,然后再用其他方式分析文件里的内容。打开文件比较简单,使用os.Open就可以了,记住用defer关闭就行。但是读取文件内容就头疼了,以文本文件为例子,就有各种方式 读取到byte数组 首…

渐进式衰老?医美三剑客的“市梦率”幻灭了

医美股神话彻底幻灭了。 从股价蒸发到业绩失速,“医美三剑客”上演着繁华落幕,回归平凡的剧本。 近一年来,爱美客、华熙生物、昊海生科股价分别累计下跌52.97%、46.03%、16.09%。 “医美三剑客”近一年累计跌幅(资料来源&#x…

分水岭算法简介

分水岭算法是一种经典的图像分割技术,广泛应用于图像处理领域。它的名称源自地理学中的“分水岭”概念,即在地形中,水从高处流向低处,最终汇聚成河流的过程。在图像分割中,分水岭算法将灰度图像视为地形,将…

STM32(八):定时器——输入捕获实验

目录 输入捕获模式测频率: 结构图: 步骤: 部分函数详解: 源码: PWMI模式测频率占空比: 结构图: ​编辑 举例说明 源码: 输入捕获模式测频率: 结构图&#xf…

using showdown js with openAi streaming response

题意:"使用 Showdown.js 处理 OpenAI 流式响应" 问题背景: I tried using showdownjs to translate streamed markdown from OpenAi to HTML "我尝试使用 Showdown.js 将来自 OpenAI 的流式 Markdown 转换为 HTML" I changed the …

机器学习第五十四周周报 MAGNA

文章目录 week54 MAGNA摘要Abstract一、文献阅读1. 题目2. Abstract3. 文献解读3.1 Introduce3.2 创新点 4. MAGNA4.1 基础4.2 多跳注意力扩散机制4.3 网络架构4.4 图注意力扩散机制的分析 5. 实验分析5.1 节点分类5.2 知识图谱 6.结论 二、若依系统1. 权限管理2. 数据字典3. 其…

【Linux修行路】进程通信——共享内存

目录 ⛳️推荐 一、直接原理 1.1 共享内存的的申请 1.2 共享内存的释放 二、代码演示 2.1 shmget 2.1.1 详谈key——ftok 2.2 创建共享内存样例代码 2.3 获取共享内存——进一步封装 2.4 共享内存挂接——shmat 2.5 共享内存去关联——shmdt 2.6 释放共享内存——s…

gitee版本控制

前置要求: 安装Git git下载地址:https://git-scm.com/download/win 注册gitee gitee官网:Gitee - 基于 Git 的代码托管和研发协作平台 创建普通项目 目录 git推送远程仓库基本操作 克隆仓库到本地 项目上传 版本管理 分支管理版本…

紧急 浮毛正在挑战免疫系统?推荐榜TOP3浮毛空气净化器使用体验

作为一名多猫家庭的铲屎官,出门路人必知道我养猫,不是把铲屎官三个字大大的打在我脑门上了。而是衣服、裤子上无处不在的猫毛,以前我就靠着人力与各种工具与猫毛斗争,但效果总是差强人意。直到有一天,我因忽视浮毛而患…

Linux 用户缓冲区

1. 文件描述符的分配规则 我们知道Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入stdin--0, 标准输出stdout--1, 标准错误stderr--2。0,1,2对应的物理设备一般是:键盘,显示器,显示器.接下…

字符串原始字面量

简介:C11中添加定义了原始字符串的字面量,定义方式为:R"xxx(原始字符串)xxx",其中()两边的字符串可以省略。原始字面量R可以直接表示字符串的实际含义,而不需要额外对字符串做转译或链接等操作 …

ddpm和ddim小记

前面分析了DDPM和DDIM,但是仍然感觉对其理解不是和透彻,最近又学习了下,简单记录一下进一步的理解。为了方便理解,这里直接以两个像素的灰度图像为例。前面讲过无论是DDPM还是DDIM,他们的训练过程都是一样的&#xff0…

一套采用JAVA语言开发的数字化产科管理平台源码,自主知识产权,三甲综合医院应用案例,系统稳定运行,全套源码交付。

一套采用JAVA语言开发的一套数字化产科管理平台源码,自主知识产权,三甲综合医院应用案例,系统稳定运行。全套源码交付。 数字化产科管理平台源码技术栈: 技术架构:前后端分离 开发语言:Java 开发工具…