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

中间人攻击

为了保障网站内容安全,诞生了不少加密方式。目前应用最为广泛的加密方式是 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字符与字节新编

    字符 字符是一个信息单位,简单来讲就是一个字母.数字.标点符号.汉字等. 字符的最佳定义是Unicode字符: 它是一个全球化的标准,能表示世界上所有语言的字符.Unicode字符的标识(码位)是以4 ...

  2. mysql-8.0.16-winx64.zip安装教程详解

    摘自:https://zhuanlan.zhihu.com/p/48531203 mysql-8.0.16-winx64.zip安装教程详解下载地址:https://dev.mysql.com/get ...

  3. 菜鸟刷题路:剑指 Offer 09. 用两个栈实现队列

    剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的 ...

  4. 三、Tomcat配置文件的介绍

    *允许直接复制另外多份完整的tomcat数据,修改配置保证不冲突,起多个tomcat,优点:其中一个tomcat挂了不影响其他网页 tomcat配置文件server.xml介绍 <Server& ...

  5. NX二次开发-克隆操作

    模板文件: 克隆替换字符串: 1 #include "Text.h" 2 extern DllExport void ufsta(char *param, int *returnC ...

  6. 《四大点,搞懂Redis到底快在哪里?》

    一.开发语言 二.纯内存访问 三.单线程 四.非阻塞多路I/O复用机制 前言 Redis是一种基于键值对(Key-Value)的NoSQL数据库 ,Redis的Value可以由String,hash, ...

  7. Mybati-Plus的用法 记录

    参考文件下载地址:  https://files.cnblogs.com/files/bulter/MyBatis-Plus.zip --------------------------------- ...

  8. C# 位图BitArray 小试牛刀

    前面聊了布隆过滤器,回归认识一下位图BitMap,阅读前文的同学应该发现了布隆过滤器本身就是基于位图,是位图的一种改进. 位图 先看一个问题, 假如有1千万个整数,整数范围在1到1亿之间,如何快速确定 ...

  9. ceph-csi源码分析(2)-组件启动参数分析

    更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(2)-组件启动参数分析 ceph-csi组件的源码分析分为五部分: ...

  10. centos8 安装VNC配置远程连接

    系统信息 [root@centos8 ~]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) [root@centos8 ~] ...