interoperability guided testing of quic implementations
play

Interoperability-Guided Testing of QUIC Implementations using - PowerPoint PPT Presentation

Interoperability-Guided Testing of QUIC Implementations using Symbolic Execution Felix Rath , Daniel Schemmel, Klaus Wehrle https://comsys.rwth-aachen.de EPIQ Workshop, Heraklion, Greece, 2018-12-04 QUANT ? Mozquic ? mvfst ? picoquic ?


  1. Interoperability-Guided Testing of QUIC Implementations using Symbolic Execution Felix Rath , Daniel Schemmel, Klaus Wehrle https://comsys.rwth-aachen.de EPIQ Workshop, Heraklion, Greece, 2018-12-04

  2. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  3. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  4. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  5. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  6. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  7. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  8. QUANT ? Mozquic ? mvfst ? picoquic ? AppleQUIC ? Are the implementations interoperable? Motivation 2 Felix Rath

  9. Can analyze complex communications Uncovered subtle, hard-to-detect bugs But: Deep interoperability testing requires more insight into implementations Our idea: Comparing belief states of endpoints Based on a common defjnition Provided by implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work 3 Felix Rath

  10. Uncovered subtle, hard-to-detect bugs But: Deep interoperability testing requires more insight into implementations Our idea: Comparing belief states of endpoints Based on a common defjnition Provided by implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications 3 Felix Rath

  11. But: Deep interoperability testing requires more insight into implementations Our idea: Comparing belief states of endpoints Based on a common defjnition Provided by implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs 3 Felix Rath

  12. Our idea: Comparing belief states of endpoints implementations Based on a common defjnition Provided by implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs • But: Deep interoperability testing requires more insight into 3 Felix Rath

  13. implementations Based on a common defjnition Provided by implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs • But: Deep interoperability testing requires more insight into • Our idea: Comparing belief states of endpoints 3 Felix Rath

  14. Provided by implementations implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs • But: Deep interoperability testing requires more insight into • Our idea: Comparing belief states of endpoints ▶ Based on a common defjnition 3 Felix Rath

  15. implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs • But: Deep interoperability testing requires more insight into • Our idea: Comparing belief states of endpoints ▶ Based on a common defjnition ▶ Provided by implementations 3 Felix Rath

  16. implementations We would like to propose the development of a comon way to query implementations for their current belief state. Results Summary • State-of-the-Art software testing approaches work ▶ Can analyze complex communications ▶ Uncovered subtle, hard-to-detect bugs • But: Deep interoperability testing requires more insight into • Our idea: Comparing belief states of endpoints ▶ Based on a common defjnition ▶ Provided by implementations 3 Felix Rath

  17. Observations: Requires a new “implementation” in the form of a specifjcation Even then: Verifjcation of implementations almost impossible Many implementations already available Test multiple implementations against each other Interoperability-issues occur when “things go wrong” Result: Either non-compliance or bug in standard Testing Interoperability • Checking an implementation for standard compliance is problematic 4 Felix Rath

  18. Observations: Even then: Verifjcation of implementations almost impossible Many implementations already available Test multiple implementations against each other Interoperability-issues occur when “things go wrong” Result: Either non-compliance or bug in standard Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation 4 Felix Rath

  19. Observations: Many implementations already available Test multiple implementations against each other Interoperability-issues occur when “things go wrong” Result: Either non-compliance or bug in standard Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation • Even then: Verifjcation of implementations almost impossible 4 Felix Rath

  20. Test multiple implementations against each other Observations: Interoperability-issues occur when “things go wrong” Result: Either non-compliance or bug in standard Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation • Even then: Verifjcation of implementations almost impossible • Many implementations already available 4 Felix Rath

  21. Observations: Interoperability-issues occur when “things go wrong” Result: Either non-compliance or bug in standard Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation • Even then: Verifjcation of implementations almost impossible • Many implementations already available • → Test multiple implementations against each other 4 Felix Rath

  22. Result: Either non-compliance or bug in standard Observations: Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation • Even then: Verifjcation of implementations almost impossible • Many implementations already available • → Test multiple implementations against each other • Interoperability-issues occur when “things go wrong” 4 Felix Rath

  23. Observations: Testing Interoperability • Checking an implementation for standard compliance is problematic • Requires a new “implementation” in the form of a specifjcation • Even then: Verifjcation of implementations almost impossible • Many implementations already available • → Test multiple implementations against each other • Interoperability-issues occur when “things go wrong” • Result: Either non-compliance or bug in standard 4 Felix Rath

  24. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  25. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  26. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  27. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  28. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  29. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  30. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

  31. Example 1: 4 open streams + 1 closed stream 5 open streams Example 2: malformed (?) packet “Things Going Wrong” 5 Felix Rath

Recommend


More recommend