Set up a framework to fully man-in-the-middle my own browsers’ networking and see what they’re up to beyond just looking at their DNS queries and encrypted tcp packets. We force the browser to trust our mitmproxy cacert so we can peek inside cleartext traffic and made it conveniently reproducible and extensible.

It has containers for official Firefox, its Debian version, and some other FF derivatives that market a focus on privacy or security. Might add a few more of those or do the chromium family later - if you read the thing and want more then please let us know what you want to see under the lens in a future update!

Tests were run against a basic protocol for each of them and results are aggregated at the end of the post.

Posting with ambition that this can trigger some follow-ups sharing derived or similar things. Maybe someone could make a viral blog post by doing some deeper tests and making their results digestible ;)


Cross-post. Original Thread @ https://discuss.tchncs.de/post/53845514

  • Scoopta
    link
    fedilink
    arrow-up
    3
    ·
    16 hours ago

    This is really cool, looking forward to seeing floorp and brave

    • ken@discuss.tchncs.de
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      13 hours ago

      Thanks! Adding Floorp should be straightforward if you feel like tackling it yourself as it’s “just another FF fork”. Adding a new browser consists of adding a new Containerfile for it. I guess Floorp might be most similar to Mozilla firefox out of the existing ones. PRs much appreciated for new browsers as well as any interesting queries to get more insight into data I can run on existing dumps and add to Report section.

      They have official PPA: https://ppa.floorp.app/

      For Brave got it running but didn’t yet figure out why it crashes as soon as I try to proceed with the onboarding. Judging by the probably unrelated error noise in the console, it might be trying something weird with a graphics driver or hardware sensor and not gracefully handling not having access to whatever it is 🤷 But didn’t even ldd or strace it properly yet so maybe just a missing library.

      There’s a lot that could be done but had to wrap up and publish somewhere.