HTTP Strict Transport Security (HSTS)では、HSTSの結果をキャッシュする期間(max-age)をパラメータで指定できる。ただし、このmax-ageの推奨値は資料によってバラバラ。
- hstspreload.org (ブラウザのHSTS preload listの管理元*1)
- Mozilla Web Security guidelines (OWASP Cheat Sheet Series*2はこれを参照してる)
- Qualys (TLSの設定に問題がないかチェックするときによく使うQualys SSL Labs*3の提供元)
# | Reference | Minimum requirement | Rrecommendation |
---|---|---|---|
1 | hstspreload.org | 1 year (31536000)*4 | 2 years (63072000)*5 |
2 | Mozilla Web Security guidelines*6 | 6 months (15768000) | 2 years (63072000) |
3 | Qualys*7 | 120 days (10368000) | 1 year (31536000) |
- 他にもAppScanがHSTSのmax-ageをチェックしてる*8ようなのだが、最低要件などは不明。上がった指摘に対して1 year(31536000)を設定している例*9や2 years(63072000)を設定している例*10が見つかった。
- 組織ではないがOWASPのスライドで最低18 weeks (10886400) としているものがあった*11。
- Ruby on Railsのデフォルト値は2 years (63072000) *12*13
- 2020年の調査では、1年以上を設定しているものが半数以上*14。
*1:サイトの役割からして、minimum requirementは、max-ageの最低推奨値というより、preload listに載せる最低要件なので毛色がちょっと違うかも。
*2:https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.html
*4:https://hstspreload.org/#submission-requirements
*5:https://hstspreload.org/#deployment-recommendations
*6:https://infosec.mozilla.org/guidelines/web_security#http-strict-transport-security
*7:https://blog.qualys.com/vulnerabilities-research/2016/03/28/the-importance-of-a-proper-http-strict-transport-security-implementation-on-your-web-server
*8:https://help.hcltechsw.com/appscan/Enterprise/9.0.3/topics/r_whats_new.html?hl=max-age
*9:https://cloud.tencent.com/developer/article/1821415
*10:https://www.twblogs.net/a/5c53f096bd9eee06ef362c3c
*11:https://www.slideshare.net/narudomr/owasp-top-10-proactive-control-2016-c5c10
*12:https://github.com/rails/rails/pull/38345
*13:https://github.com/rails/rails/blob/main/actionpack/lib/action_dispatch/middleware/ssl.rb
*14:参照: https://almanac.httparchive.org/en/2020/security#http-strict-transport-security 365日で50パーセンタイルなので、少なくとも残りの半数は365日以上であることに注意