|
|||
Problem overview: In this problem, you are to develop a simple VPN that allows data to be sent from one computer to another computer over protected channel. For this problem, your channel must provide mutual authentication and key establishment. It must also provide confidentiality and integrity protection using the shared secret value computed at both ends by the key establishment protocol. You must provide your own implementation of the mutual authentication, key establishment, as well as the confidentiality and integrity protection, using third-party implementations of cryptographic primitives and modes of operation. However, you cannot use full or partial third-party implementations of protected channels, e.g., SSL, TLS. More details:The program you must create can be toggled between “client mode” and “server mode”. When set in server mode, the program waits for a TCP connection on a port that can be specified on the user interface (UI). When set in client mode, the program can initiate a TCP connection to a given host name (or IP address), on a given port; both the target host name (IP address) and the TCP port are specified on the UI. By the time that the TA is ready to type into the “Data to be Sent” window, the two machines must be certain that they are talking to each other (i.e., no other machine is impersonating one of them) and must share a fresh symmetric key that no one else knows. You may choose whichever mutual authentication protocol and whichever key establishment protocol (or whichever combined protocol), stream or block ciphers and modes of operation you wish. However, you must be able to defend why you chose it and why you feel it is suitable (i.e., sufficiently secure) for implementing a VPN. To keep things simple, appropriate cryptographic algorithms include AES, DES, MD5, SHA (various versions), RSA, D-H, HMAC-MD5; when using these, ignore all padding rules (i.e., when padding is required, pad with zeros) and use the smallest moduli that will work. Deliverables: you are expected to write a document and your program. The document should include the following:A. A brief (no more than one page) but sufficient instructions for installing and executing your program installation. B. A brief description (no more than four pages) of how your VPN works. This description should include: |
Copyright © 2007-2010 Konstantin Beznosov |