Los proveedores de internet disponen de unas claves de acceso que les permite acceder a las listas de dominios bloqueados por el ministerio de justicia, etc. Estos listados no son públicos.
Según el tipo de bloqueo que tenga el ISP, te puede bloquear mediante solicitudes DNS, por IP de destino, por nombre del servidor en certificados SSL (los campos extendidos SNI), etc.
Si no te fías de los DNS de nadie (tanto extranjeros como nacionales), puedes montarte un servidor DNS y hacer que todas las consultas se realicen a los servidores DNS "raíz": es.wikipedia.org/wiki/Servidor_ra%C3%ADz
Esto te generará muchas peticiones por cada dominio solicitado, ya que si solicitas por ejemplo raw.githubusercontent.com, el servidor DNS hará todas estas peticiones:
1. Preguntar a cualquier servidor DNS raíz qué servidores resuelven los .com. Esto dará un listato de IP's
2. Luego preguntará a una de esas IP quién se encarga del dominio githubusercontent.com. Esto dará otro listado de IP's
3. Luego peguntará a una de esas IP dónde se encuentra raw.githubusercontent.com. Esto dará la IP final
En este ejemplo se ha simplificado mucho todas las peticiones que se pueden llegar a hacer, ya que si por ejemplo en algún punto se resuelve que un DNS de dominio es por ejemplo: 13pl.34.spain.dns.domain.net y no se dispone de IP, tu servidor DNS deberá recorrer cada uno de los subdominios 13pl, 34, spain, DNS y domain.net para encontrar su IP, y posteriormente continuar con la resolución anterior
De esta forma los únicos que podrán ver tus solicitudes será tu proveedor de Internet, aunque a un coste de más lentitud a la hora de resolver nombres de dominio, traduciéndose a una navegación más lenta la primera vez que accedes al dominio.
Tu servidor de DNS hará a la vez de caché según la configuración de los segundos TTL del dominio que solicitas, así las próxima vez que solicites el dominio no hará falta que haga todo este proceso y te la entregará como si lo hiciera el DNS de tu ISP
Un saludo