本文详细讨论了关于HTTPS的七个误解,误解内容包括HTTPS无法缓存、SSL证书很贵、HTTPS太慢等等,以下是原文,希望你可以更透彻地了解HTTPS。

 误解七:HTTPS无法缓存

  许多人以为,出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。

  微软的IE项目经理Eric Lawrence写道:

“说来也许令人震惊,只要HTTP头允许这样做,所有版本的IE都缓存HTTPS内容。比如,如果头命令是Cache-Control: max-age=600,那么这个网页就将被IE缓存10分钟。IE的缓存策略,与是否使用HTTPS协议无关。(其他浏览器在这方面的行为不一致,取决于你使用的版本,所以这里不加以讨论。)”

  Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control: Public,缓存就会被写到硬盘上。下面的图片显示,Firefox的硬盘缓存中有HTTPS内容,头命令正是Cache-Control:Public。

 误解六:SSL证书很贵

  如果你在网上搜一下,就会发现很多便宜的SSL证书,大概10美元一年,这和一个.com域名的年费差不多。而且事实上,还能找到免费的SSL证书。

  在效力上,便宜的证书当然会比大机构颁发的证书差一点,但是几乎所有的主流浏览器都接受这些证书。

 误解五:HTTPS站点必须有独享的IP地址

  由于IPv4将要分配完毕,所以很多人关心这个问题。每个IP地址只能安装一张SSL证书,这是毫无疑问的。但是,如果你使用子域名通配符SSL证书(wildcard SSL certificate,价格大约是每年125美元),就能在一个IP地址上部署多个HTTPS子域名。比如,https://www.httpwatch.com和https://store.httpwatch.com,就共享同一个IP地址。

  另外,UCC(统一通信证书,Unified Communications Certificate)支持一张证书同时匹配多个站点,可以是完全不同的域名。SNI(服务器名称指示,Server Name Indication)允许一个IP地址上多个域名安装多张证书。服务器端,Apache和Nginx支持该技术,IIS不支持;客户端,IE 7+、Firefox 2.0+、Chrome 6+、Safari 2.1+和Opera 8.0+支持。

 误解四:转移服务器时要购买新证书

  部署SSL证书,需要这样几步:

  1. 在你的服务器上,生成一个CSR文件(SSL证书请求文件,SSL Certificate Signing Request)。

2. 使用CSR文件,购买SSL证书。

3. 安装SSL证书。

  这些步骤都经过精心设计,保证传输的安全,防止有人截取或非法获得证书。结果就是,你在第二步得到的证书不能用在另一台服务器上。如果你需要这样做,就必须以其他格式输出证书。

  比如,IIS的做法是生成一个可以转移的.pfx文件,并加以密码保护。

  将这个文件传入其他服务器,将可以继续使用原来的SSL证书了。

 误解三:HTTPS太慢

  使用HTTPS不会使你的网站变得更快(实际上有可能,请看下文),但是有一些技巧可以大大减少额外开销。

  首先,只要压缩文本内容,就会降低解码耗用的CPU资源。不过,对于当代CPU来说,这点开销不值一提。

  其次,建立HTTPS连接,要求额外的TCP往返,因此会新增一些发送和接收的字节。但是,从下图可以看到,新增的字节是很少的。

  第一次打开网页的时候,HTTPS协议会比HTTP协议慢一点,这是因为读取和验证SSL证书的时间。下面是一张HTTP网页打开时间的瀑布图。

  同一张网页使用HTTPS协议之后,打开时间变长了。

  建立连接的部分,大约慢了10%。但是,一旦有效的HTTPS连接建立起来,再刷新网页,两种协议几乎没有区别。先是HTTP协议的刷新表现:

  然后是HTTPS协议:

  某些用户可能发现,HTTPS比HTTP更快一点。这会发生在一些大公司的内部局域网,因为通常情况下,公司的网关会截取并分析所有的网络通信。但是,当它遇到HTTPS连接时,它就只能直接放行,因为HTTPS无法被解读。正是因为少了这个解读的过程,所以HTTPS变得比较快。

 误解二:有了HTTPS,Cookie和查询字符串就安全了

  虽然无法直接从HTTPS数据中读取Cookie和查询字符串,但是你仍然需要使它们的值变得难以预测。

  比如,曾经有一家英国银行,直接使用顺序排列的数值表示session id:

  黑客可以先注册一个账户,找到这个cookie,看到这个值的表示方法。然后,改动cookie,从而劫持其他人的session id。至于查询字符串,也可以通过类似方式泄漏。

 误解一:只有注册登录页,才需要HTTPS

  这种想法很普遍。人们觉得,HTTPS可以保护用户的密码,此外就不需要了。Firefox浏览器新插件Firesheep,证明了这种想法是错的。我们可以看到,在Twitter和Facebook上,劫持其他人的session是非常容易的。

  咖啡馆的免费WiFi,就是一个很理想的劫持环境,因为两个原因:

1. 这种WiFi通常不会加密,所以很容易监控所有流量。

2. WiFi通常使用NAT进行外网和内网的地址转换,所有内网客户端都共享一个外网地址。这意味着,被劫持的session,看上去很像来自原来的登录者。

  以Twitter为例,它的登录页使用了HTTPS,但是登录以后,其他页面就变成了HTTP。这时,它的cookie里的session值就暴露了。

  也就是说,这些cookie是在HTTPS环境下建立的,但是却在HTTP环境下传输。如果有人劫持到这些cookie,那他就能以你的身份在Twitter上发言了。

关于HTTPS的七个误解相关推荐

  1. HTTPS的七个误解(译文)

    开发网页的时候,往往需要观察HTTP通信. 我使用的工具主要有两个,在Firefox中是Firebug,在IE中是Fiddler.但是,一直听别人说,付费软件HttpWatch是这方面最好的工具. 前 ...

  2. HTTPS的七个误解

    HTTPS的七个误解 Top 7 Myths about HTTPS

  3. HTTPS的七个神话(译文)

    原文网址:http://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/ 译文地址:http://www.ruanyifeng.com/bl ...

  4. 让你不再对网络安全产生七种误解

    误解一.加密确保了数据得到保护 对数据进行加密是保护数据的一个重要环节,但不是绝无差错.Jon Orbeton警告说:如今黑客采用嗅探器可是越来越完善,能够截获SSL和SSL交易信号,窃取经过加密的数 ...

  5. 迈向HTTPS(七)反向代理服务器代理HTTPS

    对于一定规模的企业来说,在部署 HTTPS 的时候,一般不会在具体的 WEB 服务器(RealServer)上部署证书和密钥对,原因有多个: 为了负载均衡,大部分企业在 WEB 服务器(RealSer ...

  6. http协议 和 https

    关于HTTP协议,一篇就够了 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务 ...

  7. HTTPS安全超文本传输协议

    一.什么是HTTPS 简单的理解HTTPS就是使用SSL/TLS加密内容的.安全的HTTP协议 HTTPS = HTTP + SSL/TLS 二.对称加密与非对称加密 对称加密:加密和解密使用同一密钥 ...

  8. 浏览器证书基础介绍和如何测试本地浏览器的HTTPS的完备性

    最近一个项目是更新浏览器证书,这篇文章写给有相关需求的工程师. 1 首先,了解证书的基本原理和工作方式,然后了解证书的更新办法, 1 其次,最好是,如何去验证这些证书. 1 证书的基础知识: HTTP ...

  9. https ssl证书的工作原理及使用相关知识收集

    https ssl证书的工作原理及使用相关知识收集 SSL 与 数字证书 的基本概念和工作原理 前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片.对于数字证书也 ...

最新文章

  1. SQL: ORA-00979 不是 GROUP BY 表达式 及 Group by 的用法说明
  2. 从Demo到日千万PV,就是快! – 爱线下的上云实践
  3. 取消 AndroidStudio 启动时自动打开上次关闭的项目
  4. Python Socket通信黏包问题分析及解决方法
  5. 深度学习pytorch--线性回归(二)
  6. JavaScript中错误正确处理方式,你用对了吗? 1
  7. mysql 主从备份问题_我遇到的mysql主从同步的问题
  8. php图像无法显示,php – 无法显示图像,因为它包含错误[图像生成器]
  9. AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68
  10. [PHP] - Laravel - CSRF token禁用方法与排除验证csrf_token的url设置
  11. 记于开学两个星期...十九岁快乐!
  12. SGX软硬件栈(三)——驱动接口、SGX API
  13. sigmoid/逻辑回归/多元逻辑回归/softmax 区别
  14. Docker安装及Docker私有仓库部署流程
  15. Mac 终端连接和操作服务器常用命令
  16. 华为harmonyos手机开发者,华为鸿蒙HarmonyOS2.0手机开发者Beta版正式发布
  17. org.apache.flink.table.api.TableException: A raw type backed by type information has no serializable
  18. Python数据分析-pandas-数据处理
  19. MAC 常用终端命令
  20. wish商户平台登录网址中国版【wish圈】

热门文章

  1. 主流开源编解码器Xvid,x264,ffmpeg 性能对比
  2. ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
  3. HALCON示例程序bottle.hdev、bottlet.hdev瓶体字符OCR的训练和检测
  4. 科维PLC运行时系统ProConOS embedded CLR 2.2 特定应用
  5. ABB 机器人 压包指令PackRawBytes 解包指令UnpackRawBytes
  6. MATLAB调用Python自定义函数(类、函数等) Python调用MATLAB
  7. spss练习数据_SPSS篇——如何在成千上百万个数据中标识重复个案
  8. pytorch 正向与反向传播的过程 获取模型的梯度(gradient),并绘制梯度的直方图
  9. Qt实现延时sleep函数功能
  10. C语言中,scanf与scanf_s的简单区别