Giter Club home page Giter Club logo

securekb's Introduction

SecureKB

This project is about using an MCU board (any MCU that's able to communicate through UART) to encrypt keyboard strokes before they are handled by the operating system.

keyboard ---> /dev/input --> SecureKB --> uart-STM32 ---> SecureKB --> /dev/event --> OS

In this precise example I ll provide the MCU code for an STM32L and an ARDUINO code. The x86 part should be the same (or almost) no matter the MCU used.

I tested this on my Toshiba laptop hosting a Linux Mint 16.

x86 part

To compile the x86 part, go to the x86 folder, and type make. I assume you have a gcc compiler, build-essential, i don't remember what else but i believe those 2 should be enough. Drop me a line if you find a library or a package is needed to compile correctly.

You ll need to have the uinput and evdev modules available (they are implicitly available in 2.6+ kernels i believe)

mcu part

Use your preferred dev environment to build the code (or port it to your custom mcu..etc) then load it to your mcu. The provided code was compiled using arm-none-eabi-gnu toolchain , latest version available in August 2014 .

Make sure you have the toolchain installed and added to your path. Then go to the Std-blablabla/Debug folder , then type make. Do the same with USART_Polling/Debug folder ; You guessed right : This is based on a default project package for eclipse with very minor modifications.

I use arm-none-eabi-objcopy -Obinary to get the binary from elf. Then i used openocd to flasht hat on the stm32 starting from offset 0x8000000

execution

conned the mcu on a USB port (throug a serial to usb cable may be)

load modules evdev and uinput

start the x86 part (with sudo rights) // You need to check that the path used in core.c for input is actually the same //in your system, otherwise you need to update it inside core.c and recompile //Same remarq goes for the serial port path

Drop me a word if you need any help with any of the steps above.

Please feel free to comment, update and especially SHARE.

Author: Oussema HARBI [email protected]

securekb's People

Contributors

oussemah avatar

Watchers

James Cloos avatar  avatar

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.