Tailnet Lock is a security feature that uses cryptographic signing nodes to control which devices can join a Tailnet, moving the trust boundary from the central control plane to the devices themselves. When enabled, only devices with valid signatures from trusted signing nodes can connect, providing an extra layer of protection against control plane compromise. The system uses a blockchain-like Tailnet Key Authority to cryptographically track and audit changes to signing nodes, with disablement secrets available for recovery if keys are lost.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Tailscale's Tailnet Lock ExplainedAdded:
Well, welcome in everybody. I'm joined by Alex Chan, who is one of, well, are you an engineer, Alex?
I think officially my title is member of technical staff because engineer is a protected term in Canada.
But yes, most people would call me a software developer or software engineer in Tailscale's developer experience team.
Right, words on keyboard and computer goes brr, basically.
Yes. All right. Well, today we're going to talk about Tailnet Lock, which is one of the most underrated features of Tailscale I think that we have.
It's going to be a fairly low key chat between the two of us talking about what Tailnet Lock is, what you might want to use it for.
And we might even get into some demo stuff a little bit later on.
So, yeah, let's start with that. Let's start with what is Tailnet Lock?
So Tailnet Lock is a feature that exists in a sort of family of features we have in Tailscale for controlling what happens in your Tailnet.
So at the most permissive end, you have the sort of open door policy.
You allow anybody who's a member of your email domain to join your Tailnet and you allow them to add whatever devices you like.
And then we have features like user approval and device approval, which let you control who is allowed to join your Tailnet and what devices they are allowed to add.
And then we have the Tailscale policy file, which controls what devices are allowed to do what and connect to each other once they've joined your Tailnet.
So why would anybody want to use something like Tailnet Lock? What are the kinds of scenarios that it's protecting against?
So Tailnet Lock protects against the scenario where the Tailscale control plane is malicious or compromised.
Device and user approval are mediated through the Tailscale control plane through our admin console.
So you log into login.Tailscale.com and then you can choose whether to approve or deny users and device in your Tailnet.
But that means that if our control plane were to be compromised or we were to become malicious, we could potentially start approving devices on your behalf.
So Tailnet Lock moves that trust boundary out of our admin console and onto your devices.
And so only the owner of the Tailnet is allowed to choose which devices are actually allowed to join.
And the Tailscale control plane can relay those decisions, but it can't add devices to your Tailnet for you.
So it's a question of moving the trust model around of being like, right, well, today by default, in fact, probably 99% of our customers trust the Tailscale control plane's ability to be like the source of truth, I suppose, in like what can and cannot get added to the Tailnet.
But Tailnet Lock, I suppose, is there to mitigate the risk of the Tailscale being some kind of a threat vector.
I always think about Tailnet Lock and wonder, like it's one of those features that's really good that it exists.
And I'm very glad that it does. But like how likely of a scenario are we talking about here?
Hopefully, fairly unlikely. We have a lot of... Well, it feels like hubris to say it could never happen because that's how it ends up happening next week.
But we have fairly strong internal controls to prevent unauthorized modification of Tailnets, to control access to customer information.
We run Tailscale ourselves internally, so a lot of staff who can't do that, who shouldn't be modifying customer data don't even have access to that.
So for example, you mentioned I'm on our engineering team. I don't have permission to make a lot of those changes to Tailnets because it's not to customer Tailnets, because it's not something I should be doing on a regular basis.
Those permissions are only extended to our support staff who are making modifications on behalf of customers.
So hopefully it's fairly unlikely. But it would be hubris to say that it could never happen.
And so really, once you've sort of thought about the Tailnet Lock model, it essentially means that only trusted nodes can join the Tailnet.
And we can use this in conjunction with another feature of device approval.
And those two features kind of work hand in hand, really.
So a typical company might only allow devices to be... So I'd log into Tailscale on my laptop, so I get a new laptop from work.
And I connect it to my company Tailnet, but it needs manual approval. But Tailnet Lock takes it a step further than that even.
Yes, a Tailnet Lock is... Tailnet Lock is sort of an extension of device approval.
You can't run the two features at the same time.
But I sometimes refer to it as device approval with teeth.
Because with device approval, it's anybody who can access your admin console, who has admin permissions, can go in and approve device, add them to your Tailnet.
Whereas with Tailnet Lock, you need to have access to a trusted signing node.
So this is a special node in the Tailnet, has special cryptographic keys.
And then only people with access to those nodes are able to approve nodes in your Tailnet.
And so you'd hope that access to those would be more locked down than access to your admin console.
So how does it work under the hood? How does Lock... How does Tailnet Lock actually work?
So every node in a Tailnet has a public-private keypad. We call this the node key.
This is the key that's used to secure the WireGuard section between peers.
And when you enable Tailnet Lock in a network, you designate a set of trusted signing nodes.
And these nodes have a second public-private keypad, which is the Tailnet Lock key.
And the public key is distributed to all of the nodes in the Tailnet.
And then these signing nodes can sign the node key of any node in the Tailnet.
And that node key signature also gets distributed to all of the nodes through the Tailscale control plane.
So if a node wants to know, do I trust this node? Am I allowed to connect to it?
It can look at the node key and look at the node key signature.
And it can check if that node key signature comes from one of these trusted signing nodes.
And if it does, great. It's allowed to connect with that device.
And if it doesn't, if that node key isn't valid, if the node key signature isn't valid, it's not allowed to connect to that device.
And those Tailnet Lock signing keys never leave the signing nodes.
So they're never sent to Tailscale. They're never shared with other nodes in the network.
So you can only create one of those node key signatures if you have access to that trusted signing node.
And so I presume this means by design, if you lose those signing keys, you can't add any more nodes to the Tailnet. What happens then?
So when you enable Tailnet Lock, we create what's 10 disablement secrets.
So these are secrets that you can store separately in, for example, a password manager or a fire safe.
And you can use these secrets to disable Tailnet Lock for your entire Tailnet.
And then you could choose to reinitialize it.
When you enable Tailnet Lock, you can also optionally choose to share a disablement secret with the Tailscale support team.
So then you could open a support request and say, hey, I've lost my Tailnet Lock keys.
I need to disable Tailnet Lock for their Tailnet. And the support team can do that on your behalf after verifying that you own the Tailnet.
But that's completely optional. Some customers feel comfortable sharing that secret.
Other customers would rather hold on to all of the secrets themselves and accept that there is a risk.
You could be unable to add nodes to your Tailnet if you lose those secrets.
Interesting. So it's kind of like the iCloud two factor model or like a FileVault encryption model where like you've got your recovery key that you can choose to share with Apple or not. So your iCloud can reset the encryption. Interesting.
So these signing nodes, are they just normal Tailscale nodes or are they special things?
Like how do you, what are they? What are these signing nodes?
So signing nodes are just regular nodes in your Tailnet that the nodes in your Tailnet know to trust as signing nodes.
So then the question becomes, well, how do you know who the trusted signing nodes are?
If we could just say, oh, this node is now trusted to sign things, that sort of undermines the security model.
So we extend the signing concept to the signing nodes themselves.
So there's something, Tailnet Lock introduces something called the Tailnet Key Authority.
And this is a list of who are the trusted signing nodes? What are their Tailnet Lock keys? Which keys should you trust?
And this forms a blockchain. It's a cryptographically signed series of messages saying, you should start trusting this signing node, stop trusting this signing node, start trusting these two signing nodes.
It tracks all of the changes made to that list of signing nodes over your time using Tailnet Lock.
So you have to trust us to distribute that initial seed message of the Tailnet Key Authority to all of your nodes.
But once you've done that, all subsequent updates will be signed by your signing nodes.
And so we can't make any further changes.
An actual bonafide use for blockchain. We finally found one.
Indeed. Indeed. But we don't burn the entire world to make Tailnet Lock work, which is nice.
Yeah, good. So you have a trusted ledger of basically different nodes across the blockchain to say, right, this person approved this node at this time. So that makes auditing probably happy as well.
Yeah, it is. Yeah, it is. Certainly. So there you can see exactly when particular nodes signing nodes were added or removed.
It is quite a useful feature for auditing. I'll say, well, we know exactly when these particular nodes were added to the Tailnet Lock and when these nodes were trusted as signing nodes again and again with that cryptographic security and not just you can only generate those cryptographic signed messages if you have access to the Tailnet Lock keys that signed it.
So it's not something so if you it's not something that we could falsify or fake, you know, it's a hard it's cryptographically provable audit trial.
Interesting. OK, now there is a white paper that you've linked in the show notes here.
We'll put in the description down below talking about the deep cryptographic details of how this all works.
Yeah. So we published a white paper which describes the cryptographic detail, the cryptographic implementation in more detail.
Although a lot of our client code is open source, including all of the pieces of Tailnet Lock, that's not always the most accessible way to understand what Tailnet Lock is doing.
It's also not necessarily get you know, there's the implementation, the design and the white paper is the design so people can read it in a really digestible form and understand exactly what Tailnet Lock is meant to be doing and satisfy themselves.
It is cryptographically sound and then you can go and read our source code and understand, OK, the source code matches the implementation.
It's doing the correct thing. But the white paper is there are sort of the the more human readable version, I suppose I would say.
Now, I think we've we've covered sort of the architecture of Tailnet Lock, what it's for, why you might want to use it.
It's probably time we went on to a demo portion now, right?
Yeah, let's do that. Let's go.
OK, so let's look at a simple demo of how Tailnet Lock works.
So on the left hand side, I've got three nodes running. We're going to run some while using the Tailscale CLI.
We're going to run some commands on there in a minute. And on the right hand side, I have my tailnet.
So this is just a brand new tailnet that I've created that has currently has three nodes in it.
It's using the default ACL. It's not got user or device approval enabled.
It's just a brand new tailnet.
And all three of these devices right now are able to connect to each other.
So if I run if I switch to one of these nodes, for example, I run Tailscale ping node two.
The Pong comes back because all three of these nodes are able to connect to each other.
So now let's enable Tailnet Lock and see how that affects the nodes in the tailnet.
So to enable Tailnet Lock, I select settings.
Then I select device management because Tailnet Lock is a device related feature.
And then I select enable Tailnet Lock.
So I'm now presented with this Tailnet Lock configuration screen.
The first step is to choose which nodes I want to use as my signing nodes.
So in this case, I'm going to choose node one and node two just to keep things simple.
This is just the initial selection.
So it is possible to change what Tailnet Lock signing nodes are using after the fact.
And any changes are recorded in the Tailnet Key Authority with that nice cryptographic blockchain that we talked about earlier.
So then I configure some of my disablement secrets.
So these are those kind of like that iCloud recovery code.
These are the secrets that allow me to disable Tailnet Lock if I lose access to all of my signing nodes.
Or indeed if I still have access to my signing nodes, these disablement secrets are what disable Tailnet Lock.
And I can choose whether to send the disablement secrets to Tailnet Support or not.
So if I send it, they would be able to help me recover the tailnet if I lose the secret later.
If not, if I lost all of the secrets and I lost all of my signing nodes, I'd be completely on my own.
Entirely up to you.
What do you think we should do in this case, Alex?
Oh, I think we're going to be just fine today. I trust, in Alex I trust.
Literally.
So we're not going to send the disablement secrets to Tailscale Support.
Okay. So then we're given this lock init command to run on one of our signing nodes.
And so this says, initialize Tailnet Lock, generate 10 disablement secrets.
And then these two public keys are the Tailnet Lock public keys of our two signing nodes.
So I'll copy this command. I will run it on node one.
And now it initializes Tailnet Lock and it prints these 10 disablement secrets here.
So it's really important to keep these secured because these would allow somebody to disable Tailnet Lock in your tailnet.
Print them out and put them on a sticky down the bottom of your monitor, right?
Exactly. That's the secure way to do it.
Exactly. I can trust you not to share this with anybody, right, Alex?
Yeah, no, they definitely won't end up on YouTube either.
Brilliant. Perfect. Okay. So returning to the console, it now says Tailnet Lock is enabled.
And if I switch back to my machines tab, we'll see that I still, that two of my nodes now get this signing node label.
This machine can sign new nodes to approve that access to the Tailnet.
And the third node is not a signing node, but it's still connected to the Tailnet.
So when you enable Tailnet Lock, we automatically sign all of your existing nodes so you don't lose any connectivity.
So we're at the point here where I want to add my Pixel device to this Tailnet.
And there's a couple of steps we need to do.
First of all, Alex is going to have to invite me as a user into this Tailnet. So let's do that first of all.
Yeah. So to invite Alex, I go to the users tab, I invite users, and then I can either send you an invitation link or I can invite you via email.
So I'm going to type in your email address here.
Scales plural, right? Correct. Okay. All right. So I'll invite you to the Tailnet.
Okay. Then momentarily, I will receive an email with that invite.
And what that will do is it will add me to the list of users in Alex's TS JustWorks Tailnet.
So as you can see here, I've got an email that's just popped in saying, do you want to join Alex's Tailnet?
Yes, I do. Let's click on the join button right here and sign in with my typical OAuth flow with Google that we do in all of these videos on the channel.
And then I click the button here that says join Tailnet. Now this says you need to be approved, but this is not Tailnet lock in action.
That's coming shortly in a moment. What this is, is simply Alex saying, I can only allow users to join my Tailnet if they're approved.
Okay.
So now this is where I am, you know, pretending to be corporate employee number 101 and I just received my new work phone and I want to log it into the company Tailnet.
So that is a separate step from logging in or being approved as a user.
So I'm going to connect my client device now, which happens to be a pixel eight that I have in my hand right here.
I'm going to click the login button in the Tailscale client in Android. It's then going to use my OAuth flow again to the Google sign in that we did.
If I click on TS just works Alex C and connecting to that tail net, you will see here that it says you are, what's the phrasing?
This node is locked out. It will not have connectivity until it has been signed.
Yeah. So if I reload my machines page now, I see your pixel eight. I see that it's connected, but it's got this locked out red badge in my list of devices.
So I can, as an admin, I can click on this. I can click on your device and we get this orange warning saying it's locked out by tailnet lock.
It can't access the network until it's signed by trust to tell it lock key. So let's click this orange sign machine button.
The instructions in sign machine dialog that pop up will tell you to do something on one of your sign in nodes.
And this is a really important feature of telnet lock. There is no way for the admin console to unilaterally sign a device.
It can only tell you to go and do that step somewhere on a signing node. That's the whole point of telnet lock, that you have to have access to signing nodes to do the signing process.
So you can sign it using a Mac or a Windows desktop client. You can sign it using an iPhone or an iPad.
We don't support Android yet, but we are working on it. Or we can sign it using the CLI.
So this is Tailscale CLI command that I can copy. And it includes the node key and that's the node key of your pixel device.
And so when I run this on a signing node, it will create the node key signature for that node key.
So let's copy and paste that into here. And then I will run that command.
And that will succeed. And now the admin console says, signing complete. This machine can now connect to your telnet.
It's got a nice green happy status. The lockdown warning is gone. And hopefully your pixel device is now cleared for the morning and is fully registered member of the telnet.
And so with that, my connectivity from my phone here is now established to the rest of my telnet.
And I'm going to validate that by pressing and holding here and pressing ping. And it's going to make a direct connection to one of the other nodes in the telnet that Alex has set up for me.
And so that's it. Now I have a just a normal Tailscale experience from this point on as a user.
I don't need to care or even really think too much about the rest of the Tailscale lock process.
But what it gives you as an admin is just that extra layer of warm and fuzziness and security that things can only join your telnet when you explicitly allow them.
And more importantly, in this case, cryptographically sign them and permit them to do so.
So telnet lock has been around for a little while now. We released it to generally available status last year.
Yeah, in June last year, we made it generally available after a beta period.
And we got some really useful feedback from customers during that time. And now it's generally available to anybody who uses Tailscale with the personal, personal plus or enterprise plans.
And so if you have any questions about telnet lock, you can of course reach out to our wonderful support teams.
That's available to all Tailscale customers, personal or paid customers.
I want to say a big thank you to Alex for joining me today. Two British Alexes on the channel at the same time.
It's a, like the universe is colliding, I swear, you know.
But makes it easy to remember my name. Thanks for having me, Alex.
Absolutely. All right. Until next time. Thank you. Bye bye.
Related Videos
VALORANT's Latest 'Exclusive' Tier Bundle is Rough...
KangaValorant
17K views•2026-05-28
Flight Attendant Mocks Poor Looking Black Woman — Mid Air Announcement Exposes Her Real Power
SkyboundStories-b4r
184 views•2026-05-28
I FIXED My Friend’s Blown Turbo RX-8… Then Sold It
Cameron-RX8
134 views•2026-05-28
NewsWatch 12 at 5: Top Stories
NewsWatch12
1K views•2026-05-28
Simon Jordan & Danny Murphy deliver PREDICTIONS for Arsenal's Champions League FINAL with PSG
talkSPORTArsenal
6K views•2026-05-28
Botting is OUT OF CONTROL in Classic WoW (Again)...
SolheimGaming
108 views•2026-05-28
The "AI Job Apocalypse" is CANCELLED!
WesRoth
9K views•2026-05-28
STREET FIGHTER 6 - INGRID Story Walkthrough @ 4K 60ᶠᵖˢ ✔
RajmanGamingHD
12K views•2026-05-28











