Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HSTSについて調べた
Search
Hiroto Sasagawa
July 10, 2023
Technology
0
310
HSTSについて調べた
Hiroto Sasagawa
July 10, 2023
Tweet
Share
More Decks by Hiroto Sasagawa
See All by Hiroto Sasagawa
IP Anycastとリバースプロキシ
nagutabby
0
320
第1回 AWS勉強会
nagutabby
0
410
第1回 GNU/Linux勉強会
nagutabby
0
410
第2回 GNU/Linux勉強会
nagutabby
0
360
第3回 GNU/Linux勉強会
nagutabby
0
390
DNSを標的とする攻撃
nagutabby
0
360
EC2とCloudWatchで始める高対話型ハニーポット運用
nagutabby
0
390
Other Decks in Technology
See All in Technology
ユーザーストーリーのレビューを自動化したみたの
bun913
1
290
Databricks における 『MLOps』
databricksjapan
2
120
DevOpsDays History and my DevOps story
kawaguti
PRO
7
1.3k
PHPカンファレンス小田原2024
ysknsid25
2
660
"好き"との生活/Regularly update profile with GitHub Actions
judeeeee
0
140
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
620
Apple Vision Pro trial session
akkeylab
0
120
Algyan イベント振り返り
linyixian
0
180
マルチアカウント環境への発見的統制の導入
ch1aki
1
1.3k
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
3
1.8k
Tebiki株式会社 エンジニア採用資料
tebiki
0
4k
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
7
1.9k
Featured
See All Featured
Infographics Made Easy
chrislema
237
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
The Invisible Customer
myddelton
114
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Designing Experiences People Love
moore
135
23k
How to name files
jennybc
64
92k
Embracing the Ebb and Flow
colly
78
4.1k
Navigating Team Friction
lara
177
13k
The Mythical Team-Month
searls
214
42k
YesSQL, Process and Tooling at Scale
rocio
162
13k
The Language of Interfaces
destraynor
151
23k
Transcript
HSTSについて調べた 笹川 尋翔
HSTS(HTTP Strict Transport Security) • サーバとクライアント間の通信でHTTPSを使うことを強制 • レスポンスヘッダにStrict-Transport-Securityを付与
HTTPのリダイレクトじゃ駄⽬? • HTTPに届いたリクエストをHTTPSにリダイレクト NGINXでリダイレクトを設定する例
中間者攻撃のリスクがある • リダイレクトされる前の通信は平⽂で⾏われる • 悪意のあるサーバを経由させると通信を盗聴、改ざんできる
HSTSの利点 • 中間者攻撃(Man In The Middle Attack)を防⽌ • Cookieなどの通信データを暗号化
HSTSの⽋点 • 例1.) そのドメインに初めてアクセスする場合 • 例2.) Strict-Transport-Securityが期限切れの場合 最初のリスエストとレスポンスの通信を HTTPで⾏うことができる
ディレクティブ • max-age=<expire-time> • HTTPSだけで接続することをWebブラウザが記憶する秒数 • includeSubDomains • サイトの全てのサブドメインにもHSTSを適⽤ •
preload • 最初の通信からHSTSを適⽤ • 仕様書(RFC 6797)では定義されていない
Cookieの暗号化 • CookieにSecure属性を設定 • 暗号化を保証 • HTTPSを使うときだけCookieが作成 • HSTSを使う •
Cookieをほぼ確実に暗号化できるが暗号化は保証されない • “HSTSの⽋点”で説明したように、HTTPで通信される場合がある
中間者攻撃 • クライアントと正規サーバの通信を、悪意のあるサーバを 経由して実施させる • 通信の盗聴、改ざんをする • 例) HTTPで通信している場合 •
平⽂でデータが渡されるため、盗聴や改ざんが容易
中間者攻撃の例
HSTSの設定⽅法 • Webアプリケーションフレームワークのバックエンド • 例) Ruby on Rails • Webサーバ
• 例) NGINX • DNSサーバ • 例) Cloudflare DNS
まとめ • HSTSはHTTPSでの接続を強制する仕組み • 単独では通信の暗号化を保証しない • HSTS ≠ 安全 •
preloadディレクティブ、Cookieのsecure属性を設定することが推奨
参考 • https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Strict- Transport-Security • https://www.chromium.org/hsts/ • https://hstspreload.org/