News for hackers. Stuff that matters.
Re:WireGuardNT, a high-performance WireGuard implementation ... by nixcraft on Monday August 02, 2021 @01:53PM (#28040171)
I would like to see 2FA (app or security key) support built into WireGuard. Otherwise, it is perfect as compared to the OpenVPN mess.
Re:WireGuardNT, a high-performance WireGuard implementation ... by idorosen on Monday August 02, 2021 @02:15PM (#28040514)
WireGuard 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.

Re:WireGuardNT, a high-performance WireGuard implementation ... by yobert on Monday August 02, 2021 @02:13PM (#28040487)
Think 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.)
Re:WireGuardNT, a high-performance WireGuard implementation ... by vbezhenar on Monday August 02, 2021 @02:45PM (#28040947)
How 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.
Re:WireGuardNT, a high-performance WireGuard implementation ... by corty on Monday August 02, 2021 @03:01PM (#28041167)
Yes, 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...
Re:WireGuardNT, a high-performance WireGuard implementation ... by kook_throwaway on Monday August 02, 2021 @03:05PM (#28041221)
That'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

Re:WireGuardNT, a high-performance WireGuard implementation ... by phkahler on Monday August 02, 2021 @05:23PM (#28042847)
Another might be that existing VPN solutions will gut the bottom of their stack and use WireGuard for that, thereby reducing complexity and increasing performance.
Re:WireGuardNT, a high-performance WireGuard implementation ... by kook_throwaway on Monday August 02, 2021 @05:44PM (#28043081)
I think there's already some that do that iirc.
Re:WireGuardNT, a high-performance WireGuard implementation ... by nimish on Monday August 02, 2021 @04:09PM (#28041956)
I think this was the point of WG. OpenVPN/IPSec/etc are beasts since they include all of the above. OpenVPN is TLS based! That makes adding it into the kernel difficult, and you need kernel access or exotic stuff like VPP/DPDK for speed.

I do agree with your overall sentiment, though. The next step is to make a higher level protocol on top.

Re:WireGuardNT, a high-performance WireGuard implementation ... by clon on Monday August 02, 2021 @06:29PM (#28043489)
Not all parts of a system are going to age equally well.

You are going to want to try to avoid that problem, while making your tool still useful. Wireguard hits the sweet spot particularly well.

Re:WireGuardNT, a high-performance WireGuard implementation ... by wmf on Monday August 02, 2021 @03:18PM (#28041346)
If people want Wireguard to be a complete multiplatform audited free enterprise VPN solution they need to donate more. A lot more.
Re:WireGuardNT, a high-performance WireGuard implementation ... by corty on Monday August 02, 2021 @03:24PM (#28041421)
Nobody 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.

Re:WireGuardNT, a high-performance WireGuard implementation ... by unethical_ban on Monday August 02, 2021 @04:18PM (#28042072)
It is a completely reasonable requirement of a large organization to ensure an endpoint meets certain criteria before being allowed access to an internal network.

I'm not arguing that Wireguard has an obligation to tackle that problem themselves. I'm arguing against your assertion that VPN access should be completely decoupled from ensuring endpoint security.

Re:WireGuardNT, a high-performance WireGuard implementation ... by londons_explore on Monday August 02, 2021 @04:48PM (#28042434)
Lets be honest, any malicious endpoint can easily bypass those 'endpoint security' checks.

All they're good for is checking that unpatched (but not yet exploited/evil) endpoints can't connect to the network, which is of marginal benefit compared to allowing them to connect but requiring they patch before accessing risky resources (like the internet or email).

Re:WireGuardNT, a high-performance WireGuard implementation ... by unethical_ban on Tuesday August 03, 2021 @02:17PM (#28052302)
Not all compromised machines are the same. Is the user of the machine an insider threat or not? Does the login user have admin rights to the machine or not? And what you said in the last sentence is exactly how some VPN solutions can be configured: Limited access to network resources for updates and management, and only when fully matching version/anti-malware/etc. requirements can you connect to all resources.

Anyway. Like I said, I think Wireguard is amazing - I used PiVPN (which can be installed on any .deb distro) to set up a simple gateway for my laptop and phone to be always connected for DNS and local-network access. I'm very grateful for its architecture and simplicity in that regard.

Re:WireGuardNT, a high-performance WireGuard implementation ... by d110af5ccf on Tuesday August 03, 2021 @02:34AM (#28046270)
I think there's an external issue here though. There might be regulation or some sort of liability concern regarding known unpatched clients connecting to the network. In that context simple checks make a lot of sense.
Re:WireGuardNT, a high-performance WireGuard implementation ... by xvector on Monday August 02, 2021 @04:47PM (#28042420)
Even if they donate more that won't happen. It's antithetical to the premise of the whole project. WireGuard is fine where it is, it's amazing.
Re:WireGuardNT, a high-performance WireGuard implementation ... by l3s2d on Monday August 02, 2021 @03:25PM (#28041445)
Related: 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.
Re:WireGuardNT, a high-performance WireGuard implementation ... by puzzlingcaptcha on Monday August 02, 2021 @05:46PM (#28043102)
I mean, re-inventing IPsec is probably inevitable anyway.
Re:WireGuardNT, a high-performance WireGuard implementation ... by dilyevsky on Monday August 02, 2021 @07:11PM (#28043859)
Sadly 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
Re:WireGuardNT, a high-performance WireGuard implementation ... by londons_explore on Monday August 02, 2021 @04:41PM (#28042339)
And 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."

Re:WireGuardNT, a high-performance WireGuard implementation ... by atonse on Monday August 02, 2021 @02:36PM (#28040826)
Tailscale solves all these problems, including SSO.

Can you tell I’m a very happy customer?

Re:WireGuardNT, a high-performance WireGuard implementation ... by deskamess on Tuesday August 03, 2021 @09:34AM (#28048956)
Do you have any Windows systems in your network? I am looking to restrict RDP sessions to a closed Wireguard network.
Re:WireGuardNT, a high-performance WireGuard implementation ... by atonse on Tuesday August 03, 2021 @04:35PM (#28053818)
We 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.

Re:WireGuardNT, a high-performance WireGuard implementation ... by drexlspivey on Monday August 02, 2021 @03:13PM (#28041292)
Adding features like this that should be implemented on a different layer is the perfect way to turn it to the OpenVPN mess
Re:WireGuardNT, a high-performance WireGuard implementation ... by jagger27 on Monday August 02, 2021 @02:11PM (#28040457)
Isn’t that just a roundabout way of asking for PSK support (which it already has)?
Re:WireGuardNT, a high-performance WireGuard implementation ... by stjohnswarts on Monday August 02, 2021 @04:41PM (#28042341)
I 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.
Re:WireGuardNT, a high-performance WireGuard implementation ... by anonymousiam on Monday August 02, 2021 @02:14PM (#28040499)
WireGuard 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.

Re:WireGuardNT, a high-performance WireGuard implementation ... by corty on Monday August 02, 2021 @02:21PM (#28040593)
Nope, 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.
Re:WireGuardNT, a high-performance WireGuard implementation ... by the8472 on Monday August 02, 2021 @02:47PM (#28040981)
Wireguard uses perfect forward secrecy, so wouldn't signing the ephemeral session once with the hardware key do the job? Or do they need some more advanced operations that the devices don't expose?
Re:WireGuardNT, a high-performance WireGuard implementation ... by corty on Monday August 02, 2021 @03:04PM (#28041206)
No, you just need a signature. But an Ed25519 signature, which current commercially available smartcards just cannot do.

You could be hacking something together with a Nitrokey or maybe Yubikey, those can do Ed25519 signatures. But generally, you would need to fiddle a lot with the implementation, because currently signatures are done in the kernel module, and you'd need to get that into the USB-device for signing and back again. Not impossible, but not implemented yet.

Another way would (theoretically) be to implement different signature algorithms for the wireguard key exchange, ideally some that common smartcards do support. But wireguards author left out cryptographic agility on purpose, so any work in that direction will be incompatible with the original implementation, or at least a very ugly kludge.

Re:WireGuardNT, a high-performance WireGuard implementation ... by aaronmdjones on Monday August 02, 2021 @07:22PM (#28043960)
WireGuard does not use Ed25519. Indeed, it does not use any public-key signature algorithms at all. The long-lived static key (the peer's public key, their identity) is a Curve25519 ECDH key.
Re:WireGuardNT, a high-performance WireGuard implementation ... by hlandau on Monday August 02, 2021 @03:38PM (#28041608)
Of course, there are smartcards that could do this, you're just not allowed to have them. Plenty of smartcards nowadays are just flash and an ARM core which theoretically could be programmed arbitrarily. These tend to be used for credit cards, etc. Of course they might have acceleration units for specific algorithms like NIST ECDSA but I'd be surprised if Ed25519 couldn't be accommodated.

Unfortunately they're all NDAware, so they may as well not exist. ...But of course I've written about my extensive issues with the smartcard industry before.

Re:WireGuardNT, a high-performance WireGuard implementation ... by ptomato on Monday August 02, 2021 @04:59PM (#28042570)
You'll have to write some glue code, but if all you need is standard Ed25519 signatures, current-gen Yubikeys can do this. Somebody's implemented a python library that does that here https://github.com/tschudin/sc25519
Re:WireGuardNT, a high-performance WireGuard implementation ... by mschuster91 on Monday August 02, 2021 @04:15PM (#28042032)
> 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.

There are programmable smartcards on which you can implement your own algorithm. ZeitControl sells cards you can program in a BASIC dialect: https://www.zeitcontrol.de/de/produkte/basiccard/basiccard-p...

Re:WireGuardNT, a high-performance WireGuard implementation ... by pat2man on Monday August 02, 2021 @02:29PM (#28040714)
Technically if the card could sign fast enough, you could sign packets on the card.
Re:WireGuardNT, a high-performance WireGuard implementation ... by pritambaral on Monday August 02, 2021 @02:35PM (#28040815)
WireGuard 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/

Re:WireGuardNT, a high-performance WireGuard implementation ... by corty on Monday August 02, 2021 @03:06PM (#28041227)
You 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.
Re:WireGuardNT, a high-performance WireGuard implementation ... by EwanToo on Monday August 02, 2021 @04:10PM (#28041969)
Pritunl has wireguard support and works well for this