<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.0.0 (http://www.squarespace.com/) on Thu, 28 Aug 2008 13:58:13 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>Commented.org</title><subtitle>Commented.org</subtitle><id>http://commented.org/blog/</id><link rel="alternate" type="application/xhtml+xml" href="http://commented.org/blog/"/><link rel="self" type="application/atom+xml" href="http://commented.org/blog/atom.xml"/><updated>2008-08-15T10:49:48Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.0.0 (http://www.squarespace.com/)">Squarespace</generator><entry><title>RESTful and user-centric authorization in OAuth</title><id>http://commented.org/blog/2008/4/28/restful-and-user-centric-authorization-in-oauth.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/4/28/restful-and-user-centric-authorization-in-oauth.html"/><author><name>Hans</name></author><published>2008-04-28T14:20:42Z</published><updated>2008-04-28T14:20:42Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><a href="http://oauth.net">OAuth</a> is a protocol for delegating access 
via APIs. </p>

<p>It has some <a href="http://groups.google.com/group/oauth/browse_thread/thread/d922878128309a4f/d89fe4378ee9d899#d89fe4378ee9d899">complexity in the protocol</a> which can be discussed, but some concerns are: </p>

<ul>
<li><em>state</em>, there are nonces and multiple types of session tokens to keep track of</li>
<li><em>no-sharing</em>, no easy way of sharing authorization tokens between systems: each token is only usable within its issued system. </li>
</ul>

<p>We can think about authorization in a <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful</a> and user-centric manner and create tokens independently from consumers and service providers. A user should be able to create a token and pass it to any and several service provider, which should be able to parse and act on it.</p>

<p>I picture a way to do this is to specify a unified token format that contains:</p>

<ul>
<li>A set of actions (GET/POST/PUT/DELETE) + resource identifier (URL)</li>
<li>A set of recipients (URLs)</li>
<li>An optional validity interval of this token</li>
<li>A set of creator identities (URL) + creator signatures of the token</li>
</ul>

<p>The resource identifiers may contain wild-cards (not sure: to be discussed to be usable)</p>

<p>A token to give Alice the right to post on this blog could then look roughly like</p>

<pre>
  recipients=http://alice.example.com
  actions=POST,http://commented.org/posts
  from-validity=2008-04-28Z
  to-validity=2008-12-31Z
  creators=http://commented.org,eW91IGhhZCB0byBsb29rPwoK
</pre>

<p>The resulting token could then be freely exchanged, and publicly posted if desirable. Encryption of the token may be feasible. A service provider should be able to parse the token and accept it if it&#8217;s properly signed by an acceptable creator.</p>

<p>The tokens now contain all the state information needed and can be cleanly passed around. Also, the standardized token format means service providers can present a common, unified UI to end-users, and there is no specific lock-in to any protocol &#8212; you could distribute the tokens through email if you wanted to.</p>

<p>Any thoughts?</p>
]]></content></entry><entry><title>A usable reputation web service</title><id>http://commented.org/blog/2008/4/15/a-usable-reputation-web-service.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/4/15/a-usable-reputation-web-service.html"/><author><name>Hans</name></author><published>2008-04-15T16:34:50Z</published><updated>2008-04-15T16:34:50Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>With the rise of social networking, the advent of <a href="http://openid.net">provable identities</a>, and ways to <a href="http://oauth.net">authorize access</a>, there is a growing need for a reputation system to recognize good content and good people.</p>

<p>I have been working on this and my principles have been that the system needs to:</p>

<ul>
<li><p>be simple and available as an API,</p></li>
<li><p>be decentralized and accept other systems to participate,</p></li>
<li><p>contain security measures that prevent gaming and abuse,</p></li>
<li><p>be transparent to users so that you know the hows and whys of the score (the correct level needs to be found here to prevent gaming)</p></li>
<li><p>accept reputation for any provable identity (including other systems),</p></li>
<li><p>collect explicit scoring from users,</p></li>
<li><p>implicitly derive reputation of identities by observing current and past behavior,</p></li>
<li><p>associate multiple identities. This means that <em>http://alice.example.com</em> should be able to associate her good karma with her secret <em>http://timerider.example.org</em> identity. This association must be kept hidden for others,</p></li>
<li><p>recognize different categories. A person may be highly rated in some areas, and not in others,</p></li>
<li><p>use a voting model that matches the real world. This model must be limited and untraceable between all parties. Positive behavior should be rewarded.</p></li>
</ul>

<p>APIs needed:</p>

<ul>
<li><p><em>Signup</em>. A user signs up by proving to the system that she own a URL. In exchange, the system creates some shared secret that can be used to authenticate (and possibly encrypt) API requests and responses. </p></li>
<li><p><em>Bind</em>. Binds an identity to a user&#8217;s existing identity.</p></li>
<li><p><em>Lookup</em>. Looks up the reputation for a specific category. The set of categories is intentionally kept small for simplicity.</p></li>
<li><p><em>Vote</em>. Submits a reputational vote for a user and a specific category. </p></li>
<li><p>Some security related APIs with a simple way to handle the life cycle of keys and trust.</p></li>
</ul>

<p>There could be some possible APIs for user&#8217;s profile management, and perhaps statistics.</p>

<p>For the back-end, there are other APIs that needs to be implemented to handle decentralized sharing and calculation of scores. More on that in a later post.</p>
]]></content></entry><entry><title>VeriSign open APIs</title><id>http://commented.org/blog/2008/4/7/verisign-open-apis.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/4/7/verisign-open-apis.html"/><author><name>Hans</name></author><published>2008-04-07T18:16:08Z</published><updated>2008-04-07T18:16:08Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>My old friends at VeriSign just opened up their <a href="http://blogs.verisign.com/identity/2008/04/calling_all_developers.php">VIP authentication APIs</a>. I like the idea of a VIP developer community. Good luck, guys!</p>

<p>Currently the APIs are the SOAP only, but maybe other flavors will follow. Maybe we&#8217;ll see some simpler REST APIs similar to the ones I made for Yubico a while back: <a href="http://yubico.com/developers/api/">Yubico Developer APIs</a>. </p>
]]></content></entry><entry><title>Actionscript 3.0 Duh! moment</title><category>programming</category><id>http://commented.org/blog/2008/3/25/actionscript-30-duh-moment.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/25/actionscript-30-duh-moment.html"/><author><name>Hans</name></author><published>2008-03-25T17:47:20Z</published><updated>2008-03-25T17:47:20Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>I&#8217;ve recently had the pleasure of writing some <a href="http://en.wikipedia.org/wiki/ActionScript#ActionScript_3.0">Actionscript 3.0</a> code for the <a href="http://www.adobe.com/products/flex/">Flex 3</a> platform.</p>

<p>Actionscript has some interesting properties (like the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/statements.html#dynamic"><code>dynamic</code></a> directive to create classes that allow <a href="http://en.wikipedia.org/wiki/Monkey_patch">monkey patching</a> mid-flight..)</p>

<p>It also has C# style implicit <a href="http://fupeg.blogspot.com/2007/11/actionscript-getters-and-setters.html">getters and setters</a> to hide functions behind properties. Not sure if it&#8217;s always a good thing, but anyway.</p>

<p>One error message took me ages to understand: <em>Error: Attempted access of inaccessible method get through a reference with static type Class.</em></p>

<p>That&#8217;s what you get when you out of habit tuck a few parentheses at the end of your getter, <pre>var a:ClassA = ClassA.get();</pre> when it really should be <pre>var a:ClassA = ClassA.get;</pre></p>

<p>So, watch out for those habitual parentheses at the end. Severe Duh! warning for old time Java programmers.</p>
]]></content></entry><entry><title>Usenix papers now free</title><id>http://commented.org/blog/2008/3/13/usenix-papers-now-free.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/13/usenix-papers-now-free.html"/><author><name>Hans</name></author><published>2008-03-13T18:48:16Z</published><updated>2008-03-13T18:48:16Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>This is big. All <a href="http://www.usenix.org/publications/library/proceedings/">Usenix proceedings</a> are now available for free.</p>

<p><a href="http://www.crypto.com/blog/free_usenix/">Matt Blaze</a> has more on the background.</p>
]]></content></entry><entry><title>Clickpass: solution or problem?</title><category>openid</category><id>http://commented.org/blog/2008/3/12/clickpass-solution-or-problem.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/12/clickpass-solution-or-problem.html"/><author><name>Hans</name></author><published>2008-03-12T03:44:52Z</published><updated>2008-03-12T03:44:52Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><a href="http://clickpass.com">Clickpass</a> want to make OpenID easier for the end-user and that&#8217;s commendable. One click to log in is good if it&#8217;s done right.</p>

<p>Unfortunately, relying parties have to go through a lot of extra work <a href="http://www.clickpass.com/docs/reference-logging-users-in">logging people in</a> and <a href="http://www.clickpass.com/docs/reference-merging-accounts">merging existing user accounts</a>.</p>

<p>OpenID is already <a href="http://www.plaxo.com/api/openid_recipe">quite difficult</a> to enable as it is, and now relying parties have to implement <a href="http://www.clickpass.com/docs/reference-new-accounts">several</a> new API calls.</p>

<p>Neither of these APIs seem to have been openly discussed and it&#8217;s not clear how they were designed. Is there a public security analysis? Why are high-value parameters such as <em>&#8220;I agree to the terms of service&#8221;</em> sent in the clear and unsigned?</p>

<p>Clickpass is a promising idea, but my advice to an RP would be to hold off implementing it until the protocol has had some time in the open. </p>
]]></content></entry><entry><title>Mobile Identity</title><id>http://commented.org/blog/2008/3/10/mobile-identity.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/10/mobile-identity.html"/><author><name>Hans</name></author><published>2008-03-10T09:08:40Z</published><updated>2008-03-10T09:08:40Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Now that the <a href="http://developer.apple.com/iphone/">iPhone SDK</a> as well as <a href="http://code.google.com/android/">Android</a> are available, it will be interesting to see developers respond. </p>

<p>Can&#8217;t wait to see how they will mix this goody-bag of new variables such as SMS, location, device movement, voice, mobility, etc., into their identity and authentication solutions. </p>
]]></content></entry><entry><title>Bluesy Tonic</title><id>http://commented.org/blog/2008/3/5/bluesy-tonic.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/5/bluesy-tonic.html"/><author><name>Hans</name></author><published>2008-03-05T06:04:38Z</published><updated>2008-03-05T06:04:38Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><span class="thumbnail-image-float-left"><a href="http://commented.org/display/ShowImage?imageUrl=%2Fstorage%2Fpics%2Fnycdai.png&amp;imageTitle=713059-1389512-thumbnail.jpg" onclick="window.open(this.href, '_blank', 'width=667,height=531,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no'); return false;"><img src="http://commented.org/storage/thumbnails/713059-1389512-thumbnail.jpg" alt="713059-1389512-thumbnail.jpg" title="713059-1389512-thumbnail.jpg"/></a><br/><span class="thumbnail-caption" style="width: 120px;">Nothing You Can Do About It</span></span>
Those of you who know me well know that things didn&#8217;t quite go the way I had hoped today.</p>

<p>What&#8217;s better than writing some music to get over it? Here&#8217;s a rocker in my best <a href="http://en.wikipedia.org/wiki/Dizzy_Miss_Lizzy">Dizzy Miss Lizzy</a> style, dominant 7ths and all.</p>

<p>As always, <a href="http://www.sibelius.com/products/scorch/">Sibelius Scorch</a> users can see and play <a href="http://www.sibeliusmusic.com/cgi-bin/user_page.pl?url=sloak">some of my songs</a> straight in the browser. </p>
]]></content></entry><entry><title>Battle stations: OpenID providers!</title><category>openid</category><id>http://commented.org/blog/2008/3/1/battle-stations-openid-providers.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/3/1/battle-stations-openid-providers.html"/><author><name>Hans</name></author><published>2008-03-01T20:54:29Z</published><updated>2008-03-01T20:54:29Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>The <a href="http://www.d4d.se/">Swedish Association of Computer Professionals</a> recently suggested it be the
main OpenID provider for Swedish IT professionals.</p>

<p>As a result, it seems it was <a href="http://www.idg.se/2.1085/1.147774">hacked in a day</a> and thousands of user names and passwords (<a href="http://www.thelocal.se/10170/20080229/">from all walks of life</a>) are now in the wild. Some people can&#8217;t resist a challenge apparently. </p>

<p><a href="http://www.larsolofsson.se/index.php?title=20080301&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">Lars Olofsson</a> shows some interesting statistics about password choices and lengths, linked from <a href="http://www.flashback.info/showpost.php?p=10193767&amp;postcount=254">Flashback</a>.</p>

<p>What does this mean for an OpenID user?</p>

<p><em>Do your due diligence.</em> </p>

<p>OpenID can provide tremendous value for its users, but all OpenID providers are not equal. Look at how they make you log in. Ask them how they store your data and about internal and external processes. Ask about how they keep your data private and secure. Make sure you know how they handle your usage trails. </p>

<p>And choose providers well.</p>
]]></content></entry><entry><title>Making money with OpenID</title><category>openid</category><id>http://commented.org/blog/2008/2/1/making-money-with-openid.html</id><link rel="alternate" type="text/html" href="http://commented.org/blog/2008/2/1/making-money-with-openid.html"/><author><name>Hans</name></author><published>2008-02-01T14:39:10Z</published><updated>2008-02-01T14:39:10Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Johannes Ernst <a href="http://netmesh.info/jernst/Digital_Identity/day-1-of-openid-viability.html">makes a few good points</a> about how Yahoo!&#8217;s jump into OpenID makes OpenID a viable business.</p>

<p>One of the pain points with OpenID is that it&#8217;s quite hard to implement it as a customer. If you&#8217;re a small business with a home-grown web site, it&#8217;s a daunting task, despite <a href="http://www.plaxo.com/api/openid_recipe">excellent write-ups</a> and a number of <a href="http://wiki.openid.net/Libraries">excellent software components</a>.</p>

<p>Mom and Pop needs a simpler way of adding OpenID to their site. An identity proxy service that takes care of all OpenID magic with a simple API that customers hand the received the OpenID identifier to and get the equivalence of a yes/no back from the API?</p>

<p>I think the browser redirects, return addresses and trust roots (realms) could be properly handled as per the protocol. </p>

<p>Hmmm&#8230;.. Anyone interested?  ;)</p>
]]></content></entry></feed>