ZeroTier Business SSO
zerotier.com
zerotier.com
We've been hard at work on this for a very long time, and we're obviously quite happy today! This is a must-have or really-want for a huge number of business customers.
That being said, we don't and are not going to require SSO sign-in. You'll always be able to just authorize a device. (On SSO networks that's done by setting them to SSO-exempt.) You can also self-host network controllers like always, and we're planning on making that easier in the future not harder. We're all about not forcing you into ecosystems (SSO can do that) and about decentralization.
As for other stuff coming in the near-mid future: version 2.0 is not dead. We obviously got massively derailed (mostly good but very distracting things) and under-estimated the scope and time, but it's still moving forward. We have not announced this elsewhere yet, but it's a near-total port to Rust. This is to get into a more modern language but also to use a safe language for security reasons. This has added time to the job but we're of the opinion that security-related software not written in a safe language is going to be considered a bad thing in the near future (if not already).
V2 also has some significant cryptography improvements that bring us more to parity with more modern constructions like the noise framework. This part has been going slow too because we've been moving carefully and soliciting a lot of peer review both informal and formally hired. Cryptography isn't something you just toss out the door and YOLO. :)
Last but not least we are planning on some kind of transition from the BSL back to an OSI-compliant licensing scheme, but want to think this through rather than flail around.
People at this site have really been fans and have helped us a lot over the years, and we're grateful. Thanks!
Until 2 weeks ago when my Windows machines absolutely stopped seeing each other and communicating with each other.
I made a post on ZeroTier discussion group 2 weeks ago with zero replies so far: https://discuss.zerotier.com/t/windows-machines-lost-access-...
If i can get some help - would be amazing.
have you worked through: https://docs.zerotier.com/zerotier/troubleshooting/ ?
However suddenly one laptop was able to connect to 2 other windows boxes (even though other Windows machines cant).
This tells me it's not ZT fault, but rather everlasting update and restriction nonsense from windows is a culprit
On both computers do: Network connections->Right click ZT network->Properties->Select (TCP/IPv4), probs 5th down. ->Properties->Advanced->Untick automatic metric-> set interface metric value to 1. Potentially reboot, though I've not needed to before.
Just for some visuals if needed https://support.parsec.app/hc/en-us/articles/115002766652-Us...
Keep up the great work!
Also tested Tail Scale.
Some feedback (only writing this to help you improve):
1. Your UI is horrible. Hire 1-2 front-end/designers and copy everything that tail scale does right.
2. You should add a concept of users with e.g. GitHub as SSO-provider, like tail scale does. Maybe that’s what you’re releasing now?
3. Your docs are very bad compared to tail scale, and you should have much more docs on common scenarios and use cases. For example, mine wasn’t mentioned but is fairly common. You are losing a lot of business here.
4. iOS VPN auto connect functionality is good.
5. You should add some type of global dns, such that we could map all devices/users like this: macbook1.jane.my-company.net (resolve via your network; you host the dns, we provide our domain). Basically what Consul does.
6. If user is authed (see 1 above), auth of devices should be optional.
7. Your language for network rules is too complicated.
8. My impression was that your network software is better than TailScale, but in every other way they beat you (docs, UI, usability, features).
9. iOS app is ugly and have obvious bugs, like you can’t enter text in fields in lower case without hassle.
Couldn’t actually get my use-case to work on tailscale either. They stuff they’re missing is in the works though. Will revisit you both in 6 months.
I’m rooting for you, but you must understand that it’s not only about software, all the packaging around it is also important (and you are severely lacking in this area).
You are 1000% right about UI/UX. It was good for networking software years ago but the ecosystem has generally improved since then.
If anyone who is reading wants to help:
https://jobs.lever.co/zerotier/90436aee-8e55-406d-9053-a0c26...
Location is set to Cincinnati because we want to nucleate more engineers in this region but the position is open to anyone in the USA. We'll hire anywhere if someone is really good. We're remote-first.
Edit:
> 7. Your language for network rules is too complicated.
It's too low-level. We are researching a higher-level way to edit rules in terms of intent rather than the current pf-esque rules language that requires you to deeply understand TCP/IP and such.
That being said it is very powerful and you can do extremely neat stuff with it. It's in some ways more powerful than what you get with enterprise data center SDN products.
I think that's true, but I have basically 0 confidence that I can implement even simple rules using it, let alone anything more complicated.
The thing that was the real show stopper for me and made me switch to Nebula was that there doesn't seem to be a way to self-host a backup controller so that our network can continue to function even if ZeroTier.com is having problems. Unless, that is, I go entirely self-hosted and give up the web management UI, which I think is part of the compelling offer of ZeroTier.
Networks members will continue to be able to communicate with the controller down as long as they were online before the controller went down. Not a full solution, I know.
Otherwise, it's a difficult problem to solve. The only way we could let you run a network controller as a back up right now would be to give you the private key for the controller, which would allow you to change everybody else's network on that controller, too. Not the best of ideas giving that info away!
This just stuck out to me a bit because those seem like two distinct area of expertise
Also I need to edit the part about a BS in CS and add "or demonstrably equivalent skills and experience."
I don't think that's entirely fair to say "horrible". It does everything I've needed of it quite well. The design sensibilities are just... I'm not sure what the right word is, but maybe "ugly" is good enough. I remember when I first looked at it I thought "this is going to be horrible", but once I started using it the functionality was pretty good.
For example, I'd call it better than DefinedNetworks from a usability standpoint, because you aren't clicking in and out of a bunch of things, but DN is definitely easier on the eyes.
(1) We use AES for performance and other reasons. ChaCha is much faster than AES in software but AES blows it away by 2-4X in hardware. We have customers using ZeroTier in an SD-WAN setting who are leveraging AES acceleration (with some of their own custom code) in network accelerators and other devices. We also think we can beat both in-kernel WG and ipsec in V2 on Linux using io_uring because the cryptographic part of ZeroTier is 2-4X faster than WG on "real hardware." My M1 Mac does 2GiB/sec/core and newer Intel/AMD chips with AVX VAES can do as much as 10GiB/sec/core.
(2) We have a bunch of customers who want FIPS. Yes, we know. We're not big fans either but they're large customers and whole industries. We also have a pretty good no-compromise plan for this that treats FIPS as a floor for cryptographic quality not a ceiling and doesn't add meaningful complexity. This is a V2 thing. (You can bootstrap WG with keys from a NIST ECC key exchange to get the asymmetric part of FIPS, but ChaCha is not FIPS.)
(3) We want to maintain backward compatibility with millions and millions of ZeroTier devices out there, at least as far back as we can.
(4) ZeroTier uses a construction where the identity is the outer envelope and then (in V2) the ephemeral forward secrecy keys are the inner envelope. Wireguard does it the other way around. Both are equivalent in terms of cryptographic strength (and I think in noise this is a choice, but it's been a while since I read through that). The advantage of the WG construction is that session participants can't be identified from packets. That's a disadvantage in enterprise though, because they want that. It lets us implement elegant solutions to making a mesh P2P network play nice with enterprise firewall and internal/DMZ isolation practices among other things. It also lets our roots/relays basically do something analogous to MPLS, pumping vast amounts of traffic with virtually no CPU overhead because they don't need to decrypt anything.
We toyed around with making an AES fork of Wireguard, basically use the exact same construction as WG with AES-GMAC-SIV instead of ChaChaPoly. Would be totally fine cryptographically but see #4.
We also support virtualization at layer 2 rather than just layer 3, which is important for a bunch of our industrial use cases. It would be possible though to stuff L2 into WG pretty easily, so that's not really a reason. WG is just a transport protocol so you could stuff anything into it. Fly.io used it as a light alternative to TLS I think. It's just normally used to carry L3 IP.
Edit: also in V2 we are modularizing things, separating the transport protocol from the rest of the code. It'll be in open source Rust and very portable. In our (currently private) Rust repo vl1/ is only about 5K lines of Rust including tons of comments and non-crypto stuff. We also have plans to document it a lot better.
Does this mean that any node along the network path would be able to track communications between nodes? Maybe a snoop wouldn't be able to pin an envelope to a named identity, but they would be able to track which other identities its connecting to down to the communication bandwidth between each source and destination and correlate the identities of those connections between separate devices. Is this an accurate description?
I have some thoughts about features to really defeat this. We've got an entry on our feature queue for guard nodes you can run in the cloud and have also researched implementing a form of "light" onion routing. It wouldn't be intended to be as strong (or as slow) as Tor, but sufficient to prevent passive dragnet surveillance.
In any case there is a conflict here between goals. So far the performance, rapid startup, and enterprise goals have won out over the small privacy benefit of the ephemeral-outer-key construction. It's a scope thing. So far we've never scoped ZeroTier as a meta-data-concealing protocol like Tor, just as a P2P mesh protocol for easy remote access between devices and locations.
Still... it's tempting to try to find something in the V2 design to at least mitigate this issue. It's something we're thinking about.
I think a TL;DR on my reply above:
I think the difference in privacy between identity(ephemeral(x)) and ephemeral(identity(x)) is not significant. It's more honest to tell people that our product offers only content privacy not meta-data privacy unless we are truly implementing strong countermeasures against tracking by ISPs or others that can pervasively sniff the net. Just nixing the identity key visibility is not a strong countermeasure for the reasons I described.
Our use case is simple as are many businesses.
We have users that authenticate using Google lets say. We want to give them remote desktop access from their home. They ARE NOT techies.
Ideally we could give them an SSO login (it sounds like this will make that possible). And then authorize them to connect to nodes Y and Q. We don't need "networks" at this level, just user A authorized to connect to node Y or node group 5 etc.
if we have users and user groups and nodes and node groups you can then basically do whatever a business is used to doing (this breakout is common in many smaller businesses using Active Directory, Google etc).
This seems boring but the competition is pretty poor. Sonicwall and friends with VPN setups are time consuming and pretty complex to manage and deploy. Anydesk and friends have just horrible business practices (try cancelling).
Cloudflare is getting there sort of with WARP, but it's also awkward and they keep moving their product positioning around.
Note - we happen to use some mikrotik for fun as well as sonicwall supported by our third party MSP - we've started to see zerotier show up on mikrotik which has been fun.
I landed on Perimeter 81 as a useful alternative that does what we needed
Even CLI oriented used to things like
Node Group A ALLOW FROM User 1, 2, 3
I might not have spent enough time playing with it.
EDIT:
Edited to add another look at rules engine I see absolute ZERO mentions of users. How are folks doing my use case in rules? User logs into let's say two machines and phone. They should have access to Node X inside our firewall for RDP. Permissions are tied to user identity. I wasted enough time chasing folks saying this is easy before, please CONFIRM it is easy before telling me it is.
https://news.ycombinator.com/item?id=30283987#30284754
I use Bitvise SSH commercially as a $100 one-time cost to secure port forwarding for RDP (Windows Pro) with Active Directory + TOTP auth. It's free for personal, partial-AD use.
* Tailscale is layer 3 and ZeroTier is layer 2, which is a significant difference for some applications.
* Tailscale requires an SSO solution, ZeroTier doesn't.
* Tailscale uses Wireguard, ZeroTier has its own custom protocol (correct me if I'm wrong)
* Tailscale provides an automagical DNS service for all nodes, with ZeroTier you need to roll your own: you need to physically install and run it on one of your nodes. ZeroTier will automatically propagate it for you.
See also: https://tailscale.com/kb/1139/tailscale-vs-zerotier/
(Arguments for this being a bad thing are listed there)
<rant>
... now if people would only pay for software without some lever like this we'd make SSO included.
I was just ranting on this topic earlier today:
https://news.ycombinator.com/item?id=31676011#31680304
SSO is a fairly decent "are you a business or an individual" lever, which is why the SSO tax exists. Otherwise businesses will not pay anything and then complain when you disappear.
As I always say: people will pay $10 every day for a latte and a donut at Starbucks but you have to twist their arms to get them to pay much less than that for software they get tons of value from.
</rant>
Arguably, a "are you a business rich enough to afford better security concepts" lever. So the smaller companies are left stranded :(
I understand your point, but at the same time I'd rather go for other levers. Maybe charging extra for SSO on support plans, while making SSO features themselves freely available (without support)?
[Ed.: I see you reworded your post a bit:]
> I agree. We do have plans to support free "social SSO" in the future with certain providers.
I guess that could cover most realistic small-business use cases. Or rather, if you can afford a "complicated" SSO solution, you can actually afford a SSO surcharge on services too. Sounds like a better lever?
One can view it as the SSO-enabled offering being a product, and the SSO-less option being a demo. Which, let’s be fair, it really is.
So, would you advocate the removal of the SSO-less trial discount ?
For the good of the Internet, the security of the global entirety of things, it is very very wise if everyone makes an attempt to make the defaults sane and secure, including things like this. It surely is a differentiator between "individual" and "business", but it shouldn't have to be. I agree wholehartedly with the sso.tax site that it's just one way for business to attempt to make revenue out of a basic need that any modern company would have.
Make the profit of real value added services for enterprises, automation, integrations, support, advanced features that gives insights or saves money or whatever; but don't be sneaky with the security aspect, is basically what I'm saying.
Compare it with streaming services. No one can argue against Netflix being particularly expensive. Anyone can afford it. It's just one latte per month. But when you not only want to consume what is on Netflix, you have to get another service, and another, and another, and another. Very very soon the aggregated cost starts to be very noticeable for a lot of people. And piracy makes a comeback.
And I very much doubt the typical ZeroTier user is earning minimum wage.
ZeroTier's SSO costs $5/user/month.
Why do so many people in tech expect to earn $$$$$$ themselves, yet expect their peers to work for nothing?
Or, to view it from a different angle - SSO is not a/the feature that should be removed to make it the "trial".
And from yet another angle: you could consider removing (or not offering) SSO similar to selling a car without seat belts (ignoring aspects of legality). It's not a problem until it is. But if you want the seat belts to be effective, you need to always have and use them from minute zero.
Why would we care about anyone not in the richest countries. It's not like they need security by default to not become another botnet and DDoS Europe or US businesses.
I would like to see you justify paying sso.tax to business owner in countries where sysadmin is payed less than those services ask in a month
I guess there's a lesson or two in market positioning and distribution in there somewhere.
See also: SimSWE 4: Wants, needs, and chasm-crossing, https://apenwarr.ca/log/20211024 (2021).
I know you are using this for effect, but I literally do not know anyone who goes to Starbucks anywhere close to daily.
$10 for lunch, even regularly, is still a one time expense.
It’s capx vs. opex
Sure, you can do it, but then it's $5/seat for thing A, $3/seat for thing B, $4/seat for thing C, and you can end up paying $50/seat for all the random software associated.
Yeah, for high value employees that's nothing. But for a warehouse worker to login and checkoff a compliance form once a month? It's not worth it, give them a shared login.
And then once shared logins happen, it'll just become habit for a bunch of small stuff that snowballs.
So that's why the first thing I look at for software is that if it has a per-seat cost, I'm going elsewhere because I want all my staff, not just the high-value staff, to be able to access and get what they need done.
They should have a hall of fame at the bottom though, showcasing SaaS-providers doing it right.
And if you use Auth0/Okta to implement your SSO (on the SaaS side) shits expensive as fuuuck and cost is per integration.
Another problem I have with the "SSO should be free, because it's security-related" argument is that it's a misunderstanding of why it costs money. It's not because companies want to gate security features. It's because when you're trying to create a pricing model for an otherwise free product, going from "I'm ok with manually inviting/deactivating users" to "I now need SSO, because this product has enough adoption within the company to merit it" happens to be an almost a perfect way to delineate between casual freemium users and business users who should be paying. That, combined with my initial point, is why I dropped out of the SSO tax crowd.
The best solution would be to have G-Suite SSO in the lowest paid tier and SAML in Enterprise.
https://news.ycombinator.com/item?id=29892664
Long story short: it has almost nothing to do with the cost of providing SSO features (which is what upsets security nerds, because we know it's not that expensive to get these features right, though they are tricky).
Rather: the SSO tax is much more about making services cheap/free for small customers, and charging "what they're really worth" (the core service! the whole thing! not just the SSO feature!) to companies that demonstrate that they're large enough by demanding SSO.
You don't have to like it! I sure don't! We SSO everything and are relatively small and the tax takes a bite. But it's at least worth understanding the logic behind it.
Not a day goes by that I don't dedicate some thought to better business models for software and services, especially for FOSS and otherwise pro-freedom pro-user software. It's hard for many reasons. User-hostile software (surveillance, loot box games, cryptocurrency scams) is easy to make money from, but that's not my thing.
And I 100% agree with you. As good security practice SSO should be available for all but the reasoning makes sense