<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="recent.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xml:base="http://waterken.sourceforge.net/">

<id>http://waterken.sourceforge.net/recent</id>
<updated>2010-06-14T00:00:00Z</updated>
<title>Waterken News</title>
<subtitle>Capability security on the Web</subtitle>
<link href="recent.html"/>
<link rel="self" href="recent.xml"/>
<logo>site/icon.gif</logo>
<icon>site/icon.gif</icon>
<author>
    <name>Tyler Close</name>
    <uri>http://waterken.sourceforge.net/recent.html</uri>
</author>

<entry>
<id>http://waterken.sourceforge.net/recent#16</id>
<published>2010-06-14T00:00:00Z</published>
<updated>2010-06-14T00:00:00Z</updated>
<title>Slides from DCDP 2010</title>
<link href="dcdp2010/#title"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>These are the slides from my <a
href="http://soft.vub.ac.be/events/dcdp/">DCDP 2010</a> keynote. Much of the
presentation time was taken up by demos and Q&amp;A, but the slides will give
you a sense of the topics covered.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#15</id>
<published>2010-05-07T00:00:00Z</published>
<updated>2010-05-07T00:00:00Z</updated>
<title>Giving the keynote speech at DCDP 2010</title>
<link href="http://soft.vub.ac.be/events/dcdp/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p><strong>Using the Web for decentralized coordination of distributed
processes.<br/>  You <em>can</em> get there from here.</strong></p>
<p>At first blush, the Web might not seem like a good starting place for
decentralized coordination of distributed processes. A typical Web application
is vulnerable to multiple central authorities and so is not decentralized. Most
often, coping with the travails of distribution depends upon human intervention
via the browser's 'refresh' button; which doesn't bode well for headless
processes.  Coordination between Web applications, where it's done at all,
often results in complete vulnerability between participants. Looking at the
Web as a platform for decentralized coordination of distributed processes, it
seems reasonable to conclude: "You can't get there from here".</p>
<p>Sometimes, a different perspective is all that is needed to find a way
forward out of the maze. In this talk, we'll reacquaint ourselves with the
Web's core technologies: the URL, HTTP and TLS. With a fresh outlook on these
technologies, we'll explore how to use them for the desired effect, while still
working within the existing Web infrastructure. Using simple and compatible
extensions to the Web, we'll study cases where we can now coordinate the
formerly intractable. The Waterken Server and an extended Web browser enable
demonstration of these implementation techniques. With a different perspective
on where "here" is, we'll get "there".</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#14</id>
<published>2010-01-27T00:00:00Z</published>
<updated>2010-01-27T00:00:00Z</updated>
<title>W3C FPWD: Uniform Messaging Policy (UMP), Level One</title>
<link href="http://www.w3.org/TR/UMP/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>The Same Origin Policy is a mess. It cripples legitimate Web pages to
messaging with only their own host, instead of the whole Web; yet is still rife
with devastating security gotchas. The ground rules are setup to favor the
attacker over the legitimate developer. The UMP is a first step towards a saner
security model for the Web. In this first step, we cut both the restrictions
and threats to cross-site messaging:</p>
<blockquote>
<p>The Uniform Messaging Policy (UMP) enables cross-site messaging that avoids
Cross-Site-Request-Forgery and similar attacks that abuse HTTP cookies and other
credentials.  For example, content from <code>customer.example.org</code> can
safely specify requests to resources determined by
<code>service.example.com</code>. Rather than restricting information retrieval
to a single origin, as the Same Origin Policy almost does, the Uniform Messaging
Policy supports origin independent messaging.</p>
</blockquote>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#13</id>
<published>2010-01-14T00:00:00Z</published>
<updated>2010-01-14T00:00:00Z</updated>
<title>Joe-E paper available</title>
<link href="http://www.eros-os.org/pipermail/e-lang/2010-January/013372.html"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>Mark Miller writes:</p>
<blockquote>
<p>I just wanted to let you and everyone know that this is an <a
href="http://www.cs.berkeley.edu/~daw/papers/joe-e-ndss10.pdf">*awesome*
paper</a>.  Besides explaining <a href="http://joe-e.org/">Joe-E</a> itself, it
is perhaps the clearest and most powerful statement to date of the benefits
provided by object-capability languages. I will be recommending this paper
widely.</p>
</blockquote>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#12</id>
<published>2009-06-10T00:00:00Z</published>
<updated>2009-06-10T00:01:00Z</updated>
<title>Origin isn't</title>
<link href="http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0889.html"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>For some time now, a W3C Working Group has been working on access-control
for <a href="http://www.w3.org/TR/access-control/">cross-origin
XMLHttpRequest</a>. Since the requests are cross-origin, all the use-cases
necessarily involve at least three distinct parties: the user's web browser,
the site hosting the resource and the site making the request. As we know from
"<a href="aclsdont/">ACLs don't</a>", it is impossible to express a correct
solution to this problem using only the ACL model. Nevertheless, the WG is
pursuing an ACL model solution based on the <a
href="http://tools.ietf.org/html/draft-abarth-origin-00">Origin proposal</a>.
The Origin proposal is essentially a degenerate form of stack introspection,
where only two of the stack frames are inspected. An HTTP cookie identifies the
principal associated with the top stack frame, and an Origin header is added by
the web browser to identify a principal from one of the preceding stack frames.
In the linked to email thread, we discuss how this solution fails when the
stack is deeper than two levels. Not yet understanding the impossibility in
their predicament, the WG is looking at moving to full stack introspection.
Remaining CSRF vulnerabilities in full stack introspection are discussed in
"ACLs don't".</p>
<p>Participants in the WG sometimes have a narrow view of what sites will want
to use cross-origin requests for, so it can be a little tricky to devise
compelling examples to demonstrate the Confused Deputy vulnerabilities in their
proposal. Otherwise, this WG's work will provide an ongoing source of security
vulnerabilities, so long as they continue using the ACL model. Proposals to at
least provide support for non-ACL solutions have thus far been rebuffed.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#11</id>
<published>2009-06-01T00:00:00Z</published>
<updated>2009-06-01T00:01:00Z</updated>
<title>web_send wsh: JSON shell free from Same Origin Policy</title>
<link href="http://waterken.sourceforge.net/web_send/wsh/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>When hosted by your server, the <a href="web_send/">web_send</a> library
turns your <a href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a>
console into a command line for your server-side application. The same code can
also be run by the Windows Script Host, a standard part of all Windows releases
since Windows 98. Doing so has two big advantages:</p>
<ul>
<li>no files need to be uploaded to your web server,</li>
<li>you are not restricted by the Same Origin Policy.</li>
</ul>
<p>As a result, you have a command line for all JSON resources on the Web. The
world is at your fingertips!</p>
<p>This page explains how to use the JSON shell, with examples from Google,
Yahoo!, Twitter and Flickr.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#10</id>
<published>2009-05-06T00:00:00Z</published>
<updated>2009-05-26T00:00:00Z</updated>
<title>web_send: JSON shell for the browser</title>
<link href="http://waterken.sourceforge.net/web_send/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>The web_send library provides a concise and expressive API for interacting
with arbitrary JSON resources from the web browser. When used from the
<a href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a> console,
it acts like a command line for your web server; a great help during
development of server-side code. The same API is also convenient for creating
an AJAX user interface to JSON resources; so code born on the interactive
command line migrates smoothly into application code. This tutorial also links
to a <a href="bang/?o=2009-06-01">live web page</a> where you can try out the
library against a simple server-side counter object.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#9</id>
<published>2009-03-25T00:00:00Z</published>
<updated>2009-03-25T00:00:00Z</updated>
<title>Deferred vs promise</title>
<link href="http://groups.google.com/group/serverjs/browse_thread/thread/e93f73ef97e88439"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>The <a href="http://groups.google.com/group/serverjs">serverjs</a> group is
working on a set of APIs for server-side Javascript programming. I've joined in
on a <a
href="http://groups.google.com/group/serverjs/browse_thread/thread/e93f73ef97e88439">thread
about an API for asynchronous operations</a>. So far, the discussion has
centered around the differences between the <a
href="http://en.wikipedia.org/wiki/Twisted_(software)#Deferreds">Deferred
concept</a> from Twisted and the <a
href="http://www.erights.org/elib/concurrency/refmech.html">promise concept</a>
from <a href="http://erights.org/">E</a> and <a
href="http://portal.acm.org/citation.cfm?id=54016">Barbara Liskov's work</a>.
Though I believe the Deferred concept is a direct descendant of the E promise,
the API is significantly different and doesn't support the most useful
programming idioms for asynchronous messaging. A Deferred doesn't support any
operations that can't just as easily be done with promises. I'm hoping to
convince the serverjs group to adopt promises instead of Deferreds;
specifically, the <a
href="http://waterken.svn.sourceforge.net/viewvc/waterken/server/trunk/waterken/config/file/site/ref_send.js?view=markup">Javascript
ref_send library</a>.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#8</id>
<published>2009-01-28T00:00:00Z</published>
<updated>2009-01-28T00:00:00Z</updated>
<title>ACLs don't</title>
<link href="http://waterken.sourceforge.net/aclsdont/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>The ACL model is unable to make correct access decisions for interactions
involving more than two principals, since required information is not retained
across message sends. Though this deficiency has long been documented in the
published literature, it is not widely understood. This logic error in the ACL
model is exploited by both the clickjacking and Cross-Site Request Forgery
attacks that affect many Web applications.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#7</id>
<published>2008-10-15T00:00:00Z</published>
<updated>2008-10-15T00:00:00Z</updated>
<title>clickjacking: The Confused Deputy rides again!</title>
<link href="http://waterken.sourceforge.net/clickjacking/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>The <a href="http://ha.ckers.org/blog/20080915/clickjacking/">announcement
of the clickjacking research</a> ignited interest in a number of Web exploits,
some of which seem new and others similar to known exploits. Already, there's
lots of
<a href="http://blog.whatwg.org/this-week-in-html-5-episode-7">discussion of
possible workarounds</a>, mainly focused on changes to the application's user
interface, or the browser's rendering logic. While the flexibility of the
browser's user interface languages gives clickjacking a polished look, this
flexibility isn't actually what enables these attacks. That blame lies with the
ambient authority model used by most web applications. If applications instead
used an explicit authorization model, they would not be vulnerable to
clickjacking and there would be no need to reduce the flexibility of the
browser's user interface languages. Web applications can be implemented to an
explicit authorization model without any change to Web protocols or
formats.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#6</id>
<published>2008-09-25T00:00:00Z</published>
<updated>2008-09-25T00:00:00Z</updated>
<title>Petname Tool: published for Firefox 3</title>
<link href="https://addons.mozilla.org/en-US/firefox/addon/957"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>I've ported the Petname Tool to the new
Places API for bookmarks in Firefox 3.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#5</id>
<published>2008-07-24T00:00:00Z</published>
<updated>2008-07-24T00:00:00Z</updated>
<title>Can the evolution of programming languages inform usable security?</title>
<link href="http://usablesecurity.com/2008/07/24/testing-for-usable-security-what-relationship-if-any-does-it-have-to-product-design/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>Richard Conlan blogs about a SOUPS 2008 panel that I participated in.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#4</id>
<published>2008-04-25T00:00:00Z</published>
<updated>2008-04-25T00:00:00Z</updated>
<title>Using promises to orchestrate Web interactions</title>
<link href="http://www.windley.com/archives/2008/04/tyler_close_using_promises_to_orchestrate_web_interactions.shtml"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>Phil Windley blogs about
<a href="http://www2008.org/program/program-DevTrack.html#seven">my WWW 2008
presentation</a> of the <a href="bang/?o=2009-06-01">ref_send library for
Javascript</a>.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#3</id>
<published>2008-03-22T00:00:00Z</published>
<updated>2008-03-22T00:00:00Z</updated>
<title>upgrade: Live fast, die young and leave a good-looking corpse</title>
<link href="http://waterken.sourceforge.net/upgrade/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>Any application that keeps state needs a plan for maintaining it as the
application evolves. Successfully managing these upgrades is one of the more
challenging aspects of application development. This document explains several
patterns and techniques for managing upgrade in a Waterken application.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#2</id>
<published>2008-03-06T00:00:00Z</published>
<updated>2008-03-06T00:00:00Z</updated>
<title>W3C Note on browser security UI finishes Last Call</title>
<link href="http://www.w3.org/TR/wsc-usecases/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>This publication completes my duties as editor for the W3C Web Security
Context Working Group. I think the
<a href="http://www.w3.org/TR/wsc-usecases/#problems">Problems with the status
quo</a> section provides a good summary of the challenges facing the group.</p>
</div></content>
</entry>

<entry>
<id>http://waterken.sourceforge.net/recent#1</id>
<published>2007-10-28T00:00:00Z</published>
<updated>2007-10-28T00:00:00Z</updated>
<title>web-key: Mashing with permission</title>
<link href="http://waterken.sourceforge.net/web-key/"/>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<p>Mashups, web applications that interact with other web applications, are
receiving increasing developer interest and providing users with valuable new
functionality. When one or more of the interacting applications have access
control requirements, many design challenges arise. Failure to meet these
challenges brings unnecessary risk to the user.  Addressing the challenges
using a poorly suited technique can add significant complexity to both the
application code and the user interface, all while not reducing risk to the
user.  In addition to examining and explaining these failings, this paper
introduces a solution, the web-key, an https URL convention for representing a
transferable permission in a web application.  Using web-keys, access control
challenges can be effectively solved using existing development tools for web
applications deployed to existing web browsers.</p>
</div></content>
</entry>

</feed>
