<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Eccentric Authentication on Eccentric Authentication</title>
    <link>/categories/eccentric-authentication/</link>
    <description>Recent content in Eccentric Authentication on Eccentric Authentication</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 18 Nov 2016 00:00:00 +0000</lastBuildDate>
    <atom:link href="/categories/eccentric-authentication/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>On the internet, there is only Alice</title>
      <link>/blog/2016/11/18/on-the-internet-there-is-only-alice</link>
      <pubDate>Fri, 18 Nov 2016 00:00:00 +0000</pubDate>
      
      <guid>/blog/2016/11/18/on-the-internet-there-is-only-alice</guid>
      <description>&lt;p&gt;Everyone who works long enough in the field of cryptography knows about Alice and Bob: They know each other, go their separate ways and &amp;ndash; always &amp;ndash; are in dire need of private communication. Eve is listening in on every message and Mallory actively tries to trick them into believing her words are genuine. Then the authors of the paper explain their cryptographic protocol that makes Alice and Bob safe again.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Classic Cryptography&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The use cases for cryptography have almost always been royalty, military, business and lovers. What they have in common is that all participants already know each other, get separated and are in dire need of private communication. So before the mission, they get together to agree on a protocol and key. Then they hire couriers to transport their encrypted messages.&lt;/p&gt;

&lt;p&gt;This is what I call Classic Cryptography.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On the internet, there is only Alice&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On the internet, the situation is radically different. There are a few well known parties and there are many strangers who want to communicate securely with some of the well knowns.&lt;/p&gt;

&lt;p&gt;Take banking, for example. There are a few banks and a lot of potential customers. Suppose I want to open an account at a bank of my choice. My needs are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I need to connect to the correct servers (authentication), not that of criminals, or worse, a different bank pretending to be my choice;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;I need the link to be private (secrecy) to safely transmit a copy of my passport to the bank without third parties to copy it;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The bank has these needs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The bank need to be able to recognize (authenticate) me at recurring visits. Without this recognition, I remain a stranger to the bank and the bank can&amp;rsquo;t accept my transactions;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;No one should not be able to impersonate any customer.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It should be clear that classic cryptography doesn&amp;rsquo;t work here anymore. It would mean that to open an account I visit a branch office of the bank in person. We then agree on a protocol and some keys and we get separate again.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What about a blog site?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suppose I stumble upon an interesting blog site. I read a while and then I feel a need to write the blogger in private. The same asymmetric requirements show up: I need to connect to the correct server and I want the connection to be secure against eavesdropping and tampering.&lt;/p&gt;

&lt;p&gt;The blogger and I need to be able to recognize each other later in the conversation. Otherwise, we wouldn&amp;rsquo;t know for sure if a message was part of the conversation or inserted by Mallory.&lt;/p&gt;

&lt;p&gt;There is a third requirement: I want to remain pseudonymous, the blogger only knows me by a self-chosen identity. And I use that identity only to connect to the blogger, I don&amp;rsquo;t share identities.&lt;/p&gt;

&lt;p&gt;Again, classic crypto doesn&amp;rsquo;t help me.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What about a whistleblower?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suppose I had to blow a whistle on some secret government program gone haywire. I&amp;rsquo;d search for a trustworthy journalist at a respectable newspaper. The journalist is well known and I&amp;rsquo;m the stranger and I would like to keep it that way for everyone, including the journalist.&lt;/p&gt;

&lt;p&gt;The requirements are the same again, I need to be able to authenticate the journalist before I send my first document. I want to do so without the journalist knowing my true identity, my chosen pseudonym &amp;lsquo;Deep Throat&amp;rsquo; suffices.&lt;/p&gt;

&lt;p&gt;There is a fourth requirement: I don&amp;rsquo;t want the government to track me while sending the documents so I want to transmit all communication via Tor.&lt;/p&gt;

&lt;p&gt;Fifth requirement: The journalist doesn&amp;rsquo;t know how any of that techno-stuff works so it must work out of the box without brainpower from either party.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s clear that classic cryptography doesn&amp;rsquo;t fit the bill.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Eccentric Authentication to the rescue&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What these cases have in common is that there is a well known party (Alice) and there are strangers who want to open a secure channel.&lt;/p&gt;

&lt;p&gt;Both parties need to authenticate the other at later visits, while in two of these cases, the stranger wants to remain anonymous.&lt;/p&gt;

&lt;p&gt;Eccentric Authentication is my protocol that allows strangers to contact well known parties, secure all their communication, mutually authenticate and remain anonymous and untraceable if they wish. &lt;a href=&#34;http://eccentric-authentication.org&#34;&gt;This site&lt;/a&gt; is dedicated to the protocol.&lt;/p&gt;

&lt;p&gt;Happy reading.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>tor made easy</title>
      <link>/blog/2016/04/06/tor-made-easy</link>
      <pubDate>Wed, 06 Apr 2016 00:00:00 +0000</pubDate>
      
      <guid>/blog/2016/04/06/tor-made-easy</guid>
      <description>

&lt;p&gt;Tor is the well known Onion Routing network. It lets people communicate over the internet without revealing their location.&lt;/p&gt;

&lt;p&gt;Using the Tor network is easy*) if all you need is browsing. Just run Tails or Whonix and browse. The sites can&amp;rsquo;t figure out where you are. This is good for your privacy, your anonymity. And good for people in countries that censor parts of the rest of the world.&lt;/p&gt;

&lt;p&gt;Others use Tor to host a hidden server. It lets them run a site without revealing their location. This is good against censorship too. And to sell contraband to much chagrin of law enforcement.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We offer a different use case: Connect to friends via Tor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The basics of Eccentric Authentication is to be able to authenticate someone. In other words: to make sure it&amp;rsquo;s the same person as before. Once that&amp;rsquo;s established, there is no limits on the form of communication.&lt;/p&gt;

&lt;p&gt;In this blog, we&amp;rsquo;re going to show how to set up the stuff to make that happen. Then we show how to use it to chat with a friend, either with text chat or voice chat.&lt;/p&gt;

&lt;p&gt;*) Using Tor safely requires a bit more consideration. One must make sure to obey certain do&amp;rsquo;s and don&amp;rsquo;ts to prevent leaking of identifying information. Especially against active attacks to determine one&amp;rsquo;s identity or location.&lt;/p&gt;

&lt;h1 id=&#34;setting-up&#34;&gt;setting up&lt;/h1&gt;

&lt;p&gt;Download this virtual machine and run it. Direct: &lt;a href=&#34;/eccentric-demo-3.ova&#34;&gt;eccentric-demo-3.ova&lt;/a&gt; or via torrent: &lt;a href=&#34;/eccentric-demo-3.ova.torrent&#34;&gt;eccentric-demo-3.ova.torrent&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&#34;using-it&#34;&gt;using it&lt;/h1&gt;

&lt;p&gt;In the VM, log in with username &amp;lsquo;user&amp;rsquo; and password &amp;lsquo;user&amp;rsquo;. If you need, user root has password root.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Double click the &amp;ldquo;Ecca Proxy 1&amp;rdquo; icon.&lt;br /&gt;
It starts the user agent service. It opens in a terminal and will show lots of debugging. Ignore that for now.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Double click the &amp;ldquo;Iceweasel 1&amp;rdquo; icon.&lt;br /&gt;
It starts the Firefox browser that uses the Ecca Proxy 1 for its authentication services. In other words: it uses the Proxy 1 to do all the cryptographic work for you.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The browser opens with &lt;a href=&#34;http://cryptoblog.wtmnd.nl&#34;&gt;http://cryptoblog.wtmnd.nl&lt;/a&gt;&lt;br /&gt;
Notice: it doesn&amp;rsquo;t use https but don&amp;rsquo;t worry, the ecca-proxy takes care of security (and does use https).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Browse the menu entry &amp;ldquo;The Blogs&amp;rdquo;;&lt;br /&gt;
Feel free to read any blogs, just don&amp;rsquo;t press any buttons on those blog pages, we&amp;rsquo;ll get to them later,&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;After reading, get back to &amp;ldquo;The Blogs&amp;rdquo; and press the &amp;ldquo;Create blog&amp;rdquo; link.&lt;br /&gt;
Expect a page stating: 401 - Eccentric Authentication required. This page is your Ecca Proxy 1 telling you the site requires you to log in with an account.&lt;br /&gt;
As you don&amp;rsquo;t have any, it offers to create an account.&lt;br /&gt;
Either specify a username (the part before @@) or let your ecca-proxy generate an &amp;lsquo;anon-12345678&amp;rsquo; random username. If the name is still available, you&amp;rsquo;ll get it, otherwise chose a (slighty) different one. It should take a few seconds to sign up.&lt;br /&gt;
When that succeeds, you&amp;rsquo;ll get a split screen. On top, it&amp;rsquo;s the ecca-proxy telling you it has created and account and logged you in. At the main part, it&amp;rsquo;s the cryptoblog site waiting for your blog.&lt;br /&gt;
Be creative and write something that would attract some followers. When finished, post your blog.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, we leave this browser window and pretend to be a different user who comes across your blog.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Double click the &amp;ldquo;Ecca Proxy 2&amp;rdquo; icon. It starts up a second (and independent) proxy.&lt;br /&gt;
Then double click the &amp;ldquo;Iceweasel 2&amp;rdquo; icon. It will represent your different user.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Select &amp;ldquo;The blogs&amp;rdquo; and select the blog you just wrote in Proxy 1.&lt;br /&gt;
You could write a comment and post it to the world. Feel free to do so.&lt;br /&gt;
Or you could send a private message that is encrypted so only the  (from Iceweasel/Proxy 1 could read it).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Or you could invite your alter ego (from Proxy 1) for a chat via Tor.&lt;br /&gt;
To do so: click the &amp;ldquo;Send invitation to connect&amp;rdquo;-button.&lt;br /&gt;
Select &amp;lsquo;chat&amp;rsquo;; it&amp;rsquo;s simpler to test that two audio streams to and from your computer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your Proxy 2 now does a few things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It creates a Tor Hidden Service for you. This will be the listening point for the other user to connect to.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It sends its address in a private message to your alter ego.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It keeps waiting for the intended computer to connect (your first user) and kicks everyone else out. It&amp;rsquo;s a private connection.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now go back to Iceweasel 1. Browse to the &amp;lsquo;Read Messages&amp;rsquo; tab and behold, there is an invitation from your second account. When you click the &amp;lsquo;Connect&amp;rsquo;-button, the Proxy 1 makes a connection to the Tor Hidden Service address and both sides start the chat app.&lt;/p&gt;

&lt;p&gt;Happy chatting.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>spot the differences</title>
      <link>/blog/2014/11/30/spot-the-differences</link>
      <pubDate>Sun, 30 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>/blog/2014/11/30/spot-the-differences</guid>
      <description>

&lt;p&gt;As a child I liked to do puzzles. One of these was called &amp;ldquo;Spot the Differences.&amp;rdquo;&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/Spot_the_difference.png&#34; title=&#34;Get all 15 differences correct and you may win a prize.&#34; alt=&#34;Get all 15 differences correct and you may win a prize.&#34;&gt;
  &lt;span class=&#34;caption-text&#34;&gt;Get all 15 differences correct and you may win a prize.&lt;/span&gt;
&lt;/span&gt;


&lt;p&gt;There is an adult version of this game. It&amp;rsquo;s much more challenging:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It is more difficult: Only one picture is shown at a time. Players&lt;br /&gt;
have to rely on memory to recall the differences;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It&amp;rsquo;s played by millions of people every day, yet many don&amp;rsquo;t know&lt;br /&gt;
they are playing;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The stakes are higher: If you fail to spot any differences&lt;br /&gt;
you might lose all the money in your bank account.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;This game is also known as Internet Banking.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;the-toxic-combination&#34;&gt;The Toxic Combination&lt;/h2&gt;

&lt;p&gt;The problem is not restricted to banking. The general issue is twofold:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;People need to validate the authenticity of a site before typing in&lt;br /&gt;
their password;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The password gets transmitted to the other party.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most people assume that if it looks like their bank and the&lt;br /&gt;
address bar is green then it should be safe. Regrettably, it&amp;rsquo;s&lt;br /&gt;
not. Criminals obtain valid certificates using stolen creditcards and&lt;br /&gt;
passports. The true method for authenticating a site requires&lt;br /&gt;
verification of server certificate fingerprints. And if you don&amp;rsquo;t know&lt;br /&gt;
what that means, you&amp;rsquo;re playing the game: you have to spot the&lt;br /&gt;
spelling errors, the differences in layout and other mistakes to&lt;br /&gt;
detect the scammers. Good luck!&lt;/p&gt;

&lt;p&gt;The second part is just as problematic: The password must remain&lt;br /&gt;
secret, yet it must be transmitted to the other side to log in.&lt;/p&gt;

&lt;p&gt;This is the Toxic Combination. One failure to detect a scammer&amp;rsquo;s site&lt;br /&gt;
and the password is compromised. The scammers can do everything that&lt;br /&gt;
you can do with the password.&lt;/p&gt;

&lt;h2 id=&#34;a-way-forward&#34;&gt;A Way Forward&lt;/h2&gt;

&lt;p&gt;We present our protocol to eliminate this toxic combination.&lt;/p&gt;

&lt;p&gt;We eliminate the need for people to validate a site, the protocol provides&lt;br /&gt;
sufficient data so that the browser can do the validation for the&lt;br /&gt;
user. We also eliminate the password and replace it with client&lt;br /&gt;
certificates. Again the browser will do the work for the user. Making security usable.&lt;/p&gt;

&lt;p&gt;How it works is described in our paper: &lt;a href=&#34;/Usable-Security.pdf&#34;&gt;Usable-Security.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Image Credits: Image by &lt;a href=&#34;http://ja.wikipedia.org/wiki/user:Muband&#34;&gt;Muband&lt;/a&gt; from &lt;a href=&#34;http://en.wikipedia.org/wiki/Spot_the_difference&#34;&gt;Wikipedia - Spot the Difference&lt;/a&gt;, Creative Commons Attribution-Share Alike 3.0 Unported.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>scalability</title>
      <link>/blog/2014/03/27/scalability</link>
      <pubDate>Thu, 27 Mar 2014 00:00:00 +0000</pubDate>
      
      <guid>/blog/2014/03/27/scalability</guid>
      <description>&lt;p&gt;There are three types of queries to be made against the Verification service:&lt;br /&gt;
- submit a certificate;&lt;br /&gt;
- query a CN;&lt;br /&gt;
- query any duplicate CN for a given domain.&lt;/p&gt;

&lt;p&gt;The biggest load on the Certificate verification service are the&lt;br /&gt;
queries keyed on CN. These queries will be done every time a user&lt;br /&gt;
comes across a new certificate. On a blog site where every blog and&lt;br /&gt;
comment is signed with the users&amp;rsquo; private key, it means one lookup for&lt;br /&gt;
each new participant.&lt;/p&gt;

&lt;p&gt;Most communities are relatively small, so while newcomer to a&lt;br /&gt;
community has to do a lot of lookups initially, that amount quickly&lt;br /&gt;
diminishes. A stable community has very little lookups to expect.&lt;/p&gt;

&lt;p&gt;Another source of lookups is when one person wants to send a private&lt;br /&gt;
message to another. To protect agaist MitM, both sender and receiver&lt;br /&gt;
make two lookups of each others&amp;rsquo; and their own CN, one lookup of each&lt;br /&gt;
before sending the first message, one lookup after receiving the first&lt;br /&gt;
reply. This suffices to establish to both parties that the CN is&lt;br /&gt;
unique. Both parties have effectively communicated their public keys&lt;br /&gt;
between them. They will remember this fact. From now on, there are no&lt;br /&gt;
more lookups for messages between these two.&lt;/p&gt;

&lt;p&gt;This key-exchange dance with 4 lookups needs to be done separately for&lt;br /&gt;
each person one communicates with. Once this association is made,&lt;br /&gt;
there is no further need for key lookups. This lookup is cemented, no&lt;br /&gt;
matter if the CA signs another&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>how to design a distributed client certificate verification service</title>
      <link>/blog/2014/03/26/how-to-design-a-distributed-client-certificate-verification-service</link>
      <pubDate>Wed, 26 Mar 2014 00:00:00 +0000</pubDate>
      
      <guid>/blog/2014/03/26/how-to-design-a-distributed-client-certificate-verification-service</guid>
      <description>

&lt;p&gt;With Eccentric Authentication, the goal is to make sure that each&lt;br /&gt;
client certificate has a globally unique, human memorable name. In&lt;br /&gt;
other words: there are no two certificates (with different public&lt;br /&gt;
keys) bearing the same CN.&lt;/p&gt;

&lt;p&gt;With unique CN&amp;rsquo;s, people can trust that each signed message must have&lt;br /&gt;
been signed by the holder of the corresponding private key. This ties&lt;br /&gt;
human memorable names to public keys. When we make it globally unique,&lt;br /&gt;
we have squared Zooko&amp;rsquo;s Triangle.&lt;/p&gt;

&lt;p&gt;To make sure that each CN is unique, we create a Client Certificate&lt;br /&gt;
Validation Service.&lt;/p&gt;

&lt;p&gt;The main tasks of the Client Certificate Verification Service are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validate that each client certificate has a unique CN;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Raise an alarm when a violation is detected.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CN&amp;rsquo;s are a tuple of (nickname, sitename), for example:&lt;br /&gt;
user@domain. Each site signs the client certificates for its&lt;br /&gt;
clients. Client certificates contain no identifying data other than&lt;br /&gt;
the nick name and the user&amp;rsquo;s public key. This makes client&lt;br /&gt;
certificates pseudonyms for their owners. People have at least one,&lt;br /&gt;
perhaps more different pseudonyms for each site they&amp;rsquo;ve signed up for.&lt;/p&gt;

&lt;p&gt;To make sure that only the site itself can sign certificates for that&lt;br /&gt;
domain, each site runs its own RootCA. That CA is specified in&lt;br /&gt;
DANE/DNSSEC, making the domain name point to a globally unique Root CA&lt;br /&gt;
public key. (Site identity).&lt;/p&gt;

&lt;p&gt;The risk is that a site signs multiple certificates bearing the same&lt;br /&gt;
CN. This would enable the site to perform a MitM-attack on its users.&lt;/p&gt;

&lt;p&gt;To counter that treat, people submit their client certificates to the&lt;br /&gt;
verification service. The service makes it &lt;em&gt;detectable&lt;/em&gt; when there is&lt;br /&gt;
a violation. That&amp;rsquo;s sufficient for our purposes.&lt;/p&gt;

&lt;p&gt;More requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CCVS must not refuse to add any valid certificate to its list;&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This requirement is to ensure that when a duplicate certificate for a&lt;br /&gt;
CN is detected by someone, it will be added to the CCVS, so others can&lt;br /&gt;
learn about this incident.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CCVS must not be able to withhold a certificate when queried for a CN.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CCVS must answer truthfully. It may not be able to withhold&lt;br /&gt;
certificates that match a given CN. It must report them all. If not,&lt;br /&gt;
it could collude with the site&amp;rsquo;s CA to attempt a MitM attack.&lt;/p&gt;

&lt;h1 id=&#34;the-challenge&#34;&gt;The challenge&lt;/h1&gt;

&lt;p&gt;The challenge is to find protocol that fits these requirements. Bonus&lt;br /&gt;
points if it is scalable, distributable .&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>crypto renaissance</title>
      <link>/blog/2013/09/21/crypto-renaissance</link>
      <pubDate>Sat, 21 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/09/21/crypto-renaissance</guid>
      <description>

&lt;p&gt;With  &amp;lsquo;CryptoGate&amp;rsquo; in full action, many people are trying to come&lt;br /&gt;
up with a solution. Some good, many bad.&lt;/p&gt;

&lt;p&gt;Many people focus on the security aspect of cryptography. Although&lt;br /&gt;
necessary, it is not sufficient.&lt;/p&gt;

&lt;p&gt;The thing most people take for granted is how to authenticate the&lt;br /&gt;
other end of your communication channel. With PGP/GPG you need a web&lt;br /&gt;
of trust to validate. WebID/FOAF tries to replicate that in&lt;br /&gt;
HTTPS. These trust connections are public knowledge. There is no&lt;br /&gt;
anonymity. And if you are not part of that network, you don&amp;rsquo;t have a&lt;br /&gt;
way to validate any of the keys.&lt;/p&gt;

&lt;p&gt;X509 server certificates from the global certificate authorities are a&lt;br /&gt;
scam (due to the missing X500 directory that matches end point&lt;br /&gt;
identities to certificate authorities). Try to answer this one: Who is&lt;br /&gt;
the certificate authority of your bank&amp;rsquo;s web site?&lt;/p&gt;

&lt;p&gt;End user client certificates from these same certificate authorities&lt;br /&gt;
are akin to digital passports, tying all use of it to one&amp;rsquo;s true&lt;br /&gt;
identity, for life. Besides they still suffer from the missing x500&lt;br /&gt;
directory. One can&amp;rsquo;t tell from the certificate, if Guido Witmond&amp;rsquo;s&lt;br /&gt;
certificate signed by Verisign is mine, a forgery, or someone else&lt;br /&gt;
with the same name.&lt;/p&gt;

&lt;h3 id=&#34;validate-keys-of-total-strangers&#34;&gt;Validate keys of total strangers&lt;/h3&gt;

&lt;p&gt;I&amp;rsquo;ve came up with my way of doing things. I believe the answer lies in&lt;br /&gt;
the fact that we need a way to exchange public keys between total&lt;br /&gt;
strangers, reliably. In a way that is backwards compatible with the&lt;br /&gt;
current web, as that&amp;rsquo;s what people are used to.&lt;/p&gt;

&lt;p&gt;I call that effort Eccentric Authentication.&lt;/p&gt;

&lt;p&gt;The central idea is that each website signs the client certificates for all&lt;br /&gt;
it&amp;rsquo;s customers. The site runs its own CA. The only (and utmost&lt;br /&gt;
important) requirement is that the user-chosen account name is unique&lt;br /&gt;
for the site. Users don&amp;rsquo;t have to provide email address, passwords, or&lt;br /&gt;
other identifying details. Certificates are anonymous. Especially when&lt;br /&gt;
Tor is used. Users will have a different identity at each site,&lt;br /&gt;
sometimes more than one at a single site.&lt;/p&gt;

&lt;p&gt;The second thing is that whenever people write a blog or leave&lt;br /&gt;
comments, these messages are signed with their private key.&lt;br /&gt;
Other visitors at the site can recognize the message signature by the&lt;br /&gt;
fact that the CA is the one from the site.&lt;/p&gt;

&lt;p&gt;This ties the message to the person holding the private key. But a&lt;br /&gt;
public key is not a human friendly identifier. The chosen&lt;br /&gt;
account name (as Common Name) in the signature is human friendly.&lt;/p&gt;

&lt;p&gt;To protect against MitM attacks, we need a way to verify that the&lt;br /&gt;
site&amp;rsquo;s CA signs each account name only once. I propose we use a&lt;br /&gt;
central registry like CMU&amp;rsquo;s Perspectives but for client&lt;br /&gt;
certificates. Whenever a person signs up for a client certificate they&lt;br /&gt;
submit their certificate to this registry. Every once in a while&lt;br /&gt;
people look up to see if theirs is (still) the only one for their&lt;br /&gt;
account name at the site. The most important requirement for this&lt;br /&gt;
registry is that it cannot fake the answers, once a certificate has&lt;br /&gt;
been submitted, it cannot deny it has received it. It&amp;rsquo;s best if it is&lt;br /&gt;
set up as a distributed service.&lt;/p&gt;

&lt;p&gt;These two ingredients, Local CAs that sign only their own clients and&lt;br /&gt;
the global registry, are sufficient to let total strangers communicate&lt;br /&gt;
privately and anonymously.&lt;/p&gt;

&lt;p&gt;If a reader of this signed blog wants to, they can write an encrypted&lt;br /&gt;
message to the author of the blog using the public key in the&lt;br /&gt;
signature on the blog. A quick lookup at the registry will tell if&lt;br /&gt;
theirs is still the only certificate for the {account name, site name}&lt;br /&gt;
tuple.&lt;/p&gt;

&lt;h3 id=&#34;authenticated-anonymously&#34;&gt;Authenticated anonymously&lt;/h3&gt;

&lt;p&gt;Once they&amp;rsquo;ve exchanged the first messages between them, and they&lt;br /&gt;
checked that both their account name and that of the other party have&lt;br /&gt;
the expected certificate at the registry, they&amp;rsquo;ve authenticated each&lt;br /&gt;
others public keys!&lt;/p&gt;

&lt;p&gt;Two total strangers, who have never met, have been introduced by a&lt;br /&gt;
third party (the site) that also doesn&amp;rsquo;t know anything about the two.&lt;/p&gt;

&lt;p&gt;The site disappears from the picture. Once authenticated, the people&lt;br /&gt;
can send a message (encrypted of course) with a delivery end point&lt;br /&gt;
that is independent from the site.&lt;/p&gt;

&lt;h3 id=&#34;global-unique-names&#34;&gt;Global unique names&lt;/h3&gt;

&lt;p&gt;As we have a way to validate the account-name sitename tuple, we can&lt;br /&gt;
distribute public keys by just writing down this name.  One can&lt;br /&gt;
introduce one other by telling this name. The recipient can look up and&lt;br /&gt;
see that the name points to one certificate. Here is the seed for a&lt;br /&gt;
web of connections. No nasty fingerprints to validate.&lt;/p&gt;

&lt;h3 id=&#34;there-is-more&#34;&gt;There is more.&lt;/h3&gt;

&lt;p&gt;With the site&amp;rsquo;s server certificate signed by the site&amp;rsquo;s own CA,&lt;br /&gt;
clients can match the client certificates for the site against the&lt;br /&gt;
site&amp;rsquo;s server certificate. This makes the CA&amp;rsquo;s root certificate the&lt;br /&gt;
&lt;em&gt;identity&lt;/em&gt; of the site. This protects against phishing, as the&lt;br /&gt;
phishers cannot fake the CA&amp;rsquo;s root key. It won&amp;rsquo;t match.&lt;/p&gt;

&lt;p&gt;It also creates censorship resistance. The site can change names, go&lt;br /&gt;
dark on onion sites. When the site owner creates a new certificate&lt;br /&gt;
with the same Root CA, the new site assumes the old identity. People can log in&lt;br /&gt;
again with their existing certificates.&lt;/p&gt;

&lt;p&gt;I use DNSSEC and DANE to make sure that new people can find the&lt;br /&gt;
correct site. In combination with the registry, people can validate&lt;br /&gt;
that the DNS registries have not been manipulated.&lt;/p&gt;

&lt;h3 id=&#34;it-doesn-t-take-much&#34;&gt;It doesn&amp;rsquo;t take much.&lt;/h3&gt;

&lt;p&gt;All that&amp;rsquo;s needed to bootstrap this is a browser plug-in that does the&lt;br /&gt;
crypto work. As proof of concept, I made a web proxy to show how easy the user interface can be.&lt;/p&gt;

&lt;p&gt;Please find it at &lt;a href=&#34;/blog/2013/06/07/run-it-yourself&#34;&gt;Run it Yourself&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, I&amp;rsquo;d happy to clarify. Just use &lt;a href=&#34;/contact&#34;&gt;plain email&lt;/a&gt; for now.&lt;/p&gt;

&lt;p&gt;With Regards, Guido Witmond.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>a subversive idea</title>
      <link>/blog/2013/09/05/a-subversive-idea</link>
      <pubDate>Thu, 05 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/09/05/a-subversive-idea</guid>
      <description>

&lt;p&gt;In the previous blog &lt;a href=&#34;/blog/2013/08/31/the-holy-grail-of-cryptography&#34;&gt;The Holy Grail of Cryptography&lt;/a&gt;,&lt;br /&gt;
we&amp;rsquo;ve shown how you can validate keys when you know the person. Once&lt;br /&gt;
validated, that key enables the use of the secure channel.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve also shown how we can create a web site that lets total&lt;br /&gt;
strangers communicate securely between each other.  The web site acts&lt;br /&gt;
as introducer, letting strangers exchange keys and provides the transport&lt;br /&gt;
for the messages.&lt;/p&gt;

&lt;h2 id=&#34;separate-identity-from-transport&#34;&gt;Separate identity from transport&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Philosphically speaking, the secure channel is an abstract channel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The secure channel is an abstract channel. It comes into existence at&lt;br /&gt;
the moment the public keys become validated to belong to the other person.&lt;/p&gt;

&lt;p&gt;The channel is not tied to a single transport mechanism. Although you&lt;br /&gt;
need a concrete transport to &lt;em&gt;use&lt;/em&gt; the channel, it is not tied to that&lt;br /&gt;
channel. The channel can be manifest in severel different forms.&lt;/p&gt;

&lt;p&gt;The first form is the channel that the web site offers. It offers to&lt;br /&gt;
transmit a message from one to the other. The sender encrypts the&lt;br /&gt;
message with the public key of the recipient so the site cannot learn&lt;br /&gt;
of the contents of the message. It can only forward the message to the&lt;br /&gt;
recipient. We are going to use that channel to create another one.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A dating site&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suppose we run a dating site. Bob has seen Alice&amp;rsquo;s profile and they&lt;br /&gt;
have sent some private messages back and forth via the site. Bob&lt;br /&gt;
decides he wants to take it a step further and wants to talk to&lt;br /&gt;
her. He opens a ZRTP-listener on his own computer. It&amp;rsquo;s a protocol for&lt;br /&gt;
encrypted (confidential) voice and video chat. He does three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;He configures it that it only accepts connections that are&lt;br /&gt;
identified with the certificate of Alice. Thus, only Alice can call,&lt;br /&gt;
all others are rejected.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;He configures it with his dating-site certificate and private key,&lt;br /&gt;
so Alice can verify it&amp;rsquo;s that Bob from our dating site.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;He sends Alice an encrypted message through the dating site in&lt;br /&gt;
which he specifies the ZRTP-endpoint, inviting her to place the call.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then he waits until Alice places the call. (If she decides to do so).&lt;br /&gt;
When he receives a call, it can only be Alice as she&amp;rsquo;s the only one&lt;br /&gt;
with the private key that matches her certificate.&lt;/p&gt;

&lt;p&gt;Now they can talk in private. Not even the dating site learns that&lt;br /&gt;
they are calling. The site is not involved anymore. The call goes&lt;br /&gt;
direct from Alice&amp;rsquo;s computer to Bobs&amp;rsquo;..&lt;/p&gt;

&lt;p&gt;What we have done here is to use the dating site as &lt;em&gt;introducer&lt;/em&gt; between&lt;br /&gt;
two strangers so they can exchange public keys without ever having met&lt;br /&gt;
before.&lt;/p&gt;

&lt;p&gt;All it takes is a &lt;em&gt;public&lt;/em&gt; forum, a dating site, blog site or a comments&lt;br /&gt;
section at a newspaper to introduce strangers to each other so they can&lt;br /&gt;
communicate &lt;em&gt;privately&lt;/em&gt; via different concrete channels.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A single message is all it takes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A single message is all it takes to create a new secure channel when&lt;br /&gt;
you have an existing secure channel.&lt;/p&gt;

&lt;p&gt;Suppose the dating site went broke just before Bob wanted to invite&lt;br /&gt;
Alice for his call. The concrete transport that they&amp;rsquo;ve used so far is&lt;br /&gt;
gone. Bob doesn&amp;rsquo;t have to despair. The abstract channel is still in&lt;br /&gt;
place as both still have each others public keys.&lt;/p&gt;

&lt;p&gt;All Bob needs to do is to try to create a new concrete channel by&lt;br /&gt;
getting the invitation across to Alice.  Most likely there will be&lt;br /&gt;
some blogging sites that write about the demise of this dating&lt;br /&gt;
site. Bob can write a public comment at that blog that reads:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; Dear Alice, I would love to get in contact with you. 
 Please call me at &amp;lt;endpoint&amp;gt;, you can recognize me 
 by my certificate.

 In anticipation, Bob
 &amp;lt;signed with Bob&#39;s dating site-certificate&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;He then plasters this message everywhere he expects her to see it. (It&lt;br /&gt;
helps Bob a lot if they&amp;rsquo;ve talked about hobbies and such.)  When Alice&lt;br /&gt;
eventually finds the message, she sees that the signature is from the&lt;br /&gt;
same Bob as the one on the dating site. If she wants, she can place&lt;br /&gt;
the call.&lt;/p&gt;

&lt;p&gt;What happened is that &amp;mdash; at the moment Alice has verified the signature on&lt;br /&gt;
Bobs public announcement &amp;mdash; the secure channel manifested itself.&lt;/p&gt;

&lt;h2 id=&#34;the-power-of-client-certificates&#34;&gt;The power of client certificates&lt;/h2&gt;

&lt;p&gt;The real power of client certificates is that they don&amp;rsquo;t get&lt;br /&gt;
invalidated when the website and its CA disappear.  You may lose a&lt;br /&gt;
concrete channel but when you have enough &lt;em&gt;independent&lt;/em&gt; other&lt;br /&gt;
channels, you won&amp;rsquo;t lose contact.&lt;/p&gt;

&lt;p&gt;The Eccentric protocol makes it easy to create these introducers, so&lt;br /&gt;
there is not a single identity to block.&lt;/p&gt;

&lt;p&gt;The rest of this web site is devoted to make this dream come true.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>the holy grail of cryptography</title>
      <link>/blog/2013/08/31/the-holy-grail-of-cryptography</link>
      <pubDate>Sat, 31 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/08/31/the-holy-grail-of-cryptography</guid>
      <description>

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; is to create a secure channel in an insecure environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A secure channel is where you can communicate with &lt;em&gt;someone&lt;/em&gt; knowing&lt;br /&gt;
that no one else can &lt;em&gt;impersonate&lt;/em&gt; your communication partner.&lt;/p&gt;

&lt;p&gt;Knowing &lt;em&gt;whom&lt;/em&gt; you talk to the is &lt;em&gt;the most important&lt;/em&gt;&lt;br /&gt;
aspect of all cryptography protocols. Even more than keeping the&lt;br /&gt;
message confidential, or preventing people from learning who you&lt;br /&gt;
communicate with. (Don&amp;rsquo;t get me wrong, these are very important.)&lt;/p&gt;

&lt;p&gt;Many great security protocols take it for granted that you &lt;em&gt;already&lt;br /&gt;
know&lt;/em&gt; who you want to talk to, so these designers focus on the&lt;br /&gt;
confidentiality and anonymity aspects.&lt;/p&gt;

&lt;p&gt;However, there is no easy way to communicate securely with the strangers&lt;br /&gt;
you meet on a web site. You can communicate, for sure, but there is no&lt;br /&gt;
way of knowing that you talk to the same person next time. Only when&lt;br /&gt;
you can &lt;em&gt;verify&lt;/em&gt; that you are indeed talking to the same person, you&lt;br /&gt;
have a &lt;em&gt;secure channel&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Getting that secure channel, that&amp;rsquo;s our &lt;em&gt;Quest&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&#34;shared-secret&#34;&gt;Shared secret&lt;/h2&gt;

&lt;p&gt;When you meet with someone in person, you can agree on a secret&lt;br /&gt;
password to encrypt future communication. As long as you keep the&lt;br /&gt;
password secure, you have your secure channel.&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;ve never met in person, you obviously can&amp;rsquo;t establish a shared&lt;br /&gt;
secret. We need something else. It&amp;rsquo;s called Public Key cryptography.&lt;/p&gt;

&lt;h2 id=&#34;public-keys&#34;&gt;Public keys&lt;/h2&gt;

&lt;p&gt;A very short primer on public keys. Both of you (independently) create&lt;br /&gt;
a &lt;em&gt;key pair&lt;/em&gt;. It consists of a private key and a public key. Both of you keep&lt;br /&gt;
your private key private. Tell it to no one. The public key gets to travel the world.&lt;/p&gt;

&lt;p&gt;There are two things you can do with the key pairs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You can encrypt a message with someones&amp;rsquo; public key. Only the owner&lt;br /&gt;
of the matching private key can read it with that private key. You&lt;br /&gt;
have a one-way secure channel. The recipient uses your public key to&lt;br /&gt;
encrypt the response to you. As you are the sole proprietor of your&lt;br /&gt;
private key, only you can decrypt it. That is the return channel.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A private key can sign a message.  Everyone can validate&lt;br /&gt;
(with the public key) that is was &lt;em&gt;that&lt;/em&gt; private key that signed it.&lt;br /&gt;
This signature is the proof that a message is actually send by the&lt;br /&gt;
other party, not by someone else. It establishes the identity of the&lt;br /&gt;
other party.&lt;/p&gt;

&lt;p&gt;In simple terms, when you can exchange your public keys,&lt;br /&gt;
  you have created a secure channel between the two of you.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The not so simple part is to exchange your public keys. You need to&lt;br /&gt;
make sure that the public key really comes from the person you expect&lt;br /&gt;
it to be. If not, you are encrypting your secret message to someone&lt;br /&gt;
else.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;  We need to make sure we get the correct key from our partner. 
  We need a secure channel for that. Ouch.
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;authenticating-relatives&#34;&gt;Authenticating relatives&lt;/h2&gt;

&lt;p&gt;If you know the person and don&amp;rsquo;t mind the traffic analysis, send them&lt;br /&gt;
your public key by insecure email. Ask for their public key in&lt;br /&gt;
return. When you have exchanged keys, you need to validate these keys.&lt;/p&gt;

&lt;p&gt;To do so, set up an encrypted voice and video chat channel that uses&lt;br /&gt;
these keys to secure the connection. You use your private key and&lt;br /&gt;
their public key on your end. They use their private key and your&lt;br /&gt;
public key at their end. When you have established a connection and&lt;br /&gt;
you recognize each other, presto. Keys validated. You have a secure&lt;br /&gt;
channel from now on.&lt;/p&gt;

&lt;p&gt;The reason it works is that if one of you have gotten a wrong key, the&lt;br /&gt;
connection would not get established, as it does not match the other&lt;br /&gt;
end&amp;rsquo;s private key.&lt;/p&gt;

&lt;p&gt;(There is a small chance that you might get tricked by a Man in the&lt;br /&gt;
Middle-attack. You have to do a little more work than just described,&lt;br /&gt;
but that&amp;rsquo;s easy.)&lt;/p&gt;

&lt;h2 id=&#34;authenticating-strangers&#34;&gt;Authenticating strangers&lt;/h2&gt;

&lt;p&gt;The problem is more difficult when you want to communicate with&lt;br /&gt;
strangers. You can&amp;rsquo;t rely on voice recognition, nor meet in person. If&lt;br /&gt;
you could meet in person, just exchange the public keys like you did&lt;br /&gt;
with the password.&lt;/p&gt;

&lt;p&gt;As public keys are just big (somehow random) numbers, they&lt;br /&gt;
don&amp;rsquo;t have any identifying properties. We need to attach a name to a&lt;br /&gt;
public key. What we need are Certificates.&lt;/p&gt;

&lt;h2 id=&#34;certificates&#34;&gt;Certificates&lt;/h2&gt;

&lt;p&gt;A certificate is quite simple. It&amp;rsquo;s a name attached to a public&lt;br /&gt;
key. That combination is then signed with the private key of the Certificate Signer.&lt;/p&gt;

&lt;p&gt;As you remember, a signature from a private key can be validated against the&lt;br /&gt;
corresponding public key.&lt;/p&gt;

&lt;p&gt;The private key that signs the certificate belongs to a Certificate&lt;br /&gt;
Authority (CA). That private key the most important asset of any CA. It binds&lt;br /&gt;
names and public keys together in a signed statement.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s the whole task of CA, binding names and public keys&lt;br /&gt;
together. It means that if you can trust the CA, you can trust that&lt;br /&gt;
the public key belongs to the name.&lt;/p&gt;

&lt;p&gt;In other words, the name becomes the human readable identity of the public key.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We&amp;rsquo;ve split the the problem of creating a secure channel into two sub-problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;to recognize the names;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;the finding a way to trust the certificate authority.&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are several  attempts at solving these problems.&lt;/p&gt;

&lt;h2 id=&#34;classic-trusted-third-parties&#34;&gt;Classic Trusted Third Parties&lt;/h2&gt;

&lt;p&gt;Classic Certificate Authorities solve the problems by requiring you to&lt;br /&gt;
prove your identity to them with your passport. Once they are&lt;br /&gt;
satisfied of your identity (and you paid them) they create a&lt;br /&gt;
certificate that contains your name and your public key. It proves to&lt;br /&gt;
the world that you own that public (and matching private) keys.&lt;/p&gt;

&lt;p&gt;But you lose all anonymity. The certificate is like a digital passport.&lt;/p&gt;

&lt;p&gt;The Trusted Third Party CAs solve the problem of identifying Public&lt;br /&gt;
Well-Known people. For example, a mayor could get a certificate&lt;br /&gt;
stating that he is the mayor of a city. It would be signed by the CA&lt;br /&gt;
that signs all certificates for civil servants.&lt;/p&gt;

&lt;p&gt;It allows you to send your complaint about your neighbours&amp;rsquo; fence to&lt;br /&gt;
the correct person, (the mayor) and not a major newspaper editor who&lt;br /&gt;
bears the same name. Whose certificate is signed by that of the journalists union.&lt;/p&gt;

&lt;p&gt;These digital passports are not a good idea to use on the broad&lt;br /&gt;
internet, as they tie every action you do with your true life identity&lt;br /&gt;
for ever.&lt;/p&gt;

&lt;p&gt;We need a different solution.&lt;/p&gt;

&lt;h2 id=&#34;eccentric-authentication&#34;&gt;Eccentric Authentication&lt;/h2&gt;

&lt;p&gt;So far, in this blog, we established a way to create a secure channel&lt;br /&gt;
between two (strangers) who meet in person. They just exchange the&lt;br /&gt;
public keys and they&amp;rsquo;re done.&lt;/p&gt;

&lt;p&gt;We established away to create a secure channel between two relatives:&lt;br /&gt;
thay exchange the keys in an insecure way and validate the keys by&lt;br /&gt;
setting up an encrypted voice and video chat. When they recognize each&lt;br /&gt;
other, the keys have reached their correct destinations. (With some&lt;br /&gt;
extra work to prevent a MitM).&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve also shown a way to esablish a secure channel with a publicly&lt;br /&gt;
known person. They need to get a certificate from a well-known Trusted&lt;br /&gt;
CA to proof you have the correct public key. That allows anyone to&lt;br /&gt;
validate that the key belongs to the person.&lt;/p&gt;

&lt;p&gt;To sumarize: In all these cases, you need to know the &lt;em&gt;identity&lt;/em&gt; of the person you&lt;br /&gt;
want to communicate with. Once you&amp;rsquo;ve confirmed the identity of the&lt;br /&gt;
person, you&amp;rsquo;ve validated the public key. Then you can use the key to&lt;br /&gt;
use the secure channel.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The identity of the person confirms the identity of the public key.&lt;br /&gt;
The key becomes the substitute identity of the person.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key is the substitute identity of the person. The key &lt;em&gt;is&lt;/em&gt; an identity.&lt;/p&gt;

&lt;h2 id=&#34;turning-identity-management-upside-down&#34;&gt;Turning identity management upside down&lt;/h2&gt;

&lt;p&gt;We have to ask ourselves this question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Question: Why would two strangers want to create a secure channel?&lt;/p&gt;

&lt;p&gt;Answer: They don&amp;rsquo;t.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They don&amp;rsquo;t have any reason to communicate with each other. They&amp;rsquo;re&lt;br /&gt;
strangers to each other. They stay that way unless they would meet each other.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s what we are going to do, we are going to create a site as a way&lt;br /&gt;
to introduce people to each other. Say, a blog site. It will certainly&lt;br /&gt;
attract people. Most of them strangers to each other.&lt;/p&gt;

&lt;p&gt;Our blog site lets people start a blog on a topic. And it offers both&lt;br /&gt;
public visible comments as well as private messages. Just like any&lt;br /&gt;
other blog or forum software.&lt;/p&gt;

&lt;p&gt;Our site is different in the way we authenticate people. We don&amp;rsquo;t ask&lt;br /&gt;
for email addresses, nor passwords. We use certificates to let people&lt;br /&gt;
log in. Remember that cerficates bind a name and a public key? That&amp;rsquo;s&lt;br /&gt;
all that people need to provide when they sign up for an&lt;br /&gt;
account. People come up with the nickname, it&amp;rsquo;s how they want to be&lt;br /&gt;
known on our web site. It will be the name under which they write their&lt;br /&gt;
blogs and comments.&lt;/p&gt;

&lt;p&gt;Make sure that you create a nickname when you sign up, not your real&lt;br /&gt;
name.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Our own CA.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We run our own CA to sign the certificates for our visitors. It signs&lt;br /&gt;
client certificates. Our web site only accepts our client certificates&lt;br /&gt;
signed by our own CA.&lt;/p&gt;

&lt;p&gt;There is one more difference. When people post a blog or a&lt;br /&gt;
comment. Their computer &lt;em&gt;signs&lt;/em&gt; the message with their private&lt;br /&gt;
key. This signature is placed together with the message on the blog.&lt;/p&gt;

&lt;p&gt;When you read the message, your computer verifies the signature. It&lt;br /&gt;
uses the certificate to do so.  It means that if you want to write&lt;br /&gt;
a private message, you already have correct certificate (with the&lt;br /&gt;
validated public key) to encrypt a message.  Hand it to the site for&lt;br /&gt;
delivery and wait for the reply.  As the message is encrypted, not&lt;br /&gt;
even the site-operators can read the message. How&amp;rsquo;s that for private&lt;br /&gt;
messaging?&lt;/p&gt;

&lt;p&gt;With this design we have solved the dual problem of recognizing the&lt;br /&gt;
names and trusting the CA.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The site has become the introducer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The site has become the introducer of both the people, and their public keys.&lt;/p&gt;

&lt;p&gt;This is the biggest benefit of the Eccentric Authentication design. It&lt;br /&gt;
enables people to exchange cryptographic keys in the most easy&lt;br /&gt;
way. Just by signing up for a web site and blogging, you distribute&lt;br /&gt;
your public key. By reading the messages and responding, you exchange&lt;br /&gt;
keys.&lt;/p&gt;

&lt;p&gt;The public key becomes the identity of the person behind it. Although&lt;br /&gt;
you don&amp;rsquo;t know the person, you have their key validated through their&lt;br /&gt;
use of the site.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Proper authentication is the key to anonymous connections.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We left out the part of making sure that the site is not performing a&lt;br /&gt;
Man in the Middle attack on its users. See the section on&lt;br /&gt;
 &lt;a href=&#34;/eccentric-authentication/global_registry_of_dishonesty&#34;&gt;Global registry&lt;/a&gt;.&lt;br /&gt;
It deals with that part.&lt;/p&gt;

&lt;p&gt;Read our next blog &lt;a href=&#34;/blog/2013/09/05/a-subversive-idea&#34;&gt;A subversive idea&lt;/a&gt;&lt;br /&gt;
on why we call identity management a secure channel.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>run it yourself</title>
      <link>/blog/2013/06/07/run-it-yourself</link>
      <pubDate>Fri, 07 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/06/07/run-it-yourself</guid>
      <description>

&lt;blockquote&gt;
&lt;p&gt;Safe, secure and as anonymous as you want.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was already possible to test drive the Eccentric Authentication&lt;br /&gt;
Proxy. But it required you to compile software. Now we&amp;rsquo;ve flattend that&lt;br /&gt;
hurdle (a bit).&lt;/p&gt;

&lt;p&gt;As of today we can offer the first download of our client software for&lt;br /&gt;
Debian GNU/Linux. It might even work at other linux-distributions.&lt;/p&gt;

&lt;p&gt;The software is a local proxy service. It sits on your computer,&lt;br /&gt;
receiving requests from your brower. It does all cryptographic&lt;br /&gt;
operations that browsers are bad at.&lt;/p&gt;

&lt;p&gt;Here is a walkthrough of what you can expect when you run it: &lt;a href=&#34;/blog/2013/06/12/walkthrough-datingsite&#34;&gt;walkthrough&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;download&#34;&gt;download&lt;/h2&gt;

&lt;p&gt;You can download the ecca-proxy software here: &lt;a href=&#34;/ecca-proxy.tgz&#34;&gt;ecca-proxy.tgz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice that this is a 64-bit executable. (linux only).&lt;/p&gt;

&lt;h2 id=&#34;run-it&#34;&gt;run it&lt;/h2&gt;

&lt;p&gt;To run it, perform these steps:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt get install libunbound2 libsqlite3 openssl
tar xzvf ecca-proxy.tgz

./ecca-proxy
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;configure-your-browser&#34;&gt;configure your browser&lt;/h2&gt;

&lt;p&gt;You need to configure your brower to send all requests to the ecca-proxy. Here is how to do that:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;start your browser (iceweasel/firefox)
click on Edit -&amp;gt; Preferences -&amp;gt; Advanced -&amp;gt; Network -&amp;gt; Settings
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You should see this:&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/iceweasel-proxy-preferences.png&#34; title=&#34;&#34; alt=&#34;&#34;&gt;
  &lt;span class=&#34;caption-text&#34;&gt;&lt;/span&gt;
&lt;/span&gt;


&lt;p&gt;Click &lt;em&gt;&amp;lsquo;Manual&amp;hellip;&amp;rsquo;&lt;/em&gt; and fill in &lt;em&gt;127.0.0.1&lt;/em&gt; and port &lt;em&gt;8000&lt;/em&gt; at the HTTP Proxy setting and press Ok -&amp;gt; Close&lt;/p&gt;

&lt;p&gt;Now you&amp;rsquo;re ready to play with it. We have two websites that offer Eccentric Authentication:&lt;/p&gt;

&lt;h3 id=&#34;1-the-worlds-most-secure-dating-site&#34;&gt;1. The worlds&amp;rsquo; most secure dating site&lt;/h3&gt;

&lt;p&gt;It looks a bit like a dating site. You can get a list of aliens (as we&lt;br /&gt;
call humans that use this service). You can create your own&lt;br /&gt;
profile. And you can send encrypted messages. The proxy is handling&lt;br /&gt;
encryption and decryption. The dating site only sees the unreadable&lt;br /&gt;
bits (ciphertext).&lt;/p&gt;

&lt;p&gt;To see the messaging in action, get a friend to sign up too and send&lt;br /&gt;
encrypted messages to each other. It&amp;rsquo;s free!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;http://dating.wtmnd.nl/
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;2-the-cryptoblog&#34;&gt;2. The cryptoblog&lt;/h3&gt;

&lt;p&gt;It&amp;rsquo;s a rudimentary blogging site. You can create a blog or comment on&lt;br /&gt;
other peoples&amp;rsquo; blogs. The demo showcases how one can exchange keys&lt;br /&gt;
with strangers - correctly - without any dificult prodedures. Instead,&lt;br /&gt;
just click.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;http://cryptoblog.wtmnd.nl/
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;free-software&#34;&gt;Free software&lt;/h2&gt;

&lt;p&gt;This is all Free Software with open source code. The source code of the ecca-proxy is at:&lt;br /&gt;
&lt;a href=&#34;https://github.com/gwitmond/ecca-proxy&#34;&gt;github.com/gwitmond/ecca-proxy&lt;/a&gt;.&lt;br /&gt;
The dating site is based at &lt;a href=&#34;https://github.com/gwitmond/ecca-datingsite&#34;&gt;github.com/gwitmond/ecca-datingsite&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>an end run around zookos triangle</title>
      <link>/blog/2013/06/02/an-end-run-around-zookos-triangle</link>
      <pubDate>Sun, 02 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/06/02/an-end-run-around-zookos-triangle</guid>
      <description>&lt;p&gt;&lt;em&gt;An end run around Zooko&amp;rsquo;s triangle&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Zooko%27s_triangle&#34;&gt;Zooko&amp;rsquo;s Triangle&lt;/a&gt;&lt;br /&gt;
describes three properties of naming systems. Zooko states that you&lt;br /&gt;
can choose any combination of two properties but you lose the third.&lt;/p&gt;

&lt;p&gt;Zooko may be entirely right that a single system cannot overcome this&lt;br /&gt;
limitation.  However, using Eccentric Authentication in combination&lt;br /&gt;
with other cryptographic systems we can do an end run around&lt;br /&gt;
it. This way we overcome the limitations of a single system and reach&lt;br /&gt;
our ulimate goal of: 1: Secure, 2: Decentralized and 3:&lt;br /&gt;
Human-meaningful names on the internet.&lt;/p&gt;

&lt;p&gt;This blog (tries) to explain how we can reach that goal.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The triangle&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Zooko&amp;rsquo;s triangle states that there are three properties of&lt;br /&gt;
naming-systems, of which you can choose only two. The properties are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Unique: each name maps to one unique value; (Zooko calls this one&lt;br /&gt;
&amp;lsquo;Secure&amp;rsquo;)&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Decentralized: There is no central authority on the names;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Human meaningful: you can read the name on the side of a bus and&lt;br /&gt;
type it in at home.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Decentralized and human meaningful: &amp;ldquo;Mom&amp;rdquo; and &amp;ldquo;Dad&amp;rdquo;. Each one of us has&lt;br /&gt;
their own &amp;lsquo;values&amp;rsquo; for the names &amp;ldquo;Mom&amp;rdquo; and &amp;ldquo;Dad&amp;rdquo;; You lose uniqueness;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Unique and human meaningful: google.com, apple.com or piratebay.org. These names&lt;br /&gt;
would point to the same well known identities for most of the worlds&amp;rsquo;&lt;br /&gt;
population. But it requires central control to map the names to&lt;br /&gt;
IP-addresses for their web servers. This central control can take away the names at will;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Unique and decentralized: This would be the totally unreadable names&lt;br /&gt;
of your documents in Google Docs with their unpronouncable long&lt;br /&gt;
character strings. Not something to put on the side of a bus to be&lt;br /&gt;
remembered correctly later that evening.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The triangle specifies the holy grail of naming systems: to create a&lt;br /&gt;
world wide mapping between human readable names and values without&lt;br /&gt;
relying on a third party that can take away names at will.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In human terms: To make sure that the same name always point to the same thing. All the time, everywhere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With Eccentric Authentication we use a two-level approach.&lt;/p&gt;

&lt;p&gt;The first level is the uniqueness requirement for the local CAs. Each&lt;br /&gt;
name that a CA signs must be used only once at each CA. Whenever&lt;br /&gt;
someone signs up for a certificate at a local CA, he publishes that&lt;br /&gt;
certificate with the username@@sitename at the Global Registry of&lt;br /&gt;
Dis(honesty). It allows the world to verify that the CA doesn&amp;rsquo;t create&lt;br /&gt;
duplicates.&lt;/p&gt;

&lt;p&gt;The second level comes from tying the CAs into DNSSEC. This makes&lt;br /&gt;
domain names point to only one CA at every point in time. No one can&lt;br /&gt;
change a domain name without the whole world to notice it.&lt;/p&gt;

&lt;p&gt;Together with the Registry, we can validate that all the certificates&lt;br /&gt;
that bear a certain domain name are signed by the same CA-root. The&lt;br /&gt;
DNSSEC and the Registry work together to detect deviations from the&lt;br /&gt;
uniqueness requirement.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;once signed, no way to take back&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you have a certificate from a CA, there is no way anyone can take&lt;br /&gt;
it back. As soon as you&amp;rsquo;ve got the certificate, it&amp;rsquo;s set in stone. If&lt;br /&gt;
the CA signs another public key with the same name, it will be&lt;br /&gt;
detected at the Registry. This single act of singing will taint the&lt;br /&gt;
whole CA as untrustworthy. It means than no one will use that CA&lt;br /&gt;
anymore.&lt;/p&gt;

&lt;p&gt;Even though the CA becomes dishonest. A certificate that you already&lt;br /&gt;
use to communicate with others is still usefull. Every party you&lt;br /&gt;
communicate with &lt;em&gt;remembers&lt;/em&gt; your certificate. And your computer&lt;br /&gt;
remembers the certificates of the people you communicate with. Once&lt;br /&gt;
you&amp;rsquo;ve exchanged the certificates, there is no need to look them up&lt;br /&gt;
again. The Registy is there to help people validate certificates at&lt;br /&gt;
&lt;em&gt;introduction&lt;/em&gt;.  Once introduced they stay valid. Only once in a while,&lt;br /&gt;
you&amp;rsquo;d check out the registry to see if any of the CAs has gotten&lt;br /&gt;
dishonest.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Cryptographic same origin policy</title>
      <link>/blog/2013/03/23/cryptographic-same-origin-policy</link>
      <pubDate>Sat, 23 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/03/23/cryptographic-same-origin-policy</guid>
      <description>

&lt;blockquote&gt;
&lt;p&gt;Using DNSSEC/DANE to protect your Javascript application against the&lt;br /&gt;
  threat of CSRF and CSS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;old-fashioned-same-origin-policy&#34;&gt;Old fashioned Same Origin Policy&lt;/h2&gt;

&lt;p&gt;Currently, browsers use the protocol, domain name and port number as a&lt;br /&gt;
way to tell origins apart.  It is used to tell browsers that some&lt;br /&gt;
disjount group of servers belong to the same trust domain.&lt;/p&gt;

&lt;p&gt;In simple language: It tells the browser which servers belong to my&lt;br /&gt;
web site and all other servers are &amp;lsquo;some one else&amp;rsquo;. The browser can&lt;br /&gt;
tell which javascript is served by me and which is not. The browser&lt;br /&gt;
can decide to treat these two classes with different trust levels. It&lt;br /&gt;
can run my javascript and disallow that from other trust domains.&lt;/p&gt;

&lt;p&gt;But it is based upon domain names. And these have been proven to be&lt;br /&gt;
unreliable.&lt;/p&gt;

&lt;p&gt;The Cryptograhic Same Origin Policy has the same goal, to tell trust&lt;br /&gt;
domains apart but it deploys DSNSEC with DANE and web server&lt;br /&gt;
certificates to do so.&lt;/p&gt;

&lt;h2 id=&#34;cryptograhic-same-origin-policy&#34;&gt;Cryptograhic Same Origin Policy&lt;/h2&gt;

&lt;p&gt;The Cryptograhic Same Origin Policy (CSOP) uses the new DNSSEC and&lt;br /&gt;
DANE protocol. It also uses server certificates (HTTPS). However,&lt;br /&gt;
these certificates are not signed by the current bunch of global&lt;br /&gt;
CAs.&lt;/p&gt;

&lt;p&gt;Instead the server certificates are signed by the site&amp;rsquo;s own&lt;br /&gt;
CA. This is called First Party CA. (FPCA).&lt;/p&gt;

&lt;h3 id=&#34;first-party-ca&#34;&gt;First Party CA&lt;/h3&gt;

&lt;p&gt;The site owner runs his own Certificate Authority. He signs all the&lt;br /&gt;
server certificates of the servers that are under his direct control,&lt;br /&gt;
i.e. where he has the say over the contents of the sites.&lt;/p&gt;

&lt;p&gt;He MUST &lt;em&gt;only&lt;/em&gt; sign his own server certificates. It MUST NOT sign any other&lt;br /&gt;
server certificate.&lt;/p&gt;

&lt;p&gt;The Root Certificate of the FPCA is what the server certificates have&lt;br /&gt;
in common. This root certicate has become the &lt;em&gt;identity&lt;/em&gt; of the servers.&lt;/p&gt;

&lt;p&gt;It allows browser to validate the root certificates of each resource&lt;br /&gt;
on the page and assign trust domains on the root certificates. Notice:&lt;br /&gt;
Browsers MUST only trust First Party CAs. Browsers MUST NOT assume a&lt;br /&gt;
trust domain for server certificates signed by global CAs. We solve&lt;br /&gt;
that with DANE.&lt;/p&gt;

&lt;h3 id=&#34;dane-and-dnssec&#34;&gt;DANE and DNSSEC&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#34;http://tools.ietf.org/draft-ietf-dane-protocol-23&#34;&gt;DANE&lt;/a&gt; is the&lt;br /&gt;
protocol that allows us to specify server certificates in DNS.&lt;/p&gt;

&lt;p&gt;The site owner specifies the Root Certificate of his FPCA in a&lt;br /&gt;
DANE-TLSA record in DNS. As all servers are signed by that same FPCA,&lt;br /&gt;
all TLSA-records contain the same data.&lt;/p&gt;

&lt;p&gt;The TLSA-record must specify Usage selector 2. That states the Trust&lt;br /&gt;
Anchor for the server. Other usage selector values cannot be used for&lt;br /&gt;
CSOP.&lt;/p&gt;

&lt;p&gt;The DNS zone with the server records MUST be signed according to the&lt;br /&gt;
DNSSEC standard.&lt;/p&gt;

&lt;h3 id=&#34;browser&#34;&gt;Browser&lt;/h3&gt;

&lt;p&gt;When the browser is requested &amp;ndash; by the user &amp;ndash; to retrieve a URL and&lt;br /&gt;
render it, it follows this procedure to determine which of the&lt;br /&gt;
resources are from the same origin.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The browser resolves and validates the DNSSEC/DANE TLSA record and&lt;br /&gt;
takes it that this is the &lt;em&gt;Origin&lt;/em&gt; of the page. If there is any&lt;br /&gt;
validation error, the browser displays an error and refuses to render&lt;br /&gt;
this page.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The browser resolves the IP-address, connects and validates that&lt;br /&gt;
the server certificate matches the TLSA record. If there is any&lt;br /&gt;
validation error, the browser displays an error and refuses to render&lt;br /&gt;
the page.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The browser downloads every resource (image, javascript) that it&lt;br /&gt;
can retrieve from this connection and labels these resources to belong&lt;br /&gt;
to the Origin. (It comes from the same server).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;For every resource specified in the that are on different&lt;br /&gt;
servers, the browser performs steps 1 to determine the &lt;em&gt;Origin of that&lt;br /&gt;
resource&lt;/em&gt;. Then it performs step 2 to retrieve it. When there is any&lt;br /&gt;
validation error, the browser discards this resource and displays the&lt;br /&gt;
appropriate error in the page. Ie, broken image symbol.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The browser has established the origins of each resource. It COULD&lt;br /&gt;
treat all resources labeled with the Same value of Origin at the same&lt;br /&gt;
trust level. It MUST treat all resources with different Origin values&lt;br /&gt;
at a different trust level.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It&amp;rsquo;s up to the browser how much trust to give these trust domains.&lt;/p&gt;

&lt;p&gt;For example, we can distribute a javascript application over serveral&lt;br /&gt;
servers, even cdn-hosted servers. For example, a web mail or photo&lt;br /&gt;
manipulation app. The browser can run our javascript while it forbids&lt;br /&gt;
the hostile code from a spying or hacked advertisement platform.&lt;/p&gt;

&lt;p&gt;Notice: To prevent any trust where none should be granted, the&lt;br /&gt;
browser checks that the record has TLSA usage selector 2 and that the&lt;br /&gt;
Certificate specified is not a sub Certificate of any of the known&lt;br /&gt;
global CAs. They don&amp;rsquo;t deliver trust, they just establish a domain name)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>a blog site</title>
      <link>/blog/2012/10/23/a-blog-site</link>
      <pubDate>Tue, 23 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>/blog/2012/10/23/a-blog-site</guid>
      <description>&lt;p&gt;&lt;em&gt;A blog site&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This blog specifies how Eccentric Authentication can be used to design&lt;br /&gt;
a blog site. The most impressive aspect is that we can create a blog&lt;br /&gt;
site that allows anyone to blog using a pseudonym. Even the site&lt;br /&gt;
operators cannot learn the real identity of the blogger.&lt;/p&gt;

&lt;p&gt;Commenters can write either anonymous or under a pseudonym.&lt;/p&gt;

&lt;p&gt;And we show how participants can write private message to each other,&lt;br /&gt;
again without any third party being able to read the contents of the&lt;br /&gt;
messages.&lt;/p&gt;

&lt;p&gt;We will address how to deal with trolls, spammers and other abuse.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sign up for a blog&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;People can sign up for our blog site with an Ecca-account. As with&lt;br /&gt;
every Ecca-account, you choose your username. Your browser generates a&lt;br /&gt;
private key for the account and requests a certificate. When your&lt;br /&gt;
chosen username is still available at the site, you get the&lt;br /&gt;
certificate that binds the username to your public key. The signature&lt;br /&gt;
from the site binds it to the blog site.&lt;/p&gt;

&lt;p&gt;The certificate is used by the site to control access to your blog. It&lt;br /&gt;
means, only you can write at your blog.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Writing your blog entries&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Unless ordinary blog sites, this only publishes cryptographically&lt;br /&gt;
signed data. When you want to write a blog entry, you start your web&lt;br /&gt;
browser, type your text and have your browser sign it with your&lt;br /&gt;
private key. Then you send it to our blog site for publication.&lt;/p&gt;

&lt;p&gt;The site verifies your signature and if that succeeds, it adds your&lt;br /&gt;
message and it&amp;rsquo;s signature to the blog. Under the hood it looks like&lt;br /&gt;
this:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;blog_entry&amp;gt;&amp;lt;title&amp;gt;A sunny afternoon&amp;lt;/title&amp;gt;
   &amp;lt;body&amp;gt;It was a sunny afternoon, time for a beer when .... happend. 
         I loved it.&amp;lt;/body&amp;gt;
   &amp;lt;signature id=&amp;quot;your-username&amp;quot; algorithm=&amp;quot;sha256&amp;quot;&amp;gt;[long hexadecimal string 
     representing the cryptographic signature of above message, signed 
     with your private key]&amp;lt;/signature&amp;gt;
&amp;lt;/blog_entry&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The readers will &amp;ndash; of course &amp;ndash; see a nicely formatted blog entry&lt;br /&gt;
with the signature string hidden, thanks to the wonders that is CSS.&lt;/p&gt;

&lt;p&gt;Your readers&amp;rsquo; browser on the other hand will check the signature. They&lt;br /&gt;
fetch your certificate from the site and actually validate the&lt;br /&gt;
signature against your private key in the certificate.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Writing comments&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Readers can leave comments. It&amp;rsquo;s a blog, so comments are&lt;br /&gt;
expected. There are two kinds of comments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;anonymous comments;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;pseudonymous comments.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The anonymous comments are written by people that love to read your&lt;br /&gt;
blog but don&amp;rsquo;t want to leave any identity when responding.&lt;/p&gt;

&lt;p&gt;The anonymous comments can be held back for publishing until you&lt;br /&gt;
approve them. Or you can allow them up front and you delete them when&lt;br /&gt;
you disapprove. How these comments are dealt with it totally up to&lt;br /&gt;
you. It&amp;rsquo;s your blog. If you disagree with an already published&lt;br /&gt;
anonymous comment you can delete it any time.&lt;/p&gt;

&lt;p&gt;To write a pseudonymous responses requires an Ecca-account. When a&lt;br /&gt;
reader wants to write a comment under a pseudonym, he registers for an&lt;br /&gt;
Ecca account at our blog site before he can write.  Then his browser&lt;br /&gt;
signs the comments with his private key and delivers it at the blog&lt;br /&gt;
site. The site validates your message signature against your&lt;br /&gt;
certificate and posts the comment at the blog.&lt;/p&gt;

&lt;p&gt;As the comments are signed with the commenters&amp;rsquo; private key, just like&lt;br /&gt;
blog entries are, it allows the other blog readers to validate the&lt;br /&gt;
signature. When that signature is valid, the readers have linked your&lt;br /&gt;
public key and your ecca-identity to the message.&lt;/p&gt;

&lt;p&gt;When writing under a pseudonym you can establish a reputation where&lt;br /&gt;
others may recognise your nickname. Even though they don&amp;rsquo;t know your&lt;br /&gt;
real name.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Scoring&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There is a difference between anonymous and pseudonymous&lt;br /&gt;
commenters. Anonymous commenters know their status. Their messages&lt;br /&gt;
need approval upfront and face deletion any time.&lt;/p&gt;

&lt;p&gt;The blog-site keeps track of a reputation score. For every comment you&lt;br /&gt;
write that gets published, you score a reputation point. At first,&lt;br /&gt;
your messages are held back for vetting by the blog owner.&lt;/p&gt;

&lt;p&gt;When you acquire a certain number, say 5 points, your future messages&lt;br /&gt;
will be published without pre-approval of the blog owner, while still&lt;br /&gt;
scoring points.&lt;/p&gt;

&lt;p&gt;When your messages gets flagged as spam by the blog owner, you lose&lt;br /&gt;
half your points. It&amp;rsquo;s the electronic version of trust that comes by&lt;br /&gt;
foot and leaves by horse. It&amp;rsquo;s more difficult to gain trust than it is&lt;br /&gt;
to lose it.&lt;/p&gt;

&lt;p&gt;With a reputation management scheme, such as this we can keep the&lt;br /&gt;
spammers and trolls at bay.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Private messaging&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What we do differently than other sites is that we publish your&lt;br /&gt;
message together with the signature and a way to obtain the&lt;br /&gt;
certificate. It allows your browser to validate the signature and it&lt;br /&gt;
ties your public key to the message.&lt;/p&gt;

&lt;p&gt;With the public key, people can encrypt a message that only your&lt;br /&gt;
matching private key can decrypt. This is the basis for truly secure&lt;br /&gt;
private messaging.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s how it works: A commenter writes a message in his browser, when&lt;br /&gt;
he&amp;rsquo;s finished writing, his browser signs it with his private key and&lt;br /&gt;
encrypts it with your public key. Then the browser drops the message&lt;br /&gt;
at our sites&amp;rsquo; drop box for delivery. Next time you log in, you receive&lt;br /&gt;
the message. Your browser decrypts it with your private key and you&lt;br /&gt;
can read it. As the message is signed, you can validate its signature,&lt;br /&gt;
and when that succeeds, you have the correct public key of the person&lt;br /&gt;
who wrote the message. That key also validates every other message&lt;br /&gt;
written by the person, you now know the persons&amp;rsquo; &amp;ldquo;history&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Using the same method, you can respond to the person.&lt;/p&gt;

&lt;p&gt;Now that you&amp;rsquo;ve exchanged keys you can bootstrap any other security&lt;br /&gt;
protocol between you and the other.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Trust considerations&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The trust requirements for this blog application are quite low. The&lt;br /&gt;
impact it has is quite large.&lt;/p&gt;

&lt;p&gt;Anyone can read any blog and comment without having to log in.  Anyone&lt;br /&gt;
can comment anonymously. Anyone can validate the blog entries against&lt;br /&gt;
the sites CA-certificate.&lt;/p&gt;

&lt;p&gt;Once you decide to open a blog, you implicitly decide that you trust&lt;br /&gt;
the site to run their Certificate Signer correctly. Still, you can&lt;br /&gt;
sign up without providing any personal details.&lt;/p&gt;

&lt;p&gt;By writing the blog signed entries you spread your public key and&lt;br /&gt;
certificate around. Other people can link that key to your&lt;br /&gt;
writings. At the same time, you can connect the public keys of people&lt;br /&gt;
that comment on your blog to their username and to their writings.&lt;/p&gt;

&lt;p&gt;With the blog site providing the link between people&amp;rsquo;s writings and&lt;br /&gt;
their public keys, you can send encrypted messages to the other&lt;br /&gt;
people, knowing it can only be read by that person.&lt;/p&gt;

&lt;p&gt;Effectively, the blog site acts as an intermediate to introduce&lt;br /&gt;
strangers to each other. All it needs to do is to check that usernames&lt;br /&gt;
are unique and publish signed messages.&lt;/p&gt;

&lt;p&gt;If you are a blogger with your own blog at the site but you want to&lt;br /&gt;
blog under a different pseudonym on someone else&amp;rsquo;s blog, just create a&lt;br /&gt;
second, or third/fourth ecca-identity. Let your browser do the hard part of&lt;br /&gt;
making it easy for you to switch identities.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>announcing eccentric authentication</title>
      <link>/blog/2012/10/22/announcing-eccentric-authentication</link>
      <pubDate>Mon, 22 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>/blog/2012/10/22/announcing-eccentric-authentication</guid>
      <description>&lt;p&gt;&lt;em&gt;Eccentric Authentication&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Eccentric Authentication (Ecca) is a protocol to replace password&lt;br /&gt;
authentication with client certificates. By doing so we can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;make it easier to login and log out of web sites;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;make it anonymous; you can sign up to site without providing any&lt;br /&gt;
details that would tie the account to your person;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;make communication more secure; you can exchange encrypted&lt;br /&gt;
messages securely without revealing your identity to anyone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It&amp;rsquo;s &lt;em&gt;ideal&lt;/em&gt; for a dating site. Once you&amp;rsquo;ve exchanged a message,&lt;br /&gt;
you can use the cryptographic keys in&lt;br /&gt;
the message to set up an encrypted VOIP-telephone call, or an&lt;br /&gt;
encrypted video-chat. Until the moment you see and hear each other,&lt;br /&gt;
you don&amp;rsquo;t know who it will be. But you can be sure that it is the&lt;br /&gt;
person from the message and no one else. The cryptography behind Ecca&lt;br /&gt;
guarantees that.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How it works.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We install a Certificate Signer at our web site. We don&amp;rsquo;t use the&lt;br /&gt;
certificates from the global Certificate Authorities. Our website&lt;br /&gt;
accepts only the certificates that its own Certificate Signer signed.&lt;br /&gt;
And we don&amp;rsquo;t expect other sites to accept our certificates.&lt;/p&gt;

&lt;p&gt;When you sign up at our web site, you specify the username you want&lt;br /&gt;
to have. If the chosen username is still available, our Certificate&lt;br /&gt;
Signer signs a certificate with your username and hands it to you.&lt;/p&gt;

&lt;p&gt;You now have a certificate that allows you to log in at our site with&lt;br /&gt;
your chosen username. No one else can use this username at our&lt;br /&gt;
site. Just like email addresses are unique.&lt;/p&gt;

&lt;p&gt;Your web browser takes care of all the cryptography details such as&lt;br /&gt;
creating a private key and most important, keeping it secret.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why? Privacy!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Ecca protocol allows users to benefit from the power of&lt;br /&gt;
certificates without losing privacy, as is the case with certificates&lt;br /&gt;
from Global certificate Authorities.&lt;/p&gt;

&lt;p&gt;When you request certificate from a Global Certificate Authority, they&lt;br /&gt;
verify your real identity by validating your passport. Once the Global&lt;br /&gt;
CA has sufficient proof that you are who you claim to be they sign a&lt;br /&gt;
certificate that bears your real name. It allows you to identify you&lt;br /&gt;
to banks, shops and other places that you show your certificate.&lt;/p&gt;

&lt;p&gt;It means, that &lt;em&gt;every time&lt;/em&gt; you use this global certificate, it tags&lt;br /&gt;
your digital actions with your real life identity. No denial&lt;br /&gt;
possible. Every email you sign with this certificate will tie it to&lt;br /&gt;
your person. For many people this is too high a price to pay. For&lt;br /&gt;
example, you might not get that dream job if your future boss finds&lt;br /&gt;
out that in your blog you support a different political party than him. And&lt;br /&gt;
there in no denial that it&amp;rsquo;s you who wrote it. As you have only one&lt;br /&gt;
global certificate, you would have to use it to log in to the blog&lt;br /&gt;
site and sign your job application.&lt;/p&gt;

&lt;p&gt;Ecca-certificates work the same as a global Certificate but it doesn&amp;rsquo;t&lt;br /&gt;
carry your full identity. On the contrary, it only contains your&lt;br /&gt;
chosen username. It is no more than a digital pseudonym. The&lt;br /&gt;
ecca-protocol does not even need an email address. So you have more&lt;br /&gt;
privacy with an ecca-certificate than with a username, password and&lt;br /&gt;
email address that most sites ask for.&lt;/p&gt;

&lt;p&gt;And why stop with a single pseudonym, if you were to blog on several&lt;br /&gt;
subjects, create a certificate (with different usernames) for each&lt;br /&gt;
topic. You can have as many certificates for our site as you wish, they are free.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Private messages&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But with Ecca-certificates, we can do more. Our site allows you to&lt;br /&gt;
look up other peoples&amp;rsquo; certificates by just specifying their&lt;br /&gt;
username. The certificate you retrieve contains the users&amp;rsquo; public&lt;br /&gt;
key.&lt;/p&gt;

&lt;p&gt;With that public key you can encrypt a message so that only the&lt;br /&gt;
owner of that account can read it. When you sign your messages with&lt;br /&gt;
your private key, the recipient can validate that the message is from&lt;br /&gt;
another user at our site.&lt;/p&gt;

&lt;p&gt;Inside the message is also your&lt;br /&gt;
certificate. Now your recipient has all the data he needs to send you&lt;br /&gt;
an encrypted reply that only you can read. Not even, us the site&lt;br /&gt;
operators can read these private messages.&lt;/p&gt;

&lt;p&gt;This allows us to design &lt;a href=&#34;/blog/2012/10/22/the-worlds-most-private-dating-site&#34;&gt;the worlds most private dating site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Or we can design &lt;a href=&#34;/blog/2012/10/23/a-blog-site&#34;&gt;a blog site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Read More&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve a made single page flyer with most of the characteristics of Eccentric Auhtentication. Feel free to download it: &lt;a href=&#34;/Eccentric-Authentication-flyer.pdf&#34;&gt;Eccentric-Authentication-flyer.pdf&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>the worlds most private dating site</title>
      <link>/blog/2012/10/22/the-worlds-most-private-dating-site</link>
      <pubDate>Mon, 22 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>/blog/2012/10/22/the-worlds-most-private-dating-site</guid>
      <description>&lt;p&gt;&lt;em&gt;The worlds most private dating site&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With Eccentric Authentication we can design the worlds most private&lt;br /&gt;
dating site. Ecca gives us benefits that other authentication&lt;br /&gt;
mechanisms cannot provide. Namely: &lt;strong&gt;Completely anonymous and fully&lt;br /&gt;
secure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Similarities&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Like any other dating site, ours allows you to create a profile and&lt;br /&gt;
search for other peoples&amp;rsquo; profiles. When you&amp;rsquo;ve found a&lt;br /&gt;
Profile-of-Interest, you can write messages to the person behind the&lt;br /&gt;
profile.&lt;/p&gt;

&lt;p&gt;The similarities end here. See what we do diffently.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sign up&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We require our users to sign up with an Ecca account. As with every&lt;br /&gt;
ecca-account you choose your nickname. It&amp;rsquo;s how you wish to be known on the&lt;br /&gt;
site. Names can be anything, say &amp;ldquo;Beer Belly&amp;rdquo; or &amp;ldquo;Biker Babe&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;When you&amp;rsquo;ve chosen your username, your browser creates the account for&lt;br /&gt;
you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it creates a private and public key;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;it offers the username and public key to the site for signing;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;it receives the certificate;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;it keeps the private key secure.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The certificate allows you to log in and create your profile.&lt;/p&gt;

&lt;p&gt;After you&amp;rsquo;ve paid the membership fee, our site lists your profile.&lt;br /&gt;
Now you can browse profiles and other members can view yours.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Private messaging&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Say you have registerd under the name Beer Belly. You find the profile&lt;br /&gt;
of Biker Babe interesting to start a private conversation with&lt;br /&gt;
her. Would you use a conventional dating site, you only have their promise&lt;br /&gt;
that they won&amp;rsquo;t read your message. Or at least that they have the &amp;lsquo;decency&amp;rsquo; not to&lt;br /&gt;
tell you that they do read your messages.&lt;/p&gt;

&lt;p&gt;With Ecca, you don&amp;rsquo;t have that worry. No one except Biker Babe can&lt;br /&gt;
read your message. Here&amp;rsquo;s how that works.&lt;/p&gt;

&lt;p&gt;You press the &amp;lsquo;private-message&amp;rsquo; button on your browser. It fetches the&lt;br /&gt;
certificate of Biker Babe. In the certificate is her public key.&lt;/p&gt;

&lt;p&gt;You type your message, your browser encrypts it with Biker Babes&amp;rsquo;&lt;br /&gt;
public key. That makes the message only readable to her. Now you sign&lt;br /&gt;
it with your private key. Then you hand it over to our dating site for&lt;br /&gt;
delivery.&lt;/p&gt;

&lt;p&gt;When Biker Babe logs in, your message will be delivered. She fetches&lt;br /&gt;
your certificate from the site. That allows her to: 1. verify that you&lt;br /&gt;
are a member of the site; 2. send messages back to you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Going further&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When the two of you like your conversation so much you can take it up a&lt;br /&gt;
notch and do a voice chat.&lt;/p&gt;

&lt;p&gt;Each of you feeds the certificate of the other into your (privacy&lt;br /&gt;
preserving) voice chat application and the systems will set up a&lt;br /&gt;
encrypted voice channel, ready to talk &lt;strike&gt;dirty&lt;/strike&gt;.&lt;/p&gt;

&lt;p&gt;This chat application is not connected to the dating site. It doesn&amp;rsquo;t&lt;br /&gt;
need to be. All that it needs is the the certificate of the other&lt;br /&gt;
party and your private key. Technically, it also needs a common ground&lt;br /&gt;
where the two programs can find each other before they validate the&lt;br /&gt;
certificates and set up the audio channel but that&amp;rsquo;s out of the scope&lt;br /&gt;
of this blog post.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Abuse handling&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Suppose one of the BB&amp;rsquo;s is too liberal with the private channels and&lt;br /&gt;
behaves too inappropriate to the other BB&amp;rsquo;s opinion. Let&amp;rsquo;s say that&lt;br /&gt;
BB1 finds the message of BB2 inappropriate.&lt;/p&gt;

&lt;p&gt;BB1 has now several options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Block all messages signed by BB2;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Report the messages to the dating site staff; If they agree that&lt;br /&gt;
BB2 went out of line, they close the account. BB1 cannot falsely&lt;br /&gt;
accuse BB2. The messages are signed with BB2&amp;rsquo;s private key, so&lt;br /&gt;
there&amp;rsquo;s the proof.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In both cases BB2 now needs create a new account and pay the&lt;br /&gt;
membership fee again to be able to contact BB1 ever again.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Closing an account&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Our dating site doesn&amp;rsquo;t have to do much to close the account. It just&lt;br /&gt;
blacklists your public key from login in and refuse to accept your&lt;br /&gt;
messages to other members.&lt;/p&gt;

&lt;p&gt;There is no need for a CRL or other crypto revocation&lt;br /&gt;
protocols. We keep it simple but effective. Eventually the certificate&lt;br /&gt;
expires and we can clean up our blacklist.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wipe your trail&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When your subscription to our dating site expires, it&lt;br /&gt;
would be in your best interest to delete your private key.&lt;/p&gt;

&lt;p&gt;Would you ever use that private key to sign a message and you somehow&lt;br /&gt;
you would need to public with your real world identity, it allows your&lt;br /&gt;
dating partner to match these messages and publish your love letters,&lt;br /&gt;
fully attributed to you. Although embarassing at best, it could be&lt;br /&gt;
worse if you where the one so rude that the site closed your account.&lt;/p&gt;

&lt;p&gt;The Ecca protocol almost makes that problem a non-issue because it&lt;br /&gt;
generates a new private key for every account you create and your&lt;br /&gt;
browser handles all the crypto-bits.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Trust considerations&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When you decided to sign up for our dating service and pay the fee,&lt;br /&gt;
you made a trust decision. Your decision is most likely based upon&lt;br /&gt;
recommendations from people that you trust.&lt;/p&gt;

&lt;p&gt;You wouldn&amp;rsquo;t make that decision because some global CA has signed a&lt;br /&gt;
server certificate that made the address bar green.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s the other way around. By trusting our site enough to sign up, you trust&lt;br /&gt;
us to have our cryptography in order so you can communicate&lt;br /&gt;
privately with the other members of the site.&lt;/p&gt;

&lt;p&gt;If we don&amp;rsquo;t have our crypto in order, or we turn out to be&lt;br /&gt;
crooks, you&amp;rsquo;ve only lost some money. You never gave us your real&lt;br /&gt;
world identity. (And you did pay in bitcoin, didn&amp;rsquo;t you?)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Deployment&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The bad news: To deploy this we need to improve our web browsers. The&lt;br /&gt;
good news, we can start with just three &amp;ndash; not too complicated &amp;ndash;&lt;br /&gt;
browser plug ins to get things going. That&amp;rsquo;s for another blog.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
