{"id":20450075,"url":"https://github.com/ooni/blocking-fingerprints","last_synced_at":"2025-04-13T02:11:45.112Z","repository":{"id":50971810,"uuid":"520167838","full_name":"ooni/blocking-fingerprints","owner":"ooni","description":"Consolidate all the blocking fingerprints in one place","archived":false,"fork":false,"pushed_at":"2023-09-12T11:26:29.000Z","size":967,"stargazers_count":6,"open_issues_count":4,"forks_count":3,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-04-14T09:04:43.337Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ooni.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-08-01T15:37:36.000Z","updated_at":"2023-07-21T05:39:41.000Z","dependencies_parsed_at":"2023-01-29T00:16:09.784Z","dependency_job_id":"96379b9d-70e7-40e5-b40a-7e159445459f","html_url":"https://github.com/ooni/blocking-fingerprints","commit_stats":{"total_commits":49,"total_committers":6,"mean_commits":8.166666666666666,"dds":"0.22448979591836737","last_synced_commit":"2e097a33737cde980a69aaa1768722d20b288a21"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fblocking-fingerprints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fblocking-fingerprints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fblocking-fingerprints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fblocking-fingerprints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ooni","download_url":"https://codeload.github.com/ooni/blocking-fingerprints/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654089,"owners_count":21140236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T10:50:11.910Z","updated_at":"2025-04-13T02:11:45.095Z","avatar_url":"https://github.com/ooni.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blocking Fingerprints\n\nThe goal of this repo is to document all the known blocking fingerprints for\nuse in network measurement projects aimed at measuring internet censorship.\n\nThe sources of these fingerprints are:\n* [ooni/pipeline](https://github.com/ooni/pipeline/blob/master/af/fastpath/fastpath/utils.py)\n* [censoredplanet/censoredplanet-analysis](https://github.com/censoredplanet/censoredplanet-analysis/tree/master/pipeline/metadata/data)\n* [citizenlab/filtering-annotations](https://github.com/citizenlab/filtering-annotations)\n\nIn here you will find two CSV files for HTTP and DNS fingerprints respectively.\n\n## Schema\n\n* `name` is an identifier of this particular fingerprint. They are generally in the form of `org.fingerprint_id` (ex. `ooni_br_1`)\n* `location_found` indicates where the fingerprint can be found. If we are searching for it in the HTTP response body we will use the key `body`, while if we are looking for it inside of a header it will take the form `header.{header_name}` where `{header_name}` is the header field name in lowercase (ex. `header.x-app-url`). In the case of DNS fingerprints, this will have the value `dns`.\n* `pattern_type` indicates what sort of pattern matching should be used, it can be one of `full`, if it's a full strict match (i.e. `==`), `prefix` if we are matching against the prefix of the target value (i.e. `startswith`), `contains` if we are searching for the pattern substring inside of the target (i.e. `is in`), `regexp` if the pattern should be interpreted as a regular expression.\n* `pattern` is the value of the pattern used to match. See `pattern_type` for the possible types of patterns.\n* `scope`, we currently follow the same definition of scopes used by the citizenlab, which is, `nat` national level blockpage, `isp` ISP level blockpage, `prod` text pattern related to a middlebox product, `inst` text pattern related to a voluntary instition blockpage (school, office), `vbw` vague blocking word, `fp` fingerprint for false positives.\n* `confidence_no_fp`, taken also from citizenalb: how likely (by self-assessment) the signature is to cause a false positive. Shorter or more vague text patterns which may be likely to match against are given lower numbers.\n* `expected_countries`, a list of countries where we expect to see the blockpage fingerprints comma separated (ex. `IT, IR`).\n* `source`, this indicates where this fingerprint came from\n* `exp_url`, a link to an OONI Explorer measurement documenting this fingerprint\n* `notes`, additional freeform notes on the fingerprint\n* `other_names`, a list of other names identifying the fingerprint when it's present in multiple repositories\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fooni%2Fblocking-fingerprints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fooni%2Fblocking-fingerprints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fooni%2Fblocking-fingerprints/lists"}