HTTPS SSL TLS 相关理解

1,在理解 HTTPS SSL TLS 以前先对经常使用的加密方式进行一个简述:算法

  (1),对称加密: 采用一个密钥,对明文进行加密生成密文,相反采用此密钥可对加密后的密文进行解密还原成明文.浏览器

               表明算法有,DES,3DES,AES 等安全

  (2),非对称加密: 公钥加密,私钥解密. 网上有个比喻很形象(公钥比如一把开着的锁头, 私钥比如这把锁头的钥匙全世界就只有一把钥匙,由你保管,服务器

               若要与人通讯,将锁头给别人好了.别人拿到这个锁头将重要信息锁在起来.而后全世界就只有你一我的能打开这个锁)网络

               表明算法有,RSA ,DSA 等.性能

  (3),摘要算法: 即将明文数据经过摘要算法生成一小段(固定长度)密文数据. 但经过密文没法还原程明文,算法不可逆.网站

              一般用来验证实文数据是否完整,是否正确.加密

              表明算法:MD5 ,SHAspa

 

2,思考: 了解上述以后咱们要登陆咱们的支付宝,网银等,要怎样去实现.server

   (1),采用对称加密???  访问, 支付宝,网银等,服务端和客户端双方约定一个密钥. 服务端客户端经过这个密钥进行加密和解密. 

        问题来了: 服务端和客户端怎么去协商密钥 ? 服务端生成密钥而后告知给客户端 ? 或者客户端生成后发送给服务端?

          固然这样行不通:发送过程当中若是被其余人抓到网络包后很容易就看出密钥了.

                       

   (2), 采用非对称加密 ??? , 服务端生成公钥,和私钥.将公钥经过网络传输给客户端,客户端经过公钥将

              账号密码等信息加密 发送给服务端 ???

               问题来了: (1),这个只能单方面客户端发送重要信息给服务端. 若是服务端要发送重要信息给客户端怎么办?

                             (2),答案有人可能想到了服务端和客户端,都各生成一对公钥和私钥, 而后再交换公钥,这不就妥了.

                                  没错这样是能够进行保密传送. 可是这样也带来了性能上的问题.若是是传送大量的数据时.

                                  可能会影响性能.

 (3),采用摘要算法 : 这就更不可能了.摘要算法只能保证数据的正确性和完整性.

 

4,结论:

    经过以上分析.有人可能已经有告终果 : 采用单种的加密方式不能达到目的,若是把他们配合使用不就ok了.

    没错HTTPS ,SSL 就是这样一个东西: 采用 对称加密进行传输加密数据,用非对称加密来交换对称加密所使用的密钥.

    固然为了保证你访问的网站是正确的,即 防止将账号密码等信息交给钓鱼网站. 数字证书应运而生了.

     数字证书确保您是再与一个可信的人(可信的网站)在交流. 是在与一个值得托付终身的人在恋爱.

                            

      如下具体的步骤来源与互联网, 展现HTTPS SSL 等交互流程

  (1). 客户端发起HTTPS请求

  这个没什么好说的,就是用户在浏览器里输入一个https网址,而后链接到server的443端口。

  (2). 服务端的配置

  采用HTTPS协议的服务器必需要有一套数字证书,能够本身制做,也能够向组织申请。区别就是本身颁发的证书须要客户端验证经过,才能够继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。若是对公钥和私钥不太理解,能够想象成一把钥匙和一个锁头,只是全世界只有你一我的有这把钥匙,你能够把锁头给别人,别人能够用这个锁把重要的东西锁起来,而后发给你,由于只有你一我的有这把钥匙,因此只有你才能看到被这把锁锁起来的东西。

  (3). 传送证书

  这个证书其实就是公钥,只是包含了不少信息,如证书的颁发机构,过时时间等等。

  (4). 客户端解析证书

  这部分工做是有客户端的TLS来完成的,首先会验证公钥是否有效,好比颁发机构,过时时间等等,若是发现异常,则会弹出一个警告框,提示证书存在问题。若是证书没有问题,那么就生成一个随机值。而后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,否则看不到被锁住的内容。

  (5). 传送加密信息

  这部分传送的是用证书加密后的随机值,目的就是让服务端获得这个随机值,之后客户端和服务端的通讯就能够经过这个随机值来进行加密解密了。

  (6). 服务段解密信息

  服务端用私钥解密后,获得了客户端传过来的随机值(私钥),而后把内容经过该值进行对称加密。所谓对称加密就是,将信息和私钥经过某种算法混合在一块儿,这样除非知道私钥,否则没法获取内容,而正好客户端和服务端都知道这个私钥,因此只要加密算法够彪悍,私钥够复杂,数据就够安全。

  (7). 传输加密后的信息

  这部分信息是服务段用私钥加密后的信息,能够在客户端被还原。

  (8). 客户端解密信息

  客户端用以前生成的私钥解密服务段传过来的信息,因而获取了解密后的内容。整个过程第三方即便监听到了数据,也一筹莫展。

相关文章
相关标签/搜索