# What Is TLS 1.0 (Transport Layer Security 1.0)?

> TLS 1.0 is the first version of Transport Layer Security, published in 1999 as RFC 2246 and formally deprecated in 2021 by RFC 8996.

Source: https://ssl.sh/glossary/tls-1-0/
Last updated: 2026-11-10

TLS 1.0 is the IETF successor to SSL 3.0, standardized in January 1999 as RFC 2246. Structurally it is very close to SSL 3.0 (its wire version number is 3.1), but it switched record integrity to HMAC and derives keys with a pseudo-random function built from MD5 and SHA-1.

## Why it matters
TLS 1.0 depends on designs that no longer meet current requirements. Its CBC mode uses predictable initialization vectors, which the [BEAST](https://ssl.sh/glossary/beast/) attack exploited in 2011; it cannot negotiate [AEAD](https://ssl.sh/glossary/aead/) ciphers such as AES-GCM; and its handshake relies on MD5 and SHA-1. Chrome 84, Edge 84 and Firefox 78 removed TLS 1.0 and 1.1 in mid-2020, and [RFC 8996](https://www.rfc-editor.org/rfc/rfc8996) formally deprecated both in March 2021. A server that offers only TLS 1.0 can no longer complete a handshake with a current browser, and most security scanners flag it.

## Example
Test whether a server still accepts TLS 1.0. OpenSSL 3.x refuses TLS 1.0 at its default security level, so the client must be lowered to level 0 for the test:

```bash
openssl s_client -connect example.com:443 -tls1 -cipher 'DEFAULT:@SECLEVEL=0'
```

If the handshake succeeds, TLS 1.0 is still enabled. In nginx, allow only current versions:

```nginx
ssl_protocols TLSv1.2 TLSv1.3;
```

## Common misconceptions
- **"Disabling TLS 1.0 will lock out many visitors."** Every mainstream browser already refuses it. Clients that still need it are usually very old operating systems or embedded devices, which you can identify in access logs first.
- **"TLS 1.0 is fine with a strong cipher suite."** The weaknesses are in the protocol itself (handshake hashes, no AEAD support). Cipher selection cannot fix them; upgrading to TLS 1.2 or 1.3 does.
- **"SSL 3.0 and TLS 1.0 are the same protocol."** They are distinct versions with different MAC and key-derivation designs, and SSL 3.0 was deprecated separately by RFC 7568.

## Related terms

- [TLS](https://ssl.sh/zh/glossary/tls/): TLS 是 IETF 制定的传输层安全协议，为 HTTPS 等网络连接提供加密、完整性保护和服务器身份认证，是 SSL 的继任者。
- [SSL 3.0](https://ssl.sh/zh/glossary/ssl-3-0/): SSL 3.0 是 Netscape 设计的安全套接层协议的最后一个版本，1996 年发布，2014 年被 POODLE 攻破，2015 年被 RFC 7568 废弃。
- [TLS 1.1](https://ssl.sh/zh/glossary/tls-1-1/): TLS 1.1 是 2006 年以 RFC 4346 发布的 TLS 第二个版本，主要为 CBC 加入显式 IV，2021 年与 TLS 1.0 一起被 RFC 8996 废弃。
- [TLS 1.2](https://ssl.sh/zh/glossary/tls-1-2/): TLS 1.2 是 2008 年由 RFC 5246 定义的 TLS 版本，引入了基于 SHA-256 的密钥派生和 AES-GCM 等 AEAD 加密算法，至今仍被广泛使用。
- [BEAST](https://ssl.sh/zh/glossary/beast/): BEAST 是 2011 年公布的攻击（CVE-2011-3389），利用 SSL 3.0 和 TLS 1.0 中 CBC 模式可预测的 IV，逐字节解密 Cookie 等秘密。
- [POODLE](https://ssl.sh/zh/glossary/poodle/): POODLE 是 2014 年公布的攻击（CVE-2014-3566），利用 SSL 3.0 不校验 CBC 填充的缺陷，从加密连接中逐字节还原 Cookie 等秘密。
- [降级攻击](https://ssl.sh/zh/glossary/downgrade-attack/): 降级攻击是指攻击者迫使客户端和服务器协商出比双方实际支持的更旧的协议版本或更弱的算法，从而利用其中的弱点。
