zoukankan      html  css  js  c++  java
  • HTTPS(一)基础及连接建立

    一、 对称加密和非对称加密
    1、对称加密
    1)对称加密是一把密钥,这把密钥可以加密明文,也可以解密加密后的密文,
    2)常见的对称加密算法有AES、DES、RC4,目前最常用的是AES。

    2、非对称加密
    1)非对称加密是两把密钥,分别是公钥和私钥,公钥加密的密文只有相对应的私钥才能解密,私钥加密的内容也只有相对应的公钥才能解密,其中公钥是公开的,私钥是自己保存,不能公开,
    2)常见的非对称加密算法有RSA和ECC(椭圆曲线算法)。
    3)相比对称加密,非对称加密的加解密效率比较低

    二、 SSL和TSL
    1、SSL(Secure Socket Layer)是Netscape开发的专门用户保护Web通讯的,最新版本为3.0
    2、TLS(Transport Layer Security),SSL的后续版本,是IETF制定的一种新的协议

    三、 HTTP和HTTPS
    HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议就是安全的HTTP,我们知道HTTP是运行在TCP层之上的,HTTPS在HTTP层和TCP层之间加了一个SSL层,SSL向上提供加密和解密的服务。

    四、 HTTPS的作用

    • 验证服务方身份,如我访问 google.com 的时候连的确实就是谷歌服务器
    • 防止数据被劫持,例如有些运营商会给 http 的页面插入广告
    • 防止敏感数据被窃取篡改等

    五、 HTTPS连接建立
    HTTPS建立连接的过程就是使用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列(哈希)函数验证信息的完整性
    现在比较常用的握手协议使用DH握手,握手流程图如下:

     

    握手过程:
    1、客户端向服务端发送Client Hello,告诉服务端,客户端支持的协议版本,加密套件等信息。
    2、服务端收到响应,选择双方都支持的协议,套件,向客户端发送Server Hello。
    3、服务端将自己的证书发送到客户端(Certificate),客户端对证书合法性进行验证。
    4、服务器利用私钥将客户端随机数,服务器随机数,服务器DH参数签名,生成服务器签名。向客户端发送服务器DH参数以及服务器签名(Server Key Exchange)。
    5、客户端向服务端发送客户端DH参数(Client Key Exchange)。
    6、客户端利用公钥验证服务器签名,客户端与服务器各自利用服务端DH参数、客户端DH参数生成预主密钥,再通过预主密钥、客户端随机数、服务端随机数生成主密钥(会话密钥)。最后握手完成,所有的消息都通过主密钥加密。

    六、 HTTPS抓包分析
    1、 Client Hello

     2、 Server Hello

    3、 certificate
    客户端收到证书信息后,会验证证书的合法性

     4、Server Key Exchange

     

    5、Server Hello Done
    Sever Hello Done 消息表明服务器已经将所有预计的握手消息发送完毕。在此之后,服务器会等待客户端发送消息。

    6、Client Key Exchange

    7、Change Cipher Spec
    Change Cipher Spec 消息表明发送端已取得用以生成连接参数的足够信息,已生成加密密钥(主密钥),并且将切换到加密模式。客户端和服务器在条件成熟是会发送这个消息。

    8、Encrypted Handshake Message
    Encrypted Handshake Message 这是由客户端服务器之间协商的算法和密钥保护的第一个消息。它意味着握手已经完成。消息内容将加密,以便双发可以安全地交换验证整个握手完整性所需要的数据。

  • 相关阅读:
    [转]Annotation手册
    [转]十款非主流操作系统介绍
    关于构造函数及游离块的顺序
    如何申请Google地图API Key
    “请求响应”模式和“事件驱动”模式
    【引用】Linux中硬链接和软链接的区别和联系
    [转]Java代码的静态编译和动态编译中的问题比较
    [转]Java中常用设计模式总结
    GIS名词解释
    [转]比较JSF、Spring MVC、Stripes、Struts2、Tapestry、Wicket
  • 原文地址:https://www.cnblogs.com/guoxianqi2020/p/13813813.html
Copyright © 2011-2022 走看看