TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
A legacy TLS cipher suite with ECDHE key exchange and AES-128 in CBC mode with SHA-1, kept by Chrome for old servers.
What it is
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (code 0xC013) comes from the original elliptic curve TLS specification and is now described in RFC 8422. It uses ephemeral elliptic curve Diffie-Hellman with an RSA certificate, so it has forward secrecy, but protects records with AES-128 in CBC mode and HMAC-SHA1.
CBC with MAC-then-encrypt is the weak point. It was behind attacks such as Lucky Thirteen and padding oracles, and the integrity check uses SHA-1. RFC 9325 advises against CBC suites unless the encrypt_then_mac extension is negotiated, which changes the order of encryption and MAC.
Clients still offer it as a fallback for servers that predate AES-GCM. TLS 1.3 has no CBC suites at all.
For a server, disabling CBC suites in favor of AES-GCM and ChaCha20-Poly1305 suites usually costs nothing: any client that supports TLS 1.2 well also offers those, as every measured client does.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 9 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
Chrome, curl_cffi and curl-impersonate send it near the end of their lists, at position 10 to 12. Go net/http sends it 8th, Debian curl, macOS curl and Guzzle 23rd, and Node.js fetch 27th. Python requests and httpx do not send it at all in our measurements.
Its absence is therefore another quick signal of a Python client.
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_AES_128_CBC_SHA in the TLS details.
Run the TLS fingerprint test