6 ms·
I would like to see 2FA (app or security key) support built into WireGuard. Otherwise, it is perfect as compared to the OpenVPN mess.
by nixcraft 5y ago
I would like to see 2FA (app or security key) support built into WireGuard. Otherwise, it is perfect as compared to the OpenVPN mess.
- atonse 5y agoTailscale solves all these problems, including SSO. Can you tell I’m a very happy customer?
- deskamess 5y agoDo you have any Windows systems in your network? I am looking to restrict RDP sessions to a closed Wireguard network.
- atonse 5y agoWe did for a couple new people and then replaced them with Macs (for irrelevant reasons). But while they were on Windows, Tailscale worked perfectly on their machines too.
- jagger27 5y agoIsn’t that just a roundabout way of asking for PSK support (which it already has)?
- yobert 5y agoThink of wireguard as the plumbing. There will be a plethora of things available on top of wireguard that will enable all sorts of easy authentication options. (For example, TailScale.)
- vbezhenar 5y agoHow this plumbing is expected to be implemented? For example Cloudflare Warp uses Wireguard for its VPN solution, but all key exchanges and other stuff happens via HTTPS REST calls. Is it expected for any non-trivial implementation to build a different "control" protocol? For me it sounds like a dangerous approach. While wireguard protocol will be safe and audited, those additional proprietary protocols will hinder cross-platform usage (for example you had to use reverse-engineered Cloudflare Warp implementation for Linux until recently and I guess that BSDs will use it forever) and might expose security vulnerabilities on their own.
- corty 5y agoYes, you are exactly right. Wireguard is a typical example of a thing I'd call myopic-cryptographer-protocol. Solve one problem in the minimal fashion that can be called proof-of-concept, do it in a maybe-more-secure way and call it done. Everything else, like proper key distribution and user management, which you need for a real-world deployment that isn't just a personal toy, is left as an exercise to the reader. All the readers will screw up in different ways, after which the myopic cryptographer will explain that his protocol was of course perfect and there is nothing wrong with it, you are just holding it wrong...
- kook_throwaway 5y agoThat's one way to look at it. Another would be "Do one thing and do it well", which is Unix philosophy. https://en.m.wikipedia.org/wiki/Unix_philosophy https://en.m.wikipedia.org/wiki/Unix_philosophy
- phkahler 5y agoAnother might be that existing VPN solutions will gut the bottom of their stack and use WireGuard for that, thereby reducing complexity and increasing performance.
- kook_throwaway 5y agoI think there's already some that do that iirc.
- wmf 5y agoIf people want Wireguard to be a complete multiplatform audited free enterprise VPN solution they need to donate more. A lot more.
- corty 5y agoNobody really needs enterprise VPN crap, that stuff does far too much weird stuff that is totally unrelated to what a VPN should do, like patch management, malware scanning, firewalling, and other useless box-ticking. What we do need is a proper replacement for roughly the things OpenVPN plus PAM can do. A VPN plus some user and key management.
- l3s2d 5y agoRelated: Does anyone know of a PKI-on-WireGuard implementation? Specifically I'm looking for a system that lets clients join the WireGuard network by presenting a CA-signed certificate.
- puzzlingcaptcha 5y agoI mean, re-inventing IPsec is probably inevitable anyway.
- dilyevsky 5y agoSadly I haven’t found anything. All there is are those curv25519 key pairs last i looked which is a real pain to manage at any scale, can’t be setup with a ttl etc. That’s probably main value proposition of products like Tailscale tbh
- londons_explore 5y agoAnd will, themselves, lead to a new kind of incompatibility mess... "Oh, I'm afraid the EasySecureAuth wireguard server doesn't support the AndroidWireClient client when using a Yubikey version 1. Either use version 2 or switch to iOS."
- anonymousiam 5y agoWireGuard is not MFA, but the user's private key could probably be stored in a smart-card instead of on disk. Software changes would need to be made so the key is read from the card instead of specified in the wgx.conf file. To achieve true MFA, it would need either a password, TOTP, or SMS in addition to the stored keys.
- corty 5y agoNope, can't. Storing a Wireguard key on a Smartcard isn't possible, because current cards do not support the key format and algorithms Wireguard uses. Only RSA and ECDSA on NIST curves are available on Smartcards. And "reading" the key from the card would make the card useless, the important feature of a smartcard is that it doesn't ever make the key available for reading. Instead, the key is used for signing or decrypting _on the card_ only. If you can really read a key off of a smartcard, sue the manufacturer and never use the key or card again.
- pat2man 5y agoTechnically if the card could sign fast enough, you could sign packets on the card.
- pritambaral 5y agoWireGuard seems to use symmetric key crypto for packet encdec. The card would need to sign only the handshake, which occurs "every few minutes"[1] and "is done based on time, and not based on the contents of prior packets"[1]. 1: https://www.wireguard.com/protocol/ https://www.wireguard.com/protocol/
- corty 5y agoYou only need to sign the packets in the key exchange on the card. The normal payload packets are protected by symmetric algorithms based on the ephemeral symmetric key generated in the key exchange, no need (and no use) to involve the smartcard there.
- the8472 5y ago
- idorosen 5y agoWireGuard itself doesn't even handle its existing authentication fully -- you are expected to exchange peer public keys out of band. There are several projects that try to tackle this public key exchange. I think what you're asking for, indirectly, is support for certificate authority style authentication similar to how SSH CAs work, so that wireguard could authenticate tunnels using certificates with signed pubkeys instead of statically configured pubkeys themselves for each peer. If the wireguard core included any kind of timed partial delegation of authority through key signatures (similar to what SSH allows now with cert-authority/CertificateFile), that'd be enough to build SMS/HOTP/TOTP 2FA, security keys, and much more on top of it.
- drexlspivey 5y agoAdding features like this that should be implemented on a different layer is the perfect way to turn it to the OpenVPN mess
- EwanToo 5y agoPritunl has wireguard support and works well for this
- stjohnswarts 5y agoI think you'll have to use other options for that. I don't see them ever implementing 2FA as that is outside the goals of the project. They want to keep it has slim, performant, and on target as possible.