Lab Assignment 1 : due 9/28 Monday Preparation 1. traceroute tool (we will use an equivalent tool called tracert in Windows in this lab) traceroute operates by first sending a few datagrams with the time-to-live (TTL) field in the IP header set to 1; it then sends a series of datagrams towards the same destination with a TTL value of 2; it then sends a series of datagrams towards the same destination with a TTL value of 3; and so on. A router must decrement the TTL in each received datagram by 1 (RFC 791 says that the router must decrement the TTL by at least one). If the TTL reaches 0, the router returns an ICMP message (type 11 – TTL-exceeded) to the sending host. As a result of this behavior, a datagram with a TTL of 1 (sent by the host executing traceroute) will cause the router one hop away from the sender to send an ICMP TTL-exceeded message back to the sender; the datagram sent with a TTL of 2 will cause the router two hops away to send an ICMP message back to the sender; the datagram sent with a TTL of 3 will cause the router three hops away to send an ICMP message back to the sender; and so on. In this manner, the host executing traceroute can learn the identities of the routers between itself and destination X by looking at the source IP addresses in the datagrams containing the ICMP TTL-exceeded messages. 2. Install openssl and ghex (already installed in the SEED VM) $sudo apt-get install openssl OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) network protocols and related cryptography standards required by them. In this lab, we will practice using openssl enc command to encrypt/decrypt a file. To see the manuals, you can type man openssl and man enc. $sudo apt-get install ghex ghex is a hex editor for GNOME, it allows the user to load data from any file, view and edit it in either hex or ascii. $ghex filename Submission 1. Write all the answers in a file. 2. Rename the file to lab1_firstname1_firstname2.txt. E.g., if Alice and Bob form a team, the file name should be lab1_alice_bob.txt 3. Email the lab report to the TA (Jiayin.Wang001@umb.edu) and CC the instructor (Bo.Sheng@umb.edu) Question 1 Open a terminal in Windows and type in the following command and answer the questions $tracert -d yahoo.com a. How many hops is your machine away from yahoo.com? (Attach the output in the lab report) b. Wait for a while and execute the same command again. Is the output the same as the first time? (Hint: no) Which hops are changed? Observe and compare the difference, and explain the reason. Question 2 a. Use your CS account to log in linux1.cs.umb.edu and compare the following two commands in the shell and explain the difference between the outputs. dig cs.umb.edu dig cs.umb.edu @8.8.8.8 b. What is the IP address of cs.umb.edu? Assume CS department’s network uses a 23-bit IP prefix, how many IP addresses the department can support? c. Write a script to find all the IP addresses assigned in CS department that have globally recognized domain names. (Consider the same assumption of 23-bit prefix) Question 3 In openssl, we can use the following commands to encrypt/decrypt a file. $openssl enc -aes-128-ecb –nosalt -e -in plain.txt -out cipher.bin (use AES-128-ECB to encrypt the file plain.txt and store the ciphertext as cipher.bin) $openssl enc -aes-128-ecb –nosalt -d -in cipher.bin (use the same scheme to decrypt the ciphertext cipher.bin) “-aes-128-ecb” option specifies a particular version of AES algorithm. a. The encryption algorithm aes-128-ecb is a 128-bit block cipher. Design an experiment to verify it. b. Create a >64 bytes text file plain.txt and use the above command to generate the cipher.bin. Use ghex2 to change 1 bit of cipher.bin and save the result as cipher1.bin. Execute the same command above to decrypt cipher1.bin. How much information can you recover? Please explain why.