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
25
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.5k
TypeScriptで統一したアーキテクチャ
masayaiseki
1
82
WebRTCの安全性証明をしたい
masayaiseki
0
29
Precise study on a SOA-PSA based optical signal regenerator with numerical analysis
masayaiseki
0
36
Other Decks in Technology
See All in Technology
新職業『オーケストレーター』誕生 — エージェント10体を同時に回すAgentOps
gunta
4
1.8k
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
590
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
290
(Test) ai-meetup slide creation
oikon48
1
210
Claude Code 2026年 最新アップデート
oikon48
10
7.5k
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
組織全体で実現する標準監視設計
yuobayashi
2
480
Scrumは歪む — 組織設計の原理原則
dashi
0
110
ランサムウエア対策してますか?やられた時の対策は本当にできてますか?AWSでのリスク分析と対応フローの泥臭いお話。
hootaki
0
110
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
250
20260305_【白金鉱業】分析者が地理情報を武器にするための軽量なアドホック分析環境
yucho147
3
220
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
580
Featured
See All Featured
Paper Plane
katiecoart
PRO
0
48k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
A better future with KSS
kneath
240
18k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
It's Worth the Effort
3n
188
29k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Abbi's Birthday
coloredviolet
2
5.3k
Music & Morning Musume
bryan
47
7.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Bash Introduction
62gerente
615
210k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
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を満たすことを証 明した Øより安全で効率的なプロトコルを提案した
ご清聴ありがとうございました