Cipher suite · 0x00,0x00
TLS_NULL_WITH_NULL_NULL
TLS_NULL_WITH_NULL_NULL (0x00,0x00) is a cipher suite for SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2: NULL key exchange, NULL authentication, NULL encryption and NULL message authentication. ssl.sh rates it Insecure.
Details
- IANA name
TLS_NULL_WITH_NULL_NULL- Hex code
0x00,0x00(0)- OpenSSL
- Not available in OpenSSL 3.5
- GnuTLS
- Not implemented in GnuTLS
- Key exchange
- NULL
- Authentication
- NULL
- Encryption
- NULL
- MAC
- NULL
- TLS versions
- SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2
- IANA "Recommended"
- N — not evaluated or not recommended · DTLS-OK: Y
- References
- RFC 5246
What each component means
A cipher suite names the algorithms a client and server agree on in one handshake. TLS_NULL_WITH_NULL_NULL combines no key exchange, no encryption and no MAC. Each part is explained below with its known weaknesses; for the bigger picture see how cipher suites work.
TLS_NULL_WITH_NULL_NULL is not a usable suite: it describes a connection before its first handshake completes, with no key exchange, no encryption and no MAC. RFC 5246 (2008) says it MUST NOT be negotiated because it gives no more protection than an unsecured connection.
Why this rating
ssl.sh rating: Insecure. The reasons:
- No encryption (NULL cipher): traffic is sent in clear text.
Which TLS libraries support it
Support for TLS_NULL_WITH_NULL_NULL as read from each library's own source code or official documentation on 2026-11-10. “Enabled by default” means the library negotiates it with no configuration; “off by default” means it is implemented but has to be switched on.
| Library | Status | Details |
|---|---|---|
| OpenSSL 3.5 | Not supported | |
| GnuTLS | Not supported | |
| BoringSSL | Not supported | |
| Go crypto/tls | Not supported | |
| NSS 3.133 | Not supported | |
| Firefox | Not supported | |
| Java 21 (SunJSSE) | Not supported | |
| Windows Schannel (Windows 11 / Server 2022) | Not supported | |
| rustls 0.23.46 | Not supported |
None of the 9 libraries tracked here enables it by default. None of them implements it.
NSS shows the library's own defaults; Firefox switches every NSS suite off at start-up and re-enables only those with a security.ssl3.* or security.tls13.* preference. Java defaults are derived from the jdk.tls.disabledAlgorithms value Oracle documents for JDK 21, which later updates may extend. The OpenSSL and GnuTLS rows only show whether the suite is implemented.
History and standards status
TLS_NULL_WITH_NULL_NULL (0x00,0x00) is registered in the IANA TLS Cipher Suites registry with RFC 5246, “The Transport Layer Security (TLS) Protocol Version 1.2” (August 2008, Standards Track) as its specification. RFC 5246 has since been obsoleted by RFC 8446 (2018) and RFC 9846 (2026). RFC 9325 (2022), part of BCP 195, says implementations MUST NOT negotiate suites with NULL encryption. The registry marks it N, which per RFC 8447 (2018) means it either hasn't been through the IETF consensus process, has limited applicability or is meant only for specific use cases, not necessarily that it is flawed.
Enable or disable it in Nginx and Apache
OpenSSL 3.5 doesn't implement this suite, so stock Nginx and Apache httpd builds can't offer it and you don't need to disable it.
How to test whether a server accepts it
OpenSSL 3.5 cannot offer TLS_NULL_WITH_NULL_NULL, so openssl s_client can't test it directly; use a scanner that implements the suite itself.
To decode a name or hex code, use the cipher suite lookup; the SSL checker shows which protocol versions a live server accepts and the cipher suite it negotiates.
FAQ
Is TLS_NULL_WITH_NULL_NULL secure?
No. ssl.sh rates it insecure. No encryption (NULL cipher): traffic is sent in clear text. RFC 9325 (2022), part of BCP 195, says implementations MUST NOT negotiate suites with NULL encryption.
Can TLS_NULL_WITH_NULL_NULL be used with TLS 1.3?
No. TLS 1.3 has its own suites that name only the AEAD and the hash, and TLS 1.2 suites can't be used in a TLS 1.3 handshake. TLS_NULL_WITH_NULL_NULL works with SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2. The closest TLS 1.3 suite is TLS_AES_128_GCM_SHA256, which TLS 1.3 combines with a separately negotiated key exchange such as X25519.
How do I disable TLS_NULL_WITH_NULL_NULL in Nginx or Apache?
There is nothing to disable: OpenSSL 3.5, which Nginx and Apache httpd normally use, does not implement TLS_NULL_WITH_NULL_NULL, so they cannot negotiate it.
Which clients and libraries still support TLS_NULL_WITH_NULL_NULL?
Not supported: OpenSSL 3.5, GnuTLS, BoringSSL, Go crypto/tls, NSS 3.133, Firefox, Java 21 (SunJSSE), Windows Schannel (Windows 11 / Server 2022) and rustls 0.23.46.
Better alternatives
Sources
- IANA — TLS Cipher Suites registry
- OpenSSL 3.5 — openssl-ciphers(1)
- GnuTLS — lib/algorithms/ciphersuites.c
- BoringSSL — ssl/ssl_cipher.cc (main) (2026-11-10)
- Go — src/crypto/tls/cipher_suites.go (master) (2026-11-10)
- Go — src/crypto/tls/defaults.go (master) (2026-11-10)
- NSS — lib/ssl/ssl3con.c (as vendored in Firefox) (2026-11-10)
- NSS — TAG-INFO (2026-11-10)
- Firefox — security/manager/ssl/nsNSSComponent.cpp (2026-11-10)
- Firefox — modules/libpref/init/StaticPrefList.yaml (2026-11-10)
- Oracle — JDK 21 Providers Documentation: SunJSSE Cipher Suites (2026-11-10)
- Oracle — JDK 21 JSSE Reference Guide: jdk.tls.disabledAlgorithms (2026-11-10)
- Microsoft Learn — TLS Cipher Suites in Windows 11 (2026-11-10)
- Microsoft Learn — TLS Cipher Suites in Windows Server 2022 (2026-11-10)
- docs.rs — rustls 0.23.46 crypto::aws_lc_rs (default provider) (2026-11-10)
- RFC Editor — RFC index