BAD SKY.NET

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

A TLS 1.2 cipher suite for RSA certificates using ECDHE key exchange and ChaCha20-Poly1305 encryption.

TLS cipher suiteCode 0xcca8 (52392)recommended

What it is

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (code 0xCCA8) is a TLS 1.2 cipher suite from RFC 7905. It combines ephemeral elliptic curve Diffie-Hellman key exchange, an RSA server certificate and the ChaCha20-Poly1305 authenticated cipher, with SHA-256 for the PRF.

It is the RSA counterpart of TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256. A server with an RSA certificate that negotiates TLS 1.2 and wants ChaCha20 has to pick this suite, since the ECDSA variant needs an ECDSA certificate.

The suite provides forward secrecy and authenticated encryption, though the list of recommended TLS 1.2 suites in RFC 9325 names only the AES-GCM suites.

Like every TLS 1.2 suite, it is only used when the connection falls back to TLS 1.2. When both sides support TLS 1.3, the TLS_CHACHA20_POLY1305_SHA256 suite takes its place.

Who sends it

Chrome 153 (macOS) browser Sent at position 9
curl_cffi (impersonate chrome) Sent at position 9
curl-impersonate chrome116 Sent at position 9
curl-impersonate ff117 Sent at position 7
curl 8.7 (macOS) Sent at position 5
curl 7.88 (Debian 12) Sent at position 8
Python requests Sent at position 9
Python httpx Sent at position 9
Python httpx (HTTP/2) Sent at position 9
Go net/http Sent at position 6
Node.js fetch Sent at position 15
PHP Guzzle Sent at position 8

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

All measured clients send it, almost always right after the ECDSA ChaCha20 suite: 9th for Chrome, curl_cffi, Python requests and httpx, 8th for Debian curl and Guzzle, 7th for curl-impersonate ff117, 6th for Go net/http, 5th for macOS curl and 15th for Node.js fetch.

Check whether your client sends it

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

Run the TLS fingerprint test

References

Related