数字签名与数字证书是什么
目录
- 概述
- 数字签名
- 数字签名是什么
- 数字签名的大概流程
- 发件人
- 收件人
- 签名的安全风险
- 数字证书
- 为什么需要数字证书
- 数字证书是什么
- 数字证书的应用场景
- 使用流程
概述
了解数字签名和数字证书之前,读者应自行了解一下加密分类,各个分类的概念。
做开发的时候不会刻意去了解数字签名和数字证书,大概就知道是两个加密的东西,但具体是什么就不知道了。但在做安全的时候,就必须要了解这两个玩意了,因为现在主流的应用都是Web,Web为了安全通信基本都是加密交互的,不了解这些做安全只会寸步难行呀。
签名、证书的使用场景:
- Https协议
- Android签名
- 客户端与服务端信息交互
数字签名
数字签名是基于非对称加密算法;
数字签名是什么
原理和写信时后面写个署名是一样的效果,标记这封信是谁写的。主要(唯一)作用就是收件方能确认发件方是自己人;
数字签名的大概流程
签名的过程可以想象成发件人和收件人的处理流程,也是一个双向的动作,可以大致理解成下图流程:
发件人
发送签名的过程
输入:
- 原文
- 私钥
输出:签名值
- 将原文做 HASH
- 将 HASH 做私密加密,结果就是签名值
发送给收件人的东西:
- 签名值
- 原文
收件人
验证签名的过程
收件人收到的东西:
- 签名值
- 原文
输入:
- 签名值
- 原文
- 公钥
输出:是否验证通过
- 将原文做 Hash1
- 将签名值用公钥解密,获取 Hash2
- 比较 Hash1 和 Hash2,一样则通过
签名的安全风险
- 如果使用的不是非对称加密的强加密算法,那么不管是客户端还是服务端泄露了密钥就非常危险了。
- 使用了非对称,但是SB码农将密钥参与传输,那真是666了。
- 服务端的密钥写死在代码,而不是采用访问接口获取的方式,会导致离职程序员带走密钥。
- 有时候是服务器拥有私钥,客户端拥有公钥。一些业务场景是一个服务器对应多个客户端,多个客户端之间公钥证书能被篡改,那么身份认证也被篡改了。
数字证书
参考:https://blog.51cto.com/11883699/2160032
为什么需要数字证书
为什么要数字证书,需要数字证书就是用来解决上面签名的安全风险第四条,防止客户端的公钥被篡改。
数字证书是什么
数字证书其实就是一些(实力)机构在常用的浏览器、移动系统预先放置好的一些公钥证书。这样就系统默认就有这些公钥了,从一开始就放置了被拦截篡改的机会。
数字证书的应用场景
- Https
- 移动端系统
- 一切使用非对称加密,又怕分发公钥时被劫持的场景
使用流程
先由后端设置的,需要付费找CA证书机构(如阿里),然后在服务器的nginx容器修改配置文件:
# 端口
listen 443 ssl;
# 私钥
ssl_certificate /iyunwen/server/ssl/20180731.cer;
# 公钥
ssl_certificate_key /iyunwen/server/ssl/20180731.key;
# ...
这样做的好处就是,能确保获取到证书没有被劫持修改,只有校验没劫持后,才会取出证书里面的公钥进行加密通信。
移动系统Android也有一个证书管理,安装抓包软件的证书,就能拦截篡改Https了。
但是如果开发者将公钥封装到APP里面,多一次校验,那么在证书管理里面安装证书,这个方法就无效了,需要花点时间逆向了。
转载于:https://www.cnblogs.com/mysticbinary/articles/10645651.html
数字签名与数字证书是什么相关推荐
- 数字签名,数字证书,证书链原理
来源:数字签名,数字证书,证书链原理(图文详解)_Ruby丶彬的博客-CSDN博客_证书链验证原理 数字签名,数字证书,加密简述 数字签名:谈及数字签名,就如小时候老师叫把卷子或者作业带回去给家长签字 ...
- 加密、数字签名和数字证书
加密.数字签名和数字证书 1 对称加密 对称加密算法中,加密和解密使用的是同一个秘钥,所以秘钥的保护是非常重要的,对称加密和解密过程如下图: 对称算法加密过程 对称算法解密过程 尽管对称秘钥 ...
- 公钥、私钥、数字签名和数字证书的概念及解密
http协议的数据传递是明文的, 也就是从服务器传递给浏览器的内容是明文的, 这个信息如果被截取了,内容也就完全暴露了.所以大部分的互联网网站和应用使用的基本都是https协议,在申请和配置网站的ht ...
- 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介
文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...
- 【转】数字签名与数字证书
原文地址:http://blog.csdn.net/oscar999/article/details/9364101 前言 先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将报文按双方约定的 ...
- 数字签名与数字证书技术简介(一)
数字签名.数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛.其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解. 对称加密.非对称加密 让我们通过一个例子开始:我 ...
- PKI(公、私钥加密,数字签名、数字证书)技术理解
PKI(公.私钥加密,数字签名.数字证书) 1.PKI概述 名称:Public Key Infrastructure 公钥基础设施 作用:通过加密技术和数字签名保证信息的安全 组成:公钥加密技术.数 ...
- 非对称加密(RSA、数字签名、数字证书)
非对称加密.数字签名.数字证书的参考文章 1. 什么是非对称加密 (1)公钥和私钥成对出现 (2)公钥加密.私钥解密,私钥加密.公钥解密 (3)公钥一般对外公开,私钥保密 (4)主要用于防止通信数据被 ...
- 安装软件和驱动程序需要微软数字签名无法安装?数字签名和数字证书区别
1.安装软件和驱动程序需要微软数字签名无法安装 方法一: 1.以Win10为例,Win7同样适用,首先我们在键盘上同时按下"Windows键"+"R键",调出运 ...
最新文章
- Java学习总结:32(Runtime类)
- 简明 Vim 练级攻略
- PHP Date()函数详细参数
- linux下查看目录下某种文件类型累计的代码行数
- linux kernel内存管理学习篇
- 7.利用级数展开式计算求cos(x) 的近似值(精度为10-6)。
- 银行利率涨了,定期存款有必要取出再存吗?
- 检测Java Web应用程序而无需修改其源代码
- 【DFS】HDU 1364 POJ 1071 Illusive Chase
- thinkphp回调的php调用db类,请问thinkphp中model类自动完成功能 回调函数能不能获取其他字段的值?...
- 杭电oj 1002 c++版本
- java 内存分配实例_java学习(四) —— 内存分配浅析
- Python抽象类(abc模块)
- eclipse+java类不报错_eclipse,代码中有错误,项目或者java类中却不显示红叉
- MySQL 之 Metadata Locking 研究
- HTML资源嗅探,scrapy-2 嗅探网站,解析HTML
- 领域驱动设计(Domain Driven Design,DDD)
- 死机后硬关机造成oracle故障,电脑死机故障汇总:各种死机现象分析
- 计算机视觉的终极目标
- 解决MAC上网速度慢的原因
热门文章
- DELPHI 10.2(TOKYO) FOR LINUX的兼容性说明
- SQL Server 数据库的维护(一)__存储过程(procedure)
- 我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
- CSU 1328: 近似回文词
- python统计excel中重复数据_EXCEL公式解读:统计不重复个数
- python运行mcmc为何老出错_python – 使用pyMCMC / pyMC对数据/观察结果设置非线性函数...
- bde oracle 商友的流程_bde oracle 商友的流程_BDE动态连接Oracle数据库
- php扩展swoole安装,php 安装swoole扩展
- C++知识点41——运算符的重载概念与分数类实现(下)
- python里的体格是啥r_numpy.数组形状(R,1)和(R,)之间的差异