4 ms·
In my experience nonce reuse doesn't happen because of a probabilistic collision. It happens instead because people who don't know the history or context of wha
by steelframe 2y ago
In my experience nonce reuse doesn't happen because of a probabilistic collision. It happens instead because people who don't know the history or context of what they're doing make a change to the code base that results in the nonce being reused, and there were guardrails missing that should have been there to help prevent it.
It stems from hubris I see repeatedly in the software engineering industry. "I know the constraints and am capable of engineering to them, so don't lecture me about the potential dangers. I'll just make sure we do it right, because I'm smart and capable and can do it right."
They think the problem they need to solve is to write code that's correct today, while the actual problem they need to solve is that it remains correct tomorrow, next quarter, next year, and next decade. Based on repeated failures in this category I've personally witnessed, the majority of software engineers with fewer than ~10 years of industry experience lack an intuition about how software changes over time as people come and go.