signature_algorithms
signature_algorithms lists the signature schemes a client can verify, such as ECDSA, RSA-PSS and Ed25519.
What it is
signature_algorithms (extension 13) tells the server which signature schemes the client accepts. In TLS 1.3, defined in RFC 8446, each entry names a full scheme such as ecdsa_secp256r1_sha256 or rsa_pss_rsae_sha256. The server signs its CertificateVerify message with one of them, and its certificate chain should use them as well.
TLS 1.2 introduced the extension in RFC 5246 with separate hash and signature fields. TLS 1.3 kept the same code numbers but redefined them as complete schemes. A separate extension, signature_algorithms_cert, can list different schemes for certificates; none of our measured clients send it.
The extension is required in TLS 1.3 when the server authenticates with a certificate, so every modern client sends it.
If the server key cannot sign with any listed scheme, the handshake fails; for the certificate chain itself the server may still send a fallback chain.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 12 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
Every measured client sends it. The scheme list is not part of JA3, but JA4 includes it, in the order sent, in the hash of its third part, so two clients with the same ciphers and extensions can still differ in JA4. See the signature algorithms hub for the individual schemes.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for signature_algorithms in the TLS details.
Run the TLS fingerprint test