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
320
HSTSについて調べた
Hiroto Sasagawa
July 10, 2023
Tweet
Share
More Decks by Hiroto Sasagawa
See All by Hiroto Sasagawa
IP Anycastとリバースプロキシ
nagutabby
0
330
第1回 AWS勉強会
nagutabby
0
420
第1回 GNU/Linux勉強会
nagutabby
0
420
第2回 GNU/Linux勉強会
nagutabby
0
370
第3回 GNU/Linux勉強会
nagutabby
0
400
DNSを標的とする攻撃
nagutabby
0
370
EC2とCloudWatchで始める高対話型ハニーポット運用
nagutabby
0
390
Other Decks in Technology
See All in Technology
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
330
いつか使うかも貯金してたらめちゃめちゃ機能が増えてた話
riyaamemiya
0
610
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
340
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
1
360
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
140
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
130
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
710
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
280
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
380
Azureの基本的な権限管理の勉強会
yhana
1
2k
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
150
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Code Review Best Practice
trishagee
56
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
KATA
mclloyd
16
12k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
YesSQL, Process and Tooling at Scale
rocio
165
13k
RailsConf 2023
tenderlove
8
550
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
6
3.4k
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/