Skip to content

Secure control interface for a PC over named-data-networking (NDN) or UDP, using a mobile device.

License

Notifications You must be signed in to change notification settings

wminner/ndnMouse

Repository files navigation

Documentation

Overview

It's a secure control interface for a PC over named-data-networking (NDN), using a mobile device! It also has UDP support.

If you want more detail, check out the project report or slides.

Current Features

  • Mouse control: movement, left click, right click, tap-to-click
  • Mouse movement sensitivity and precision settings
  • Two-finger scrolling, with inversion and sensitivity settings
  • Rudimentary keyboard support
    • Common slideshow control buttons
    • Custom typed messages (see ellipses button)
  • UDP and NDN support
  • Security:
    • AES cipher block chaining with random IVs for each message
    • Random salt applied to password
    • Replay attack prevention via sequence number enforcement policy

Supported Platforms

Severs/Producers (phone):
  • Any relatively modern Android phone (Android 4.1 and up)
Clients/Consumers (PC): basically anything that can run NFD and Python3
  • Any Linux distribution that can run NFD and Python3 (tested on Ubuntu 16)
  • OSX
  • Windows (no NFD, so UDP support only)

How to Use

Dependencies

Install

  1. Install NFD on your Android phone and the PC on which you want to control the mouse.
  2. Download from Google Play, or compile and install the app using Android Studio.
  3. On your PC, install Python3 and pip3. If necessary install dependencies for PyAutoGUI. Then install the Python libraries: PyAutoGUI, PyCrypto, and PyNDN.
    1. Python3 and pip3 (to help install Python libraries): sudo apt-get install python3 python3-pip
    2. Depending on your PC's operating system, PyAutoGUI has some dependencies:
      1. On OSX, install Quartz: sudo pip3 install pyobjc-framework-Quartz
      2. On Linux, install Xlib and Tkinter: sudo apt-get install python3-xlib python3-tk
    3. PyAutoGUI, PyCrypto, and PyNDN: sudo pip3 install pyautogui pycrypto pyndn

Running

  1. Attach your phone and PC to the same network or wireless access point. WiFi hotspot also works.
  2. Make sure NFD is started on both your phone (the server/producer) and your PC (the client/consumer). Use the NFD app to start it on Android. On PC, use nfd-start.
  3. On your phone, start the server within ndnMouse (you can choose NDN or UDP protocol).
  4. On your PC, execute the matching-protocol Python script in the pc_client directory. Connect to the IP address that was specified on your phone's ndnMouse start screen. Password is optional, but provides encryption when used (otherwise cleartext).
  5. Control 🐭❗

Screenshots

                     

You can also watch the demo video.

License

See here

About

Secure control interface for a PC over named-data-networking (NDN) or UDP, using a mobile device.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published