10 KiB
title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
| title | source_type | url | archive_url | status | confidence | tags | related_projects | related_branches | created | last_reviewed | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RFC 8996 — Deprecating TLS 1.0 and TLS 1.1 | official-doc | https://www.rfc-editor.org/rfc/rfc8996 | raw | high |
|
|
2026-05-27 | 2026-05-27 |
RFC 8996 — Deprecating TLS 1.0 and TLS 1.1
Layer:
raw/official-docs/— IETF RFC 8996 (Best Current Practice / BCP 195, 2021-03) 발췌. TLS 1.0 / TLS 1.1 / DTLS 1.0 의 formal deprecation. 모든 implementation 이 TLS 1.0/1.1 negotiate 를 MUST NOT 으로 강제하는 normative reference.
Parent / 활용 branch (필수)
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| raw/branch-notes/feature-keycloak-https-termination-caddy-nginx | D5 — Caddy/Nginx HTTPS termination 시 최소 TLS 1.2 만 허용, TLS 1.0/1.1 negotiation 차단의 표준 근거 |
컨텍스트
Keycloak 앞단의 Caddy/Nginx 가 HTTPS termination 을 담당할 때 default TLS 정책을 결정해야 함. "TLS 1.0/1.1 disable" 결정의 근거를 company tech blog 가 아닌 IETF BCP (Best Current Practice) 표준에서 직접 인용해야 함. RFC 7525 (BCP 195) 의 "SHOULD NOT" 을 RFC 8996 가 "MUST NOT" 으로 강화.
출처 / Source
- 원본 URL: https://www.rfc-editor.org/rfc/rfc8996
- 텍스트 버전: https://www.rfc-editor.org/rfc/rfc8996.txt
- 아카이브 URL: (미수집)
- 저자 / 조직: IETF — K. Moriarty (CIS), S. Farrell (Trinity College Dublin)
- 발행일: 2021-03 (RFC 8996 — Best Current Practice / BCP 195 update)
- 관련: RFC 7525 (BCP 195 — Recommendations for Secure Use of TLS/DTLS), RFC 5246 (TLS 1.2), RFC 8446 (TLS 1.3)
- 마지막 확인일: 2026-05-27 (curl + sed 로 본문 verbatim 발췌)
왜 저장했는지 / Why archived
Caddy/Nginx 의 min_version 1.2 설정 결정의 1차 normative 근거. 사내 컴플라이언스/감사 요청 시 "왜 TLS 1.0/1.1 을 막았는가" 의 답이 "Mozilla/OWASP blog" 가 아닌 "IETF BCP 195 (RFC 8996) MUST NOT" 이어야 함.
핵심 인용 / Key quotes (verbatim, 2026-05-27 capture via curl + sed -n)
[Abstract, line 14 (in original RFC; via curl)] "This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status."
[§1 Introduction, line 109] "They require the implementation of older cipher suites that are no longer desirable for cryptographic reasons, e.g., TLS 1.0 makes TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA mandatory to implement."
[§1 Introduction, line 121] "The integrity of the handshake depends on SHA-1 hash."
[§3 SHA-1 Usage Problematic in TLS 1.0 and TLS 1.1, line 265] "The integrity of both TLS 1.0 and TLS 1.1 depends on a running SHA-1 hash of the exchanged messages. This makes it possible to perform a downgrade attack on the handshake by an attacker able to perform 2^77 operations, well below the acceptable modern security margin."
[§4 Do Not Use TLS 1.0, line 284] "TLS 1.0 MUST NOT be used. Negotiation of TLS 1.0 from any version of TLS MUST NOT be permitted."
[§5 Do Not Use TLS 1.1, line 309] "TLS 1.1 MUST NOT be used. Negotiation of TLS 1.1 from any version of TLS MUST NOT be permitted."
[§6 Updates to RFC 7525, line 348] "* Implementations MUST NOT negotiate TLS version 1.0 [RFC2246]."
[§6 Updates to RFC 7525, line 354] "* Implementations MUST NOT negotiate TLS version 1.1 [RFC4346]."
Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| RFC8996-C1 | RFC 8996 는 TLS 1.0 (RFC 2246) 과 TLS 1.1 (RFC 4346) 을 formal 하게 deprecate, Historic status 로 이동 | [Abstract] "This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status." | official-standard |
TLS 1.0/1.1 의 IETF 표준 status (= Historic, 더이상 권장되지 않음) | 모든 vendor implementation 이 즉시 제거한다는 뜻은 아님 — 운영 환경에서는 deprecated 상태로 일부 라이브러리에 잔존 가능 |
| RFC8996-C2 | TLS 1.0/1.1 의 cipher suite 요구사항이 더이상 cryptographic 으로 desirable 하지 않음 (예: TLS 1.0 의 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA mandatory) |
[§1 Introduction] "They require the implementation of older cipher suites that are no longer desirable for cryptographic reasons, e.g., TLS 1.0 makes TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA mandatory to implement." | official-standard |
TLS 1.0/1.1 의 deprecation 이유 (technical rationale) | 특정 cipher 가 "broken" 되었다는 강한 진술은 아님 — no longer desirable 은 정책적 deprecation |
| RFC8996-C3 | TLS 1.0/1.1 의 handshake integrity 는 SHA-1 running hash 에 의존, 이는 2^77 operations 내 downgrade attack 가능 (modern security margin 이하) | [§3] "The integrity of both TLS 1.0 and TLS 1.1 depends on a running SHA-1 hash of the exchanged messages. This makes it possible to perform a downgrade attack on the handshake by an attacker able to perform 2^77 operations, well below the acceptable modern security margin." | official-standard |
TLS 1.0/1.1 deprecation 의 구체적 cryptographic 근거 (SHA-1 collision resistance 약화) | "2^77 operations 가 실시간 공격 가능" 의 의미는 아님 — 이론적 attack feasibility 의 lower bound. 실제 attacker resource 가 다를 수 있음 |
| RFC8996-C4 | TLS 1.0 MUST NOT be used. 어떤 TLS 버전에서도 TLS 1.0 negotiation MUST NOT permitted | [§4] "TLS 1.0 MUST NOT be used. Negotiation of TLS 1.0 from any version of TLS MUST NOT be permitted." | official-standard |
모든 TLS implementation (client / server / proxy / load balancer) | DTLS 1.0 의 동일 규정은 §6 가 별도로 다룸 (DTLS 1.0 MUST NOT negotiate) — 본 인용은 TLS only |
| RFC8996-C5 | TLS 1.1 MUST NOT be used. 어떤 TLS 버전에서도 TLS 1.1 negotiation MUST NOT permitted | [§5] "TLS 1.1 MUST NOT be used. Negotiation of TLS 1.1 from any version of TLS MUST NOT be permitted." | official-standard |
모든 TLS implementation | TLS 1.2 가 보안적으로 충분하다는 뜻은 아님 — 본 RFC 는 1.0/1.1 deprecation 만, TLS 1.3 권장은 별도 RFC 8446 |
| RFC8996-C6 | RFC 8996 는 RFC 7525 (BCP 195) §3.1.1 의 "SHOULD NOT" 을 "MUST NOT" 으로 강화: Implementations MUST NOT negotiate TLS 1.0/1.1 | [§6] "* Implementations MUST NOT negotiate TLS version 1.0 [RFC2246]." + "* Implementations MUST NOT negotiate TLS version 1.1 [RFC4346]." | official-standard |
BCP 195 를 따르는 TLS implementation 의 normative obligation 변화 | BCP 195 의 다른 권고 (cipher suite 선택, key length 등) 까지 본 RFC 가 모두 다룬다는 뜻은 아님 — §6 은 1.0/1.1 deprecation 부분만 |
Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
RFC8996-C1~C2: TLS 1.0/1.1 의 IETF 표준 status (Historic) + deprecation 이유 (older cipher suites)RFC8996-C3: SHA-1 dependency 의 구체적 cryptographic 위험RFC8996-C4~C5: TLS 1.0/1.1 의 MUST NOT use + MUST NOT negotiate (양방향)RFC8996-C6: BCP 195 의 강화 (SHOULD NOT → MUST NOT)
- 이 자료가 증명하지 않는 것:
- TLS 1.2 vs TLS 1.3 의 우선순위 (어떤 것을 default 로 강제할지) — 본 RFC 는 1.0/1.1 deprecation 만, TLS 1.3 권장은 RFC 8446 / Mozilla SSL Config Generator 별도 참조
- 특정 cipher suite (예: AES-256-GCM, ChaCha20-Poly1305) 의 권고 — RFC 7525 / Mozilla intermediate config 별도
- Caddy 의
default_sni/protocols tls1.2 tls1.3설정 syntax — Caddy vendor doc 별도 검증 - Nginx 의
ssl_protocols TLSv1.2 TLSv1.3;설정 syntax — Nginx vendor doc 별도 검증 - Keycloak 의 underlying JVM (Wildfly/Quarkus) 이 TLS 1.0/1.1 negotiation 을 default 로 disable 하는지 — Keycloak/JDK vendor 별도 검증
- DTLS 1.0 deprecation 은 §6 끝부분에서 다뤄지나 본 raw 에 별도 인용 없음 (필요시 추가 발췌)
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- Caddy v2 의 default TLS policy (Caddy 는 default 로 TLS 1.2+ 만 허용하는지 vendor doc 확인)
- Nginx
ssl_protocols명시 설정 +ssl_prefer_server_ciphers on+ssl_ciphers(Mozilla intermediate) 통합 - 사내 client (Java HttpClient, Python
requests, JSfetch) 중 TLS 1.2 미만으로 fallback 가능한지 (JDK 8u261 이전 default TLS 1.2 미강제 등) - 외부 통합 서비스 (legacy SOAP 등) 가 TLS 1.0/1.1 만 지원하는 경우 별도 처리 (mTLS bridge / vendor 업데이트 요청)
메모 / Notes
- WebFetch 가 §4/§5 의 line number 를 정확히 반환하나 RFC 8996 의 §3 = "SHA-1 Usage", §4 = "Do Not Use TLS 1.0", §5 = "Do Not Use TLS 1.1" 임을 확인 (Parent 표의 "§3-§4" 표기는 §4-§5 로 정정 필요 — branch-notes 의 D5 reference 에서 별도 정정 권고).
- §6 의 RFC 7525 update 가 BCP 195 의 normative level 을 SHOULD NOT → MUST NOT 으로 강화한 것이 핵심 운영 함의 — 단순 "권고" 가 아니라 "표준 의무" 로 격상.
- DTLS 1.0 deprecation 은 별도 발췌 후보 (DTLS 사용 시 — WebRTC / IoT 등).
- 운영적 함의: 기존 TLS 1.0/1.1 client 와 통신 단절. RFC 8996 §7 Operational Considerations 가 "knowledge of those risks should be used along with any potential mitigating factors" 라고 명시. 본 raw 에 별도 인용 없음.
Related / 관련
- 같은 주제 다른 official-doc:
- RFC 7525 / BCP 195 (Recommendations for Secure Use of TLS/DTLS — RFC 8996 가 update)
- RFC 8446 (TLS 1.3) — TLS 1.3 권장의 별도 표준
- Mozilla Server Side TLS Config Generator (operational guidance —
engineering-blogstrength, RFC 8996 와 corroborate 필요)
- 인용하는 branch:
- 인용하는 project:
- 인용한 wiki 요약: (미작성)