Do I really need a VPN or does DNS over HTTPS does the trick?
Considering my threat model is just preventing my ISP to know which websites I am visiting and to prevent my government (India) from tracking me, do I need to use a VPN?
Currently, I am using a trusted VPN provider with a permanent kill switch and am never off of the VPN. Today, I was reading IVPN's homepage and it says, "A VPN can be effective at encrypting your DNS requests so your ISP or mobile network provider cannot monitor or log the domains you visit." But as far as I know, DNS over HTTPS does encrypt the DNS requests. Right?
I regularly clean my cookies, use hardened browsers, etc. So is a VPN really necessary for me? Or shall I just shift to using Quad9's DoH or something?
Edit - I am using the router provided by the ISP and I cannot change it because I am behind CGNAT. I can use a separate device and install PfSense or OpenWRT or something on it and use that as a firewall. Any suggestions there?
They will see the IP of the site you are visiting if you do not have the VPN. Depending on the site it could be obvious which site it is, if it has a dedicated hosting for example
Just to add a counterpoint to all the comments, my personal policy is who do you trust more your ISP or your VPN provider, most VPNs say they don't track but they can easily lie about it and they could easily change their policy overnight. Also, since most require a client installed on your machine, they could easily install a shim and get access to your in-flight encrypted data. If this were a case where you're in a country where you know they're tracking you, absolutely use a VPN that you trust. In the US/EU I just don't see much use for a VPN unless you're trying to get access to Geo-blocked content.
Dns is the starting point, but the main idea is to route your traffic through a central point without logs.
This means that from a network sniffing perspective, I know you’re sending data to the vpn endpoint, but the data is encrypted (also a vpn important point) and I don’t know where it’s going at all after that.
Even if I’m sniffing the traffic going out of the vpn endpoint , because there’s many people using the same point, while I can see that someone on the vpn was looking up pages on the pirate bay looking for the latest movie, I’m unable to match that to. A person connected. It could be one of thousands of people browsing with this vpn. So I don’t know that it was you looking for the latest minions movie.
TL;DR If you don't want your ISP to know the sites you visit you need some sort of proxy (which can be accomplished with a VPN).
There is lots of metadata about your requests. With a proxy your ISP can only see traffic volume. The contents are encrypted and all go to the same IP address. With just volume information it is quite difficult (but not impossible) to determine what sites you are visiting.
Without any sort of proxy the ISP can see a wide variety of additional info:
Which addresses you are connecting to. Can narrow down (and frequently pinpoint) what sites you are visiting.
Domain of most sites you visit (via SNI) (for sites not using encrypted SNI which is most of them).
Full info about unencrypted connections (consider turning on HTTPS only mode in your browser to avoid this).
DNS queries if you aren't using DoH, DoT or similar.
It sounds like you are aware but please remember that while this will be hidden from your ISP it will not be hidden from your VPN provider. You are essentially just shifting trust. Another advantage can be frequently changing your IP to make it harder for websites to track you. If you want to hide from everyone you will need a better solution such as Tor.
Most sites still send domain name in clear text. You can see it in Wireshark or PCAPDroid. You need VPN if you don't want your ISP to see the sites you visit.
This is pretty easy to do with a network tap, but it's a bit of data to capture an search. The SNI header tells a frontend at the IP what site you want. Something like SecurityOnion sitting on your net is a way to see it yourself.
Email is likely just as much a risk since the host would not only know who you communicate with but the content.
Only a VPN will mask the SNI from falling into the hands of the ISP. DoH will simply encrypt the contents of the DNS requests (which is nice to have but not the solution to your problem), your ISP will still know you made a DNS request and the IP your request resolved to
My banking apps and netbanking work just fine regardless of which country I am connected to. UPI (unified payments interface) requires an Indian IP, though. But I can still do everything while connected to my VPN provider.
Not OP, but back when I used Surfshark it had the ability to allow bypassing the VPN only for certain programs, IPs or URLs.
I mostly used it to get less latency with online games or getting access to them in the first place as often I'd encounter login servers that just didn't work though a VPN.
In your case a VPN makes more sense when you can’t really control the router. I like Cloudflares 1.1.1.1 Warp VPN it masks my IP and speeds up my connection. If you want to torrent or other questionable things something like Mullvad, Proton or IVPN is a better choice.