Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

Some minor bugs in Proton's new Authenticator app

· 1 comment · 900 words · Viewed ~1,140 times


QR code for a 10 digit TOTP.

I maintain a a test-suite for TOTP codes. It contains a bunch of codes which adhere to the specification, some of which stretch it to breaking point, and some that are completely invalid. These codes are a good starting point for checking whether a 2FA / MFA app works correctly. Proton have release a swish new authenticator app for Android, iOS, Mac, Linux and Windows. Sadly, their open source…

Security Flaws in the WebMonetization Site

· 4 comments · 750 words · Viewed ~421 times


Web Monetization The Web Monetization API allows websites to automatically and passively receive payments from Web Monetization-enabled visitors.

I've written before about the nascent WebMonetization Standard. It is a proposal which allows websites to ask users for passive payments when they visit. A visitor to this site could, if this standard is widely adopted, opt to send me cash for my very fine blog posts. All I need to do is add something like this into my site's source code: <link rel="monetization"…

Are Brother's Insecure Printers Illegal in the UK?

· 4 comments · 1,050 words · Viewed ~820 times


A padlock engraved into a circuit board.

Another day, another security disaster! This time, multiple printers from Brother have an unfixable security flaw. That's bad, obviously, but is it illegally bad? Let's take a look at details of the vulnerability: An unauthenticated attacker who knows the target device's serial number, can generate the default administrator password for the device. Recently, the UK brought in some laws aimed…

Reading NFC Passport Chips in Linux

· 8 comments · 900 words · Viewed ~37,078 times


A mocked up passport which looks like it has been issued by the fictional country of Wakanda.

For boring and totally not nefarious reasons, I want to read all the data contained in my passport's NFC chip using Linux. After a long and annoying search, I settled on roeften's pypassport. I can now read all the passport information, including biometrics. Table of ContentsBackgroundRecreating the MRZPython code to generate an MRZCan you read a cancelled passport?Cryptography and other…

Your Password Algorithm Sucks

· 18 comments · 600 words · Viewed ~1,924 times


Sorry but you password must contain and upper case letter, a number, a haiku, a gang sign, a hieroglyph, and the blood of a virgin.

There are two sorts of people in the world; those who know they are stupid and those who think they are clever. Stupid people use a password manager. They know they can't remember a hundred different passwords and so outsource the thinking to something reasonably secure. I'm a stupid person and am very happy to have BitWarden generate and save fiendishly complex unique passwords which are then…

What is a "Cyber Attack"?

· 4 comments · 750 words · Viewed ~506 times


Screenshot showing a journalist's incredulity at a report.

Terminology is hard. Computer terminology is even harder. Humans are animals who just love to classify things. We have a fundamental need in our delicious meaty brains to put things into conceptual buckets. This, I think, leads to some unfortunate consequences when our categories don't match up with other people's categories. For example, take this news story and this journalist's response to…

That's Not How A SIM Swap Attack Works

· 5 comments · 850 words · Viewed ~1,236 times


A padlock engraved into a circuit board.

There's a disturbing article in The Guardian about a person who was on the receiving end of a successful cybersecurity attack. EE texted to say they had processed my sim activation request, and the new sim would be active in 24 hours. I was told to contact them if I hadn’t requested this. I hadn’t, so I did so immediately. Twenty-four hours later, my mobile stopped working and money was wit…

FobCam '25 - All my MFA tokens on one page

· 3 comments · 1,000 words · Viewed ~985 times


A padlock engraved into a circuit board.

Some ideas are timeless. Back in 2004, an anonymous genius set up "FobCam". Tired of having to carry around an RSA SecurID token everywhere, our hero simply left the fob at home with an early webcam pointing at it. And then left the page open for all to see. Security expert Bruce Schneier approved of this trade-off between security and usability - saying what we're all thinking: Here’s a guy w…

How to prevent Payment Pointer fraud

· 9 comments · 1,000 words · Viewed ~705 times


Web Monetization The Web Monetization API allows websites to automatically and passively receive payments from Web Monetization-enabled visitors.

There's a new Web Standard in town! Meet WebMonetization - it aims to be a low effort way to help users passively pay website owners. The pitch is simple. A website owner places a single new line in their HTML's <head> - something like this: <link rel="monetization" href="https://wallet.example.com/edent" /> That address is a "Payment Pointer". As a user browses the web, their browser takes …

Towards a test-suite for TOTP codes

· 11 comments · 1,250 words · Viewed ~7,061 times


Screenshot showing a QR code and numeric codes.

Because I'm a massive nerd, I actually try to read specification documents. As I've ranted ad nauseam before, the current TOTP spec is irresponsibly obsolete. The three major implementations of the spec - Google, Apple, and Yubico - all subtly disagree on how it should be implemented. Every other MFA app has their own idiosyncratic variants. The official RFC is infuriatingly vague. That's no…

Using the Web Crypto API to Generate TOTP Codes in JavaScript Without 3rd Party Libraries

· 2 comments · 750 words · Viewed ~725 times


A chunky wristwatch showing the time and a selection of 6 digit codes and their corresponding entities.

The Web Crypto API is, thankfully, nothing to do with scammy cryptocurrencies. Instead, it provides access to powerful cryptographic features which were previously only available in 3rd party tools. So, is it possible to build a TOTP code generator without using any external JS libraries? Yes! And it is (relatively) simple. Here's the code that I've written. It is slightly verbose and contains…

The least secure TOTP code possible

· 4 comments · 750 words · Viewed ~5,191 times


QR code.

If you use Multi-Factor Authentication, you'll be well used to scanning in QR codes which allow you to share a secret code with a website. These are known as Time-based One Time Passwords (TOTP). As I've moaned about before, TOTP has never been properly standardised. It's a mish-mash of half-finished proposals with no active development, no test suite, and no-one looking after it. Which is…