SSL中的CA证书

目录

一、CA概述

二、数据加密

三、身份认证


一、CA概述

        SSL如何保证网络通信的安全和数据的完整性呢?就是采用了两种手段:身份认证数据加密。身份认证就需要用到CA证书。

        CA是证书的签发机构,它是公钥基础设施(Public Key Infrastructure,PKI)的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。

        CA 拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

        证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。证书的格式和验证方法普遍遵循X.509国际标准。

二、数据加密

        数字签名:当我们去银行办理业务时,会在业务单上签下自己的名字,这个叫签名。而在网络通信中,签名在网络通讯中的应用称为数字签名,当服务器向客户端发送信息时,会将报文生成报文摘要,同时对报文摘要进行hash计算,得到hash值,然后对hash值进行加密,然后将加密的hash值放置在报文后面,这个加密后的hash值就称为签名。服务器将报文、签名和数字证书一同发送给客户端。客户端收到这些信息后,会首先验证签名,利用签名算法对签名进行解密,得到报文摘要的hash值,然后将得到的报文生成报文摘要并利用签名hash算法生成新的hash值,通过对比这两个hash值是否一致,就能判断信息是否完整,是否是由真正的服务器发送的。可知签名有两个作用确认消息发送方可靠,确认消息完整准确。

        SSL的加密机制:在使用SSL的网络通讯过程中,消息在请求和响应中都是加密传送的。首先要知道加密算法分为两种:对称加密和非对称加密对称加密就是发送双发使用相同的密钥对消息进行加解密,常见的对称加密为DES、3DES,AES等。非对称加密是发送双方各自拥有一对公钥私钥,其中公钥是公开的,私钥是保密的。当发送方向接收方发送消息时,发送方利用接收方的公钥对消息进行加密,接收方收到消息后,利用自己的私钥解密就能得到消息的明文。其中非对称加密方法有RSA、Elgamal、ECC等。此处只是简单了说明了这两种加密机制的过程,若要深入理解它们的原理、过程请网上搜索相应的资料。

三、身份认证

        网络通讯中是怎么利用CA证书进行身份认证的?客户端与服务端需要经过一个握手的过程才能完成身份认证,建立一个安全的连接。握手的过程如下:

        客户端访问服务器(比如:https://www.),发送ssl版本、客户端支持的加密算法、随机数等消息。

        服务器向客户端发送ssl版本、随机数、加密算法、证书(证书出现了)等消息。

        客户端收到消息后,判断证书是否可信(如何判断可信,看下文介绍),若可信,则继续通信,发送消息包括:向服务器发送一个随机数,从证书中获取服务器端的公钥,对随机数加密;编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送;客户端握手结束通知。

        服务器端对数据解密得到随机数,发送消息:编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送。

        以上就是整个握手的过程,在第三步实际上就完成了身份的认证,第四、五步是进行密钥的商定,因为非对称加密算法对数据加密非常慢,效率低,而对称加密加密效率很高,因此在整个握手过程要生成一个对称加密密钥,然后数据传输中使用对称加密算法对数据加密。可知ssl整个握手过程包括身份认证、密钥商定。

        CA认证链:根证书在证书验证中极其重要,而且,根证书是无条件信任的,只要我们将根证书安装上,就说明我们对根证书是信任的,若终端信任根证书,则信任根证书生成的其他证书。终端没有安装相应https证书则不能访问https网站。

浏览器CA认证流程:

  1. 客户端向一个需要https访问的网站发起请求。
  2. 服务器将证书发送给客户端进行校验。证书里面包含了其公钥。这里要特别说一下客户端到底 如何来校验对方发过来的数字证书是否有效。
首先在本地电脑寻找是否有这个服务器证书上的ca机构的根证书。如果有继续下一步,如果没有弹出警告。
        使用ca机构根证书的公钥对服务器证书的指纹和指纹算法进行解密。 得到指纹算法之后,拿着这个指纹算法对服务器证书的摘要进行计算得到指纹。
        将计算出的指纹和从服务器证书中解密出的指纹对比看是否一样如果一样则通过认证。

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

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

相关文章

【触想智能】工业一体机和普通电脑的区别是什么?

工业一体机和普通电脑的区别是什么,工业一体机可以当普通电脑一样使用吗? 要想了解工业一体机和普通电脑的区别是什么?我们首先来看看工业一体机是什么,它跟普通电脑有哪些相似的地方?下面小编就为大家来详细介绍一下。 在工作原理上,工业…

【华为OD机试】迷宫问题(深度优先搜索—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

iOS-获取Xcode工程中文件的路径

1、使用Create folder references的Add folders的方式把文件或者文件夹拖到Xcode工程中 拖入时的设置参考下图 注意拖入到工程之后文件夹是蓝色的(Xcode10.1环境) 2、代码具体实现: 使用NSBundle的API,然后拼接具体路径即可 NS…

云计算(五)—— OpenStack基础环境配置与API使用

OpenStack基础环境配置与API使用 项目实训一 【实训题目】 使用cURL命令获取实例列表 【实训目的】 理解OpenStack的身份认证和API请求流程。 【实训准备】 (1)复习OpenStack的认证与API请求流程的相关内容。 (2)熟悉cURL…

【Linux】重定向与管道(十)

文章目录 输出重定向 >追加输出重定向 >>输入重定向 <管道符 |&#xff08;重要&#xff09; 在Linux中&#xff0c;标准输入&#xff08;stdin&#xff09;、标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;是与终端和程序之…

【力扣一刷】代码随想录day32(贪心算法part2:122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II )

目录 【122.买卖股票的最佳时机II】中等题 方法一 贪心算法 方法二 动态规划 【55. 跳跃游戏】中等题 【尝试】 递归 &#xff08;超时&#xff09; 方法 贪心算法 【45.跳跃游戏II】中等题 方法 贪心算法 【122.买卖股票的最佳时机II】中等题&#xff08;偏简单&#xff0…

神州数码命令:路由器配置

路由器配置 一、路由器基本配置 1、进入特权模式&#xff1a; Router>en2、进入全局配置模式&#xff1a; Router#config3、定义路由器的名字为DCR &#xff1a; Router(Config)#hostname DCR4、特权用户的口令&#xff1a; DCR (Config)#enable password 1234565、启…

杰理AC695N_SDK里面的hid_user.c测试通过蓝牙hid通道控制手机屏幕滑动或者音量增减

该文件sdk的hid_user.c的最下面有这样的描述,告诉开发者应该怎么打开自定义的蓝牙hid报告描述符 // 用户修改成自定义的描述符说明 // 1、在void bredr_handle_register();中调用user_hid_descriptor_init; // 2、user_hid_sdp_init换成自己的表 // 3、文件上方HID_CHANGE_DES…

Java的异常机制

异常机制 三种类型 检查型异常&#xff1a;程序员无法预见的运行时异常&#xff1a;在编译时会被忽略错误ERROR&#xff1a;错误在代码中被忽略&#xff0c;在编译时检查不到 异常处理机制 抛出异常捕获异常异常处理的五个关键字&#xff1a;try&#xff0c;catch&#xff…

SpringClound Eureka 1.9.12 版本源码解析

Eureka启动&#xff0c;原生启动与SpringCloudEureka启动异同 我们先看看作为原生的EurekaServer启动的过程&#xff0c;作为一个Servlet应用&#xff0c;他的启动入口就是他的主要ServletContextListener类&#xff08;这里是EurekaBootStrap&#xff09;的contextInitialize…

质因数个数(acwing,蓝桥杯)

题目描述&#xff1a; 给定正整数 n&#xff0c;请问有多少个质数是 n 的约数。 输入格式&#xff1a; 输入的第一行包含一个整数 n。 输出格式&#xff1a; 输出一个整数&#xff0c;表示 n 的质数约数个数。 数据范围&#xff1a; 对于 30% 的评测用例&#xff0c;1≤…

CasaOS玩客云部署AList+Aria2结合内网穿透实现公网离线下载文件至网盘

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-cdH8fnSF05FmvunX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

Day34|贪心算法part03:1005.K次取反后最大化的数组和、134. 加油站、135.分发糖果

1005. K次取反后最大化的数组和 按照“绝对值”从大到小排序&#xff0c;如果数字小于0将其翻转&#xff0c;最后检查k有没有用完&#xff0c;没用完就反复翻转绝对值最小的数。 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {int sum 0;nums …

Circuits--Sequential--More circuits

1. Rule 90 module top_module(input clk,input load,input [511:0] data,output [511:0] q ); always(posedge clk)beginif(load)q<data;elsebeginq<{1b0,q[511:1]}^{q[510:0],1b0}; //左邻居矩阵^右邻居矩阵endendendmodule 2. Rule110 module top_module(input clk,…

数据仓库发展历史与架构演进

从1990年代Bill Inmon提出数据仓库概念后经过四十多的发展&#xff0c;经历了早期的PC时代、互联网时代、移动互联网时代再到当前的云计算时代&#xff0c;但是数据仓库的构建目标基本没有变化&#xff0c;都是为了支持企业或者用户的决策分析&#xff0c;包括运营报表、企业营…

深入理解Python中的JSON处理

目录 一、引言 二、JSON简介 2.1 基本规则&#xff1a; 2.2 写法示例&#xff1a; 对象&#xff1a; 数组 数值 字符串 布尔值和null&#xff1a; 三、Python中的JSON 3.1 序列化和反序列&#xff1a; 3.2 Python json模块概览 3.3 读取JSON数据 3.4 写入JSON数据…

MYSQL 5.7重置root密码

Mysql 5.7重置root密码 如果您忘记了MySQL 5.7的root密码&#xff0c;可以通过以下步骤重置&#xff1a; 停止MySQL服务。在命令行中输入以下命令&#xff1a; systemctl stop mysqld启动MySQL服务并跳过授权表。在命令行中输入以下命令&#xff1a; mysqld_safe --skip-gra…

前端小白的学习之路(Vue2 一)

提示&#xff1a;初学vue,vue2好上手一点&#xff0c;记录笔记&#xff1a;vue的概念,声明式编程与命令式编程的区别&#xff0c;vue的基本使用&#xff0c;模板语法&#xff0c;常用指令 目录 一、什么是vue 二、声明式编程与命令式编程 1.命令式编程 2.声明式编程 三、v…

聚类分析 | 聚类有效性评价指标外部NMI(MATLAB)

指标解释 聚类有效性评价指标中的外部NMI(Normalized Mutual Information,归一化互信息)是一种常见的外部有效性指标,用于评估聚类结果与真实标签之间的相似度。NMI从信息论的角度出发,衡量两个聚类结果的共享信息量。 NMI的计算基于聚类结果和真实标签之间的互信息以及…

Vue.nextTick() 使用场景及实现原理

Vue.nextTick() 基本使用 作用&#xff1a; 等待下一次 DOM 更新刷新的工具方法。 为什么需要用到Vue.nextTick()&#xff1f; 当你在 Vue 中更改响应式状态时&#xff0c;最终的 DOM 更新并不是同步生效的&#xff0c;而是由 Vue 将它们缓存在一个队列中&#xff0c;直到下一…