I'd rather not have a browser extension that sends everything I visit to some US servers - but I do like the idea behind this.
I'd rather not have a browser extension that sends everything I visit to some US servers - but I do like the idea behind this.
There's so much that can go wrong with that, especially if this stuff eventually shows up in some data leak.
Here's some examples:
1. URLs can contain sensitive data, which will tie your session to your person (facebook URLs etc)
2. This could create vulnerabilities in (for example) checkout flows that pass data via URLs
3. I'd rather not make the job of intelligence services easier than it already is
4. Sometimes I clear my browser history for a reason
Trying to find matches for URL hashes would be a much nicer approach, but you would need a database of hashed URLs for that, so it's not a trivial fix.
Look up the protocol that Google's SafeBrowsing[0] project uses. The short version is that your extension should check visited URLs against a locally-downloaded database of HN-posted URLs. For SafeBrowsing there's a bit more optimisation (e.g. hashing URLs & storing only hash prefixes to reduce the size of the database), but that's the short version.
This secures the end user's privacy.
Suppose I'm an evil overlord and someone in my organization has been tipping off the FBI about my upcoming operations. I'm pretty sure it is one of my work-at-home minions.
If I can obtain the hashes of the URLs that my minions have visited, I can look for a minion that has in their history the hash of https://tips.fbi.gov/ and now I've got a good suspect.
You'd have to have a lot more than just that hash, the log would at least have to include a static IP or something that you can isolate by window-of-opportunity, for instance all the other minions were at a ballgame and the timestamp indicates that that one minion that wasn't at the ballgame visited tips.fbi.gov right then from an IP not associated with a stadium hotspot.
Regardless, if you're going to leak stuff on 'evil overlord's organization you'd better make sure you don't do it from anything that can be associated with you, so not your laptop, not your IP, not your browser and certainly not with all kinds of weird plugins installed. Burner device and a location and time chosen so it could be anybody in 'the organization' leaking.
A reasonable hash is going to be 64 bytes or more to avoid collisions, the total DB would be a least a couple of 10's of megs.