From 09e274a48115bcb6c67c13c2e5b3086986797baa Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Sun, 31 Oct 2021 22:36:32 -0500 Subject: [PATCH] wtf every post was in june --- content/about/_index.md | 3 +- content/about/setup.md | 5 +- content/posts/2018-05-28-web-apps.md | 2 +- content/posts/2021-06-17-tracking-links.md | 2 +- ...cryption-useless-without-client-freedom.md | 204 ------------------ layouts/partials/post-list.html | 2 +- layouts/partials/rel-date.html | 3 - layouts/posts/single.html | 2 +- 8 files changed, 9 insertions(+), 214 deletions(-) delete mode 100644 content/posts/2021-08-29-e2e-encryption-useless-without-client-freedom.md delete mode 100644 layouts/partials/rel-date.html diff --git a/content/about/_index.md b/content/about/_index.md index 4f97412..f9fcc36 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -12,7 +12,7 @@ Hi there! I'm a recently-graduated CS bachelor from the University of Minnesota, - [**Leanshot**][6], a Linux screen capture tool. - [**Garbage**][7], a CLI interface to the trash can API. -More can be found on my public [Gitea][2]. +More can be found on [this page][12] or my public [Gitea][2]. I've also started making an increased effort at using and supporting [FOSS][8], and other software that're not predatory towards users. As a part of this effort, I'm also self-hosting and rewriting some of the services and software that I use regularly. Find out what I'm using [here][9]. @@ -35,3 +35,4 @@ I'm also an avid rhythm game player and beatmap creator, mostly involved with th [9]: setup [10]: pgp.txt [11]: https://www.sift.net/ +[12]: ../projects diff --git a/content/about/setup.md b/content/about/setup.md index 023a289..ef1f57a 100644 --- a/content/about/setup.md +++ b/content/about/setup.md @@ -9,13 +9,13 @@ List of software and services I use and endorse, mostly FOSS. ## desktop - [**Arch Linux**](https://archlinux.org/) OS with rolling releases. -- [**chezmoi**](https://www.chezmoi.io/) Dotfile manager that allows for variables across machines. +- [**Home manager**](https://github.com/nix-community/home-manager) Dotfile manager. - [**Firefox**](https://www.mozilla.org/firefox) Browser. - [**Evolution**](https://wiki.gnome.org/Apps/Evolution) Email + calendar client. ## development -- [**Sublime Text**](https://www.sublimetext.com/) Text editor. +- [**Neovim**](https://neovim.io/) Text editor. ## server @@ -35,6 +35,7 @@ List of software and services I use and endorse, mostly FOSS. - [**ProtonMail**](https://protonmail.com/) Encrypted email. - [**Signal**](https://signal.org/) Encrypted chat. +- [**Element**](https://element.io/) Federated chat provider. ## games diff --git a/content/posts/2018-05-28-web-apps.md b/content/posts/2018-05-28-web-apps.md index 3b01230..0308b6a 100644 --- a/content/posts/2018-05-28-web-apps.md +++ b/content/posts/2018-05-28-web-apps.md @@ -1,7 +1,7 @@ +++ title = "web apps" date = 2018-05-28 -tags = ["computers", "web", "rant", "things-that-are-bad"] +tags = ["computers", "web", "things-that-are-bad"] languages = ["javascript"] +++ diff --git a/content/posts/2021-06-17-tracking-links.md b/content/posts/2021-06-17-tracking-links.md index 72a4633..eaee11e 100644 --- a/content/posts/2021-06-17-tracking-links.md +++ b/content/posts/2021-06-17-tracking-links.md @@ -1,7 +1,7 @@ +++ title = "email tracking links" date = 2021-06-17 -tags = ["email", "rant", "computers", "things-that-are-bad", "privacy"] +tags = ["email", "computers", "things-that-are-bad", "privacy"] +++ You probably get emails every day, and spend a lot of time reading them. And diff --git a/content/posts/2021-08-29-e2e-encryption-useless-without-client-freedom.md b/content/posts/2021-08-29-e2e-encryption-useless-without-client-freedom.md deleted file mode 100644 index c8542e4..0000000 --- a/content/posts/2021-08-29-e2e-encryption-useless-without-client-freedom.md +++ /dev/null @@ -1,204 +0,0 @@ -+++ -title = "why end-to-end encryption is useless without client freedom" -date = 2021-08-29 -draft = true -tags = ["computers", "privacy"] -mastodon = "TODO" -+++ - -Today, many companies claim to provide "end-to-end encryption" of user data, -whether it be text messages, saved pictures, or important documents. But what -does this actually mean for your data? I'll explain what "non-end-to-end" -encryption is, and why end-to-end encryption is important, and also why it's -also absolutely meaningless to have in some circumstances. - -> If you just want to read about end-to-end encryption, click [here][1]. -> Otherwise, I'll start the story all the way back to how computers talk to -> each other. - -a game of telephone in a noisy room ---- - -Computer networks basically operate like a bunch of people yelling at each -other at a public gathering, where everyone is kind of hearing everyone else's -messages, but only really paying attention to ones addressed to them. Let's say -I wanted to grab some Chipotle with my friend Nathan. I'd basically yell "HEY -NATHAN, WANNA GET CHIPOTLE?" over this public network, where Nathan would see -his name, identify it as a message that is intended for him, and then reply -accordingly. Notably, everyone _else_ listening to the network also hears this, -and knows that I'm itching to get some Mexican food. - -That's not even the worst part, because how does your computer connect to the -internet? Your router hears your computer's message, and passes it through a -bunch of middlemen, who all do this broadcasting through some local network, -until it gets to wherever your computer wanted to talk to in the first place. -But in order for the middlemen to pass on the message, they'd have to hear the -message, so now my lunch has become a public gathering known to everyone who's -heard or passed on the message. - -encryption saves the day ---- - -That's where **encryption** comes in. Encryption lets me change the message to -something that the middlemen and everyone else listening on the network can't -understand, but the person that I actually wanted to send the message can turn -it back into the original. This way, I can be sure no one except Nathan got the -memo of where we were grabbing lunch. - -So the way encryption's being used here is known as _transport_ encryption, -since I'm _sending_ a message somewhere. Transport encryption is basically -standard practice now through a technology called **transport-layer security**, -or TLS, which is used by almost everything that talks to the internet, your -browser, your email client, your phone. If it's not using TLS, it's considered -insecure. - -If you're thinking ahead, you'll know that the other place encryption can be -used is **encryption at rest**. This is for documents and pictures that need to -sit somewhere in storage for a while but shouldn't be visible to everyone. Most -business computers use _full-disk_ encryption, so their employees' data don't -get compromised. - -When you put these together, your data is actually pretty safe from prying -hands. If I put some tax documents on Google Drive, it'll use _transport_ -encryption to make sure no one steals my identity while I'm sending it, and -encryption _at rest_ to make sure someone breaking into Google won't be able to -just pull the hard drive out and read the files off it. - -two halves don't equal a whole ---- - -It turns out just putting together these two types of encryption isn't enough. -There's someone else we haven't protected ourselves against in this case, which -is the party responsible for decrypting the transported data and then -re-encrypting it at rest. Google can read all the documents I upload to Drive -after decrypting it from transit and before encrypting it to disk. Facebook can -read all the messages I send to my friends after decrypting it from transit and -before re-encrypting it to send to my friends. - -And this is a lot smaller of a problem than it was before! Companies usually -have privacy policies to protect user data from being used against what they -expect, and many industries have laws like [HIPAA][hipaa] and [FERPA][ferpa] to -make sure the people handling your data don't leak it. - -But we don't have to just _trust_ them on that, because we already _know_ how -to protect data from middlemen who are simply taking a message and sending it -somewhere else unchanged, like the ISPs from our networks. We just need _more_ -encryption! - -**End-to-end encryption** is just encrypting the data in a way that the only -parties allowed to read the data are the people it was intended for. Password -manager services like 1Password and Bitwarden use end-to-end encryption so that -they're not decrypting your passwords when you store them online, they're just -storing the encrypted data as-is, and then handing it back to your device which -then decrypts it offline. [Signal][signal] famously provides end-to-end -encrypted chat, so that no one, not even the government[^1], will be able to -read the messages you send if they're not the intended recipient. - -it's still not enough {#not-enough} ---- - -End-to-end encryption seems like it should be the end of the story, but if -there's one thing that can undermine the encryption, it's the program that's -actually performing the encryption. Cryptographic algorithms usually work in -terms of clients, but unless you want to sit there adding points on an elliptic -curve in a finite field, that client is your device or your browser, not you. - -The big problem here is how do you know your device is actually performing the -encryption? How do you know the apps on your phone are only sending the data it -needs to send, and not a lot more? Traditionally, independent researchers or -bounty hunters may reverse-engineer client software and discover that they -didn't quite operate as advertised, but we can't just rely solely on people -from reddit with too much time on their hands to uphold security. - -Imagine if Google Drive was actually a physical vault service and the website -was just a person you would hand your valuables to to keep safe. They could say -"we're keeping this in military-grade security," but unless you watched what -they did, how do you know they didn't cheap out on you and just shove it under -the mattress where hackers breaking in could just steal everything? - -Same applies to Apple's new child protection system. Their [white paper][csam] -goes in painstakingly great detail about how photos are protected by -"multi-layer" encryption before it's able to be decrypted by Apple. But typical -users are not allowed to pick apart your iPhone to make sure it's encrypting -everything correctly, or that the perceptual hashing algorithm it uses to -filter pictures isn't just trivially flagging everything for manual review. - -WhatsApp data is stored unencrypted to the running application in order to -store a database of messages locally. Additionally, this database can be backed -up to iCloud, and according to [WhatsApp themselves][whatsapp], that data is -stored unencrypted, which means that it may benefit from _transport_ security -and _encryption at rest_ independently, but ultimately the people moving data -around are still able to read it. - -I've also seen discussion of undermining end-to-end encryption in a [ghost -proposal][ghost], a method that abuses multi-party encryption to add in a -"ghost" listener, which can be the company or the government or anyone else -that the vendor chooses. In theory, this backdoor could be prevented by an -open-sourced client that properly checks each recipient to make sure it's the -expected person before encrypting the message and sending it. - -Given that end-to-end encryption solely exists because trusting companies that -run services is insufficient, it's safe to say that trusting companies to make -client software that act in the interest of their users is just as useless as -trusting companies to make services that act in the interest of their users. - -what can i do? ---- - -Although inconvenient, trusting different vendors for different pieces of this -technological assembly line is the best way to prevent it from becoming abused. -Many software use **open protocols**, communication schemes that are agreed -upon and freely available to everyone[^2]. Then, independent parties develop -and maintain lots of different software that all speak the same protocol, so if -you don't trust a particular service to have an app that doesn't encrypt its -data properly, you can just choose to use a different one by someone who you -trust more. - -Email is a famous case of this: if I sign up for an email account with Outlook, -I don't have to use a proprietary Outlook client. I _could_ if I wanted, and I -imagine that there may be some features that Microsoft has added specifically -to the Outlook website and apps, but since they claim to conform to the _open_ -email specifications, I can just choose to use a different one. - -On top of that, email is _federated_, which means that if I didn't like -Outlook's services, I could switch to a different provider and _still_ be able -to chat with people on Outlook, unlike many of today's siloed services where I -can't just message people on Facebook if I only have an account on Twitter, -since they don't talk to each other using the same protocol. - -[Matrix][matrix] is a new chat network that also follows in the same spirit as -email, but also has the benefits of multi-party encryption. There are multiple -apps and servers, and servers can federate with each other using an open -protocol. I would strongly recommend people who are interested in privacy to -consider it. - -conclusion ---- - -Why care? This might just seem to be some superficial political concern by -privacy advocates who warn of dangerous edge cases that only matter to people -whose rights are being violated by some dystopian government. Well, to put it -bluntly, that dystopia is now, and it's not just the government we should be -afraid of, but tech megacorps who possibly have even more power. - -We live in a digital world, so it's important to know how it works and who's in -control. - -[^1]: Governments and other parties with enough computational resources may - still be able to undermine specific levels of security, or just [threaten you - personally][wrench] until they get what they want. - -[^2]: Large corporations typically still have majority representation in the - committees that decide on the most impactful specifications, but these are - still made available to researchers who can analyze and critique it. - -[1]: {{< ref "#not-enough" >}} - -[csam]: https://www.apple.com/child-safety/pdf/CSAM_Detection_Technical_Summary.pdf -[ferpa]: https://en.wikipedia.org/wiki/Family_Educational_Rights_and_Privacy_Act -[ghost]: https://www.internetsociety.org/wp-content/uploads/2020/03/Ghost-Protocol-Fact-Sheet.pdf -[hipaa]: https://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act -[signal]: https://signal.org/ -[wrench]: https://xkcd.com/538/ -[matrix]: https://matrix.org/ -[whatsapp]: https://faq.whatsapp.com/iphone/chats/how-to-back-up-to-icloud diff --git a/layouts/partials/post-list.html b/layouts/partials/post-list.html index 25b9081..944ebce 100644 --- a/layouts/partials/post-list.html +++ b/layouts/partials/post-list.html @@ -11,7 +11,7 @@ Posted - on {{ partial "rel-date" .Date }} + on {{ .Date.Format "Mon Jan 02, 2006" }}
diff --git a/layouts/partials/rel-date.html b/layouts/partials/rel-date.html deleted file mode 100644 index b9629e2..0000000 --- a/layouts/partials/rel-date.html +++ /dev/null @@ -1,3 +0,0 @@ - - {{ .Format "Mon Jun 02, 2006" }} - diff --git a/layouts/posts/single.html b/layouts/posts/single.html index 1015472..930b893 100644 --- a/layouts/posts/single.html +++ b/layouts/posts/single.html @@ -5,7 +5,7 @@ Posted - on {{ partial "rel-date" .Date }} + on {{ .Date.Format "Mon Jan 02, 2006" }} - {{ .ReadingTime }} min read