Hoe je een $5 bord omtovert tot een hardware-beveiligingssleutel
Hardware-sleutels zoals YubiKey kosten $50 tot $100, en voor betrouwbaarheid koop je er meestal twee. Als je alleen een thuisserver wilt beveiligen, Git-commits wilt ondertekenen via een hardware-module, of wachtwoorloze inlog via Passkeys wilt proberen, bijt de prijs. Recentelijk stuitte ik op een project genaamd RS-Key dat dit probleem verrassend elegant oplost.
Het project verandert elk beschikbare bord op basis van de Raspberry Pi RP2350 microcontroller in een volwaardige USB-token. Het enige wat je hoeft te doen is een kant-en-klaar binair bestand downloaden en op het bordje zetten zoals een normale flash-drive. Geen solderen, programmeerapparaten of bouwen vanaf broncode nodig.
Wat er in de firmware zit
RS-Key is geschreven in Rust zonder de standaardbibliotheek (no_std) en emuleert een samengesteld USB-apparaat. Wanneer je het bordje in een computer plugt, ziet het systeem tegelijkertijd verschillende interfaces: FIDO HID voor webauthenticatie, een CCID smartcard en een toetsenbord.

Hier is wat deze tiny firmware kan doen:
- FIDO2 en WebAuthn. Ondersteunt Passkey-inlog in browsers, tweefactorauthenticatie en hardware SSH-sleutels zoals
ed25519-sk. Fysieke aanwezigheidsbevestiging werkt via de standaard BOOT-knop op het bord. - OpenPGP 3.4 smartcard. Slaat sleutels op voor het ondertekenen van commits in
git, het versleutelen en ontsleutelen van bestanden viagpg. Ondersteunt RSA en elliptische krommen. - PIV en OATH. Implementeert X.509 smartcard-standaarden en genereert TOTP- en HOTP-eenmalige codes. Met een speciale build die VID/PID spoofed, wordt het apparaat herkend door standaard Yubico-hulpprogramma's zoals
ykman. - Seed-backup. De FIDO-hoofdsleutel kan worden geëxporteerd als een BIP-39 of SLIP-39 mnemonische zin om toegang te herstellen als het bord verloren gaat.
- Experimentele post-quantumcryptografie. De auteur heeft ML-DSA-44 en ML-DSA-65-schema's ingebouwd, met optimalisatie van stackgebruik voor RP2350-geheugen.
Hoe je in een paar minuten aan de slag gaat
Het eerste opstartproces is eenvoudig. Pak elk RP2350-gebaseerd bord (bijv. Waveshare RP2350-One of Seeed XIAO RP2350) en volg vier stappen:
- Download het
rs-key-<версия>-default.uf2bestand van het tabblad releases van de repository. - Houd de BOOT-knop op het bord ingedrukt en sluit het aan op de USB-poort van je computer. Er verschijnt een station met de naam
RP2350in het systeem. - Kopieer het
.uf2bestand naar dit station. Het bord zal onmiddellijk opnieuw opstarten in de modus voor beveiligingssleutel. - Open de testsite webauthn.io, probeer een nieuwe sleutel te registreren, stel een PIN-code in en druk op de BOOT-knop om aanraking te bevestigen.
Voor fans van apparaten met schermen is er een aparte build voor het Waveshare RP2350-Touch-LCD-bord. In dit geval gebeuren aanmeldbevestiging en PIN-invoer rechtstreeks op het display van het apparaat.

Configuratie en hostsoftware
Voor het beheren van de sleutel vanaf de terminal bevat de repository een Python-hulpprogramma rsk en een dashboard rsk-tui. Hiermee kun je de apparaatstatus bekijken, LED-instellingen wijzigen, back-ups maken en slots beheren.
Als de console niet jouw ding is, biedt het externe project PicoForge een volledige grafische interface voor het configureren van alle RS-Key-modules.

Voor ontwikkelaars die nog geen RP2350-chip bij de hand hebben, is er een emulator in de map tools/emu. Deze voert de firmwarelogica rechtstreeks uit op je pc via sockets of Linux virtuele USB (USB/IP), wat helpt bij het testen van integraties zonder fysieke hardware.
Beperkingen en dreigingsmodel
De auteur van het project waarschuwt eerlijk in de documentatie: RP2350 is een general-purpose microcontroller, geen gecertificeerde beveiligingschip (Secure Element).
Als je potentiële tegenstander beschikt over een lab met apparatuur voor siliciumdelayering, bus-probing of power fault injection, zal de chip het niet redden. RS-Key beschermt niet tegen laboratoriumniveau chip-decapsulatie.
Dat gezegd hebbende, de RP2350-chip heeft wel OTP (eenmalig programmeerbare fuses) en Secure Boot. De repository documenteert een gedetailleerd proces voor het hard-vergrendelen van de firmware, waarbij de hoofdsleutel in OTP wordt gebrand en opstarten alleen wordt toegestaan voor binaries die door jou zijn ondertekend. Dit maakt een eenvoudige flash-dump nutteloos als de sleutel wordt gestolen, maar de fuse-brandoperatie is onomkeerbaar.
Voor wie is dit project nuttig
RS-Key is geweldig voor alledaagse ontwikkelaarstaken:
- Onderteken Git-commits en tags zonder het risico dat je privésleutel lekt van de schijf van je laptop.
- Toegang tot servers via SSH met hardwarebevestiging via
ed25519-sk. - Tweede factor voor thuislabs, GitHub-accounts of e-mail.
- Leer hoe CTAP2, WebAuthn en smartcardprotocollen werken via echte Rust-code.
Als je een betaalbare token nodig hebt voor werk of een thuislab-opstelling, biedt de combinatie van een goedkoop RP2350-bord en RS-Key-firmware solide waarde voor elke euro die je uitgeeft. Het vertrouwen ervan met bedrijfsgeheimen onder dreigingen op staatsniveau is niet aan te raden, maar als praktisch ontwikkelaarshulpmiddel verdient het project zeker een plek op je sleutelbos.
Gerelateerde projecten