Git Product home page Git Product logo

expanded_needham_schroeder's Introduction

Code Structure:

My code is built on a client server implementation where each instance expects a protocol. The protocol is a state machine that determines what to send based on it's current state and what messages it has recieved.

Each client and server also have their own AuthenticationManger. The AuthenticationManger is responsible for encryption, decryption, nonce generation, and key generation.

The client and server files are: Alice.java Bob.java Kdc.java Trudy.java TcpClient.java TcpServer.jaca TcpObject.java

The protocol files are: ExpandedNeedhamSchroederClientProtocol.java ExpandedNeedhamSchroederKdcProtocol.java ExpandedNeedhamSchroederServerProtocol.java NeedhamSchroederClientProtocol.java NeedhamSchroederKdcProtocol.java NeedhamSchroederServerProtocol.java NeedhamSchroederReflectionProtocol.java Protocol.java

My project also makes use of runner files that start the necesary servers and clients. ENSRunner.java - this is the Expanded Needham Schroeder runner NSRunner.java - this is the Needham Schroeder runner ReflectionRunner.java - this is the runner for the reflection attack

Miscellaneous: AuthenticationManger.java - Responsible for all things related to encryption Util.java - Utility functions like writing to files

Solutions: expanded_needham_schroeder.txt - contains a successful ENS authentication ref_needham_schroeder.txt - contains an attempt at a reflection attack

expanded_needham_schroeder

implementation of an expanded needham-schroeder protocol in java

CS 5958/6490: Network Security – Fall 2013 Programming Assignment 1 Due by 11:59:59 PM MT on October 28th 2013

Important: • No late submissions will be allowed so please plan well ahead of the due date. • Total Points for this Programming Assignment: 100

The goal of your programming assignment is to build the expanded Needham Schroeder Mediated-Authentication Scheme (Figure 11-19 from the Perlman book). You need to write socket programs that run on three nodes (can be three processes on the same machine), Alice, Bob, and the KDC. You must use one of C, C++, or Java for your programs.

Assume that Alice initiates the authentication exchange. Please ensure the following. • The challenges are at 64 bits long. • The secret key encryption scheme is 3DES. • You need to set up two keys for each 3DES based secure communication between two parties (Alice and KDC, Bob and KDC, Alice and Bob). • Use a unique number for identifying a user instead of IP addresses and port numbers. • Read sections 11.5 and 11.6 from the book before choosing values of the various N’s in Figure 11-19.

When the initial two-message handshake is not used, and when NB is removed from the ticket, the extended version of Needham Schroeder reduces to the original version (Figure 11-18). For the original version of Needham Schroeder scheme first use the Electronic Code Book (ECB) for encrypting multiple blocks and demonstrate how Trudy is successful in impersonating Alice by causing a reflection attack. Remove this vulnerability by using Cipher Block Chaining (CBC) instead of ECB. In creating the reflection attack, you can assume that the information that Trudy needs to eavesdrop is available to her (i.e., you can make that information available to Trudy in your program, you do not need to sniff that information in real time).

Include print commands in your code to show • one successful authentication (extended Needham Schroeder), • the reflection attack (original Needham Schroeder), and • the difference in CBC vs ECB outputs for the last two messages (original Needham Schroeder). Using the handin utility (cs5958 students should also use cs6490), electronically turn in your code along with the output files, and a readme file. The readme file should explain how the code is organized. Your code should be well commented. 5 points will be deducted for lack of comments. For this assignment you could take the help of existing tools such as Openssl for 3DES related functions. While you can use any computer to work on your programming assignment, make sure that it runs on the CADE lab machines. We cannot grade any programming assignments that do not run on the CADE lab machines.

expanded_needham_schroeder's People

Contributors

telnicky avatar

Watchers

James Cloos avatar

Forkers

omniafathy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.