[guardian-dev] looking for comments on secure email v2

Tim Prepscius timprepscius at gmail.com
Sat Mar 15 14:57:12 EDT 2014


Oh, and the demonstration website is here:

http://pmx.mooo.com

I can't guarantee anything will be up at any time.  Also I reset the
db whenever I feel like it.

-tim

On 3/15/14, Tim Prepscius <timprepscius at gmail.com> wrote:
> ok a first draft is up.
>
> https://github.com/timprepscius/mv
>
> I'm going to work on it for the next week and then release to the
> reddit security thing.
> Then I'll work on it another week and see if I can notify the CCC.
> I think by the end of two weeks it will be stable, and have most of
> the functions of gmail.
>
>
> It is super super simple.  I think the learning curve is probably 1
> day to understand how everything works.
> Probably 30 minutes to change the look and feel.
>
> ---
>
>
> I also have a few ideas on how to defeat the javascript injection problem.
> But it depends on the adversary is injecting the javascript.
>
> If the adversary has hacked the server and made a changes to the
> static files.  This should be detectable.
> And presumably, if I set up an external server which would provide
> "diffs" of a target website over time, I could notify users of
> changes, and what they were.
>
> If the adversary attempts to inject javascript for a specific login,
> in my case this shouldn't apply.  As all javascript is downloaded
> before login.
>
> If the adversary is injecting javascript only for a specific ip.  I
> have no solution.
>
> Anyways, a few ideas, no silver bullet of course.
>
> -tim
>
>
> On 3/5/14, Tim Prepscius <timprepscius at gmail.com> wrote:
>> Ok I have two more design questions:
>>
>> PGP lookup -----------
>>
>> When a sender is seen for the first time (or after a while)
>> 1.  lookup pgp key on random public key server.
>> If so:  mark key: "seen on public key server X at date Y"
>>
>> 2.  if pgp signature block exists and public key exists, attempt to
>> verify message:
>> If message verifies, mark key: "successfully verified message"
>>
>> 3.  if pgp public key block is received in mime, mark key: "received
>> key from user"
>>
>> ...
>>
>> If "seen on server" and "successfully verified message", mark key GREEN
>> if "seen on server" but not yet used to verify message, mark key YELLOW
>> if not seen on server, mark key RED.
>> if key is revoked, mark BLACK, stop user from sending.
>> If not key at all, mark WHITE
>>
>> Contacts which you type into the to box, will become color coded.
>>
>>
>> PGP generation with revoke -------
>>
>>
>> I'd like to have the client generate the REVOKE certificate when he
>> generates the PGP key.
>> And then I'd like that client to send ME the REVOKE.  So that I can
>> revoke the PGP key along with the account if necessary.
>>
>> How bad is this?  Does this raise eyebrows like, "wow that is messed
>> up and introduces security issues"  or does that seem like, "well I
>> can see that having closed accounts with non revoked pgp keys is a
>> problem."
>>
>>
>>
>> (openpgp.js does not have the revoke capability yet, however I think I
>> can take it from bouncy castle (if it exists there).)
>>
>>
>> -tim
>>
>>
>>
>>
>>
>>
>>
>> On 2/26/14, Tim Prepscius <timprepscius at gmail.com> wrote:
>>> Omg, my response was just killed by the browser.  RAWRGH.
>>>
>>> Anyhow, now in short form:
>>>
>>> scramble.io: is very close to what I want to do.  Their tag line is
>>> oddly familiar.
>>> but with an AES caching scheme, -  just a little bit more professional.
>>> Even simpler, built off of backbone.
>>> I actually have a prototype done.  There's like 100 lines of code,
>>> mostly curly braces.  It's crazy.
>>>
>>>
>>> crypton:  don't get what it gives me.  don't see how it protects the
>>> dag on the database side.  I read server code.
>>>
>>>
>>> webcrypto:  I personally think this is a bad idea.  Ok, now I'm not a
>>> good person.  But I would trust a signed random number generator run
>>> by many universities, over google.  Tinfoil is shiny!
>>>
>>>
>>> the plugin:  This just doesn't work for me.  I don't like plugins.  I
>>> think I'm going to do the non-plugin version, and somebody else can
>>> plugin-ify it.  I wish we could have secure computing in the browser,
>>> Xbox style.
>>>
>>>
>>> people-running-their-own.  Yes, I understand.  This is an RS idea.  I
>>> think his point was very valid.  One email provider with a million
>>> clients is much easier to take down than ten thousand and a hundred
>>> per each.  With the advent of NaCL and ZeroVm this may be a
>>> possibility.
>>>
>>>
>>> Ok I have another question:
>>>
>>> Has anyone dealt with CryptDB?  I'm looking for a way to encrypt the
>>> DAG but still have it be query-able.
>>> I can do some simple things like, "exposedParentId = AES (parentId)"
>>> But then you will still have 10 emails with the same conversationId.
>>>
>>> -tim
>>>
>>>
>>> On 2/25/14, elijah <elijah at riseup.net> wrote:
>>>> On 02/23/2014 11:33 AM, Tim Prepscius wrote:
>>>>
>>>>> So I'm writing a new version of mailiverse...  I'm looking for some
>>>>> comments on specific design decisions.
>>>>
>>>> please see my draft report on the 'state of art' in secure email
>>>> projects:
>>>>
>>>> https://github.com/OpenTechFund/secure-email
>>>>
>>>> scramble.io is probably most similar to your goals, maybe try to join
>>>> forces?
>>>>
>>>> If I were to try to do webmail, I would do it this way:
>>>>
>>>> (1) ensure it had support for CORS or postMessage so that code was
>>>> loaded from a different site than the data. In think going down the
>>>> browser app path is madness, because they you must trust google
>>>> entirely. If you don't trust the CA cartel, then use public key pinning
>>>> & HSTS.
>>>>
>>>> (2) use a generic encrypted synchronization library for html5 apps like
>>>> https://crypton.io (which was just audited by zooko et al)
>>>>
>>>> (3) wait a year for webCrypto api to be deploy by all major browsers so
>>>> that it is not folly to try to generate keys in javascript in the
>>>> browser.
>>>>
>>>> Ultimately, I think the only way to get the security properties that we
>>>> need today is to require some kind of custom app be installed. I could
>>>> be wrong, but it hard to imagine the browser becoming a secure
>>>> computing
>>>> environment anytime soon. If you are willing to contemplate a custom
>>>> app, we would love your help at LEAP (https://leap.se/email).
>>>>
>>>>> I will not run a service.  Everyone runs their own.
>>>>
>>>> As someone who has 13 years experience in helping to run an email
>>>> service, you can count me in the category of people who think that
>>>> self-hosted email is never going to happen. My analysis is spelled out
>>>> in detail here:
>>>> https://github.com/OpenTechFund/secure-email#self-hosted-email
>>>>
>>>> On 02/24/2014 09:59 AM, Hans-Christoph Steiner wrote:
>>>>
>>>>> If a native backend is a possibility, I think you should
>>>>> use sqlcipher as your backend storage.
>>>>
>>>> This is what Soledad does (LEAP's client-encrypted synchronized
>>>> searchable document database https://leap.se/soledad). the local
>>>> database is block encrypted using sqlcipher, and synchronized on a
>>>> per-document basis, with each document encrypted with its own key and
>>>> given a random document id (in a manner that prevents replay attacks by
>>>> the server).
>>>>
>>>> -elijah
>>>>
>>>> _______________________________________________
>>>> Guardian-dev mailing list
>>>>
>>>> Post: Guardian-dev at lists.mayfirst.org
>>>> List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev
>>>>
>>>> To Unsubscribe
>>>>         Send email to:  Guardian-dev-unsubscribe at lists.mayfirst.org
>>>>         Or visit:
>>>> https://lists.mayfirst.org/mailman/options/guardian-dev/timprepscius%40gmail.com
>>>>
>>>> You are subscribed as: timprepscius at gmail.com
>>>>
>>>
>>
>


More information about the Guardian-dev mailing list