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

译文地址:http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html

误解七: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的七个误解,误解内容包括HTTPS无法缓存.SSL证书很贵.HTTPS太慢等等,以下是原文,希望你可以更透彻地了解HTTPS. 误解七:HTTPS无法缓存 许多人以为,出于 ...

  3. HTTPS的七个误解

    HTTPS的七个误解 Top 7 Myths about HTTPS

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

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

  5. 如何使用七牛云http免费空间实现全站https

    利用https站点网页服务器(nginx.Apache等)使用反向代理到七牛云空间域名地址,实现https访问七牛云http图片 操作步骤: 新建一个代理网站,域名为image.xx.com,并添加s ...

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

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

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

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

  8. http协议 和 https

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

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

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

最新文章

  1. vue常见问题随笔集
  2. 自定义的注解校验器的实现
  3. 项目管理: Maven 让事情变得简单
  4. 再暴BBSxp 7.0 Beta 2漏洞
  5. http缓存与cdn相关技术
  6. java中json进阶_JSON学习
  7. 西门子S7-300PLC采用博途V14编程程序,附带博途WINCC上位机,项目内容甲醛生产线项目,模拟量处理,电机控制等
  8. app提示已到期_安装软件时,显示软件证书过期,怎么回事?
  9. 惯量比多少合适_惯量比折算问题
  10. PHP从入门到精通 第二版pdf
  11. 微软业务生产力平台基础架构优化(BPIO)之企业项目管理(EPM)解决方案
  12. 社交类语音聊天系统开发
  13. LeetCode 题解之 824. Goat Latin
  14. Unity 2D游戏开发案例学习——Robble Swifthand(下)
  15. 一、Unity环境安装
  16. (教程)3DS MAX游戏场景建模基础教程
  17. 信息安全保障人员CISAW认证基础级、专业级通用认证条件
  18. 全国跨境电商联合运营服务平台,定义跨境新力量!
  19. 《软件过程管理》 第十章 软件过程管理实践
  20. font-weight:字体粗细

热门文章

  1. mysql 最小时间 最大时间_leetcode539_go_最小时间差
  2. 使用Python,Matplotlib显示RGB图像
  3. OpenCV(22)SIFT尺度不变特征变换(纯理论)
  4. OpenCV图像缩放插值之BiCubic双三次插值
  5. ml不是内部或外部命令_美国飞机制造商波音公司采用VR技术训练宇航员 ; Snap Lens Studio推出支持自定义ML驱动的Snapchat镜头...
  6. asp从后台调出的公式怎么参与运算_SEOr怎么写一个快速排名的标题
  7. PCL点云特征描述与提取(4)
  8. 相机标定 matlab opencv ROS三种方法标定步骤(1)
  9. 完整的虚幻引擎超级课程:从初学者到专家
  10. Blender写实产品创作学习教程