The "robustness principle" is the most destructive concept in protocol design and implementation of all time. We should be embracing its inverse: strict, explicit state-machines with model-checked proofs
@hannesm@djm We did something like this for IKEv2 with TKM, which is part of strongSwan. (Library) Code generator which includes FSM and SPARK proof aspects for state transitions.
@senier et al (now at AdaCore) has done a project called RecordFlux, which does much more: you can specify the protocol in a DSL and the tools will generate SPARK code with some formal guarantees. NVIDIA has actually used it in production. Also, the code is opensource and up on GitHub.
looking back, unfortunately formal methods work does not always pick up to ietf - e.g. our work on tcp/ip and the sockets api didn't get much resonance in the engineering community http://www.cl.cam.ac.uk/~pes20/Netsem/paper3.pdf
@djm While I agree that the Postel / RFC robustness principle, especially as widely understood today, is largely the wrong thing to do in protocols in 2023, things were different in the early Internet and early web. Then the problem was not "how do I do this networking thing really well", but "how do I and others do this at all so that it gets wide use?". The principle mattered more back then. Without it, we might not have the Internet at all today. We might only have closed gardens.