If you are faced with creating a new communications protocol, what are you going to do to ensure that it is safe and secure? While a complete answer might take an entire volume, here we will highlight some of the most common scenarios and concerns.
Many of the topics considered here are not unique to networking. They apply to any software that has security features, be it encrypting files or making access control decisions. Software security principles transcend technologies and tend to be pretty universal.
What exactly is a protocol? Wikipedia defines it as "a convention or standard that controls or enables the connection, communication, and data transfer between two computing endpoints." A protocol definition will include descriptions of state machines at either end of the communication, detailed specification of message formats, cryptographic algorithms, endianness, port numbers and a myriad other details concerning syntax, semantics, and synchronization. And every aspect of a protocol definition is subject to an attack by a malicious party. We'll go over some examples of attacks against protocols and rules following, which will help you when designing and implementing protocols of your own.
|