Why a WebSocket client masks its frames
Every frame from a browser is masked with a random key. This simple XOR stops web pages from poisoning proxy caches.
9 minute read
I write about software architecture, .NET, real-time systems and encryption.
Every frame from a browser is masked with a random key. This simple XOR stops web pages from poisoning proxy caches.
9 minute read
Every WebSocket message travels in frames. Follow one frame byte by byte, with C# code you can test.
10 minute read
AES-GCM needs a new nonce for each message. One repeat can expose the plain text and let an attacker forge messages.
10 minute read
ML-KEM became a NIST standard in 2024. This post explains what it does and how it differs from the key exchange we use today.
10 minute read
Every boundary between modules has a cost. A few simple questions help you decide where one belongs.
9 minute read
Span<T> lets you work on a slice of memory without a copy. A small parser shows the change, before and after.
9 minute read
Two sides can agree on a shared secret over an open network. X25519 does this in a few clear steps.
10 minute read