Keno's blog

Subscribe this blog's RSS feed

18 July 2023
Back up all of signal-desktop's media files

I don't own a smartphone, so I need to use Signal's desktop client (registering my phone number with signal-cli) for my encrypted instant messaging needs. This situation kind of sucks, as Signal's desktop client is more of an afterthought and is missing many crucial features. One annoyance with it is that you can only view the recent media of a conversation in the desktop client. Pictures and videos that you received or sent some time ago are not visible. I worked around this problem by writing a Python script that directly accesses Signal's database and data store to dump all of the images and videos in a directory, grouping them by conversation.

Continue reading…

29 January 2023
Encrypted incremental backups in QubesOS with BorgBackup

The official backup tool of QubesOS does not support incremental backups. Just to backup my around 180GB of data to an external hard drive, it takes over 7 hours. Incremental backups are much faster. Borg is my preferred backup tool, supporting encrypted incremental backups to a disk or to an SSH server. I make encrypted backups to borgbase.com and created a qrexec service for this purpose. It enables remote, encrypted, incremental backups even of network-isolated qubes. This blog post describes my approach.

Continue reading…

14 December 2022
How EFAIL broke end-to-end encrypted email

In my network security lecture, my group was tasked with creating a short video explaining the EFAIL vulnerability, which tricked email clients into sending decrypted S/MIME or OpenPGP message to an adversary. We shamelessly ripped off the format of the lovely YouTube channels Numberphile and Computerphile. I think the result turned out quite good, so I'm sharing it here for anyone interested.

Continue reading…

01 December 2022
Using Unix pass in Qubes OS

The Unix program pass is my password manager of choice. It keeps your passwords as gpg-encrypted files in the directory ~/.password-store. There also exists a dmenu script called passmenu that can be bound to a keybinding to easily access your passwords. To get this to work in Qubes OS, you need to put in some work. In this blog post, I share the qrexec service I'm using for this purpose.

Continue reading…

28 November 2022
Writing a Gemini server in C

A few days ago, my brother introduced me to the internet protocol Gemini. It's basically a very lightweight alternative to the web, and while I'm not sure how much of a following it will ever have, I like its fundamental concepts. Particularly, I like that implementing a server for this from scratch is actually manageable for a single person. So that's what I started doing.

Continue reading…

16 October 2019
My Experience of Writing a Bachelor’s Thesis in Physics

I’ve been incredibly annoyed at how it was impossible to find some examples for a finished thesis, which is why I have decided to publish mine online. You can download it by clicking on this link. I got a grade of 1,1 on the thesis (1,0 by the primary supervisor and 1,3 by the secondary supervisor). The full source code is available on my GitLab.

Continue reading…