3 ms·
They don't actually do anything, but I think it's hard to tell a story where they make things worse, given that Cloudflare is a cryptographically competent org.
by tptacek 6mo ago
They don't actually do anything, but I think it's hard to tell a story where they make things worse, given that Cloudflare is a cryptographically competent org. It's just getting mixed into the already-secure conventional CSPRNG they're using (almost certainly: just the Linux kernel RNG).
- Terr_ 6mo ago> I think it's hard to tell a story where they make things worse [...] mixed into the [...] CSPRNG I think it's easy to tell a story where it's slightly worse. I mean, for any budget of storage bits and CPU cycles, any "inferior" random data necessarily pushes out "better" stuff.
- tptacek 6mo agoIt's all hashed together. The whole LRNG design assumes most of its inputs are structured or poorly randomized.
- Terr_ 6mo agoI'm not sure what you mean, deterministic hashing does not create more entropy than you started with. Lower-quality inputs means lower-quality results. You only want to use low-quality sources if the good stuff is too scarce or expensive. Imagine that tomorrow some reaction caused all those lava-lamps to cloud over into pure, constant, and uniform milky white. What effect would that have? It would make the system at least somewhat less secure, no matter how many hash functions were already scattered around the place.
- tptacek 6mo agoIn the immortal words of a cryptographic folk hero, if H(x, y) produces a good random number, H(x, y, z) will produce a number at least as good.
- Terr_ 6mo agoPerhaps you missed where I mentioned a constant "budget of bits." Your second h(x,y,z) is implicitly using more bits in the calculation, rather than "sharing" with x. In other words, these are the two functions that should be compared: h(content, very_random_bits(32)) h(content, very_random_bits(16) + slightly_random_bits(16))
- tptacek 6mo agoThe point of CSPRNG constructions is that there isn't a "budget bits" of seed. Again: this idea is pretty core to the design of the LRNG. Neither of your constructions is secure.
- Terr_ 6mo agoTo paraphrase how I see things going so far, plus one: 1. tptacek: "It's hard to imagine how Cloudflare's lava-lamps could ever make the cryptography worse." 2. Terr_: "Well, technically it could make it worse, if 'hey look we're using a cool lava-lamp wall' comes at the expense of opportunities to insert higher-quality entropy from some other source." 3. tptacek: "It doesn't matter because they can just add it to everything else." 4. Terr_: "I didn't say adding, I said substituting." 5. tptacek: "A CSPRNG algorithm always lets you add more passes and bits. You don't have to make that choice." 6. Terr_: "But Cloudflare does have to make that choice because sensors and computers and CPU-cycles and budgets are all limited! Those constraints are the entire reason we're even using a CSPRNG in the first place."
- tptacek 6mo agoI'm sorry, I've lost track of what you're trying to argue. The point is that in practice, any sane design is just going to hash "lava lamp" information in with all the other low-quality entropy inputs that drive the LRNG. I wasn't making a subtle or complicated point here.
- Terr_ 6mo ago
- glitchc 6mo agoThe lava lamps aren't being used as a CSPRNG, rather they constitute part of the seed for the CSPRNG.
- tptacek 6mo agoYes, I get that.