HTTP Strict Transport Security头:修订间差异
来自三线的随记
(创建页面,内容为“=== 简述 === 简称HSTS头 出现在(HTTP)响应头信息中 Strict-Transport-Security 字段 HSTS的作用是强制客户端(如浏览器)使用HTTPS与…”) |
小无编辑摘要 |
||
(未显示同一用户的2个中间版本) | |||
第7行: | 第7行: | ||
非加密传输时设置的HSTS字段无效 | 非加密传输时设置的HSTS字段无效 | ||
HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开 | |||
SSL剥离的实施方法是阻止浏览器与服务器建立HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http://,达到阻止HTTPS的目的。 | |||
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP | |||
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,将不再允许用户忽略警告。 | |||
=== 配置例子 === | === 配置例子 === | ||
第18行: | 第27行: | ||
DocumentRoot ****** | DocumentRoot ****** | ||
'''Header always set Strict-Transport-Security "max-age=63072000"''' | '''Header always set Strict-Transport-Security "max-age=63072000"''' | ||
chrome清除域名HSTS设置 | |||
chrome://net-internals/#hsts |
2018年7月20日 (五) 22:36的最新版本
简述
简称HSTS头
出现在(HTTP)响应头信息中 Strict-Transport-Security 字段
HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器建立连接
非加密传输时设置的HSTS字段无效
HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开
SSL剥离的实施方法是阻止浏览器与服务器建立HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http://,达到阻止HTTPS的目的。
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,将不再允许用户忽略警告。
配置例子
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2018-04-18T14:53:04
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot ****** Header always set Strict-Transport-Security "max-age=63072000"
chrome清除域名HSTS设置
chrome://net-internals/#hsts