nmdanny / softauth Goto Github PK
View Code? Open in Web Editor NEWA software FIDO2/WebAuthn authenticator using CTAP2 and virtual HID
A software FIDO2/WebAuthn authenticator using CTAP2 and virtual HID
Choice of GUI framework:
Tauri, an electron-like framework. It would be nice for refreshing my front-end skills, and might be worthwhile if I ever require a more complex UI (e.g, credential syncing, more configuration options like storage backends, import/export)
iced - a cross platform UI library for Rust (made from scratch) that follows the Elm architecture.
A lot simpler than Tauri, though it is a 'toy' framework and might be limited in some aspects.
relm - GTK based, also follows the Elm architecture.
Don't use a GUI and instead do something crude like starting an interactive terminal when asking for UV/UP.
Maybe a TUI library?
Features:
makeCredential
)
Keymappable
objects that does not rely on intermediate conversion to a CBOR valuetower
middleware
Current workaround is to simply delete that byte
softauth/src/hid/linux/uhid_transport.rs
Lines 33 to 36 in 16f0b29
I suspect that uhid-virt
's C bindings (uhidrs-sys
) might be outdated - might be missing a field
Did you ever get this to work? Love the idea. Kept on running into build issues. What is the recommended build environment? I'll probably try a docker build.
Long term goals - interop with U2F clients, processing CTAPHID_MSG
messages
File based, e.g, SQLite, JSON file. Easiest in terms of OS portability, easy and familiar from a programmatic standpoint.
Would require implementing encryption, thus adding complexity (need to define a UI for setting the private key) and increases
the attack surface.
Keyring: Linux secret store, Windows credential management, etc..
Look into the keyring library - though its API is a bit limited (e.g, no ability to enumerate
all secrets under the service, requires utf-8 strings), might be able to simply store all keys in a single JSON string.
TPM: The most secure option, but also the most complex.
Both CTAPHID_CANCEL
and CTAPHID_INIT
(when busy) messages are treated the same
softauth/src/hid/packet_processing.rs
Lines 202 to 207 in b0b8677
Need to figure out what's the difference(if any)
Propagate cancellation to CTAP2 message processing
Since Windows doesn't have something analogous to Linux userspace HID, Windows support would require implementing a driver that
emulates a HID device.
This can be a nice exercise in driver development, but currently a low priority
Cross platform UI toolkit, or re-implement the UI for Windows
Cross platform storage
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.