新聞中心
HSTS 是 HTTP 嚴(yán)格傳輸安全(HTTP Strict Transport Security) 的縮寫。 這是一種網(wǎng)站用來聲明他們只能使用安全連接(HTTPS)訪問的方法。 如果一個(gè)網(wǎng)站聲明了 HSTS 策略,瀏覽器必須拒絕所有的 HTTP 連接并阻止用戶接受不安全的 SSL 證書。

HSTS部署
服務(wù)器開啟HSTS的方法是:當(dāng)客戶端通過HTTPS發(fā)出請求時(shí),在服務(wù)器返回的超文本傳輸協(xié)議響應(yīng)頭中包含Strict-Transport-Security字段。非加密傳輸時(shí)設(shè)置的HSTS字段無效。
最佳的部署方案是部署在離用戶最近的位置,例如:架構(gòu)有前端反向代理和后端Web服務(wù)器,在前端代理處配置HSTS是最好的,否則就需要在Web服務(wù)器層配置HSTS。如果Web服務(wù)器不明確支持HSTS,可以通過增加響應(yīng)頭的機(jī)制。如果其他方法都失敗了,可以在應(yīng)用程序?qū)釉黾親STS。
HSTS啟用比較簡單,只需在相應(yīng)頭中加上如下信息:
Strict-Transport-Security: max-age=63072000; includeSubdomains;preload;
Strict-Transport-Security是Header字段名,max-age代表HSTS在客戶端的生效時(shí)間。includeSubdomains表示對所有子域名生效。preload是使用瀏覽器內(nèi)置的域名列表。
HSTS策略只能在HTTPS響應(yīng)中進(jìn)行設(shè)置,網(wǎng)站必須使用默認(rèn)的443端口;必須使用域名,不能是IP。因此需要把HTTP重定向到HTTPS,如果明文響應(yīng)中允許設(shè)置HSTS頭,中間人攻擊者就可以通過在普通站點(diǎn)中注入HSTS信息來執(zhí)行DoS攻擊。
Apache上啟用HSTS
$ vim /etc/apache2/sites-available/hi-linux.conf
# 開啟HSTS需要啟用headers模塊
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
ServerName www.hi-linux.com ServerAlias hi-linux.com ...
#將所有訪問者重定向到HTTPS,解決HSTS首次訪問問題。 RedirectPermanent / https://www.hi-linux.com/
...
# 啟用HTTP嚴(yán)格傳輸安全 Header always
set Strict-Transport-Security
"max-age=63072000; includeSubdomains; preload" ...
重啟Apache服務(wù)
$ service apche2 restart
Nginx上啟用HSTS
$ vim /etc/nginx/conf.d/hi-linux.conf
server {
listen 443 ssl;
server_name www.hi-linux.com;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
...
}
server {
listen 80;
server_name www.hi-linux.com;
return 301 https://www.hi-linux.com$request_uri;
...
}
重啟Nginx服務(wù)
$ service nginx restart
IIS啟用HSTS
要在IIS上啟用HSTS需要用到第三方模塊。
設(shè)置完成了后,可以用curl命令驗(yàn)證下是否設(shè)置成功。如果出來的結(jié)果中含有Strict-Transport-Security的字段,那么說明設(shè)置成功了。
$ curl -I https://www.hi-linux.com
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 27 May 2017 03:52:19 GMT
Content-Type: text/html; charset=utf-8
...
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
...
對于HSTS以及HSTS Preload List,建議是只要不能確保永遠(yuǎn)提供HTTPS服務(wù),就不要啟用。因?yàn)橐坏〩STS生效,之前的老用戶在max-age過期前都會重定向到HTTPS,造成網(wǎng)站不能正確訪問。唯一的辦法是換新域名。
本文題目:詳解HSTS安全策略應(yīng)用
鏈接URL:http://fisionsoft.com.cn/article/dhdchee.html


咨詢
建站咨詢
