网络协议-对称/非对称加密,数字签名,证书

时间:2021-6-7 作者:qvyue

HTTP协议的安全问题

  • HTTP 协议默认是采取明文传输的,因此会有很大安全隐患
    • 常见的提高安全性方法是:对通信内容进行加密后,再传输
  • 常见的加密方式有
    • 不可逆
      • 单向散列函数: MD5 、SHA 等
    • 可逆
      • 对称加密: DES 、3DES 、AES 等
      • 非对称加密: RSA 等
    • 其它
      • 混合密码系统
      • 数字签名
      • 证书

单向散列函数

  • 单向散列函数,可以根据消息内容计算出值

  • 散列值的长度和消息无关,无论是 1bit 、10M 、100G100G,单向散列函数都会计算出固定长度的散列值
    单向散列函数 特点

  • 根据任意长度的消息,计算出固定散列值

  • 计算速度快,能出散列值

  • 消息不同,散列值也不同,只要内容一变化,散列值就不同,可通过比对前后两次的散列值,来确定数据是否被更改

  • 具备单向性

  • 单向散列函数,也被称为,消息摘要函数, 哈希函数

  • 输出的散列值,也被称为, 消息摘要,指纹

常见的几种单向散列函数

  • MD4, MD5: 产生128bit的散列值, MD就是Message Digest的缩写
  • SHA-1 产生160bit的散列值
  • SHA-2: SHA-256 , SHA-384 SHA-5I 12 散列值长分别是256bit, 384bit, 512bit
  • SHA-3

单向散列函数通常的应用

  • 密码加密

对称加密

  • 可逆的,加密和解密用的密码是相同的

    网络协议-对称/非对称加密,数字签名,证书
    对称加密 – 摘自MJ网络协议
  • 常见的对称加密算法有
    • DES
    • 3DES
    • AES

密钥配送问题

  • 在发送密钥过程中,可能会被窃取密码,导致其他方拿到密钥,也能解码数据
  • 解决办法
    • 事先共享密码
    • 密钥分配中心
    • 密钥交换
    • 采用非对称加密

非对称加密(公钥密码)

  • 可逆的,加密的密钥和解密的密钥是不同的

    网络协议-对称/非对称加密,数字签名,证书
    非对称加密 – 摘自MJ网络协议
  • 在非对称加密 中,密钥分为 加密密钥 、解密密钥2种,它们并不是同一个密钥
  • 加密钥:一般是公开的,因此该称为 公钥
  • 因此,非对称加密 也被称为 公钥密码
  • 解密钥:由消息接收者自己保管的,不能公开因此也称为私钥
  • 公钥和私是一对应的,不能单独生成
     一对公钥和私统称为密钥对
     由公钥加密的明文,必须使用与该公钥对应私钥才能解密
     由私钥加密的明文,必须使用与该私钥对应公才能解密

解决密钥配送问题

  • 由消息的接收者,生成一对公钥,私钥
  • 将公钥发给消息的送者
  • 消息的发送者使用公钥加密
  • 非对称加密 的加密解速度比 对称加密 要慢
  • RSA是目前广泛使用的非对称加密算法
网络协议-对称/非对称加密,数字签名,证书
解决密钥配送问题 – 摘自MJ网络协议

数字签名

  • 在数字签名技术中,有以下2种行为
    • 生成签名
    • 由消息的发送者完成,通过“签名密钥”生
  • 验证签名
    • 消息的接收者完成,通过“验证密钥”
  • 如何能保证这个签名是消息发送者自己的?
    • 用消息发送者的私钥进行验证
网络协议-对称/非对称加密,数字签名,证书
数字签名

网络协议-对称/非对称加密,数字签名,证书
数字签名
  • 如果有人篡改了消息内容或签名,会是什么结果?
    • 签名验证失败,明内容被篡改了
  • 数字签名不能保证机密性?
    • 数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没被篡改
  • 数字签名的作用
    • 确认消息的完整性
    • 识别消息是否被篡改
    • 防止消息发送人否认
  • 非对称加密 中,任何人都可以使用公钥进行加密
  • 数字签名 中,任何人都可以使用公钥验证签名
  • 数字签名 ,其实就是将 非对称加密 反过来使用
  • 既然是加密,那肯定不希望别人知道我的消息所以只有才能解
    • 公钥 负责加密, 私钥 负责解密
  • 既然是签名,那肯定不希望有人冒充我发消息所以只才能
    • 私钥负责签名, 公钥负责验签

公钥的合法性

  • 如果遭遇了中间人攻击,那么
    • 公钥将可能是伪造的
  • 如何验证公钥的合法性?
    • 证书
网络协议-对称/非对称加密,数字签名,证书
公钥的合法性

证书(Certificate )

  • 密码学中的证书,全称叫 公钥证书 (PublicPublic-key Certificate,PKC)
    • 里面有姓名、邮箱等个人信息,以及此的公钥
    • 并由认证机构( Certificate Authority,CA )施加数字签名
  • CA 就是能够认定“公钥确实属于此人”并生成数字签名的个或者组织
    • 有国际性组织、政府设立的
    • 有通过提供认证服务来盈利的企业
    • 个人也可以成立认证机构

证书 – 使用

网络协议-对称/非对称加密,数字签名,证书
证书的使用
  • 各大 CA 的公钥,默认已经内置在浏览器和操作系统中。所以当证书下载下来后,操作系统会验证使用本地的公钥验证签名的合法性,签名合法,说明证书中的公钥没得问题
网络协议-对称/非对称加密,数字签名,证书
证书 – 注册下载
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。