Bikeshedding while the world burns

Robert J. Hansen rjh at sixdemonbag.org
Tue Apr 28 05:37:08 CEST 2026


1. INTRODUCTION

Around 1997, Sun Microsystems hauled Microsoft in court over the Java 
virtual machine (JVM) Microsoft was shipping with new versions of 
Windows. Microsoft had entered an agreement with Sun to ship a JVM that 
fully complied with Sun's compatibility tests, but they failed to honor 
this promise. They insisted they were doing the right thing for their 
users, which may have well been true -- but "best for our users" was not 
the same as "best for Java users".

I'm told that after Microsoft lost this lawsuit they decided to embrace 
C# and the Common Language Runtime as sort of a "Java that we control." 
Java and C# started off as very similar languages but drifted apart over 
time; likewise with their virtual machines.

I am afraid GnuPG is soon going to be a retelling of this story.

I downloaded GnuPG 1.0 the day it was released. I was at the time 
writing an RFC1991 ("ClassicPGP") implementation for a now-defunct 
telecom that had very strange ideas about why PGP 2.6 exposed them to 
legal liability, and I wanted to see how GnuPG implemented some packet 
parsing magic. At that time GnuPG's mission statement was crystal clear: 
to provide a libre command-line implementation of the RFC2440 standard.

For a quarter-century GnuPG has been the gold standard of OpenPGP 
implementations and 100% libre software. This is an amazing achievement, 
and I think Werner deserves immense accolades for his persistence and 
determination in achieving this vision.

But I think we're heading down the wrong road by turning away from the RFC.

2. THE COLD TRUTH

You could replace RFC9580 with RFC1991 from thirty years ago and still 
be sufficient for many users.

Seriously. Most users don't need 30-year security, they need 10-year 
security at the outside, for secrets that are relatively low value 
(under $1 million). RSA-1024 still looks solid for that time window. It 
might be possible to break an RSA-1024 key today, but not for a million 
dollars.

A lot of users don't care very much about signatures, either. They care 
a lot about the confidentiality of their email: the authenticity takes a 
back seat. MD5 matters a lot less.

RFC1991 used a single key for authentication and encryption. This meant 
trouble if a user was ever compelled by a court to reveal their 
decryption key. That was a major motivator of RFC2440, and yet it turns 
out compelled turnover of an asymmetric encryption key is incredibly 
rare: it happens so infrequently it might as well not happen.

Over the last thirty years the IETF working group leading RFC design has 
invented an ever-more-impregnable bank vault door, even as the building 
that bank vault is installed in (operating systems and environments) 
have become ever shoddier.

In my mind, the LibrePGP versus OpenPGP technical arguments are about as 
interesting to me as arguing whether a meter-thick tempered steel vault 
door that laughs in the face of explosives, diamond-tipped drill bits, 
and antitank rockets is secure enough, or whether we need to also have a 
Belgian malinois watching things.

Please don't think, "oh, Rob doesn't understand the specifications, 
that's why he's saying these differences don't matter". I _do_ 
understand the specifications. I don't influence the specs. I never said 
I didn't read them or have opinions on them.

Here's the truth: I love Belgian malinois. After German shepherds 
they're my favorite breed. They're a little too energetic and 
high-strung for me to ever own one, but I adore them. I also don't care 
if my vault door is guarded by one.

3. THE REAL RISK

The real risk today is endpoint compromise. It's cheap, it's easy, it's fun.

Many years ago a divorce attorney came to me with a problem: his client 
was divorcing her husband. They lived in separate apartments since the 
divorce petition was filed. She had reason to believe he was lying about 
his assets but had no way to check on his bank accounts without his 
knowledge. Was there any way I could help?

After confirming they lived in a marital joint property state (where, 
until the time a divorce is finalized, all property in the marriage is 
owned by both), I agreed to do the job. The woman wrote a letter 
authorizing me to enter her husband's apartment to look for financial 
records, and I filed this with my attorney.

I showed up at his apartment after he left for work, picked the lock, 
walked into his office and started taking photographs so I could leave 
the place in the exact same state as when I left. I made a forensic 
image of his hard drive, connected a keylogger, and left. I returned the 
next day to pick up the keylogger.

All of his online security measures -- only using HTTPS through a VPN, 
using Bitlocker, not using a password manager, etcetera -- vanished in 
about a day the moment a semi-skilled attacker decided to go after the 
endpoint. Even Bitlocker fails when the enemy has a forensic image of 
your hard drive and, thanks to a keylogger, your BitLocker password.

Had he shared his apartment with a Belgian malinois, I would have been 
deterred. But neither a cryptographic vault door nor a cryptographic 
Belgian malinois proved any obstacle whatsoever.

4. MORE ON ENDPOINTS

Physical endpoint compromise, like what I describe above, is the 
ultimate game over condition. Network endpoint compromise is almost as bad.

The network landscape in 2026 is not what it was in 1996. There is no 
longer any meaningful concept of a secure network perimeter. In the 
cyberwarfare trade the Internet of Things is instead called the 
"Internet of Targets".

Here in Washington D.C., it's widely believed the Chinese government, 
through a cyberwarfare program called SALT TYPHOON, has at-will access 
to any smartphone it wants in the metropolitan area. (This may be 
revenge of a kind: Edward Snowden revealed to them the NSA had at-will 
access to any text message in Hong Kong.)

My apartment building has decided my front door should no longer have a 
physical key, but instead be locked and unlocked from my smartphone. My 
bank encourages me to do all my banking via an app. Local hotels do the 
same thing.

The endpoints are already compromised, and we're ...

... arguing about whether we need a Belgian malinois _and_ a meter-thick 
tempered steel vault door?!

5. C# AND JAVA, REDUX

When Microsoft was told the Java spec was what it was and wouldn't be 
changed to accommodate them and their users' needs, Microsoft made a 
wise call. They walked away and made a clean break. Over time C# has 
become its own thing and a vastly different ecosystem compared to Java.

I would very much like GnuPG to decide either to:

	(a) implement RFC9580 in GnuPG, even if it's not enabled
	    by default
	(b) make a clean break from RFC9580 and go on to solve a
	    similar-but-different set of problems a similar-but-
	    different way

I don't care which is done but I really think we need to do one or the 
other.

This community is suffering, *badly*, because people are arguing over 
the presence of a Belgian malinois. We should stop the bleeding, even if 
the tourniquet hurts.

6. AM I LEAVING THE COMMUNITY?

Of course not. That would be silly. I love this community too much for that.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://lists.gnupg.org/pipermail/gnupg-users/attachments/20260427/a97df6c7/attachment.sig>


More information about the Gnupg-users mailing list