SSL/TSL

一、SSL/TSL

  • SSL
    • TLS的前身,由netscape开发的安全协议
  • TLS
    • 与具体的网络传输协议无关
    • 既可以用于HTTP,也可以用于TCP

1.1 加密算法

1.1.1 对称加密

  • 双方使用同一个密钥进行加解密;
  • 加解密速度快,通常在消息发送方需要加密大量数据时使用;

问题:

  • 在第一次与陌生人进行通信时,如何安全的传递密钥

1.1.2 非对称加密(公钥加密)

  • 双方使用不同的密钥进行加解密;
    • 公钥
      • 公开给所有需要与自己通信的对象;
      • 公钥加密的内容只能通过对应的私钥进行解密;
      • 用于内容加密,由内容发送者持有
    • 私钥
      • 个人私密拥有;
      • 私钥加密的内容,任何对应的公钥都能进行解密;
      • 用于表征身份,即产生数字签名
        • 数字签名
          • 对消息内容进行哈希计算,得到hashcode,利用私钥对hashcode进行加密
          • 可以标识身份,因为私钥唯一,公钥与私钥是一对,公钥能解密成功,证明消息的发送方一定是私钥的持有者
          • 可以校验消息的一致性,消息和数字签名一同发送给接收方,如果消息被篡改,hashcode和数字签名中保存的hashcode不一样,数字签名中的hashcode无法修改,否则解密不会成功
  • 加解密速度慢;
  • 公钥可以公开发布,不需要考虑密钥安全传递的问题

问题:

  • 只使用一套公私钥,则只能实现公钥持有者(例如客户端)向私钥持有者(例如服务端)的单向信息加密,私钥持有者(例如服务端)向公钥持有者(例如客户端)发送的信息不安全
  • 虽然公钥可以公开发布,但在与陌生人第一次建立通信时,如何确认收到的公钥是对方发送的,而不是通信被截获之后伪造的。

1.2 数字证书

  • 数字证书
    • 将公钥与私钥持有者的身份信息进行绑定
    • 内容包括:
      • 证书的发布机构
      • 证书的有效期
      • 公钥
      • 证书所有者
      • 指纹算法
        • hash算法等,将证书中的明文内容计算hash值
      • 签名所使用的算法
        • CA认证机构利用自身的私钥对hash值进行加密
      • 指纹
        • 指证书内容的hash值经过CA私钥加密后生成的内容
  • CA(certification authority)
    • 颁发数字证书的权威机构

1.2.1 确认公钥的身份的真实性

  • 数字证书中包含公钥以及公钥发布者的身份信息,且加上了CA的数字签名
  • 将公钥身份真实性的确认问题转化为
    • CA公钥的真实性
      • 内置在操作系统中,受信任的根证书颁发机构
      • 数字证书内容的一致性,未经篡改
    • 公钥身份真实性的确认问题
      • 由CA认证机构完成,并对结果负有法律责任

1.2.2 双向通信的安全性

  • 通信内容采用对称加密
    • 对称加密能实现双向加密,且加密速度快
  • 对称加密中的密钥采用非对称加密方式传递
    • 客户端使用公钥对对称加密中的密钥进行加密,传输给服务端

1.2.3 CA认证过程

  • 服务提供者向CA认证机构注册,得到数字证书
  • 服务提供者在建立第一次通信时将证书下发,客户端进行解密
    • 利用操作系统内置的CA认证机构发布的公钥对证书进行解密得到证书内容的hash值
    • 根据指纹算法将证书内容重新计算一遍hash值并进行比较,确定公钥的真实性

SSL/TSL_第1张图片

1.3 SSL/TSL通信过程

SSL/TSL_第2张图片

  • client向server发送请求;
  • server向client下发CA证书;
  • client比较证书中所有者的信息与正在访问的服务提供者的信息是否一致,确认公钥的身份一致性;
  • client校验证书是否为合法机构颁发,确认公钥的真实性;
  • client生成一个随机值(对称密钥),然后用证书中的公钥对该对称密钥加密;
  • server利用非对称私钥解密client发送的信息,从中得到对称密钥;
  • 之后server和client就可以通过对称密钥进行信息交互。

1.4 IIS中生成自签名证书与SSL绑定

  • 生成自签名证书
    SSL/TSL_第3张图片
  • SSL绑定
    SSL/TSL_第4张图片

你可能感兴趣的:(IIS,ssl,tsl,c#,ca证书,https)