# Unit 1 : Cryptography Basics

Introduction and Key Terms

LEARN CRYPO & PKI

« La Citadelle électronique » Cryptography A technology for protecting you digital asset And then design Security Solution

Introduction and Key Terms

Unit 1 : Cryptography Basics

TRAINING CRYPTOGRAPHY & PKI

Author:

Sylvain Maret Security architect, PKI instructor & Checkpoint instructor (Checkpoint CCSE) Dimension Data (Swiss) formerly Datelec Cédric Enzler IPSEC & cryptographic engineer, PKI instructor Dimension Data (Swiss) formerly Datelec

Revision:

Version 1.5, October 1999, rev. August 2000

Unit 1 : Cryptography Basics

Introduction and Key Terms

Learn Crypo & PKI _______________________________________________1 Training Cryptography & PKI ______________________________________2 Table of contents _________________________________________________3 1. Cryptography Basics ___________________________________________5
1.1. 1.2. 1.3. Introduction _______________________________________________________5 Key terms _________________________________________________________5 Miscellaneous Cryptosystems _________________________________________7
Secret Key __________________________________________________________ 7 Public Key __________________________________________________________ 7 Message Digest ______________________________________________________ 7

1.3.1. 1.3.2. 1.3.3.

1.4. 1.5. 1.6.

Cryptography in history _____________________________________________8 Cryptoanalysis ____________________________________________________20 AES (Advanced Encryption Standard) ________________________________22
Overview of the AES Development Effort ________________________________ 22 Minimum Acceptability Requirements ___________________________________ 23 AES Round 2 Finalists ________________________________________________ 23 Introduction ________________________________________________________ What kinds of Smart Cards are available? _________________________________ Symmetric / Asymmetric Cryptoprocessing _______________________________ Smart Cards with different “flavor” ______________________________________ Memory Cards ______________________________________________________ Symmetric Cryptoprocessor Cards ______________________________________ PKI Smart Cards ____________________________________________________ 25 25 26 26 26 27 27

1.6.1. 1.6.2. 1.6.3.

1.7.

Smart Cards ______________________________________________________25

1.7.1. 1.7.2. 1.7.3. 1.7.4. 1.7.5. 1.7.6. 1.7.7.

2. PKI Applications (lab exercises)_________________________________29
2.1. 2.2. 2.3. Symmetric file encryption ___________________________________________29
Lab Exercise 1 ______________________________________________________ 29 Lab Exercise 2 ______________________________________________________ 33 Introduction ________________________________________________________ 37 Blowfish Advanced CS _______________________________________________ 37 Lab Exercise 3 ______________________________________________________ 40 The PGP Symmetric Algorithms ________________________________________ About PGP Data Compression Routines __________________________________ About the Random Numbers used as Session Keys__________________________ About the Message Digest _____________________________________________ Encryption and Decryption ____________________________________________ Digital Signature for PGP _____________________________________________ 46 47 48 48 49 50 2.1.1. 2.2.1. 2.3.1. 2.3.2. 2.3.3.

Message-Digest Algorithms __________________________________________33 Securing the desktop _______________________________________________37

2.4.

PGP (Pretty Good Privacy) __________________________________________46

2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4.5. 2.4.6.

Introduction and Key Terms 2.4.7.

Unit 1 : Cryptography Basics

Lab Exercise 4_______________________________________________________ 51 Introduction _________________________________________________________ 63 Host Authentication___________________________________________________ 64 User Authentication___________________________________________________ 64 Cryptographic Methods________________________________________________ 65 Lab Exercise 5_______________________________________________________ 66 Lab Exercise 6_______________________________________________________ 79 History_____________________________________________________________ 97 Secure Sockets Layer (SSL) ____________________________________________ 97 Session Establishment _________________________________________________ 98 Key Exchange Method ________________________________________________ 99 Cipher for Data Transfer _______________________________________________ 99 Digest Function _____________________________________________________ 100 Handshake Sequence Protocol _________________________________________ 100 Data Transfer_______________________________________________________ 101 Lab Exercise 7______________________________________________________ 102 Lab Exercise 8______________________________________________________ 123 Lab Exercise 9______________________________________________________ 138 Lab Exercise 10_____________________________________________________ 140

2.5.

The SSH Protocol _________________________________________________ 63

2.5.1. 2.5.2. 2.5.3. 2.5.4. 2.5.5.

2.6. 2.7.

S/MIME _________________________________________________________ 79 SSL _____________________________________________________________ 97

2.6.1. 2.7.1. 2.7.2. 2.7.3. 2.7.4. 2.7.5. 2.7.6. 2.7.7. 2.7.8. 2.7.9. 2.7.10.

2.8. 2.9. 2.10.

Smart Card _____________________________________________________ 138 Playing the security officer _________________________________________ 140 Revocation with client SSL authentication __________________________ 143
Lab Exercise 11_____________________________________________________ 143

2.8.1. 2.9.1. 2.10.1.

2.11.
2.11.1. 2.11.2. 2.11.3. 2.11.4. 2.11.5.

IPSEC ________________________________________________________ 147
Introduction ________________________________________________________ 147 IPSec Architecture___________________________________________________ 148 IPSec Tunneling ____________________________________________________ 149 IKE Main Mode and Quick Mode_______________________________________ 154 Lab Exercise 12_____________________________________________________ 157

Unit 1 : Cryptography Basics

Introduction and Key Terms

1. CRYPTOGRAPHY BASICS
1.1. INTRODUCTION
It is likely that almost all students attending our “introduction to PKI” already have at least a basic knowledge of encryption and related subjects. Consequently, some of you might wish to skip this chapter: defining a terminology or a set of cryptography key terms is austere. However, we decided to begin with this less exciting section because we noticed, in many discussions with people familiar to the field, that terms definitions are often mixed up. As a result, we decided to start with simple definitions of key terms, which will be used constantly in the course, in order to provide the basis needed to understand the subject.

1.2. KEY TERMS
A message will be defined as plaintext or cleartext. The process of disguising a message to hide its substance is encryption. The encrypted message is refered to as ciphertext.

Decryption is the process turning cyphertext back into plaintext.
You can see hereafter a schematic view of these definitions:

Cryptography Key Terms Figure 1

Cryptography is the science allowing messages to be kept secure. Cryptanalysis is the art and science of breaking ciphertext (seeing through the above disguise). Cryptology is the mathematics branch encompassing both cryptography and cryptanalysis.
Today, as cryptology is based on mathematical properties of numbers both in modern algebra and number theory, cryptologists are theoretical mathematicians.

Introduction and Key Terms

Unit 1 : Cryptography Basics

Encryption and decryption are conducted by way of a set of mathematical functions, referred to as cryptographic algorithm or cipher. Besides providing confidentiality, cryptography is required to provide other security feature, as:

-

Authentication: It should be possible for the receiver of an encrypted message to be certain of the sender’s identity. Authentication is the process that guarantees the respect of this rule. Non repudiation: Inability of a sender to certify he was not the sender of the ciphertext. Integrity: Provides a guarantee that the message was not modified between the sender and the receiver.

First ciphers or cryptographic algorithms suffered a major drawback : their security was based on the secrecy of the algorithm itself. As a result, every time a user was leaving the group of people knowing the algorithm, all other users had to switch to a different one! We understand today that this is not acceptable, therefore these ciphers, called restricted algorithms, are not used anymore. Modern cryptography worked around this drawback by introducing the concept of key. In these algorithms, security is based on key(s), meaning that the algorithm can be published at no risk. In most cases, the key used for encryption is not the same as the one used for decryption. As a result, the above diagram is modified as follows:

Cryptography Key Terms Figure 2 A cryptosystem consists of a cipher, keys and all possible plaintexts and ciphertexts. In some algorithms, the decryption key can be calculated from the encryption key. Both keys can be similar or different. In this case, we talk about symmetric encryption (see further in the course). In some other algorithms, both keys cannot be calculated from each other: this is called asymmetric encryption or Public-Key encryption.

Unit 1 : Cryptography Basics

Miscellaneous Cryptosystems

1.3. MISCELLANEOUS CRYPTOSYSTEMS
Today’s cryptosystems do not rely on simple text shifts or substitution techniques, like those described in the beginning of the next section, but rather on sophisticated mathematical algorithms that theoretically would use an unreasonable amount of computer power and time to break. The range of applications using cryptography to solve everyday problems is growing. Today, exchanging information is so easy and the amount of information we routinely exchange is so far greater than ever before, that the need to secure that information and have secure means of transmitting it is of considerable importance. Records ranging from personal medical data to credit card purchases that were once relatively easy to secure in hard copy now flow freely over public networks. Today, the use of cryptography has shifted from a “weapon” conceived primarily for military applications and espionage to a valuable and indispensable tool the general public to conduct everyday, routine transactions

1.3.1. Secret Key
This cryptosystem – sometimes referred to as Symmetric Key Encryption, this is a rather straightforward cryptographic system in which plain text is encrypted by providing the encryption algorithm with a value; this value is the secret key. Only the parties that know the secret key value are able to decrypt the resulting cyphertext.

1.3.2. Public Key
Sometimes referred to as Asymmetric Key Encryption, this type of cryptosystem relies on a key set composed of two elements: a private key and a public key. The public key is typically stored in a location available to anyone. When someone wants to send an encrypted message to another party, he obtains that party’s public key and uses it to encrypt the message. As the recipient is in possession of the private component of the key, only he can decrypt s the message.

Miscellaneous Cryptosystems Figure 1

1.3.3. Message Digest
This type of cryptosystem is often called a hashing function. With this technology, a variable length message is run through the encryption algorithm to produce a fixed length digest through the algorithm to produce the original message. All three cryptosystems are used in most Public Key Infrastructure implementations. They will be described in more details in the following sections. © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 7

Cryptography in History

Unit 1 : Cryptography Basics

1.4. CRYPTOGRAPHY IN HISTORY
Cryptography is one of the oldest fields of technical study we can find records of, going back at least 4,000 years. It is quite noteworthy that, of all the cryptosystems developed in those 4,000 years of effort, only 3 systems remain hard enough to break to be of real value. Cryptography probably began in or around 2000 B.C. in Egypt, where hieroglyphics were used to decorate the tombs of deceased rulers and kings. These hieroglyphics told the story of the life of the king and proclaimed the great acts of his life. They were purposefully cryptic, but not apparently intended to hide the text. Rather, they seem to have been intended to make the text seem more regal and important. As time went by, these writings became more and more complicated, and eventually the people lost interest in deciphering them.

Cryptography in History Figure 1: Hieroglyphics Cryptology was (and still is to some extent) enshrouded in a veil of mystique to most people. It was because of this that the public began to acquaint cryptography with the black arts. It was often thought to be related to communication with dark spirits, and developed a bad image because of this. Most early cryptographers were scientists, but the common people were often convinced that they were also followers of the devil. The ancient Chinese used the ideographic nature of their language to hide the meaning of words. Messages were often transformed into ideographs for privacy, but no substantial use in early Chinese military conquests is apparent. Genghis Khan, for example, seems never to have used cryptography. In India, secret writing was apparently more advanced. The government used secret codes to communicate with a network of spies spread throughout the country. Early Indian ciphers consisted mostly of simple alphabetic substitutions, often based on phonetics. Some of these were spoken or used as sign language. This is somewhat similar to "pig latin" (igpay atinlay) where the first consonant is placed at the end of the word and followed by the sound "ay".

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 8

Unit 1 : Cryptography Basics

Cryptography in History

The cryptographic history of Mesopotamia was similar to that of Egypt, in that cuneiforms were used to encipher text. The picture here under shows table of numbers found in Suse (Iran modern). These numbers were associated to words, demonstrating an amazingly modern level of cryptography.

Cryptography in History Figure 2: Mesopotamian tables This technique was also used in Babylon and Assyria. In the Bible, a Hebrew ciphering method is used at times. In this method, the last letter of the alphabet is replaced by the first, and vice versa. This is called 'atbash'. For example, the following table gives a translation of this sort for English. The word "HELLO" becomes "SVOOL". Try to decrypt the word "WVXIBKG" and see what you get. ABCDEFGHIJKLMNOPQRSTUVWXYZ ZYXWVUTSRQPONMLKJIHGFEDCBA Cryptography in History Figure 3: An “Atbash” cipher In the famous Greek drama the 'Iliad', cryptography was used when Bellerophon was sent to the king with a secret tablet, which told the king to have him put to death. The king tried to kill him by having him fight several mythical creatures, but he won every battle. The Spartans used a system, which consisted of a thin sheet of papyrus wrapped around a staff (now called a "staff cipher"). Messages were written down the length of the staff, and the papyrus was unwrapped. In order to read the message, the papyrus had to be wrapped around a staff of equal diameter. Called the 'skytale' cipher, this was used in the 5th century B.C. to send secret messages between Greek warriors. Without the right staff, it would be difficult to decode the message using the techniques available at that time. The following version of the alphabet demonstrates the technique. First we see the wrapped version of the alphabet, then the unwrapped version.

Cryptography in History Figure 4: A “Skytale” cypher

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 9

Cryptography in History

Unit 1 : Cryptography Basics

Polybius developed another Greek method (now called the "Polybius Square"). The letters of the alphabet would be laid out in a five by five square (similar to the later Playfair method), with i and j occupying the same square. Rows and columns are numbered 1 to 5 so that each letter has a corresponding (row,column) pair. These pairs could easily be signaled by torches or hand signals. Decryption consists of mapping the digit pairs back into their corresponding characters. This system was the first to reduce the size of the symbol set, and in a loose sense it might be considered the forerunner of modern binary representations of characters.

Cryptography in History Figure 5: The “Polybius Square” Julius Ceasar used a system of cryptography (i.e. the 'Caesar Cipher') which shifted each letter 2 places further through the alphabet (e.g. Y shifts to A, R shifts to T, etc.). This is probably the first cipher used by most schoolchildren. In figure 5, the first row is plaintext, while the second row is the equivalent ciphertext. The distance of the displacement is not important to the scheme, and in fact, neither is the lexical ordering chosen. The general case of this sort of cipher is the "monoalphabetic substitution cipher" wherein each letter is mapped into another letter in a one to one fashion. Try decoding VJKU.
ABCDEFGHIJKLMNOPQRSTUVWXYZ CDEFGHIJKLMNOPQRSTUVWXYZAB

Cryptography in History Figure 6: The “Caesar” cypher Cryptanalysis is the practice of changing ciphertext into plaintext without complete knowledge of the cipher. The Arabs were the first to make significant advances in cryptanalysis. An Arabic author, Qalqashandi, wrote down a technique for solving ciphers which is still used today. The technique is to write down all the ciphertext letters and count the frequency of each symbol. Using the average frequency of each letter of the language, the plaintext can be written out. This technique is powerful enough to cryptanalyze ANY monoalphabetic substitution cipher if enough cyphertext is provided. During the Middle Ages, cryptography started to progress. All of the Western European governments used cryptography in one form or another, and codes started to become more popular. Ciphers were commonly used to keep in touch with ambassadors. The first major advances in cryptography were made in Italy. Venice created an elaborate organization in 1452 with the sole purpose of dealing with cryptography. They had three cipher secretaries who solved and created ciphers that were used by the government.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 10

Unit 1 : Cryptography Basics

Cryptography in History

Leon Battista Alberti was known as "The Father of Western Cryptology" in part because of his development of polyalphabetic substitution. Polyalphabetic substitution is any technique allowing different ciphertext symbols to represent the same plaintext symbol. This makes it more difficult to interpret ciphertext using frequency analysis. In order to develop this technique, Alberti analyzed the methods for breaking ciphers, and devised a cipher which would try to render these techniques invalid. He designed two copper disks that fit into each other, each with the alphabet inscribed upon it. To start enciphering, a predetermined letter on the inner disk is lined up with any letter on the outer disk, which is written as the first character of the ciphertext. The disks are kept stationary, with each plaintext letter on the inner disk aligned with a ciphertext letter on the outer disk. After a few words of ciphertext, the disks are rotated so that the index letter on the inner disk is aligned with a new letter on the outer disk, and in this manner, the message is enciphered. By rotating the disk every few words, the cipher changed enough to limit the effectiveness of frequency analysis. Even though this technique in its stated form is very weak, the idea of rotating the disks and therefore changing the cipher many times within a message was a major breakthrough in cryptography. The next major step was taken in 1518 by Trithemius, a German monk who had a deep interest in the occult. He wrote a series of six books called 'Polygraphia', and in the fifth book, devised a table that repeated the alphabet with each row a duplicate of the one above it, shifted over one letter. To encode a message, the first letter of the plaintext is enciphered with the first row of the table, the second letter with the second row, and so on. This produces a message where all available ciphers are used before being repeated. Figure 7 shows a changing key cipher of this sort. Notice that the assignment of code symbols to plaintext symbols changes at each time step (T1,T2,...). In this system, the key repeats every 26 letters of ciphertext. Here under we see the table used (called tabula recta) as well as successiv encryption step

Cryptography in History Figure 7: “Tabula recta”
ABCDEFGHIJKLMNOPQRSTUVWXYZ FGUQHXSZACNDMRTVWEJBLIKPYO OFGUQHXSZACNDMRTVWEJBLIKPY YOFGUQHXSZACNDMRTVWEJBLIKP PYOFGUQHXSZACNDMRTVWEJBLIK GUQHXSZACNDMRTVWEJBLIKPYOF Plaintext T0 T1 T2 T3 T25

Cryptography in History Figure 8: A “Changing Key” cipher

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 11

Cryptography in History

Unit 1 : Cryptography Basics

In 1553, Giovan Batista Belaso extended this technique by choosing a keyword that is written above the plaintext, in a letter to letter correspondence. The keyword is restarted at the beginning of each new plaintext word. The letter of the keyword above the letter of the plaintext is the first letter of the cipher line to be used. In other words, if the plaintext letter is 'b', and it's keyword letter is 'r', then the line of the Trithemius cipher beginning with 'r' is used to encipher the letter 'b'. He chose to name the keyword a “password”…
Keyword : Plaintext : BEL ASOBELA SOB ELASOB LES ITALIENS ONT TROUVE

The basic keyword is BELASO in this example.

The most famous cryptographer of the 16th century was Blaise de Vigenere (1523-1596). In 1585, he wrote 'Tracte des Chiffres' in which he used a Trithemius table, but changed the way the key system worked. One of his techniques was to use plaintext as its own key. Another used ciphertext. The way in which these keys are used is known as key scheduling, and is an integral part of the "Data Encryption Standard" (DES) which we will discuss later.

Cryptography in History Figure 9

Until 1917, Vigene cipher was considered as impossible to decrypt. In 1628, a Frenchman named Antoine Rossignol helped his army defeat the Huguenots by decoding a captured message. After this victory, he was called upon many times to solve ciphers for the French government. He used two lists to solve his ciphers: "one in which the plain elements were in alphabetical order and the code elements randomized, and one to facilitate decoding in which the code elements stood in alphabetical or numerical order while their plain equivalents were disarranged." When Rossignol died in 1682, his son, and later his grandson, © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 12

Unit 1 : Cryptography Basics

Cryptography in History

continued his work. By this time, there were many cryptographers employed by the French government. Together, they formed the "Cabinet Noir" (the "Black Chamber"). By the 1700's, "Black Chambers" were common in Europe, one of the most renown being that in Vienna. It was called 'The Geheime Kabinets-Kanzlei' and was directed by Baron Ignaz de Koch between 1749 and 1763. This organization read through all the mail coming to foreign embassies, copied the letters, resealed them, and returned them to the post-office the same morning. The same office also handled all other political or military interceptions, and would sometimes read as many as 100 letters a day. The English Black Chamber was formed by John Wallis in 1701. Until that time, he had been solving ciphers for the government in a variety of unofficial positions. After his death in 1703, his grandson, William Blencowe, who was taught by his grandfather, took over his position and was granted the title of Decypherer. The English Black Chamber had a long history of victories in the cryptographic world. In the colonies, there was no centralized cryptographic organization. Decryption was done predominantly by interested individuals and men of the cloth. In 1775, a letter intercepted from Dr. Benjamin Church was suspected to be a coded message to the British, yet the American revolutionaries could not decipher it. Their problem was solved by Elbridge Gerry, who later became the fifth Vice-President, and Elisha Porter. The message proved Church guilty of trying to inform the Tories, and he was later exiled. Benedict Arnold used a code wherein each correspondent has an exact copy of the same 'codebook'. Each word of plaintext is replaced by a number indicating its position in the book (e.g. 3.5.2, means page 3, line 5, word 2). Arnold's correspondent was caught and hung, so the codebook wasn't used very much. The revolutionaries also employed ciphers during the war. Samuel Woodhull and Robert Townsend supplied General George Washington with much information about British troop strength and movements in and around New York City. The code they used consisted of numbers, which replaced plaintext words. Major Benjamin Tallmadge wrote this code. For further assurance, they also used invisible ink. The father of American cryptology is James Lovell. He was loyal to the colonies, and solved many British ciphers, some which led to Revolutionary victories. In fact, one of the messages that he deciphered set the stage for the final victory of the war. Former Vice-President Aaron Burr and his assistant General James Wilkinson were exploring the Southwest for possible colonization at the expense of Spain, and there was some confusion as to whether this colony would belong to the United States or Aaron Burr. Wilkinson was a Spanish agent, and changed one of Burr's encrypted letters home to make it appear as if Burr's intentions were to carve out his own country. This letter fell into the hands of President Thomas Jefferson. Burr was tried and acquitted, but his name was tainted forever. The 'wheel cipher' was invented by Thomas Jefferson around 1795, and although he never did very much with it, a very similar system was still in use by the US navy only a few years ago. The wheel cipher consisted of a set of wheels, each with random orderings of the letters of the alphabet. The key to the system is the ordering in which the wheels are placed on an axle. The message is encoded by aligning the letters along the rotational axis of the axle such that the desired message is formed. Any other row of aligned letters can then be used as the ciphertext for © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 13

Cryptography in History

Unit 1 : Cryptography Basics

transmission. The decryption requires the recipient to align the letters of the ciphertext along the rotational axis and find a set of aligned letters that makes linguistic sense as plaintext. This will be the message. There is a very small probability that there will be two sensible messages from the decryption process, but this can be checked simply by the originator. Without knowing the orderings of symbols on the wheels and the ordering of wheels on the axle, any plaintext of the appropriate length is possible, and thus the system is quite secure for one time use. Statistical attacks are feasible if the same wheels are used in the same order many times.
Wheel 1 Wheel 2 Wheel 3 ... Wheel n GJTXUVWCHYIZKLNMARBFDOESQP IKMNQLPBYFCWEDXGZAJHURSTOV HJLIKNXWCGBDSRVUEOFYPAMQZT BDFONGHJIKLSTVUWMYEPRQXZAC

Cryptography in History Figure 10: A “Wheel” cipher In 1817, Colonel Decius Wadsworth developed a set of two disks, one inside the other, where the outer disk had the 26 letters of the alphabet, and the numbers 2-8, and the inner disk had only the 26 letters. The disks were geared together at a ratio of 26:33. To encipher a message, the inner disk is turned until the desired letter is at the top position, with the number of turn required for this result transmitted as ciphertext. Because of the gearing, a ciphertext substitution for a character will not repeat itself until all 33 characters for that plaintext letter have been used. Unfortunately, Wadsworth never got credit for his design, because Charles Wheatstone invented an almost identical machine a few years after Wadsworth, and got all the credit. In 1844, the development of cryptography was dramatically altered by the invention of the telegraph. Communication with the telegraph was by no means secure, so ciphers were needed to transmit secret information. The public's interest in cryptography blossomed, and many individuals attempted to formulate their own cipher systems. The advent of the telegraph provided the first instance where a base commander could be in instant communication with his field commanders during battle. Thus, a field cipher was needed. At first, the military used a Vigenere cipher with a short repeating keyword, but in 1863, a solution was discovered by Friedrich W. Kasiski for all periodic polyalphabetic ciphers, which until this time were considered unbreakable. So the military had to search for a new cipher to replace the Vigenere. The Black Chambers of Europe continued to operate and were successful in solving most American ciphers, but without a war underway, their usefulness was diminished, and by 1850 they were dissolved.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 14

Unit 1 : Cryptography Basics

Cryptography in History

The 'Playfair' system was invented by Charles Wheatstone and Lyon Playfair in 1854, and was the first system that used pairs of symbols for encryption. The alphabet is laid out in a random 5 x 5 square, and the text is divided into adjacent pairs. The two letters of the pair are located, and a rectangle is formed with the two letters at opposite corners. The letters at the other two corners are the two letters of ciphertext. This is very simple to use, but is not extremely difficult to break. The real breakthrough in this system was the use of two letters at a time. The effect is to make the statistics of the language less pronounced, and therefore to increase the amount of work and the amount of ciphertext required to determine a solution. This system was still in limited use in World War 2, and was very effective against the Japanese.
I L C G R K P W Z S M B E A T N Y D H O Q F X U V PL AI NT EX TZ LP MG MO XE AS

Plaintext: Ciphertext:

In 1859, Pliny Earle Chase, developed what is known as the fractionating or tomographic cipher. A two digit number was assigned to each character of plaintext by means of a table. These numbers were written so that the first numbers formed a row on top of the second numbers. The bottom row was multiplied by nine, and the corresponding pairs are put back in the table to form the ciphertext. Kasiski developed a cryptanalysis method in 1863, which broke almost every existing cipher of that time. The method was to find repetitions of strings of characters in the ciphertext. The distance between these repetitions is then used to find the length of the key. Since repetitions of identically ciphered identical plaintext occur at distances that are a multiple of the key length, finding greatest common divisors of repetition distances will lead to the key length. Once the key length (N) is known, we use statistics on every Nth character and the frequency of use implies which character it represents in that set of ciphertext symbols. These repetitions sometimes occur by pure chance, and it sometimes takes several tries to find the true length of the key using this method, but it is considerably more effective than previous techniques. This technique makes cryptanalysis of polyalphabetic substitution ciphers quite straight forward. During the Civil War (1861-1865), ciphers were not very complex. Many techniques consisted merely of writing words in a different order and substituting code words for proper names and locations. Where the Union had centralized cipher control, the Confederacy tended to let field commanders decide their own forms of ciphers. The Vigenere system was widely used by field commanders, and sometimes led to the Union deciphering messages faster than their Confederate recipients. The Confederacy used three keywords for most of its messages during the War, "Manchester Bluff", "Complete Victory", and "Come Retribution". They were quickly discovered by three Union cryptanalysts Tinker, Chandler, and Bates, and messages encoded using them were regularly deciphered by the Union. The use of common words as keys to cryptosystems has caused many plaintext messages to be discovered. In fact, the use of common words for passwords is the most common entry point in modern computer system attacks.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 15

Cryptography in History

Unit 1 : Cryptography Basics

In 1883, Auguste Kerckhoffs wrote 'La Cryptographie Militaire' in which he set forth six basic requirements of cryptography. We note that the easily remembered key is very amenable to attack, and that these rules, as all others, should be questioned before placing trust in them. 1. 2. 3. 4. 5. 6. Ciphertext should be unbreakable. The cryptosystem should be convenient for the correspondents. The key should be easily remembered and changeable. The ciphertext should be transmissible by telegraph. The cipher apparatus should be easily portable. The cipher machine should be relatively easily to use.

In the beginning of the 20th century, war was becoming likely in Europe. England spent a substantial effort improving its cryptanalytic capabilities so that when the war started, they were able to solve most enemy ciphers. The cryptanalysis group was called 'Room 40' because of its initial location in a particular building in London. Their greatest achievements were in solving German naval ciphers. These solutions were greatly simplified because the Germans often used political or nationalistic words as keys, changed keys at regular intervals, gave away intelligence indicators when keys were changed, etc. Just as the telegraph changed cryptography in 1844, the radio changed cryptography in 1895. Now transmissions were open for anyone's inspection, and physical security was no longer possible. The French had many radio stations by WW1 and intercepted most German radio transmissions. The Germans used a double columnar transposition that they called 'Ubchi', which was easily broken by French cryptanalysts. In 1917, the Americans formed the cryptographic organization MI-8. Its director was Herbert Osborne Yardley. They analyzed all types of secret messages, including secret inks, encryption, and codes. They continued with much success during and after WW1, but in 1929, Herbert Hoover decided to close them down because he thought it was improper to "read others' mail". Yardley was hard pressed to find work during the depression, so to feed his family, he wrote a book describing the workings of MI-8. It was titled "The American Black Chamber", and became a best seller. Many criticized him for divulging secrets and glorifying his own actions during the War. Another American, William Frederick Friedman, worked with his wife, Elizabeth Smith, to become "the most famous husband-and-wife team in the history of cryptology". He developed new ways to solve Vigenere-like ciphers using a method of frequency counts and superimposition to determine the key and plaintext. Up to 1917, transmissions sent over telegraph wires were encoded in Baudot code for use with teletypes. The American Telephone and Telegraph company was very concerned with how easily these could be read, so Gilbert S. Vernam developed a system which added together the plaintext electronic pulses with a key to produce ciphertext pulses. It was difficult to use at times, because keys were cumbersome. Vernam developed a machine to encipher messages, but the system was never widely used. The use of cryptographic machines dramatically changed the nature of cryptography and cryptanalysis. Cryptography became intimately related to machine design, and security personnel became involved with the protection of these machines. The basic systems remained the same, but the method of encryption became reliable and electromechanical.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 16

Unit 1 : Cryptography Basics

Cryptography in History

In 1929, Lester S. Hill published an article "Cryptography in an Algebraic Alphabet" in "The American Mathematical Monthly". Each plaintext letter was given a numerical value. He then used polynomial equations to encipher plaintext, with values over 25 reduced modulo 26. To simplify equations, Hill transformed them into matrices, which are more easily multiplied. This method eliminates almost all ciphertext repetitions, and is not broken with a normal frequency analysis attack. It has been found that if a cryptanalyst has two different ciphertexts from the same plaintext, and if they use different equations of the same type, the equations can be solved, and the system is thus broken. To counter charges that his system was too complicated for day to day use, Hill constructed a cipher machine for his system using a series of geared wheels connected together. One problem was that the machine could only handle a limited number of keys, and even with the machine, the system saw only limited use in the encipherment of government radio call signs. Hill's major contribution was the use of mathematics to design and analyze cryptosystems. The next major advance in electromechanical cryptography was the invention of the rotor. The rotor is a hick disk with two faces, each with 26 brass contacts separated by insulating material. Each contact on the input (plaintext) face is connected by a wire to a random contact on the output (ciphertext) face. Each contact is assigned a letter. An electrical impulse applied to a contact on the input face will result in a different letter being output from the ciphertext face. The simple rotor thus implements a monoalphabetic substitution cipher. This rotor is set in a device which takes plaintext input from a typewriter keyboard and sends the corresponding electrical impulse into the plaintext face. The ciphertext is generated from the rotor and printed and/or transmitted. The next step separates the rotor from previous systems. After each letter, the rotor is turned so that the entire alphabet is shifted one letter over. The rotor is thus a "progressive key polyalphabetic substitution cipher with a mixed alphabet and a period of 26". A second rotor is then added, which shifts its position one spot when the first rotor has completed each rotation. Each electrical impulse is driven through both rotors so that it is encrypted twice. Since both rotors move, the alphabet now has a period of 676. As more rotors are added the period increases dramatically. With 3 rotors, the period is 17,576, with 4 it is 456,976, and with 5 it is 11,881,376. In order for a 5 rotor cipher to be broken with frequency analysis, the ciphertext must be extremely long. The rotor system can be broken because, if a repetition is found in the first 26 letters, the cryptanalyst knows that only the first rotor has moved, and that the connections are changed only by that movement. Each successive set of 26 letters has this property, and using equations, the cryptanalyst can completely determine this rotor, hence eliminating one rotor from the whole problem. This can be repeated for each successive rotor as the previous rotor becomes known, with the additional advantage that the periods become longer, and thus they are guaranteed to have many repetitions. This is quite complex to do by hand. The first rotor machine was invented by Edward Hugh Hebern in 1918, and he instantly realized what a success it could be. He founded a company called Hebern Electric Code, which he promised would be a great financial success. The company died in a bitter struggle, the Government bought some of his machines, and he continued to produce them on his own, but never with great success.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 17

Cryptography in History

Unit 1 : Cryptography Basics

During Prohibition, alcohol was transported into the country by illegal smugglers (i.e. rum runners) who used coded radio communication to control illegal traffic and help avoid Coast Guard patrols. In order to keep the Coast Guard in the dark the smugglers used an intricate system of codes and ciphers. The Coast Guard hired Mrs. Elizabeth Smith Friedman to decipher these codes, and thus forced the rum runners to use more complex codes, and to change their keys more often. She succeeded in sending many rum runners to jail. During WW2, the neutral country Sweden had one of the most effective cryptanalysis departments in the world. It was formed in 1936, and by the time the war started, employed 22 people. The department was divided into groups, each concerned with a specific language. The Swedes were very effective in interpreting the messages of all the warring nations. They were helped, however, by bungling cryptographers. Often the messages that were received were haphazardly enciphered, or even not enciphered at all. The Swedes even solved a German cipher that was implemented on a Siemens machine similar to a Baudot machine used to encipher wired messages. During WW2, the Americans had great success at breaking Japanese codes, while the Japanese, unable to break US codes, assumed that their codes were also unbreakable. Cryptanalysis was used to thwart the Japanese attack on Midway, a decisive battle in the South Pacific. The US had been regularly reading Japanese codes before the attack on Pearl Harbor, and knew of the declaration of war that was presented to the President just after the attack on Pearl Harbor, several hours before the Japanese embassy in Washington had decoded it. German codes in WW2 were predominantly based on the 'Enigma' machine, which is an extension of the electromechanical rotor machine discussed above. A British cryptanalysis group, in conjunction with an escaped group of Polish cryptanalysts, first broke the Enigma early in WW2, and some of the first uses of computers were for decoding Enigma ciphers intercepted from the Germans. The fact that these codes were broken was of such extreme sensitivity, that advanced knowledge of bombing raids on England was not used to prepare for the raids. Instead, much credit was given to radar, and air raids were given very shortly before the bombers arrived. In 1948, Shannon published "A Communications Theory of Secrecy Systems". Shannon was one of the first modern cryptographers to attribute advanced mathematical techniques to the science of ciphers. Although the use of frequency analysis for solving substitution ciphers was begun many years earlier, Shannon's analysis demonstrates several important features of the statistical nature of language that make the solution to nearly all previous ciphers very straight forward. Perhaps the most important result of Shannon's famous paper is the development of a measure of cryptographic strength called the 'unicity distance'. The unicity distance is a number that indicates the quantity of ciphertext required in order to uniquely determine the plaintext of a message. It is a function of the length of the key used to encipher the message and the statistical nature of the plaintext language. Given enough time, it is guaranteed that any cipher can be broken given a length of ciphertext such that the unicity distance is 1. Shannon noted that in a system with an infinite length random key, the unicity distance is infinite, and that for any alphabetic substitution cipher with a random key of length greater than or equal to the length of the message, plaintext cannot be derived from ciphertext alone. This type of cipher is called a "one-time-pad", because of the use of pads of paper to implement it in WW2 and before. © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 18

Unit 1 : Cryptography Basics

Cryptography in History

The story of cryptography would be finished if it weren't for the practical problem that, in order to send a secret message, an equal amount of secret key must first be sent. This problem is not severe in some cases, and it is apparently used on the hot line between Moscow and Washington, but it is not the ultimate solution for many practical situations. For most human (and computer) languages, a key of given length can only be guaranteed safe for 2-3 times the length of the key. From this analysis, it appears that any system with a finite key is doomed to fail, but several issues remain to be resolved before all hope of a finite key cryptography is abandoned.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 19

Cryptoanalysis

Unit 1 : Cryptography Basics

1.5. CRYPTOANALYSIS
As stated earlier, the strength of a cryptosystem lies in the key and whether or not the algorithm has stood the test of time in a public forum. There are two terms used to describe the degree of difficulty, sometimes called computational difficulty, associated with breaking a particular cryptosystem: Computationally secure: With a cryptosystem that is said to be computationally secure, it is understood that given enough computing power and disk storage space the system could eventually be broken. However, unless the cryptosystem is flawed in some fundamental way, the amount of time and computing power necessary to break the system would either be too costly or unreasonable. For example, given today’s technology, it would take an amount of time approximately equal to the age of the universe to break the cryptosystem! A cryptosystem that can never be broken even if an infinite amount of resources were dedicated to the effort is said to be unconditionally secure.

Unconditionally secure:

By making the code of a cryptographic system available to the world, cryptographers have the opportunity to do what they can to break a cryptosystem. Often, cryptographers will have a high degree of computing power at their disposal: much more so than the average individual. This is what is known as cryptoanalysis. In this field, a cryptanalyst deploys a variety of tools and methods to break a cryptosystem, however, it does not necessarily mean that the entire algorithm has been compromised. In fact, there are different levels of weaknesses one can discover in a cryptosystem: Information deduction: This is the lowest level weakness in which the cryptanalyst is able to discover portions of the key or some information about the plain text from the cipher text. The cryptanalyst is able to find the plaintext of a given intercepted cipher. The cryptanalyst devises an algorithm that can decrypt the ciphertext created from another algorithm. The cryptanalyst can recover the key and decrypt any encrypted message.

Instance deduction: Global deduction: Total break:

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 20

Unit 1 : Cryptography Basics

Cryptoanalysis

There are a variety of methods one can use to break a cipher. The easiest way is to obtain the key either through social engineering, chance or some form of coercion. These however, are not cryptanalytic techniques: Ciphertext only: In this scenario, the cryptanalyst only has cipher text to work with. If this is the case, one approach may be to user a brute-force attack in which the cryptanalyst attempts to try all possible combinations of keys. If the key is based on a pass phrase, often the cryptanalyst can engage a dictionary attack in which he tries common words and combinations The cryptanalyst chooses the cipher text and attempts to obtain the corresponding plaintext.

Chosen ciphertext:

Adaptive chosen ciphertext:This is a variation of the attack outlined above in which the cryptanalyst has free user of decryption hardware, but is unable to extract the encryption key from it. Known plaintext: The cryptanalyst may have the benefit of obtaining plaintext that corresponds to some ciphertext. With these two elements, the cryptanalyst may be able to derive the key with which to decipher any text encrypted with that key. A variant of the known plaintext attack in which the cryptanalyst can select the plaintext to use for the analysis and and then obtain the corresponding ciphertext.

Chosen plaintext:

Adaptive chosen plaintext: A variation of the chosen plaintext attack in which the cryptanalyst can dynamically choose the plaintext samples. Then, he can change his selection based on the results of previous encryptions. Biological attacks: This type of attack gets its name because the technique used to break the cryptosystem resembles methods used in biology to study organisms rather than the mathematically based techniques described above. Biological techniques subject the cryptosystem different stimuli to see how it reacts and studying its input and outputs. An example would be some work done by Paul Kocher of Cryptography research in which he was able to extract various secrets from smartcards by monitoring its power consumption. Specific information on these techniques can be found at http://www.cryptography.com/dpa

Cryptanalytic attacks can be mounted against any cryptographic system including encryption algorithms, digital signature algorithms and message authentication code (MAC) algorithms to name a few.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 21

Unit 1 : Cryptography Basics

1.6.1. Overview of the AES Development Effort
The National Institute of Standards and Technology (NIST) has been working with industry and the cryptographic community to develop an Advanced Encryption Standard (AES). The overall aim is to develop a Federal Information Processing Standard (FIPS) that specifies an encryption algorithm(s) capable of protecting sensitive government information well into the next century. The algorithm(s) is expected to be used by the U.S. Government and, on a voluntary basis, by the private sector. On January 2, 1997, NIST announced the initiation of the AES development effort. They made a formal call for algorithms on September 12, 1997. The call stipulated that the AES would specify an unclassified, publicly disclosed encryption algorithm(s), available royalty-free, worldwide. In addition, the algorithm(s) must implement symmetric key cryptography as a block cipher and (at a minimum) support block sizes of 128-bits and key sizes of 128-, 192- and 256-bits. On August 20th 1998, NIST announced a group of fifteen AES algorithm candidates at the First AES Candidate Conference (AES1). Members of the cryptographic community from all over the world had submitted these algorithms. At that conference and in a simultaneously published Federal Register notice, NIST solicited public comments on the candidates. A Second AES Candidate Conference (AES2) was held in March 1999, to discuss the results of the analysis conducted by the global cryptographic community on the algorithm candidates. The public comment period on the initial algorithm review closed on April 15th 1999. Using the analyses and comments received, NIST selected five algorithms out of the fifteen. The AES finalist algorithm candidates are MARS, RC6, Rijndael, Serpent, and Twofish. NIST has developed a Round 1 Report describing the selection of the finalists. These algorithm finalists will receive further analysis during a second, more detailed review period, and this before the selection of the final algorithm(s) for the AES FIPS. NIST solicits comments on the remaining algorithms until May 15th, 2000. Comments and analysis are actively sought by NIST on any aspect of the candidate algorithm including (but not limited to) the following topics: cryptanalysis, intellectual property, crosscutting analyses of all the AES finalists, overall recommendations and implementation issues. An informal AES discussion forum is also provided by NIST for interested parties to discuss the AES finalists and relevant AES issues. Near the end of Round 2, NIST will sponsor the Third AES Candidate Conference (AES3), which is an open, public forum for discussing the analyses of the AES finalists. Submitters of the AES finalists will be invited to attend the discussions and make comments on their algorithms. AES3 will be held April 13th-14th, 2000 in New York, NY, USA. Proposed papers for this conference are due to NIST by January 15th, 2000 and they will also be considered as Round 2 public comments. After the closing of the Round 2 public analysis period on May 15th, 2000, NIST intends to study all available information and propose the AES, which will incorporate one or more AES algorithms selected from the finalists. The AES will be announced as a proposed Federal Information Processing Standard (FIPS), which will be published for public review and © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 22

Unit 1 : Cryptography Basics

comments. Following the comment period, the standard will be revised, as appropriate, by NIST in response to those comments. A review, an approval and a promulgation process will also follow. If all steps of the AES development process proceed as planned, it is scheduled that the standard will be completed by the summer of 2001.

1.6.2. Minimum Acceptability Requirements
1. The algorithm must implement symmetric (secret) key cryptography. 2. The algorithm must be a block cipher. 3. The algorithm candidates shall be capable of supporting key-block combinations with sizes of 128-128, 192-128, and 256-128 bits. A submitted algorithm may support other key-block sizes and combinations, and such features will be taken into consideration during analysis and evaluation.

1.6.3. AES Round 2 Finalists
Mars – IBM Research

MARS is a shared-key (symmetric) block cipher, supporting 128-bit blocks and a variable key size. It is designed to take advantage of the powerful operations supported in today's computers, resulting in a much improved security/performance trade-off over existing ciphers. As a result, MARS offers better security than triple DES while running significantly faster than single DES. The current C implementation runs at rates of about 65 Mbit/sec. on a 200 MHz Pentium-Pro, and 85 Mbit/sec. on a 200 MHz PowerPC. In hardware, MARS can achieve a 10X-speedup factor. Moreover, both hardware and software MARS implementations are remarkably compact and fit easily on a smartcard and in other limited-resource environments. The combination of high security, high speed and flexibility makes of MARS an excellent choice for the encryption needs of this century’s world information.
TwoFish – Counterpane Bruce Schneier

Twofish is a 128-bit block cipher that accepts a variable-length key up to 256 bits. The cipher is a 16-round Feistel network with a bijective F function made up of four key-dependent 8-by-8-bit Sboxes, a fixed 4-by-4 maximum distance separable matrix over GF(28), a pseudo-Hadamard transform, bitwise rotations, and a carefully designed key schedule. A fully optimized implementation of Twofish encrypts on a Pentium Pro at 17.8 clock cycles per byte, and an 8-bit smart card implementation encrypts at 1820 clock cycles per byte. Twofish can be implemented in a 14000-gate hardware. The design of the round function and the key schedule permits a wide variety of tradeoffs between speed, software size, key setup time, gate count and memory. We have extensively cryptanalyzed Twofish : our best attack breaks 5 rounds with 222.5 chosen plaintexts and 251 efforts.
RC6 - RSA Laboratories

Like all AES ciphers, RC6 works on 128 bit blocks. It can accept variable length keys and is very similar to RC5, incorporating the results of various studies on RC5 to improve the algorithm. The studies of RC5 found that not all bits of data are used to determine the rotation amount (rotation is used extensively in RC5). However, RC6 uses multiplication to determine the rotation amount and all bits of input data to determine the rotation amount, strengthening the avalanche effect.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 23

AES (Advanced Encryption Standard) Serpent - Ross Anderson, Eli Biham, Lars Knudsen

Unit 1 : Cryptography Basics

Serpent is an AES submission by Ross Anderson, Eli Biham, and Lars Knudsen. Its authors combined the design principles of DES with the recent development of bitslicing techniques to create a very secure and very fast algorithm. While bitslicing is generally used to encrypt multiple blocks in parallel, the designers of Serpent have embraced the technique of bitslicing incorporating it into the design of the algorithm itself. Serpent uses 128 bit blocks and 256 bit keys. Like DES, Serpent includes both an initial and a final permutation of no cryptographic significance; these permutations are used to optimize the data before encryption. Serpent was released at the 5th International Workshop on Fast Software Encryption. This iteration of Serpent was called Serpent 0 and used the original DES S-boxes. After comments, the key schedule and the S-boxes were changed slightly. This new iteration of Serpent is called Serpent 1 and resists both linear and differential attacks.
Rijndael - Joan Daemen, Vincent Rijmen

The cipher has a variable block and key length. The authors have demonstrated how to extend the block and key lengths by multiples of 32 bits. The SQUARE algorithm influenced the design of Rijndael. The authors provide a Rijndael specification and a more theoretical paper on their design principles. The authors have vowed to never patent Rijndael.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 24

Unit 1 : Cryptography Basics

Smart Cards

1.7. SMART CARDS
1.7.1. Introduction
Security issues around network (Internet) connected personal computers are heavily debated today. One of the most discussed issues is weather someone can access your stored data or read and alter information you type prior to sending it over the network. If you want to do business over the Internet there are three major security services that have to be in place: 1. Authentication 2. Confidentiality 3. Non-repudiation PKI can offer those security services and seems to be the solution. PKI systems build on the uniqueness and protection of the user’s private keys. The private key should never be exposed to anyone, not even necessarily to the owner/user. Where would you trust storing the keys you use to identity yourself and sign document or agreements, order, etc… over the Internet? As you would have guessed, the answer to this question is within a Smart Card.

1.7.2. What kinds of Smart Cards are available?
There are a number of smart cards on the market today but not all of them are viable for ecommerce solutions requiring non-repudiation and remote authentication. Smart cards consists of a chip (processor or/and memory), a contact plate (generally the visual recognition point of a smart card) and a piece of plastic (ISO 7810 - 54x85x0.8 mm). Processor chips require operating software (generally named a mask). Although the chip may be the same, smart cards may be assembled and equipped by different companies providing unique operating services. Widely known producers of smart cards are, to mention a few, Gemplus, Schlumberger, Oberthur, Siemens, Giesecke & Devrient, Setec and Bull. They all provide smart cards for a broad application range. The combination of built-in chip functionality and an operating system on the chip (the mask), supporting this functionality is essential in producing smart card security. Basically all categories of cards described below offer some kind of write protection but not all of them offer read protection. What is more important, some cards can not offer processing of data (key) that only take place securely inside the chip. It should never be possible to copy "your signature". Thus, techniques where signature keys are transported, even if encrypted, from the card are simply not good enough. Therefore, in order to provide for non-repudiation services there is an obvious need to have a secure signature process inside the smart card chip.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 25

Smart Cards

Unit 1 : Cryptography Basics

Smart cards can be divided into three prime categories: 1. Memory Cards 2. Symmetric Cryptoprocessor Cards 3. PKI smart cards (our name for asymmetric cryptoprocessor cards)

1.7.3. Symmetric / Asymmetric Cryptoprocessing
The reason for dividing Cryptoprocessor Cards into a symmetric and an asymmetric part (PKI smart card) is simply because these processes are different when it comes to authentication and non-repudiation. The processor on the chip providing symmetric encryption could possibly be equipped with software (mask) enabling asymmetric encryption. Nevertheless, existing asymmetric cryptoprocessor cards are dedicated to perform the cryptographic process (commonly RSA) as fast as possible.

1.7.4. Smart Cards with different “flavor”
Remember that all smart cards are not alike, they come in different “flavors”. Many cards cannot provide support for the RSA algorithm within the card processor. And even if they do support RSA they may not be optimised to handle this process very efficiently. Far too often there are solutions in place where the smart card is nothing but a storage media for the keys. This document will describe various types of smart cards and where they typically apply.

1.7.5. Memory Cards
Access Control Plain memory cards may provide access restrictions through one or several Personal Identification Number (PIN). However, memory cards may not protect the contents of the stored information file from disclosure. A memory card can be compared to a floppy disc although providing less storage capacity. On the other hand the card reader device is less complex and less expensive compared to a floppy disc reader, thus enabling a better commercial ground for deployment in environments where a floppy disc reader may not be present. Processing Memory smart cards should probably not even be categorized as smart cards. Their processing power is restricted to perform storage operations but little else. Once a user/owner of a PIN protected file in a plain memory card has been granted read access he/she can freely retrieve the contents of the file. Hence, the actual file contents may be copied from the smart card. These cards exist with various amounts of memory and can be used in applications requiring none or limited read protection. They may for instance be useful for storing medical information necessary for emergency actions, such as your name and blood type. They may provide write protection, which enables them to be useful in other applications where adding or modifying data on the card should be restricted. However, such protection generally requires more than just a PIN code, thus the commercial use is limited. Conclusion Memory cards can not provide a secure non-repudiation service, hence not very suitable for ecommerce.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 26

Unit 1 : Cryptography Basics

Smart Cards

1.7.6. Symmetric Cryptoprocessor Cards
Access Control Symmetric cryptoprocessor smart cards may offer a sophisticated access structure. Files may be readable but not “writeable” or vice versa and if the reverse order applies, it is likely that the file contents is accessible within the card. Files may be protected by one or several passwords (PIN) and not accessible without entering the correct PIN. The PIN file itself is only “writeable” (in order to let you change your password) and accessible within the card (in order to verify the PIN you enter). Processing By using encryption it is possible to transfer information between two parties without disclosing the contents to a "third-person". This is quite useful for applications utilizing an electronic smart card purse or in connection with GSM cards. It is not only possible to have "files" write protected. In fact, it is possible with the encryption process to ensure that only an authorized party may alter information in a successful manner. Symmetric encryption is fast, by broad margin faster than asymmetric encryption. Conclusion Although symmetric encryption is fast, it has a few drawbacks. First, key management is virtually impossible from a large-scale public perspective, mainly due to the difficulty of deploying and maintaining trust, and secondly, it is not possible to provide non-repudiation services.

1.7.7. PKI Smart Cards
Access Control The basic difference between the PKI smart card and symmetric cryptoprocessor smart cards is that the former offer a secure RSA process onboard the chip. From an access point of view they are equal, what differs is the processing of RSA. In fact, it is likely that the PKI smart card additionally can offer symmetric as well as asymmetric encryption functionality. Files may be readable but not writeable or vice versa and only accessible within the card as described earlier. Files may be protected by one or several passwords (PIN) and not accessible without entering the correct PIN. This is also a necessity concerning the private key file. Processing PKI smart cards enable secure remote authentication and non-repudiation services through the use of the RSA algorithm. PKI smart cards are using a cryptoprocessor handling asymmetric encryption. The general positive effects of smart cards, i.e. ease of use and fairly low-cost equipment, apply for all cards including PKI smart cards. What makes PKI smart cards additionally beneficial compared to symmetric encryption cards is the possibility to provide a scalable solution and not to be forgotten, the ability to provide for a secure authentication and non-repudiation service. Scalability advantages due to the fact that there is a public and a private part of keys involved and this makes deployment and maintenance much easier from a security perspective compared to symmetric keys.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 27

Smart Cards

Unit 1 : Cryptography Basics

Also consider the effect of having only the RSA cryptoprocessor enabled to use your private information; the private information is not possible to copy! It can never leave the card. The PKI card offers a completely different level of security compared to storing private information on a floppy disc, on a hard disc or even on a less protected smart card. It is the card's operating system that prevents the keys from being exposed outside the card. They can thus never be read, removed or tampered with (even by the user). The user will only have access to the functions of the card through the use of a secret PIN code that the user may change at any time. Conclusion The only secure smart card solution out on the market today would be a solution based on PKI smart cards. If using something less, keys are only as secure as if they were stored on a floppy or on your hard disc. PKI smart cards are the only alternative for doing business over an evolving ecommerce market.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 28

Unit 2 : PKI Applications (Lab Exercises)

Symmetric File Encryption

2. PKI APPLICATIONS (LAB EXERCISES)
2.1. SYMMETRIC FILE ENCRYPTION
2.1.1. Lab Exercise 1
Objective The student will use a symmetric encryption algorithm to encrypt a text file. DES and IDEA will be used for this lab. Main steps 1. Create a text file with an editor 2. Encrypt this file using DES 3. Encrypt this file using IDEA 4. Decrypt this file using DES 5. Decrypt this file using IDEA Time 15 minutes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 29

Symmetric File Encryption

Unit 2 : PKI Applications (Lab Exercises)

Step 1: Create a text file with an editor • Create a “Notepad file” called toto.txt in c:\temp

• •

Edit this file and add a text like “Hello world…” Save and quit

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 30

Unit 2 : PKI Applications (Lab Exercises)

Symmetric File Encryption

Step 2: Encrypt this file using DES • On your desktop, launch OpenSSL • You will encrypt this file with DES. Type the command des –in toto.txt –out toto.txt.des –e • Enter a password that will be the secret key

Have a look at the file toto.txt.des

Step 3: Encrypt this file using IDEA • Encrypt the file toto.txt with IDEA. Type the command idea –in toto.txt –out toto.txt.idea –e • Enter a password

Have a look at the file toto.txt.idea

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 31

Symmetric File Encryption

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Decrypt this file using DES • You can now decrypt those two files • Type des –in toto.txt.des –d to decrypt the DES file • Enter your password

Step 5: Decrypt this file using IDEA • Type idea –in toto.txt.idea –d to decrypt the IDEA file • Enter your password

Now you are finished…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 32

Unit 2 : PKI Applications (Lab Exercises)

Message-Digest Algorithms

2.2. MESSAGE-DIGEST ALGORITHMS
For a theoretical introduction, please refer to the book “Digital Certificates” written by Jalal Feghhi, Jalil Feghhi and Peter Williams.

2.2.1. Lab Exercise 2
Objective The student will “play” with message digest functions. MD5 and SHA-1 will be used to compute digest for an input text file. Main steps 1. Create a text file with an editor 2. Compute message digest functions with MD5 3. Change the text 4. Compute message digest functions again with MD5 5. Compute message digest functions with SHA-1 Time 15 minutes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 33

Message-Digest Algorithms

Unit 2 : PKI Applications (Lab Exercises)

Step 1: Create a text file with an editor • Create a file with an editor called toto.txt in c:\temp

• •

Edit this file and add a text like “Hello world…” Save and quit

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 34

Unit 2 : PKI Applications (Lab Exercises)

Message-Digest Algorithms

Step 2: Compute message digest functions with MD5 • On your desktop, launch OpenSSL • Type the command md5 toto.txt • Have a look at the result. You will see the MD5 digest (128 bits)

Step 3: Change the text • Edit again c:\temp\toto.txt and change only one character (for instance H

h)

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 35

Message-Digest Algorithms

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Compute message digest functions again with MD5 • Type md5 toto.txt again on the OpenSSL applications • What do you see? This is the new MD5 digest

Step 5: Compute message digest functions with SHA-1 • Type now sha1 toto.txt on the OpenSSL application • What do you see? Compare this with the MD5 digest!

You are now finished…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 36

Unit 2 : PKI Applications (Lab Exercises)

Securing the Desktop

2.3. SECURING THE DESKTOP
2.3.1. Introduction
Safeguarding data being transmitted as e-mail messages over an open network like the Internet is an important step to take in order to keep your data private. Protecting data on a personal computer presents a different set of issues in terms of how the data should be protected and how to control keys. The most important issue may perhaps be how to select a data encryption product for your desktop. Many products are available on the market to perform file encryption (RSA SecurPC, Blowfish Advances CS, etc.) For this particular training we will use “Blowfish Advanced CS” because it is a very simple product to use. Moreover, it will allow you to be familiar with secret-key file encryption, key splitting and files wiping.

Introduction Blowfish Advanced CS is a file encryption program, protecting your files with a key built from a password or a key disk, so that no one except you can access its contents. Blowfish Advanced CS erases sensitive files that are no longer needed, in order to prevent anyone to restore them. Working with encrypted files and clearing empty disk space are other useful features. Today, we are in the information age and encrypting data is becoming more and more important for most of us. There are many reasons why data have to be protected from unauthorized access, as for instance sensitive medical data, private or business documents, or just some “hot stuff” from the Internet. There are many ways to make data readable only to a selection of people. Besides physical measures like locking removable disks into a safe or hiding files with stenography (which is a cheap solution), the only way to make files really inaccessible is to use strong cryptography. That means high-end encryption algorithm with long-enough keys to resist any attacks, this combined with secure removal of the original data. Encryption Algorithms Blowfish Advanced CS is currently shipped with 4 algorithms, which are the followings:
Blowfish

Bruce Schneier designed the algorithm. Blowfish is a very fast algorithm, performing with excellence on modern 32bit processors. Another advantage is its variable key-size, which goes up to 448 bits (56 bytes). It was first published in Doctor Dobb's Journal, issue 4/94, and after a year of intensive cryptanalysis it was still unbroken (as reported in DDJ 10/95).
PC1

This algorithm is 100% compatible with the RC4 stream cipher. Ron Rivest developed RC4 in 1987. Someone posted 1994 the source code in a mailing list and since then it has been spread all over the world. RC4 is a stream cipher handling single bytes. The implementation used by Blowfish Advanced CS uses a key size of 160 bits. © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 37

Securing the Desktop Triple-DES

Unit 2 : PKI Applications (Lab Exercises)

DES is the standard encryption algorithm, designed by IBM in the middle seventies. Although it has been cryptanalyzed for over 20 years, no weakness has been found yet. The only problem of DES is its short key length of 7 bytes (equals 56 bits). If someone has access to very fast computers, he can try out all possible keys within a few hours. There are some DES variants, extending the original algorithm to a new one with a larger key. The most common one is tripleDES, where a 64-bit data block will be encrypted three times with DES, using three different keys (or a single key split into three parts). Therefore, the key length is 21 bytes (168 bits), improving significantly the security but also slowing down the algorithm. The triple-DES implementation in Blowfish Advanced CS is 100% compatible with the DES standard.
Twofish

TwoFish is the AES candidate from Counterpane. It is a new, fast and very flexible encryption algorithm. After extensive cryptanalysis, no weaknesses are known yet. For more information about TwoFish, visit http://www.counterpane.com. The version of Twofish in Blowfish Advanced CS uses a key size of 256 bits and a block size of 128 bits. Key Setup Different encryption algorithms require different key lengths. The Blowfish encryption algorithm needs e.g. a key of 448 bits (56 bytes). It is very uncomfortable to find passwords having exactly the right length each time, so that the program converts the password into a key for the individual algorithm. Blowfish Advanced CS uses a key setup in which your password (or key disk content) is hashed with SHA-1, the most "Secure Hash Algorithm" available today. One of the advantages is that the key result appears in binary form and looks like random data. Moreover, the password’s length is not restricted to the maximum key-length of the selected algorithm, so it can be hashed up or down to the right size. You will find hereafter two examples, which will help you to understand the key setup of Blowfish Advanced CS: Let us choose "helloworld" as our password. We want to create a key of 128 bits (16 bytes). The SHA-1 allows us to input as many data bytes as we wish and it puts out a hash of 160 bits (20 bytes). A hash (also called digest) is like a CRC32 checksum, but secure for encryption.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 38

Unit 2 : PKI Applications (Lab Exercises)

Securing the Desktop

To resize the 20 bytes of the hash to the required 16 bytes for the key, we take the first 16 bytes of the hash and XOR the rest of 4 bytes over the beginning of these 16 bytes. Doing so, we take the totality of the hash into consideration:

In the second example, we still define "helloworld" as our password, but we need a key for Blowfish having the required length of 56 bytes. As already mentioned, SHA-1 only returns 20 bytes. So we have to create 36 additional bytes from the password in the following way: we hash the password with SHA-1 and get 20 bytes. Then we add those 20 bytes to the original password and hash the modified password again. The result is a new hash, which means 20 new bytes for our key. Due to the modified password, this new hash is completely different from the first one. Now we append this second hash to the modified password again and rehash it to get the last 20 bytes. Of course, we have now 4 bytes too much, so we XOR them over the first hash as we did in the first example. At least, we have the needed 56 bytes for the Blowfish encryption algorithm. Random Number Generation Blowfish Advanced CS offers you two pseudo random number generators. PRNGs are used to create random data for security purposes, (e.g. salt values, which are combined with keys), for overwriting (wiping) data or (most important) to create key files.
Yarrow

This PRNG was designed by Counterpane and can be considered as the best concept to create random data for security purposes. Blowfish Advanced CS uses a Yarrow implementation with SHA-1 as the hash algorithm and triple-DES as the block cipher. For the latest paper of the Yarrow specifications please visit http://www.counterpane.com.
CryptPak PRNG

The random generator was working in the predecessor Blowfish Advanced 97 as the one and only PRNG. It uses a SHA-1 rescrambling method. To initialize the generator, a string with various data (system date and time, drive information, etc.) is built and hashed by SHA-1. As a result, one gets a 20 bytes buffer of random data, from which just 16 bytes are used to avoid predictable random sequences. If another 16 bytes are requested, the hash value is hashed with itself to a new digest. This method provides a much better randomness than conventional 32-bit random number generators.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 39

Securing the Desktop

Unit 2 : PKI Applications (Lab Exercises)

2.3.3. Lab Exercise 3
Objective The student will setup a file’s encryption software to protect sensitive information. This software will use strong symmetric encryption mechanisms to protect information. Scenario The Management wants to implement a solution to protect sensitive information on the laptop. For specific files they want to implement key splitting. Moreover, they want to store a secret key on an external support that will be a diskette. Main Steps 1. Encrypt a file with one secret key 2. Exchange this file with your partner 3. Decrypt the partner’s file you receive 4. Encrypt a file with two secret keys (Key Splitting) Time 20 minutes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 40

Unit 2 : PKI Applications (Lab Exercises)

Securing the Desktop

Step 1: Encrypt a file with one secret key • On your desktop, launch Blowfish Advanced CS. • Select c:\encrypted files\ssh.pdf. • Encrypt this file using the Blowfish encryption algorithm.

• •

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 41

Securing the Desktop

Unit 2 : PKI Applications (Lab Exercises)

Now your file ssh.pdf is encrypted with your private key (or symmetric key).

Step 2: Exchange this file with your partner • Send this encrypted file to your partner via e-mail. Your partner will also send one to you.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 42

Unit 2 : PKI Applications (Lab Exercises)

Securing the Desktop

• • •

That’s it, you are able to read the PDF document.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 43

Securing the Desktop

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Encrypt a file with two secret keys (Key Splitting) You will now use Key Splitting • Insert a diskette into your reader. The Key Disk will be stocked on it. • Go to Tools Option menu Miscellaneous and choose make a Key Disk. This key will be used as a private key for encryption and decryption.

Move you mouse until the progress bar has reached 100%. Those mouse’s movements are for random seed.

• • •

Key Disk generation is done. Now you can encrypt the file c:\encrypted files\securegate.pdf with your Key Disk. On the Encrypt option choose first Multi Key Input and Use Key Disk.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 44

Unit 2 : PKI Applications (Lab Exercises)

Securing the Desktop

Press Yes to append another password. It will be the second private key that we call Key Splitting.

Press No to end the encryption.

• • •

The encryption with two keys (one Key Disk and one Standard password) is done. You can try to decrypt this file. Now, you are finished…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 45

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

2.4. PGP (PRETTY GOOD PRIVACY)
2.4.1. The PGP Symmetric Algorithms
PGP offers a selection of different secret key algorithms to encrypt the actual message. By secret key algorithm, we mean a conventional or symmetric block cipher that uses the same key to both encrypt and decrypt. The three symmetric block ciphers offered by PGP are CAST, Triple-DES and IDEA. They are not “home-grown” algorithms. Teams of cryptographers with distinguished reputations developed them all. For the cryptographic curious, all three ciphers operate on 64-bit blocks of plaintext and ciphertext. CAST and IDEA have key sizes of 128 bits, while Triple-DES uses a 168-bit key. Like Data Encryption Standard (DES), any of these ciphers can be used in cipher feedback (CFB) and cipher block chaining (CBC) modes. PGP uses them in a 64-bit CFB mode. CAST encryption algorithm has been included in PGP because it is promising as a good block cipher with a 128-bit key size. Moreover, it is very fast and free. The name is derived from the initials of its designers, Carlisle Adams and Stafford Tavares of Northern Telecom (Nortel). Nortel have applied for a CAST patent, but they have made a written commitment to make CAST available to anyone on a royalty-free basis. CAST appears to be exceptionally well designed by people with good field reputation. The design is based on a very formal approach, with a number of formally provable assertions, giving good reasons to believe that it probably requires key exhaustion to break its 128-bit key. CAST has no weak or semiweak keys. There are strong arguments that CAST is completely immune to both linear and differential cryptanalysis, the two most powerful forms of cryptanalysis in the published literature. Moreover, both of them have been effective in cracking DES. CAST is too new to have developed a long track record, but its formal design and the good reputation of its designers will undoubtedly draw the attention and attempt cryptanalytic attacks of the rest of the academic cryptographic community. I nearly have the same good feeling of confidence for CAST that I had years ago for IDEA, the cipher I selected for use in earlier versions of PGP. The IDEA (International Data Encryption Algorithm) block cipher is based on the design concept of “mixing operations from different algebraic groups.” It was developed at ETH in Zurich by James L. Massey and Xuejia Lai and published in 1990. Early published papers on the algorithm called it IPES (Improved Proposed Encryption Standard), but they later changed the name to IDEA. So far, IDEA has resisted attack much better than other ciphers such as FEAL, REDOC-II, LOKI, Snefru and Khafre. Moreover, IDEA is more resistant than DES to Biham and Shamir’s highly successful differential cryptanalysis attack, as well as attacks from linear cryptanalysis.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 46

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

As this cipher continues to attract attack efforts from the most formidable quarters of the cryptanalytic world, confidence in IDEA is growing with the time. Sadly, the biggest obstacle to IDEA’s acceptance as a standard has been the fact that Ascom Systec holds a patent on its design, and unlike DES and CAST, IDEA has not been made available to anyone on a royalty-free basis. As a hedge, PGP includes three-key Triple-DES in its repertoire of available block ciphers. IBM developed the DES in the mid-1970s. While it has a good design, its 56-bit key size is too small for today’s standards. Triple-DES is very strong and has been well studied for many years, that is the reason why it might be a safer bet than the newer ciphers such as CAST and IDEA. TripleDES is the DES applied three times to the same block of data, using three different keys, except that the second DES operation is run backwards, in decrypt mode. While Triple-DES is much slower than either CAST or IDEA, speed is usually not critical for e-mail applications. Although Triple-DES uses a key size of 168 bits, it appears to have an effective key strength of at least 112 bits against an attacker with immense data storage capacity to use in the attack. According to a paper presented by Michael Weiner at Crypto96, any remotely plausible amount of data storage available to the attacker would enable an attack requiring about as much work as breaking a 129-bit key. It is important to specify that Triple-DES is not encumbered by any patents. PGP public keys that were generated by PGP Version 5.0, or later have information embedded in them that tells a sender what block ciphers are understood by the recipient’s software, so that the sender’s software knows which ciphers can be used to encrypt. Diffie-Hellman/DSS public keys accept CAST, IDEA or Triple-DES as the block cipher, with CAST as the default selection. At present, for compatibility reasons, RSA keys do not provide this feature. Only the IDEA cipher is used by PGP to send messages to RSA keys, because older versions of PGP only supported RSA and IDEA.

2.4.2. About PGP Data Compression Routines
PGP normally compresses the plaintext before encrypting it, because it is too late to compress the plaintext after it has been encrypted. In fact, encrypted data is not compressible. Data compression saves modem transmission time, disk space and, more importantly, strengthens cryptographic security. Most cryptanalysis techniques exploit redundancies found in the plaintext to crack the cipher. Data compression reduces this redundancy in the plaintext, thereby greatly enhancing resistance to cryptanalysis. It takes extra time to compress the plaintext, but from a security point of view, it is worth it. Files that are too short to compress, or that just don’t compress well, are not compressed by PGP. In addition, the program recognizes files produced by most popular compression programs, such as PKZIP, and does not try to compress a file that has already been compressed. For the technically curious, the program uses the freeware ZIP compression routines written by Jean-Loup Gailly, Mark Adler, and Richard B. Wales. This ZIP software uses compression algorithms that are functionally equivalent to those used by PKWare’s PKZIP 2.x. This ZIP compression software was selected for PGP mainly because it has a really good compression ratio and because it is fast.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 47

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

2.4.3. About the Random Numbers used as Session Keys
PGP uses a cryptographically strong pseudo-random-number generator for creating temporary session keys. If this random seed file does not exist, it is automatically created and seeded with truly random numbers derived from your random events, gathered by the PGP program from the timing of your keystroke and mouse movements. This generator “reseeds” the seed file each time it is used, by mixing in new material partially derived from the time of day and other truly random sources. It uses the conventional encryption algorithm as an engine for the random number generator. The seed file contains both random seed material and random key material used to key the conventional encryption engine for the random generator. This random seed file should be protected from disclosure, to reduce the risk of an attacker deriving your next or previous session keys. The attacker would have a very hard time getting anything useful from capturing this random seed file, because the file is cryptographically laundered before and after each use. Nonetheless, it seems prudent to try to keep it from falling into the wrong hands. If possible, make the file readable only by you. If this is not possible, don’t let other people indiscriminately copy disks from your computer.

The message digest is a compact (160-bit or 128-bit) “distillate” of your message or file checksum. You can also consider it as a “fingerprint” of the message or file. The message digest “represents” your message, so that if the message were altered in any way, a different message digest would be computed from it. This allows the detection of any changes made to the message by a forger. A message digest is computed using a cryptographically strong one-way hash function of the message. It should be computationally infeasible for an attacker to devise a substitute message that would produce an identical message digest. In that respect, a message digest is much better than a checksum, because it is easy to devise a different message that would produce the same checksum. But like a checksum, you can’t derive the original message from its message digest. The message digest algorithm used now in PGP (Version 5.0) is called SHA, which stands for Secure Hash Algorithm, designed by the NSA for the National Institute of Standards and Technology (NIST). SHA is a 160-bit hash algorithm. Some people might consider everything from the NSA with suspicion, because the NSA is in charge of intercepting communications and breaking codes. But keep in mind that the NSA has no interest in forging signatures and the government would benefit from a good unforgeable digital signature standard that would preclude anyone from repudiating their signatures. This has distinct benefits for law enforcement and intelligence gathering. SHA has been published in the open literature and has been extensively peer-reviewed by most of the best cryptographers in the world who specialize in hash functions. Moreover, the unanimous opinion is that SHA is extremely well designed. It has some design innovations that overcome all the observed weaknesses in message digest algorithms previously published by academic cryptographers. All new versions of PGP use SHA as the message digest algorithm for creating signatures with the new DSS keys that comply with the NIST Digital Signature Standard. For compatibility reasons, new versions of PGP still use MD5 for RSA signatures, because older versions of PGP used MD5 for RSA signatures. © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 48

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

2.4.5. Encryption and Decryption
PGP combines some of the best features of both conventional and public key cryptography. PGP is a hybrid cryptosystem. When a user encrypts plaintext with PGP, PGP compresses first the plaintext. Data compression saves modem transmission time and disk space and, more importantly, strengthens cryptographic security. Most cryptanalysis techniques exploit patterns found in the plaintext to crack the cipher. Compression reduces these patterns in the plaintext, thereby greatly enhancing resistance to cryptanalysis. (Files that are too short to compress or which don’t compress well aren’t compressed.) PGP creates then a session key, which is a onetime-only secret key. This key is a randomnumber generated from the randommovements of your mouse and the keystrokes you type. This session key works with a very secure, fast conventional encryption algorithm to encrypt the plaintext; the result is ciphertext. Once the data is encrypted, the session key is then encrypted to the recipient’s public key. This public key-encrypted session key is transmitted along with the ciphertext to the recipient.

PGP Figure 1 Decryption works in the reverse. The recipient’s copy of PGP uses his or her private key to recover the temporary session key, which is then used by PGP to decrypt the conventionally encrypted ciphertext.

PGP Figure 2 The combination of both encryption methods provides the convenience of public key encryption with the speed of conventional encryption. Conventional encryption is about 1,000 times faster than public key encryption. Public key encryption in turn provides a solution to key distribution and data transmission issues. Used together, both encryption methods improve performance and key distribution. Thus, security is not compromised. © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 49

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

2.4.6. Digital Signature for PGP
A major benefit of public key cryptography is that it provides a method for employing digital signatures. Digital signatures enable the recipient of information to verify the authenticity of the information’s origin and also that the information is intact. Thus, public key digital signatures provide authentication and data integrity. A digital signature also provides non-repudiation, which means that it prevents the sender from claiming that he or she did not actually send the information. These features are as fundamental to cryptography as privacy, if not more ! A digital signature has the same purpose as a handwritten signature. However, a handwritten signature is easy to counterfeit. A digital signature is superior to a handwritten signature as it is nearly impossible to counterfeit. Moreover, it attests to the contents of the information as well as to the identity of the signer. Some people tend to use signatures more than they use encryption. For example, you may not care if anyone knows that you just deposited \$1000 in your account, but you do want to be sure it was the bank teller you were dealing with! The basic manner in which digital signatures are created is illustrated in Figure 1. Instead of encrypting information using someone else’s public key, you encrypt it with your private key. If the information can be decrypted with your public key, then it must have originated by you.

PGP Figure 3

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 50

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

2.4.7. Lab Exercise 4
Objective In order to make the student sensitive to other standards, the latter will setup an e-mail using PGP encryption and key signature. Scenario You want to guarantee the privacy of an e-mail sent through the Internet between two peers. To justify the idea, one admits that both peers do not have a common trust certificate authority (if so, S/MIME would be in the scope) but hire the PGP software. Main Steps
1. Generation of PGP key peers by each peer

2. 3. 4. 5. 6.

Key cross exchange Certification of a partner public key Send a signed message Send an encrypted and signed message PGP behavior after unexpected cleartext modifications

Time 40minutes Step 1: Generation of PGP Key pair • Launch the PGP Keys application located in the systray. The first time, the user is prompt by a wizard to generate a key-pair.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 51

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

So that each student can exchange encrypted information with the others, enter following parameters: Key-pair type: RSA Key-pair size: 1024 bits Key-pair never expires Once you have done this, you will be prompt to enter a passphrase that will protect the use of your private key.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 52

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

After the key generation process has started, you are asked if you want to send your public key to a root server. The aim of this PGP root server is to play the role of a PGP public key container. The idea behind this is that if you want to establish a secure connection with another PGP pair, you simply get its public key from this server. Of course, this sounds very practical, but is it secure? Think about it! Note: In the current case, we will not try to send the key...

The following window will appear and confirm the key-pair generation.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 53

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Key cross exchange Before entering step 2, check that your partner has successfully accomplished step 1. In this example, Londres’s partner will be Rome, so...watch carefully the recipient/sender names in the next printed screens. To avoid confusion, keep in mind that the printed screens are coming from Londres ONLY. Londres is now ready to send its public key to Rome. Rome will also send its key to Londres. • Londres starts by copying its key shown in the PGPkeys window.

Then, Londres opens its mail browser and sends an e-mail to Rome. Londres pastes the clipboard as the message.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 54

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

Rome did exactly the same for its part, hence Londres will receive the following message containing Rome’s public key. There are several ways to proceed; the first is to select the text including the beginning and the end marks.

Once copied in the clipboard, launch the PGP key window and paste the key as shown hereafter.

• •

Rome’s newly imported key should appear in this window. For its part, Rome has imported Londre’s public key giving an end to this so-called key exchange process. Are you sure about the effective origin of this public key? What should be done in order to guarantee it? Think about it!

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 55

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

Step 3: Certification of a partner public key • At this stage, you have only imported a public key without defining any trust level for it. If you are convince of its reliability you can sign it by right clicking on ROME’s key, the following screen appears.

Choose OK and enter the passphrase protecting your private key. Right click on your partner’s key and select Key Properties. The following window appears thanks to which you can set the level of trust with the button Trusted.

Because Rome followed the same procedure for its part, crossed certification is finished now.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 56

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

Step 4: Send a signed message So that your partner can be sure of the message’s sender, we will now send him a signed message. • Open your mail browser and write a message to your partner, i.e Rome in our case. Once done, maintain the mail window active, right click on systray and select “sign”.

The consequence should be the transformation of your message, as follows.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 57

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

Rome did exactly the same, hence you receive the following mail:

You will see now how to check the validity of this signed message. To do so, select the mail window, launch Systray / Current Window / Decrypt and Verify and the following verification window appears.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 58

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

Step 5: Send an encrypted and signed message In this final step, we will be more practical and send an encrypted message, whose sender identity can be checked. • Similarly to the precedent step, open you mail browser and write a message. Check that the window is active and right click on Systray / Current window / Encrypt and Sign. A window appears asking you who will be the recipient. In this case, we select Rome.

Automatically the written message is transformed as shown hereunder.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 59

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

You can now send it to your partner. He also sent you a similar message that you have to decrypt and check.

As you might guess, select Systray / Current Window / Decrypt and Verify / Enter passphrase. Think about the reason why you have to enter the passphrase...The result is the following:

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 60

Unit 2 : PKI Applications (Lab Exercises)

PGP (Pretty Good Privacy)

Step 6: PGP behavior after unexpected cleartext modifications Now we will write and sign an Email. Before sending it to your partner, you will simulate an unexpected content modification… • Open your mail browser and write the message to your partner. Once done, maintain the mail windows active, right click on systray and select sign (cf. Step 4).

Then modify slightly the content of the cleartext

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 61

PGP (Pretty Good Privacy)

Unit 2 : PKI Applications (Lab Exercises)

• •

Now you can send the modified message to your partner Your partner did exactly the same, therefore you receive an Email. Open it, and verify it, what do you observe?

Now your PGP lab is completed…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 62

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

2.5. THE SSH PROTOCOL
2.5.1. Introduction
As the student already knows, IP protocol does not guarantee in any aspect information security. More precisely, this protocol doesn’t offer any authentication, privacy or integrity protection mechanism. Moreover, due to the OSI model philosophy, all higher-level protocols are in the same way deficient, as they usually assume the lower level can be trusted. Therefore, the need of a security mechanism at the application level arose out of the market, in parallel to the Internet’s success. Such a need has been fulfilled by the SSH protocol. It provides a transport-layer encryption mechanism offering host authentication and user authentication, as well as privacy and integrity protection. In its most common application, it gives users secure login connections, secure file transfer, secure X11windowing system and secure TCP/IP connection over “untrusted” networks. SSH is a packet-based binary protocol that works on top of any transport that will pass a stream of binary data. Normally, TCP/IP is used as the transport but the implementation also permits to pass data to and from the server using any arbitrary proxy program to pass data to and from a server. Effectively, thanks to the port-forwarding technology, it is possible to forward arbitrary (almost) insecure connections over a secure channel. To explain this, consider the client-server model: basically, the SSH client creates a local proxy server for a remote TCP/IP service. This service can be one of the Internet protocols (pop, smtp and http) or almost any other TCP/IP based service. This local proxy server listens to a socket on the desired port, forwards the request and data over the secure channel and instructs the SSH server to connect on the specified port of the remote machine. This might be better explained with an example: Consider three hosts, X, Y, and Z. Host X is the client and establishes a session with Y, the server, via ssh. A port on X, say 1999 is setup to be forwarded to another port on the remote host Z, say 23. This port is forwarded over the encrypted tunnel to Y, which sends it then unencrypted to host Z's port 23. Thus, the command “telnet localhost 1999” would result in a telnet connection being established with host Z, passing over the encrypted tunnel to Y.

The SSH Protocol Figure 1: Port forwarding technology The only noticeable change is that the client application is configured to connect to the local proxy instead of the remote server.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 63

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

2.5.2. Host Authentication
As mentioned above, host authentication is one of the key features offered by the SSH protocol. Let’s have a quick oversight of this process illustrated by the figure hereunder:

The SSH Protocol Figure 2: Host authentication The server sends its public RSA host-key and another public RSA key called server key that changes each hour. The client compares the received host key with its own database of known host keys. It is our choice to accept or not the key of an unknown host before storing it inside the database. The client generates then a 256 bits random number using a cryptographically strong random number generator and chooses an encryption algorithm supported by the server (normally blowfish or 3DES). The client encrypts this random number (or session key) with RSA using both the host key and the server key, and finally sends it to the server. The purpose of the host key is to bind the connection to the desired server host (because only the server can decrypt the encrypted session key). The server key, which is changed every hour, makes decryption of recorded historic traffic impossible in case the host key becomes compromised. The host key is normally a 1024-bit RSA key and the server is normally a 768-bit. A cryptographically strong random number generator generates both keys. Then, the server decrypts the RSA encryption and recovers the session key. Both parties start using the session key and the connection is now encrypted. The server sends an encrypted confirmation to the client. A receipt of this confirmation tells the client that the server was able to decrypt the key and therefore holds the proper private keys. At this stage, the server machine has been authenticated and the transport-level encryption as well as the integrity protection are in use.

2.5.3. User Authentication
The user can be authenticated by the server in several ways. The user authentication dialogue is driven by the client who sends requests to the server. The first request always declares the username to use for logging on. The server gives request with a “success” or “failure” response. Then, further authentication is required: either traditional static password (the password will be sent through the encrypted tunnel) or a pure RSA authentication. In the latter authentication scheme, the user uses its RSA key pair to prove his identity (actually he will have to prove his identity by using his private key).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 64

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

The student should be aware that this authentication scheme has some weaknesses, this is one of the drawbacks of SSH. However, it has been corrected in SSH2, which implements strong authentication schemes (SecurID token etc.). Further in the course, we’ll talk about strong authentication based on RSA keys enforced by a third party, but this is for later...

2.5.4. Cryptographic Methods
As mentioned above, for host and user authentication, SSH provides strong security using DSA or RSA. Host and user authentication keys length is between 768 and 2048 bits long. The server key, which changes every hour, is 768 bits long by default. It is used to protect intercepted sessions from being decrypted, in case the host key is later compromised. This key is never saved on the disk. For SSH 2, key exchange is done via Diffie-Hellman key-exchange algorithm. This key exchange transfers 256 bits of keying data to the server. Different encryption methods use different key portions. For data encryption, Blowfish uses 128-bit keys and 3DES uses 168-bit keys. Another fundamental aspect of security is the use of cryptographically strong random number generators. Hereafter you will find a table showing the ciphers used by SSH for encryption:

Cipher
DES 3DES IDEA Blowfish Twofish Arcfour Cast128-cbc

SSH1
Yes Yes Yes Yes No No No

SSH2
no Yes Yes Yes Yes Yes Yes

You have here a table showing the ciphers used by SSH for authentication:

Cipher
RSA DSA

SSH1
yes no

SSH2
yes yes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 65

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

2.5.5. Lab Exercise 5
Objective The student will learn how to use SSH to replace a standard telnet connection. In order to do so, he will use two authentication mechanisms. The student will also learn how to setup a SSH tunnel. Scenario The Management wants to implement a very secure solution to replace “telnet” for Unix station management. They want to use a strong encryption and a strong authentication. The Management wants also to implement a SSH tunnel to access an Intranet server from Internet Main steps 1. Use Telnet to connect to a Linux box 2. Use SSH with standard password to connect to a Linux box 3. Use SSH with Public Key authentication to connect to a Linux box 4. Use SSH tunnel to connect to an Intranet server Time 60 minutes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 66

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

Step 1: Use Telnet to connect to a Linux box You will use SecureCRT as emulator to perform the remote connection to the Linux box (newton.pki.datelec.com). This emulator can use Telnet, SSH1 and SSH2. Hereafter you will find the detailed instructions: • • • Run SecureCRT. Choose Newton-Telnet session. Connect yourself to newton.pki.datelec.com using Telnet.

• • •

Have a look at the instructor’s sniffer. What do you see? Now you can quit SecureCRT.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 67

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Use SSH with standard password to connect to a Linux box • Connect yourself to newton.pki.datelec.com using SSH2 with a standard password as authentication. • Run SecureCRT and choose Newton-SSH-Pass session.

• • • •

SecureCRT will ask you to accept the “newton’s public key”. Press Accept and Save. Can you affirm that this is really the “newton’s public key”? Think about it!

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 68

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

• •

Have a look at the instructor’s sniffer. What do you see?

You can quit SecureCRT.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 69

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

Step 3: Use SSH with Public Key authentication to connect to a Linux box For this step, you will use a public key to authenticate yourself to the “newton’s Linux box”. You will then generate a public key-pair and give the public part to the SSH2 server (“newton’s Linux box”). • Run SecureCRT and choose New Session.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 70

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

You will define a new SSH session using a PublicKey authentication method by proceeding as follows: Name: Protocol: Hostname: Port: Username: Cipher: Mac: Authentication: SSH server: Newton-SSH-key SSH2 newton 22 your-site (here for instance londres) 3DES MD5 PublicKey DataFellows 2.0.13

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 71

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

• • •

SecureCRT will propose you to generate a key-pair. Press Yes. SecureCRT will generate an identity file.

Press Create Identify File.

Press Next in the Key Generation Wizard.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 72

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

Enter a Passphrase to protect your private key. You will use this Passphrase to lock or unlock your private key.

Choose the key length: here 1024 bits.

SecureCRT will now generate the keys using the mouse movements as a seed (Random number).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 73

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

When the generation is done press Finish.

• • •

On your local station, go to directory c:\program file\SecureCRT 3.0\. With Notepad open “identity.pub”. Copy the public key on your clipboard.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 74

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

In order to place your public key on the SSH server (newton.pki.datelec.com), proceed as follows: • Connect yourself to newton.pki.datelec.com using SSH with standard password as authentication. Run SecureCRT and choose Newton-SSH-Pass session. • Go to ~/.ssh2 directory (cd .ssh2 from your home directory). • Using “vi” create a file called “your-site.pub” (for instance londres.pub). • Paste the public key.

• • • • • •

Using “vi” create and edit a file called “authorization”. Add the name of the public key file: Key your-site.pub (Tabulation). The account is now ready to be accessed, using public key authentication from a client that holds the correct identity file (containing the private and public key-pair). Connect yourself to newton.pki.datelec.com using SSH with Public Key as authentication. Run SecureCRT and choose Newton-SSH-Key session. Now you will be prompt to enter the Passphrase.

Now you are ready to setup a tunnel using SSH2

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 75

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Use SSH tunnel to connect to an Intranet server To simulate the Intranet server we will use www.cisco.com as URL. • Run SecureCRT and choose New Session.

You will define a new session using SSH2 and a password authentication method, by proceeding as follows: Name: Protocol: Hostname: Port: Username: Cipher: Mac: Authentication: SSH server: Newton-SSH-Tunnel SSH2 newton 22 your-site (here for instance londres) 3DES MD5 Password DataFellows 2.0.13

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 76

Unit 2 : PKI Applications (Lab Exercises)

The SSH Protocol

• • •

To configure the tunnel, go to the Advanced menu. Select Port Forwarding menu. Define tunnel parameters by proceeding as follows: Local port: 1234 Remote hostname: www.cisco.com Remote port: 80 Press Save.

• • •

Press OK. And press OK to terminate the session definition. Now connect yourself to newton.pki.datelec.com using the new session.

• • •

Authenticate yourself with standard username and password and minimize the SecureCRT application. Check if the tunnel’s entry is listening on port 1234. On Command Prompt run the command “netstat –a” and have a look. What do you see?

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 77

The SSH Protocol

Unit 2 : PKI Applications (Lab Exercises)

• •

Now you can test the tunnel using your browser. Run the browser with http://localhost:1234 as URL. What do you see?

Now you are finished with the SSH lab…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 78

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

2.6. S/MIME
For a theoretical introduction, please refer to the book “Digital Certificates” written by Jalal Feghhi, Jalil Feghhi and Peter Williams.

2.6.1. Lab Exercise 6
Objective The student will setup an e-mail system using S/Mime. He will have to use Digital Signature and Encryption. Moreover, the student will use LDAP protocol to retrieve X.509 certificates. Scenario The Management now wants to implement encryption and digital signature for the corporate Email system. Due to management issues, all certificates are stored inside a directory server which is requested via LDAP. You will use an internal CA and it will be Keon 5.5 from RSA Security. Main Steps 1 Request a client certificate from a Certification Authority (CA) 2 Install on your browser the certificate sent to you by the CA 3 Send a signed e-mail to your partner 4 Send an encrypted e-mail to your partner 5 Send a signed and encrypted e-mail to your partner 6 Getting a certificate via a LDAP request Time 45 minutes

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 79

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

Step 1: Request a client certificate from a Certification Authority (CA) • Now you can enroll for a client certificate. Via the browser, connect to the Keon Subscriber Services (http://cerbere.pki.datelec.com). • Choose Datelec – PKI Training jurisdiction. • Choose Enroll for a Personal Certificate.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 80

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

• • •

Enter Enrollment information: First Name Last Name E-mail Address (Important) Title Enter your Challenge Phrase (for revocation, etc.). Choose Signing and Encryption. And then press Accept.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 81

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

Your browser will now generate a Private key that will be stocked on the local disk.

Enter a PIN code to protect your KEY.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 82

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

• • •

Now the enrollment is completed. Please wait in order to get your certificate. If the CA agrees to issue a certificate for you, you will be notified by e-mail. Read you e-mail. You will receive a PIN number to retrieve your certificate. Paste your PIN number on your clipboard.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 83

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Install on you browser the certificate sent to you by the CA • Via the browser connect to the retrieving menu (http://cerbere.pki.datelec.com/getid.htm). • Paste your PIN number and press Submit.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 84

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 85

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

• •

Choose Security info / Messenger. Select the client’s certificate you will use for sending and signing an e-mail with S/Mime.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 86

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

Step 3: Send a signed e-mail to your partner • Choose your partner to exchange an e-mail (Example: Londres and Rome). Note: the certificate will be exchanged the first time by sending a signed message. We will not use a directory server LDAP to retrieve certificate. However, in a real deployment, it will work with LDAP. • Now you are ready to send a signed e-mail to your partner. Note: this lab will be performed on both sites, your partner will also send you a signed e-mail. • Send e-mail with option Signed.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 87

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

• •

Get Message and read the signed mail from your partner. You will see a “Signed” icon on the mail.

• •

To verify, click on the “Signed” icon. You will be able to identify the sender. Now you can reply to the sender with an encrypted e-mail.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 88

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

To view the sender’s Certificate, click to “View/Edit” button.

Note: the sender’s certificate has automatically been added to your list of People’s Certificates, in order to make it possible for you to send a secure mail to this person.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 89

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Send an encrypted e-mail to your partner • Now you are ready to send an encrypted e-mail to your partner. Note: this lab will be performed on both sites, your partner will also send an encrypted e-mail to you. • Send e-mail with option Encrypted.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 90

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

• •

Get Message and read the encrypted mail from your partner. You will see an “Encrypted” icon on the mail.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 91

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

To verify, click on the “Encrypted” icon. You will see what algorithm is used for the encryption (168 bits DES).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 92

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

Step 5: Send a signed and encrypted e-mail to your partner • Now you are ready to send an encrypted and signed e-mail to your partner. Note: this lab will be performed on both sites, your partner will also send an encrypted and signing e-mail to you. • Send e-mail with option Encrypted and Signed.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 93

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

• •

Get Message and read the encrypted and signed mail from your partner. You will see a “Encrypted and Signed” icon on the mail.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 94

Unit 2 : PKI Applications (Lab Exercises)

S/MIME

To verify, click on the “Encrypted and Signed” icon. You will see what algorithm is used for the encryption (168 bits DES) and the signature information.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 95

S/MIME

Unit 2 : PKI Applications (Lab Exercises)

Step 6: Getting a certificate via a LDAP request • Choose Security info/ Other people’s certificates

You will now send your LDAP request by selecting Search Directory. Select the Datelec directory server and enter the Email address of the partner whose certificate you want to obtain.

Note: the sender’s certificate has automatically been added to your list of People’s Certificates in order to make it possible for you to send a secure mail to this person. Repeat this step for all your partners and try to send encrypted/signed Email You just finished your S/MIME, congratulations!

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 96

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Socket Layer)

2.7. SSL
2.7.1. History
The SSL protocol was designed by Netscape Communications for use with Netscape Navigator. The version 1.0 of the protocol was used with Netscape and the version 2.0 with Navigator Versions 1 and 2. After SSL 2.0 has been published, Microsoft created a similar secure link protocol called PCT (Private Communications Technology) that overcame some of SSL 2.0’s shortcoming. The progresses of PCT were incorporated into SSL 3.0, which is being used as the basis for the secure protocol being developed by the IETF (TLS).

2.7.2. Secure Sockets Layer (SSL)
The Secure Sockets Layer protocol is a protocol layer, which may be placed between a reliable connection-oriented network layer protocol (e.g. TCP/IP) and the application protocol layer (e.g. HTTP). SSL provides for secure communication between client and server, by allowing mutual authentication, the use of digital signatures for integrity and encryption for privacy. The protocol is designed to support a range of choices for specific algorithms used for cryptography, digests, and signatures. It allows use of algorithm selection for specific servers, based on legal, export or other concerns, and also enables the protocol to take advantage of new algorithms. Choices are negotiated between client and server while starting to establish a protocol session.

SSL Table 1

There are a number of versions of the SSL protocol, as shown in Table 1. As noted there, one of the benefits in SSL 3.0 is that it adds support for certificate chain loading. This feature allows a server to pass a server certificate along with issuer certificates to the browser. Chain loading also permits the browser to validate the server certificate, even if Certificate Authority certificates are not installed for the intermediate issuers, since they are included in the certificate chain. SSL 3.0 is the basis for the Transport Layer Security [TLS] protocol standard, currently in development by the Internet Engineering Task Force (IETF).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 97

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

2.7.3. Session Establishment
The SSL session is established by following a handshake sequence between client and server, as shown in Figure 1. This sequence may vary, depending on whether the server is configured to provide a server certificate or request a client certificate. Although cases exist, where additional handshake steps are required for management of cipher information, this article summarizes one common scenario: see the SSL specification for the full range of possibilities. Note: Once an SSL session has been established it may be reused, thus avoiding the performance penalty of repeating the many steps needed to start a session. This is the reason why the server assigns to each SSL session a unique session identifier. This one is cached in the server and usable by the client on forthcoming connections to reduce the handshake (until the session identifier expires in the server’s cache).

SSL Figure 1 The elements of the handshake sequence, as used by the client and server, are listed below:
1. Negotiate the Cipher Suite to be used during the data transfer

2. Establish and share a session key between client and server 3. Optionally authenticate the server to the client 4. Optionally authenticate the client to the server

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 98

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Socket Layer)

The first step, Cipher Suite Negotiation, allows the client and server to choose a Cipher Suite supportable by both of them. The SSL3.0 protocol specification defines 31 Cipher Suites. A Cipher Suite is defined by the following components: 1. Key Exchange Method 2. Cipher for Data Transfer 3. Message Digest for creating the Message Authentication Code (MAC) These three elements are described in the following sections.

2.7.4. Key Exchange Method
The key exchange method defines how client and server will agree upon the shared secret symmetric cryptography key, used for application data transfer. SSL 2.0 uses RSA key exchange only, while SSL 3.0 supports a choice of key exchange algorithms including the RSA key exchange when certificates are used, and Diffie-Hellman key exchange for exchanging keys, without certificates and without prior communication between client and server. One variable in the choice of key exchange methods is digital signatures : whether or not to use them, and if so, what kind of signatures to use. Signing with a private key provides assurance against a man-in-the-middle-attack during the information exchange used in generating the shared key.

2.7.5. Cipher for Data Transfer
SSL uses the conventional cryptography algorithm (symmetric cryptography) described earlier for encrypting messages in a session. There are nine choices, including the choice to perform no encryption: 1. No encryption

Stream Ciphers

2. RC4 with 40-bit keys 3. RC4 with 128-bit keys

CBC Block Ciphers
4. 5. 6. 7. 8. 9.

RC2 with 40 bit key DES with 40 bit key DES with 54 bit key Triple-DES with 168 bit key Idea (128 bit key) Fortezza (96 bit key)

• • • •

"CBC" refers here to Cipher Block Chaining, which means that a portion of the previously encrypted cipher text is used in the encryption of the current block. "DES" refers to the Data Encryption Standard, which has a number of variants (including DES40 and 3DES_EDE). "Idea" is one of the best and cryptographically strongest available algorithms. "RC2" is a proprietary algorithm from RSA DSI.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 99

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

2.7.6. Digest Function
The choice of digest function determines how a digest is created from a record unit. SSL supports the following: • • • No digest (Null choice) MD5, a 128-bit hash Secure Hash Algorithm (SHA-1), a 160-bit hash

The message digest is used to create a Message Authentication Code (MAC), which is encrypted with the message to provide integrity and to prevent replay attacks.

2.7.7. Handshake Sequence Protocol
The handshake sequence uses three protocols: • • • The SSL Handshake Protocol for performing the client and server SSL session establishment. The SSL Change Cipher Spec Protocol for actually establishing agreement on the Cipher Suite for the session. The SSL Alert Protocol for conveying SSL error messages between client and server.

These protocols, as well as application protocol data, are encapsulated in the SSL Record Protocol, as shown in Figure 2. An encapsulated protocol is transferred as data by the lower layer protocol, which does not examine the data. The encapsulated protocol has no knowledge of the underlying protocol.

SSL Figure 2

The encapsulation of SSL control protocols by the record protocol means that if an active session is renegotiated, the control protocols will be transmitted securely. If there was no session before, the Null cipher suite is used, which means that there is no encryption. Moreover, messages have no integrity digests until the session has been established.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 100

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Socket Layer)

2.7.8. Data Transfer
The SSL Record Protocol, shown in Figure 3, is used to transfer application and SSL Control data between the client and the server, fragmenting possibly this data into smaller units, or combining multiple higher level protocol data messages into single units. It may compress, attach digest signatures and encrypt these units before transmitting them using the underlying reliable transport protocol (Note: all major SSL implementations lack currently support for compression).

SSL Figure 3

One common use of SSL is to secure Web HTTP communication between a browser and a webserver. This case does not preclude the use of non-secured HTTP. The secure version is mainly plain HTTP over SSL (named HTTPS), but with one major difference: it uses the URL scheme https rather than http and a different server port (by default 443).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 101

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

2.7.9. Lab Exercise 7
Objective The student will setup a SSL web server using Netscape Enterprise Server. Scenario The Management wants to implement an intranet server using SSL for your enterprise. You will use an internal CA to certify this Intranet server. Main steps To enable SSL on your server, you must complete the following steps: 1. 2. 3. Time 1 hour Generate your server’s key-pair file (public and private keys) Request a certificate from a Certification Authority (CA) Install the CA certificate that has been sent to you

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 102

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Step1: Generating a key-pair-file A key-pair file contains the public and private keys used for SSL encryption. You use the key-pair file when you request and install a certificate. The key-pair file is stored encrypted in the directory <server_root>/alias/<alias>-key.db. When you create the key, you have to specify a password that will be used later while starting a server using encrypted communications. • • • Go to the <server root>/bin/admin/admin/bin directory. Run the sec-key.exe application. The key-pair file generation program appears. When prompted, type an alias for the new key-pair file. You may choose an alias that matches your server (for instance, web or mail). The alias cannot contain spaces, but it can use symbols that your operating system accepts in filenames (such as hyphens and underscores).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 103

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

• •

A screen with a progress meter appears. Move your mouse in random motions at random speed. These random movements are used to generate a random number for the unique keypair file. When prompted, type an eight-character (or more) password for your key-pair file. The password must have at least one non-alphabetical character (a number or punctuation mark). Make sure you memorize this password. The security of your server is only as good as the security of the key-pair file and its password. After you turn on “SSL for a server” (either the administration server or another Netscape server), you must type the key-pair file password when you start the server.

Retype the password and click OK. The file is created and stored.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 104

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• •

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 105

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 106

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• • • • • •

After you generate a key-pair file, you can request a certificate from a Certification Authority (CA). In the Server Administration page, choose Keys & Certificates / Request Certificate. In the form that appears, specify if you want a new certificate or a renewal. Specify how you want to submit the request for the certificate. In your case it will be by mail at: kcserver@pki.datelec.com. From the drop-down list, select the alias for the key-pair file you want to use when requesting the certificate. Type the password for your key-pair file. The server uses the password to get your private key and encrypt a message to the CA. The server then sends both your public key and the encrypted message to the CA. The CA uses the public key to decrypt your message. Type your identification information. The format of this information is variable from one CA to the other. Here is an example: Requestor Name: Sylvain Maret Telephone number: +41 22 708 15 80 Common name: londres.pki.datelec.com (very important: enter your site!) Email address: londres@pki.datelec.com (enter your email address) Organization: Datelec (very important) Organizational unit: PKI Training (very important) Locality: Geneva State or Province: GVA Country: CH

NB: Print screen on top of following page

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 107

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 108

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

If every field is all right, press OK.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 109

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Copy the Certificate request on the clipboard to submit the request to the CA. In the present case you will use an internal CA that will be Keon.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 110

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Step 2: Request a certificate from a Certification Authority (CA) • Now, you are ready to submit the request to the certificate server (Keon). Via the browser, connect to the Keon Subscriber Services (http://cerbere.pki.datelec.com). • Choose PKI Training jurisdiction – Datelec.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 111

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Choose Enroll for a server Certificate.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 112

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• •

Then, paste the Certificate Signing Request (CSR) from the Netscape server on the Keon Enrollment. Press submit.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 113

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

• • • • •

You can read now the CSR information and control it. Then, enter your First Name, Last Name and your e-mail Address (your-site@pki.datelec.com). Enter a Challenge Passphrase. This phrase can for instance be used later for revocation. If you want, you can enter some comments for the CA (security officer). Press Submit.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 114

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

If the CA agrees to issue a certificate for you, you will be informed by e-mail.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 115

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Read you e-mail, you should receive the X509 certificate from the CA (Keon).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 116

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Step 3: Install the CA certificate that has been sent to you • Now you are ready to install the certificate on the Netscape server. • In the Server Administration page, choose Keys & Certificates / Install Certificate. • Choose This Server under Certificate For. • Paste the e-mail text in the field called Message text. Be sure to include the headers "Begin Certificate" and "End Certificate." Do not forget to check the corresponding button for either the file or the text. • From the drop-down list, select the alias you used when you requested the certificate. If you choose the incorrect alias, the certificate will not be installed.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 117

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Click OK. Another form appears asking if you want to add the certificate. Click the Add button. The certificate is stored in the directory “<server _root>/ alias”. The file name will be <alias>-cert.db. For example, if your alias is Intranet, the file will be intranet-cert.db. Now you can activate SSL for your server.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 118

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• • • •

Select Server Administration. (Very important!) Select your web site, in Server Preferences menu choose Encryption On/Off. The Encryption On/Off form appears. Check the On button. In the drop-down list, choose the alias for the key-pair file and certificate file that you want to use. You must know the password for the key-pair file referenced by this alias. It is the password you must enter before starting or stopping a server that uses SSL encryption.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 119

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Press Save and Apply Changes.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 120

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

The server will restart and you have to enter the password.

• •

Now you are ready to test the SSL web server. With your broswer connect to https://you-site.pki.datelec.com. To see info on Netscape, go to Security Info menu.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 121

SSL (Secure Sockets Layer) •

Unit 2 : PKI Applications (Lab Exercises)

Go to Open Page Info.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 122

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

2.7.10.

Lab Exercise 8

Objective Student will setup a SSL client authentication to protect the access to Intranet server. Scenario The Management wants now to implement a strong authentication based on SSL client certificate to be able to access the Intranet. Main Steps To enable SSL authentication on your server, you must complete these steps: 1. 2. 3. 4. Import CA’s root certificate on the web server Configure the web server to ask a client SSL certificate for authentication Request a client certificate from a Certification Authority (CA) Install on your browser the CA certificate that has been sent to you

Time 1 hour

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 123

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Step 1: Import CA’s root certificate on the web server In order to be able to verify the client certificate, the web server has to know the root certificate who deliver the client certificate. In this case it will be the internal CA Keon. • Go to the Subsciber Services to pick up the Keon’s root certificate. Choose Menu Trusted Root Services / View Server Trusted Root (http://cerbere.pki.datelec.com).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 124

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Copy this certificate on your clipboard.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 125

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Configure the web server to ask client SSL certificate for authentication • In the Server Administration page, choose Keys & Certificates / Install Certificate. • Choose Certificate For / Trusted Certificate Authority (CA). • Paste the Keon’s roots certificate in the field called Message text. Be sure to include the headers "Begin Certificate" and "End Certificate." Do not forget to check the corresponding button for either the file or the text. • From the drop-down list, select the alias you used when you requested the certificate. If you choose the incorrect alias, the certificate will not be installed. • Press OK.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 126

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Another form appears asking if you want to add the certificate. Click the Add button. The certificate is stored in the directory <server_root>/alias. The filename will be <alias>-cert.db. For example, if your alias is intranet, the file will be intranet-cert.db. Now you can activate SSL for your server.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 127

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

• • • •

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 128

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Step 3: Request a client certificate from a Certification Authority (CA) • Now you can enroll for a client certificate. Via the browser, connect to the Keon Subscriber Services (http://cerbere.pki.datelec.com). • Choose Datelec – PKI Training under Jurisdictions.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 129

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Choose Enroll for a Personal Certificate.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 130

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• • •

Enter the following Enrollment Information : First Name Last Name Email Address (Important) Title Enter your Challenge Phrase (for revocation, etc.). Choose Signing and Encryption. Press Accept.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 131

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Now your browser will generate a Private key. This key will be stocked on the local disk.

• •

Enter a PIN code to protect your KEY. Now the enrollment is completed. Wait until you get your certificate. If the CA agrees to issue a certificate for you, the CA will inform you by e-mail.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 132

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• •

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 133

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Step 4: Install the certificate the CA send to you on your browser • Via the browser, connect yourself to the retrieving menu (http://cerbere.pki.datelec.com/getid.htm). • Paste your PIN number and press Submit.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 134

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

• •

Wait until you get the message shown hereafter. Your client certificate is now ready.

• • •

You are ready to test the SSL web server. With your browser, connect yourself to https://you-site.pki.datelec.com. Your browser will ask you a client certificate to authenticate yourself. Select your certificate.

Enter your PIN code to unlock the private key.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 135

SSL (Secure Sockets Layer)

Unit 2 : PKI Applications (Lab Exercises)

Now you are authenticated and connected to your SSL web site

Choose Certificates / Yours.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 136

Unit 2 : PKI Applications (Lab Exercises)

SSL (Secure Sockets Layer)

Then, choose View.

Now, you are finished…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 137

Smart Card

Unit 2 : PKI Applications (Lab Exercises)

2.8. SMART CARD
2.8.1. Lab Exercise 9
Objective Student will install a smartcard reader on his personal computer. This smartcard will be used in next labs. Scenario The Management wants now to implement a corporate extranet solution. The content of the extranet being highly sensitive, the top management wants the authentication to be based on smartcards. Main Steps To activate the smartcard reader on your PC, follow these steps: 1. Installation 2. Verification 3. our browser the CA certificate that has been sent to you Time 15 minutes Step 1: Installation • Your reader is physically connected to your PC through the serial interface. In c:\smartcard double click setup.exe and choose following options

Then Choose COM1…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 138

Unit 2 : PKI Applications (Lab Exercises)

Smart Card

• •

Finish the installation by restarting the computer and then choosing to install the security module on netscape. Close netscape in order to load your environment

Step 2: Verification • Launch Netscape browser, select Security / Cryptographic module following content should appear

• •

Smartcard installation done!

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 139

Playing the Security Officer

Unit 2 : PKI Applications (Lab Exercises)

2.9. PLAYING THE SECURITY OFFICER
2.9.1. Lab Exercise 10
Objective Student will request a certificate that will be stored on smartcard. The student will carry the security engineer task to validate his certificate request Scenario Same scenario as lab exercise 9 Main Steps 1. Certificate enrollement 2. Security engineer validates the certificate request 3. Pushing the certificate on the smartcard Time 30 minutes Step 1: Certificate enrollement • Connect to http://cerbere and follow almost the same procedure as in S/MIME lab. The only difference appears when Keon triggers Netscape RSA key pair generation. You have now the choice between storing the key material in smartcard container or in netscape software key container. Select ActivCard module

Enrollement is now finished

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 140

Unit 2 : PKI Applications (Lab Exercises)

Playing the Security Officer

Step 2: Security engineer validate the certificate request • Connect to CA admin page (https://cerbere.pki.datelec.com:445/home.htm) using your x.509 digital ID to authenticate yourself as a security officer.

Choose certificate management/ process request you should see your own certificate request waiting to be validated

• •

Click on approve and you see the acknowledgment Note: don’t close the Netscape browser before next step

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 141

Playing the Security Officer

Unit 2 : PKI Applications (Lab Exercises)

Step 3: Pushing the certificate on the smartcard • • • Open your netscape messenger and connect to the certificate retrieval page using the PIN received by mail Choose continue and it will install the certificate on your smartcard Now you are ready to proceed to next lab

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 142

Unit 2 : PKI Applications (Lab Exercises)

Revocation with client SSL authentication

2.10. REVOCATION WITH CLIENT SSL AUTHENTICATION
2.10.1. Lab Exercise 11

Objective Use the key material stored on smartcard to authenticate the access to extranet. Certificate validity is checked against a CRL repository. Scenario Your management wants to provide revocation mechanism in order to guarantee high security access that fits to the corporate structure. Main Steps 1. Connect and authenticate yourself using your smartcard 2. Play the security officer revoking a certificate 3. Try again and interpret the experience Time 30 minutes Step 1: Connect and authenticate yourself using your smartcard • • Connect to extranet server https://ayrton.datelec.ch enter pin code to unlock your smartcard

You’ve authenticated successfully against the server

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 143

Revocation with client SSL authentication

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Play the security officer revoking a certificate • Connect to CA admin page (https://cerbere.pki.datelec.com:445/home.htm) using your x.509 digital ID to authenticate yourself as a security officer.

Choose certificate management/revoke certificate you should see the following window

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 144

Unit 2 : PKI Applications (Lab Exercises)

Revocation with client SSL authentication

You can select one of the certificates and revoke it by choosing revoke. A revocation reason is required

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 145

Revocation with client SSL authentication

Unit 2 : PKI Applications (Lab Exercises)

Press revoke and the following window should appear; read carefully the message…

Ask the CA’s super-administrator to force the immediate handling of your revocation on the CA and extranet application. Once done, try again and your access should be revoked.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 146

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

2.11. IPSEC
2.11.1. Introduction
As the reader will understand at the sight of such a chapter name, IPSec’s goal is to provide a protocol to Secure IP protocol. More precisely, it is to provide both integrity and confidentiality of IP packets. Before entering into the details of the IPSec structure, let us recall an old drawing of different security schemes for different level of IP datagram.

IPSec Figure 1: Encryption and OSI layer Basically, IPSec will deal with IP datagram encapsulation inside IPSec packets, hence it will provide security to network layer. The idea in this picture is that the further down you go, the more transparent you are and the further up you go, the easier it is to deploy. Hence, IPSec will be the most transparent PKI based solution that we’ll talk about in this lecture. In fact, for some people IPSec might not be part of PKI as for others it would. For us, PKI is some kind of generic expression to be understood as a set of components bringing authenticity and confidentiality to traffic or message sent across an untrusted backbone (internet is only an example). Consequently, IPSec will deal with exactly the same concept we defined above: symmetric encryption, public/private keys, hash functions, x.509 certificates, CA, key exchange, etc. This chapter will try to show the student how to integrate these tools to provide confidentiality, authenticity and non-repudiation to network layer…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 147

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

2.11.2.

IPSec Architecture

The IPSec is defined by people of a working group being part of the “Internet Engineering Task Force” (IETF). The definition of the protocol is summarized into around 15 RFCs. We will try to concentrate their contents into the most easily digestible form as possible. First of all, let us start by an IPSec oversight showing the relationship between the different subsets of IPSec.

IPSec Figure 2: IPSec components and their interaction First of all, the drawing shows that IPSec is based on two main protocols (or sub-protocols), ESP (Encapsulation Security Payload) and AH (Authentication Header). The reason is that IPSec has two main requirements: provide “confidentiality” as well as data “integrity”. Confidentiality is achieved by ESP protocol and integrity can be achieved either by ESP or AH protocols. To achieve their task, these protocols used define-as-standard algorithms like DES, 3DES or Blowfish for encryption and MD5, SHA1 for authentication via message digest. As we already saw, these algorithms are binded to keys (session keys, private and public keys), which are handled (or even defined) after a key management process. IKE (or Internet Key Exchange) protocol is the chosen standard for IPSec key management. However, IKE is not dedicated to IPSec hence is generic enough to be implemented as a support for many protocols (SSH, SSL, OSPF etc…). Consequently, the presence of a Domain Of Interpretation (DOI) is needed in order to define the parameters that are negotiated by IKE. Besides, another component is needed in order to determine if two entities have the right to communicate and if so, the kind of encryption algorithm or hash function to agree with this component called Policy.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 148

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

2.11.3.

IPSec Tunneling

AH and ESP can be used to protect either the entire IP datagram or only the payload (data). In IPSec this is translated by the existence of two different modes, the tunnel mode and the transport mode. In transport mode, an IP header is inserted between the IP header and the upper-layer protocol headers, as shown here under: Original IP packet Transport mode

Data

In tunnel mode, the entire IP packet is encapsulated in a new datagram with a new IP header. An IPSec header is added in between the encapsulation and the new header, as shown hereunder: Tunnel mode

Transport mode and tunnel mode are both possible with ESP and AH. It is however important to precise that, due to its construction, transport mode can be used only to protect IP packet where the communication endpoints are the encryption endpoints as well. Therefore, tunnel mode is often preferred. Moreover, it offers the possibility to provide security services for other network entities. This last remark is very relevant because it justifies IPSec as being a major component in the construction of VPNs (Virtual Private Networks). The need of building secure and transparent communication channels, in order to privatize a public or untrusted IP network (as for example the internet), sets IPSec tunneling as a powerful tool to accomplish this task. Effectively, as described hereunder, placing IPSec gateways at the endpoints of an untrusted network like the Internet, offers a secure channeled communication solution.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 149

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

IPSec Figure 3: IPSec based VPN In this drawing, the importance of a certified tunnel is shown. Students should be aware that other protocols like PPTP (Point to Point Tunneling Protocol) or L2TP (Layer 2 Tunneling Protocol) offer only tunneling, compared to IPSec that offers encryption, authentication as well as tunneling. This is the reason why we think that it is less likely that IPSec fall into an eventual dying standard category. SA (Security Associations) Before going deeper into AH and ESP protocols, we want to define the SA concept, which will be very often referred to when talking about IPSec… The goal of Security Associations (SA) is to maintain the agreements that enable two parties to exchange secure data. Each connection between two security gateways will require a unique SA. An exchange between two peers that involves both authentication and encryption requires two Security Associations, one for agreements regarding authentication and one for agreements about the encryption. As negotiation always precedes agreements, SA needs to be negotiated between gateways. For example one might have a gateway able to perform DES and Blowfish encryption, as another might be able to run only DES algorithm, hence the negotiation will reach the agreement of using DES encryption. In order to be quantified, all SAs are indexed or identified by a number called the Security Payload Index (or SPI) which will appear in the IPSec headers.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 150

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

Security Associations are set up between pairs of communicating hosts. These SAs contain the agreements that are specific to the transfer of data between the two parties. These specific agreements do not apply to communication that may take place with any other party. Each Security Association maintains agreements about shared session keys, the IP addresses of the pair of IPSec compliant gateways, the IP addresses of protected hosts or subnets, and related parameters regarding the expiration of session keys (i.e., when the session keys must be regenerated). Once the session keys reach a defined expiration time, a new Security Association must be established, thereby ensuring on going SA (or Security Associations). AH As we saw already, AH is the protocol that will provide authentication and data integrity but will not provide data confidentiality. Hence, the header will be quite simple and no field of this header will be in clear or plaintext form. AH is a new IP protocol whose value are 51. The AH header contains a SPI to define the SA with which the packet is processed and a data authentication field. To understand how to process such an authentication let us recall that until now, we have bound authentication to a digital signature concept. In the case of IP packet authentication, it would not be reasonable to proceed that way because processing public key algorithm is very CPU demanding. A simple way to proceed could be to process the whole IP datagram into a hash function and define the resulting message digest as the authentication packet (hash functions are not much CPU consuming…). This might sound as an interesting workaround but as the student should know at this step of the lecture, performing hash doesn’t provide a real authentication. Effectively any eventual eavesdropper could change the IP datagram, reapply the hash and replace the authentication packet with this message digest!

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 151

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

Both peers could use the hashing mechanism together with some secret they share…This is called key hashing and is used to generate message authentication code (or MAC). Let us recall once again the MAC process:

IPSec Figure 4: MAC The idea here is to add a p reshared key to a stream of data (for example an IP datagram), the result is a new stream of data. Then it goes through a hash function and the resulting message digest is the MAC. The MAC and the SPI will form the AH header. The remote IPSec gateways verify authenticity and integrity of the IP datagram simply by processing it with his secret key (supposed to be the same) into the hash function. In this case, an eavesdropper couldn’t reproduce the MAC because he is not supposed to hold the secret key. Note: Despite the similarity, MAC is conceptually very different from digital signature. For example, digital signature (based on public key cryptosystem) offers non-repudiation, which is not the case with MAC.

Datas

IPSec Figure 5: An AH protected packet A special kind of MAC is called HMAC. Without giving details, it is basically a keyed hash inside a keyed hash, in order to enforce the MAC concept. Practically, HMAC are used to generate IPSec Authentication Headers. In term of policy definition they appear as HMAC-SHA1 or HMACMD5 etc. ESP ESP is the IPSec protocol to provide confidentiality, data integrity and data source authentication of IP packets. It does so by inserting a new header after an IP header and before the data to be protected. Encrypted
ESP header Protected data ESP trailer

Authenticated IPSec Figure 6: An ESP protected packet © Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 152

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

Since ESP provides both confidentiality and authentication, its SAs contains the cipher and the authenticator. We can see the ESP header as the AH header plus data specific to the encryption part. It is possible for an ESP header to have a null cipher or a null authenticator but it is illegal for both to be set as null! The ESP header is not encrypted, this is because it contains for example the SPI which, together with source/destination IP, identify the SA and by consequence the cipher needed to decrypt cipherdata. In addition, sequence number and authentication data are in clear, this is due to the order of processing ESP packets: first check the sequence number, then data integrity and finally decrypt data. Contrarily to the header, the ESP trailer can be partly encrypted as long as enough information is kept clear to allow the packet to be processed. IKE An important process in IPSec is key management. IPSec supports both manual exchanges of keys (e.g., telling the other party verbally or delivering a written copy) as well as automatic key exchange using IKE. IKE is designed to provide: • • • The means for parties to agree on which protocols, algorithms and keys to use. Confirmation that the party you are communicating with is in fact who they say they are. Management of keys after they have been agreed upon

Automatic key management is the procedure that generates the session keys that are used by certified peers for encrypting and authenticating data packets. Key management can be performed automatically whenever data is transferred to a new trusted peer, and as an ongoing process to ensure that session keys are changed regularly. Each side of a communication needs to generate unique pairs of shared session keys between itself and the party it wants to communicate with. One key is used for data encryption, and the other key is used for data Authentication (see keyed MAC described above). Encryption is performed using an agreement upon algorithm, such as DES. Authentication may be performed using one of several standard message digest algorithms – HMAC-MD5 etc. All the essential information required for this communication is defined within a SA. This includes the shared session keys, the IP addresses of participating IPSec compliant gateways, the IP addresses of the protected hosts or subnets, and other important related parameters (such as how often to change the keys). A distinct Security Association is created for each pair of protected hosts or subnets. A pair of session keys is unique to a pair of protected hosts or subnets. The pair of keys is also unique to the direction of the data flow. For data that is sent from one IPSec gateway to another, a unique pair of session keys is required. If the other gateway needs to send data to the first, another unique pair of session keys is required. In other words, only one device can use a unique session key for data encryption, while the other device in the pair uses that same key for decryption. Thus, a single session between two hosts or subnets may involve four keys.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 153

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

2.11.4.

IKE Main Mode and Quick Mode

Once communication has been established between two IPSec compliant security gateways, the key exchange process must be properly managed for continuing security. The security device that decrypts incoming data, initiates the key management process with the security device that encrypts the data, whenever the session keys are close to an agreed upon expiration time. The key management protocol used by IPSec is composed of two stages. The first stage, called ‘IKE main mode’, generates the Security Association that is used for the protection of the second stage exchanges. The Security Association, created by IKE main mode, is called IKE SA. An IKE SA is created between two security gateway devices. Whenever this SA expires, a new IKE main mode is initiated by the device that detected the expiration. The second stage of key management is called ‘IKE quick mode’. This stage generates a security association that is used for the tunnel creation. A distinct tunnel is created for each pair of protected hosts or subnets. Several IKE quick modes, for several hosts or subnets pairs, can be protected by a single IKE SA. Key exchange is performed to generate a single, unique secret that is shared by the participating pair of IPSec compliant gateways. In the main mode, keys for the protection of the quick mode are generated. In the quick mode, two pairs of shared session keys are derived from the shared secret, one for sending and the other for receiving. A number of different session keys can be derived from one shared secret. IKE main mode The IKE main mode process comprises three phases (each phase consists of two messages): 1. Cookie and SA Proposal Exchange 2. Diffie-Hellman Exchange 3. Authentication Information Exchange

The Cookie Exchange, the first phase of the IKE main mode, prevents an IPSec compliant gateway from initiating the key management process with an unrecognized party. The Cookie is a token that is derived from the gateway’s IP address and generated by each gateway by hashing together a unique secret (the peer’s identity) and a time-based counter (for the casual observer, it will look like a random number). Verification of the cookie ensures that the key management process is taking place within the appropriate session, with the correct peer. Thus, cookie exchange provides some kind of limited denial of service attack. With the initiator cookie, an SA (Security Association) proposal is sent. This proposal contains the IKE SA parameters suggested by the initiator (such as the encryption and authentication algorithms, lifetime of this SA, etc.).
Diffie-Hellman exchange

The Diffie-Hellman Exchange phase generates the shared secret from which the symmetric IKE keys are derived. Both peers are involved in this process. The devices generate the Diffie-Hellman components using a real random number generator. Each IPSec compliant device generates a part of the shared secret and sends a copy of it to the other device. Each device combines its own number with the number received. By the end of the Diffie-Hellman exchange, both devices possess a single, unique shared secret.

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 154

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

The benefit of Diffie-Hellman is that it prevents a physical key exchange, moreover if an eavesdropper intercept any parameters exchanged, he can’t deduce shared secret (For a complete description algorithm, refer to the book “Applied Cryptography” by B. Schneier, referred in the Bibliography).
Authentication information exchange

The last phase of the IKE main mode is used to authenticate the whole exchange. The security device can use two optional authentication methods; either pre-shared secret authentication, or RSA signature authentication. When the first method is used, the shared secret, created in the previous stage, the pre-shared secret (that is entered by the user from the management station), and some other data, are signed by both sides, using a hash algorithm (such as MD5). The IKE SA can be used only after both sides verify the signature of the other side. When the second method (RSA signatures) is being used, each side signs the shared secret created in the previous phase, and some other data, using its private RSA key. The signature is verified by each side using the other side’s public RSA key. As we saw in the previous chapters, this process requires the presence of a Cerificate Authority certifying the identity of a public key holder (X.509 certificates). IKE quick mode (or Aggressive Mode) The IKE quick mode process comprises three messages: 1. SA Proposal 2. SA Response 3. SA Acknowledgment
SA proposal

This message comprises the parameters of the tunnel protection, proposed by the initiator (algorithms, lifetime, etc.), the IP address of the host or the subnet that will use this tunnel, and an optional Diffie-Hellman component. Enhanced security can be obtained by using the ‘Perfect Forward Secrecy’ option, which prevents any association between successive session keys. This may, however, affect the key exchange performance, as each exchange will take longer. ‘Perfect Forward Secrecy’ means that the optional Diffie-Hellman component will be sent.
SA response

This message comprises the parameters of the tunnel protection selected by the responder (algorithms, lifetime, etc.) and the IP address of the host or the subnet that will use this tunnel. If the SA proposal contains a Diffie-Hellman component, the SA response also contains a DiffieHellman component. If Diffie-Hellman is used, both sides generate a shared secret using DiffieHellman, like they did in the main mode. Otherwise (if not in perfect forward secrecy), a new shared secret is derived from the Diffie-Hellman shared secret generated in the first stage. The message is signed digitally, in a similar way to that described in the Authentication Information Exchange phase of the main mode. The initiator sets the tunnel after sending this message. (Refer to the book “Applied Cryptography” by B. Schneier, mentioned in the Bibliography for a description of the algorithms).

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 155

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

SA acknowledgment

This message is used to acknowledge to the responder that the initiator indeed accepted its response. This message is also digitally signed. The responder sets the tunnel only after verifying this message.
Determining the rate of changing keys

Though it is difficult to do, the session keys used for encrypting and authenticating data can be guessed by an unauthorized party, damaging the data’s security. Thus, the more frequently a key is changed, the less data will be compromised if the key is discovered. The frequency of changing keys may be determined by time intervals or traffic volume. The user determines when new keys are changed (i.e., when a new quick mode is initiated). The IPSec compliant security gateways determines when to initiate the entire key management process (i.e., initiate a new main mode).
Summary

IPSec offers a “layer 3” solution to data privacy being network, application independent and supporting all IP services. IPSec mechanisms are using Diffie-Hellman to deliver secret keys, public key cryptosystem for signing Diffie-Hellman exchanges, symmetric encryption for encrypting data and digital certificates cryptosystem for validating public keys. We can consider IPSec as a condensed of all 3 cryptosystems described in this lecture tightly bound to IP standard. Thus it is likely for IPSec to become a widely used protocol in the years to come…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 156

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

2.11.5.

Lab Exercise 12

Objective The student will setup an IPSEC link between a client and an IPSec gateway (FW-1/VPN-1 Checkpoint). He will use IKE protocol for key management and a two factor authentication based on X.509 certificate. Scenario The Management wants to build a VPN between remote users and a central site protected by a Firewall/IPSec gateway. Due to server heterogeneity, corporate decision was to privilege an IPSec-based solution rather than SSL. Main steps 1. Configuration of Firewall (done by instructor) 2. Securemote installation Time 1 hour 30 Step 1: Configuration of Firewall (instructor) • • • • • • • • • Create a CA server of type: OPSec PKI, choose LDAP Server for CRL retrieval and deactivate http Bootstrap Firewall with Root CA certificate Create LDAP account unit (cerbere, LDAP rights Read) Firewall Enrollment (DN: CN=IP address), copy CSR and paste on cerbere Certificate stored in .cert file and imported in firewall Edit Firewall object/vpn IKE edit and choose public key signature, configure and choose mycert. Edit Firewall object/vpn FWZ, Generate Diffie-Hellman Manage users and create generic* with IKE encryption and public-key authentication Add encryption rule and install security policy

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 157

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

Step 2: Securemote installation • Install Securemote client on your PC using source code in c:\sr directory, Choose the following options :

Reboot your computer and configure Securemote by importing the site: Site / New 192.168.150.222

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 158

Unit 2 : PKI Applications (Lab Exercises)

IPSEC

In this lab, we will use the same certificate as the one of S/MIME exercise. Therefore, open your Netscape messenger and export your certificate in PKCS#12 format (Security/Yours/Export…)

Import your PKCS#12 formatted key material inside Securemote by selecting certificate/import

Consequently, the key material format will be reformated as follows

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000 Page 159

IPSEC

Unit 2 : PKI Applications (Lab Exercises)

We define which certificate will be used for IPSec client authentication

Note: by default, Securemote is configured to work with Entrust PKI; therefore don’t forget to disable Entrust intelligence

Now, try to reach some server behind the firewall, for example telnet 192.168.104.40. You will be prompt for the password protecting the key material as follows

And if you configured everything correctly…

© Dimension Data SA (Switzerland), Sylvain Maret & Cédric Enzler
Version 1.5, October 1999, rev. August 2000

Page 160