Me: why is one of my services taking 3 whole minutes to pick up its background jobs
...me a few minutes later, on the database server_
apk add chrony && rc-update add chronyd default && rc-service chronyd start
fucking timesync man.
Me: why is one of my services taking 3 whole minutes to pick up its background jobs
...me a few minutes later, on the database server_
apk add chrony && rc-update add chronyd default && rc-service chronyd start
fucking timesync man.
Maybe Unix systems should ship an actual certificate validation daemon that speaks the Server-Based Certificate Validation Protocol (SCVP) or similar so that
bonus points if for k8s & docker setups you can just bind-mount the socket into the container.
Perhaps if Chainguard are on your advance disclosure lists, they shouldn't be
On October 21st at 07:41 UTC, more than six hours before the coordinated release, Chainguard unilaterally broke the embargo and published built images containing the fix. Like other distributors, Chainguard had received the patch in advance so its users could update the moment the vulnerabilities were disclosed. Any attacker could now study the fix in binary form while every other PHP user was still waiting for the release. This disregarded weeks of work by many parties toward a coordinated disclosure.
I looked at some litter on the floor of the S-Bahn and it was the box from a V-Cube 4???
Berlin, you confuse me
We talk about the problems with technical solutions to social problems. Well, this is a social solution to a technical problem
Can't believe the definition of UNIX Time was so unfixably bad we as a society decided we had to abolish UTC instead
(The CGPM has voted to abolish the leap second)
Mandatory email OTP is one of the most infuriating creations of mankind
A goal one might have when designing a signing algorithm is to prevent signing a message one has not seen.
Signing a message one hasn't seen might sound difficult at first, but most classical signature algorithms, as commonly used, sign a hash of the message, rather than the message itself. This kind of arrangement is necessitated by the fact that the underlying algorithms are only capable of signing messages of a limited size. You might not have seen the message, but you might have seen the hash of it, or another signature which encodes said hash. In many protocols, this lets you produce a valid signature on a message you've never seen. That's rarely a problem in practice, but it can be surprising, and it's a pitfall for the unsuspecting protocol designer.
More recent algorithms take steps to prevent this:
SHA-512(R || PubK || M) where R is functionally a random curve point, PubK is the public key, M is the message, and || is the concatenation operatorSHAKE-256(SHAKE-256(PubK, 64) || 0x00 || len(ctx) || ctx || m, 64) (where ctx is a 0 to 255 byte context string)This can complicate your signing code, particularly when dealing with HSMs or smart cards, but it doesn't require majorly reworking your signing process. Unfortunately, on the verification side things are less rosy.
As a general rule of thumb, we should avoid touching the body of a signed message until we've verified the signature. Also as a general rule of thumb, cryptographic protocols where there are multiple signers put the signer's identity within said body (X.509, most JWT and CWT usages, SAML, I'm looking at all of you, but you're not the only ones).
This means the verification process ends up being
Often (JWT, CWT and SAML again), there's either no key identifier present in the signed message, or it's permitted for multiple signing keys to share a key identifier†. This means that, if the issuer has multiple keys, you may have to do multiple trial-verifications to work out if the message is actually valid.
One nice property that all of these protocols have (except XML Digital Signatures, but nobody thinks XML Digital Signatures were a good idea) is that they carry the signing method in a header. So, with a traditional signing algorithm, you have the option of
This comes with two advantages:
Unfortunately, it has the slight flaw that it doesn't work with either Ed25519 or ML-DSA as defined.
For ML-DSA, it would have been quite easy to re-arrange matters. If we instead computed SHAKE-256(0x00 || len(ctx) || ctx || m || SHAKE-256(PubK, 64), 64) (i.e. we put the public key hash in at the end), then we can hold our SHAKE-256 context around and copy it for each trial verification. We'd end up keeping just over 200 bytes of SHAKE-256 context around (instead of 64 bytes of output), but that's not too bad. Unfortunately, that's not the choice that was made and we'll just have to deal with it.
Ed25519 is slightly more challenging. If we reversed the hash computation to be SHA-512(M || R || PubK) instead, it would be vulnerable to length extension attacks (for any SHA-512(X) you can extend it into SHA-512(X || some predictable garbage || Y) for any arbitrary Y).
Fixing that when Ed25519 was published in 2011 would be somewhat tricky, though the easiest option without truncating the hash is just to sign SHA-512(SHA-512("ed25519 domain separation" || M || R || PubK)).
Since we don't have a time machine, it's all a bit academic. In 2026 you can just avoid the problem by using SHA-3, BLAKE2, a truncated SHA-2 variant, or any other modern hash function which isn't vulnerable to length extension attacks.
In the meantime I'll just sigh and hope we can reduce the number of signatures we pass around, given they're really becoming rather large and expensive.
† You may be thinking it somewhat defeats the purpose of having a key identifier if they aren't unique. I don't disagree!
For extra pain this didn't show up as more than a handful of receive errors because most of the packets getting yeeted had such a bad SNR it didn't recognise them as packets
In the continuing tale of networking hauntedness, I've had some mysteriously slow downloads for months, that finally annoyed me enough to go properly debugging 😭
Turns out that fiber that looked plugged into the SFP wasn't and I had 1-5% packet loss on a primary link on our LAN
"Mistral said Le Chonk - officially named Mistral Large 4 - will be made fully public on October 27." How is this real text from a real Reuters article?! 😭https://www.reuters.com/world/china/mistral-ceo-says-new-ai-model-beats-chinese-ones-some-areas-2026-10-06/
I don't really like this prediction but I think it's coming.
Prediction: A track created substantially with Generative AI will wedge itself solidly inside our collective heads and refuse to be evicted in the next 12 months. Think something "Baby shark"-esque
"Why on earth am I compiling DuckDB today?!" and other NixOS induced horrors beyond my comprehension
Spent the morning debugging a confusing networking problem (ARPs from VM not being bridged onto the network). Turns out: NIC driver's haunted. Newer kernel exorcises the bug.
as someone who has been really critical of a lot of the initial breathless "teehee, weird sex" reportage, i really appreciate this thread for nailing the actual fucked up immoral thing that is happening; you CANNOT consent if your employment or job success are on the line
There are a couple of maybe-anachronisms (Example: As far as I can tell, Microsoft released WordArt ~7 months after the date the game is set) but overall it feels pretty accurate.
I picked up Silent Hill: Townfall on a whim and while it's not without flaws, it nails the feeling of 90s working class Britain (when it's not just nailing the feeling of desperation required of a horror game)
What on earth are Apple cooking https://www.applemusichall.com/