Blog

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

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