Warning: foreach() argument must be of type array|object, bool given in /var/www/html/web/app/themes/studypress-core-theme/template-parts/header/mobile-offcanvas.php on line 20

Suppose Alice wants to visit the Web site activist.com using a TOR-like service. This service uses two non-colluding proxy servers, Proxy1 and Proxy2. Alice first obtains the certificates (each containing a public key) for Proxy1 and Proxy2 from some central server. Denote K1 +( ), K2 +( ), K1 –( ), and K2 –( ) for the encryption/decryption with public and private RSA keys. a. Using a timing diagram, provide a protocol (as simple as possible) that enables Alice to establish a shared session key S1 with Proxy1. Denote S1(m) for encryption/decryption of data m with the shared key S1. b. Using a timing diagram, provide a protocol (as simple as possible) that allows Alice to establish a shared session key S2 with Proxy2 without revealing her IP address to Proxy2. c. Assume now that shared keys S1 and S2 are now established. Using a timing diagram, provide a protocol (as simple as possible and not using public-key cryptography) that allows Alice to request an html page from activist.com without revealing her IP address to Proxy2 and without revealing to Proxy1 which site she is visiting. Your diagram should end with an HTTP request arriving at activist.com.

Short Answer

Expert verified
Keys S1 and S2 are used to securely communicate with prxoies; Proxy1 does not know the final destination and Proxy2 does not know Alice's IP address.

Step by step solution

01

Establishing Shared Session Key S1 with Proxy1

1. Alice generates a random session key S1. 2. Alice encrypts S1 with Proxy1's public key \( K1^+ \) to obtain \( K1^+(S1) \). 3. Alice sends \( K1^+(S1) \) to Proxy1. 4. Proxy1 decrypts the message using its private key \( K1^- \) to retrieve S1, thus establishing the shared session key S1.
02

Establishing Shared Session Key S2 with Proxy2 via Proxy1

1. Alice generates a random session key S2. 2. Alice encrypts S2 with Proxy2's public key \( K2^+ \) to obtain \( K2^+(S2) \). 3. Alice sends \( S1(K2^+(S2)) \) to Proxy1, which encrypts the message with shared key S1. 4. Proxy1 decrypts using S1 and forwards \( K2^+(S2) \) to Proxy2. 5. Proxy2 decrypts using its private key \( K2^- \) to retrieve S2, thus establishing the shared session key S2.
03

Requesting a Page from activist.com without Revealing Sensitive Information

1. Alice creates an HTTP request for activist.com and encrypts it with S2 to get \( S2(HTTP ext{-}Request) \). 2. Alice sends \( S1(Proxy2 ext{-}Request, S2(HTTP ext{-}Request)) \) to Proxy1, encrypting the message with S1. 3. Proxy1 decrypts using S1 and forwards \( S2(HTTP ext{-}Request) \) to Proxy2. 4. Proxy2 decrypts the request using S2 and sends the HTTP request to activist.com, keeping Alice's IP hidden. 5. The HTTP request arrives at activist.com without Proxy1 knowing what site is being visited and without Proxy2 knowing Alice's IP address.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with Vaia!

Key Concepts

These are the key concepts you need to understand to accurately answer the question.

Public Key Cryptography
Public Key Cryptography is a fundamental part of network security protocols. It involves two keys: a public key and a private key. The public key, as the name suggests, can be shared with everyone. The private key, however, is kept secret.

These two keys are mathematically linked. When data is encrypted with a public key, it can only be decrypted with the corresponding private key, and vice versa. This property is what makes public key cryptography so useful in secure communications.

In our exercise, Alice uses public key cryptography to securely establish session keys with Proxy1 and Proxy2. She encrypts these session keys with the respective public keys of the proxies. This ensures that only the proxies, who possess the corresponding private keys, can decrypt and obtain the session key. This process helps maintain the confidentiality of the session key, even though the encrypted message with the public key is visible over the network.
Session Key Establishment
Session Key Establishment is a process in which a temporary, shared key is set up between two parties to secure their communication for a session. This key is typically only valid for a short period or a single session.

In our scenario, session keys S1 and S2 are established between Alice and Proxy1, and Alice and Proxy2, respectively. Alice generates these random keys herself, ensuring they are unique and secure for those sessions. She then uses public key cryptography to securely encrypt and share these keys with the respective proxies. Using session keys for encryption is efficient since they are symmetrical, meaning the same key is used for both encryption and decryption of messages.

These session keys help in keeping the communication private just for that particular interaction without revealing the main public-private key pairs involved. They are a crucial component in maintaining secure communications while minimizing the risk associated with long-term cryptographic keys being compromised.
Anonymity in Network Communication
Anonymity in Network Communication is about keeping the identity of the users and their activities hidden from observers. This includes hiding IP addresses and preventing others from knowing which websites are being accessed.

In the exercise, Alice is striving for anonymity while accessing activist.com. She uses a technique reminiscent of the TOR network, involving Proxy1 and Proxy2. The purpose is to keep both her IP address hidden and the details of the website she is visiting confidential. She does this by routing her requests through two different proxies.
  • Proxy1 does not know the destination website because it forwards only an encrypted message to Proxy2.
  • Proxy2 handles the final step of sending the HTTP request to activist.com, unaware of Alice's origin, due to the session key encryption.
By splitting the tasks between different proxies, anonymity is achieved. Each proxy only knows part of the information, ensuring neither Alice’s IP nor her intended web destination can be fully known by a single proxy. This method allows Alice to protect her privacy in network communications.

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.

Sign-up for free