The Virtual Faraday Cage
Total Page:16
File Type:pdf, Size:1020Kb
University of Calgary PRISM: University of Calgary's Digital Repository Graduate Studies The Vault: Electronic Theses and Dissertations 2013-08-09 The Virtual Faraday Cage King, James King, J. (2013). The Virtual Faraday Cage (Unpublished master's thesis). University of Calgary, Calgary, AB. doi:10.11575/PRISM/28416 http://hdl.handle.net/11023/867 master thesis University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission. Downloaded from PRISM: https://prism.ucalgary.ca UNIVERSITY OF CALGARY The Virtual Faraday Cage by James King A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF A MASTERS OF SCIENCE DEPARTMENT OF COMPUTER SCIENCE CALGARY, ALBERTA AUGUST, 2013 c James King 2013 Abstract This thesis' primary contribution is that of a new architecture for web application plat- forms and their extensions, entitled \The Virtual Faraday Cage". This new architecture addresses some of the privacy and security related problems associated with third-party extensions running within web application platforms. A proof-of-concept showing how the Virtual Faraday Cage could be implemented is described. This new architecture aims to help solve some of the key security and privacy con- cerns for end-users in web applications by creating a mechanism by which a third-party could create an extension that works with end-user data, but which could never leak such information back to the third-party. To facilitate this, the thesis also incorporates a basic privacy-aware access control mechanism. This architecture could be used for centralized web application platforms (such as Facebook) as well as decentralized plat- forms. Ideally, the Virtual Faraday Cage should be incorporated into the development of new web application platforms, but could also be implemented via wrappers around existing application platform Application Programming Interfaces with minimal changes to existing platform code or workflows. ii Acknowledgments I would first like to thank my supervisors Ken Barker and Jalal Kawash. Without their guidance and mentorship, and their patience and support { I would not have completed my program or produced this work. I have the utmost respect for both Dr. Barker and Dr. Kawash as professors and supervisors, and I believe that anyone would be fortunate to have their instruction and guidance. While I did not complete my degree under them, special mention is deserved for my original supervisors, Rei Safavi-Naini and John Aycock { who both gave me the initial opportunity to come and study at the University of Calgary, and also the flexibility to change my area of research afterwards. I'd also like to thank my committee members, Dr. Gregory Hagen and Dr. Payman Mohassel, as well as my neutral chair Dr. Peter Høyer. Both Dr. Hagen and Dr. Mo- hassel were very approachable during the final leg of my journey, and I appreciated their examination of my work. Dr. Hagen's feedback regarding Canadian privacy law was es- pecially welcome, and I am happy to have expanded my thesis to address that specifically. More generally, I'd like to thank the University of Calgary's Department of Computer Science { their other faculty members, their IT staff, the department chair Dr. Carey Williams, as well as their office staff. Acknowledgments are also deserved for all the support and training I received at Florida Atlantic University and especially their Department of Mathematics and Center for Cryptology and Information Security. Without the numerous people there that helped shape and prepare me for graduate school, I would have never come to the University of Calgary or pursued the path that I took. In particular, exceptional thanks should be reserved for Dr. Rainer Steinwandt, Dr. Ronald Mullin, Dr. Spyros Magliveras, and Dr. Michal Sramka.ˇ It's impossible for me to name everyone who has helped me along, but final thanks should go to all my friends and family who have given me their support during my studies. iii iv Table of Contents Abstract . ii Acknowledgments . iii Table of Contents . iv List of Figures . vii 1 Introduction . 1 1.1 Premise . 1 1.2 Organization of this Thesis . 3 1.3 Background & Motivations . 4 1.3.1 Web Applications . 4 1.3.2 Online Social Networks as a Specific Web Application Platform . 5 1.4 Privacy . 7 1.4.1 Defining and Describing Privacy . 8 1.4.2 Laws, Business, and the Value of Privacy . 11 1.5 Social Networks . 22 1.5.1 The Value of Social Network Data . 22 1.5.2 Innate Risks, Threats, and Concerns . 28 1.6 Security . 33 1.6.1 Access Control and Information Flow Control . 34 1.6.2 Sandboxing . 36 1.7 Summary . 38 2 Related Work . 40 2.1 Overview . 40 2.2 Software and Web Applications . 41 2.2.1 P3P and Privacy Policies . 41 2.2.2 Better Developer Tools . 45 2.2.3 Empowering the End-User . 46 2.3 Social Networks . 46 2.3.1 Hiding End-User Data . 46 2.3.2 Third-Party Extensions . 49 2.4 Browser Extensions . 50 2.5 Summary . 52 3 Theoretical Model . 54 3.1 Basics . 54 3.2 Formal Model . 55 3.2.1 Foundations . 55 3.2.2 Information leakage . 65 3.3 Summary . 72 4 Architecture . 73 4.1 Preamble . 73 4.2 Features . 76 4.2.1 Data URIs . 76 v 4.2.2 Hashed IDs and Opaque IDs . 76 4.2.3 Callbacks . 77 4.2.4 Seamless Remote Procedure Calls and Interface Reconstruction . 78 4.3 Information Flow Control . 79 4.4 URIs . 82 4.4.1 Domains . 82 4.4.2 Paths . 83 4.5 Application Programming Interfaces . 86 4.5.1 Web Application Platform API . 86 4.5.2 Third-Party Extension API . 92 4.5.3 Shared Methods . 93 4.5.4 Relationship with the Theoretical Model . 94 4.6 High-Level Protocol . 94 4.6.1 Accessing a Third-Party Extension . 94 4.6.2 Mutual Authentication . 98 4.6.3 Privacy by Proxy . 99 4.7 Remote Procedure Calls . 100 4.7.1 Overview . 100 4.7.2 Protocol Requirements . 101 4.7.3 Requirement Fulfillment . 101 4.7.4 Protocol . 103 4.7.5 Messages . 103 4.7.6 Serialized Data . 105 4.7.7 Responses . 105 4.7.8 Security . 106 4.8 Sandboxing . 106 4.9 Inter-extension Communication . 108 4.10 Methodology and Proof-of-Concept . 110 4.10.1 Methodology . 110 4.10.2 Development . 112 4.10.3 Proof-of-Concept . 113 4.10.4 Formal Model . 113 4.10.5 Example Third-Party . 116 4.10.6 Facebook Wrapper . 118 4.11 Effects and Examples . 119 4.11.1 A more connected web . 120 4.11.2 Examples . 122 4.12 Summary . 128 5 Analysis & Conclusion . 129 5.1 Comparisons and Contrast . 129 5.1.1 PIPEDA Compliance . 129 5.1.2 Comparisons with Other Works . 138 5.2 Time & Space Complexity . 142 5.2.1 Hashed IDs . 143 5.2.2 Opaque IDs . 143 5.2.3 Views . 144 5.2.4 Access Control . 145 5.2.5 Subscriptions . 146 5.2.6 Sandboxing . 146 5.2.7 Protocol . 148 5.2.8 Summary . ..