[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-talk] A Tor-based Public-Key Infrastructure

Great idea!

To avoid the dependency on servers/providers I suggest to take a Bitcoin-like blockchain with an extension to assign self-registered, globally unique pseudonyms to blockchain wallets and use the private ECDSA-key of the blockchain wallet corresponding to the pseudonym to sign X.509 certificates (e.g. S/MIME, object-code-signing, intermediate certificates for server applications like TLS, ...) which use the self-registered, globally unique pseudonym of the blockchain wallet as CommonName.

https://wiki.namecoin.info/index.php?title=Identity already provides a blockchain with registration of pseudonyms (=identity). All you need to do is the following:

1. uses namecoind/Namecoin-QT to create a Namecoin blockchain wallet
2. uses namecoind/Namecoin-QT to register a pseudonym in Namecoin-blockchain (= identity) 3. uses some kind of application (e.g. HTML5 offline-app connecting to namecoind-/Namecoin-QT-RPC-API) which
   1. retrieves the private ECDSA-key key from the wallet
2. calculates the public ECDSA-key to retrieve the matching identiy from the blockchain 3. creates a x.509 certificate signed with the private ECDSA-key of the blockchain wallet (identity = CommonName)
   4. offers to save the x.509 certificate
5. imports the x.509 certificate into the browser if applicable (e.g. for TLS client authorisation) 4. installs saved x.509 certificate into any other application used for communication
5. retrives Bob's public key from blockain
6. connects to Bob providing her own x.509 certificate and validating the x.509 certificate presented by Bob

1. same as Alice
2. same as Alice
3. same as Alice
4. same as Alice
5. accepts connection request from Alice
6. retrives Alice's public ECDSA-key from blockain and validates Alice's X.509 certificate

1. Tamper-proof publication of CommonName (=identity) <-> public key-tuple 2. Alice's applications (E-Mail, TLS, ...) already support x.509 certificates, so nothing to patch 3. Bob's applications can be patched easily by adding libcoin-support or namecoind-RPC-support

1. Namecoin stores a lot of meta-data in blockchain -> traffic and storage overhead
2. monetary operations -> small costs of money
3. Namecoin identities are lost if not renewed within 36000 blocks (~ 5 months)

I suggest to use the Namecoin blockchain as proof-of-concept and start a IETF workgroup for the real-world implementation.

Am 2016-01-11 23:59, schrieb Ethan White:
First off, this is my first post to tor-talk, so I'm not even really
sure this is the right place, but...

Recently, I've been toying with an idea inspired by a posting on
tor-talk by Mike Perry from September 2013 [1], in which alternatives
were discussed to Web of Trust (WoT); specifically, the suggestion
âEvery time GPG downloads a new key, re-download it several times via
multiple Tor circuits to ensure you always get the same key.â

I've developed it more, and I've come up with a comprehensive
public-key infrastructure that associates e-mail addresses with
arbitrary data (such as public keys). We assume Alice is using the
e-mail address alice@xxxxxxxxx, and Bob is using the e-mail address
bob@xxxxxxxx Alice wants to get Bob's public key securely. My goal
with this is slightly different from most PKIs: I simply want either
Alice or Bob to notice if anything fishy is going on. They can then
simply publish broadly that something is off. (This would be a nice
thing to eliminate; if anyone has any ideas, feel free to suggest

The obvious solution is to have Bob upload his public key to bob.com,
and then Alice can simply use the three-tor-circuit method to download
Bob's public key. However, this has the flaw of trusting bob.com;
bob.com could simply serve up the wrong public key.

To solve this, Bob could periodically check that bob.com is serving up
the right public key. The intervals would have to be random, since Eve
could simply MITM everyone and serve up the wrong public key except
when she knows Bob usually asks.

However, this still has a problem: let's say Bob is a high-value
target like a journalist, and Eve is, for example, an intelligence
agency. Eve could simply sit outside Bob's house, and, whenever she
sees a packet into the Tor network, not MITM anyone for a few seconds.
Thus, Bob's illusion that his public key is being served up
authentically is maintained, but yet Eve can still MITM Alice (or
anyone else). This doesn't even seem too far-fetched; this is what
NSA's QUANTUM injection is, is it not?

To solve this, Bob would send some sort of traffic to the first relay
every (average latency of the tor network) / 2 seconds, which would
almost always be something meaningless (like a TLS warning message),
except occasionally when it's actually a request to bob.com to grab
the public key.

I have a few questions:
* Do I actually have to worry about QUANTUM-style attacks?
* Are there any vulnerabilities that I'm missing?
* Is this practical? Would it effecively DDOS the Tor network?
* Could I do this in any way that doesn't rely on DNS?

Best regards,

Rene Bartsch, B. Sc. Informatics
tor-talk mailing list - tor-talk@xxxxxxxxxxxxxxxxxxxx
To unsubscribe or change other settings go to