Introduction Background Design Implementation Evaluation Summary Same-origin policy Origin is a triple: <domain name, protocol, port> SOP is to guard the web sites JavaScript from interference by other sites JavaScript. SOP still allows communication by requests or intra-browser channels. In result scripts that have access to confidential data, can leak that data. Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Same-origin policy Origin is a triple: <domain name, protocol, port> SOP is to guard the web sites JavaScript from interference by other sites JavaScript. SOP still allows communication by requests or intra-browser channels. In result scripts that have access to confidential data, can leak that data. Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Basic challanges BFlow requires stronger policy than the SOP . BFlow has to accomplish this without encumbering deployment. Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Basic challanges BFlow requires stronger policy than the SOP . BFlow has to accomplish this without encumbering deployment. Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary The goal of the adversary is to read data that he should not be able to. Adversary capabilities are limited to: creating his own account running his own web server writing the JavaScript that the page includes Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary The goal of the adversary is to read data that he should not be able to. Adversary capabilities are limited to: creating his own account running his own web server writing the JavaScript that the page includes Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary The goal of the adversary is to read data that he should not be able to. Adversary capabilities are limited to: creating his own account running his own web server writing the JavaScript that the page includes Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary The goal of the adversary is to read data that he should not be able to. Adversary capabilities are limited to: creating his own account running his own web server writing the JavaScript that the page includes Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary The goal of the adversary is to read data that he should not be able to. Adversary capabilities are limited to: creating his own account running his own web server writing the JavaScript that the page includes Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Adversary ... well adversary capabilities aren’t only limited to this. He can still: compromise host site eavesdrop infect user’s operating system with malware use social-engineering attacks BFlow doesn’t protect against such attacks Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Attacks Paths JavaScript injections Third party malicious JavaScript Intra-browser communication Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Attacks Paths JavaScript injections Third party malicious JavaScript Intra-browser communication Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Attacks Paths JavaScript injections Third party malicious JavaScript Intra-browser communication Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Attacks Paths JavaScript injections Third party malicious JavaScript Intra-browser communication Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The system has to be adopted by: developers web sites users Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The system has to be adopted by: developers web sites users Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The system has to be adopted by: developers web sites users Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The system has to be adopted by: developers web sites users Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The system has to be adopted by: developers web sites users Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption - Developers Design a system that preserves features: popular JavaScript constructions communication among concurrent browser scripts communication with remote web servers Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption - Developers Design a system that preserves features: popular JavaScript constructions communication among concurrent browser scripts communication with remote web servers Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption - Developers Design a system that preserves features: popular JavaScript constructions communication among concurrent browser scripts communication with remote web servers Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption - Developers Design a system that preserves features: popular JavaScript constructions communication among concurrent browser scripts communication with remote web servers Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption - Developers Design a system that preserves features: popular JavaScript constructions communication among concurrent browser scripts communication with remote web servers Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The design should be easy: for users to install for site developers to adopt for extension developers to adopt Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The design should be easy: for users to install for site developers to adopt for extension developers to adopt Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The design should be easy: for users to install for site developers to adopt for extension developers to adopt Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The design should be easy: for users to install for site developers to adopt for extension developers to adopt Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Flexibility and Adoption The design should be easy: for users to install for site developers to adopt for extension developers to adopt Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Deployment effort goal Users installing a browser plugin Site developers decide which data is confidential Third-party developers designing extension that handle BFlow Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Deployment effort goal Users installing a browser plugin Site developers decide which data is confidential Third-party developers designing extension that handle BFlow Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Deployment effort goal Users installing a browser plugin Site developers decide which data is confidential Third-party developers designing extension that handle BFlow Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Deployment effort goal Users installing a browser plugin Site developers decide which data is confidential Third-party developers designing extension that handle BFlow Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design Design of BFlow consists of: Labels Zones Reference Monitor Gateways Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Label Label is a set of tags Tag is a token indicating category of confidentiality Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Label Label is a set of tags Tag is a token indicating category of confidentiality Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Label Label is a set of tags Tag is a token indicating category of confidentiality Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Zone Zone is a set of frames Zone label reflects data it has seen Zone explicitly asks to change its own label Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Zone Zone is a set of frames Zone label reflects data it has seen Zone explicitly asks to change its own label Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Zone Zone is a set of frames Zone label reflects data it has seen Zone explicitly asks to change its own label Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Zone Zone is a set of frames Zone label reflects data it has seen Zone explicitly asks to change its own label Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Invariant Top level frame is always in trusted zone Parent frame must be able to send messages to children Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Invariant Top level frame is always in trusted zone Parent frame must be able to send messages to children Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Invariant Top level frame is always in trusted zone Parent frame must be able to send messages to children Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Intra-browser Communication Top level frame is always in trusted zone Parent frame must be able to send messages to children postMessage -> postMessageBF Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Intra-browser Communication Top level frame is always in trusted zone Parent frame must be able to send messages to children postMessage -> postMessageBF Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Intra-browser Communication Top level frame is always in trusted zone Parent frame must be able to send messages to children postMessage -> postMessageBF Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - Intra-browser Communication Top level frame is always in trusted zone Parent frame must be able to send messages to children postMessage -> postMessageBF Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - control browser-server communication Data can flow between browser and web servers RM and the server includes labels in HTTP requests and response Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - control browser-server communication Data can flow between browser and web servers RM and the server includes labels in HTTP requests and response Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design - control browser-server communication Data can flow between browser and web servers RM and the server includes labels in HTTP requests and response Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design -external server communication BFlow forbids communication after script have seen confidential data ... this is too restrictive for some applications ... so the developer can create a request declassification Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design -external server communication BFlow forbids communication after script have seen confidential data ... this is too restrictive for some applications ... so the developer can create a request declassification Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design -external server communication BFlow forbids communication after script have seen confidential data ... this is too restrictive for some applications ... so the developer can create a request declassification Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Design -external server communication BFlow forbids communication after script have seen confidential data ... this is too restrictive for some applications ... so the developer can create a request declassification Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Introduction Background Design Implementation Evaluation Summary Implementation Implementation includes: Client Server Server Storage Janusz Kudełka Privacy-Preserving Browser-Side Scripting BFlow
Recommend
More recommend