Close
0%
0%

Login to Google with a Stapler. Yes, really!

This stapler logs you into Google and other passkey-enabled websites. DIY FIDO2 Security Key with a RPi Zero, a stapler and dark magic.

Public Chat
Similar projects worth following
Pen-Pineapple-Apple-Pen. No, now its Stapler-Raspberry-Google-Login. A hackery cross between office supplies and best security standards. This project is a working FIDO2 Key with a Raspberry Pi Zero (or Zero W or Zero 2 W) and a stapler converted into a DIY Push-button coz I couldn't find one handy.

Also commercial keys are a bit expensive, though obviously more secure. But there is a different satisfaction with slamming the stapler to log in to Gmail.

⚠️ This does not use a hardware-backed secure element and hence obviously not for critical usage.

What started as a fun project quickly evolved into a fully functional FIDO2 authenticator with an office stapler masquerading as a push button. With carefully rigged GPIO (just kidding, I just cut the jumper wires and slammed it on the staplar with black tape) handling, this security key can seamlessly authenticate wit Google, Webauthn.io or most passkey-enabled services.

What's happening?


No, in short it is not another HID injection tool that enters your hardcoded password. It goes totally passwordless with the real FIDO2 standards, following the CTAP2 specifications from FIDO Alliance. It uses USB HID transport with RPi Gadget mode, credential discovery, creation and authentication and interoperability with major FIDO2 Relying parties like Google. It supports resident keys as well

Post Quantum Cryptography?

While the current FIDO2 standards do not directly support PQC, I have gone through the ongoing research, the IETF drafts by the COSE WG, the IANA COSE Identifier requests, and more and have come to the conclusion that ML-DSA (Crystals-Dilithum inspired) would be what FIDO2 will recommend for PQC with FIDO2. And I have implemented the same here. The key supports ML-DSA for quantum-resistant digital signatures and a fallback to ECDSA (P-256) for current standards. The key negotiates the most secure algorithm available for a particular relying party.

How it works?

The RPi runs a custom Python daemon that configures USB Gadget mode with CTAPHID descriptor. It emulates a FIDO2 Key over USB and stores cryptographic secrets on the SD card. It handles credential creation and authentication requests like any other security key. The stapler acts as a DIY push-button to fulfill the User Presence (UP) checks. The daemon implements all relevant CTAP2 commands.

Why do this?

Coz its cool. And it's fun. And coz why not?

Tested with Google and webauthn.io on Windows device.

  • 1 × Raspberry Pi Zero 2 W Microcontroller
  • 1 × Raspberry Pi Zero USB A Addon Board Or just grab a data cable
  • 1 × A push button (Or DIY Push button with Stapler) Coz why not?
  • 1 × Jumper wires
  • 1 × 16 GB or more MicroSD card For the Raspberry Pi OS

  • 1
    Installation

    Follow the readme on the Github repository.

    Modify the security_key.py file and set debug_mode=True before running the install script. And the DIY Stapler push button should be connected between GPIO 26 and GND.

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates