Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QUICの安全性解析と証明

iseki
September 09, 2015

 QUICの安全性解析と証明

http://fais.jsiam.org/2015-fall-jsiam.html
日本応用数理学会2015年度年会FAISオーガナイズド・セッションで発表した資料です。

iseki

September 09, 2015
Tweet

More Decks by iseki

Other Decks in Technology

Transcript

  1. TLSの問題点 最も普及しているセキュア通信を実現するためのプロトコル 機能 Ø Encryption Ø Authentication Ø Certification 問題点

    Ø TCPを用いているので通信が遅い Ø プロトコル全体では安全性が証明されていない Ø ユーザの設定によっては脆弱になる
  2. TLSのハンドシェイク rc rc : random (rs ,Ts ,σs ) Ts

    : public ts : secret rs : random σs : Signature ts
  3. TLSのハンドシェイク rc rc : random Tc : public tc :

    secret (rs ,Ts ,σs ) ts Tc, tc Ts : public ts : secret rs : random σs : Signature
  4. TLSのハンドシェイク rc (rs ,Ts ,σs ) ts Tc rc :

    random Tc : public tc : secret Ts : public ts : secret rs : random σs : Signature
  5. 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
  6. 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
  7. 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
  8. QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret

    ID :client ID σs :Signature ts Tc, tc Tc : public tc : secret
  9. QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret

    ID :client ID σs :Signature ts Tc Tc : public tc : secret
  10. QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret

    ID :client ID σs :Signature ts Tc : public tc : secret rc : random (ID,rc ,Tc )
  11. QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret

    ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc )
  12. 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
  13. QUICのハンドシェイク (ID,Ts ,σs ) Ts : public ts : secret

    ID :client ID σs :Signature Tc : public tc : secret rc : random (ID,rc ,Tc ) T* s
  14. 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 )
  15. 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
  16. 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 )
  17. QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )

    (ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
  18. QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )

    (ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
  19. QUICとTLSの違い rc (rs ,Ts ,σs ) fins (ID,Ts ,σs )

    (ID,rc ,Tc ) cs = Enc( , T* s ) TLSのハンドシェイク QUICのハンドシェイク (Tc ,σc ,finc )
  20. TLSのResumption rc rc : random finc : finish msg (rs

    ,fins ) rs : random fins : finish msg finc
  21. QUICのResumption T* s : public t* s : secret t*

    s T* s Tc, tc Tc : public tc : secret
  22. QUICのResumption T* s : public t* s : secret t*

    s Tc : public tc : secret rc : random ID :client ID (ID,rc ,Tc )
  23. QUICのResumption T* s : public t* s : secret Tc

    : public tc : secret rc : random ID :client ID (ID,rc ,Tc )
  24. QUICのResumption T* s : public t* s : secret Tc

    : public tc : secret rc : random ID :client ID (ID,rc ,Tc ) T* s , t* s
  25. QUICのResumption T* s : public t* s : secret Tc

    : public tc : secret rc : random ID :client ID (ID,rc ,Tc ) T* s
  26. QUICのResumption T* s : public t* s : secret Tc

    : public tc : secret rc : random ID :client ID (ID,rc ,Tc ) cs = Enc( , T* s )
  27. 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
  28. QUICのResumption T* s : public t* s : secret Tc

    : public tc : secret rc : random ID :client ID (ID,rc ,Tc ) cs = Enc( , T* s )
  29. QUICへの攻撃 (ID,rc ,Tc ) cs = Enc( , T* s

    ) (ID,r’c ,T’c ) 秘密情報が一致しないため鍵の交換ができない
  30. QUICの安全性 ØQUIC-CETV ØPKIを用いないClient認証機能 (ID,rc ,Tc ,pk, cc ) (pk,sk) <-

    KeyGen(1k) σc <- Sign(sk, ID|rc |Tc ) cc <- Enc( ,σc ) Resumption
  31. 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
  32. 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を満たす
  33. 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
  34. 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での攻撃を防げない
  35. 提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*

    s | Tc | ID | rc ) cs = Enc( , T* s )
  36. 提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*

    s | Tc | ID | rc ) cs = Enc( , T* s ) T* s
  37. 提案法のResumption tc (rc ,Tc ,ID,MAC) MAC = PRF( , T*

    s | Tc | ID | rc ) cs = Enc( , T* s )