SSL证书

双向 SSL 认证(也被称为“相互认证”,或“使用客户端证书的 TLS/SSL”)是指双方通过校验彼此提供的数字证书来进行认证,以便双方都可以确认对方的身份。

  • 术语

  • TLS 与 SSL

    TLS 的前身是 SSL。其是一个用于在应用程序之间进行通信时保障隐私的协议。除非另有说明,本文中认为 TLS 与 SSL 是等价的。

    证书(cert)

    包含了提供者信息等一些额外元数据的公钥/私钥对的公钥部分。它可以被自由的提供给任何人。

    私钥

    一个私钥可以验证与其对应的用来对数据进行加密的证书和公钥。其决不公开提供。

    证书颁发机构(CA)

    一个颁发数字证书的公司。对于 SSL/TLS 证书,也有少数供应商(例如 Symantec/Versign/Thawte、Comodo、GoDaddy)的证书囊括了大多数浏览器和操作系统。它们的目的是成为一个“可信的第三方”。

    证书签名请求(CSR)

    用私钥生成的一个文件。一个 CSR 可以向一个 CA 发送签名请求。CA 则使用其私钥对 CSR 进行数字签名,并创建一个已签名的证书。然后浏览器可以使用 CA 提供的证书来验证新的证书是否已被 CA 批准。

    X.509

    用于描述证书的格式和用法的一个规范。

  • SSL认证

    SSL实际上就是在一个web服务器与浏览器之间建立加密链接的标准安全技术。一般来说,一个浏览器(客户端)建立一个SSL连接到一个安全的web站点,它只检查该服务器证书。该浏览器一方面依靠其本身,或者提供已经被指定为根证书的列表证书以及受信任的CAs的操作系统。

    单向SSL认证(服务器->客户端)

    客户端与服务器使用9个握手消息,以及通过优先建立加密通道来进行消息交换。

      1.客户端发送ClientHello消息来提议SSL选项。

      2.服务器通过响应ServerHello消息来选择SSL选项。

      3.服务器发送Certificate消息,其中包括该服务器证书。

      4.客户端通过ServerHelloDone消息,来判断其部分谈判.

      5.客户端在其ClientKeyExchange消息之中发送会话密匙信息(加密服务器公匙)

      6.客户端通过发送ChangeCipherSpec消息来激活所有发送的未来消息的谈判选项。

      7。客户端通过发送Finished消息,让服务器检查新激活的选项。

      8.客户端通过发送ChangeCipherSpec消息来激活所有发送未来消息的谈判选项。

      9.服务器发送Finished消息,让客户端检查新激活的选项。

    双向SSL认证(服务器<->客户端)

     客户端与服务器使用12个握手消息,以及优先建立加密通道来进行消息交换:

      

      1.客户端发送ClientHello消息来提议SSL选项。

      2.服务器通过响应ServerHello消息来选择SSL选项。

      3.服务器发送Certificate消息,其中包括该服务器证书。

      4.客户端通过ServerHelloDone消息,来判断其部分谈判.

      5.客户端在其ClientKeyExchange消息之中发送会话密匙信息(加密服务器公匙)

      6.客户端通过发送ChangeCipherSpec消息来激活所有发送的未来消息的谈判选项。

      7。客户端通过发送Finished消息,让服务器检查新激活的选项。

      8.客户端通过发送ChangeCipherSpec消息来激活所有发送未来消息的谈判选项。

      9.服务器发送Finished消息,让客户端检查新激活的选项。
posted @ 2016-12-15 09:17  SarahLiu77  阅读(266)  评论(0编辑  收藏  举报