HTTP/1.1, 5 headers, Content-Length body: accept-encoding, user-agent, content-length, content-type, host
The HTTP clients at the sensors, by request shape
An Akin token is read, not looked up: its middle section lists which of 32 headers the client sent, so two tokens compare by counting the headers they differ by. Paste one from your own logs below. The shapes seen from the most addresses sit one header from each other, and the families are the tools behind several shapes at once.
596 fingerprints, 86 families, 63.4K source addresses, 4.5M requests, last 30 days
How it works and what it found, Library, CLI and spec and the API
Read a token
Paste two tokens separated by a space to see how many headers apart they are and which ones. Hover a cell for its header.
The most common shapes are one header from each other
Start from the shape seen from the most addresses in 30 days, then step to the largest shape exactly one header away, 5 times. The header that changes at each step is named; in the strips, the added header is the ink cell, a dropped one is outlined.
Families: one tool, several request shapes
A family is a shape plus every shape within one header of it that came from the same source addresses. In each row the strip is the token's header map; a dark cell is a header the family head does not send, an outlined cell one it does send and this shape dropped.
HTTP/1.1, 6 headers, Content-Length body: accept-encoding, accept, user-agent, content-length, content-type, host
HTTP/1.1, 2 headers, no body: connection, host
HTTP/1.1, 7 headers, Content-Length body: connection, accept-encoding, accept, user-agent, content-length, content-type, host
82 more families with two or more shapes
Shapes that stay constant while everything else rotates
Many user agents, one shape
The string changes; the request shape does not.
| token | seen as | user agents | addresses |
|---|---|---|---|
| b11cun050_0004003c_a47bb3dc | browser, /site.zip | 4,631 | 6 |
| b11cun060_0004003d_f55b17ef | browser, /?phpinfo=-1 | 4,604 | 6 |
| b11cun060_0004003d_8084a027 | Chrome, /_static/.env | 4,548 | 6 |
| b11cun040_00040013_608dab68 | Censys, /favicon.ico | 2,364 | 4.5K |
| b11cun050_00040017_976354f0 | WebKit, /favicon.ico | 2,135 | 1.3K |
Many TLS stacks, one shape
The same HTTP client behind different TLS libraries.
| token | seen as | TLS fingerprints | addresses |
|---|---|---|---|
| b11cun040_00040013_608dab68 | Censys, /favicon.ico | 39 | 4.5K |
| b11cun030_00040012_13ee3d34 | Palo Alto, / | 33 | 5.1K |
| b11cun050_00040017_6b90553b | WebKit, / | 29 | 887 |
| b11cun040_00040016_aa48e2c8 | Censys, / | 26 | 5.9K |
| b11cun030_00040014_54d07b6d | WebKit, / | 25 | 3.9K |
Many ports, one shape
Sweepers that keep one request shape across the port range.
| token | seen as | ports | addresses |
|---|---|---|---|
| b11cun040_00040013_608dab68 | Censys, /favicon.ico | 43,097 | 4.5K |
| b11cun010_00040000_c4b2c4aa | no UA, / | 33,042 | 928 |
| b11cun040_00040016_aa48e2c8 | Censys, / | 32,897 | 5.9K |
| b00cun000_00000000_334359b9 | no UA, * | 25,949 | 493 |
| b10cun020_00000014_0a8d7f11 | Palo Alto, / | 24,609 | 2.0K |