随着网络技术手段不断地更新迭代,互联网安全对于企业和个人的重要性都越来越高。因此越来越多的服务商都开始偏向为用户提供更安全的在线内容访问。

中间人攻击

为了保障网站内容安全,诞生了不少加密方式。目前应用最为广泛的加密方式是 TLS(安全传输层协议),它脱胎自广为人知的 SSL(安全套接字协议),并和 SSL 一起组成了 SSL/TLS 加密,可以让 HTTP 变身为 HTTPS,为用户和网站提供安全的数据传输。

正常来讲,使用 HTTPS 和可靠的 SSL/TLS 证书访问网站时,加密的传输是安全的。但是因为早期认证机构容易被黑客攻击,进而导致证书安全性漏洞,同时一些常规使用习惯也可能造成安全漏洞,比如我们在输入网址时,并不会输入包含加密协议 https:// 的完整 URL,而是只输入网站网址,而浏览器的自动访问则会访问不安全的 http://。这些存在的漏洞为中间人攻击提供了便利。

中间人攻击表面上看是系统 A 与系统 B 建立加密连接,但是实际上数据流会被第三方重定向,让加密连接从系统 A 运行到系统 C,然后才重定向到系统 B。这让系统 C 的控制者(通常是攻击者)可以完整地查看、记录以及操纵数据流量。攻击者还通过这种方式将系统 C 作为网络服务器呈现给系统 A,并给用户端呈现错误的浏览页面。这种攻击在银行或者电商行业会直接影响用户在线交易,给用户造成严重损失。

除去证书本身的问题,一些粗心大意的使用习惯也很容易造成安全漏洞。比如现在很多公共场合都会提供公共 WLAN,我们已经习惯链接并使用,不会去检查这个 Internet 是谁提供的。黑客可以将自己的计算机设置为热点,并轻易获得链接这个热点的用户的全部数据流,如果正好有人用这个网络链接过银行等业务,那黑客很容易通过这个获取用户网银密码,造成财务损失。。

因此,互联网工程任务组(IETF)在 2012 年提出了针对该安全性问题的一种解决方案:在 RFC 6797 中指定了 HTTPS 扩展的 HTTP 严格传输安全协议(HSTS)。

什么是 HSTS

HSTS(HTTP Strict Transport Security,HTTP 严格传输安全协议)是一种安全机制,旨在保护 HTTPS 连接免受中间人攻击和会话劫持。它让网站管理员在 HTTPS 的基础上,通过 HTTP 头信息向浏览器发送信号,在一个时间段内以 SSL / TLS 加密的形式检索网站。

这个 HTTP 头信息在服务端显示为:Strict-Transport-Security,它包含强制性的信息 max-age,也包含了可选参数 includeSubDomains 和 preload 方便配置:

  • max-age: 指 HSTS 功能生效的时间,以秒为单位。例如 31536000 秒代表一年。

  • includeSubDomains: 如果指定,则表示域名(例如:upyun.com)对应的每个子域名(例如:www.upyun.com 或 123.example.upyun.com),浏览器在访问时也都会强制采用 HTTPS 进行访问。

  • preload: 如果指定,则表示此域名同意申请加入由 Google 发起的 Preload List,申请地址[https://hstspreload.org/]。

在服务端配置完成头信息后,当互联网用户首次访问网站时,浏览器将从 Strict-Transport-Security 头信息中获取以下指令:

  • 指向相应网站的所有未加密链接都必须被加密链接覆盖(http:// 到 https://)。

  • 如果不能保证连接的安全性(例如:证书无效),则必须终止该连接。同时向用户显示错误消息。

如何开启 HSTS

如果是对安全性要求较高的网站,一般都会选择开启 HSTS 。

但是 HSTS 并不是随意开启的,它需要支持它的浏览器。目前市场上支持 HSTS 的浏览器如下:(对于那些不支持的浏览器,会忽略此响应头,对用户的访问无影响,可以不用担心)

而具体开启 HSTS 则可以登陆又拍云控制台,依次进入:服务 > 功能配置 > HTTPS > HSTS,点击管理进行配置开启。

又拍云自 17 年起就已经支持配置 HSTS,配置步骤简单,操作方便。但是这里需要特别提醒的是,如果有参数设置不当可能会导致网站无法访问,大家如果遇到问题可以直接联系我们的客服小姐姐哦~

HTTPS 网站的预加载列表

当然光靠 HSTS 并不是万无一失的,因为 HSTS 的响应头是由服务器返回的,需要用户先发起访问才能获取到这个响应头。获取响应头后才会进行强制 HTTPS 访问操作。这也就意味着每次访问还是容易受到攻击风险。

为尽可能的减小这种风险,目前市面上所有的浏览器都加入了 Google 提供的 HSTS Preload List。只要加入到这个列表中,所有的通过浏览器访问请求都会强制走 HTTPS,在很大程度上可以杜绝“第一次”访问的劫持,最大限度地提高 HTTPS 访问的安全性。

如果你需要将自己的网站加入 HSTS Preload ,那必须确保符合如下基本要求:

  • 所有网站页面都必须使用有效的 SSL 证书

  • HTTP URL 必须定向到同一主机的 HTTPS URL

  • 所有子域(包括 www 子域)必须支持 HTTPS 且可用

  • 必须通过具有以下参数的域名来传递 HSTS 头信息:

  • 网站需要始终满足上诉要求,否则会被自动删除

在信息安全越来越重要的今天,及时更新网站的安全手段,维护网站和用户的安全,避免因一时的疏忽造成损失才是最好的选择。

全站 HTTPS 就一定安全了吗?的更多相关文章

  1. 全站 HTTPS 来了

    !版权声明:本文为腾讯Bugly原创文章,转载请注明出处腾讯Bugly特约作者:刘强 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 ...

  2. 全站 HTTPS 来了(转载)

    转载:本文为腾讯Bugly原创文章. 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护.仔细观察,会发现这些网站已 ...

  3. ASP.NET MVC 部署全站HTTPS

    什么是全站HTTPS 全站HTTPS就是指整个网站的所有页面,所有资源全部使用HTTPS链接. 当用户的某个请求是明文的HTTP时,应该通过HTTP状态码301永久重定向到对应的HTTPS链接. 为了 ...

  4. 全站HTTPs,没那么简单

    “全站 HTTPs”俨然成了目前的热门话题,很多网站都在摩拳擦掌要实行全站 HTTPs.凑巧,我们(沪江)也在推行这个计划. 一开始大家想得都很简单,把证书购买了.配好了,相应的路径改一改,就没有问题 ...

  5. 关于全站https必要性http流量劫持、dns劫持等相关技术

    关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...

  6. 【转】互联网全站HTTPS的时代已经到来

    原文地址:http://blog.csdn.net/luocn99/article/details/39777707 前言 我目前正在从事HTTPS方面的性能优化工作.在HTTPS项目的开展过程中明显 ...

  7. 【转贴】全站 HTTPS 来了

    http://geek.csdn.net/news/detail/48765 作者:腾讯TEG架构平台部静态加速组高级工程师 刘强 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部 ...

  8. 转《本文为腾讯Bugly原创文章 ---全站 HTTPS 来了》

    最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护.仔细观察,会发现这些网站已经全站使用 HTTPS.同时,iOS ...

  9. 跑步进入全站 HTTPS ,这些经验值得你看看

    随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在前几天,免费提供证书服务的 Let’s Encrypt 项目也正式开放测试,HTTPS 很快就会成为 WE ...

  10. 全站 HTTPS 没你想象的那么简单

    对自己无知这件事本身的无知真的挺可怕 认知偏差现象一直存在于我们每个人身上,谁也避免不掉,不过是有的人了解这件事儿,有的人不怎么知道而已,这就产生了「无知而不自知」的认知偏差.当然,这时候你自己忽悠自 ...

随机推荐

  1. python常识系列20-->python利用xlutils修改表格内容

    前言 世上的事,只要肯用心去学,没有一件是太晚的.要始终保持敬畏之心,对阳光,对美,对痛楚. 一.xlutils是什么? 是一个提供了许多操作修改excel文件方法的库: 属于python的第三方模块 ...

  2. spring如何集成第三方框架? 比如mybatis

    实体Bean的创建: 1: 基于class构建, 2: 构造方法构建 3: 静态工厂方法创建 4: FactoryBean构建 spring如何集成第三方框架? 比如mybatis 在mybatis中 ...

  3. Docker-compose搭建ELK环境并同步MS SQL Server数据

    前言 本文作为学习记录,供大家参考:一次使用阿里云(Aliyun)1核2G centos7.5 云主机搭建Docker下的ELK环境,并导入MS SQL Server的商品数据以供Kibana展示的配 ...

  4. 【NX二次开发】Block UI 图层

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  5. python10-网络编程

    1,七层网络协议 应表会传网数物: 应用层.表示层.会话层 (这三层又可以合并为应用层,这样就是五层网络协议[osi五层协议]) python '你好'.encoding('utf-8') 传输层. ...

  6. MindSpore自定义模型损失函数

    技术背景 损失函数是机器学习中直接决定训练结果好坏的一个模块,该函数用于定义计算出来的结果或者是神经网络给出的推测结论与正确结果的偏差程度,偏差的越多,就表明对应的参数越差.而损失函数的另一个重要性在 ...

  7. Linux添加永久静态路由

    1.首先查看一下本机的路由 route -n 2.比如我们添加两条静态路由,访问192.168.142.100时通过192.168.142.10:访问192.168.142.200时通过192.168 ...

  8. OpenGL 实用攻关 001 准备(开题)

    开篇 这里是OpenGL学习中的随笔,会大致讲述定下的目标需求,思路和贴出认为的关键代码以及git仓库地址.会选择性的讲述途中遇到的陷阱,和注意点. 一些资源 笔者是windows 操作系统 VS 2 ...

  9. 第15章: Prometheus监控Kubernetes资源与应用

    Prometheus监控Kubernetes资源与应用 目录 1 监控方案 2 2 监控指标 4 3 实现思路 4 4 在K8S中部署Prometheus 4 5 在K8S中部署Grafana与可视化 ...

  10. 42、mysql数据库(函数)

    1.mysql中提供的内置函数: (1)数学函数: 1)ROUND(x,y): 返回参数x的四舍五入的有y位小数的值.x不可转换时返回0,x为null时返回null. 2)RAND(): 返回0到1内 ...