Server Security
keybase.io
keybase.io
1. don't store private keys (of users). 2. distribute the organization around the globe; different datacenters, different states/countries, different peers/service providers. 3. use different infrastructure, hardware/software, hardened, with tripwires. 4. make your clients auth all the sources, with a minimum of N/3 valid, identical responses from distinct parts of the network. 5. implement the rest of the service's functionality as described in the post.
As long as you have a shit-ton of distributed locations you can survive internet outages, state actor intervention, service provider compromise and server compromise. It would all have to be highly available mesh network, of course, but it's feasible and should be pretty low on resource use as it's just public keys you're copying around.
(or, just hack the web client so it lies, independent of what it actually sees from the server)
Server compromise wouldn't even need to take place on the server itself.
I've been trying to think of innovative applications of the Keybase API [1], which exposes much (most?) of the functionality available via the command line client.
I've got a few vague projects in mind but would love to hear more ideas. I've got a few Keybase invites left and will give them while they last to anyone who proposes an interesting use of the API, as long as Keybase doesn't object to this type of "contest" [2].
1. https://keybase.io/docs/api/1.0
2. maxtaco and malgorithms, please let me know if that's an inappropriate use of the invites and I'll rescind the offer.
The API is not done, btw. If another call is needed, and you're really serious about building it, we will expand the API.
Exactly. I've had my eye on Keybase issue #218 [1], and I'm hoping that you all will provide a way for users to provide a confirmed Bitcoin payment address.
You could just generate a unique message for the user to sign with the address using their Bitcoin client. Most bitcoin-qt and most other GUIs even have a menu option now for signing, so it should be easy for users to do.
To preserve privacy, a user could even post a stealth address, to the extent that stealth addresses are supported in the user's client software. Most clients aren't there yet, but I think more will start supporting stealth addresses this year.
I think the biggest nut to crack is going to be making the onboarding process as simple as signing up for an email account. I dream of a day where the majority of people have PGP keys and while I think keybase's signup flow was straightforward, I can see how it would be very confusing for an average computer user.
How many people are automatically logged in?
The only thing is that you would see the keybase message that you didn't send but it is Twitter and most people don't look back on their recent tweets.
Am I right or did I pick up something wrong?
And then each user's chain is itself pointed at in a leaf node of the signed merkle tree. (The tree is signed by Keybase).
So you as a client can verify any individual's personal signature chain, and you can verify Keybase's merkle tree. Finally, and this is the more subtle connection, each user's signature chain has statements about the merkle tree itself, so you can verify all these users are seeing the same Keybase-signed merkle tree.
We might, in the future, periodically write our root block to the Bitcoin blockchain as a further protection against forking attacks.