Welcome to the Dart White Paper repository. We have created this section to publish White Papers about our technology, ideas for IT solutions implementing TCP and UDP based communications, tips for using our products, and opinions about current and coming technologies. Along with these articles, readers will have the opportunity to respond with their own ideas and we will publish those comments along with the articles. If you have a comment on any article, please submit it to comments@dart.com.

Understanding Secure Communications on a Heterogenous Network.

The TCP/IP protocol suite allows communication with anyone around the world, regardless of what the intervening networks consist of. Now that this type of communications is possible, a desire for secure data transmission has naturally evolved. People do not only want to send out their information for the rest of the world to hear; they want privacy. Well, having a global standard makes communication easier, but security more difficult, as this article will show.Then the article will explain the basic forms of security breaches and finally, this article will describe the basic methods used to limit the dangers from attackers who know exactly how you send information.

How does software interpret data that comes in from a network? It parses it based upon a RFC or proprietary standard. How would an eavesdropper interpret the information? Using exactly the same method. Even if encryption is used, this truism still applies: when using a global standard, everybody knows how the data is organized. This makes encryption difficult to effectively implement, as the eavesdropper will know the encryption standard in place, and if the eavesdropper can figure out the encryption key, then they can read the information just as readily as the intended receiver. With some encryption standards, the eavesdropper can even deliberately change the information along the way without knowing the key and without the awareness of the intended recipient.

There are three basic security problems in communications: secrecy, authentication, and signal integrity. Secrecy involves keeping others from obtaining the information in communications, using methods such as wiretapping or just accepting information not sent to them. Improving secrecy is the primary purpose for which encryption is applied. Authentication involves assuring that the person you are communicating with is the person with whom you wish to communicate, as an eavesdropper could pretend to be the intended recipient and pick up the information being sent. Finally, signal integrity is not always impregnable as an intermediate computer  can change parts of a message and the receiver would not necessarily be able to detect that the message has been modified.

Most encryption systems offer reasonably good secrecy, but the issues of authentication and signal integrity can create weaknesses. RC-4, for example, uses a byte-flipping cipher to encrypt data. This method is fast and can work for secrecy against most opponents, but someone could maliciously change bytes in the message without necessarily being detected, and without knowing the key. This is a major threat to signal integrity, especially for alphanumeric messages, where randomly switching some types of characters could occur without being noticed.Thus, if signal integrity is an issue, RC-4 is not a good choice.  All ciphers, including RC-4, RC-5, and DES require private keys. These keys must be known to both users, and are required for the encryption and decryption of information. If someone attains the key, then that person can read all messages using that key, or pretend to be someone else who uses that key. Thus, if a key is stored on an insecure computer, it can be copied, breaking the security without the knowledge of the user. On the other hand, authentication issues appear with public-key algorithms such as RSA encryption, where a publicly available key opens up the possibility of someone else sending a message and pretending to be another person. One computer gives out the publicly available key so that only the generating computer can read messages encrypted with that key, but anyone can send messages with that key. RSA is one of the hardest encryption algorithms to break, making it quite secure, even with a public key, and this makes it viable for public key encryption.Public key encryption allows two computers to set up a connection on the fly, without having to store identical copies of private keys ahead of time.This capability is critical for communicating across the Internet.

These basic problems and two basic types of solutions (cipher and RSA) create the need for a hybrid solution in order to create a best-case scenario. To deal with authentication issues and speed (RSA is slow), a cipher must be used.  To deal with communications across the Internet, a public-key technique is needed. The combined technique requires setting up a connection by sending RSA-encrypted randomly generated cipher keys between both computers during authentication, then communicating from that point on using the cipher. RC-4 is not recommended because it still will have signal integrity weaknesses, but DES (triple-DES) is a solid choice. SSL is an application of this standard combination of a cipher and RSA.

A theoretically secure algorithm does not mean a practical implementation is unbreakable. For example, SSL can use a combination of RSA 128-bit encryption and a 48-bit maximum-length cipher. 128-bit RSA is reasonably secure, although skilled attacks with vast resources can break it. 48-bit cipher encryption is the weakest point of SSL, but even breaking that requires trying 256 trillion different key values, a time-consuming task. Thus SSL is secure against most attacks, as long as a new key is generated for every communication. If just one key is constantly reused, someone with vast computing resources could break that single key. Thankfully, good random-number generation techniques are common and normally used for generating individual session keys. There are stronger algorithms in existence, such as PGP with 1024-bit keys, but none are legal for export from the US.

There is one otherway in which communication going through a secure channel can be brokenand that is either before or after the data is encrypted.This kind of problem is actually quite common, as some programs will store unencrypted passwords locally that can be read by a hacker, or other communications may occur that transmit unsecured data over a network before being encrypted or after being decrypted, leaving them open to attack inside the initial network.The only protection available is solid software architecture and implementation.

In conclusion, standardized communications adds new security problems, but there are solutions.The primary difficulties are retaining secrecy, authentication, and signal integrity. There are two basic types of security algorithms to deal with these issues: public-key encryption and ciphers. RSA public-key encryption does not assure authentication and is slow, but it has excellent signal-integrity and secrecy. Ciphers do have great secrecy and need careful management of keys, but have good authentication and reasonable secrecy. A combination of the two encryption types, such as the SSL implementation will handle all three problems, and for connection-based protocols, makes an excellent solution. Finally, practical issues with key size are important, and highly secure algorithms are commercially available.