Giter Site home page Giter Site logo

rbudpchallenge's Introduction

Red Balloon Security's challenge

To run:
python3 server.py -c config.json

No dependencies required

Design
------
The main process creates two other processes: validator and logger process.
Validator process computes UDP checksum and logger process writes checksum errors
to the log after an artificial 180 second delay. The main reason for using processes
is to sidestep GIL in order to handle the fast rate of udp packets.

Python 3 was used because of the convenient method to transform a byte string into 
an int via the method int.from_bytes. Additionally, I found that multiprocessing seems
to work better in Python 3 and Python 2 would hang after catching SIGTERM.

Weaknesses
---------
Currently, I am unable to find a way to verify the signatures. I have tried many modules
including PyCrypto, M2Crypt, and rsa. I have even tried to create my own homebrew verification.
I am sure that there must be a small detail I am missing; 
it might be the endianess or even the version of Python that I am using.
Unfortunately, I have run out of time on this and need to work on my other assignments.
However, my current design seems to scale pretty well
and I am confident that I can incorporate signature verification into this system
if I know how to do it correctly.

rbudpchallenge's People

Contributors

lu-ren avatar

Watchers

James Cloos avatar  avatar

rbudpchallenge's Issues

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.