{"id":1261,"date":"2023-02-02T22:51:16","date_gmt":"2023-02-02T22:51:16","guid":{"rendered":"https:\/\/bluecatnetworks.com\/?p=252811"},"modified":"2023-06-06T23:55:02","modified_gmt":"2023-06-06T23:55:02","slug":"manifest-v3-doubts-try-a-dns-based-solution","status":"publish","type":"post","link":"https:\/\/ddi.mohflo.net\/index.php\/2023\/02\/02\/manifest-v3-doubts-try-a-dns-based-solution\/","title":{"rendered":"Manifest V3 doubts? Try a DNS-based solution"},"content":{"rendered":"<p>Google claims that the newest version of its Chrome extension platform, Manifest Version 3 (V3), will be more secure, performant, and private than ever.<\/p>\n<p>An extension manifest serves a valuable purpose: It gives a web browser information about an extension, such as key files and capabilities that it might use. According to Google, Manifest V3 represents one of the most significant shifts in the platform since it launched a decade ago.<\/p>\n<p>But Google\u2019s claims have also raised concerns about whether Manifest V3 really improves network privacy and security. Some see an evident conflict of interest between Google as an advertising giant and its Chrome web browser as a user agent.<\/p>\n<p>This post will first touch on the timeline and major changes anticipated for Manifest V3. Then, it will examine what these changes could mean\u2014good or not so good\u2014in the context of your enterprise, particularly for anti-tracking and ad blockers. Finally, it will explore the challenges of merely switching to a different browser and how applying a DNS-based solution might be a better option.<\/p>\n<h2>Manifest V3 migration plans<\/h2>\n<p>January 2024 was the slated expiration date for Manifest V2 enterprise policy. However, Google has <a href=\"https:\/\/developer.chrome.com\/docs\/extensions\/mv3\/mv2-sunset\/\">postponed experiments to turn off Manifest V2<\/a> and put deprecation timelines under review.<\/p>\n<p>With its expiration, Google\u2019s web store will purge all V2 extensions\u2014including the major ad and tracking blockers. Furthermore, Chrome will no longer run extensions that are not V3 compliant, even those installed with <code>ExtensionInstallForcelist<\/code>. Certainly, Google could change their plans for V3 during this review process. But assuming they don\u2019t, enterprises using Chrome browsers must confront some hard facts about the security and privacy of their networks.<\/p>\n<h2>What Manifest V3 could mean for anti-tracking and ad blocking<\/h2>\n<p>Let\u2019s start with the positives. Manifest V3 can protect users from potentially malicious extensions. Most developers would likely agree that blocking the execution of <a href=\"https:\/\/developer.chrome.com\/docs\/extensions\/mv3\/mv3-migration\/#remotely-hosted-code\">remotely hosted code<\/a> and <a href=\"https:\/\/developer.chrome.com\/docs\/extensions\/mv3\/mv3-migration\/#executing-arbitrary-strings\">arbitrary strings<\/a> is an overall win from a privacy and security standpoint.<\/p>\n<p>Unfortunately, many of the other changes involve tradeoffs that may result in worse experiences for users and extension developers. Perhaps the most contentious change is the <a href=\"https:\/\/developer.chrome.com\/docs\/extensions\/reference\/webRequest\/\">removal of <code>webRequest<\/code> API calls<\/a> aimed at blocking HTTP requests. Substantial impacts are expected to the functionality of anti-tracking and ad-blocking extensions by limiting their ability to inspect and modify requests.<\/p>\n<h3>A 30,000-rule limit<\/h3>\n<p>Moving forward, Chrome browser extensions implementing request blocking functionality will be forced to use <code>declarativeNetRequest<\/code> instead of the current <code>webRequest<\/code> present in Manifest V2. This is problematic because there is a <a href=\"https:\/\/sunnyzhou-1024.github.io\/chrome-extension-docs\/extensions\/declarativeNetRequest.html#property-MAX_NUMBER_OF_RULES\">30,000-rule limit for <code>declarativeNetRequest<\/code><\/a>. Meanwhile, there is no such limit to blocking requests using V2\u2019s <code>webRequest<\/code>.<\/p>\n<p>For context, <a href=\"https:\/\/github.com\/easylist\/easylist\">EasyList<\/a> alone includes enough rules to hit this limit. But the most effective wide-spectrum content blockers\u2014such as <a href=\"https:\/\/github.com\/gorhill\/uBlock\">uBlock Origin<\/a>\u2014require many more domain lists and rulesets to ensure their effectiveness.<\/p>\n<h3>Causing more problems than it solves<\/h3>\n<p>The ugly truth is that this may cause more problems than it solves. A requirement to submit all extension code for review with V3 can arguably better protect users from malicious extensions. But this only applies if V3-compliant extensions are submitted through Google\u2019s official store.<\/p>\n<p>In practice, those who are determined to subvert advertisements and third-party trackers endemic to many modern web applications typically toggle on developer mode to load up external extensions. But these extensions may be from less-than-reputable sources. And they have the potential to harbor malicious or otherwise insecure code as they avoid Google\u2019s review process. This is, to some extent, a problem that already exists with V2. But the accessibility of fully functional open-source blockers such as uBlock Origin and <a href=\"https:\/\/github.com\/ghostery\/ghostery-extension\">Ghostery<\/a> currently mitigates it.<\/p>\n<p>V3 may exacerbate this issue, especially if the impacts to the functionality of these tools are as extensive as expected. Relying on unvetted sources can expose enterprises to a host of security threats.<\/p>\n<h2>To avoid Manifest v3, why not just switch browsers?<\/h2>\n<p>If you want to keep ad-blocking and anti-tracking functionality, why not simply switch browsers?<\/p>\n<p>In short, many people probably will, but the long story is a bit more nuanced. Switching to another browser may prove to be an effective solution for personal use. But this approach is not necessarily trivial in the context of enterprises, which manage browsers organizationally. Chrome has enjoyed the <a href=\"https:\/\/gs.statcounter.com\/browser-market-share#monthly-201201-202301\">largest market share of any web browser<\/a> since it took the top spot in 2012. As a result of this success, it has become entrenched in many enterprises.<\/p>\n<p>Even if your organization chooses to shift away from Chrome, V3 will likely impact other browsers\u2019 design choices to maintain compatibility. Currently, <a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-edge\/extensions-chromium\/developer-guide\/manifest-v3\">Edge<\/a> and <a href=\"https:\/\/webkit.org\/blog\/12445\/new-webkit-features-in-safari-15-4\/#safari-web-extensions\">Safari<\/a> have confirmed support for V3. <a href=\"https:\/\/blog.mozilla.org\/addons\/2022\/05\/18\/manifest-v3-in-firefox-recap-next-steps\/\">Firefox<\/a>, <a href=\"https:\/\/twitter.com\/brave\/status\/1574822799700541446?s=20&amp;t=hoTATt8N1A3fOJXdyroSGg\">Brave<\/a>, and <a href=\"https:\/\/vivaldi.com\/blog\/manifest-v3-webrequest-and-ad-blockers\/\">Vivaldi<\/a> will additionally maintain support for V2-style blocking requests in some capacity.<\/p>\n<h2>Block undesired traffic using DNS policy instead<\/h2>\n<p>But even outside of switching browsers, all hope is not yet lost.<\/p>\n<p>You can manage and block a substantial amount of ad and third-party tracking traffic at the DNS level. However, this can come at the cost of granularity. For example, it is more straightforward to enact a policy blocking all of youtube.com than it is to target only YouTube\u2019s ads with blocking policies. This especially true in instances where the ad and video share a common source. However, this can be problematic. Categorically blocking a domain may, depending on the situation, be undesirable for the organization, end users, or both.<\/p>\n<p>Overall, if they can handle the complexities effectively, creating consistent, centralized policies to manage network traffic at the organizational level can be a boon to enterprises.<\/p>\n<p><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" class=\"js-loaded size-full wp-image-23745 img-fluid v-image-processed has-media-category media-cat-blog-pics-and-headers\" src=\"https:\/\/bluecatnetworks.com\/wp-content\/plugins\/v-site-base\/images\/fallback_images\/image-placeholder.svg\" alt=\"Screenshot of an example dynamic feed domain list in BlueCat Edge.\" width=\"698\" height=\"440\" align=\"center\" data-custom-sizes=\"1\" data-src=\"https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-8.jpg\" data-srcset=\"https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution.jpg 540w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-1.jpg 1200w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-2.jpg 340w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-3.jpg 640w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-4.jpg 1536w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-5.jpg 24w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-6.jpg 36w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-7.jpg 48w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2023\/06\/manifest-v3-doubts-try-a-dns-based-solution-8.jpg 1550w\" data-sizes=\"(min-width: 1200px) 1200px, (min-width: 992px) 992px, (min-width: 768px) 768px, (min-width: 576px) 576px, 100vw\"><\/p>\n<p>Indeed, you can configure a domain list in Edge as a dynamic feed to synchronize with a hosted domain list file. This feature can filter out ad and tracking traffic according to popular lists like EasyList and <a href=\"https:\/\/pgl.yoyo.org\/adservers\/\">Peter Lowe\u2019s Blocklist<\/a>. Or it can filter using a custom solution that your organization curates.<\/p>\n<p>Did you know that <a href=\"https:\/\/bluecatnetworks.com\/adaptive-dns\/bluecat-edge\/\">BlueCat Edge<\/a> can help your enterprise to block undesired traffic at the DNS level?<\/p>\n<p>Edge dynamic feeds are not the tool for managing ad traffic at the DNS level. Solutions like <a href=\"https:\/\/pi-hole.net\/\">Pi-hole<\/a> can be wonderful for personal use.<\/p>\n<p>But nothing else measures up to the robust functionality that Edge delivers. Purpose-built and battle-tested, Edge can scale to fit the needs of your enterprise. Give dynamic feeds a try, especially if you are already an Edge subscriber. We would love to hear about your experience with it!<\/p>\n<p><em>Contact your BlueCat customer support manager or account executive or visit <a href=\"https:\/\/bluecatnetworks.com\/support\/\">BlueCat Support<\/a> today to learn how you can set up dynamic feeds in Edge.<\/em><\/p>\n<p> <a href=\"https:\/\/bluecatnetworks.com\/blog\/manifest-v3-doubts-try-a-dns-based-solution\/\">BlueCat Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google claims that the newest version of its Chrome extension<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[94],"tags":[95],"class_list":["post-1261","post","type-post","status-publish","format-standard","hentry","category-blog","tag-blog"],"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","chromenews-featured":"","chromenews-large":"","chromenews-medium":""},"author_info":{"display_name":"Blue Cat","author_link":"https:\/\/ddi.mohflo.net\/index.php\/author\/bluecat\/"},"category_info":"<a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","tag_info":"Blog","comment_count":"0","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/1261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/comments?post=1261"}],"version-history":[{"count":1,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/1261\/revisions"}],"predecessor-version":[{"id":1379,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/1261\/revisions\/1379"}],"wp:attachment":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/media?parent=1261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/categories?post=1261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/tags?post=1261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}