HSTS max-age

HSTS/PKP max-age 指令 (HTTP)

[2] HTTPStrict-Transport-Security: ヘッダーPKPmax-age 指令は、 当該HSTSポリシーKnown Pinned Host の有効期間を単位の整数で表すものです。

仕様書

意味

[8] HSTS では、秒数は、当該ホスト既知HSTSホストとして扱うべき時間を表します。 は、既知HSTSホストとしての扱いをやめるべきことを表します。 >>1

[4] PKPmax-age 指令は、 利用者エージェントが当該ホストKnown Pinned Host と考えるべき期間を PKP ヘッダーの受信からの数で表します >>3

[12] Public-Key-Pins-Report-Only ヘッダーでは、意味がありません >>3

文脈

[5] HSTS ではこの指令必須です。 Strict-Transport-Security: ヘッダーには必ず1つだけ max-age 指令がなければなりません。 >>1

[10] Public-Key-Pins ヘッダーではこの指令必須です >>3

[11] PKP-RO では意味が無い (>>12) とされているものの、なぜか禁止はされていません。

構文

[7] この指令には値が必須です。 >>1, >>3

[6] この指令の値は delta-seconds (Δ秒)、 すなわち秒数ASCII数字で表したものです。 >>1, >>3

処理

[15] 既知ピン付きホスト実効満期日付は、本指令の値で決まります。

[13] 利用者エージェントは、 PKP-RO の本指令を無視しなければなりません >>3

[14] PKP既知ピン付きホストも参照。

[23] 値をどうするべきかは困りどころです。小さくすると、攻撃の余地を与えることになりますから、 十分大きくするべきです。大きくすると誤設定が心配ですが、 PKP はともかく、 HSTS は次回アクセス時にヘッダーから新しい指定を読み込めますから、 あまり気にせずに大きな値にして構いません。

[17] 利用者エージェントPKPmax-age の値に上限を設けられます。その場合上限を超える値が指定された時、 上限の値が指定されたとみなすことができます。 >>16

[19] 上限が小さすぎると PKP が意味を持ちませんし、大きすぎると何らかの誤りや攻撃で実際のサーバーの SPKI Fingerprint と異なってしまった時にいつまでも接続できないままになります。 上限として常に好ましいと言える値はありませんが、 60日 (5184000s) 程度の値が良いであろうと考えられています。 >>18, >>20

[24] かつて HSTS Preload のサイトでは、基準として、18週間 (10886400 ) 以上でなければ受理しない >>21 としていました。

[27] HSTS Preload を有効にするためには 31536000 秒 (1年) 以上でなければなりません >>55

[25] MozillaWiki は、「Modern」で HSTS の値 15724800 を提示しています >>22

[26] SSL LabsHSTS の検査で「TOO SHORT (less than 180 days)」 という警告を出します。