「Strict-Transport-Security」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> Webサイトにアクセスをする場合に、セキュアコネクション(HTTPS)を利用するように、 [[HTTPレスポ...」)
 
 
(同じ利用者による、間の3版が非表示)
行1: 行1:
<!--
+
[[ウェブサイト]]にアクセスをする場合に、セキュアコネクション([[HTTPS]])を利用するように、 [[HTTPレスポンスヘッダー]]のフィールドに [[Strict-Transport-Security]] (STS)を指定します。
vim: filetype=mediawiki
+
HTTP Strict Transport Security や HTST とも呼ばれます。
-->
+
  
Webサイトにアクセスをする場合に、セキュアコネクション([[HTTPS]])を利用するように、 [[HTTPレスポンスヘッダー]]のフィールドに [[Strict-Transport-Security]] (STS)を指定します。
+
'''読み方'''
 
+
読み方
+
 
;[[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 Strict Transport Security や HTST とも呼ばれます。
+
ブラウザに 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
  
Strict-Transport-Security: max-age=500
+
=== 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 -

関連項目