zoukankan      html  css  js  c++  java
  • 什么是https

    没有在自己的网站使用过,纯为了解以及笔记

    HTTPS协议

    HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密(即HTTP下加入SSL(Secure Sockets Layer安全套接层))。在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息让然是安全的。这就是HTTP和HTTPS的最大区别。

    HTTP与HTTPS有什么区别?

    1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    HTTPS的工作原理

    描述1

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如下所示。

    1. 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

    2. Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

    3. 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

    4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    5. Web服务器利用自己的私钥解密出会话密钥。

    6. Web服务器利用会话密钥加密与客户端之间的通信。

    描述2

    1) 完成TCP三次同步握手
    2) 客户端验证服务器数字证书,通过,进入步骤3
    3) DH算法协商对称加密算法的密钥、hash算法的密钥
    4) SSL安全加密隧道协商完成
    5)网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改

    作者:车小胖 来源:知乎

    描述3

    https怎么做到的?

    这个就很复杂了。有兴趣的朋友可以看一下这个“The First Few Milliseconds of an HTTPS Connection”。
    我来简单介绍一下里面的一些手段。比如你如何确信这个网站是一个好网站?好网站就会有一个“好网站证书”,也就是certification,这个证书是由CA(certificate authority)颁布的,每次链接,网站都先去找CA拿一份证书,然后把这个证书一起发给客户,来证明自己的清白。也许你会问,万一是一个坏网站自己伪造的证书呢?这就要牵扯到RSA的公钥,私钥加密。不过,google的https是他们自己公司的一个CA发的,感觉怪怪的。

    总之,你基本可以相信这是一个好网站(历史上也有CA被入侵之类的事件发生)。这就是authentication(应该也是保护DNS的一步)。当然你也会需要向网站证明一下你自己的身份,然后你们就要决定用什么方式加密。加密的方式有很多种,比如各种AES啦什么的。客户告诉网站,我的浏览器支持哪些加密方式,然后网站选择其中一种,于是你们之间的数据就被加密了。你问我怎么选择的?我告诉你是随机的。你问我是伪随机吗,我不知道,伪随机的话会不会有一种qd的感觉?总之,这就是confidentiality。那怎么保证你的数据不被修改呢?这就要说到hash,hash算法可以把一个长长的数据变短,一般情况下,不同的长数据变成的短数据,是不一样的。哪怕长数据里面只变化了一点点,短数据也会差别很大(专业术语叫avalanche effect)。传输数据的时候,把这个短数据一并传了,对方就可以知道整个数据包是否被修改。当然这需要双方都提前知道一些并没有被传输的秘密。常用的hash有md5和SHA256等,md5相对来说不安全,length extenstion attack和collision都很容易。总之,这样一来,你可以知道中途数据没有被修改。这就是integrity。

    https足够安全吗?

    最后这个https足够安全吗?世界上没有绝对的安全,首先我提到过,https本身不保证availability,而且别人也能知道你在上这个网站。同时,https本身想保护的东西也不是那么靠谱。例如赫赫有名的heartbleed,2014年的时候席卷全球。数据显示,前100的网站(我也不晓得怎么排的),44个受到heartbleed威胁,其中就有雅虎,stackoverflow这样的网站。当然我觉得黑客是不会黑掉stackoverflow的,黑掉了以后自己写程序遇到bug都不知道怎么办了。直到今天,还有的网站没有修复这个bug,而一些已经修复的网站,因为没有及时更换private key等原因,自以为安全了,其实和没修复一个样。当然,还有各种各样的安全隐患。比如提到的RSA加密,在某些情况下可以用wiener attack破解。其他的例如入侵CA,或者直接入侵用户的电脑(例如用ssh开remote root shell等)都非常有可能。一定还有很多真正的“黑”科技,答主也不了解了。

    作者:法号桑菜

    链接:https://www.zhihu.com/question/19577317/answer/103499193

    来源:知乎

  • 相关阅读:
    autocomplete自动完成搜索提示仿google提示效果
    实现子元素相对于父元素左右居中
    javascript 事件知识集锦
    让 IE9 以下的浏览器支持 Media Queries
    「2013124」Cadence ic5141 installation on CentOS 5.5 x86_64 (limited to personal use)
    「2013420」SciPy, Numerical Python, matplotlib, Enthought Canopy Express
    「2013324」ClipSync, Youdao Note, GNote
    「2013124」XDMCP Configuration for Remote Access to Linux Desktop
    「2013115」Pomodoro, Convert Multiple CD ISO to One DVD ISO HowTo.
    「2013123」CentOS 5.5 x86_64 Installation and Configuration (for Univ. Labs)
  • 原文地址:https://www.cnblogs.com/riwang/p/12370950.html
Copyright © 2011-2022 走看看