目录

  • 概述
  • 数字签名
    • 数字签名是什么
    • 数字签名的大概流程
      • 发件人
      • 收件人
    • 签名的安全风险
  • 数字证书
    • 为什么需要数字证书
    • 数字证书是什么
    • 数字证书的应用场景
    • 使用流程


概述

了解数字签名和数字证书之前,读者应自行了解一下加密分类,各个分类的概念。

做开发的时候不会刻意去了解数字签名和数字证书,大概就知道是两个加密的东西,但具体是什么就不知道了。但在做安全的时候,就必须要了解这两个玩意了,因为现在主流的应用都是Web,Web为了安全通信基本都是加密交互的,不了解这些做安全只会寸步难行呀。

签名、证书的使用场景:

  • Https协议
  • Android签名
  • 客户端与服务端信息交互

数字签名

数字签名是基于非对称加密算法;

数字签名是什么

原理和写信时后面写个署名是一样的效果,标记这封信是谁写的。主要(唯一)作用就是收件方能确认发件方是自己人;

数字签名的大概流程

签名的过程可以想象成发件人和收件人的处理流程,也是一个双向的动作,可以大致理解成下图流程:

发件人

发送签名的过程

输入:

  • 原文
  • 私钥

输出:签名值

  1. 将原文做 HASH
  2. 将 HASH 做私密加密,结果就是签名值

发送给收件人的东西:

  • 签名值
  • 原文

收件人

验证签名的过程

收件人收到的东西:

  • 签名值
  • 原文

输入:

  • 签名值
  • 原文
  • 公钥

输出:是否验证通过

  1. 将原文做 Hash1
  2. 将签名值用公钥解密,获取 Hash2
  3. 比较 Hash1 和 Hash2,一样则通过

签名的安全风险

  1. 如果使用的不是非对称加密的强加密算法,那么不管是客户端还是服务端泄露了密钥就非常危险了。
  2. 使用了非对称,但是SB码农将密钥参与传输,那真是666了。
  3. 服务端的密钥写死在代码,而不是采用访问接口获取的方式,会导致离职程序员带走密钥。
  4. 有时候是服务器拥有私钥,客户端拥有公钥。一些业务场景是一个服务器对应多个客户端,多个客户端之间公钥证书能被篡改,那么身份认证也被篡改了。

数字证书

参考: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

数字签名与数字证书是什么相关推荐

  1. 数字签名,数字证书,证书链原理

    来源:数字签名,数字证书,证书链原理(图文详解)_Ruby丶彬的博客-CSDN博客_证书链验证原理 数字签名,数字证书,加密简述 数字签名:谈及数字签名,就如小时候老师叫把卷子或者作业带回去给家长签字 ...

  2. 加密、数字签名和数字证书

    加密.数字签名和数字证书 1      对称加密 对称加密算法中,加密和解密使用的是同一个秘钥,所以秘钥的保护是非常重要的,对称加密和解密过程如下图: 对称算法加密过程 对称算法解密过程 尽管对称秘钥 ...

  3. 公钥、私钥、数字签名和数字证书的概念及解密

    http协议的数据传递是明文的, 也就是从服务器传递给浏览器的内容是明文的, 这个信息如果被截取了,内容也就完全暴露了.所以大部分的互联网网站和应用使用的基本都是https协议,在申请和配置网站的ht ...

  4. 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介

    文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...

  5. 【转】数字签名与数字证书

    原文地址:http://blog.csdn.net/oscar999/article/details/9364101 前言 先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将报文按双方约定的 ...

  6. 数字签名与数字证书技术简介(一)

    数字签名.数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛.其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解. 对称加密.非对称加密 让我们通过一个例子开始:我 ...

  7. PKI(公、私钥加密,数字签名、数字证书)技术理解

    PKI(公.私钥加密,数字签名.数字证书) 1.PKI概述 名称:Public Key Infrastructure  公钥基础设施 作用:通过加密技术和数字签名保证信息的安全 组成:公钥加密技术.数 ...

  8. 非对称加密(RSA、数字签名、数字证书)

    非对称加密.数字签名.数字证书的参考文章 1. 什么是非对称加密 (1)公钥和私钥成对出现 (2)公钥加密.私钥解密,私钥加密.公钥解密 (3)公钥一般对外公开,私钥保密 (4)主要用于防止通信数据被 ...

  9. 安装软件和驱动程序需要微软数字签名无法安装?数字签名和数字证书区别

    1.安装软件和驱动程序需要微软数字签名无法安装 方法一: 1.以Win10为例,Win7同样适用,首先我们在键盘上同时按下"Windows键"+"R键",调出运 ...

最新文章

  1. Java学习总结:32(Runtime类)
  2. 简明 Vim 练级攻略
  3. PHP Date()函数详细参数
  4. linux下查看目录下某种文件类型累计的代码行数
  5. linux kernel内存管理学习篇
  6. 7.利用级数展开式计算求cos(x) 的近似值(精度为10-6)。
  7. 银行利率涨了,定期存款有必要取出再存吗?
  8. 检测Java Web应用程序而无需修改其源代码
  9. 【DFS】HDU 1364 POJ 1071 Illusive Chase
  10. thinkphp回调的php调用db类,请问thinkphp中model类自动完成功能 回调函数能不能获取其他字段的值?...
  11. 杭电oj 1002 c++版本
  12. java 内存分配实例_java学习(四) —— 内存分配浅析
  13. Python抽象类(abc模块)
  14. eclipse+java类不报错_eclipse,代码中有错误,项目或者java类中却不显示红叉
  15. MySQL 之 Metadata Locking 研究
  16. HTML资源嗅探,scrapy-2 嗅探网站,解析HTML
  17. 领域驱动设计(Domain Driven Design,DDD)
  18. 死机后硬关机造成oracle故障,电脑死机故障汇总:各种死机现象分析
  19. 计算机视觉的终极目标
  20. 解决MAC上网速度慢的原因

热门文章

  1. DELPHI 10.2(TOKYO) FOR LINUX的兼容性说明
  2. SQL Server 数据库的维护(一)__存储过程(procedure)
  3. 我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
  4. CSU 1328: 近似回文词
  5. python统计excel中重复数据_EXCEL公式解读:统计不重复个数
  6. python运行mcmc为何老出错_python – 使用pyMCMC / pyMC对数据/观察结果设置非线性函数...
  7. bde oracle 商友的流程_bde oracle 商友的流程_BDE动态连接Oracle数据库
  8. php扩展swoole安装,php 安装swoole扩展
  9. C++知识点41——运算符的重载概念与分数类实现(下)
  10. python里的体格是啥r_numpy.数组形状(R,1)和(R,)之间的差异