{"id":19048,"date":"2022-05-02T11:07:39","date_gmt":"2022-05-02T09:07:39","guid":{"rendered":"https:\/\/daniel.haxx.se\/blog\/?p=19048"},"modified":"2024-05-03T10:51:07","modified_gmt":"2024-05-03T08:51:07","slug":"considered-18","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2022\/05\/02\/considered-18\/","title":{"rendered":"Considered &#8220;18+&#8221;"},"content":{"rendered":"\n<p><strong>Vodafone UK<\/strong> has taken it on themselves to make the world better by marking this website (<code>daniel.haxx.se<\/code>) &#8220;adult content&#8221;. I suppose in order to protect the children.<\/p>\n\n\n\n<p>It was first reported to me on May 2, with this screenshot from a <a href=\"https:\/\/twitter.com\/miniyarov\/status\/1520896974110797824\">Vodafone customer<\/a>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/vodafone-uk-daniel-haxx-se.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"2186\" height=\"1320\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/vodafone-uk-daniel-haxx-se.jpg\" alt=\"\" class=\"wp-image-19075\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>And later followed up with some <a href=\"https:\/\/twitter.com\/justsitandgrin\/status\/1521028402790252545\">more details<\/a> from another user in this screenshot<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/vodafone-uk-daniel-haxx-se-2.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"2048\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/vodafone-uk-daniel-haxx-se-2.jpg\" alt=\"\" class=\"wp-image-19076\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>Customers can opt out of this &#8220;protection&#8221; and then apparently Vodafone will no longer block my site.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How<\/h2>\n\n\n\n<p>I was graciously given more logs (<a href=\"https:\/\/gist.github.com\/bagder\/b46386b7e7b41753b6f316416f06f2db\">my copy<\/a>) showing DNS resolves and curl command line invokes.<\/p>\n\n\n\n<p>It shows that this filter is for this specific host name only, not for the entire <strong>haxx.se<\/strong> domain.<\/p>\n\n\n\n<p>It also shows that the DNS resolves are unaffected as they returned the expected Fastly IP addresses just fine. I suspect they have equipment that inspects outgoing traffic that catches this TLS connection based on the SNI field.<\/p>\n\n\n\n<p>As the log shows, they then make their server do a TLS handshake in which they respond with a certificate that has <code>daniel.haxx.se<\/code> in the CN field.<\/p>\n\n\n\n<p>The curl verbose output shows this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>* SSL connection using TLSv1.2 \/ ECDHE-ECDSA-CHACHA20-POLY1305\n* ALPN, server did not agree to a protocol\n* Server certificate:\n*  subject: CN=daniel.haxx.se\n*  start date: Dec 16 13:07:49 2016 GMT\n*  expire date: Dec 16 13:07:49 2026 GMT\n*  issuer: C=ES; ST=Madrid; L=Madrid; O=Allot; OU=Allot; CN=allot.com\/emailAddress=info@allot.com\n*  SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.\n&gt; HEAD \/ HTTP\/1.1\n&gt; Host: daniel.haxx.se\n&gt; User-Agent: curl\/7.79.1\n&gt; Accept: *\/*\n&gt; <\/code><\/pre>\n\n\n\n<p>The allot.com clue is <a href=\"https:\/\/www.allot.com\/service-providers\/url-traffic-filtering\/\">the technology they use<\/a> for this filtering. To quote their website, you can &#8220;protect citizens&#8221; with it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"358\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-02-at-10-58-14-URL-Traffic-Filtering-for-Service-Providers-Allot.png\" alt=\"\" class=\"wp-image-19083\" style=\"width:341px;height:199px\"\/><\/figure>\n<\/div>\n\n\n<p>I am not unique, clearly this has also hit other website owners. I have no idea if there is any way to appeal against this classification or something, but if you are a Vodafone UK customer, I would be happy if you did and maybe linked me to a public issue about it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update<\/h2>\n\n\n\n<p>I was pointed to <a href=\"https:\/\/www.blocked.org.uk\/check\/live\">the page<\/a> where you can request to unblock specific sites so I have done that now (at 12:00 May 2).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update on May 3<\/h2>\n\n\n\n<p>My unblock request for <code>daniel.haxx.se<\/code> is apparently &#8220;on hold&#8221; according to <a href=\"https:\/\/www.blocked.org.uk\/reported-sites\">the web site<\/a>.<\/p>\n\n\n\n<p>I got an email from an anonymous (self-proclaimed) insider who says he works at Allot, the company doing this filtering for Vodafone. In this email, he says<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Most likely, Vodafone is using their parental control a threat protection module which works based on a DNS resolving.<\/pre>\n\n\n\n<p>and then<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">After the business logic decides to block the website, it tells the DNS server to reply with a custom IP to a server that always shows a block page, because how HTTPS works, there is no way to trick it, either with Self-signed certificate, or using a signed certificate for a different domain, hence the warning.<\/pre>\n\n\n\n<p>What is weird here is that this explanation does not quite match what I have seen the logs provided to me. They showed this filtering clearly <em>not<\/em> being DNS based &#8211; since the DNS resolves got <em>the exact same<\/em> IP address a non-filtered resolver does.<\/p>\n\n\n\n<p>Someone on Vodafone UK could of course easily test this by simply using a different DNS server, like 1.1.1.1 or 8.8.8.8.<\/p>\n\n\n\n<p>Discussed on <a href=\"https:\/\/news.ycombinator.com\/item?id=31248250\">hacker news<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update May 3, 2024: unblocked<\/h2>\n\n\n\n<p>Two years later the situation was the same and I wrote about it on Mastodon:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e91c774c95f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69e91c774c95f\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1196\" height=\"638\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/05\/Screenshot-2024-05-03-at-10-36-12-daniel-__-stenberg-__-@bagder@mastodon.social.png\" alt=\"\" class=\"wp-image-24656\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>Just hours later I was emailed by a person who explained they are employed by Vodafone and they forwarded my post internally. <em>The blocking should thereby be gone<\/em>. The original block was wrongly applied and then my unblocking request from two years ago &#8220;never reached the responsible team&#8221;.<\/p>\n\n\n\n<p>Another win for complaining in the public.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vodafone UK has taken it on themselves to make the world better by marking this website (daniel.haxx.se) &#8220;adult content&#8221;. I suppose in order to protect the children. It was first reported to me on May 2, with this screenshot from a Vodafone customer: And later followed up with some more details from another user in &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2022\/05\/02\/considered-18\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Considered &#8220;18+&#8221;<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":13350,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[251,13,45],"tags":[219,381],"class_list":["post-19048","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-haxx","category-net","category-web","tag-network","tag-tls"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/19048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=19048"}],"version-history":[{"count":15,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/19048\/revisions"}],"predecessor-version":[{"id":24658,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/19048\/revisions\/24658"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media\/13350"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=19048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=19048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=19048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}