keybase / client

Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
BSD 3-Clause "New" or "Revised" License
8.89k stars 1.23k forks source link

[Question] Does keybase implement peer-to-peer encryption? #9005

Open fgabrieli opened 6 years ago

fgabrieli commented 6 years ago

Hello all, i didn't find any docs on your webpage about how does keybase work.

Does all messages between A, B go through a centralized server or it implements peer to peer encryption? Not sure if there is a forum for the project where to ask this question or this is the right place.

thanks, Fernando

strib commented 6 years ago

Everything goes through our servers.

fgabrieli commented 6 years ago

Hi strib, thank you for answering. Is there a reason to send all traffic through your servers?

strib commented 6 years ago

It's mainly for user experience, e.g. you can send someone a message without them needing to be online.

Note that the encryption is end-to-end of course, only the clients have keys to read the data. The server is just a dumb holding ground for encrypted data.

fgabrieli commented 6 years ago

Wouldn't it perform better if it is p2p ?

you could push offline msgs to server anyway then send back when the recipient gets online and delete them, what do you think?

On 12 October 2017 at 15:14, Jeremy Stribling notifications@github.com wrote:

It's mainly for user experience, e.g. you can send someone a message without them needing to be online.

Note that the encryption is end-to-end of course, only the clients have keys to read the data. The server is just a dumb holding ground for encrypted data.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/keybase/client/issues/9005#issuecomment-336221474, or mute the thread https://github.com/notifications/unsubscribe-auth/AGtqZgOCcEMj92kfhslvzkl_odxRrh0Hks5srlcSgaJpZM4P3VBG .

strib commented 6 years ago

It wouldn't necessarily perform better, because then the sender has to upload N copies of each message, one for each of the recipient's N devices. If the sender has bad upload speed, this will make performance much worse.

And in general, p2p is very hard to implement in the general case, and we're not interested in supporting it right now since server-based communication works for 99.9% of cases.

fgabrieli commented 6 years ago

I see, i was not thinking in many to many conversation :) makes sense. I'm working myself on a very small project to implement a chat client with p2p encryption. Thanks for all your answers.

Fernando

On 12 October 2017 at 19:20, Jeremy Stribling notifications@github.com wrote:

It wouldn't necessarily perform better, because then the sender has to upload N copies of each message, one for each of the recipient's N devices. If the sender has bad upload speed, this will make performance much worse.

And in general, p2p is very hard to implement in the general case, and we're not interested in supporting it right now since server-based communication works for 99.9% of cases.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/keybase/client/issues/9005#issuecomment-336292570, or mute the thread https://github.com/notifications/unsubscribe-auth/AGtqZkQcbrWpHhpnW-oKwV13rkZNWNn7ks5srpCWgaJpZM4P3VBG .

carlosdelfino commented 4 years ago

I think P2P is a greater soluction for Keybase, I have many instances of Keybase and all in the same network with 300MBs to 1GBs, but in atual model keybase use my 4G mobile very slow network for send and receive files for all instance in my teans.