Applied cryptography (2nd ed.): protocols, algorithms, and source code in C
Applied cryptography (2nd ed.): protocols, algorithms, and source code in C
Practical Unix and Internet security (2nd ed.)
Practical Unix and Internet security (2nd ed.)
Social processes and proofs of theorems and programs
Communications of the ACM
Using encryption for authentication in large networks of computers
Communications of the ACM
Requirements for network payment: the NetCheque perspective
COMPCON '95 Proceedings of the 40th IEEE Computer Society International Conference
The practical subtleties of biometric key generation
SS'08 Proceedings of the 17th conference on Security symposium
Hi-index | 0.00 |
One of the commonly accepted principles of software design for security is that making the source code openly available leads to better security. The presumption is that the open publication of source code will lead others to review the code for errors, however this openness is no guarantee of correctness. One of the most widely published and used pieces of security software in recent memory is the MIT implementation of the Kerberos authentication protocol. In the design of the protocol, random session keys are the basis for establishing the authenticity of service requests. Because of the way that the Kerberos Version 4 implementation selected its random keys, the secret keys could easily be guessed in a matter of seconds. This paper discusses the difficulty of generating good random numbers, the mistakes that were made in implementing Kerberos Version 4, and the breakdown of software engineering that allowed this flaw to remain unfixed for ten years. We discuss this as a particularly notable example of the need to examine security-critical code carefully, even when it is made publicly available.