Presentation on theme: "Building Secure Mashups D. K. Smetters PARC Usable."— Presentation transcript:
Building Secure Mashups D. K. Smetters PARC Usable
The promise of Web 2.0 Your data, anytime anywhere… your friends your family your employer anybody elses you can get your hands on… combined with that of
Whats a mashup? Inputs: – User-generated data often personal user-generated data, such as photographs generated by the mashup user and their friends, family, favorite presidential canidates, cat, neighbors, and so on – Social network information another form of private, and even valuable data – Public or semi-public data sources databases of available information (e.g. Google Maps) with varying guarantees of correctness and constraints on use – Private data sources e.g. corporate data subject to some form of access control, subscription data, etc. Outputs: – User-focused result (e.g. a visualization) – A derived data source input for yet another mashup
Goal The goal of all browser/mashup security mechanisms is to ensure that: The data the user intends Is processed in the way the user intends By the entities s/he chooses Subject to additional constraints imposed by others with interest in that data. And nothing else.
Why is this hard? Securing mashups requires building systems designed for flexible, ad-hoc cross-organization delegation of limited access to sensitive data – all under easy user control. Data Owner Data Holders Data Transformation Service
Data Holders Why is this hard? Securing mashups requires building systems designed for flexible, ad-hoc cross-organization delegation of limited access to sensitive data – all under easy user control. Data Owner/User Data Holders Data Transformation Service Data Holders Data Transformation Service Data Holders Data Transformation Service
Avoid Use only public (or semi-public) data.
Embrace All your credentials are belong to us.
Reduce it to a previously solved problem Mashup services provided by trusted data holders themselves. (Or other sites the user chooses to trust.)
Looking Under the Lamppost Identify sets of a priori interesting data and enable delegation of access to those.
Building a Bridge Special privileges, accounts and relationships established to enable access to particular data for a particular purpose.
Outsourcing Identity provider or authorization service handles the problem and manages the relationship with the user(s).
Who are the users? Mashup developers – and the people who build their toolkits, etc. Owners and creators of data to be mashed Administrators of any of the hosts involved End users of resulting mashups
Connecting the Providers They Intend
Identifying Data Should site have access to your Misc folder?www.weasels.com Does it mean the same Misc folder I think it means? What did I put in that folder anyway?
Specifying Policies Only members of the finance department can read the current revenue information. Only the people I like can see whether Im going to the party tomorrow. Only members of the finance department can read the current revenue information. But only if theyre like, just going to read it. Not if theyre going to, say, average it against the public data from other companies in our sector. Except maybe when it makes us look good. Or when its my friends, trying to figure out if now is the time to look for a different job, or.. Only members of the finance department can read the current revenue information. But only if theyre like, just going to read it. Not if theyre going to, say, average it against the public data from other companies in our sector. Except maybe when it makes us look good. Or when its my friends, trying to figure out if now is the time to look for a different job, or..
Making the user an ally How can the user figure out what the system is doing (or trying to do)? How can they decide what to do when something goes wrong? This is hard enough when users are face to face with the site they need to authenticate – what about when its buried in a processing pipeline?
Love me, love my mechanism… I used to use Facebook, but I got off it because I wasnt happy with their iframe isolation… …oh, they have an expired cert, but at least its ev… …you cant put any stock in that – its not chrome…
The Error Attack As long as configuration errors are common, attacks can masquerade successfully as errors – and users will be acting rationally if they ignore them.
Whats a developer to do? the Service Provider MUST inform the User if it is unable to assure the Consumers true identity. The method in which the Service Provider informs the User and the quality of the identity assurance is beyond the scope of this specification. It is assumed that the Consumer has provided its RSA public key in a verified way to the Service Provider, in a manner which is beyond the scope of this specification. Mashup developers are focused on mashing, not securing. Will use the easisest mechanism available. Hopefully, thats the right one. Users are at the mercy of the mechanisms chosen by the services they want or need to use.
Points to Remember Security is a secondary goal – People do care. They just care about other things more. Dont make them choose – They dont care about understanding it in your terms. Love me, love my mechanism… This stuff is hard for people to understand. – After 10+ years, people still screw up SSL certs more often than not. Whatever you think of SSL, people ought to have figured out how to make it easier to manage by now. Its not hard to do. Whatever easiest-to-deploy cr*p option makes it through the current fragout will be with us for longer than we care to think. – The examples used to promote various alternatives are way too simple. They dont begin to enable people to evaluate how things will work down the road.