Sanzaru Capability-Based Interactions for Web Applications Raluca Sauciuc Shaunak Chatterjee University of California, Berkeley Motivation Limitations.

Slides:



Advertisements
Similar presentations
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Advertisements

6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
CSE331: Introduction to Networks and Security Lecture 28 Fall 2002.
CS533 Concepts of Operating Systems Class 20 Summary.
Extensible Scalable Monitoring for Clusters of Computers Eric Anderson U.C. Berkeley Summer 1997 NOW Retreat.
OS Spring’03 Introduction Operating Systems Spring 2003.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Figure 1.1 Interaction between applications and the operating system.
Course Map The Java Programming Language Basics Object-Oriented Programming Exception Handling Graphical User Interfaces and Applets Multithreading Communications.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Distributed Systems: Client/Server Computing
 Proxy Servers are software that act as intermediaries between client and servers on the Internet.  They help users on private networks get information.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Client/Server Architectures
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
Web 2.0: Concepts and Applications 11 The Web Becomes 2.0.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
HomeViews: P2P Middleware for Personal Data Sharing Applications Roxana Geambasu, Magdalena Balazinska, Steve Gribble, Hank Levy University of Washington.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
CS4273: Distributed System Technologies and Programming Lecture 13: Review.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Secure Credential Manager Claes Nilsson - Sony Ericsson
Architectures of distributed systems Fundamental Models
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
C C Implementation  Prototype based on Firefox 3.0b2 codebase/ Spidermonkey VM  Uses SM contexts to manage multiple JavaScript execution contexts simultaneously.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
Shuman Guo CSc 8320 Advanced Operating Systems
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
1 Combining Events and Threads for Scalable Network Services Peng Li and Steve Zdancewic University of Pennsylvania PLDI 2007, San Diego.
CIS 210 Systems Analysis and Development Week 8 Part II Designing Distributed and Internet Systems,
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Chapter 14: Protection Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 11, 2005 Chapter 14: Protection Goals.
Web 2.0: Concepts and Applications 11 The Web Becomes 2.0.
Client-Server applications Introduction to Java Applets Client-server architectures Why do Applets exist? What can an Applet do?
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
Computer Science 5204 Operating Systems Fall, 2012 Dr. Dennis Kafura Course Overview 1.
Lesson 2: First Java Programs. 2.1 Why Java? Java is one of the most popular programming languages in the world. Java is a modern object-oriented programming.
Cloud Computing in Systems Programming Curriculum Gustavo Rodriguez-Rivera, Purdue University Enrique Kortright, IBM.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Netscape Application Server
The Client/Server Database Environment
The Client/Server Database Environment
Chapter 14: Protection.
Web Application Architectures
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Web Application Architectures
Web Application Architectures
Presentation transcript:

Sanzaru Capability-Based Interactions for Web Applications Raluca Sauciuc Shaunak Chatterjee University of California, Berkeley Motivation Limitations of Single-Origin Policy - Better suited for early client-server web architecture, mostly static web content - Current shift towards more distributed architectures (e.g. P2P systems), RIAs No fine-grained access control - All or nothing! Capabilities are an old and elegant concept but rarely used in real-world applications - Combine designation with authorization More on Capabilities A capability is a communicable, unforgeable token of authority It represents a reference to an object along with an associated set of access rights Example: int fd = open("/etc/passwd", O_RDWR); - File descriptor, fd, is a capability since its presence in the process’s file descriptor table legitimizes access Capabilities can be shared or passed around CS 261: Computer Security, Fall 2008 CS 262A: Advanced Topics in Computer Systems, Fall 2008 CS 261: Computer Security, Fall 2008 CS 262A: Advanced Topics in Computer Systems, Fall Applet Extension White-list Capabilities Identity + op Applet Extension White-list Capabilities Granted Denied Capability Applet Extension White-list Capabilities Granted Denied Capability-2 + Data Capability-1 + Data Match found No match found File-1File-2 Match found Step 1: Transaction Initiation Initiation Request sent - Identity of applet - Intended operation (e.g. read/write) Identity of applet source checked with list of friendly sites (White-list DB table) Step 2: Capability granted Request denied if identity not found Otherwise, request granted - A new capability created from hashing a random number (hence unforgeable) - Also, a read/write stream is opened with the particular file This capability is sent back to the requesting applet as a token of authorization and designation Step 3: Capability-enabled Transaction Transaction is allowed only if accompanied by valid capability Valid transaction can read or write to the file initially requested for Extension acts as File Access Control Manager File-1File-2 File-1File-2 Related Work Protection in Programming Languages - Information hiding based on Abstract Data Types - Modular composition to enable local reasoning - Joe-E: capability-secure subset of Java - CaJa: capability-secure subset of JavaScript Arrows or monads for secure information flow - Abstraction of control flow statically verifiable Conclusion and Future Work: Promising first prototype – A step towards the evolution of the browser as the OS for web apps Asynchronous I/O and a thread-pool in the extension (will result in performance benefits when web apps become I/O bound) Handle more usability issues – GUI improvement for policy management, machine learning for white-list maintenance Limitations Firefox extension APIs impose serialization restrictions on DB access - Effectively single-threaded access because of SQLite caching JavaScript is single-threaded - Synchronous I/O may become a bottleneck - Solution is to have a thread pool for I/O in the extension and use an asynchronous style (“applet waits for completion event”) Project Objectives Overcome the limitations currently imposed on web applications - Single origin policy, local device access, etc. - Accomplish this in a secure manner Use capabilities to implement fine-grained access control Overall design should be able to accommodate various policies for Access Control List (ACL) management Performance optimizations and fault tolerance Schematic for Applet File I/O on Client Machine Implementation A Firefox extension (Sanzaru) was implemented to act as the interface between web apps and native devices - Handles JS library requests (file I/O, network I/O) - Expresses policies with access control lists - Generates capabilities based on ACLs Java Applets were chosen as web applications Alternately, a proxy could have been used instead of the browser extension – but this would have performance limitations Architecture Overview Firefox Extension + Thin JS library Web Apps Java, JS, Flash etc Trusted Browser Components