「Strict-Transport-Security」の版間の差分
(ページの作成:「<!-- vim: filetype=mediawiki --> Webサイトにアクセスをする場合に、セキュアコネクション(HTTPS)を利用するように、 [[HTTPレスポ...」) |
|||
(同じ利用者による、間の3版が非表示) | |||
行1: | 行1: | ||
− | + | [[ウェブサイト]]にアクセスをする場合に、セキュアコネクション([[HTTPS]])を利用するように、 [[HTTPレスポンスヘッダー]]のフィールドに [[Strict-Transport-Security]] (STS)を指定します。 | |
− | + | HTTP Strict Transport Security や HTST とも呼ばれます。 | |
− | + | ||
− | + | '''読み方''' | |
− | + | ||
− | 読み方 | + | |
;[[Strict-Transport-Security]]: すとりくと とらんすぽーと せきゅりてぃ | ;[[Strict-Transport-Security]]: すとりくと とらんすぽーと せきゅりてぃ | ||
__TOC__ | __TOC__ | ||
== 概要 == | == 概要 == | ||
− | |||
[[Strict-Transport-Security]] は、[[HTTPS]] ([[Transport Layer Security]]) を強制するためのHTTPヘッダーです。 | [[Strict-Transport-Security]] は、[[HTTPS]] ([[Transport Layer Security]]) を強制するためのHTTPヘッダーです。 | ||
[[HTTP]] でアクセスしたときに、このヘッダーが送信されても、ブラウザは、無視します。 | [[HTTP]] でアクセスしたときに、このヘッダーが送信されても、ブラウザは、無視します。 | ||
− | HTTP | + | ブラウザに http://www.foo.com/ もしくは foo.com を入力した場合、 [[ウェブサイト]] は、[[HTTP]] で受けたアクセスを [[HTTPS]] へリダイレクトするまで、暗号化されない通信をすることになります。 |
+ | この方法は、リダイレクトにより、ユーザを安全ではないサイトへ誘導する[[中間者攻撃]]のおそれがあります。 | ||
− | + | [[Strict-Transport-Security]] を利用すれば、ウェブブラウザは、そのサイトに対して、 [[HTTP]] を使用せずに、[[HTTPS]]での接続に置き換えるようになります。 | |
+ | ブラウザは、[[HTTPS]] でアクセスしていて、このヘッダを受信してから、有効期限内である間は、有効です。 | ||
+ | 家で利用したスマートフォンやノートパソコンを 空港やカフェの無線LANスポットで接続するときに、このヘッダの有効期限内であれば、[[HTTP]] ではなく、[[HTTPS]] に強制されるので、[[中間者攻撃]]を回避できるかもしれません。 | ||
+ | |||
+ | == 書式 == | ||
Strict-Transport-Security: max-age=expireTime [; includeSubdomains] | Strict-Transport-Security: max-age=expireTime [; includeSubdomains] | ||
行24: | 行25: | ||
== 使い方 == | == 使い方 == | ||
− | |||
=== HTTPヘッダーの例 === | === HTTPヘッダーの例 === | ||
+ | Strict-Transport-Security: max-age=1400 | ||
− | + | === Apache HTTP Server での設定 === | |
+ | <syntaxhighlight lang="apache"> | ||
+ | # 80 へのアクセスをHTTPSにリダイレクトする例 | ||
+ | <VirtualHost *:80> | ||
+ | ServerAlias * | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301] | ||
+ | </VirtualHost> | ||
− | = | + | # ヘッダの設定 |
+ | Header set Strict-Transport-Security "max-age=16070400; includeSubDomains" | ||
+ | </syntaxhighlight> | ||
+ | === Google での事例 === | ||
+ | 2592000 は、 720 時間で、30日ということです。 | ||
+ | PayPal に比べるとずっと長いですが、現実的な数字だと考えれられます。 | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | % curl -s -I \ | ||
+ | 'https://accounts.google.com/ServiceLogin' \ | ||
+ | |fgrep -v -e Set-Cookie | ||
+ | HTTP/1.1 200 OK | ||
+ | Content-Type: text/html; charset=UTF-8 | ||
+ | Strict-Transport-Security: max-age=2592000; includeSubDomains | ||
+ | Date: Wed, 01 May 2013 10:44:49 GMT | ||
+ | Expires: Wed, 01 May 2013 10:44:49 GMT | ||
+ | Cache-Control: private, max-age=0 | ||
+ | X-Content-Type-Options: nosniff | ||
+ | X-XSS-Protection: 1; mode=block | ||
+ | Content-Length: 0 | ||
+ | Server: GSE | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === PayPal での事例 === | ||
+ | 14400 秒ということは、14400 / 3600 = 4時間ということです。 | ||
+ | キャッシュする時間が少々短いのではないかと考えられますが。 | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | % curl -s -I \ | ||
+ | 'https://www.paypal.com/cy/cgi-bin/webscr?cmd=_home&litebox.x=true' \ | ||
+ | | fgrep -v -e Set-Cookie | ||
+ | HTTP/1.1 200 OK | ||
+ | Server: Apache | ||
+ | Cache-Control: private | ||
+ | Pragma: no-cache | ||
+ | Expires: Thu, 05 Jan 1995 22:00:00 GMT | ||
+ | X-Frame-Options: SAMEORIGIN | ||
+ | Strict-Transport-Security: max-age=14400 | ||
+ | Strict-Transport-Security: max-age=14400 | ||
+ | Content-Type: text/html; charset=UTF-8 | ||
+ | Date: Wed, 01 May 2013 10:41:22 GMT | ||
+ | Connection: keep-alive | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == サポートブラウザ == | ||
{|class="wikitable" | {|class="wikitable" | ||
|+ 対応ブラウザ | |+ 対応ブラウザ | ||
行53: | 行106: | ||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[有効なセキュリティに関するHTTPヘッダ]] | * [[有効なセキュリティに関するHTTPヘッダ]] | ||
+ | {{http}} | ||
+ | <!-- vim: filetype=mediawiki --> |
2015年1月22日 (木) 17:42時点における最新版
ウェブサイトにアクセスをする場合に、セキュアコネクション(HTTPS)を利用するように、 HTTPレスポンスヘッダーのフィールドに Strict-Transport-Security (STS)を指定します。 HTTP Strict Transport Security や HTST とも呼ばれます。
読み方
- Strict-Transport-Security
- すとりくと とらんすぽーと せきゅりてぃ
目次
概要
Strict-Transport-Security は、HTTPS (Transport Layer Security) を強制するためのHTTPヘッダーです。 HTTP でアクセスしたときに、このヘッダーが送信されても、ブラウザは、無視します。
ブラウザに http://www.foo.com/ もしくは foo.com を入力した場合、 ウェブサイト は、HTTP で受けたアクセスを HTTPS へリダイレクトするまで、暗号化されない通信をすることになります。 この方法は、リダイレクトにより、ユーザを安全ではないサイトへ誘導する中間者攻撃のおそれがあります。
Strict-Transport-Security を利用すれば、ウェブブラウザは、そのサイトに対して、 HTTP を使用せずに、HTTPSでの接続に置き換えるようになります。
ブラウザは、HTTPS でアクセスしていて、このヘッダを受信してから、有効期限内である間は、有効です。 家で利用したスマートフォンやノートパソコンを 空港やカフェの無線LANスポットで接続するときに、このヘッダの有効期限内であれば、HTTP ではなく、HTTPS に強制されるので、中間者攻撃を回避できるかもしれません。
書式
Strict-Transport-Security: max-age=expireTime [; includeSubdomains]
- expireTime
- ブラウザが そのサイトに対してHTTPSでのみアクセスすることを記憶する秒数を指定します。
- includeSubdomains
- includeSubdomains を指定した場合、サブドメインに対しても、適用されます。
使い方
HTTPヘッダーの例
Strict-Transport-Security: max-age=1400
Apache HTTP Server での設定
# 80 へのアクセスをHTTPSにリダイレクトする例 <VirtualHost *:80> ServerAlias * RewriteEngine On RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301] </VirtualHost> # ヘッダの設定 Header set Strict-Transport-Security "max-age=16070400; includeSubDomains"
Google での事例
2592000 は、 720 時間で、30日ということです。 PayPal に比べるとずっと長いですが、現実的な数字だと考えれられます。
% curl -s -I \ 'https://accounts.google.com/ServiceLogin' \ |fgrep -v -e Set-Cookie HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Strict-Transport-Security: max-age=2592000; includeSubDomains Date: Wed, 01 May 2013 10:44:49 GMT Expires: Wed, 01 May 2013 10:44:49 GMT Cache-Control: private, max-age=0 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Length: 0 Server: GSE
PayPal での事例
14400 秒ということは、14400 / 3600 = 4時間ということです。 キャッシュする時間が少々短いのではないかと考えられますが。
% curl -s -I \ 'https://www.paypal.com/cy/cgi-bin/webscr?cmd=_home&litebox.x=true' \ | fgrep -v -e Set-Cookie HTTP/1.1 200 OK Server: Apache Cache-Control: private Pragma: no-cache Expires: Thu, 05 Jan 1995 22:00:00 GMT X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=14400 Strict-Transport-Security: max-age=14400 Content-Type: text/html; charset=UTF-8 Date: Wed, 01 May 2013 10:41:22 GMT Connection: keep-alive
サポートブラウザ
ブラウザ | バージョン |
---|---|
Chrome | 4.0.211.0 |
Firefox | 4.0 |
Internet Explorer | - |
Opera | 12 |
Safari | - |