this post was submitted on 24 Jun 2024
688 points (97.9% liked)
Programmer Humor
32464 readers
616 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
NAT still has its place in obfuscating the internal network. Also, it's easier to think about firewall/routing when you segregate a network behind a router on its own subnet, IMO.
Given how large the address space is, it's super easy to segregate out your networks to the nth degree and apply proper firewall rules.
There's no reason your clients can't have public, world routeable IPs as well as security.
Security via obfuscation isn't security. It's a crutch.
There are a lot of valid reasons, other than security, for why you wouldn't want that though. You don't necessarily want to allow any client's activity to be traceable on an individual level, nor do you want to allow people to do things like count the number of clients at a particular location. Information like that is just unnecessary to expose, even if hiding it doesn't make anything more secure per se.
Well good news. Because ipv6 has a thing called privacy extensions which has been switched on by default on every device I've used.
That generates random ipv6 addresses (which are regularly rotated) that are used for outgoing connections. Your router should block incoming connections to those ips but the os will too. The proper permanent ip address isn't used for outgoing connections and the address space allocated to each user makes a brute force scan more prohibitive than scanning the whole Ipv4 Internet.
So I'm going to say that using routable ipv6 addresses with privacy extensions is more secure than a single Ipv4 Nat address with dnat.
Obfuscation is not security, and not having IPv6 causes other issues. Including some security/privacy ones.
There is no problem having a border firewall in IPv6. NAT does not help that situation at all.
Yes, of course. But saying trite things like that doesn't get around the idea that giving out a map of the internal network by default isn't the best policy.
So instead we open up a bunch of other issues.
With CGNAT, governments still spy on individual addresses when they want. Since those individual addresses now cover a whole bunch of people, they effectively spy on large groups, most of whom have nothing to do with whatever they're investigating. At least with IPv6, it'd be targetted.
NAT obscurity comes at a cost. Its gain is so little that even a small cost eliminates its benefit.
Governments are not anyone's issue other than other governments. If your threat model is state actors, you're SOL either way.
Making it harder for everyone else is the goal, and to do that you need a swiss cheese model. Hopefully all the holes don't line up between the layers to make it that much harder to get through. You aren't plugging all the holes, but every layer you put on makes it a little bit harder.
And NAT is not just simple to set up, it's the intuitive base for the last 30 years of firewalls. I don't see where you get a cost from it. As I said, separating network spaces with it comes naturally at this point. Maybe that'll change, but I remember using routable IPV4 when it was it the norm, and moving to NAT made that all feel way more natural.
That's a silly way to look at it. Governments can be spying on a block of people at once, or just the one person they actually care about. One is clearly preferable.
Again, the obscurity benefit of NAT is so small that literally any cost outweighs it.
We forced decisions into a more centralized, less private Internet for reasons that can be traced directly to NAT.
If you want to hide your hosts, just block non-established, non-related incoming connections at your firewall. NAT does not help anything besides extending IPv4's life.
You don't need to give up IPV6 to have NAT though.
But why bother? "Let's make my network slower and more complicated so it works like a hack on the old thing".
That's what temporary privacy addresses are for. Clients can just keep generating new addresses in your /64, which is it's own subnet.