Git Product home page Git Product logo

fpa-nativeapp's Introduction

FPA-NativeApp

This is the application running on your PC used for fpa or Fingerprint Authentication.
This application is required for the fpa protocol to work.
This application is the middle man of your authentications, it needs to be on the same network as the phone is.
The application works together with the Phone App
It provides features like:

  • Logging in to windows with your fingerprint
  • Logging in to website with your fingerprint

Also support is coming for website owners to implement the fpa protocol with 2FA so you can use your fingerprint as a 2nd factor of authentication.

Installation

This project is in development stage, so regular users may check back later for status updates. But you're feel free to install it. Follow these steps:

  1. Fork the project
  2. Open up the project with visual studio
  3. You need to download the BouncyCastle C# Dll and reference it
  4. Press the green Start button or press F5

That's it, the application is now running.

Usage

Yeah the UI is ugly, that's part of why this project is in development stage :)
You can test out windows authentication, and website authentication with FPA Browser Extension
Note: Windows authentication form can be bypassed multiple ways, this is for debugging purposes, as you don't want to permanently lock you machine.
If you wish to enable protection features edit the following files:

  • In LockUI.cs at the top of the file
    • Change #define SafetyButton to #undef SafetyButton, this will remove the safety close button from the login form
    • Change #define ForceTopDisable to #undef ForceTopDisable this will enable the form to constantly stay on top of every other window
  • In WindowsLocking.cs at the top of the file
    • Change #define ProcLockDisable to #undef ProcLockDisable, this will launch a protector process (more on this below)

Similar to this if you want to disable a protection you can change the #undef prefix to #define.

Process Locking

After locking the PC the app starts another process, it's only purpose is to check if the parent process died and restart it if it did.
Similar to this the parent process also looks out for the child/protector process. So if the protector process dies, it gets restarted by the parent process.
This prevents the bypassing of the locking by killing the locking process.

Default authentication (Devs)

I didn't find any ways to replace the default windows authentication process. Even if I found one the windows login process loads user settings/user registry after logging in which needs to be handled by my application in case of replacement.
If you know an easier/possible way to replace the default authentication open an issue ASAP!

Development notes

  • It's not visible in the UI but there's a feature which adds the lock mechanism to the autostartup registry key, this is under testing
  • Accepting the firewall prompt is required to open up a server for the android application to connect to
  • To reset the windows authentication key locate the folder of the exe file and delete the file named logon.hash

fpa-nativeapp's People

Contributors

advancedhacker101 avatar

Watchers

 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.