<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>dready blog v2.0 &#187; openid</title>
	<atom:link href="http://dready.org/blog/category/openid/feed" rel="self" type="application/rss+xml" />
	<link>http://dready.org/blog</link>
	<description></description>
	<pubDate>Fri, 21 Nov 2008 16:07:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>FoXRI Updated for Firefox 3</title>
		<link>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/</link>
		<comments>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 18:05:22 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[foxri]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=178</guid>
		<description><![CDATA[Prompted by Emanuel in a comment to my post on i-names, I&#8217;ve finally tended to the long-overdue item in my TODO queue, i.e. update FoXRI to work with Firefox 3.
The request from Emanuel came almost serendipitously 2 days after =les nonchalantly asked me if I had plans to update it to FF3, to which I [...]]]></description>
			<content:encoded><![CDATA[<p>Prompted by <a href="http://jaudo.com/">Emanuel</a> in a comment to <a href="http://dready.org/blog/2006/07/10/whats-in-an-i-name/">my post on i-names</a>, I&#8217;ve finally tended to the long-overdue item in my TODO queue, i.e. update <a href="http://foxri.sourceforge.net/">FoXRI</a> to work with Firefox 3.</p>
<p>The request from Emanuel came almost serendipitously 2 days after <a href="xri://=les">=les</a> nonchalantly asked me if I had plans to update it to FF3, to which I answered &#8220;one of these days.&#8221;</p>
<p>New in this version are 2 patches from <a href="http://www.plaxo.com/directory/profile/90194353111/1159c0c6/Michael/Krelin">Michael Krelin</a> which adds detection of URIs for more OpenID versions, and the handling of <code>append</code> attribute values. Changelog for the patches are available at <a href="http://git.klever.net/view/cgit/patchwork/foxri.git/">his git repository</a>.<br />
Thanks, Michael!</p>
<p>Due to what seems like a new security restriction that protocol handlers are not allowed to link to chrome URIs, I can&#8217;t seem to get it to load the CSS and icons from the chrome any more. Therefore, those files are now hosted remotely at <a href="http://xrid.net/">xrid.net</a> so if you see requests to that host, please don&#8217;t be alarmed.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/10/18/foxri-updated-for-firefox-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advantages of User-Centric Identity</title>
		<link>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/</link>
		<comments>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 20:25:25 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[data-portability]]></category>

		<category><![CDATA[identity]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[vrm]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/</guid>
		<description><![CDATA[In a world of increasing openness and user-centric -ness (user-centric identity, increasing user-choice, user-controlled data), how do you convince enterprises to give up the data that they guard so dearly? One way to put it may be &#8220;it&#8217;s happening whether you like it or not, so you might as well go with the flow&#8221;. While [...]]]></description>
			<content:encoded><![CDATA[<p>In a world of increasing openness and user-centric -ness (user-centric identity, increasing user-choice, user-controlled data), how do you convince enterprises to give up the data that they guard so dearly? One way to put it may be &#8220;it&#8217;s happening whether you like it or not, so you might as well go with the flow&#8221;. While companies can certainly go with the flow, more forward-thinking corporations may decide to do it more pro-actively, rather than being <a href="http://news.vzw.com/news/2007/11/pr2007-11-27.html">forced to react</a>.</p>
<p>There were some <a href="http://drstarcat.com/archives/29">talks</a> about how <a href="http://cyber.law.harvard.edu/projectvrm/Main_Page">VRM</a> relates to DataPortability on the <a href="http://groups.google.com/group/dataportability-public/browse_thread/thread/efd9b892a6507d0c?hl=en">DataPortability-Public</a> mailing list. In particular, this excerpt of a <a href="http://www.mediainfluencer.net/2008/02/vrm-one-pager">blog post from Adriana Lukas</a> sums up the &#8220;What&#8217;s in it for business&#8221; aspect very well:</p>
<blockquote><p>
<strong>What’s in it for businesses?</strong></p>
<p>We live in an increasingly decentralized world with more customer choice, yet vendors continue to fiercely collect and control customer data and exploit the opportunities therein. The ultimate goal of VRM is better relationships between customers and vendors, by considering and constructing tools that put the customer in control of their data and ultimately their relationships with other individuals, companies and institutions.</p>
<p><strong>Benefits of ‘letting go’ of customer data:</strong></p>
<ul>
<li>Customers share the burden of storing and protecting the data - eases compliance, privacy &#038; security concerns</li>
<li>Increased access to information about customers - direct benefits to the customer to share more data rather than less.</li>
<li>New services from previously unavailable access to customer data</li>
</ul>
</blockquote>
<p>The first bullet is a good point that I had never thought about, and is a very practical benefit. The second point is a classic example of &#8220;less-is-more&#8221;; maintain less control, and gain more in return. The third point being direct consequence of the second.</p>
<p>When will we see the first product that presents a holistic solution with tangible benefits of VRM to companies, as well as integration with / transition from their existing CRM systems?</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/03/23/advantages-of-user-centric-identity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenID真的很難記</title>
		<link>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/</link>
		<comments>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 04:47:36 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/</guid>
		<description><![CDATA[I monitor a few keywords on Twitter, and get instant notification on Jabber whenever someone mentions any of them. &#8220;OpenID&#8221; is one of those. Today, I got one notification which caught my attention, not just because it is in Chinese, but that I think it&#8217;s an important point:

jchristabelle: OpenID真的很難記，我又忘了我的。

which translates to:

OpenID is really hard to [...]]]></description>
			<content:encoded><![CDATA[<p>I monitor a few keywords on Twitter, and get instant notification on Jabber whenever someone mentions any of them. &#8220;OpenID&#8221; is one of those. Today, I got one notification which caught my attention, not just because it is in Chinese, but that I think it&#8217;s an important point:</p>
<blockquote><p>
<a href="http://twitter.com/jchristabelle">jchristabelle</a>: OpenID真的很難記，我又忘了我的。
</p></blockquote>
<p>which translates to:</p>
<blockquote><p>
OpenID is really hard to remember, I forgot mine again.
</p></blockquote>
<p>I have shared that sentiment before, when I tried to login to my Plaxo account and couldn&#8217;t for the life of me remember which one it was that I first used to associate my account. Granted that, in my case, I have many OpenID URIs because I&#8217;ve been so involved in the implementation. However, it is true that the OP:RP ratio is still too high (counting Blogger as a single RP rather than thousands of OpenID-ready spam blogs.) </p>
<p>I think it is inevitable that in future most users will have at least a handful of OpenID URIs. One can easily imagine getting one from each webmail/IM provider, personal i-name or domain name, social networks, etc. It may just be one of those annoyances we have to live with. Or maybe users will just remember the brands that stick, and click on the &#8220;Sign in with my Yahoo! ID&#8221; button instead.</p>
<p>I don&#8217;t have a solution here, just relaying the message.</p>
<p>p.s. Incidentally, geeks are of course still able to use URIs within their control (personal domain) to delegate to another OP (e.g. Yahoo) and switch OP at anytime while keeping the original URIs. For example, <a href="http://dready.org/openid/yahoo/">here&#8217;s what I use</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2008/02/13/openid%e7%9c%9f%e7%9a%84%e5%be%88%e9%9b%a3%e8%a8%98/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenID for Drupal</title>
		<link>http://dready.org/blog/2007/05/05/openid-for-drupal/</link>
		<comments>http://dready.org/blog/2007/05/05/openid-for-drupal/#comments</comments>
		<pubDate>Sat, 05 May 2007 06:00:44 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[iname]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/05/05/openid-for-drupal/</guid>
		<description><![CDATA[There was a thread on the OpenID list around the subject of OpenID support in Drupal. Previously, I&#8217;ve experimented with the OpenID module originally written by Jonathan Daugherty from JanRain, now under maintenance by the folks at Bryght. That module uses JanRain&#8217;s PHP OpenID library, and it worked pretty much out of the box, with [...]]]></description>
			<content:encoded><![CDATA[<p>There was a <a href="http://openid.net/pipermail/general/2007-May/002336.html">thread</a> on the OpenID list around the subject of OpenID support in <a href="http://drupal.org">Drupal</a>. Previously, I&#8217;ve experimented with the <a href="http://www.openidenabled.com/software/drupal">OpenID module</a> originally written by <a href="http://www.jonathandaugherty.com/">Jonathan Daugherty</a> from <a href="http://janrain.com/">JanRain</a>, now under maintenance by the folks at Bryght. That module uses JanRain&#8217;s <a href="http://www.openidenabled.com/openid/libraries/php">PHP OpenID library</a>, and it worked pretty much out of the box, with XRI support.</p>
<p>What I learned from this discussion thread is that <a href="http://www.bryght.com/blog/james-walker">James Walker</a> from <a href="http://bryght.com/">Bryght</a> has been working on <a href="http://drupal.org/project/openid">another OpenID module</a> that is <a href="http://lists.drupal.org/pipermail/development/2007-May/023616.html">intended for inclusion into Drupal 6 core</a> distribution, without using JanRain&#8217;s library. There are apparently things that Drupal-heads don&#8217;t like about the JanRain&#8217;s library, licensing may be one of the issues.</p>
<p>So I pulled the DRUPAL-5 codebase from CVS and installed it, then installed the 5.x-1.x-dev snapshot tarball to test it out. First thing I noticed was that it doesn&#8217;t support XRI, and I really didn&#8217;t expect it to. Then, when I tried logging in with my dready.org identifier, it wouldn&#8217;t work because I delegated it to my <a href="https://www.myopenid.com/">myopenid.com</a> account. So, it doesn&#8217;t support delegate either.</p>
<p>Then I spent a few hours getting rudimentary XRI support into it, and made it work with delegates. Few days later, I realized that this was only a snapshot and the module is in the <a href="http://cvs.drupal.org/viewcvs/drupal/contributions/modules/openid">Drupal contributions repository</a>. So, I threw away my installation but kept the patch I made of the 5.x-1.x-dev snapshot and started anew. The result is <strong><a href="http://dready.org/drupal/modules/openid/drupal-openid-02.patch">a patch that works with the Drupal CVS trunk</a></strong> as of today.</p>
<p>The changes are:<br />
1. When a first-time user is authenticated, a local account is created but no role was specified. Modified the module to add the &#8216;authenticated user&#8217; role to the user.<br />
2. XRI support. This is very rudimentary and does not support canonical ID yet, but shouldn&#8217;t be hard to implement.<br />
3. Delegate support. In OpenID 2.0, the submitted identifier (URL) is passed to the OP as the openid.claimed_id parameter, while the delegate, if present, is sent as openid.identifier.<br />
4. In the meantime, I noticed that the while the URL normalization conforms to the <a href="http://openid.net/specs/openid-authentication-2_0-11.html">OpenID Authentication 2.0 implementor&#8217;s draft 11</a> specification, it treats http://dready.org and http://dready.org/ (with trailing slash) as different identifiers. Well, they should really be the same as <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC3986</a> says that for HTTP, an empty path is equivalent to &#8220;/&#8221;. This normalization rule was reflected in <a href="http://j3h.janrain.com/openid-specs-rendered/openid-authentication_svn-294.html#normalization_example">rev 294 of the spec</a>.</p>
<p>Of course this is only a *very* rough patch (no pun intended). I have never hacked Drupal before, and haven&#8217;t read much of its coding styles though I tried to follow the conventions in the original code. I do hope that at least parts of it can be integrated into the module though.</p>
<p>My development environment is here: <a href="http://dready.org/drupal/">http://dready.org/drupal/</a>. Feel free to try it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/05/05/openid-for-drupal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IDProxy.net</title>
		<link>http://dready.org/blog/2007/01/29/idproxynet/</link>
		<comments>http://dready.org/blog/2007/01/29/idproxynet/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 02:16:27 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[hacks]]></category>

		<category><![CDATA[identity]]></category>

		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/29/idproxynet/</guid>
		<description><![CDATA[From the innovative mind of Simon Willison comes IDProxy:

idproxy.net, launched today, is my attempt at speeding up the process. It uses Yahoo!’s Browser-Based Authentication API to allow you to sign in with a Yahoo! account, then lets you create one or more OpenIDs (of the form something.idproxy.net) to use with sites that support the OpenID [...]]]></description>
			<content:encoded><![CDATA[<p>From the innovative mind of <a href="http://simonwillison.net/">Simon Willison</a> comes <a href="http://simonwillison.net/2007/Jan/27/idproxy/">IDProxy</a>:</p>
<blockquote><p>
idproxy.net, launched today, is my attempt at speeding up the process. It uses Yahoo!’s <a href="http://developer.yahoo.com/auth/">Browser-Based Authentication API</a> to allow you to sign in with a Yahoo! account, then lets you create one or more OpenIDs (of the form <code>something</code>.idproxy.net) to use with sites that support the OpenID standard.
</p></blockquote>
<p>Basically, it&#8217;s an <acronym title="OpenID Provider">OP</acronym> that authenticates against Yahoo - call it an intermediate IdP, Proxy OpenID Provider, OpenID-Yahoo bridge, whatever.. it rocks!</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/29/idproxynet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Browser-based mitigation of phishing attacks</title>
		<link>http://dready.org/blog/2007/01/22/browser-based-mitigation-of-phishing-attacks/</link>
		<comments>http://dready.org/blog/2007/01/22/browser-based-mitigation-of-phishing-attacks/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 18:01:33 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[dns]]></category>

		<category><![CDATA[identity]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/22/browser-based-mitigation-of-phishing-attacks/</guid>
		<description><![CDATA[The OpenID phishing issue is a hard one to solve, particularly because it aims to:

be user-friendly, i.e. it should pass the mother-in-law test; and
work on the web platform without special software or browser plugin

So, why is this suddenly a problem?
Not really, phishing is a perennial problem on the Internet that researchers and developers have been [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://openid.net/wiki/index.php/OpenID_Phishing_Brainstorm">OpenID phishing issue</a> is a hard one to solve, particularly because it aims to:</p>
<ol>
<li>be user-friendly, i.e. it should pass the mother-in-law test; and</li>
<li>work on the web platform without special software or browser plugin</li>
</ol>
<p>So, why is this suddenly a problem?</p>
<p>Not really, phishing is a perennial problem on the Internet that researchers and developers have been trying to solve for many years now. OpenID just accentuates it because RPs are unregulated. You don&#8217;t need any agreement with any OP, essentially anyone can set up a web site and put the OpenID login button. If OpenID takes off, RP sites will grow like &#8217;shrooms and user will get used to the idea that if they see the OpenID logo, they can type their URL to login. This only makes it harder for users to discern the good RPs from the bad ones.</p>
<p>This is really a <strong>social problem</strong>, and not a fault of the OpenID protocol. Users need only to trust their OP, and not the RPs that they interact with. If a rogue RP sends you to a page the poses as your OP but the URL doesn&#8217;t match your OP&#8217;s, you bail out. Doesn&#8217;t that sound simple? Well, the cold hard fact is that <em>phishing works</em> and there are <a href="http://people.deas.harvard.edu/~rachna/papers/why_phishing_works.pdf">research</a><sup>1</sup> to prove that people get tricked very easily.</p>
<p>Numerous ideas to mitigate phishing attacks have been floating around the OpenID list and on the <a href="http://planet.openid.net">OpenID mini-blogsphere</a>. <a href="http://www.links.org/?p=188">Ben Laurie argues</a> for a client-side solution:</p>
<blockquote><p>
Authentication on the web is broken, and has been for a long time. The OpenID fanboys want OpenID to work on any old platform using only standard software, and so therefore are doomed to live in the world of broken authentication. This is fine if what you protect with your OpenID is worthless, but it seems clear that these types of protocol are going to be used to authenticate for things of value. </p>
<p>&#8230;</p>
<p>This is the root of the problem: if you want to protect anything of value, you have to do better than existing Web solutions. You need better client-side software.
</p></blockquote>
<p>The picture is not so sunny, however, because most users:</p>
<ul>
<li>won&#8217;t know / bother to install specialized plug-in or upgrade their browsers unless they&#8217;re forced to</li>
<li>won&#8217;t know the difference between citibank.com/signon and citibank.com-banking-foobar.com</li>
</ul>
<p>And even if they installed those anti-phishing toolbars and what not, <a href="http://www.simson.net/ref/2006/CHI-security-toolbar-final.pdf">they still fall for it</a>!</p>
<p>While I can&#8217;t decipher the wirings of the mums-and-dads who fall prey for phishing attacks, I know that I get lazy sometimes and just don&#8217;t bother. Then I remember this little trick that Firefox introduced to ensure that users <em>get</em> the warning before installing extensions &#8212; <strong>Introduce a delay in the dialog box before it can be dismissed.</strong> That sort of worked for me, at least for that 5 seconds I can&#8217;t click so I might as well read a little.</p>
<p>So, here&#8217;s an idea for a browser (or plug-in) implementation:</p>
<p><big>
<pre>
FUNCTION form.onsubmit()
  IF !form.contains-password-field()
    RETURN ok
  END IF

  IF form.action.domain IN trusted-domains
    RETURN ok
  END IF

  SHOW WARNING-DIALOG (delayed-dismissal=5 secs)

  IF continue-button.clicked
    ADD form.action.domain TO trusted-domains
    RETURN ok
  ELSE // cancel-button.clicked
    RETURN not-ok
  END IF
END FUNCTION
</pre>
<p></big></p>
<p>The idea is that you should only submit passwords to sites that you have previously added to the trusted-domains list. This idea is not new, and has been proposed by several on the OpenID list. </p>
<p>Where I think could really make a difference is the way in which WARNING-DIALOG is constructed. It should contain the following:</p>
<ul>
<li>If the current page and the form target page are on different &#8220;effective domain&#8221;, emit warning. There are legitimate use cases for this, and we don&#8217;t want to overemphasize it, but it should raise suspicion.</li>
<li>Display the &#8220;effective domain&#8221; of the form prominently.</li>
<li>If the form target is not a HTTPS URL, emit warning.</li>
<li>Warn the user that the target is not known to the browser to be trusted, and that this could be a sign of phishing.</li>
<li>A <em>continue</em> button that is greyed out for 5 seconds to force the user to read the above information.</li>
<li>A <em>cancel</em> button that is focused by default so hitting enter will dismiss the dialog and cancel the request.</li>
</ul>
<p>An &#8220;effective domain&#8221; as I call it is defined as the DNS name in the URL stripped of insignificant parts. This basically means that we can use Mozilla&#8217;s <a href="http://wiki.mozilla.org/Gecko:TLD_Service">Effective TLD Service</a> that I <a href="http://dready.org/blog/2007/01/22/security-restricted-domains-database/">blogged about earlier</a> to summarize a URL for display to the user so that <em>us.rd.yahoo.com</em> becomes just <em>yahoo.com</em>, and it will correctly work for things like <em>www.netbank.com.au</em>, which returns <em>netbank.com.au</em> instead of <em>com.au</em>.</p>
<p>A sample dialog might look like:</p>
<div style="background-color: #eee; color: #333; padding: 5px">
You are submitting a password to a site that may not be safe. Click &#8220;continue&#8221; to trust this site forever, or &#8220;cancel&#8221; to return to the current page.</p>
<p>Password will be sent to: <strong><big>xn--pypal-4ve.com</big></strong><br />
Password will be sent in the clear (unencrypted).</p>
<form>
<input type="button" value="continue (5)" disabled="disabled"> &nbsp;&nbsp;<br />
<input type="button" value="cancel">
</form>
</div>
<p>There are a few advantages to this proposal:</p>
<ul>
<li>it works on all password forms, not just for OpenID</li>
<li>it forcefully disrupts the flow of the user and the delay may help the user to be more cautious</li>
</ul>
<p>The downsides are:</p>
<ul>
<li>it only works for password phishing, other information such as credit card numbers will go through without warning</li>
<li>phisher can replace the password input field with javascript / DHTML / flash to bypass the check</li>
</ul>
<p>Even with these restrictions, I still think that it brings significant value in terms of mitigating password phishing attacks. This is of course very raw and there is much room for improvement. All comments and suggestions are welcome.</p>
<p><sup>1</sup> Thanks to Mike Beltzner for the links to these phishing research papers.</p>
<p>UPDATE: Kim Cameron&#8217;s latest blog post about <a href="http://www.identityblog.com/?p=659">Integrating OpenID and CardSpace</a> has some nice pictures of the modal OpenID phishing attack scenario.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/22/browser-based-mitigation-of-phishing-attacks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Security Restricted Domains Database</title>
		<link>http://dready.org/blog/2007/01/22/security-restricted-domains-database/</link>
		<comments>http://dready.org/blog/2007/01/22/security-restricted-domains-database/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 16:25:45 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[dns]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[identity]]></category>

		<category><![CDATA[idn]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/22/security-restricted-domains-database/</guid>
		<description><![CDATA[This was going to be a &#8220;Dear LazyWeb&#8221; request, but after some research I found what I wanted.
Recent discussions about security and phishing on the OpenID list got me thinking about the problem space.
DNS plays a critical role in the security of OpenID because

URL is the identifier type used
User should only trust the OP with [...]]]></description>
			<content:encoded><![CDATA[<p>This was going to be a &#8220;<a href="http://www.lazyweb.org/">Dear LazyWeb</a>&#8221; request, but after some research I found what I wanted.</p>
<p><a href="http://openid.net/pipermail/general/2007-January/thread.html#1219">Recent discussions</a> about security and phishing on the OpenID list got me thinking about the problem space.</p>
<p>DNS plays a critical role in the security of OpenID because</p>
<ol>
<li>URL is the identifier type used</li>
<li>User should only trust the <acronym title="OpenID Provider">OP</acronym> with which he/she has an account with.</li>
</ol>
<p>The &#8220;Phishing and OpenID&#8221; discussions on the OpenID list actually hinges on point #2 above. <a href="http://www.links.org/?p=187">Ben Laurie wrote about it here</a>. In short, OpenID opens the door for a malicious <acronym title="Relying Party">RP</acronym> to send a user to a spoofed OP-lookalike and collect his/her password.</p>
<p>Back to DNS. I have, on numerous occasions in the past, tried to look for a list of domains where registrations are open for public. This varies from TLD to TLD, e.g. <em>.biz</em> accepts registration directly on the second level, <em>.us</em> also does but delegates two-letter subdomains to US states, and <em>.uk</em> only accepts registrations on the third level after <em>.co.uk</em>, <em>.ac.uk</em>, etc.</p>
<p>Well, it turns out that the Mozilla folks needed this list in order to disallow web sites setting cookies for the entire <em>.co.uk</em> or similar domains. Currently, they block just the TLDs so <em>example.com</em> cannot set a cookie for <em>.com</em>, but 2nd level onwards domain cookies are allowed. This could easily cause cookies to be stolen by any site rooted in the same domain.</p>
<p>So, <a href="http://www.westpoint.ltd.uk/advisories/wp-04-0001.txt">this advisory</a> started <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=252342">this bugzilla entry</a> at Mozilla and it eventually led to the creation of <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=331510" title="Add knowledge of subdomains to necko (create nsEffectiveTLDService)">this API</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=342314" title="Need effective-TLD file">this list (see attachment)</a>. They call it the <a href="http://wiki.mozilla.org/Gecko:TLD_Service">&#8220;Effective TLD&#8221; list</a>, which is really a misnomer because they are not necessary just <acronym title="Top Level Domains">TLDs</acronym>. It was decided in the bug discussions that the term &#8220;effective TLD&#8221; is easier to digest that anything else, though I&#8217;d prefer to call it &#8220;Security Restricted Domains&#8221;. Whatever, as long as it gives me the content I want.</p>
<p>Many will probably criticize Mozilla for creating yet another list that gets stale the moment it is created. Indeed, TLDs get created and 2LDs within TLDs are introduced and deprecated so often that such a list will be hard to maintain. Moreover, many organizations assign names to registrants at a level that doesn&#8217;t involve the TLD registry. Examples include CentralNIC&#8217;s <em>.&lt;country-code&gt;.com</em> and <em>*.blogspot.com</em>, and countless others. Add to it the introduction of IDN TLD may well be in less than 2 years. Keeping a definitive list is not feasible. Nevertheless, I would argue that depending on your needs, this list could still be very valuable, as is the case with the cookie problem that they are trying to solve.</p>
<p>So, what has this got to do with OpenID? I shall leave that to a different post.</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/22/security-restricted-domains-database/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New site: xrid.net</title>
		<link>http://dready.org/blog/2007/01/15/new-site-xridnet/</link>
		<comments>http://dready.org/blog/2007/01/15/new-site-xridnet/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 03:08:41 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[identity]]></category>

		<category><![CDATA[iname]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/15/new-site-xridnet/</guid>
		<description><![CDATA[I really shouldn&#8217;t blogging that much now that I have three weeks left to pack up and move to Virginia. That&#8217;s another story if I get around to blogging it.
Recently on the OpenID mailing list, many people are asking for a free i-name to play around with, research and develop software against. Global i-names cost [...]]]></description>
			<content:encoded><![CDATA[<p><em>I really shouldn&#8217;t blogging that much now that I have three weeks left to pack up and move to Virginia. That&#8217;s another story if I get around to blogging it.</em></p>
<p>Recently on the OpenID mailing list, many people are asking for a free i-name to play around with, research and develop software against. <a href="http://inames.net/register.html">Global i-names</a> cost USD20 per year but if you just want to evaluate the technology, you can get a community i-name for free. A community i-name is analogous to subdomains in the DNS world. A global i-name is something like <code>@neustar</code> or <code>=wil</code>. A community i-name has an extra subsegment tagged to the end e.g. <code>@neustar*william.tan</code>.</p>
<p>The i-name / XRI community has awakened to the challenge that we need to provide more support and documentation to the developer community, and our response is the <a href="http://dev.inames.net/">dev.inames.net wiki</a>. </p>
<p>In my little way, I have also created a site (http://xrid.net/) to allow developers to experiment with XRI resolution and Yadis by providing free community i-names under <code>@xrid</code>. The site allows you to have unlimited community i-names (you can even host your own like <code>@xrid*wil*work</code>), and link them to authorities (identities) in any way you like, and most importantly, edit XRDS documents that will be served by the <code>auth.xrid.net</code> authority resolution server.</p>
<p>So, if you&#8217;re a developer interested in experimenting with XRI technologies, <a href="http://xrid.net/">get your free @xrid community i-name here</a>.</p>
<p>(Note: you may be curious as to why <code>@xrid</code>. Well, XRID was an earlier incarnation of the <acronym title="eXtensible Resource Descriptor">XRD</acronym> which is a recursive acronym for &#8220;<acronym title="eXtensible Resource Identifier">XRI</acronym> Descriptor&#8221;. Later, it was decided that we don&#8217;t want to tie the <acronym title="eXtensible Resource Descriptor Set">XRDS</acronym> document format to just being used in XRI&#8217;s (e.g. <a href="http://yadis.org/">Yadis</a> uses XRDS documents.)</p>
<p>Did I mention that you can login with an OpenID too?</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/15/new-site-xridnet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>This blog is OpenID enabled!</title>
		<link>http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/</link>
		<comments>http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 02:35:15 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[identity]]></category>

		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/</guid>
		<description><![CDATA[
One thing led to another. After reading my previous entry on &#8220;mod_python OpenID Access Control&#8221;, Nate Olson contacted me to ask if I tried Alan Castonguay&#8217;s Wordpress OpenID plug-in. To which I replied, &#8220;no, but I will try it out!&#8221;
After upgrading my wordpress to the latest and greatest, and then installing the plug-in, this blog [...]]]></description>
			<content:encoded><![CDATA[<p><a title="OpenID logo"><img src="http://i68.photobucket.com/albums/i10/dreadyco/blog/openid-logo.gif" alt="OpenID logo" width="175" height="66" /></a></p>
<p>One thing led to another. After reading my <a href="http://dready.org/blog/2007/01/15/mod_python-openid-access-control/">previous entry on &#8220;mod_python OpenID Access Control&#8221;</a>, <a href="http://teamsuperpower.com/">Nate Olson</a> contacted me to ask if I tried <a href="http://verselogic.net/alanjcastonguay">Alan Castonguay</a>&#8217;s <a href="http://blog.verselogic.net/projects/wordpress/wordpress-openid-plugin">Wordpress OpenID plug-in</a>. To which I replied, &#8220;no, but I will try it out!&#8221;</p>
<p>After upgrading my wordpress to the latest and greatest, and then installing the plug-in, this blog is now OpenID enabled!</p>
<p>You&#8217;d need to first get yourself an OpenID URL (better yet, an i-name). There are <a href="http://openid.net/wiki/index.php/Public_OpenID_providers">many OpenID providers out there</a>. Once you have that, you can then comment on this blog (and many other sites) by logging in with your OpenID. If you stay logged in at your OpenID provider, there is no need to type in your password in pesty registration forms as you move across various OpenID enabled sites (<a href="http://zooomr.com">Zooomr</a> is one such early adopter.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mod_python OpenID Access Control</title>
		<link>http://dready.org/blog/2007/01/15/mod_python-openid-access-control/</link>
		<comments>http://dready.org/blog/2007/01/15/mod_python-openid-access-control/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 15:23:54 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[identity]]></category>

		<category><![CDATA[iname]]></category>

		<category><![CDATA[neustar]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xri]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2007/01/15/mod_python-openid-access-control/</guid>
		<description><![CDATA[Since XRI is pretty much in bed with OpenID and NeuStar is an XRI shop, I get to play around with it quite a bit.
Here&#8217;s a little success report about using JanRain&#8217;s mpopenid module to protect certain restricted resources served by Apache. It works somewhat like your basic HTTP authentication, but instead of returning a [...]]]></description>
			<content:encoded><![CDATA[<p>Since XRI is pretty much in bed with <a href="http://openid.net">OpenID</a> and NeuStar is an XRI shop, I get to play around with it quite a bit.</p>
<p>Here&#8217;s a little success report about using <a href="http://janrain.com">JanRain</a>&#8217;s <a href="http://www.openidenabled.com/software/modpython-openid">mpopenid</a> module to protect certain restricted resources served by Apache. It works somewhat like your basic HTTP authentication, but instead of returning a <code>401 Authorization Required</a> response causing the browser to prompt for username and password, it redirects you to the OpenID login page. Pretty neat eh?</p>
<p>So, here&#8217;s how we go about doing it.</p>
<p>My ingredients:</p>
<ul>
<li><a href="http://httpd.apache.org/">Apache</a> 2.2.4</li>
<li><a href="http://python.org">Python</a> 2.5</li>
<li><a href="http://modpython.org/">mod_python</a> 3.2.10</li>
<li><a href="http://www.openidenabled.com/resources/downloads/python-openid/python-openid-combo-20061208.tar.gz">JanRain&#8217;s Python OpenID library combo</a> 1.2.0 (which includes dependencies: Yadis 1.1.0 + urljr 1.0.1)</li>
<li><a href="http://j3h.janrain.com/mpopenid/mpopenid.tar.gz">mpopenid</a> 1.2.0-pre5 (yet to be released on the main project site which is still showing 1.0.0)</a></li>
</ul>
<p>Following the recipes in <a href="http://j3h.janrain.com/mpopenid/README.html">this README</a> file, I was able to set it up with one caveat: Python <a href="http://effbot.org/zone/element-index.htm">ElementTree</a> module is a dependency of the Python Yadis library and you need to first install that.</p>
<p>Did I mention that you could login using an <a href="http://inames.net">I-name</a>?</p>
<p><strong>UPDATE:</strong></p>
<p>The following patch for <code>mpopenid.py</code> is needed to make i-name login work:</p>
<pre>
--- mpopenid-1.2.0-pre5/mpopenid.py     Tue Nov 21 20:24:53 2006
+++ mpopenid-1.2.0-pre5-wil/mpopenid.py Sun Jan 14 16:12:16 2007
@@ -157,10 +157,17 @@
         url = s.strip()
         if not url:
             continue
-        parsed = urlparse.urlparse(url)
-        if not (parsed[0] and parsed[1]):
-            url = 'http://' + url
-        urls.append(urinorm(url))
+
+        if (url[0:6].lower() == "xri://"):
+            url = url[6:] # strip "xri://"
+
+        if (url[0] not in "=@!$+"): # doesn't look like an XRI
+            parsed = urlparse.urlparse(url)
+            if not (parsed[0] and parsed[1]):
+                url = 'http://' + url
+            url = urinorm(url)
+
+        urls.append(url)

     return urls
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2007/01/15/mod_python-openid-access-control/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
