3 ms·
Postel's Law is important, but it creates brittle systems. You can force them further from the ideal operating state before failure, but when they fail they ten
by SAI_Peregrinus 1y ago
Postel's Law is important, but it creates brittle systems. You can force them further from the ideal operating state before failure, but when they fail they tend to fail suddenly and catastrophically. I like to call it the "Hardness Principle" as opposed to the "Robustness Principle" in analogy to metallurgy.
- emmelaich 1y agoSurely the opposite? If everything was very pedantic and strict, the 'net would be so brittle as to be non-functional. You're imagining a world where things get specified and implemented completely correctly. Which does not exist and probably can't!
- immibis 1y agoThat's what Postel thought. He was wrong. Allowing everything creates a brittle system because the system has to accept all the undocumented behaviour that other broken systems emit. If broken files were rejected quickly, nobody would generate them. There's a difference between unknown extensions following a known format, and data that's simply broken (e.g. offset pointer past end of data).
- emmelaich 1y agoYou're not accounting for the incorrectly rejected file / protocols. And incomplete protocol specifications. And generally I think critics of Postel are lacking the context in which they were made. You and probably others would actually make similar decisions than Postel for many particular issues.
- SAI_Peregrinus 1y agoI disagree that I'd make similar decisions. Postel's Law is a big part of the reason Bleichenbacher attacks (adaptive chosen-ciphertext attacks)[1] stayed so common for so long. As an engineer responsible for the security I absolutely reject malformed inputs. https://en.wikipedia.org/wiki/Adaptive_chosen-ciphertext_attack https://en.wikipedia.org/wiki/Adaptive_chosen-ciphertext_att...
- emmelaich 1y agoBut that's what I'm saying; Postel may well have ALSO rejected malformed inputs in this particular case.