<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.7" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>What Comes Next</title>
	<link>http://whatcomesnext.brussin.com</link>
	<description>perspectives from the line between technology and business</description>
	<pubDate>Tue, 11 Mar 2008 18:03:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.7</generator>
	<language>en</language>
			<item>
		<title>Security on the Loosely Coupled Web</title>
		<link>http://whatcomesnext.brussin.com/2007/04/10/security-on-the-loosely-coupled-web/</link>
		<comments>http://whatcomesnext.brussin.com/2007/04/10/security-on-the-loosely-coupled-web/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 20:29:45 +0000</pubDate>
		<dc:creator>David Brussin</dc:creator>
		
		<category>Articles</category>

		<category>Software</category>

		<category>Startup</category>

		<category>Technology</category>

		<category>Security</category>

		<category>Consumer</category>

		<category>Innovation</category>

		<guid isPermaLink="false">http://whatcomesnext.brussin.com/2007/04/10/security-on-the-loosely-coupled-web/</guid>
		<description><![CDATA[There is a growing trend in consumer web applications in which one site will ask users for their usernames and passwords on other sites. Using these credentials, a site will log onto the other sites to carry out actions on behalf of, and hopefully with the informed consent of, the user.
&#8216;On behalf of&#8217; logins
LinkedIn and [...]]]></description>
			<content:encoded><![CDATA[<p>There is a growing trend in consumer web applications in which one site will ask users for their usernames and passwords on other sites. Using these credentials, a site will log onto the other sites to carry out actions on behalf of, and hopefully with the informed consent of, the user.</p>
<h2>&#8216;On behalf of&#8217; logins</h2>
<p><a href="http://www.linkedin.com/">LinkedIn</a> and <a href="http://plaxo.com/">Plaxo</a> are examples of sites doing this to import contact information. In fact, Plaxo makes this functionality available as a <a href="http://www.plaxo.com/api/widget">service</a> to developers of other applications. <a href="http://www.slide.com/">Slide</a>, <a href="http://www.rockyou.com/">RockYou</a>, <a href="http://photobucket.com/">Photobucket</a> and a bunch of other widget publishers do this to smooth the process of getting their widgets on users&#8217; pages on MySpace, Bebo, Hi5 and the others. Also, some of the more interesting mashups involve data from the <a href="http://en.wikipedia.org/wiki/Deep_web">deep web</a>, and require usernames/passwords to get it from 3rd party sites.</p>
<h2>API-based authentication</h2>
<p>Contrast the &#8216;on behalf of&#8217; approach with that of Facebook, which exposes <a href="http://developers.facebook.com/documentation.php?v=1.0&#038;doc=auth">APIs</a> providing for access by 3rd party applications, on behalf of users, through a direct authentication by the user to Facebook. As long as the APIs support the access required, this eliminates the need for the 3rd party to collect usernames and passwords.</p>
<p>The fact that MySpace and others don&#8217;t have API access (or complete enough APIs) to their sites is what has driven developers to collect credentials and act on behalf of users. </p>
<p>Some sites actually have APIs but don&#8217;t take advantage of the fact that they could use them to tighten up security. While Salesforce could use the Facebook-style authentication for 3rd party apps, they instead have those apps solicit and store user credentials (by policy, they allow only &#8220;<a href="http://www.salesforce.com/us/appexchange/certifying.jsp#">certified</a>&#8221; apps to do so).</p>
<h2>Why are &#8216;on behalf of&#8217; logins a problem?</h2>
<p>If the 3rd party site is deserving of users&#8217; trust, and everything works properly, there should be nothing wrong with these logins. We don&#8217;t worry much about local applications doing this type of thing: blog editors, web design programs, browsers and countless other local apps all store user credentials for 3rd party apps and sites. In fact, this type of login is enabling startups to drive innovation in the new social network ecosystem; if they had to wait for the MySpaces of the world to publish APIs or enable new functionality, these companies would be dead in the water.</p>
<p>In reality, there are some real problems to think about. In addition to a couple of shared issues, the key differences from local applications are also the problems here:</p>
<ul>
<li>Trust of the application and vendor - an issue with both web and local applications. The decentralized and volatile nature of web applications, and the lack of user-centric security infrastructure (such as local anti-virus and anti-malware software), make this a tough problem for web applications.
<li>Authorization of the specific actions that apps take on behalf of their users - an issue with both web and local applications; if this is done really well, the problem of trust of the app and vendor is diminished.</li>
<li>Location of user credentials - in web applications, these credentials live &#8216;in the cloud&#8217; somewhere. The vendor claims and reality of the security of those credentials are at best hard to verify.</li>
<li>Scale - the barriers of installing, and updating, local software limit the scale of this problem in that world. Web applications are easy to sign up for and can be updated multiple times a day, leading to a lot of complexity in managing overall user security.</li>
</ul>
<p>It looks like a solution probably starts with a way to give users centralized control and management of:</p>
<ul>
<li>Authentication credentials</li>
<li>Authorization of &#8216;on behalf of&#8217; logins</li>
<li>Authorization of specific &#8216;on behalf of&#8217; actions</li>
</ul>
<h2>What about OpenID?</h2>
<p><a href="http://openid.net/">OpenID</a> is a framework for decentralized identity. It supports decentralized <a href="http://openid.net/specs/openid-authentication-2_0-11.html">authentication</a> and structured <a href="http://openid.net/specs/openid-attribute-exchange-1_0-04.html">sharing</a> of personal information.</p>
<p>&#8216;Decentralized&#8217; in OpenID terms means decentralized from the perspective of web applications; this can in fact mean centralized from the user&#8217;s perspective. OpenID could be used to do logins on behalf of users without the collection of credentials, but it does not address the problem of authorization of those &#8216;on behalf of&#8217; actions. The structured sharing of personal information involves a narrow kind of authorization, but too limited to solve this problem.</p>
<p>The transparency of &#8216;on behalf of&#8217; action is itself a pretty complex problem - it requires giving the user a way to see and understand what the 3rd party app will go and do for them on the other site. I&#8217;m not sure whether this is a problem OpenID is interested in tackling. If it develops momentum as an identity standard, it would certainly be nice to see it go beyond authentication and identity to a more complete view of security (something Microsoft&#8217;s virtually dead <a href="http://en.wikipedia.org/wiki/Microsoft_Passport_Network">Passport</a> initiative and the <a href="http://en.wikipedia.org/wiki/Liberty_alliance">Liberty Alliance</a> project both failed to do).
</p>
]]></content:encoded>
			<wfw:commentRss>http://whatcomesnext.brussin.com/2007/04/10/security-on-the-loosely-coupled-web/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rumpelstiltskin&#8217;s reporting interface</title>
		<link>http://whatcomesnext.brussin.com/2007/01/21/rumpelstiltskins-reporting-interface/</link>
		<comments>http://whatcomesnext.brussin.com/2007/01/21/rumpelstiltskins-reporting-interface/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 06:01:32 +0000</pubDate>
		<dc:creator>David Brussin</dc:creator>
		
		<category>Articles</category>

		<category>TurnTide</category>

		<category>Software</category>

		<category>Startup</category>

		<category>Enterprise</category>

		<guid isPermaLink="false">http://whatcomesnext.brussin.com/2007/01/21/rumpelstiltskins-reporting-interface/</guid>
		<description><![CDATA[ If Rumpelstiltskin sold a product to enterprise customers, he would quickly learn a lesson that we learned at my last company: no matter how fantastically his product could spin straw into gold, his sales would also depend on his product&#8217;s ability to display and report on every aspect of the spinning process. It doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image15" src="http://whatcomesnext.brussin.com/wp-content/uploads/2007/01/rumpelstiltskin_150x193.jpg" class="alignleft" alt="Rumpelstiltskin" /> If Rumpelstiltskin sold a product to enterprise customers, he would quickly learn a lesson that we learned at my last company: no matter how fantastically his product could spin straw into gold, his sales would also depend on his product&#8217;s ability to display and report on every aspect of the spinning process. It doesn&#8217;t matter if your product works like <a href="http://www.infrastructure2-1.com/peter_christy/2006/10/dont_try_to_und.html">magic</a>; if it can&#8217;t effectively communicate about the work it is doing, it won&#8217;t survive in the enterprise for long.</p>
<p>At TurnTide, we created a product that approached the spam problem in a new way, designed to cooperate with traditional message-by-message spam filters. The Anti-Spam Router used TCP traffic shaping to effectively reach back across the network to the spammers, and limit the rate at which traffic could leave their systems destined for a protected network. The result for customers was great; they had dramatically less spam entering their networks, meaning they saved on infrastructure costs from bandwidth to servers in addition to keeping spam out of the inbox.</p>
<p>The problem we faced was an interesting one&#8230; how do we count and report on the traffic that the product keeps out of the network altogether? Traditional spam filters don&#8217;t have this problem; they can count and report on all of the messages they receive, process, and mark as spam. We used a few different techniques to report on traffic that was no longer hitting our customers&#8217; networks. We built baseline statistics when the product was initially installed, but before traffic shaping was enabled. We modeled the growth in baseline spam number experienced by the Internet at large. We added a custom reporting engine so that any statistic available to the system could be tracked, measured, compared, graphed and exported.</p>
<p>At the end of the day, these and other features were an effort to make a new kind product report as if it worked like the existing products in the market, since that was how customers had already learned to think about the problem. Since TurnTide really did work very differently from those existing products, reporting using the old metrics was never a perfect fit.</p>
<p>Building innovative products that go after existing markets from a new direction is a good strategy, and its the only way I&#8217;d ever want to enter a market as crowded as anti-spam was when we founded TurnTide. Existing markets, however, have established a way of thinking about problems and solutions. The existing vendors have educated the market, defining metrics for success in their own terms based on the structure of their solutions. Products that don&#8217;t operate within the expectations set by earlier offerings have some extra work to do; either directly re-educating the market, or trying to fit into the existing metrics until market traction allows for organic change in how people think about the problem. Even with its shortcomings, I&#8217;d definitely pick the later approach again.
</p>
]]></content:encoded>
			<wfw:commentRss>http://whatcomesnext.brussin.com/2007/01/21/rumpelstiltskins-reporting-interface/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.175 seconds -->

