Subject: [saag] Bar BOF on making Computers (and crypto) easy to use

From: Phillip Hallam-Baker <[email-masked]>
Date: Fri, 11 Mar 2016 10:26:14 -0500

If people are interested in attending a Bar BOF at IETF 95 on this,
please let me know so I can give numbers to Stephen.

For years we have all agreed that the single biggest problem in
security is making secure systems usable. Two years ago I demonstrated
a scheme that made S/MIME mail as easy to use as regular mail. Then as
I started to look at the deployment issues, I realized that 'as easy'
isn't enough.

To make the Internet secure, we have to make secure computers easier
to use than they are today.

I think I have a solution, if you excuse the marketing, 'The
Mathematical Mesh'. But right now I am not fixated on that one
solution. My goal is to solve the problem, not solve it in one
particular way. Everything is on the table.

Right now, the Mesh architecture is based on the following approach:

* The user has ultimate control of their security
* First priority is Availability, then Integrity, then Confidentiality
   [Do not lose the user's pictures of the kids at 3 years old]
   [Do not allow modification of system config files]
   [Protect secrets]
* JSON over HTTP Web Service
   * JOSE Signature
* End to end confidentiality and integrity
   * the Mesh itself is a Web Service but NOT a trusted service
* Open standards, unencumbered technology
* Reference code in C#

Web Site: http://prismproof.org/

This is a completely general personal PKI that puts the user at the
top of their personal trust hierarchy. So we can apply it to any
cryptography enabled application. The YouTube demonstration shows
S/MIME but that was chosen as end to end email security is the hardest
application to support.

For the Mesh to grow, it has to provide a compelling benefit to early
adopters. So the two applications I am currently focused on are
remembering Web Site Usernames and Passwords and managing SSH keys.

Now these are both applications that people have done before. But as
LastPass recently demonstrated, done before does not mean done right.
I want solutions that are open, auditable and provide end-to-end
security.

Getting SSH key management right for me means making it easy to use a
different key on each device. Right now I have to futz with every
device I own each time I add one. Sure some folk have written scripts.
But how much time can one person devote to writing a script and
getting the implementation *really* right? Isn't an open standards
based infrastructure the better way to approach this?

At this point, I am only using traditional crypto that everyone is
familiar with (public key encryption, signature, Merkle chain). Later
on there are some additional security properties that are possible
with some of the more cutting edge stuff that you have probably heard
me talk about. Right now I don't want to confuse people so that is
phase 2.

Originally, I thought this would leverage PKIX for building a personal
PKI. When I got into the various libraries I discovered this did not
give me the leverage I expected. These have been used to support the
WebPKI for 20 years and trying to repurpose them now creates more
effort than it saves.