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
QUICの安全性解析と証明
Search
iseki
September 09, 2015
Technology
0
22
QUICの安全性解析と証明
http://fais.jsiam.org/2015-fall-jsiam.html
日本応用数理学会2015年度年会FAISオーガナイズド・セッションで発表した資料です。
iseki
September 09, 2015
Tweet
Share
More Decks by iseki
See All by iseki
TypeScriptで統一したアーキテクチャ
masayaiseki
0
1.1k
TypeScriptで統一したアーキテクチャ
masayaiseki
1
77
WebRTCの安全性証明をしたい
masayaiseki
0
24
Precise study on a SOA-PSA based optical signal regenerator with numerical analysis
masayaiseki
0
26
Other Decks in Technology
See All in Technology
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
160
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
480
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.2k
2025年夏 コーディングエージェントを統べる者
nwiizo
0
140
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
920
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
研究開発と製品開発、両利きのロボティクス
youtalk
1
520
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
130
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
400
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Building an army of robots
kneath
306
46k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
How STYLIGHT went responsive
nonsquared
100
5.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Rails Girls Zürich Keynote
gr2m
95
14k
Bash Introduction
62gerente
615
210k
Music & Morning Musume
bryan
46
6.8k
Transcript
QUICの安全性解析と証明 東京工業大学 藤崎研究室 井関 正也
本研究の成果 1. QUICに適した安全性モデルの構築と証明 2. QUICに対する攻撃の発見 3. より効率的なプロトコルの設計
研究背景 より高速で安全なプロトコルの開発が急務 インターネットトラフィック 増加 電子商取引数増加 高速 安全 TLS(Transport Layer Security)が最も普及している
いくつかの問題がある
TLSの問題点 最も普及しているセキュア通信を実現するためのプロトコル 機能 Ø Encryption Ø Authentication Ø Certification 問題点
Ø TCPを用いているので通信が遅い Ø プロトコル全体では安全性が証明されていない Ø ユーザの設定によっては脆弱になる
QUICの登場 パケットがロストしても 問題がない状況がある TCPの代わりにUDPを使用 弱い暗号の組み合わせ は排除 ひとつの組み合わせを使用 プロトコル全体の安全性は証明されていない 高速化 安全性向上
Quick UDP Internet Connections
研究目的 目的 Ø QUICの安全性の解析と証明 内容 Ø 安全性モデルの構築 Ø 安全性の証明
QUICとTLSの違い Øサポートアルゴリズム Ø通信レイヤ Øハンドシェイク ØResumption
QUICとTLSの違い Øサポートアルゴリズム Ø通信レイヤ Øハンドシェイク ØResumption
QUICとTLSの違い RSA DH 鍵交換 RSA DSA 署名 AES RC4 暗号化
× × ECDH ECDSA AES × × TLS QUIC
QUICとTLSの違い Øサポートアルゴリズム Ø通信レイヤ Øハンドシェイク ØResumption
QUICとTLSの違い TCP + TLS QUIC
QUICとTLSの違い sync CHLO TCP + TLS QUIC
QUICとTLSの違い sync sync+ack CHLO TCP + TLS QUIC REJ
QUICとTLSの違い sync sync+ack ack CHLO TCP + TLS QUIC REJ
CHLO
QUICとTLSの違い sync sync+ack ack Hello CHLO TCP + TLS QUIC
REJ CHLO SHLO
QUICとTLSの違い sync sync+ack ack Hello Hello CHLO TCP + TLS
QUIC REJ CHLO SHLO
QUICとTLSの違い sync sync+ack ack Hello Hello Finish CHLO TCP +
TLS QUIC REJ CHLO SHLO
QUICとTLSの違い sync sync+ack ack Hello Hello Finish Finish CHLO TCP
+ TLS QUIC REJ CHLO SHLO
QUICとTLSの違い Øサポートアルゴリズム Ø通信レイヤ Øハンドシェイク ØResumption
TLSのハンドシェイク
TLSのハンドシェイク rc rc : random
TLSのハンドシェイク rc rc : random Ts : public ts :
secret Ts, ts
TLSのハンドシェイク rc rc : random (rs ,Ts ,σs ) Ts
: public ts : secret rs : random σs : Signature ts
TLSのハンドシェイク rc rc : random Tc : public tc :
secret (rs ,Ts ,σs ) ts Tc, tc Ts : public ts : secret rs : random σs : Signature
TLSのハンドシェイク rc (rs ,Ts ,σs ) ts Tc rc :
random Tc : public tc : secret Ts : public ts : secret rs : random σs : Signature
TLSのハンドシェイク rc rc : random Tc : public tc :
secret finc : finish msg σc : Signature (rs ,Ts ,σs ) (Tc ,σc ,finc ) ts Ts : public ts : secret rs : random σs : Signature
TLSのハンドシェイク rc (rs ,Ts ,σs ) Ts : public ts
: secret rs : random σs : Signature (Tc ,σc ,finc ) rc : random Tc : public tc : secret finc : finish msg σc : Signature
TLSのハンドシェイク rc (rs ,Ts ,σs ) Ts : public ts
: secret rs : random σs : Signature fins : finish msg fins (Tc ,σc ,finc ) rc : random Tc : public tc : secret finc : finish msg σc : Signature
QUICのハンドシェイク
QUICのハンドシェイク
QUICのハンドシェイク Ts, ts Ts : public ts : secret
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature ts
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature ts Tc, tc Tc : public tc : secret
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature ts Tc Tc : public tc : secret
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature ts Tc : public tc : secret rc : random (ID,rc ,Tc )
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc )
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s , t* s
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s cs = Enc( , T* s )
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s cs = Enc( , T* s ) T* s , tc
QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret
ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s cs = Enc( , T* s )
QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )
(ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
QUICとTLSの違い Ø認証 ØTLS:両側認証可能 ØQUIC:片側認証のみ Ø鍵交換 ØTLS:1つの鍵 ØQUIC:2つの鍵
QUICとTLSの違い Ø認証 ØTLS:両側認証可能 ØQUIC:片側認証のみ Ø鍵交換 ØTLS:1つの鍵 ØQUIC:2つの鍵
QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )
(ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
QUICとTLSの違い Ø認証 ØTLS:両側認証可能 ØQUIC:片側認証のみ Ø鍵交換 ØTLS:1つの鍵 ØQUIC:2つの鍵
QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )
(ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
QUICとTLSの違い Øサポートアルゴリズム Ø通信レイヤ Øハンドシェイク ØResumption
TLSのResumption
TLSのResumption rc rc : random
TLSのResumption rc rc : random (rs ,fins ) rs :
random fins : finish msg
TLSのResumption rc rc : random finc : finish msg (rs
,fins ) rs : random fins : finish msg finc
QUICのResumption T* s : public t* s : secret t*
s T* s
QUICのResumption T* s : public t* s : secret t*
s T* s Tc, tc Tc : public tc : secret
QUICのResumption T* s : public t* s : secret t*
s Tc Tc : public tc : secret
QUICのResumption T* s : public t* s : secret t*
s Tc : public tc : secret rc : random ID :client ID (ID,rc ,Tc )
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc )
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc ) T* s , t* s
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc ) T* s
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc ) cs = Enc( , T* s )
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc ) cs = Enc( , T* s ) T* s , tc
QUICのResumption T* s : public t* s : secret Tc
: public tc : secret rc : random ID :client ID (ID,rc ,Tc ) cs = Enc( , T* s )
QUICとTLSの違い rc (rs , fins ) TLSのResumption QUICのResumption finc (ID,rc
,Tc ) cs = Enc( , T* s ) T* s t* s
既存研究の安全性モデル ACCE[1] ØMutual authentication 攻撃者はClientとServer両方になりすましできない ØChannel security 攻撃者は通信内容を知ることができない [1] T.
Jager et al., “On the security of the TLS-DHE in the Standard Model”, CRYPTO 2012
既存研究の安全性モデル SACCE[1] ØServer authentication 攻撃者はServerになりすましできない ØChannel security 攻撃者は通信内容を知ることができない [1] H.Krawczyk
et al., “On the security of the TLS protocol: A systematic analysis”, CRYPTO 2013
既存研究の安全性モデル SACCE[1] ØServer authentication 攻撃者はServerになりすましできない ØChannel security 攻撃者は通信内容を知ることができない [1] H.Krawczyk
et al., “On the security of the TLS protocol: A systematic analysis”, CRYPTO 2013
既存研究のモデル
既存研究のモデル
既存研究のモデル
既存研究のモデル
既存研究のモデル
既存研究の安全性モデル SACCE[1] ØServer authentication 攻撃者はServerになりすましできない ØChannel security 攻撃者は通信内容を知ることができない [1] H.Krawczyk
et al., “On the security of the TLS protocol: A systematic analysis”, CRYPTO 2013
既存研究のモデル
既存研究のモデル
既存研究のモデル
既存研究のモデル
既存研究の安全性モデル SACCE[1] ØServer authentication 攻撃者はServerになりすましできない ØChannel security 攻撃者は通信内容を知ることができない [1] H.Krawczyk
et al., “On the security of the TLS protocol: A systematic analysis”, CRYPTO 2013 Resumptionに対応していない
本研究の安全性モデル RSACCE ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel Binding
攻撃者は通信を乗っ取ることはできない
本研究の安全性モデル RSACCE ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel Binding
攻撃者は通信を乗っ取ることはできない
本研究の安全性モデル Resumption
本研究の安全性モデル RSACCE ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel Binding
攻撃者は通信を乗っ取ることはできない
本研究の安全性モデル Resumption
本研究の安全性モデル Resumption
本研究の安全性モデル RSACCE ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel Binding
攻撃者は通信を乗っ取ることはできない
本研究の安全性モデル Resumption
本研究の安全性モデル Resumption
本研究の安全性モデル Resumption
本研究の安全性モデル RSACCE ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel Binding
攻撃者は通信を乗っ取ることはできない QUICでは満たせない
QUICへの攻撃 (ID,rc ,Tc ) cs = Enc( , T* s
)
QUICへの攻撃 (ID,rc ,Tc ) cs = Enc( , T* s
) (ID,r’c ,T’c )
QUICへの攻撃 (ID,rc ,Tc ) cs = Enc( , T* s
) (ID,r’c ,T’c )
QUICへの攻撃 (ID,rc ,Tc ) cs = Enc( , T* s
) (ID,r’c ,T’c ) 秘密情報が一致しないため鍵の交換ができない
本研究の安全性モデル RSACCE secure ØServer authentication 攻撃者はServerになりすましできない ØChannel confidentiality 攻撃者は通信内容を知ることができない ØChannel
Binding 攻撃者は通信を乗っ取ることはできない RSACCE secure strong RSACCE secure
QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能
QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能 (pk,sk) <- KeyGen(1k) σc <- Sign(sk, ID|rc
|Tc ) cc <- Enc( ,σc ) Resumption
QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能 (ID,rc ,Tc ,pk, cc ) (pk,sk) <-
KeyGen(1k) σc <- Sign(sk, ID|rc |Tc ) cc <- Enc( ,σc ) Resumption
QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能 (ID,rc ,Tc ,pk cc ) (pk,sk) <-
KeyGen(1k) σc <- Sign(sk, ID|rc |Tc ) cc <- Enc( ,σc ) 攻撃者はCc を作成できない Resumption
QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能 (ID,rc ,Tc ,pk, cc ) (pk,sk) <-
KeyGen(1k) σc <- Sign(sk, ID|rc |Tc ) cc <- Enc( ,σc ) 攻撃者はCc を作成できない Resumption strong RSACCEを満たす
Concurrent Work QACCE[1] ØServer Impersonation 攻撃者はServerになりすましできない ØChannel Corruption 攻撃者は通信内容を知ることができない ØIP
spoofing 攻撃者は途中から監視している通信を乗っ取ることはで きない [1]R. Lychev et al., “How Secure and Quick is QUIC ? Provable Security and Performance Analyses”, IEEE S&P 2015
Concurrent Work QACCE[1] ØServer Impersonation 攻撃者はServerになりすましできない ØChannel Corruption 攻撃者は通信内容を知ることができない ØIP
spoofing 攻撃者は途中から監視している通信を乗っ取ることはで きない [1]R. Lychev et al., “How Secure and Quick is QUIC ? Provable Security and Performance Analyses”, IEEE S&P 2015 Resumptionでの攻撃を防げない
QUICの問題点 ØQUIC-CETVの署名は無駄 Øインタラクションの回数が多い より効率的なスキームを設計
提案法のハンドシェイク Tc, tc
提案法のハンドシェイク tc (rc ,Tc )
提案法のハンドシェイク tc (rc ,Tc ) Ts, ts
提案法のハンドシェイク tc (rc ,Tc ) Ts
提案法のハンドシェイク tc (rc ,Tc ) Ts T* s, t* s
提案法のハンドシェイク tc (rc ,Tc ) Ts T* s
提案法のハンドシェイク tc (rc ,Tc ) (Ts ,σs ,ID, cs )
cs = Enc( , T* s )
提案法のハンドシェイク tc (rc ,Tc ) (Ts ,σs ,ID, cs )
cs = Enc( , T* s )
提案法のハンドシェイク tc (rc ,Tc ) (Ts ,σs ,ID, cs )
cs = Enc( , T* s ) T* s
提案法のハンドシェイク tc (rc ,Tc ) (Ts ,σs ,ID, cs )
cs = Enc( , T* s )
提案法のResumption t* s T* s Tc, tc
提案法のResumption t* s Tc, tc
提案法のResumption t* s tc (rc ,Tc ,ID,MAC) MAC = PRF(
, T* s | Tc | ID | rc )
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc )
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc ) T* s, t* s
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc ) T* s
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc ) cs = Enc( , T* s )
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc ) cs = Enc( , T* s ) T* s
提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*
s | Tc | ID | rc ) cs = Enc( , T* s )
提案スキーム QUIC 提案法 安全性 RSACCE sRSACCE インタラクション数 (Full handshake) 4
2 インタラクショ ン数 (Resumption) 2 2
まとめ ØRSACCE安全性モデルを提案した ØQUICがRSACCEを満たすことを証明した ØQUIC-CETVがstrong RSACCEを満たすことを証 明した Øより安全で効率的なプロトコルを提案した
ご清聴ありがとうございました