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:
Alice: 1. uses namecoind/Namecoin-QT to create a Namecoin blockchain wallet2. 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 wallet2. 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 certificate5. 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 blockain6. connects to Bob providing her own x.509 certificate and validating the x.509 certificate presented by Bob
Bob: 1. same as Alice 2. same as Alice 3. same as Alice 4. same as Alice 5. accepts connection request from Alice6. retrives Alice's public ECDSA-key from blockain and validates Alice's X.509 certificate
Advantages: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
Disadvantages:1. Namecoin stores a lot of meta-data in blockchain -> traffic and storage overhead
2. monetary operations -> small costs of money3. 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 them). 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 https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk