{"id":20209220,"url":"https://github.com/refraction-networking/tls-fingerprint","last_synced_at":"2025-08-04T16:44:50.523Z","repository":{"id":62387981,"uuid":"560198010","full_name":"refraction-networking/tls-fingerprint","owner":"refraction-networking","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-10T17:16:30.000Z","size":10924,"stargazers_count":22,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-03T10:22:06.301Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/refraction-networking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-01T00:15:19.000Z","updated_at":"2025-02-08T14:17:18.000Z","dependencies_parsed_at":"2023-12-14T03:42:50.427Z","dependency_job_id":"b63f0fba-75b8-432a-92cc-a2b37b9eb69a","html_url":"https://github.com/refraction-networking/tls-fingerprint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/refraction-networking/tls-fingerprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refraction-networking%2Ftls-fingerprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refraction-networking%2Ftls-fingerprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refraction-networking%2Ftls-fingerprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refraction-networking%2Ftls-fingerprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/refraction-networking","download_url":"https://codeload.github.com/refraction-networking/tls-fingerprint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refraction-networking%2Ftls-fingerprint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268724564,"owners_count":24296881,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-14T05:39:17.287Z","updated_at":"2025-08-04T16:44:50.436Z","avatar_url":"https://github.com/refraction-networking.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tls-fingerprint\n\nThis tool observes TLS Client Hello messages, and creates unique fingerprints to track the frequency and distribution of messages seen. When run on a sufficient traffic source, this tool allows researchers to learn which client hello messages are most popular.\n\nKnowing statistics of common ClientHello messages can help inform design decisions in relevant software, such as webservers. In addition, this also enables censorship circumvention tools to be able to keep track of which TLS client implementations should be mimicked, and if their tool has a unique fingerprint\n\n## Installing\n\n```\ngit clone --recurse-submodules https://github.com/sergeyfrolov/tls-fingerprint/\ncd tls-fingerprint/PF_RING\nmake\ncd ../\nmake\n```\n\n## Running\n\n### Lite version\n\n * Writes to stdout.\n * Does not require PF_RING.\n * Useful to get fingerprint ID of your application to compare it against our db later.\n\nSimply run `./rust-src/target/release/tls_fingerprint $INTERFACE`\n\n### PF_RING version\n\n * Writes to PostgreSQL.\n * Requires PF_RING.\n * Used to collect a database of fingerprint on a high-bandwidth taps. Was tested on 10Gbps links.\n\nYou'll need to run `zbalance_ipc` from PF\\_RING on the interface you want to capture. (See\nPF\\_RING for how to configure and set up using zero-copy PF\\_RING and zbalance clusters)\nThen, you can run `./tls-fingerprint -c $CLUSTER_NUM -n $CORES` for the cluster number and\nnumber of cores to run on (parameters also passed to `zbalance_ipc`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefraction-networking%2Ftls-fingerprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frefraction-networking%2Ftls-fingerprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefraction-networking%2Ftls-fingerprint/lists"}