| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【计算机网络】数字签名和数字认证 -> 正文阅读 |
|
[网络协议]【计算机网络】数字签名和数字认证 |
写在前面要不是学习https,咱可能也不会了解到这~ 大家可以先看下这篇加密方式👉常见的加密方式,不然可能对本文章充满疑惑~ 一、数字签名1.介绍签名是什么, 我们先把签名带入自己的日常生活中,签名用来保证所承诺的一些内容,在法律上,具有不可抵赖性~【一般是指签合同啦】 那么,网络中要什么签名???
这个完整性,一般是指的你发送的报文是不能被修改的~ 2.如何实现签名这就涉及到了加密技术,我们知道非对称加密是公钥加密私钥解密。数字签名也用到了对称加密技术。 具体是如何实现的,接着来看吧: 🎈1.首先Sender对要发送的文件,经过哈希函数的处理形成一个数据的摘要 🎈2.用自己手里的私钥对摘要进行加密,然后加自己的公钥,源文件,和加密后的摘要发送到Receiver 🎈3.Reciver用收到的公钥解密出原文的摘要,对接收的文件进行哈希函数处理,形成一个文件摘要,比较这两个文件摘要是否相同,不同,则说明源文件被修改,丢弃即可… 看到这里,是不是大概的了解了数字签名是如何实现的了~ 其实,这里用公钥解密的过程不叫解密,而是较验证会更贴合场景一点。 一般我们都会称为 二、数字认证1.引入通过数字签名技术,我们是实现了数据的完整性,但是,在传输过程中,如果有人伪造了公钥怎么办?如果判断公钥就是发送方的公钥呢? 于是我们引入了数字认证技术 2.介绍数字认证就是用来标识通信双方的身份的~,和身份证的作用一样 如何实现数字认证呢? 目前主要采用的是选择相信第三方机构,一般我们称为CA。那又是如何实现的? 流程: 🎈1.Sender在发送数据前,先将自己的公钥交给CA,CA用自己的私钥对于Sender的公钥进行加密,形成属于Sender的公钥的签名 🎈2.Sender将自己的公钥,原数据,以及原数据的摘要发送到Receiver 🎈3.Receiver从CA获取CA的公钥,验证Sender的公钥是否被替换,接着再验证数据摘要是否被修改 聪明的你一定看出来,其实就是CA使用数字签名技术,对于公钥进行签名。那么CA就一定安全吗,CA的公钥也有被替换的可能性啊 好了,本次分享就到这里,学完这些,我们就可以看到https的安全通信是如何实现了,那么我们下次再见~ |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:36:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |