<meta http-equiv="content-type" content="text/html; charset=utf-8"><div>For what it&#39;s worth, my wishlist:</div><div><br></div><div>1. Asynchronous messaging (email)</div><div>2. A friend request-approval mechanism and access control system</div>
<div>3. Synchronous text messaging (instant messaging)</div><div>4. Synchronous voice (VoIP)</div><div>5. What I&#39;ll call “feeds”.  The equivalent of the Twitter tweet, the Facebook status message, announcements of bigger postings elsewhere (so and so has posted a new photo album, or whatever), comments on stuff, these sorts of things.  Short messages published by someone, distributed to his friends, aggregated by each of his friends into a running feed of messages from various sources.  In short, the equivalent of the Facebook “news feed”.  Or RSS with some extended functionality.  Both published to the world and access controlled.</div>
<div>6. What I&#39;ll call “pages”.  The Facebook “profile”, photo albums, videos, whatever.  Information, that&#39;s posted somewhere for friends to view at their leisure.  Both published to the world and access controlled.</div>
<div>7. File transfer.  Both published to the world and access controlled.</div><div>8. Event announcement in machine readable format and sharing of calendar information.  Both published to the world and access controlled.</div>
<div>9. Collaborative document editing.</div><div><br></div><div>Additionally, some things that I think will be necessary or helpful for all of this to be feasible:</div><div><br></div><div>1. A user interface for all the major types of computing devices (desktop/laptop pc, tablet, mobile phone) and all the major operating systems (GNU/Linux, Windows, Macintosh, Android, iOS).  Access to and control of the freedom box through an encrypted tunnel from one or more computing devices.  This is the interface to the freedom box.</div>
<div><br></div><div>2. A crypto suite which encrypts everything all the time without the user needing to do anything.  Session keys are used to encrypt all the types of traffic, with perfect forward secrecy and deniability as in OTR (unless the user specifically chooses non-repudiation for some message, which people won&#39;t), and a single persistent public key is used to authenticate all the session keys for all the types of traffic, but is never used to encrypt traffic.  People&#39;s single persistent public keys can be authenticated by 0, 1, or more than 1 of:</div>
<div>a) Preexisting short shared secret and Socialist Millionaire Protocol as in OTR</div><div>b) Web of trust as in OpenPGP</div><div>c) Hash commitment and short authentication string verified by voice as in ZRTP</div><div>
Authentication by one or more of these methods can occur whenever it happens to occur, including long after the key is already in use.</div><div><br></div><div>3. A system of redundant distributed encrypted backups to friends.  It runs invisibly in the background using who you talk to as its criteria for deciding who to back up to (not to say the user can&#39;t change these configurations manually, just that he doesn&#39;t need to, and people won&#39;t).  Also, a super easy manual local backup.</div>
<div><br></div><div>4. A system whereby a person&#39;s friends&#39; boxes can substitute for his box in case it suffers a service outage of some kind.  As with the backup, it should run invisibly in the background and use who you talk to as the criteria.  It definitely needs to work for receipt of mail but ideally should work for all the services.  Like the backup, this one is completely imperative for the freedom box to be successful; it just won&#39;t do to have a user&#39;s mail go undelivered because his box was down for a spell.</div>
<div><br></div><div>5. In case of loss of the freedom box, and at the same time loss of all (if any) of the backups of the key which can recover the distributed backup (people won&#39;t do a good job of creating and storing backups, you know they won&#39;t), a system whereby cooperation of most of a large number of close friends (10 of 12 or whatever) can recover the key.  This could also be adapted to handle redeployment of a new persistent authentication key in case of compromise (someone&#39;s box is stolen, oh no his persistent private key is in the hands of the bad guy).  Each box could have, in addition to the main persistent key which is authenticated to all the person&#39;s friends&#39; boxes and is used all the time to authenticate session keys, an alternate persistent key, which is authenticated to all the person&#39;s friends by use of the main key.  The alternate persistent private key is not stored in plain text anywhere, not even on the freedom box itself, so it&#39;s not compromised in case the freedom box is stolen.  The alternate persistent private key can be recovered only by cooperation of most of a large number of close friends, and can be used to revoke the main key and become the new main key.</div>
<div><br></div><div>So that&#39;s my ultimate super-ambitious wishlist.  I hope some reasonable fraction of that is feasible in the somewhat near term.</div>