
Introducing Keybase Chat - aston
https://keybase.io/blog/keybase-chat
======
malgorithms
OP here! I had to trim the post down for brevity, but I thought the HN
community in particular might be interested in the API side of things.

Undocumented in the post: you can invent channels for app-to-app communication
from the JSON API. For example, it's possible with Keybase chat to have a
program posting encrypted messages for another person or program, without
cluttering up the _visual_ chat interface.

Also - to test chat we've cut the invitation requirement. You should be able
to try the app without anyone inviting you.

~~~
brightball
Just installed and it's still asking me for an invite code on the Fedora RPM.

~~~
oconnor663
Could you file an issue over at
[https://github.com/keybase/client/issues](https://github.com/keybase/client/issues)
and tag @oconnor663 in it please? And maybe include the output of `keybase
--version`?

~~~
huevosabio
I'm also getting an invite request for macOS

------
bgentry
This really does look great.

 _Edit: since I haven 't been running Keybase for the past 2 weeks, I missed
the fact that they disabled continuous background proof verification due to my
concerns: [https://github.com/keybase/keybase-
issues/issues/2782#issuec...](https://github.com/keybase/keybase-
issues/issues/2782#issuecomment-278437271)

Good on them! The rest of this comment is not actually applicable anymore and
you should give Keybase Chat a try :)

Original comment:

\----------------- _

My biggest concern with it, however, is that the Keybase client is now
frequently verifying all my contacts' proofs. Many of these verifications are
for personal websites and are done over port 80 or involve DNS lookups that my
contacts control.

This leaks a great deal of metadata over the network about who my contacts
are, and makes it easy for a hostile network to determine who I am if I'm
running the Keybase app.

I reported this on GitHub when I noticed it and have unfortunately not been
regularly running the Keybase app since: [https://github.com/keybase/keybase-
issues/issues/2782](https://github.com/keybase/keybase-issues/issues/2782)

I hope they decide on some sort of fix for this. They could at least not do
verifications over insecure connections and arbitrary 3rd party DNS lookups
without my explicit approval.

~~~
cridenour
Looks like they did in fact fix it, just forgot to report back. (Just saw a
new comment on that issue)

------
cgijoe
Warning to all OS X users: The Keybase Chat desktop app does a number of shady
things that ultimately led me to delete it from my system. I am writing this
purely as a public service announcement, to those who worry about installing
unknown apps on their Macs. The Keybase Chat app:

(1) Requires administrator privileges to launch on first run, to install a
"Helper Tool". The app does not explain what this tool does, where it lives,
nor does the Keybase website.

(2) Installs a login (startup) item without asking permission, so Keybase will
auto-launch on every boot.

(3) Installs a Finder Favorite in your Finder sidebar, without asking
permission.

(4) Installs /usr/local/bin/keybase without asking permission.

(5) Installs /Library/PrivilegedHelperTools/keybase.Helper without asking
permission.

(6) Installs /Library/LaunchDaemons/keybase.Helper.plist without asking
permission.

(7) Installs ~/Library/LaunchAgents/keybase.* (3 files) without asking
permission.

(8) Runs permanently in your menu bar, even if you quit the main app.

These things may all have good reasons and be benign, but they are too shady
for me, so I deleted the app and all the files listed above. Apologies to the
devs.

~~~
rw
How did you find these changes?

~~~
cgijoe
I used the Unix "locate" command-line tool. I just searched for "keybase".
Note that you have to build up a locate DB first by calling "sudo
/usr/libexec/locate.updatedb". Type "man locate" in Terminal to learn more.

~~~
HereticLocke
"locate" is not an Apple command-line tool. It is a Unix command.

~~~
terrywang
For those who are curious: To be accurate, locate is a command provided by
mlocate package (shipped by most modern distributions) which supersedes GNU
slocate.

mlocate is a locate/updatedb implementation. The 'm' stands for "merging":
updatedb reuses the existing database to avoid rereading most of the file
system, which makes updatedb faster and does not trash the system caches as
much.

The locate(1) utility is intended to be completely compatible to slocate. It
also attempts to be compatible to GNU locate, when it does not conflict with
slocate compatibility.

Reference:
[https://fedorahosted.org/mlocate/](https://fedorahosted.org/mlocate/)

------
Meph504
Umm has anyone read the lisc. for this application?

[https://keybase.io/docs/terms](https://keybase.io/docs/terms)

 _When providing Keybase or the Service with content, such as your name,
username, photos, social media names, data or files, or causing content to be
posted, stored or transmitted using or through the Service (“Your Content”),
including but not limited to the Registration Data and any other personal
identification information that you provide, you hereby grant to us a non-
exclusive, worldwide, perpetual, irrevocable, royalty-free, transferable (in
whole or in part), fully-paid and sublicensable right, subject to the Privacy
Policy, to use, reproduce, modify, transmit, display and distribute Your
Content in any media known now or developed in the future, in connection with
our provision of the Service. Further, to the fullest extent permitted under
applicable law, you waive your moral rights and promise not to assert such
rights or any other intellectual property or publicity rights against us, our
sublicensees, or our assignees._

That's a bridge too far, and someone needs to dial this back.

~~~
adambrenecki
> in connection with our provision of the Service.

This is pretty much boilerplate legalese that's generally intended to mean
"you can't upload a file to your public folder, then sue us for copyright
infringement because that file is in a public folder".

Lawyers seem like to cover their clients' asses as much as possible, but for a
service like this that's designed for privacy-conscious people it'd do them
well to step back and think about how the license comes across to privacy-
conscious laypeople.

From what I've seen of Keybase, from back when they were just an alternative
to the PGP Web of Trust to now, I don't think they're genuinely planning
anything nefarious (but they'd still do well to have a ToS that reflects
that).

~~~
nihonde
What you're describing is "for the sole purpose of proving the service to
you". The "in connection with" language is much broader. Whether the license
is intended to give them more leeway or not is a different question.

------
x1798DE
The continued fragmentation of chat into walled gardens is _really_ annoying.
I feel like Matrix has done a good job not only designing their protocol to be
open and federated from the start, but also in that they are actively working
to provide bridges to other services. It would be really nice if keybase would
work to federate with Matrix servers.

(Link to Matrix service, since they have an un-googleable name:
[https://matrix.org](https://matrix.org). The only working client that I know
of at the moment is [https://riot.im](https://riot.im))

~~~
indolering
I am convinced that we are cursed to relive this nightmare once a generation:

1\. Some chat application blows up in popularity. 2\. Everyone looks around
and says "Hey, that's an easy problem, let's build a competitor but with
feature X and Y!" 3\. We are stuck with a nightmarish number of chat apps
until someone reverse engineers the protocols for each. 4\. The bubble bursts
and everyone realizes there wasn't any money in it anyway and goes off to
doing something more interesting (like building better PKI). 5\. ~10 years
goes by and someone finds a new chat niche and the cycle repeats itself.

~~~
x1798DE
Yeah, though IRC seems to have weathered the years fairly well (at least with
its core audience), and it's an open and federated protocol. Since Matrix
bridges to IRC, and adds some features that you used to need IRC bouncers and
such to get, and is federated itself, my (possibly naive) hope is that it can
evolve into something at least akin to a "next generation" IRC with first-
class support for E2E encryption and various other chat features that people
tend to like these days.

------
Jaruzel
Why do all new chat clients look like Slack? We're rapidly moving towards a
monoculture of chat UIs.

I'd like to see a return to less intrusive chat apps, with more minimal UIs
that don't take up most of the desktop real estate. The most common screen
resolution out there? 1366x768. I kid you not. IRC has it's many flaws, but
the clients still understood the meaning of good information density.

People seem to forget that chat is a communication medium first and foremost,
and not a multimedia based experience.

~~~
raesene6
Electron is the short answer to that. From what I've seen pretty much all the
"new wave" cross platform chat apps are based on electron and a lot of the
companies are emulating slack. In combination that leads to a lot very similar
looking programs.

------
problems
I disagree with the idea of allowing backup/restore of conversations defeats
forward secrecy. There's a big difference between decrypting past
conversations and decrypting chat logs. I have full control over my chat logs,
I can choose to delete them, not store them with some people, encrypt them
with a different password and rotate them monthly, etc.

Even Signal and other apps store all your messages on your device, optionally
locally encrypted.

Forward secrecy is so that you can't just steal the key and network traffic
and get _all_ past messages, regardless of whether or not I wanted to archive
them. And getting my live key doesn't mean getting all my archived logs.

~~~
Natanael_L
I said the same thing!

[https://news.ycombinator.com/item?id=13605810](https://news.ycombinator.com/item?id=13605810)

Worst case, make PFS without sync the default, but include a native feature
for pasting into a shared document (Etherpad style, hosted by Keybase) for
whatever your want to keep. Then you've got two spaces with different
expectations, matching their capabilities.

And for attached files, they'd be displayed in a list while the chat is
active, asking if you want to keep them in your keybase storage or let them
vanish from the servers when you close the chat (delete their session keys).

~~~
problems
That's an interesting idea. I think ultimately you need to trust the people
you talk to though if you're discussing something private with them.

There's no technical solution to copying and pasting the conversation - try as
you may, someone can always get a hook in there and dump the raw text out. Any
technical measure you take against this is just as effective as DRM - a total
half measure, vulnerable to everything from reverse engineering to the analog
hole. The only solution is a social one.

------
fiatjaf
> What if we're living in a simulation? > > Keybase offers no guarantees
> against sophisticated side-channel attacks by higher-level entities.

ahahah, that's great!

------
primigenus
Hey malgorithms, this is great! I check the Keybase website every month or so
for updates and discovered yesterday that there's a new logo, replacing the
old thieving dog/ferret/raccoon with what appears to be a person's head with
their hair in a bun holding a key. Can you give some background on the
thinking behind this logo redesign? (Sorry it's not a question about chat, per
say)

~~~
accountface
Looks like it's a bit more friendly than some creepo raccoon

~~~
Nadya
Not only that - but a "thieving raccoon" helps reinforce the mistaken belief
that crypto is only for criminals. While I don't think that had a "serious"
effect or that people would read so heavily into a logo - it never sat well
with me. While I didn't notice the logo change until the GP post pointed it
out, I like the new one better.

------
coffeemug
That looks spectacular, can't wait to try it tonight. Hope this software can
overcome the network effects of existing systems. End-to-end encryption is
really, really important, but I feel like the real game changer is being able
to instantly chat with anybody online by just typing in their username.

------
alexkadis
Is it technically possible for Signal/Whatsapp to use Keybase keys in lieu of
phone numbers? If so, how practical would it be to add this as an option?

~~~
edraferi
I wonder how that would work with key rotation. Those chat services do a lot
of key management for you during a conversation, while Keybase is more focused
on long-lived keys.

~~~
edraferi
Found the relevant part of the post:

How Keybase solves this problem:

End-to-end encrypt all messages, but only "exploding messages" (coming soon)
will have FS. Therefore, your history will survive, encrypted, except for the
messages you choose.

------
chias
This is fantastic! I've been playing with it for a bit, and I'm loving it.

Question: since (encrypted) chat history is stored on keybase servers, does my
chat history count against my KBFS quota? If so, how do I clear it out? If
not, how do you mitigate against someone building a pseudo-FS on top of chat
messages for free unlimited storage?

------
adrianpike
Wow, this is awesome! A colleague and I were just recently discussing how
badly we feel the need for "encryption-first" chat software is - not tools
that sell it as a feature, but tools that make it _the_ feature.

Great work KB team!

------
hollander
This looks great, but if you want this to work, you need Android and iOS
support. When is that going to happen? Is that going to happen?

~~~
vinay427
> When our mobile apps launches, your phone will be a great device for
> provisioning and chatting.

Apparently it is coming.

------
pfraze
Thoughts from skimming the post:

Using all of the associated accounts across services to do user lookup is
really quite cool, and the CLI integration and public broadcasts look very
fun. Nice work there.

Multi-device key management is one of the hardest tasks for end-to-end, but
that's been taken seriously from the beginning by keybase, and I'm leaning
toward optimism. The UX decisions for forward secrecy seem pretty reasonable
as well.

------
Nadya
It'll be interesting to see if I ever receive messages from my fellow HN users
now that it's a bit easier to do so without navigating my website to find my
email address. I doubt it, but still.

I'll give it a run when I get home today. Since few of my contacts use
Keybase, or would have any interest in Keybase, this is less "Wow! Awesome!"
for me than the release of KBFS was - but it's still pretty cool.

I love how Keybase is expanding to be more than just a collection of "internet
personas verified by a PGP signature" and am interested in what else you guys
may have in the works.

E: Updated my profile info to make mention of Keybase Chat. And I don't even
have it yet. ;)

------
Walkman
This is the last time I spam a Keybase thread with invite codes :)

[https://keybase.io/inv/6953921e2f](https://keybase.io/inv/6953921e2f)

[https://keybase.io/inv/637bfd5d42](https://keybase.io/inv/637bfd5d42)

[https://keybase.io/inv/20be67f672](https://keybase.io/inv/20be67f672)

~~~
mjewkes
Do you have any more? Looking for an invite :)

~~~
lwhsiao
[https://keybase.io/inv/1c385d4ff6](https://keybase.io/inv/1c385d4ff6)

~~~
philip1209
[https://keybase.io/inv/72ee2e6801](https://keybase.io/inv/72ee2e6801)

I have a lot more, message me if you want one.

~~~
kintamanimatt
Likewise - I have a handful left. Anyone that wants an invite, find me on
Twitter if you want one!

~~~
johnhenry
First come first serve:
[https://keybase.io/inv/ae76df3488](https://keybase.io/inv/ae76df3488). I have
more if you message me.

~~~
blu2th
Keybase invite code. Pretty pls :)

~~~
johnhenry
[https://keybase.io/inv/820655c2a8](https://keybase.io/inv/820655c2a8).
Hmmm... is there a way to directly message one to you?

------
exabrial
I love keybase. I am waiting for a password manager solution from them

~~~
chungy
You could do it yourself using /keybase/private :-)

But I'd agree, a good UI provided by keybase would be lovely.

~~~
OJFord
Hey, whaddyaknow, that's what I did with Passbase ;) [0]

Well, not the UI part. And it's probably buggy as hell* - be warned - but It
Works For Me ^TM. (And issues/PRs more than welcome!)

[0] - [https://github.com/OJFord/passbase](https://github.com/OJFord/passbase)

* A big part of my motivation to do it was as a toy thing to learn some Rust, so it has all the hall marks of someone kludging around trying to learn something new. Critiques/"WTH ARE YOU DOING"/PRs with style improvements also welcome :)

~~~
ardaozkal
I use pass, of [http://passwordstore.org](http://passwordstore.org)

While I didn't try it myself (I just run my own git server), symlinking the
directory of that to kbfs (or maybe just create a git repo there and make some
magic to locally push stuff) should work.

~~~
OJFord
I saw that recently, after the post on here about the 'pass compatible
password management for teams', I forget what it was called.

It's actually more along the lines of the latter I wanted to do with Passbase
- seeing as it's already using KBFS it would be (relatively) easy to do
password sharing, just throw it in a shared private folder.

I was thinking more of the shared pizza-order password with room-mates, or
groceries, bill-paying - whatever - than professional teams, though.

I digress, yes, I'd definitely recommend using Pass over anything I've cobbled
together!

~~~
intothev01d
I think it was probably 'gopass',
[https://news.ycombinator.com/item?id=13551692](https://news.ycombinator.com/item?id=13551692)

------
philip1209
This could be a great way to securely alert Github project maintainers about
security vulnerabilities.

------
ryanmarsh
The "forgot your password" flow on keybase.io explicitly tells you whether or
not the email address you enter has a valid account. Is this ok?

------
martyvis
111MB for the setup download (at least on Windows)?! What's in it apart from a
chat app and encryption library?

~~~
hakanito
Without even clicking the link I'll guess it is an Electron app. So it comes
bundled with Chromium, hence the size

~~~
cjbprime
Yup.

------
homakov
How you managed to make Keybase.dmg 72MB when any Electron app is 120+?

------
bballard1337
This is the reason I am so excited about Keybase. I can't comment on the
integrity of the software but the vision is there. All encrypted everything is
where I see the future of the internet.

Does anybody know if they are working on a mobile app for at least the chat
system? I don't necessarily need the whole desktop app on the phone but
encrypted chat would be fantastic. (Currently using Signal but would be open
to using everything keybase in the future)

~~~
etherealG
Yes, mobile apps are on the way, it mentions in the faq

------
mxuribe
Sorry, I'm a little confused: is this a chat app client that still requires a
central server to route messages around?

~~~
cjbprime
That's right. The messages are stored encrypted on a central server which
can't read them.

~~~
mxuribe
Thanks for confirming.

I've been using the riot.im client over the matrix protocol, and while not yet
the most mature comms stack, I appreciate that it is not based on a
centralized server (i.e. i can and do self-host). My hope is that keybase can
be made to be decentralized and that i can self-host. ..Or that its good
features can be merged somehow with the best features of the matrix protocol.

~~~
Arathorn
i'm wondering which features would ideally make it over to Matrix? it feels
there is parity already (other than perhaps defining PFS messages as
'exploding'?)

~~~
mxuribe
Good question/point...I guess I should have dived into the features of both
and seen for myself (instead of assuming that the shiny new thing has better
features)! ;-)

------
daurnimator
Why doesn't this seem to be in a release? The last release of the client was
back in October:
[https://github.com/keybase/client/releases/tag/v1.0.18](https://github.com/keybase/client/releases/tag/v1.0.18)

~~~
cjbprime
It's in our released downloads at
[https://keybase.io/download](https://keybase.io/download)

We don't use GitHub releases often.

~~~
daurnimator
[https://keybase.io/download](https://keybase.io/download) just points back to
github for source.

You also haven't tagged anything more recent than that github release:
[https://github.com/keybase/client/tags](https://github.com/keybase/client/tags)

If you're not tagging or doing github releases, is there a list of 'stable'
versions that distros should consider packaging?

~~~
cjbprime
No, sorry. We're still making a new release almost every day, and we have no
stable branches, only master.

We'd prefer people to just install our own package.

~~~
angry_octet
I don't suppose you could tell us where the version number comes from then? I
looked at opt/keybase/version of the 'now' package (20170214-1250 UTC) you
host for Linux x64 and it says v1.4.12. What is the git commit reference for
that version?

------
rabidrat
I would love to have a linux curses client for encrypted chat. Something that
irssi can connect to, perhaps?

~~~
zokier
Something like irssi-otr? [https://github.com/cryptodotis/irssi-
otr](https://github.com/cryptodotis/irssi-otr)

~~~
rabidrat
That's great, but I also need a web client for friends who can't use irssi.

~~~
stass
Can't they use pidgin/gtalk? Gtalk works with bitlbee/irssi-otr.

~~~
rabidrat
They can't install anything on their computer, so no pidgin. Is it possible to
use the web interface with Gtalk without having your personal email open?

------
SamPatt
I don't use Keybase on a regular basis yet but every time they announce
something new I check it out again, and every time I'm impressed. I'm not sure
what it will take for me to make the switch and use it regularly but if they
keep this up I have no doubt it'll happen.

------
zokier
I'm not really sure about Keybase accumulating more and more services instead
of focusing on integrating to existing ones. One of the initial attractions of
Keybase (to me at least) was how the system was very simple, transparent, and
not really dependent on keybase.io.

~~~
jpetso
Keybase is a VC-funded startup, and this is part of the standard playbook for
such companies. Expect more of it from Keybase, and expect it for any other
company whose investors are still looking to get a payout on their millions of
dollars.

------
johnflan
It seems that this app and Slack are hugely influenced from the iPad style of
app design. Why can't we have a window per chat session on the desktop and why
do desktop users get wrapped apps? Is this an indication of the lack of
perceived importance of the desktop?

------
EGreg
Hey Keybase, I have a question for you guys:

What if we launch our own apps and websites that would allow users to claim
they are X on website Y. Do you have a way for them to use their
public/private key pair from their keybase clients, to sign these claims?

I do not necessarily want these claims to be publicly available to everyone on
website Y. I want them to be privately transmitted between website A and B, so
people can't be tracked between domains.

------
IanCal
Argh! Please remove the typing animation! It's flipping between one two and
three lines jerking the whole screen around on my phone.

------
kseistrup
Shameless plug: Before the Keybase [GUI] Chat was invented I hacked together
this simple text-based client that uses twtxt formatted files to store private
chats between two keybase users:

[https://github.com/kseistrup/kbmsgr](https://github.com/kseistrup/kbmsgr)

PS: It doesn't use the Keybase chat API, and it never will.

------
woodruffw
Awesome! I've been using this for the past few weeks on and off, and the user
experience is very pleasant.

Now that I know about the JSON API for chatting, I'll have to add it to my
unofficial Ruby interface[1].

[1]: [https://github.com/woodruffw/keybase-
unofficial](https://github.com/woodruffw/keybase-unofficial)

------
Splendor
So how does this compare to Slack's free tier? Is there a user limit, channel
limit, message history limit, etc.?

~~~
ardaozkal
Think of this chat system as something similar to whatsapp or telegram. There
are groups, and not channels. User limit, afaik, is not hardcoded. Message
history afaik, also has no limit.

------
amingilani
If you need an invite, hit me up on Twitter! If you're trying to find a random
person on the internet to chat with and test this out, hit me up on Keybase!
:)

Use my HN username.

------
kristianp
Why does the page have 112px of top padding? Seems like a waste of space.

    
    
       body {
           overflow-x: hidden;
           padding: 112px 0 50px;
       }

~~~
fbis251
It's because 111 was not enough and 113 is excessive.

------
perrohunter
Do you think this could end up the same way OpenID did?

------
Dangeranger
Saw this yesterday in the app, tried to use it and it failed.

Works like a charm today.

This should be very nice for ad-hoc secret exchange.

------
james_pm
The --public broadcast messages are interesting. Is a Twitter-style service
part of the plans?

------
mikaelf
Played around with the chat in beta and it's super neat! Keybase really is
keybae.

------
brett40324
Key gen less than two minutes from phone - all around great UI signing up!

------
warcode
I tried to set the proxy setting but it still does not work?

------
wslh
If I don't have a keybase account, can I use this app?

~~~
NickBusey
No. The whole point of the app is to have a verifiable chat with people whom
you have also verified the identity of. Without an account, this verification
is not possible.

~~~
wslh
This should be clear in the first blog line, it is not a public service and it
says "TL;DR: Install it".

~~~
wslh
I didn't realize that keybase is open to everyone now. The downvotes gave me
the information subliminally.

------
lightning1141
I think this tool is very cool.

------
fiatjaf
What is this paper key? I don't want a paper key! Now I have to write this and
keep it in my pocket? No!

~~~
mynameisvlad
It's a backup key in case you lose access to all your other devices.

That way, you don't have to rekey all your services if you lose it and access
to all your devices, like I did.

Protip: Use the paper key. Keep it safe. You never know when you'll have to
use it.

~~~
fiatjaf
But I can still rekey everything using my master password and the encrypted
private key is still stored on keybase's servers, right? (or something like
that)

I'm going to lose the paper key just like I lost my 5 BTC wallet just before
the great Bitcoin boom of 2013.

~~~
mynameisvlad
Depends on how you set up the key initially. I don't know if it's still
possible, but at some point in the past you could specify your own master key
that isn't stored on their servers. My account was one of those, so once I
lost access to my computers/paper key, I also had lost access to the PHP key
and therefore had to essentially start fresh.

The only pain is that you have to re-verify all your services.

------
rbcgerard
iphone app please! until i can use it on my iphone its not that useful...

------
misiti3780
this looks like a great codebase! thanks so much for open sourcing this.

------
lewisl9029
This looks absolutely amazing!

Any plans for a web client for chat?

~~~
homakov
Should be easy since main app is in electron

~~~
auscompgeek
It's pretty hard to do crypto securely in a browser though without depending
on browser extensions and whatnot.

~~~
homakov
I made a research on this
[https://sakurity.com/blog/2015/07/28/appcache.html](https://sakurity.com/blog/2015/07/28/appcache.html)

I'm fine with having a less secure web version and i know its limitations

