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

中间人攻击

为了保障网站内容安全,诞生了不少加密方式。目前应用最为广泛的加密方式是 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. SpringBoot2 参数管理实践,入参出参与校验

    一.参数管理 在编程系统中,为了能写出良好的代码,会根据是各种设计模式.原则.约束等去规范代码,从而提高代码的可读性.复用性.可修改,实际上个人觉得,如果写出的代码很好,即别人修改也无法破坏原作者的思 ...

  2. 三、DNS子域授权

    前提:准备两台虚拟机:父域: www.tedu.cn(虚拟机A)子域:www.bj.tedu.cn(虚拟机B) 一.在两台虚拟机上安装域名解析软件 root@pc207 ~]# yum -y inst ...

  3. 【vim】常用总结

    简介 什么是vim? Linux下两大编辑神器之一 vim Linux/Unix下使用最多的编辑器 vi的改进版 可能是最难上手的编辑器之一 为什么要学习vim? 都21世纪了,为什么还需要学习vim ...

  4. 痞子衡嵌入式:Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致. 本篇是 <IAR EWARM复位类型>.<M ...

  5. OO unit2 summary

    Unit2 一.第一次作业 1.UML 2.Sequence Diagram 3.同步块设置与锁处理 采用了生产者-消费者模式,用共享对象来连接不同的线程. 第一次作业中,我有三个线程:Receive ...

  6. java入门了解、安装jdk及软件的选择

    ​ ​学习编程,一些必要的dos命令还是需要掌握的. 以下只是列出常用的: cd 目录路径: 进入一个目录 cd .. 进入父目录 dir 查看本目录下的文件和子目录列表 cls 清除屏幕命令 上下键 ...

  7. (1)Canal入门

    1.前言 在我们系统开发过程中,根据业务场景很多数据库数据并不会直接给用户访问的,需要同步保存到ElasticSearch.Redis等存储应用当中(例如最常见的是搜索页面的ElasticSearch ...

  8. 简易版JDBC连接池

    JDBC连接池mini版的实现 首先是工具类 DbUtil 主要参数就是Driver.User.PWD等啦,主要用于建立连接 URL需要注意的是SSL和serverTimezone参数,和mysql驱 ...

  9. Android Studio使用Gradle引入第三方库文件

    原文链接:https://blog.csdn.net/qiutiandepaomo/article/details/81538937 使用AndroidStudio开发Android应用的时候,会经常 ...

  10. AD设计中地铜突然消失且无法选中删除的解决办法

    作者:struct_mooc 博客地址: https://www.cnblogs.com/structmooc/p/14984466.html   前几天在设计一块电路板的时候,已经全部设计完了!但是 ...