# 数字签名&数字证书
数字签名&数字证书
参考资料:
数字签名是什么?-阮一峰的网络日志
数字签名和数字证书究竟是什么?知乎-chi
数字签名
A有一把公钥和一把私钥,私钥为自己所有,公钥在数字证书上,想给A发送信息的人B从A的数字证书上获取A的公钥。B的信息写完用A的公钥加密发送给A,A用私钥解密就看到了信件内容。这里要强调的是,只要A的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
私钥加密的数据只有公钥才能解密
A回信,使用数字签名,写完使用hash函数生成信件的摘要,再用私钥对摘要加密,生成数字签名,将数字签名附在信件下面,一起发给B。B收到后取下数字签名,使用A的公钥解密,成功解码得到摘要,表名数字签名来自A。然后对信件本身使用hash函数得到自己的hash信息摘要,与解码数字签名得到的债要进行对比,如果相同表名信息时完整的,没有被篡改,反之则确认信息被破坏了
有了数字证书之后,A给B发送信息,在签名的同时再附上数字证书
数字证书
假设现在有一个数字证书的权威认证中心,这个中心会给Bob创建一个数字证书,这个数字证书包括了Bob的一些信息以及Bob的公钥。
想要跟Bob进行通信的人,就可以检查Bob的数字证书,然后向权威的数字证书的认证中心,去认证这是不是真实的Bob的数字证书,如果是,就可以从数字证书中获取到Bob的公钥,然后进行安全的通信。
就像现实生活中一样,我们不管进行任何涉及到资金或者安全问题的时候,都需要出示自己的身份证,并且对方会验证你的身份证的真假,也就是说,一个持有假身份证的人,或者没有身份信息的人是获取不了他人的信任的。同理,在网络通信中,如果在数字证书的认证中心中查询不到信息,那么就说明这样的通信方是不安全的,是不值得信任的!另一方面,数字证书除了解决了公钥分发和身份认证的问题,还加强了安全性。
数字证书的实例(https协议)
- 这个协议主要用于网页加密
服务器用自己的私钥加密网页之后,连同本身的数字证书一起发送给客户端
客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。
如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。
如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。
如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。
# 数字签名&数字证书的更多相关文章
- RSA 非对称加密 数字签名 数字证书
什么是RSA加密算法 RSA加密算法是一种非对称加密算法,算法的数学基础是极大数分解难题. RSA加密算法的强度也就是极大数分解的难度,目前700多位(二进制)的数字已经可以破解,1024位认为是比较 ...
- 通俗理解数字签名,数字证书和https
最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不能被更 ...
- 转!!通俗理解数字加密,数字签名,数字证书和https
原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...
- 通俗理解数字签名,ssl数字证书和https
前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不 ...
- java-信息安全(四)-数据签名、数字证书
概述 信息安全基本概念: 数字签名 数字证书 数字签名 数字签名(又称公钥数字签名.电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.一套数字签名 ...
- 数字证书原理(ssl,https)
https://blog.csdn.net/qq_34115899/article/details/81298284 关于私钥公钥数字签名数字证书.https.RSA的一些讲解 http://www. ...
- 公私钥 SSH 数字证书
公私钥 SSH 数字证书 小菜鸟今天买了华为云一台服务器,在使用公私钥远程登录服务器的时候,忘记了相关公钥私钥的原理和一些应用了,今天复习一波做个记录. 相关概念 公钥:公钥用来给数据加密,用公钥加密 ...
- C#使用BouncyCastle生成PKCS#12数字证书
背景 生成数字证书用于PDF文档数字签名 数字证书需要考虑环境兼容性,如linux.windows 网上资料不全或版本多样 本文章主要介绍了在C#中使用BouncyCastle生成PKCS#12个人信 ...
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
转自http://blog.csdn.net/bluishglc/article/details/7585965 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统 ...
随机推荐
- codeforces340C
Tourist Problem CodeForces - 340C Iahub is a big fan of tourists. He wants to become a tourist himse ...
- [CSP-S模拟测试]:那一天她里我而去(堆优化Dijkstra)
题目传送门(内部题3) 输入格式 每个测试点有多组测试数据.第一行有一个正整数T表示数据组数.接下来对于每组数据,第一行有两个正整数n,m分别代表图的点数和边数.接下来有m行,每行三个整数u,v,d表 ...
- Spring Cloud Feign声明式服务调用(转载)+遇到的问题
转载:原文 总结: 1.pom添加依赖 2.application中填写正确的eureka配置 3.启动项中增加注解 @EnableFeignClients 4.填写正确的调用接口 通过原文使用Fei ...
- GIS面积计算问题
好长时间不更新了,今天说点干货,项目用到的. 1.项目中要用到计算面积的,根据火星坐标: 2.百度找了各种面积计算,google了半天,也没发现那个比较准确: 直接说干货吧.咱也高大上一会,用 Arc ...
- [转]springboot启动原理
参考文章:https://www.jianshu.com/p/ef6f0c0de38f
- Oracle 字段监控 ( column monitor)
Oracle 字段监控 ( column monitor) */--> Oracle 字段监控 ( column monitor) Table of Contents 1. 开启与关闭 2. 字 ...
- NDk的目录
* docs : 开发文档* build: linux下编译的批处理命令* platform : 某种平台下编译需要的头文件和函数库* prebuild : 预编译的工具* sample: 实例代码* ...
- Linux内存简单汇总
Linux内存主要用来存储系统和应用程序的指令,数据,缓存等 一,内存映射 1,内核给每个进程提供一个独立的虚拟机地址空间,并且这个地址空间是连续的 2,虚拟地址空间内部又被分为内核空间和用户空间 3 ...
- TCP/IP及内核参数优化调优(转)
Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等.如下配置是写在sysctl.conf ...
- linux卸载Python3
一.卸载Python3 1.卸载python3 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps 卸载pyhton3 2.whereis ...