<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intrepid Blog &#187; SINP</title>
	<atom:link href="http://blog.affien.com/archives/category/computer-science/web-development/sinp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.affien.com</link>
	<description>A few thoughts</description>
	<lastBuildDate>Mon, 01 Mar 2010 00:58:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The (or at least a better) Solution to Spam</title>
		<link>http://blog.affien.com/archives/2007/08/14/the-or-at-least-a-better-solution-to-spam/</link>
		<comments>http://blog.affien.com/archives/2007/08/14/the-or-at-least-a-better-solution-to-spam/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 16:45:34 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>
		<category><![CDATA[future of the internet]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[web of trust]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2007/08/14/the-or-at-least-a-better-solution-to-spam/</guid>
		<description><![CDATA[There is no easy way to distinguish between a human and a spambot.  It&#8217;s an arms race which we&#8217;ll always be behind.  I&#8217;m talking here about spam in more general&#8212;not only on e-mail but also on for instance Wikipedia or on blogposts.  Even if we would have a perfect-solution to test whether [...]]]></description>
			<content:encoded><![CDATA[<p>There is no easy way to distinguish between a human and a spambot.  It&#8217;s an arms race which we&#8217;ll always be behind.  I&#8217;m talking here about spam in more general&#8212;not only on e-mail but also on for instance Wikipedia or on blogposts.  Even if we would have a perfect-solution to test whether there is a human behind something, we still have to combat cheap labour in India:  real people spamming &#8220;by hand&#8221;.</p>
<p>I think the solution is a <a href="http://en.wikipedia.org/wiki/Web_of_Trust">Web of Trust</a> similar to that of PGP.  An identity (not necessarily a person) publishes who she trusts (not to be spammy/phishy) or not trusts.  Ideally everyone would be in one big web.  Only someone who my blog  via-via trusts may post.</p>
<p>Obviously one still may gather trust of people over time and enter the web of trust and then start spamming with that identity.  However, then that identity will be marked untrusted by people and also the people who initially marked the identity as trusted will be less trusted.  Also, there are way more sophisticated measures of establishment in the web/trust to conceive than just being trusted via-via by one identity. </p>
<p>There is no way to prevent spam perfectly, but the amount of work that has to go in to making an identity trusted and established in the web is several orders of magnitude greater than any other protection we have.  The big problem: we don&#8217;t have such an ubiquitous web of trust yet.  (Yes, it&#8217;ll be in <a href="http://blog.w-nz.com/archives/2006/07/01/sinp/">SINP</a> if I&#8217;ll get around to working on it)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2007/08/14/the-or-at-least-a-better-solution-to-spam/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>SINP: Push versus Pull</title>
		<link>http://blog.affien.com/archives/2006/07/27/sinp-push-versus-pull/</link>
		<comments>http://blog.affien.com/archives/2006/07/27/sinp-push-versus-pull/#comments</comments>
		<pubDate>Thu, 27 Jul 2006 14:10:43 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>
		<category><![CDATA[pull]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[sxip]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/07/27/sinp-push-versus-pull/</guid>
		<description><![CDATA[SINP is pull based &#8212; I give my SINP address to someone, and he will pull the information he wants from my SINP server.
Our competitor SXIP is push based. When I use my SXIP identity I push all information I want to provide to the service &#8212; there doesn&#8217;t even have to be a SXIP [...]]]></description>
			<content:encoded><![CDATA[<p>SINP is <em>pull</em> based &#8212; I give my SINP address to someone, and he will <em>pull</em> the information he wants from my SINP server.</p>
<p>Our competitor <a href="http://www.sxip.org/">SXIP</a> is <em>push</em> based. When I use my SXIP identity I push all information I want to provide to the service &#8212; there doesn&#8217;t even have to be a SXIP server (&#8216;homesite&#8217;).</p>
<p>Push has got certain advantages over pull:</p>
<ul>
<li>Pull is <em>complexer</em>: you need more traffic and more complicated traffic. Push is <em>simpler</em>.</li>
<li>You most likely need a seperate server for pull (you need one with SINP at least), this makes you rely on your SINP server. You don&#8217;t need a real one for push.</li>
</ul>
<p>But pull too got advantages:</p>
<ul>
<li>You don&#8217;t need to actively give your information. When I&#8217;m offline someone can still pull information from my SINP identity.</li>
<li>Pull doesn&#8217;t require the actual information to go via your computer. If someone requests my creditcard number and I allow it, it won&#8217;t be redirected through the computer I&#8217;m using, which is safer.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/07/27/sinp-push-versus-pull/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SINP Certificates and redirects</title>
		<link>http://blog.affien.com/archives/2006/07/19/sinp-certificates-and-redirects/</link>
		<comments>http://blog.affien.com/archives/2006/07/19/sinp-certificates-and-redirects/#comments</comments>
		<pubDate>Wed, 19 Jul 2006 12:24:59 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[redirects]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/07/19/sinp-certificates-and-redirects/</guid>
		<description><![CDATA[Tuesday the 11th, we (Noud, Bram and I) had a meeting with some guys of the Security of Systems Group at the Radboud University. We discussed the security of the current SINP protocol. There hasn&#8217;t been a hard verdict on whether SINP is secure, because the SINP specification leaves a lot of details to implementations [...]]]></description>
			<content:encoded><![CDATA[<p>Tuesday the 11th, we (Noud, Bram and I) had a meeting with some guys of the Security of Systems Group at the Radboud University. We discussed the security of the current SINP protocol. There hasn&#8217;t been a hard verdict on whether SINP is secure, because the SINP specification leaves a lot of details to implementations and SINP doesn&#8217;t make hard claims on its security yet (which can be either proved or disproved).</p>
<p>The meeting has yielded two new additions to SINP: document certificates<sup>1</sup> and redirects.</p>
<p>First of, <strong>SINP document certificates</strong>. At the moment you can&#8217;t trust the information in a SINP document. I can forge my SINP document and claim that I&#8217;m Belgium, which I am not. To allow some trust which some people and services care about, we&#8217;ll allow certificates in your identity document. Basically you let someone sign a part of your SINP document and include that certificate. </p>
<p>Your goverment could sign your name in your SINP document for instance and you&#8217;d add that certificate into your document, which could be required by some services. These certificates are a bit tricky though to design, because they do need to be secure and they need to be a bit more dynamic than your usual certificate because of the way SINP documents are queried.</p>
<p>A second problem we encountered during the meeting was how to be able to trust your SINP server. I (and other tech savvy people) can set up their own SINP server, which we can fully trust because we set it up ourselves. Not so tech savvy people can&#8217;t &#8212; they need to rely on existing SINP servers. <em>The problem is whether we can trust those servers with our secrets.</em></p>
<p>Cees (if I recall correctly) coined the idea that some of your secrets are already on the internet. If you&#8217;ve got a VISA creditcard number, then VISA obviously has that creditcard number, and you trust them with it. What if VISA would store the part of your SINP identity document with your creditcardnumber on its own SINP Server?</p>
<p>Basically I go to a big SINP provider (which I don&#8217;t trust), I create a SINP identity and put in my SINP document that you can find my creditcard number under the SINP identity <code>bas@visa.com</code>. This act of redirecting clients to other SINP identities is called a <strong>SINP Redirect</strong>. SINP Redirects could also proof very usefull when you change your SINP server. The only thing you&#8217;d have to do is to set up a SINP redirect in your old identity document to your new identitiy document.</p>
<p>Both <em>SINP Certificates</em> and <em>SINP Redirects</em> will require a lot of though to implement cleanly and simple, which is tricky.</p>
<p>Any thoughts would be welcome.</p>
<p><small>1: Actually, this certificates aren&#8217;t new, Bram came up with the idea quite a while ago.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/07/19/sinp-certificates-and-redirects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sinp.rb</title>
		<link>http://blog.affien.com/archives/2006/07/03/sinprb/</link>
		<comments>http://blog.affien.com/archives/2006/07/03/sinprb/#comments</comments>
		<pubDate>Sun, 02 Jul 2006 23:30:49 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/07/03/sinprb/</guid>
		<description><![CDATA[irb&#62; require 'sinp'
irb&#62; c = SINP::Client.new nil, nil, [:http]
irb&#62; c.getPublicDocument('Kristy@w-nz.com').write
&#60;requested version='2'&#62;
&#60;sinp-id&#62;
        &#60;name&#62;&#60;nick&#62;kristy&#60;/nick&#62;&#60;/name&#62;
        &#60;address type='email'&#62;kbuiter@hotmail.com&#60;/address&#62;
        &#60;uri&#62;hotmail.com&#60;/uri&#62;
&#60;/sinp-id&#62;
        &#60;/requested&#62;
As you can see, I&#8217;ve almost finished the implementation of a Ruby [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><code>irb&gt; <strong>require 'sinp'</strong><br />
irb&gt; <strong>c = SINP::Client.new nil, nil, [:http]</strong><br />
irb&gt; <strong>c.getPublicDocument('Kristy@w-nz.com').write</strong><br />
&lt;requested version='2'&gt;<br />
&lt;sinp-id&gt;<br />
        &lt;name&gt;&lt;nick&gt;kristy&lt;/nick&gt;&lt;/name&gt;<br />
        &lt;address type='email'&gt;kbuiter@hotmail.com&lt;/address&gt;<br />
        &lt;uri&gt;hotmail.com&lt;/uri&gt;<br />
&lt;/sinp-id&gt;<br />
        &lt;/requested&gt;</code></p></blockquote>
<p>As you can see, I&#8217;ve almost finished the implementation of a Ruby SINP client &#8212; I only got to finish SINP Negotiation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/07/03/sinprb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SINP</title>
		<link>http://blog.affien.com/archives/2006/07/01/sinp/</link>
		<comments>http://blog.affien.com/archives/2006/07/01/sinp/#comments</comments>
		<pubDate>Sat, 01 Jul 2006 11:51:59 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/07/01/sinp/</guid>
		<description><![CDATA[SINP is a protocol based on HTTP(S) and XML that provides you with an identity on the web. You register a so called SINP Identity on a SINP Server of your choice. To address a certain identity, we use an email like notation: bas@w-nz.com is the SINP Identity of the user bas on the SINP [...]]]></description>
			<content:encoded><![CDATA[<p>SINP is a protocol based on HTTP(S) and XML that provides you with an <strong>identity</strong> on the web. You register a so called <em>SINP Identity</em> on a <em>SINP Server</em> of your choice. To address a certain identity, we use an email like notation: <code>bas@w-nz.com</code> is the SINP Identity of the user <code>bas</code> on the SINP Server <code>w-nz.com</code>.</p>
<p>The first big feature of SINP is <strong>authentication</strong>. If someone claims to be <code>bram@w-nz.com</code>, I can check that by asking <code>w-nz.com</code> to check it. I&#8217;ll redirect that guy to <code>w-nz.com</code> to let him be checked by his proclaimed SINP Server. If he really is <code>bram@w-nz.com</code>, he&#8217;ll have a nice session cookie for <code>w-nz.com</code> and <code>w-nz.com</code> will check that. After that <code>w-nz.com</code> will redirect him back and I&#8217;ll ask <code>w-nz.com</code> whether he succeeded.</p>
<p>One major application of this authentication is that someone who posts a blog comment as <code>noud@w-nz.com</code>, really is/are the same guy(s) that posted before as <code>noud@w-nz.com</code>, for they are allowed by <code>w-nz.com</code>.</p>
<p>The second big feature of SINP is that each identity comes bundled with a XML <strong>document</strong>, which can store information about the owner like his name, email address, date of birth, etc. The SINP Server stores this document. The <em>identity owner</em>, the guy who owns the identity, can pick an access policy for each little bit of information in this document. You might want to share your real address only to those who you&#8217;ve explicitly allowed. Everyone can see the parts of your document you&#8217;ve allowed everyone access to. <a href="https://w-nz.com/sinp/users/bas">This is the one for bas@w-nz.com</a>.</p>
<p>To get specific parts instead of the whole thing, or get to stuff you&#8217;ve limited access to, one needs to use <strong>SINP Negotiation</strong>. To get some specific information from <code>noud@w-nz.com</code>, I ask <code>w-nz.com</code> for this specific information, in the form of a few xpaths. Along with the xpaths I can send my own SINP address, <code>bas@w-nz.com</code>. The server will respond on each request according to the access policy which the SINP Server has set. There are several possibilities:</p>
<ul>
<li><strong>Ok</strong>, the requested information will be included in the response.</li>
<li>Nope, you&#8217;re <strong>denied</strong> access to that.</li>
<li><strong>Not found</strong>, that stuff isn&#8217;t in this document.</li>
<li>You&#8217;ll have to <strong>ask</strong> Noud. Basically you&#8217;ll have to redirect Noud to the server, where he will be authenticated and after that he can decide whether to allow you access to it, and you can try again lateron.</li>
<li>If you&#8217;re <code>bas@w-nz.com</code>, you can see it. You&#8217;ll have to <strong>authenticate</strong>, though. This is done via sinp authentication as described before.</li>
</ul>
<p>Another big feature of SINP is versioning, which allows <strong>caching</strong>. The version of a specific bit of information is send back on each response in negotiation. In a negotation request, I can specify the current version I already have. In case that specific part of the document hasn&#8217;t updated, the SINP server will let me know, instead of sending the whole thing.</p>
<p>One advantage of caching and negotation is that information can be kept <strong>synchronized</strong> with your document when it updates. A blog, on which you&#8217;ve posted a comment, might periodically check whether the information it retreived from your SINP document has changed. This can be done cheaply with negotiation and versioning.</p>
<p>SINP is easy to implement, it is quite <strong>simple</strong>. It also is <strong>portable</strong>, it uses widely supported technologies like XML and HTTP(S) as its base.</p>
<p><strong>SINP is under development</strong>, but you can already (and really should) take a look to:</p>
<ul>
<li><a href="https://cvs.codeyard.net/svn/webid/Documentation/">The latest specification</a></li>
<li>An <a href="https://cvs.codeyard.net/svn/webid/servers/php/trunk/">almost complete SINP Server implementation in PHP</a>. Notice that it&#8217;s a subversion repository.</li>
<li>A proof of concept <a href="https://cvs.codeyard.net/svn/webid/clientlibs/php/clientsinplib.php">SINP client written in PHP</a>. (subversion over http!)</li>
<li>The <a href="https://w-nz.com/sinp">w-nz.com SINP server</a>, you can <strong>register your own SINP identity, now</strong>!</li>
<li><a href="http://w-nz.com/sinpblog">A hacked wordpress blog</a> to allow you to post comments with your SINP address, as a proof of concept.</li>
<li><a href="http://codeyard.net/">The kind people who hosted the project</a> and who even awarded us a price for the project <img src='http://blog.affien.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</li>
</ul>
<p>SINP is based on things I&#8217;ve seen floating around on the web, for instance <a href="http://www.zefhemel.com/archives/2005/08/13/sptp-decentralized-single-sign-on">Zef`s SPTP</a>.</p>
<p>At the moment of writing we&#8217;re developing a PHP client, a Python client and continueing development of the PHP server. You&#8217;re welcome to participate!</p>
<p>We hope you like it, comments or any other forms of participation would be very welcome.</p>
<p>Bas, Bram and Noud.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/07/01/sinp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SINP &amp; Codeyard</title>
		<link>http://blog.affien.com/archives/2006/07/01/sinp-codeyard/</link>
		<comments>http://blog.affien.com/archives/2006/07/01/sinp-codeyard/#comments</comments>
		<pubDate>Fri, 30 Jun 2006 23:58:38 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>
		<category><![CDATA[codeyard]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/07/01/sinp-codeyard/</guid>
		<description><![CDATA[SINP, a protocol that provides you with an identity that allows authentication and negotation of information linked with the identity as an identity document (basically the whole functionality put into a way too short sentence), which was deviced by Noud, Bram and me, has won the Capgemini Opensource Award! Lots of rejoice! You will hear [...]]]></description>
			<content:encoded><![CDATA[<p>SINP, a protocol that provides you with an identity that allows authentication and negotation of information linked with the identity as an identity document (basically the whole functionality put into a way too short sentence), which was deviced by Noud, Bram and me, has won the <a href="http://www.codeyard.net/documenten/CapgeminiPrijs.php">Capgemini Opensource Award</a>! Lots of rejoice! You will hear more about this <img src='http://blog.affien.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/07/01/sinp-codeyard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>First SINP draft</title>
		<link>http://blog.affien.com/archives/2006/05/16/first-sinp-draft/</link>
		<comments>http://blog.affien.com/archives/2006/05/16/first-sinp-draft/#comments</comments>
		<pubDate>Tue, 16 May 2006 07:21:49 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[SINP]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/05/16/first-sinp-draft/</guid>
		<description><![CDATA[SINP is a set of protocols to transfer a profile/identity; to authenticate owners of identities and negotiate for restricted information in protocols. It&#8217;s designed to be simple, being based on HTTPS and XML.
You can find the first draft here.
Subversion repository: https://cvs.codeyard.net/svn/webid
Acknoledgements: it&#8217;s loosely based on other stuff that has been floating around the web, like [...]]]></description>
			<content:encoded><![CDATA[<p>SINP is a set of protocols to transfer a profile/identity; to authenticate owners of identities and negotiate for restricted information in protocols. It&#8217;s designed to be simple, being based on HTTPS and XML.</p>
<p>You can find the <a href="http://w-nz.com/~darkshines/SINP.pdf">first draft here</a>.</p>
<p>Subversion repository: https://cvs.codeyard.net/svn/webid</p>
<p>Acknoledgements: it&#8217;s loosely based on other stuff that has been floating around the web, like <a href="http://www.zefhemel.com/archives/2005/08/13/sptp-decentralized-single-sign-on">Zef&#8217;s SPTP</a>.</p>
<p>Comments would be appreciated.</p>
<p><strong>Update</strong>: Photo&#8217;s are in of the presentation we&#8217;ve given about SINP last wednesday:</p>
<p><a href="http://www.codeyard.net/fotos/capaward-1.php">http://www.codeyard.net/fotos/capaward-1.php</a><br />
Our presentation has got several penguin mascottes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/05/16/first-sinp-draft/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
