<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Eccentric Authentication</title>
    <link>/post/</link>
    <description>Recent content in Posts 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="/post/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>End to End Encryption is useless</title>
      <link>/blog/2016/07/17/end-to-end-encryption-is-useless</link>
      <pubDate>Sun, 17 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>/blog/2016/07/17/end-to-end-encryption-is-useless</guid>
      <description>&lt;p&gt;There is a lot of news about end-to-end encryption. Every chat app and&lt;br /&gt;
their neighbours are implementing it, even the big names: the Russians&lt;br /&gt;
with Telegram, the Americans with Allo, Facetime, Skype, Whatsapp and&lt;br /&gt;
what not. So that&amp;rsquo;s good, isn&amp;rsquo;t it?&lt;/p&gt;

&lt;p&gt;Yes, end to end encryption is good! It makes sure that your message,&lt;br /&gt;
your love letter, voip or telephone call can only be read by the one you&lt;br /&gt;
intend it for and no one else.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;End to end encryption is easy&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;End to end encryption is easy. All the tools have been&lt;br /&gt;
written in the last 30 years. As programmer, just use the latest&lt;br /&gt;
version, follow some do&amp;rsquo;s and don&amp;rsquo;ts and you&amp;rsquo;re done. Your users can&lt;br /&gt;
generate and exchange keys and enjoy privacy of end to end encryption.&lt;/p&gt;

&lt;p&gt;Google, Facebook, Apple, VKontakte, they provide the ways for people&lt;br /&gt;
to find each other. Just sign up at their platform, create an acccount&lt;br /&gt;
and you&amp;rsquo;re done. With some platforms, signing up is implicit as your&lt;br /&gt;
phone number is your identity. Easy and secure, right?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Who holds the address book?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No. Regrettably it might not be so secure. You see, what happens is&lt;br /&gt;
this: If I were to send a private message to a friend, I need his&lt;br /&gt;
public key to encrypt it. Now, public keys are those big unwieldy&lt;br /&gt;
numbers around 200-300 digits long. No way he&amp;rsquo;s going to read it over the&lt;br /&gt;
telephone to me, let alone that I can type it in without errors. I&lt;br /&gt;
need to get that key some other way.&lt;/p&gt;

&lt;p&gt;No problem, my device asks the service for the public key of my&lt;br /&gt;
friend. I encrypt the message using that key and hand the encrypted&lt;br /&gt;
message to the service for delivery.&lt;/p&gt;

&lt;p&gt;Wait &amp;hellip; a &amp;hellip; minute.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s state that again: I use the key I get from THEM to encrypt a&lt;br /&gt;
message and hand it to THEM for delivery to my friend - without any&lt;br /&gt;
verification. That&amp;rsquo;s a classic Man-in-the-Middle attack scenario.&lt;/p&gt;

&lt;p&gt;Here is how that attack goes: I request the platform to provide me the&lt;br /&gt;
key of my friend but instead of handing me that one, they could send&lt;br /&gt;
me a different key - one of their own. I&amp;rsquo;d encrypt the message and&lt;br /&gt;
hand it to them. Now they decrypt the message, store it, hand it to&lt;br /&gt;
NSA or whatever. Then they re-encrypt it with my friend&amp;rsquo;s real public&lt;br /&gt;
key and send it on for delivery. I&amp;rsquo;d be none the wiser, nor is my&lt;br /&gt;
friend.&lt;/p&gt;

&lt;p&gt;The problem is threefold:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I use the address book of the platform to fetch my friend&amp;rsquo;s key;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;I use them to deliver the message to my friend;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;I use their software to write and encrypt the message.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means, I have to trust the platform to do all three correctly to&lt;br /&gt;
be sure that only my friend is able to read my message, not them. If&lt;br /&gt;
they mess with either the address book or their software I&amp;rsquo;m using,&lt;br /&gt;
they can read or even modify my messages to my friend.&lt;/p&gt;

&lt;p&gt;Aside: This is already a step ahead from the unencrypted past. In the&lt;br /&gt;
past &lt;em&gt;almost everyone&lt;/em&gt; could read my message to my friend. My ISP,&lt;br /&gt;
every network operator along the path up to my friend&amp;rsquo;s ISP could read&lt;br /&gt;
along, and the spies who wiretap the cables. Now only the message&lt;br /&gt;
platform can read along - if they would decide to do so. So I would&lt;br /&gt;
have to trust a lot less people. But I still have to trust the platform.&lt;/p&gt;

&lt;p&gt;Is that trust warranted?&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s a question that each of us has to answer. For the stuff I write&lt;br /&gt;
to my colleagues - if the boss is OK with that - it&amp;rsquo;s ok for me&lt;br /&gt;
too. It&amp;rsquo;s his decision, I can only advise. On he other hand, pillow&lt;br /&gt;
talk to my wife, I don&amp;rsquo;t want that to leave the bedroom ever, so I&lt;br /&gt;
wouldn&amp;rsquo;t trust these platforms for that, so on business trips I&amp;rsquo;ll&lt;br /&gt;
have to refrain from pillow talk.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Solutions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key to solve this trust issue is to separate the three&lt;br /&gt;
components: address book, delivery platform and client software.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We need End to End Authentication&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What we need is End to End Authentication, a way for end points, like&lt;br /&gt;
you and me, to verify that there is no tampering with the public keys&lt;br /&gt;
of our communication partners.&lt;/p&gt;

&lt;p&gt;With that verification in place, it eliminates the risk of a Man in&lt;br /&gt;
the Middle-attack by the platform operators. With the push from&lt;br /&gt;
governments to backdoor communications, this could be a welcome&lt;br /&gt;
improvement.&lt;/p&gt;

&lt;p&gt;How to achieve end to end authentication? There are many ways. This&lt;br /&gt;
website is devoted to one proposal: eccentric authentication. It&amp;rsquo;s a&lt;br /&gt;
protocol designed to make people interact publicly while remaining&lt;br /&gt;
anonymous. The key exchange happens transparant as part of the&lt;br /&gt;
interaction, no explicit actions are needed to validate keys.&lt;/p&gt;

&lt;p&gt;But there are many more ways to exchange keys in a way that instills&lt;br /&gt;
confidence that there is no hidden tampering. Expect more in future&lt;br /&gt;
blogs. Or read those alreade there&amp;hellip;&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>talk for icann</title>
      <link>/blog/2014/06/25/talk-for-icann</link>
      <pubDate>Wed, 25 Jun 2014 00:00:00 +0000</pubDate>
      
      <guid>/blog/2014/06/25/talk-for-icann</guid>
      <description>&lt;p&gt;Today I&amp;rsquo;ll be presenting a short talk at the ICANN DNSSEC Workshop in London.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s about how to get your computer to protect you against phishers.&lt;/p&gt;

&lt;p&gt;The presentation shows how DNSSEC and DANE form the basis on which&lt;br /&gt;
this can be built. All it takes is a user agent that does the work for&lt;br /&gt;
you. The presentation describes how to reach that goal.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;/Icann-talk-phishing-protection-4.pdf&#34;&gt;presentation&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>making crypto invisible</title>
      <link>/blog/2014/05/01/making-crypto-invisible</link>
      <pubDate>Thu, 01 May 2014 00:00:00 +0000</pubDate>
      
      <guid>/blog/2014/05/01/making-crypto-invisible</guid>
      <description>

&lt;blockquote&gt;
&lt;p&gt;Q. What good is a tool that requires complicated rituals such as key signing parties, or fingerprint verification?&amp;gt; A. Instant loss of security, privacy and usability.&lt;/p&gt;

&lt;p&gt;Q. What good is a tool that uses encryption in a network of plain-text connections?&lt;br /&gt;
A. Instant suspicion.&lt;/p&gt;

&lt;p&gt;Q. What good is a tool for circumventing censorship in a country that forbids it?&lt;br /&gt;
A. Instant confession.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;our-proposal&#34;&gt;Our proposal&lt;/h2&gt;

&lt;p&gt;Eccentric Authentication is a protocol that weaves cryptography into&lt;br /&gt;
the normal workflow of the net. It hides all cryptography from view,&lt;br /&gt;
yet performs its duties at every moment.&lt;/p&gt;

&lt;p&gt;People would interact with web sites just like they do now except that&lt;br /&gt;
they get:&lt;br /&gt;
- easier account creation, log-in and log-out handling; no more passwords;&lt;br /&gt;
- full pseudonymity, users have a different identity at each site;&lt;br /&gt;
- private messages that only the intended recipient can read;&lt;/p&gt;

&lt;p&gt;Users (ie, the people) won&amp;rsquo;t notice any cryptography at all. They find&lt;br /&gt;
that the protocol offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;fully automatic identity management;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;their computer remembers their accounts for them;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;no more impossible to answer security or trust questions;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;their computer detects and blocks phishing attempts for them, keeping them safe;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;users stay in control of their privacy;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Site operators will have to set up their servers in a slightly&lt;br /&gt;
different way than they do currently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;replace passwords for client certificates;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;run https-only;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;run their own fully automated certificate signer; this does all the&lt;br /&gt;
hard work for the site-operator; (fully automated, so easy to&lt;br /&gt;
outsource to a hosting provider without losing its security and&lt;br /&gt;
privacy properties)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;passing-the-greenwald-test&#34;&gt;Passing the Greenwald-test&lt;/h2&gt;

&lt;p&gt;Site operators can go further. When setting up a newspaper, a blog or&lt;br /&gt;
a comment section, they can let people post signed messages, (fully&lt;br /&gt;
automated by the user agent).&lt;/p&gt;

&lt;p&gt;This offers journalists the option to sign their articles with their&lt;br /&gt;
private key, which is no more dufficult than pressing the button at&lt;br /&gt;
the user agent.&lt;/p&gt;

&lt;p&gt;Over time there will be a large corpus of articles, all signed using&lt;br /&gt;
that key. When someone reads an article, their user agent verifies the&lt;br /&gt;
necessary cryptographic properties. If it validates, the reader can&lt;br /&gt;
use the key to encrypt messages to the journalist. If there is a&lt;br /&gt;
validation error, the agent refuses to let people to get into&lt;br /&gt;
situations where a crypto-problem could lead to inadvertent disclosure&lt;br /&gt;
of identity or confidentiality.&lt;/p&gt;

&lt;p&gt;In other words: The readers of that newspaper have to determine&lt;br /&gt;
whether or not they trust that journalist with their message, the&lt;br /&gt;
protocol keeps it confidential. Without either party having to think&lt;br /&gt;
about cryptography.&lt;/p&gt;

&lt;p&gt;This same mechanisms works between bloggers and commenters. When a&lt;br /&gt;
blogger posts a signed message and your user agent has validated its&lt;br /&gt;
signature to be correct, you can use it to write a private message to&lt;br /&gt;
that blogger, however he/she is in real life.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When you want to write a private message, the system makes it&lt;br /&gt;
 possible.&lt;/em&gt; Again, without any need to know cryptography.&lt;/p&gt;

&lt;h2 id=&#34;village-square&#34;&gt;Village square&lt;/h2&gt;

&lt;p&gt;What we have done so far create a way for strangers to exchange public&lt;br /&gt;
keys between them. The only thing they need is a way to find each&lt;br /&gt;
other. That&amp;rsquo;s the role of the web site. It&amp;rsquo;s like the village square&lt;br /&gt;
where people meet and engage in public discussion or private&lt;br /&gt;
chat. However, it will leave a trail of pseudonyms who meets whom at&lt;br /&gt;
the square.&lt;/p&gt;

&lt;p&gt;To protect the people from too much traffic analysis, the protocol&lt;br /&gt;
offers people to do the equivalent of exchanging telephone numbers at&lt;br /&gt;
the square, only more secure.&lt;/p&gt;

&lt;p&gt;Once two people have met on a site and their agents have validated&lt;br /&gt;
their keys, they can set up a private communication channel between&lt;br /&gt;
them. This channel is independent of the site where they met, it goes&lt;br /&gt;
directly between their computers. The site cannot learn of anything&lt;br /&gt;
that these two people do once they&amp;rsquo;ve set up their independent&lt;br /&gt;
channel. The only metadata leak we have is network traffic analysis&lt;br /&gt;
but for that we have Tor which is also easy to automate at this point.&lt;/p&gt;

&lt;p&gt;What this channel entails is upto them. It could be a VOIP-telephone&lt;br /&gt;
like connection, a shared document editing platform, or one has&lt;br /&gt;
invited the other to an existing community. All secure and&lt;br /&gt;
private. There are many good crypto-projects to let people communicate&lt;br /&gt;
either in private or in a a community. This project lets people find&lt;br /&gt;
others to join them. The other projects makes sure it happens. For&lt;br /&gt;
example: LEAP to mail to people, Ostel to talk, Jitsi to chat,&lt;br /&gt;
Secushare to collaborate with others.&lt;/p&gt;

&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;We make it possible for normal people to be safe and secure on the&lt;br /&gt;
internet. Each person runs a user agent that handles all the key&lt;br /&gt;
management tasks for them.&lt;/p&gt;

&lt;p&gt;It makes privacy the default on the net. Every whistleblower can reach&lt;br /&gt;
every journalist of their choice, the system keeps their communication&lt;br /&gt;
confidential.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s backwards compatible with the current web. People without the&lt;br /&gt;
user agent can still read all the public posted messages of&lt;br /&gt;
everyone. It doesn&amp;rsquo;t exclude anyone from reading. And people who don&amp;rsquo;t&lt;br /&gt;
have the user agent installed might still be able to participate in&lt;br /&gt;
public discussions, albeit anonymously. They cannot create private&lt;br /&gt;
channels, nor enjoy confidentiality.&lt;/p&gt;

&lt;p&gt;It can slowly grow in momentum until there is a critical mass where&lt;br /&gt;
it becomes a must have.&lt;/p&gt;

&lt;p&gt;It uses ubiquitous encryption, every connection is encrypted so&lt;br /&gt;
Tor-traffic doesn&amp;rsquo;t stand out amongst the &amp;lsquo;normal&amp;rsquo; traffic. On the&lt;br /&gt;
contrary, it is advisable to use Tor or GnuNET every time. However,&lt;br /&gt;
that&amp;rsquo;s a decision that everyone has to make for themselves.&lt;/p&gt;

&lt;p&gt;The project aims to let people discover others and join their&lt;br /&gt;
communities. The cryptography keeps them safe against warrantless&lt;br /&gt;
spying or snooping. The weaving of crypto into the net makes this&lt;br /&gt;
available to the common people, without requiring them to learn how to&lt;br /&gt;
use it. (That&amp;rsquo;s the programmer&amp;rsquo;s job).&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>end user trust model</title>
      <link>/blog/2013/11/24/end-user-trust-model</link>
      <pubDate>Sun, 24 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/11/24/end-user-trust-model</guid>
      <description>&lt;p&gt;There is a huge gap between the way the current deployed crypto-tools&lt;br /&gt;
work and the requirements of the normal end user.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;End User Trust Model&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The common user has these requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don&amp;rsquo;t think, just click.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Someone else must protect me.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;For free.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On 1: Users don&amp;rsquo;t want to be bothered with anything that stands in the&lt;br /&gt;
  way of what they want to do. It won&amp;rsquo;t work.&lt;/p&gt;

&lt;p&gt;On 2: Users assume that their computer keeps them safe from all&lt;br /&gt;
  harm. Or their virus scanner. Or their ISP, or faceboogle, or their&lt;br /&gt;
  government. But at the same time, these appointed chaperones must&lt;br /&gt;
  respect the privacy of their entrusted appointees.&lt;/p&gt;

&lt;p&gt;On 3: Of course, users don&amp;rsquo;t want to pay for anything.&lt;/p&gt;

&lt;p&gt;One might call it unfair of these users, however, I don&amp;rsquo;t blame&lt;br /&gt;
them. It&amp;rsquo;s what has been promised time after time, albeit never&lt;br /&gt;
delivered. It&amp;rsquo;s time we are going to deliver that: /No-Brain Security and Privacy./&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;End User Trust Decisions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Trust is binary. When people visit a website, either &lt;em&gt;they&lt;/em&gt; trust&lt;br /&gt;
it sufficiently to post their identifying details, or they don&amp;rsquo;t and&lt;br /&gt;
refrain from using that site. Most likely, they click away to search for some site&lt;br /&gt;
they do find sufficiently trustworthy.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Trust decisions can change at any time. It can be friends, family,&lt;br /&gt;
or the local system administrator who is able to change a user&amp;rsquo;s trust&lt;br /&gt;
decision. Or it can be an error on the screen to spark distrust. Or&lt;br /&gt;
it&amp;rsquo;a s learned behaviour: &amp;ldquo;There is this green bar, so it is OK.&amp;rdquo; There is no&lt;br /&gt;
rational thought process behind it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;When trust is given, security and privacy are expected. A user at a&lt;br /&gt;
forum who sends a private message to another forum user expects that&lt;br /&gt;
only that person can read it. The user might feel violated when that&lt;br /&gt;
message gets leaked out by the forum administrators, or get spied upon&lt;br /&gt;
by unexpected advertisers.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;People have learned to distrust anyone on the net. A business that&lt;br /&gt;
promised not to sell the customers&amp;rsquo; email addresses to spammers, might&lt;br /&gt;
sell it the moment the customer cancels the service. &amp;ldquo;They are not a&lt;br /&gt;
customer anymore.&amp;rdquo; As most people don&amp;rsquo;t have easy access to throw-away&lt;br /&gt;
email addresses, they are reluctant to sign up.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Current cryptography tools violate the End User Trust Model and the Trust Decisions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GPG requires people to refrain from sending a message until they are&lt;br /&gt;
sure of a trusted path through the web of trust. In reality, what&lt;br /&gt;
happens is that people don&amp;rsquo;t use GPG.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;S/MIME requires people to prove their &lt;em&gt;Identity&lt;/em&gt; to a supposedly&lt;br /&gt;
trusted third party before being able to communicate. It severely&lt;br /&gt;
violates privacy and you have to pay for it through the nose every&lt;br /&gt;
year. No wonder no one uses it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Global Trutsted CA-authenticated TLS fails the no-brain&lt;br /&gt;
solution too. Even the green bar is not a guarantee that the site is the&lt;br /&gt;
correct one. If there comes a warning, there is nothing that users&lt;br /&gt;
can do to resolve the situation. In fact, clicking away the error&lt;br /&gt;
makes it &amp;lsquo;work&amp;rsquo; but&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Duck-validation: &amp;ldquo;If it looks like an email from the bank, it must&lt;br /&gt;
be an email from the bank. I better log in to prevent that big&lt;br /&gt;
deduction from going to happen.&amp;rdquo; Now banks are teaching people to&lt;br /&gt;
trust an untrustable CA-infrastructure to protect their accounts. An&lt;br /&gt;
infrastructure that cannot prevent harm. And with the secret&lt;br /&gt;
services, all bets are off.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Solution&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is time we are going to deliver such an End User Trust Model where&lt;br /&gt;
each of the End User Trust Decisions get addressed.&lt;/p&gt;

&lt;p&gt;The system we are describing is Eccentric Authentication.&lt;/p&gt;

&lt;p&gt;It uses pseudonymous client certificates. One for each account a at&lt;br /&gt;
each site. The certificate does not contain any identifying&lt;br /&gt;
information. Hence users are only known by their (chosen)&lt;br /&gt;
nickname. There is a user agent at the user&amp;rsquo;s computer that does all&lt;br /&gt;
the cryptographic work.&lt;/p&gt;

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

&lt;p&gt;The typical scenario for signup is like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User learns about a site, perhaps via a search engine;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User browses site, reads a bit on it; decides to sign up;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User directs the agent to request a client certificate with a user&lt;br /&gt;
chosen nickname (a different nickname for each site); it sounds&lt;br /&gt;
complicated but is just a single click;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Site signs the certificate. The certificate bears the chosen nickname and the sitename.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The trust decision happens in step 2. It&amp;rsquo;s a typical users&amp;rsquo; decision:&lt;br /&gt;
&amp;ldquo;I like it, and want to sign up.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;The Eccentric Authentication protocol keeps the user secure and&lt;br /&gt;
anonymous. Nowhere is the user asked to provide any identifying&lt;br /&gt;
information. No names, no email address at all. This gives the user&lt;br /&gt;
the trust that they can sign up without giving it a thought.&lt;/p&gt;

&lt;p&gt;In fact, a site asking for any personal identifying information is&lt;br /&gt;
ranking lower on trustworthyness than a site that does not ask these&lt;br /&gt;
details. Extra benefit, it&amp;rsquo;s easier to sign up anonymously than having&lt;br /&gt;
to provide details.&lt;/p&gt;

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

&lt;p&gt;Another aspect of Eccentric Authentication is that public messages,&lt;br /&gt;
such as postings in a forum are signed by their writers&amp;rsquo; private&lt;br /&gt;
key. The signature is posted alongside the message.&lt;/p&gt;

&lt;p&gt;This serves two functions. First, the poster can verify that their message&lt;br /&gt;
get posted under their own pseudonym. It shows to the poster that the&lt;br /&gt;
site is not performing a MitM attack against them.&lt;/p&gt;

&lt;p&gt;The second purpose of the signature is to tie the posters public key&lt;br /&gt;
(and certificate) to the message. This allows for truely private&lt;br /&gt;
messaging to total strangers.&lt;/p&gt;

&lt;p&gt;When a user (with a client certificate) wants to send a private&lt;br /&gt;
message to some other user at the site, this will be the typical scenario:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User browses the site;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User comes across a message from someone; igniting the urge to send a private message;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User presses the &amp;lsquo;Compose Private Message&amp;rsquo;-button that the site provides;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Site specifies the account name and the other users&amp;rsquo; certificate;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User agent verifies the certificate; Validating the embedded public key;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;User writes the message and presses &amp;lsquo;send&amp;rsquo;;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Users&amp;rsquo; user agent encrypts the message with the other users&amp;rsquo; public key and hands it off to the site for delivery; The site only receives the encryted data;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Other user gets the message and decrypt it with their private key;&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As the message is encrypted with the other users&amp;rsquo; public key, only the&lt;br /&gt;
intended recipient can decrypt and read the message. Not even the site&lt;br /&gt;
operator cannot read the contents of the message. All they know is&lt;br /&gt;
that one user sends a message to another. If those users did not&lt;br /&gt;
provide their real name at signup, the users stay anonymous.&lt;/p&gt;

&lt;p&gt;Here there is no trust needed. The user agent verifies that there is&lt;br /&gt;
only one certifcate in the world that bears the nickname of the&lt;br /&gt;
intended recipient. That&amp;rsquo;s easy to do with a PGP-like keystore. When&lt;br /&gt;
there is no double detected, it must be that of the poster.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>talk for brucon</title>
      <link>/blog/2013/09/28/talk-for-brucon</link>
      <pubDate>Sat, 28 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/09/28/talk-for-brucon</guid>
      <description>&lt;p&gt;Last week the 5th BruCON was held in Ghent, Belgium. It&amp;rsquo;s a small (and&lt;br /&gt;
friendly) security conference. Their motto is: &amp;ldquo;Hacking for&lt;br /&gt;
b33r&amp;rdquo;. Topics ranged from a workshop on breaking old crypto algorithms to&lt;br /&gt;
pinpointing GSM locations and how to make the compliance process less&lt;br /&gt;
headache inducing. Too bad there was no beer brewing workshop&lt;br /&gt;
this year due to pregnancy of the brewer.&lt;/p&gt;

&lt;p&gt;I was one of the recipients of a grant to work on an open source&lt;br /&gt;
security project in their 5by5 program. It helped to keep me going&lt;br /&gt;
with this Eccentric Authentication stuff. And they invited me to the&lt;br /&gt;
conference to present the things I did.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve made a small presentation on what I think is the tip of the&lt;br /&gt;
iceberg of what you can do with client certificates. Here is the&lt;br /&gt;
&lt;a href=&#34;/Brucon-Eccentric.pdf&#34;&gt;presentation&lt;/a&gt;&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>walkthrough datingsite</title>
      <link>/blog/2013/06/12/walkthrough-datingsite</link>
      <pubDate>Wed, 12 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>/blog/2013/06/12/walkthrough-datingsite</guid>
      <description>

&lt;p&gt;This blog gives a simple walk through &amp;ldquo;The world&amp;rsquo;s mode secure dating site&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s full of technobabble talk of how the security system&lt;br /&gt;
operates. Feel free to ignore that at first reading.&lt;/p&gt;

&lt;p&gt;We assume that you&amp;rsquo;ve installed the &lt;a href=&#34;/blog/2013/06/07/run-it-yourself&#34;&gt;ecca-proxy&lt;/a&gt; as described.&lt;br /&gt;
If not, you&amp;rsquo;ll see some &lt;em&gt;Don&amp;rsquo;t panic&lt;/em&gt; messages. We describe those later.&lt;/p&gt;

&lt;h2 id=&#34;home-page&#34;&gt;Home page&lt;/h2&gt;

&lt;p&gt;This is the url for the dating site.&lt;/p&gt;

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

&lt;p&gt;If you enter this into your browser you&amp;rsquo;ll see this page.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-home.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;It&amp;rsquo;s a bit boring, just some plain text, no images. However, the proxy&lt;br /&gt;
has done a lot of work already.&lt;/p&gt;

&lt;p&gt;It uses DNSSEC to resolve the hostname (dating.wtmnd.nl) into the&lt;br /&gt;
IP-address 94.142.241.226.&lt;/p&gt;

&lt;p&gt;It also uses a DANE, an extension protocol to lookup the&lt;br /&gt;
TLS-certificate of the server. Every connection from the ecca-proxy to&lt;br /&gt;
the site uses https under the hood. We have to deserve the claim&lt;br /&gt;
&lt;em&gt;&amp;lsquo;most secure&amp;rsquo;&lt;/em&gt; somehow.&lt;/p&gt;

&lt;p&gt;Now click on the button &amp;lsquo;The aliens&amp;rdquo;.&lt;/p&gt;

&lt;h2 id=&#34;the-aliens&#34;&gt;The aliens&lt;/h2&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-aliens.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;Here is the list of aliens. This page is visible without logging in&lt;br /&gt;
yet. Click one of the aliens and you see the detail page. It doen&amp;rsquo;t&lt;br /&gt;
have much details, as we want to showcase the technology behind&lt;br /&gt;
eccntric authentication. The most important thing is the &amp;ldquo;Compose a&lt;br /&gt;
Poem&amp;rdquo; button.&lt;/p&gt;

&lt;p&gt;If you have an account you can send encrypted messages to other&lt;br /&gt;
participants. And you can receive messages too. To create an account,&lt;br /&gt;
press the &amp;lsquo;Your profile&amp;rsquo; button at the top.&lt;/p&gt;

&lt;h2 id=&#34;signing-up&#34;&gt;signing up&lt;/h2&gt;

&lt;p&gt;Here it turns ugly. Although only the page layout. What we get is a&lt;br /&gt;
page generated by the Ecca-proxy user agent. It is your computer that&lt;br /&gt;
asks you what to do. The dating site just waits until we return with a&lt;br /&gt;
valid account. It tells us with the &lt;em&gt;401 - Eccentric Authentication&lt;br /&gt;
required&lt;/em&gt; that it wants an anonymous client certificate, signed by&lt;br /&gt;
it&amp;rsquo;s own CA. See &lt;a href=&#34;/eccentric-authentication/anonymous_logins&#34;&gt;Anonymous Logins&lt;/a&gt;.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-signup.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;There are three options on the page.&lt;/p&gt;

&lt;p&gt;The first option the proxy offers me (the user) to log in with my&lt;br /&gt;
existing account (guidow). Pressing that button tells the proxyt that&lt;br /&gt;
we want all subsequent connection to the dating site with that&lt;br /&gt;
account. Behind that account, the proxy logs in with the client&lt;br /&gt;
certificate.&lt;/p&gt;

&lt;p&gt;The second option allows me to sign up for a new account. I come up&lt;br /&gt;
with a nickname and press the &amp;lsquo;Register&amp;rsquo; button. The proxy (running on&lt;br /&gt;
my own computer) will create a new private key, and registers the&lt;br /&gt;
public key at the site&amp;rsquo;s own Certificate Authority.  It checks if the&lt;br /&gt;
nickname is unique and signs it. Our proxy receives the certificate&lt;br /&gt;
and uses that to log in at the site.&lt;/p&gt;

&lt;p&gt;Notice there are two components: The site itself and the Local Certificate Authority.&lt;/p&gt;

&lt;p&gt;Finally, there is a third option to register anonymously. My proxy&lt;br /&gt;
will come up with a unique name &amp;lsquo;anon-&lt;number&gt;&amp;rsquo; and registers an&lt;br /&gt;
account with that name at the Local CA.&lt;/p&gt;

&lt;p&gt;We take that third - anonymous - option.&lt;/p&gt;

&lt;h2 id=&#34;signed-up-manage-profile&#34;&gt;signed up - manage profile&lt;/h2&gt;

&lt;p&gt;With a second or two, we are back at the dating site. And the proxy has logged me in.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-logged-in.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;The top part of the browser window is the part of the Ecca proxy. It shows that I&amp;rsquo;m logged in at the dating site, with the account it has created for me. There is also a log out button  and a link to the proxy&amp;rsquo;s management page where we can see all accounts we have for all sites where we have accounts.&lt;/p&gt;

&lt;p&gt;The blue part of the page is the dating site. It shows the typical questions to create a profile. Select some at will and press Engage. That sets the profile at the dating site. Now we are ready to comminicate.&lt;/p&gt;

&lt;h2 id=&#34;sending-messages&#34;&gt;sending messages&lt;/h2&gt;

&lt;p&gt;Click on the &amp;lsquo;Aliens&amp;rsquo; button, select one of them to whom you want to&lt;br /&gt;
write a Vogon Poem. Click on the name to get to the details&lt;br /&gt;
page. There, click &amp;lsquo;Compose a Poem&amp;rsquo;.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-compose-poem.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;Here we are at another simple looking but interesting screen. It&amp;rsquo;s just a textbox and a Deliver-button. All the interesting things happen - invisible - inside the ecca-proxy.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s the ecca-proxy that receives the message and two hidden parameters that the dating site put there. (The site and the proxy work together on this.)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;form method=&amp;quot;POST&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;encrypt&amp;quot; value=&amp;quot;required&amp;quot;&amp;gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;certificate_url&amp;quot; 
     value=&amp;quot;https://register-dating.wtmnd.nl:10444/get-certificate? ...
       ...  nickname=guidow%40%40dating.wtmnd.nl&amp;quot;&amp;gt;
  &amp;lt;br&amp;gt;
  &amp;lt;textarea name=&amp;quot;cleartext&amp;quot; rows=&amp;quot;8&amp;quot; cols=&amp;quot;80&amp;quot;&amp;gt;
     I love the size of your ... ehm ... spaceship. Wanna dance?
  &amp;lt;/textarea&amp;gt;&amp;lt;br&amp;gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;Deliver&amp;quot;&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This tells the proxy to encrypt the data in the form with the public&lt;br /&gt;
key it can find in the in the certificate at the given URL.  The proxy&lt;br /&gt;
fetches the certificate, encrypts the data with it and submits it to&lt;br /&gt;
the dating site.&lt;/p&gt;

&lt;p&gt;The dating site receives the encrypted text! It cannot read the&lt;br /&gt;
contents of the message. Only the recipient can.  Now we wait for the&lt;br /&gt;
recipient to read our message and reply&amp;hellip;.&lt;/p&gt;

&lt;p&gt;&amp;hellip; and wait &amp;hellip;&lt;/p&gt;

&lt;p&gt;Oh, wait, as I control both accounts, both the anonymous and the guidow-account,&lt;br /&gt;
I&amp;rsquo;ve effectively sent a message to myself. We have to switch the&lt;br /&gt;
account.&lt;/p&gt;

&lt;h2 id=&#34;manage-accounts&#34;&gt;manage accounts&lt;/h2&gt;

&lt;p&gt;First press the logout-button in the top part. You get to the Eccentric Authentication Handler.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-manage.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;As you can see, I have seven accounts at three sites.&lt;/p&gt;

&lt;h2 id=&#34;receiving-encrypted-message&#34;&gt;receiving encrypted message&lt;/h2&gt;

&lt;p&gt;Click on the dating.wtmnd.nl link. You get back to the home page. Now&lt;br /&gt;
press the &amp;lsquo;Read messages&amp;rsquo; button.&lt;/p&gt;

&lt;p&gt;The site will want to know as whom we want to log in. The proxy offers&lt;br /&gt;
our two accounts for this site, not the accounts we have at the&lt;br /&gt;
other two sites.&lt;/p&gt;

&lt;p&gt;Now we click &amp;lsquo;guidow&amp;rsquo;, to log in with that identity. The site receives&lt;br /&gt;
our certificate with the name, looks up the messages and presents what&lt;br /&gt;
it has for us. It looks like this:&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-ciphertext.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;That gibberish is what the dating site received from the ecca-proxy of&lt;br /&gt;
the sender. It looks like a Vogon Poem indeed.&lt;/p&gt;

&lt;p&gt;Below it is the link to decode. Press it and it will tell the&lt;br /&gt;
ecca-proxy to decode the message with the private key is has for my&lt;br /&gt;
guidow-account. Then the proxy shows me what it has decoded.&lt;/p&gt;









&lt;span class=&#34;caption-wrapper&#34;&gt;
  &lt;img class=&#34;caption&#34; src=&#34;/images/dating-cleartext.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;Just what we expected.&lt;/p&gt;

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

&lt;p&gt;At no point has the dating site asked for an email address, real names&lt;br /&gt;
or identities. When it would be paid service, it can do so for listing&lt;br /&gt;
the account name in the list of aliens. Or it could require payment&lt;br /&gt;
for the alien-to-alien communication.&lt;/p&gt;

&lt;p&gt;The user stays completely anonymous.&lt;/p&gt;

&lt;p&gt;Here we&amp;rsquo;ve shown a way to create client certificates to log in to a&lt;br /&gt;
web site. All the hard work is done by the Ecca-proxy. The user specifies the actions and the accounts to use.&lt;/p&gt;

&lt;p&gt;How could it be more user friendly?&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>
    
  </channel>
</rss>
