Blog

On protocols, security, and how the internet actually works.

Path MTU Black Holes: The Bug That Only Hits Big Packets

The connection establishes. Small requests work. Then a large transfer stalls forever, and everyone blames the app. It's usually a router silently dropping oversized packets and an ICMP message a firewall ate — a failure mode baked so deep into the internet that 'the network works' and 'the network passes large packets' are two different claims.

Read more

How Video Calls Punch Through NAT

A machine behind NAT can't accept incoming connections — that's the whole definition of NAT. Yet billions of video calls connect two such machines directly every day. The trick is hole punching: both sides fire packets at the same instant, each drilling a temporary opening the other slips through. Here's the mechanism, why one NAT type defeats it, and the relay you pay rent on when it does.

Read more

The First Time the Root Key Changed

For eight years the security of signed DNS hung from a single key that had never once changed. When they finally rolled it in 2018, the terrifying part wasn't the cryptography — it was that nobody could see which resolvers were ready to follow.

Read more

Cloudbleed: When a Buffer Leaked Everyone's Secrets

In 2017 a single wrong comparison in a Cloudflare parser let a pointer run off the end of a buffer and dump adjacent memory into web pages — so one site's requests could surface another site's passwords, and search engines cached the spills.

Read more

Flame Forged a Microsoft Signature

In 2012 an espionage toolkit pushed itself onto machines as a signed Windows Update. To sign it, the operators forged a Microsoft certificate with an MD5 collision no academic had published yet — the last link in a chain of institutional mistakes that all had to line up.

Read more

Terrapin: Trimming Messages Off the Start of SSH

In 2023 researchers showed they could silently delete a message from the start of an SSH session — and the cipher that made it cleanest was chacha20-poly1305, the one every hardening guide told you to prefer. The bug wasn't in any server. It was in the seam the protocol never checked.

Read more

POODLE and the Long Death of SSLv3

In 2014 a Google team broke SSL 3.0 — a protocol from 1996 that nobody chose anymore. POODLE didn't attack the crypto in use. It attacked the polite reflex that let a browser fall back to crypto from eighteen years earlier.

Read more

The 1.35 Tbps Attack That Lasted Eight Minutes

On February 28, 2018, GitHub absorbed a 1.35 Tbps DDoS — the largest ever recorded at the time. No botnet built it. It was assembled from open memcached servers and a routing flaw the internet has refused to fix since 2000.

Read more

SYN Cookies: The 1996 Hack Still Saving Your Server

In September 1996 a SYN flood took a New York ISP offline. Days later, two people invented a defense that stores no state at all — it hides the connection inside a number the attacker can't forge. It's been on by default in Linux ever since, and it's still a little bit lossy on purpose.

Read more

JA3, JA4: Your TLS Handshake Is a Fingerprint

Before TLS encrypts anything, your client announces exactly what it is. The particular way it says hello is a fingerprint — and the story of JA3 and JA4 is the story of how identity leaks from the parts of a protocol nobody thought to hide.

Read more

Slowloris: The DoS That Whispers

The Slowloris attack is from 2009. It fits in one small script, needs one machine and no bandwidth, and will still stall an out-of-the-box Apache today. It wins by going slow — and the fix is the same one HTTP/2's record-breaking floods needed.

Read more

Passive DNS: How Defenders Gave DNS a Memory

DNS has no memory — every answer overwrites the last. Passive DNS is the accidental surveillance database that remembers every answer the internet ever gave, going back years, without ever recording who asked.

Read more

NAT: The Hack That Ate the Internet

In 1994 NAT was pitched as a short-term patch to buy time until IPv6 shipped. Thirty years later it's load-bearing infrastructure, it quietly deleted the internet's founding design principle, and by working too well it delayed its own replacement.

Read more

regreSSHion: The Bug That Came Back

In 2006 OpenSSH killed a remote-root hole in its signal handler. In 2021 a code cleanup quietly deleted the fix, and the same bug shipped to millions of servers for three years — because nothing tested that it stayed dead.

Read more

SHA-1 Is Shattered

In 2017 Google and CWI published two different PDFs with the same SHA-1 hash. The interesting part isn't that they did it — it's that everyone saw it coming for twelve years and the industry still waited for the proof.

Read more

The Kaminsky Bug: When DNS Almost Broke

In 2008 a single researcher found a way to forge any domain on the internet in seconds. The fix wasn't a new protocol — it was 16 bits of randomness bolted onto a 25-year-old design, and we're still leaning on it.

Read more

Mirai: The Botnet Made of Cameras

In 2016 a botnet built from home cameras and DVRs knocked a chunk of the internet offline. It didn't exploit anything clever. It logged in with the factory password.

Read more

The Day Facebook Deleted Itself From the Internet

In October 2021 Facebook didn't get hacked or DDoSed. It ran one maintenance command, and its own safety mechanisms erased it from the internet's map — then locked the engineers out of the room where the fix lived.

Read more

The XZ Backdoor: The Maintainer Who Never Existed

The most sophisticated supply-chain attack in years wasn't caught by a scanner, an SBOM, or a security team. It was caught by one engineer annoyed that his SSH logins felt half a second slow.

Read more

SPF ~all vs -all: The Softfail Epidemic

Most domains end their SPF record with ~all, which tells receivers to accept mail that fails. It's the safe default that quietly guarantees SPF can't stop spoofing on its own.

Read more

NSEC3 Was Supposed to Hide Your DNS Zone. It Doesn't.

DNSSEC's proof that a name doesn't exist accidentally leaks the names that do. NSEC3 hashed them to stop zone walking — and offline cracking walked right through it. Here's why RFC 9276 tells you to set iterations to zero, and what actually works.

Read more

BIMI: Is the Brand Logo Worth $1,000 a Year?

The logo in your inbox costs four figures a year — not because the protocol is expensive, but because two mailbox providers decided a certificate authority should stand between you and a picture.

Read more

Certificate Transparency Runs on Static Files Now

For a decade, every TLS certificate was published to a live, append-only cryptographic database that browsers forced operators to keep online within 24 hours. In 2025 that machine got torn out and replaced with a folder of static files in a bucket. It's a better design.

Read more

How a Certificate Authority Dies

A CA doesn't usually die from a hack. Entrust died the modern way — from paperwork: late revocations, missed deadlines, and a browser root program that finally stopped believing the promises.

Read more

Your Clock Is a Security Dependency

Certificate validity, HSTS, DNSSEC signatures, TOTP codes — a surprising amount of your security is really an assertion about what time it is. And the protocol that decides what time it is spent forty years believing whoever answered first.

Read more

DNS 0x20: The Spoofing Fix Written in Random Capitals

In 2023 Google's resolver quietly started asking for wIKiPEDiA.oRG instead of wikipedia.org. It's not a bug — it's a 15-year-old anti-spoofing hack that never became a standard, works anyway, and shipped because it needs permission from absolutely no one.

Read more

DNS Cookies: The Anti-Spoofing Fix Nobody Turned On

A decade ago DNS got a cheap defense against spoofed answers and reflection attacks. Your resolver almost certainly supports it. It almost certainly doesn't require it — and that gap between 'supports' and 'requires' is the whole story.

Read more

A BGP Hijack Could Forge Your TLS Certificate. Now It's Harder.

For years, an attacker who could bend a BGP route near a certificate authority could pass its domain validation and get a real, browser-trusted cert for a domain they didn't own. In 2025 the industry finally made that much harder. Here's how MPIC works and what it doesn't fix.

Read more

You Can't Put a CNAME on the Apex (Here's Why)

Every CDN wants you to point your root domain at a hostname. DNS has forbidden exactly that since 1987 — so the industry built a pile of non-standard hacks, and the one real fix still doesn't work in your browser.

Read more

QNAME Minimization: The DNS Privacy Fix That Shipped

Every DNS server between you and a site used to see the full name you typed — even the ones that only needed the TLD. One resolver-side change fixed most of that, and unlike DNSSEC, it shipped without asking anyone's permission.

Read more

HTTP/2 Server Push Is Dead. Early Hints Won by Doing Less

Server Push was HTTP/2's marquee feature: send files before the browser asks. Chrome ripped it out in 2022 after finding it used on 0.7% of sites and often making things slower. What replaced it did the opposite thing, and that's why it worked.

Read more

Chrome Encrypted Your DNS. It Never Checked It.

Turning on Secure DNS in Chrome encrypts the pipe to your resolver. It does nothing to prove the answer coming back is true. Encryption and authentication are different problems, and browsers quietly picked one.

Read more

"Just Add DMARC" Is Terrible Advice

Publishing a DMARC record is the easy 5%. The advice skips the part that actually stops spoofing: alignment, reading the reports, and the slow walk to enforcement.

Read more

We Moved TLS Setup into DNS, and DNS Isn't Signed

The HTTPS DNS record hands your browser connection parameters — which protocol, which IPs, even the key that encrypts your ClientHello — before the handshake starts. For most domains, it arrives over a layer nobody signed.

Read more

Security Header Checklists Are Not Security

A site can pass every header scanner with a green A+ and still be trivially exploitable. The checklist grades the envelope, not the letter — and the gap is where the attacks live.

Read more

Email Is More Secure Than Slack

Everyone treats Slack as the modern, secure successor to email. But on Enterprise Grid, an org owner can export every DM you ever sent — including the ones you edited and deleted — and Slack holds the plaintext to do it. Email's transport is a 1982 disaster, and yet the thing it gives you that Slack structurally can't is the one that matters: custody. Here's the case for the medium nobody defends.

Read more

Log4Shell Fixed Our Paperwork, Not Our Dependencies

Four years after a patch shipped, Sonatype found roughly one in eight Log4j downloads was still a vulnerable version. We got very good at listing our broken dependencies and barely better at not shipping them.

Read more

WHOIS Privacy Is a Double-Edged Sword

GDPR redacted WHOIS for everyone in 2018 — grandma and the phishing operator got the same anonymity on the same day. The access system meant to balance it was estimated at $27M, then shelved. Only one edge of the sword ever shipped.

Read more

Bug Bounties Created Perverse Incentives

A bug bounty pays per accepted report, so it optimizes for accepted reports — not for security. That gap was quietly draining maintainers for years before AI slop made it impossible to ignore.

Read more

DNS Is the Internet's Weakest Link

Whoever controls your DNS can get a valid TLS certificate for your domain, reroute your mail, and become you. It's the root of trust almost nobody signs.

Read more

The SSL Labs A+ Grade Is Too Easy to Get

An SSL Labs A+ certifies your TLS channel is configured well. People wave it around as proof they're secure. The gap between A and A+ is one HTTP header — and a phishing kit clears it too.

Read more

Rate Limiting Is Not a Security Strategy

I built a rate limiter and then watched it fail to stop the one attack everyone assumed it prevented. Rate limiting is an availability control wearing a security badge.

Read more

Cloudflare's Outages Keep Rhyming

Three Cloudflare outages — a 2019 regex, a 2025 third-party dependency, a 2025 feature file — turn out to be the same outage wearing different clothes: a change that shipped everywhere at once and met a bug with nowhere to hide.

Read more

BGP Hijacks: A History of the Same Mistake

From the 1997 AS7007 accident to the 2022 KLAYswap crypto heist, BGP hijacks keep exploiting the same missing feature: nobody has to prove they own a route. Here's the pattern, and why the fix stays optional.

Read more

Why Registrars Keep Getting Hacked

In 2016, attackers owned a Brazilian bank's entire online presence for five hours without touching one of its servers. They logged into its domain registrar.

Read more

The .io TLD Has a Political Problem

Startups treat .io as shorthand for input/output. The two letters actually stand for a contested colonial territory that is now being handed away — and the domain rides on its existence.

Read more

Email Is Unfixable

SMTP was designed in 1982 for a network where everyone trusted everyone. Every security property we've wanted since — knowing who sent a message, encrypting it in transit — has been bolted on as an optional patch on top of a protocol that can't be replaced. That's not a bug we haven't fixed yet. It's the shape of the thing.

Read more

The Economics of DDoS: Why It Costs $10 to Attack

A DDoS attack that knocks a small site offline for an afternoon costs about as much as a pizza. The interesting question isn't that it's cheap — it's who's actually paying, because it isn't the attacker.

Read more

Port Scanning in 2026: What You Can and Can't Learn

Port scanning is supposed to be step one of reconnaissance. In 2026 a full scan of a target mostly tells you it's behind a firewall and a load balancer. The map of the internet stopped being drawn by scanners.

Read more

RDAP Is Replacing WHOIS (Slowly)

WHOIS is a protocol from 1982 that returns unparseable text. RDAP fixed all of that in 2015. It took a contractual deadline in 2025 — not better engineering — to finally move the industry.

Read more

Your TLS Certificates Already Got Shorter

Everyone panicked about the 47-day certificate landing in 2029. Nobody noticed the first cut already happened: 200 days, mandatory since March 2026. The real story isn't validity — it's the revalidation clock dropping to 10 days.

Read more

301 vs 302: The Redirect That Breaks Everything

The difference between 301 and 302 isn't 'permanent vs temporary.' It's two unrelated decisions the codes quietly bundle together — and a 301 you set by accident can live in a stranger's browser cache forever.

Read more

HSTS Preload: Handing Your Security to Browser Vendors

Adding your domain to the HSTS preload list is a one-way door. The list lives inside the browser binary, not on your servers, so undoing it means waiting months for a Chrome release you don't control — and that's the part nobody mentions when they tell you to preload.

Read more

DANE: The Protocol That Failed on the Web and Won in Email

Everyone agrees DANE is dead — a beautiful protocol stranded behind DNSSEC that nobody deployed. That verdict is American. In the Netherlands it's mandatory, in 2026 Microsoft shipped it, and on the web it really is dead. Same protocol, three fates.

Read more

MTA-STS: The Email Security Protocol Nobody Knows

SMTP encryption has a hole you can drive a truck through: any attacker in the path can strip STARTTLS and read the mail in cleartext. MTA-STS closes it. Then it makes you host a web page to do so, which is why almost nobody bothered.

Read more

How SMTP Relay Actually Works in 2026

In 1982 every mail server relayed for anyone — that was the design. Now relaying for a stranger gets you blocklisted before lunch. The word 'relay' survived. Everything underneath it inverted.

Read more

DNS Rebinding Turns Your Browser Into an Insider

A web page you open can reach the router, printer, and smart speaker on your home network — through your own browser. DNS rebinding has worked for over two decades, and why it still works says something uncomfortable about how we built local networks.

Read more

Anycast: One IP, Many Servers

The same IP address answers you in Seoul and someone else in São Paulo, from two different machines, and neither of you can tell. That's anycast — a lie told to BGP that the whole internet agreed to believe, and the trick that quietly made TCP work in hundreds of places at once.

Read more

Why Email Forwarding Breaks Everything

SPF dies on the first relay. DKIM survives until a mailing list edits the message. Then DMARC turns a 40-year-old nuisance into bounced mail. A tour of email's most reliably broken feature.

Read more

Homograph Attacks: When the Domain Name Is a Lie

In 2017 a researcher registered a domain that displayed as apple.com in three major browsers, served over valid HTTPS. Every character was Cyrillic. The reason it's hard to fix is older and stranger than the bug itself.

Read more

We Rebuilt TCP on Top of UDP and Called It QUIC

QUIC is reliable, ordered, congestion-controlled, and encrypted — everything UDP refuses to be. So why build it on UDP? Because UDP was the only new-protocol-shaped hole left in the internet's plumbing.

Read more

The 13 Root Servers Myth

Everyone says there are 13 DNS root servers. There are more than 1,900. The number 13 is frozen into the internet because of a packet-size limit nobody worries about anymore — and the way that contradiction got resolved is one of the better infrastructure hacks ever shipped.

Read more

Why DNS Uses UDP (and When It Doesn't)

DNS runs the busiest request-response system on the internet on top of a transport that doesn't promise your packet will arrive. That wasn't a shortcut. It was the right call — until the answers got too big.

Read more

How They Know You're a Bot

You can type any browser you like into your User-Agent string. It's the one field nobody trusts — because everything underneath it, the TLS handshake and the HTTP/2 settings, was written by your libraries, not by you.

Read more

How CDN Cache Poisoning Works

CDN cache poisoning tricks a CDN into caching a malicious response and serving it to all subsequent visitors. One weird request, a lot of collateral.

Read more

VPNs Don't Make You Anonymous

A VPN shifts who can see your traffic from your ISP to the VPN provider. You're trusting a different entity, not eliminating trust.

Read more

BGP: The Protocol That Runs on Trust

BGP routes the internet with no built-in authentication. Any autonomous system can announce any prefix. Route hijacking is trivially possible. Here's how it works and what RPKI is trying to fix.

Read more

Compliance Is Not Security

SOC 2, ISO 27001, PCI DSS — organizations treat compliance as proof of security. It isn't. Compliance is a floor. Security is the actual state of your defenses.

Read more

Security Scores Are Meaningless

I build security scoring systems. I know better than anyone that they don't measure actual security. Here's why I keep building them anyway.

Read more

The TLS Handshake in 7 Steps

Every HTTPS connection starts with a negotiation most developers never think about. Here's exactly what happens in TLS 1.3, step by step.

Read more

"Zero Trust" Is a Marketing Term

Zero Trust started as a legitimate security architecture principle. It has been co-opted by every vendor to mean 'buy our product.' The original idea deserves better.

Read more