• 浅析https


    什么是https

    HTTP + 加密 + 认证 + 完整性保护 = HTTPS

    HTTPS 并非是应用层的一种新协议。只是HTTP通信接口部分用SSL和TLS协议代替而已。HTTPS本质就是身披SSL协议这层外壳的HTTP。

    http 与 https的区别

    1. https需要到CA申请证书。
    2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    3. http默认使用80端口,https默认使用443端口。

    对称加密与非对称加密

    对称加密:对称加密又称为私钥加密,即信息的发送方与接收方使用同一个密钥去加密与解密数据。对称加密的特点是速度快,常用的对称加密算法是DES。
    非对称加密:非对称加密使用一对密钥,公钥与私钥,私钥被自己保存,而公钥可以被任何人获取,加密的过程就是使用公钥加密,私钥解密。特点是相对对称加密比较安全(私钥自己保存),常用的非对称加密算法有RSA。

    HTTPS采用混合加密机制

    HTTPS采用共享秘钥加密和公开秘钥加密两者并用的混合加密机制。若秘钥能够安全交换,那么有可能会考虑仅使用公开密钥加密方式来通信,但是非对称方式相比对称加密,其速度会更慢。

    https请求过程分析

    https在传输过程中会涉及到3个密钥,服务器的公钥和私钥-非对称加密。客户端生成的随机密钥-进行对称加密。

    1. 客户端向服务器发起https请求,连接到服务器443端口。
    2. 服务端向客户方下发自己的公钥(实际上是证书)。
    3. 客户端收到公钥之后,开始通过CA机构验证公钥的合法性。验证通过之后,客户端生成自己的密钥,通过刚刚下发的公钥对此密钥加密,然后发送给服务端。
    4. 服务端接受到之后,用自己的私钥进行解密得到客户端的密钥。
    5. 客户端与服务端使用上一步生成的密钥开始进行对称加密通信。

    客户端如何辨别服务端下发的公钥是服务端的?
    在https中,使用证书+数字签名来解决该问题。
    数字证书= 网站信息 + 数字签名

    如何保证公钥不被篡改?
    将公钥放在数字证书当中,只要证书是可信的,公钥就是可信的。

    历史

    1. 1994年,NetScape公司设计了SSL(Secure Sockets Layer)的1.0版,但是未发布。
    2. 1995年,NetScape公司发布了2.0版,很快发现有严重漏洞。
    3. 1996年,SSL 3.0版问世,得到大规模的应用。
    4. 1999年,互联网标准化组织ISOC接替NetScape公司,对SSL标准化,发布了SSL升级版本TLS 1.0版本。
    5. 2006年和20008年,TLS进行了两次升级,分别为TLS 1.1版和TLS 1.2版。最新的变动是2011年的TLS 1.2的修订版。
    6. 2018年,发布了TLS 1.3。

    参考

    1. 百科 https://baike.baidu.com/item/https/285356?fr=aladdin
    2. <<图解HTTP>>
    3. 阮一峰blog http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
  • 相关阅读:
    美团面试,360面试 ,滴滴面试,阿里面试,百度面试,京东面试,搜狗面试:
    Maven 3-Maven依赖版本冲突的分析及解决小结 (阿里,美团,京东面试)
    maven snapshot和release版本的区别
    Maven 生命周期 和插件
    Maven pom 文件解释
    Zookeeper原理架构
    sublime 支持PHP语法提示
    Zen Coding 用法
    让浏览器屏蔽js
    淘宝设计师入门:设计师SDK环境配置
  • 原文地址:https://www.cnblogs.com/yanfengfree/p/12182467.html
Copyright © 2020-2023  润新知