BAD SKY.NET

rsa_pkcs1_sha1

rsa_pkcs1_sha1 is a legacy RSA signature scheme with SHA-1, deprecated for TLS. Only a few measured clients still offer it.

TLS signature algorithmCode 0x0201 (513)insecure

What it is

rsa_pkcs1_sha1 (code 0x0201) is RSA PKCS#1 v1.5 with SHA-1. In TLS 1.3, RFC 8446 lists it only as a legacy value for verifying old certificates, never for handshake signatures. RFC 9155 later deprecated SHA-1 signatures in TLS 1.2 as well.

SHA-1 is no longer collision resistant, which can be used to forge signatures in some settings; RFC 9155 gives this as the reason for deprecating it. Publicly trusted certificate authorities stopped issuing SHA-1 certificates years ago.

Clients that still list it do so for compatibility with old servers or private PKI that never migrated. A server should not rely on it.

Removing it from a server configuration is safe for modern visitors, since every client we recorded also offers SHA-256 based schemes.

Who sends it

Chrome 153 (macOS) browserNot recorded
curl_cffi (impersonate chrome) Not sent
curl-impersonate chrome116 Not sent
curl-impersonate ff117 Sent at position 11
curl 8.7 (macOS) Sent at position 10
curl 7.88 (Debian 12) Not sent
Python requests Not sent
Python httpx Not sent
Python httpx (HTTP/2) Not sent
Go net/http Sent at position 11
Node.js fetch Not sent
PHP Guzzle Not sent

Measured on 2026-10-25 against our own test server: sent by 3 of 11 clients. Position counts from 1 and ignores GREASE values.

Why it matters for fingerprinting

In our measurements only the Firefox profile of curl-impersonate, macOS curl and Go net/http offer it. Python requests, httpx, Node.js fetch, Guzzle, Debian curl, curl_cffi and curl-impersonate chrome116 do not. Our Chrome capture did not record signature algorithms.

Check whether your client sends it

Open the test from your browser, or call it from your script, and look for rsa_pkcs1_sha1 in the TLS details.

Run the TLS fingerprint test

References

Related