对HTTPS的一些理解

你对HTTPS是怎么理解的?

HTTPS是一个应用于应用层的超文本传输协议,它可以理解是HTTP的基础上加入了SSL层,SSL(安全套接字层层)是HTTPS的安全基础。

你怎么理解SSL

SSL的工作就是对在客户端和服务器端之间来回传递的数据进行加密。

好处: 防止数据信息的泄露,保证了双方传递信息的安全性,还能验证他所访问的网站是否是真实可靠。

关于SSL证书的一些认识:

证书级别: EV(增强型)证书 、 OV(企业型)证书、 .DV(域名型)证书

证书品牌: GeoTrust 、 Symantec、Thawte

HTTPS的工作流程

  • 协商加密算法:浏览器A向服务器B发送浏览器的SSL版本,以及一些可选的非非对称加密算法;B从中选择自己所支持的算法(如RSA),并告知A;

  • 服务器鉴别:服务器B向浏览器A发送包含其RSA公钥的数字证书;A使用该证书的认证机构CA公开发布的RSA公钥对该证书进行验证;

  • 会话**计算:由浏览器A随机产生一个随机数;用服务器B的RSA公钥进行加密后发送给B;双方根据协商的算法产生共享的对称会话**

  • 安全数据传输:双方用会话**加密和解密他们这间传送的数据并验证其完整性。
    对HTTPS的一些理解
    解析:

  1. 浏览器第一次发送的一些可选的加密算法是为什么?

    “非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。

    由于客户端和服务器并不是一对一的方式,为了安全,第个客户与服务器之前都会用不同的对称加密算法;到底用什么对称加密算法呢,在这之前要进行协商,所以使用非对称加密算法进行对称加密算法协商过程

  2. B为什么会有数字证书?

    B作为服务器,是可以提前向CA机构去申请属于他的数字证书的,每个数字证书都会有一个编号。

  3. A客户端本地是怎么去验证B的证书是不是假的?

    答案是证书本身就已经告诉客户端怎么验证证书的真伪。

    也就是证书上写着如何根据证书的内容生成证书编号。客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么说明这个证书是真实的。

    同时,为避免证书编号本身又被调包,所以使用第三方的私钥进行加密。

    浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。

  4. 随机数是用来做什么的呢?

    使用随机数,就是使用随机数来生成对称加密算法。这样就可以做到服务器和客户端每次交互都是新的加密算法、只有在交互的那一该才确定加密算法。 第三者就不知道这个对称加密算法。