Giter Site home page Giter Site logo

aossp / authorizer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tejado/authorizer

0.0 1.0 0.0 154.09 MB

Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP :key::mobile_phone_off:

Java 97.38% CMake 0.02% C++ 2.56% C 0.05%

authorizer's Introduction

Authorizer Build Status

A Password Manager for Android with Auto-Type over USB and Bluetooth, OTP and much more.

The idea behind Authorizer is, to use old smartphones as a hardware password manager only. To avoid manual typing of long and complex passwords everytime you need them, Authorizer provides Auto-Type features over USB and Bluetooth. It pretends to be a keyboard (e.g. over an USB On-The-Go adapter) and with a button press inside the app, it will automatically type the password for you on your pc, laptop, tablet or other smartphone.

Get it on F-Droid Get it on Google Play

Authorizer is based on PasswdSafe a Password Safe port for Android and FreeOTP.

Features

  • Auto-Type over USB
  • Auto-Type over Bluetooth (experimental)
  • Different keyboard languages (HID Usage Tables)
    • English (US)
    • English (GB)
    • German
    • German (Apple)
    • German (CH)
    • French (CH)
    • Neo 2 (Layer 1,2 and 3)
  • Asymmetric encrypted backup on USB mass storage
  • OTP integration (TOTP/HOTP)
  • Tree list style
  • Icons

Features in Detail

Auto-Type over USB and Bluetooth

Authorizer PoC YouTube video Authorizer is able to pretend to be an HID Keyboard so it can auto-type the credentials over USB and Bluetooth.
There are Auto-Type buttons at the password entry view. If a button is pressed longer, a different keyboard layout can be choosen. Additional, there is a USB Quick Auto-Type button in the TreeView which auto-types the respective password on a long press.
There are different settings per password entry like delimiter and the password return suffix. In the general App preferences a default keyboard layout can be choosen.

Auto-Type over USB requires currently an Android Kernel compiled with Android Keyboard Gadget and root access.

Auto-Type over Bluetooth is currently an experimental feature and only available on Android Pie (9.0) or higher.

Asymmetric encrypted backup on USB mass storage

The concept behind Authorizer is to have an offline device. As a consequence, it can't create password file backups over the network. To create backups in a comfortable way, Authorizer will open a backup dialog if it detects a new connected mass-storage (e.g. an USB stick connected over an USB On-The-Go adapter). By pressing "Backup now" in this dialog, a backup folder can be selected. It must contain a GPG public key with the file name "pubkey.asc". The default password file will be encrypted with this GPG key and stored in the selected folder.
This feature can be enabled over the general App preference "Enable GPG backup on USB storage".

OTP integration

Besides standard username & password entries, Authorizer also supports two-factor authentication (2FA) over one-time passwords (OTP). Time-based (TOTP) and HMAC-based (HOTP) one-time passwords are supported.
The OTP secret can be added to a password entry manually or by scanning a QR code. Afterwards, a press on the empty token field ("------") will generate a new OTP. It is also possible, to auto-type the OTP over USB or Bluetooth by adding {OTP} as a placeholder directly in the username or password, e.g. {OTP} in the password "myPa$sword{OTP}" will be replaced with a newly generated OTP.
Like username, password and other data, the OTP secret is stored in the password file.

Additional Auto-Type placeholders

In addition to the {OTP} placeholder, Authorizer also supports {TAB} and {RET} for the tabulator and return key. Adding these to the username and/or password will result in auto-typing the respective key (tab or return) instead of the placeholder.
Example: if "peter{TAB}{OTP}" is set as the username, "peter" followed by the tabulator key and a newly generated OTP will be auto-typed.

Roadmap

  • NFC support
  • Smartcard emulation (e.g. OpenPGP cards, etc.)
  • CTAP + CTAP2 integration for U2F and WebAuthn
  • Redesign of the App
  • Replacing Android Keyboard Gadget with FunctionFS HID integration (Kernel >=3.18 required)
  • Refactoring the HID Keyboard Layout code

Requirements

  • For Auto-Type over USB: an Android Kernel compiled with Android Keyboard Gadget is required
  • For Auto-Type over Bluetooth: Android Pie or higher is required. Tested devices:
    • Samsung Galaxy S8: WORKING
    • HTC One M8 (LineageOS 16.0): WORKING

Contributions & Community

Contributions are highly welcome.
For support & development discussions around Authorizer, feel free to contact me.

Proof of Concept

Proof-of-Concept app for Auto-Typing (USB Keyboard emulation): Authorizer-PoC

authorizer's People

Contributors

jefftharris avatar tejado avatar geco2 avatar absturztaube avatar mohammadnaseri avatar poussinou avatar hacksawfred3232 avatar

Watchers

James Cloos 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.