Comments (2)
I wouldn't completely rule it out, as I haven't investigated it too thoroughly, but it would most likely be somewhat hard to support on mobile devices in its current form. Right now it emulates a USB device to get the base platform to treat it like any other FIDO device, and I suspect that might be hard to do on Android/iOS.
from virtual-fido.
I have tested this from within Termux. Running the server doesn't require root permissions so it should be doable to port this library over! All you need is to have your devices on the same network.
My steps:
pkg add golang git
in termux to install the necessary toolinggit clone https://github.com/bulwarkid/virtual-fido/
inside termux to download the repository- Patch out the IP check in `virtual-fido/usbip_server.go (line 32-36) and the import for strings (line 6) using your command line editor of choice within termux
go run main start
just like on desktop- On your PC, run
usbip attach -r $yourPhonesIpAddress -b 2-2
. - The virtual-fido server on your phone is now usable from your PC!
Do note that this approach doesn't use any authentication or verification. Someone else in your network may connect to your device's USB/IP server which is Bad News. I've noticed the connection works over a VPN, though, so with a point-to-point WireGuard setup and a well-configured firewall you may be able to set up something relatively secure.
To get proper phone-based FIDO support, though, I'd personally take another route and develop a full app: run the USB injection on the client and set up some kind of app<->PC communication bridge instead of reading the credentials from a file (leverage smartphones' secure storage APIs for the keys! maybe use biometrics for presence detection!). Maybe add some cloud messaging/Bluetooth LE/whatever messaging to exchange the signature securely between devices as well. Basically, let the tool only do the key operations on the phone. USB over IP can be quite dangerous because you never know who's in your network!
I think developing such an app shouldn't take more than a few weeks built on this project's foundations, you might even build a business out of this.
If you want to use your phone as a 2FA tool right now and don't feel like spending weeks to develop an app, krypt.co still operates, though it's no longer being developed and hasn't been updated for ages now. I'm not aware of any easily self-hostable alternatives at the moment, though you may try based on the krypton source code.
from virtual-fido.
Related Issues (20)
- User interface for approvals? HOT 3
- distribution options / vault backends? HOT 3
- readBE EOF crash with Firefox HOT 4
- No confirmation request on Linux HOT 3
- non-existent bus id: 2-2 HOT 5
- Regression in 6cb93: Could not decode encrypted box - cbor: cannot unmarshal positive integer HOT 8
- move usbip binaries into its own source repository HOT 3
- demo: `undefined: platformUSBIPExec` on Linux HOT 4
- Virtual Authenticator Does Not Work Properly with Stripe HOT 1
- Virtual Fido device demo not working with Yubikey test page (or any other passkey demo page) HOT 6
- FIDO 2 USB passwords
- Doesn't seem to work on Ubuntu 23.10
- Cannot add it as an Host USB device in virtual manager
- Does virtual-fido work in macos now? HOT 3
- usbip: error: vhci driver is not loaded HOT 1
- ERROR: Unapproved action (Create account) on passkeys.io
- WebAuthn.io register error
- crash with "panic: Invalid USB Interface bRequest: 9" when faced with linux hidraw sample code HOT 3
- Doesn't support the hmac-secret extension, silently ignored
- ./client_usbip.go:16:15: undefined usbip.NewUSBDevice HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from virtual-fido.