figbert.com-website

[ACTIVE] the website and home of figbert on the clearnet
git clone git://git.figbert.com/figbert.com-website.git
Log | Files | Refs | README | LICENSE

index.md (8766B)


      1 +++
      2 title = "How to Replace Keybase in 3 Easy Steps"
      3 date = 2020-07-03
      4 updated = 2021-04-12
      5 [extra]
      6 type = "post"
      7 +++
      8 
      9 Ever since [Keybase was acquired by Zoom][keybase-joins-zoom], a
     10 [company][zoom-security-one] [with][zoom-security-two]
     11 [a][zoom-security-three] [very][zoom-security-four]
     12 [bad][zoom-security-five] [history][zoom-security-six]
     13 [with][zoom-security-seven]
     14 [security][zoom-security-eight]/[privacy][zoom-security-nine],
     15 [people wanted an alternative][zoom-security-ten]. There have been a
     16 few different alternatives proposed: this is ~~the best~~ mine.
     17 
     18 <!-- more -->
     19 
     20 ## What is Keybase?
     21 
     22 Before we talk about replacing [Keybase][keybase], we should have a
     23 good idea of what Keybase actually is. It's main features are as
     24 follows (ordered as on the website):
     25 
     26 * E2EE chats and messaging (people and teams).
     27 * Cryptographic identity verification from around the net.
     28 * [KBFS][kbfs] (Public signed file hosting, private E2EE file storage
     29 w/ sharing, [Static site hosting??][kbfs-static])
     30 * Git repositories? Crypto? [An alternative to PGP?][saltpack]
     31 
     32 ## Previous Attempts to Replace Keybase
     33 
     34 I'm not the first person to try this, obviously. Some brave folks have
     35 tried to build Keybase alternatives, such as [keys.pub][keys.pub] and
     36 the brand-new [Keyoxide][keyoxide]. I've tried both, but found that
     37 though they both are good in their own right, they are not the
     38 solutions that I am looking for.
     39 
     40 ## OK Time for the Steps
     41 
     42 ### Step #1: Chat/Messaging
     43 
     44 There are a few great pre-existing options for encrypted messaging:
     45 [Signal][signal], [ProtonMail][protonmail] if you want to go full
     46 email, [Telegram][telegram], and [WhatsApp][whatsapp]. However, they
     47 all have their problems (though I use the first two on a daily basis).
     48 Signal requires a phone number, and is more of an iMessage/text
     49 replacement than a Slack-style chat app. Protonmail is literally not
     50 chat – it's email. Telegram is (debatably) [not][telegram-security-one]
     51 [secure][telegram-security-two]. If you use WhatsApp for security you
     52 might be crazy – I only use it because it's *the way* to communicate
     53 with people in the Middle East and Africa.
     54 
     55 Instead, I would recommend you use [**Matrix**][matrix]. Matrix is an
     56 "open network for secure, decentralized communication," and it's the
     57 perfect replacement for Keybase's chat ~~and I would argue most other
     58 chat apps too~~. It utilizes E2E encrypted messaging, and can be
     59 self-hosted as well ~~or if you're cheap like me just get your friend
     60 to host~~.
     61 
     62 In addition to a Matrix server, you also need a client. For this, I
     63 recommend [**Element**][element] – though [Nio][nio], once stable,
     64 will almost surely be my go-to. Element is a beautiful Matrix client
     65 with a bunch of awesome features, including Slack-like integrations,
     66 and apps for pretty much every major platform (Linux, MacOS, Windows,
     67 iOS, Android, and a web client). ~~Plus it looks a lot like Discord.~~
     68 
     69 ### Step #2: Identity verification
     70 
     71 Replacing Keybase's [original function][keybase-archive] is probably
     72 the most difficult part of this tutorial: cryptographically verified
     73 identity proofs is a great and innovative idea. I would swap this out
     74 with an [**IndieWeb**][indieweb] profile – one [part][h-card] of the
     75 larger [microformats][microformats] HTML structure. There are some
     76 pretty great tutorials out there (I would recommend [this
     77 one][kev-article] by the fantastic [Kev Quirk][kev] and [this
     78 one][brian-article] by [Brian Wisti][brian]), so I won't go into too
     79 much detail about exactly how to do that. However, it's important to
     80 note that though Kev recommends hiding your h-card with the
     81 `display: none;` property: [don't do that][invisible-metadata]. I just
     82 merged my about and contact pages onto my homepage, and added the
     83 microformats classes to my existing markup.
     84 
     85 {{ image(sources=["h-card.png"], fallback_path="h-card.png", fallback_alt="My Indieweb h-card") }}
     86 
     87 ### Step #3: File Storage
     88 
     89 Replacing KBFS is easy to do, but hard to get right. Swapping to
     90 [Google Drive][drive] is probably the move that most people would
     91 make, but that abandons the entire security/encryption aspect of
     92 Keybase. There's also [Dropbox][dropbox], but that has the same
     93 problems as above. [ProtonDrive][proton-drive] has potential, but it's
     94 not out yet.
     95 
     96 **EDIT:** ProtonDrive is now in beta for paying subscribers, but I am
     97 shifting away from the Proton ecosystem for other reasons and do not
     98 recommend it. More in a future blog post.
     99 
    100 Enter [**Syncthing**][syncthing]. [Nikita Tonsky][sync-article] wrote
    101 one of my favorite posts of all time about Syncthing – go read it. One
    102 reason Syncthing is so great is that it's not the same thing as KBFS
    103 or any of the other "Drive" solutions. Instead of being a file hosting
    104 system, it's a "continuous file synchronization program" – aka p2p.
    105 You have no data limits other than your storage and no third-party to
    106 worry about. Plus, sharing folders is also incredibly easy. Just read
    107 the article.
    108 
    109 ### Bonus Step #4: Video Calling
    110 
    111 It would be a shame to talk about text chat, or really any form of
    112 communication, in this new pandemic age without talking about video
    113 chat. After all, the whole reason I'm writing this article is because
    114 the new videocalling giant [Zoom][zoom]. So, how have I replaced Zoom
    115 and how does that relate to replacing Keybase? Well, Matrix happens to
    116 have a fantastic [Jitsi Meet][jitsi] [integration][jitsi-in-matrix].
    117 Plus, the folks over at Jitsi are [working on E2E encryption for their
    118 calls][jitsi-e2e]. I've integrated Jitsi Meet into my self-hosted
    119 instance of Matrix, and now all my videocalls are just that – mine!
    120 
    121 ## Summary
    122 
    123 * Swapped chat to Matrix and Riot.
    124 * Swapped identity verification to Indieweb.
    125 * Swapped file storage/sync to Syncthing.
    126 * Added videocalling to chat program via Jitsi.
    127 
    128 ## Conclusion
    129 
    130 Keybase is a great service, and the people who work there should be
    131 really proud of what they've built. However, given Zoom's aquisition
    132 of the company, the stability and security of the product have been
    133 called into question. So, ever one to hop on a hype train, I jumped
    134 ship. I'm really happy with my solution, and I'd love to hear your
    135 thoughts as well.
    136 
    137 [keybase-joins-zoom]: https://keybase.io/blog/keybase-joins-zoom
    138 [zoom-security-one]: https://medium.com/bugbountywriteup/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5
    139 [zoom-security-two]: https://theintercept.com/2020/03/31/zoom-meeting-encryption/
    140 [zoom-security-three]: https://twitter.com/c1truz_/status/1244737672930824193
    141 [zoom-security-four]: https://protonmail.com/blog/zoom-privacy-issues/
    142 [zoom-security-five]: https://www.axios.com/zoom-closes-chinese-user-account-tiananmen-square-f218fed1-69af-4bdd-aac4-7eaf67f34084.html
    143 [zoom-security-six]: https://twitter.com/nicoagrant/status/1268020841054269440
    144 [zoom-security-seven]: https://citizenlab.ca/2020/04/move-fast-roll-your-own-crypto-a-quick-look-at-the-confidentiality-of-zoom-meetings/
    145 [zoom-security-eight]: https://twitter.com/DanAmodio/status/1245329512889487361
    146 [zoom-security-nine]: https://twitter.com/Ouren/status/1241398181205889024
    147 [zoom-security-ten]: https://news.ycombinator.com/item?id=23103386
    148 [keybase]: https://keybase.io/
    149 [kbfs]: https://book.keybase.io/docs/files
    150 [kbfs-static]: https://book.keybase.io/docs/files#keybase-pub
    151 [saltpack]: https://saltpack.org/
    152 [keys.pub]: https://keys.pub/
    153 [keyoxide]: https://keyoxide.org/
    154 [signal]: https://signal.org/
    155 [protonmail]: https://beta.protonmail.com/
    156 [telegram]: https://telegram.org/
    157 [whatsapp]: https://www.whatsapp.com/
    158 [telegram-security-one]: https://news.ycombinator.com/item?id=6936539
    159 [telegram-security-two]: https://translate.google.com/translate?hl=en&sl=ru&u=http://habrahabr.ru/post/206900/
    160 [matrix]: https://matrix.org/
    161 [element]: https://element.io/
    162 [nio]: https://nio.chat/
    163 [keybase-archive]: https://web.archive.org/web/20140322062148/https://keybase.io/
    164 [indieweb]: https://indieweb.org/
    165 [h-card]: http://microformats.org/wiki/h-card
    166 [microformats]: http://microformats.org/
    167 [kev-article]: https://kevq.uk/how-to-create-an-indieweb-profile/
    168 [kev]: https://kevq.uk/
    169 [brian-article]: https://randomgeekery.org/post/2020/04/indieweb-h-cards/
    170 [brian]: https://randomgeekery.org/
    171 [invisible-metadata]: https://indieweb.org/antipatterns#invisible_metadata
    172 [drive]: https://www.google.com/drive/
    173 [dropbox]: https://www.dropbox.com/
    174 [proton-drive]: https://twitter.com/ProtonMail/status/1278389663078768641
    175 [syncthing]: https://syncthing.net/
    176 [sync-article]: https://tonsky.me/blog/syncthing/
    177 [zoom]: https://zoom.us/
    178 [jitsi]: https://jitsi.org/
    179 [jitsi-in-matrix]: https://matrix.org/blog/2020/04/06/running-your-own-secure-communication-service-with-matrix-and-jitsi
    180 [jitsi-e2e]: https://jitsi.org/blog/e2ee/