Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
QUICの安全性解析と証明
Search
iseki
September 09, 2015
Technology
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
QUICの安全性解析と証明
http://fais.jsiam.org/2015-fall-jsiam.html
日本応用数理学会2015年度年会FAISオーガナイズド・セッションで発表した資料です。
iseki
September 09, 2015
More Decks by iseki
See All by iseki
TypeScriptで統一したアーキテクチャ
masayaiseki
0
1.8k
TypeScriptで統一したアーキテクチャ
masayaiseki
1
90
WebRTCの安全性証明をしたい
masayaiseki
0
40
Precise study on a SOA-PSA based optical signal regenerator with numerical analysis
masayaiseki
0
52
Other Decks in Technology
See All in Technology
20260915deck.gl-raster を使ってみた
rena1208
0
180
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
130
Mastering Agentic Development: Harness Engineering for Effective Coding Agents
konippi
3
660
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
140
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
260
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
460
PQC移行の今 -- IETF からみた現在地
satokan
4
700
Coil3を内部実装から読み解く~キャッシュ戦略とAVIF画像の描画〜/nikkei-tech-talk50
nikkei_engineer_recruiting
0
180
企業の現実世界をグラフで写し取る
sansantech
PRO
0
220
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
390
【Findyテック文化祭ワークショップ】新卒エンジニア&採用担当と作る、 なりたい姿と今やるべき一歩
dip_tech
PRO
0
150
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
380
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Writing Fast Ruby
sferik
630
63k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
450
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
Accessibility Awareness
sabderemane
1
220
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
The SEO Collaboration Effect
kristinabergwall1
1
580
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を満たすことを証 明した Øより安全で効率的なプロトコルを提案した
ご清聴ありがとうございました