Skip to main content

HHHash library is calculate HHHash from HTTP servers.

Project description

HTTP Headers Hashing (HHHash)

HTTP Headers Hashing (HHHash) is a technique used to create a fingerprint of an HTTP server based on the headers it returns. HHHash employs one-way hashing to generate a hash value for the set of header keys returned by the server.

For more details about HHHash background, HTTP Headers Hashing (HHHash) or improving correlation of crawled content.

Calculation of the HHHash

To calculate the HHHash, we concatenate the list of headers returned by the HTTP server. This list is ordered according to the sequence in which the headers appear in the server's response. Each header value is separated with :.

The HHHash value is the SHA256 of the list.

HHHash format

hhh:1:20247663b5c63bf1291fe5350010dafb6d5e845e4c0daaf7dc9c0f646e947c29

prefix:version:SHA 256 value

Example

Calculating HHHash from a curl command

$ curl -s -D - https://www.circl.lu/ -o /dev/null  | awk 'NR != 1' | cut -f1 -d: | sed '/^[[:space:]]*$/d' | sed -z 's/\n/:/g' | sed 's/.$//' | sha256sum | cut -f1 -d " " | awk {'print "hhh:1:"$1'}

Output value

hhh:1:78f7ef0651bac1a5ea42ed9d22242ed8725f07815091032a34ab4e30d3c3cefc

Limitations

HHHash is an effective technique; however, its performance is heavily reliant on the characteristics of the HTTP client requests. Therefore, it is important to note that correlations between a set of hashes are typically established when using the same crawler or HTTP client parameters.

hhhash - Python Library

The hhhash package can be installed via a pip install hhhash or build with Poetry from this repository poetry build and poetry install.

Usage

In [1]: import hhhash

In [2]: hhhash.buildhash(url="https://www.misp-lea.org", debug=False)
Out[2]: 'hhh:1:adca8a87f2a537dbbf07ba6d8cba6db53fde257ae2da4dad6f3ee6b47080c53f'

In [3]: hhhash.buildhash(url="https://www.misp-project.org", debug=False)
Out[3]: 'hhh:1:adca8a87f2a537dbbf07ba6d8cba6db53fde257ae2da4dad6f3ee6b47080c53f'

In [4]: hhhash.buildhash(url="https://www.circl.lu", debug=False)
Out[4]: 'hhh:1:334d8ab68f9e935f3af7c4a91220612f980f2d9168324530c03d28c9429e1299'

In [5]:

Other libraries

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hhhash-0.3.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

hhhash-0.3-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file hhhash-0.3.tar.gz.

File metadata

  • Download URL: hhhash-0.3.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.15.0-76-generic

File hashes

Hashes for hhhash-0.3.tar.gz
Algorithm Hash digest
SHA256 e25b98f07f37fa0f5cbf4fac688d59d17da14a373cd84defa28f030633e04a78
MD5 4a9cabede7c7878b2d5a053eb1a8c434
BLAKE2b-256 5a9916cea48c22df9385a902ed48dc428191e31a4f788554a065b658e23b915e

See more details on using hashes here.

File details

Details for the file hhhash-0.3-py3-none-any.whl.

File metadata

  • Download URL: hhhash-0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.15.0-76-generic

File hashes

Hashes for hhhash-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9d739ac171f388374ff1ba80f585047059c8346a88e9d383197cf5176012329d
MD5 c6e02849338cb7763cc24c1693c15106
BLAKE2b-256 b0361f1f4fca5e0a9694bd549f01057f7ea4c29bc75b8e4c44ea7898a2feee83

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page