zoukankan      html  css  js  c++  java
  • SSL/TLS 和Https

    http://www.techug.com/post/https-ssl-tls.html

    偶然发现了一篇语言白话,深得我意的扫盲贴,文中回答了一下问题:

     为了明白HTTPS 协议的实现原理,需要如下几个背景知识。


    1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义

      早期用于传输web内容的http网络协议是明文的,易被嗅探,攻击,甚至篡改,于是诞生了SSL,之后逐渐标准化,成为TLS。TLS是SSL的改进版,升级版,是不同时期的名称。因此SSL与TLS之间也有不少差异。应用SSL给原本脆弱的塑料管道http加上一层更为坚固的金属外壳之后,http变成了https。此时变得更加安全了。咱们通常所说的 HTTPS 协议,说白了就是“HTTP 协议”和“SSL/TLS 协议”的组合。你可以把 HTTPS 大致理解为——“HTTP over SSL”或“HTTP over TLS”。 端口也发生了改变:80->443


    2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)

    TCP 协议是 HTTP 协议的基石——HTTP 协议需要依靠 TCP 协议来传输数据。在网络分层模型中,TCP 被称为“传输层协议”,而 HTTP 被称为“应用层协议”。(TCP 被称为“面向连接”的传输层协议。)可以把 TCP 协议想象成某个水管,发送端这头进水,接收端那头就出水。并且 TCP 协议能够确保,先发送的数据先到达(与之相反,UDP 不保证这点)。

    HTTP 对 TCP 连接的使用,分为两种方式:俗称“短连接”和“长连接”

    短连接:http早期使用的连接方式,即每次访问都建立一次tcp链接;如此一来,频繁的访问和连接使得代价较大

    长连接:后来改进:保持tcp不断开。效率提高。


    3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)

    对称加密:加密和解密使用同一把钥匙;因此也是双向的,因此为对称。

    非对称加密:加密和解密使用不同的钥匙,单向不可逆,因此非对称。(也叫做公开密钥加密,公钥是公共可见的)

    非堆成用途更广,但更复杂,性能收到影响。

    4. 大致了解 CA 证书的用途

    5. HTTPS 协议的需求是啥?

    兼容性:要能够兼容之前的http,不能彻底改头换面,代价太大。

    可扩展性:不仅用于加强http安全性,还可以用于拓展到其他协议。如今的 SSL/TLS 可以跟很多常用的应用层协议(比如:FTP、SMTP、POP、Telnet)搭配,来强化这些应用层协议的安全性。(这一点感觉是在说ssl/tls的特性)。

    保密性(防泄密):对抗嗅探(行话叫 Sniffer)或者其他更高级的窥探、攻击行为,比如:“重放攻击”。

    完整性(防篡改):确保所传输的内容完整不被嗅探和篡改。

    真实性(防假冒):防止假冒网站,钓鱼网站(火眼金睛防假域名)。

    性能:要确保变成https之后性能不会变差。

  • 相关阅读:
    explicit
    boolalpha 和 noboolalpha
    C++ 头文件一览
    C++ I/O库总结
    Error:collect2:ld returned 1 exit status (总结)
    常用目录的作用
    硬盘分区与硬软链接
    POJ3694 Network(Tarjan双联通分图 LCA 桥)
    2016"百度之星"
    2016"百度之星"
  • 原文地址:https://www.cnblogs.com/yanwenliqjl/p/8731752.html
Copyright © 2011-2022 走看看