TLS 프로토콜 버전의 이해와 분석
TLS(Transport Layer Security) 프로토콜은 네트워크 통신에서 데이터의 기밀성과 무결성을 보장하는 핵심 규격입니다. TLS 스캔 결과나 핸드셰이크 요약 정보를 분석할 때 가장 먼저 확인해야 하는 요소는 프로토콜 버전입니다. 프로토콜 버전은 연결의 전반적인 보안 수준을 결정하는 기초가 됩니다.
본 검사기는 입력된 텍스트 내에서 프로토콜 버전을 식별하고, 해당 버전이 연결 과정에서 어떤 역할을 수행했는지 분류합니다. 식별된 프로토콜 버전은 다음과 같은 세 가지 역할로 구분되어 표시됩니다:
- 협상됨: 클라이언트와 서버 간의 합의를 통해 최종적으로 선택되어 실제 통신에 사용된 프로토콜 버전입니다.
- 제공: 클라이언트가 지원 가능하다고 서버에 제시한 프로토콜 버전 목록입니다.
- 관찰됨: 핸드셰이크 과정 또는 네트워크 트래픽 상에서 감지된 프로토콜 버전입니다.
만약 입력된 텍스트 내에서 유효한 프로토콜 버전을 감지하지 못하면, 결과 화면에 "제공된 텍스트에서 프로토콜 버전을 찾을 수 없습니다."라는 메시지가 출력됩니다.
TLS 암호 제품군의 구조와 식별 방식
TLS 암호 제품군(Cipher Suite)은 연결을 안전하게 보호하기 위해 사용되는 암호화 알고리즘들의 조합입니다. 일반적으로 암호 제품군은 키 교환, 인증, 대칭 암호화, 그리고 메시지 인증(MAC) 알고리즘을 명시합니다.
본 도구는 사용자가 입력한 텍스트를 정적 분석하여 암호 제품군을 식별합니다. 분석 가능한 형식은 다음과 같습니다:
- IANA 표준 이름: 인터넷 할당 번호 기관(IANA)에 등록된 표준 명칭입니다.
- OpenSSL 별칭: OpenSSL 라이브러리에서 사용하는 고유한 암호 제품군 이름입니다.
- 16진수 제품군 ID: 암호 제품군을 나타내는 고유한 16진수 바이트 값입니다.
텍스트 분석 결과 암호 제품군이 발견되지 않는 경우 "제공된 텍스트에서 암호 제품군을 찾을 수 없습니다."라는 메시지가 표시됩니다.
암호 제품군 평가 기준 및 보안 등급
검사기는 식별된 암호 제품군의 안전성을 분석하여 네 가지 등급 중 하나로 평가합니다:
- 현대: 현재 보안 표준을 충족하며 강력한 암호화를 제공하는 안전한 제품군입니다.
- 검토: 특정 환경이나 조건에 따라 추가적인 확인이 필요한 제품군입니다.
- 더 이상 사용되지 않음: 알려진 취약점이 있거나 보안 강도가 낮아 사용을 권장하지 않는 제품군입니다.
- 알 수 없음: 도구의 내장 데이터베이스에 존재하지 않는 제품군으로, 이 경우 "이 스위트는 내장된 공통 스위트 맵에 없습니다. 현재 IANA 레지스트리 또는 스캐너 설명서를 확인하세요."라는 안내가 제공됩니다.
레거시 및 취약한 알고리즘 탐지 규칙
도구는 입력된 보안 매개변수에서 취약하거나 더 이상 사용되지 않는 알고리즘을 감지하면 다음과 같은 구체적인 진단 결과를 제시합니다:
- RC4: "RC4는 더 이상 사용되지 않으며 협상되어서는 안 됩니다."
- DES: "DES는 일반 TLS 사용에는 안전하지 않습니다."
- 3DES: "3DES는 블록 크기가 작으며 TLS에서는 더 이상 사용되지 않습니다."
- NULL: "NULL 암호화는 기밀성을 제공하지 않습니다."
- EXPORT: "EXPORT 제품군은 의도적으로 약한 암호화를 사용하므로 더 이상 사용되지 않습니다."
- 익명 제품군: "익명 제품군은 피어를 인증하지 않으며 가로채기에 취약합니다."
- MD5: "MD5는 일반 TLS 사용에는 안전하지 않습니다."
- SHA-1: "이 제품군은 일반 TLS 사용에 더 이상 사용되지 않는 SHA-1를 사용합니다."
- CBC 제품군: "CBC 제품군은 레거시입니다. AES-GCM 또는 ChaCha20-Poly1305와 같은 AEAD 제품군을 선호합니다."
- 정적 RSA: "정적 RSA 키 교환은 순방향 비밀성을 제공하지 않습니다."
- CCM-8: "CCM-8는 더 짧은 인증 태그를 사용하며 프로토콜별 검토가 필요합니다."
TLS 1.3의 키 교환 및 인증 메커니즘
TLS 1.3 프로토콜은 이전 버전과 비교하여 암호 제품군의 구조가 근본적으로 다릅니다. TLS 1.3 암호 제품군은 오직 레코드 암호화와 핸드셰이크 해시 알고리즘만을 정의합니다.
따라서 TLS 1.3 암호 제품군을 분석할 때는 다음과 같은 특성을 염두에 두어야 합니다:
- 별도 협상: "TLS 1.3는 암호 제품군과 별도로 키 교환 및 인증을 협상합니다."
- 추론 불가능: 암호 제품군 이름 자체에 키 교환(예: ECDHE)이나 인증(예: RSA) 방식이 명시되지 않으므로, 제품군 이름만으로는 이를 파악할 수 없습니다.
도구의 작동 한계와 정적 분석의 특성
본 검사기는 사용자가 제공한 텍스트를 기반으로 동작하는 정적 분석 도구입니다. 실시간 네트워크 스캔과 비교하여 다음과 같은 기술적 한계와 범위의 차이가 있습니다:
- 실시간 연결 없음: 도구는 대상 호스트에 직접 네트워크 연결을 시도하지 않으며, 인증서 유효성을 검증하거나 실제 키 크기를 측정하지 않습니다.
- 다운그레이드 테스트 불가: 클라이언트와 서버 간의 프로토콜 다운그레이드 유도 공격에 대한 취약 여부를 직접 테스트할 수 없습니다.
- 전체 목록 파악 불가: 서버가 지원하는 전체 암호 제품군 목록을 능동적으로 조회하지 못하며, 오직 제공된 텍스트에 포함된 정보만을 설명합니다.
- 원시 데이터 디코딩 불가: 패킷 캡처 파일(.pcap)이나 원시 바이너리 바이트 데이터는 분석할 수 없으며, 텍스트 형태의 스캔 결과나 핸드셰이크 필드만 처리할 수 있습니다.
데이터 처리 및 개인정보 보호
본 도구를 사용할 때 입력하는 모든 TLS 스캔 결과 및 핸드셰이크 요약 정보는 외부 서버로 전송되지 않습니다. 모든 데이터 분석 및 처리 과정은 사용자의 웹 브라우저 내부에서 로컬로 수행됩니다. 입력한 텍스트는 업로드되거나 저장되지 않으므로 안심하고 분석을 진행할 수 있습니다.
자주 묻는 질문 (FAQ)
Q: 어떤 TLS 출력 형식을 붙여넣을 수 있나요?
A: 일반적인 TLS 스캐너, openssl s_client, 패킷 분석 요약 또는 짧은 ClientHello 또는 ServerHello 메모의 텍스트를 붙여넣습니다. 검사기는 일반적인 IANA 이름, OpenSSL 별칭 및 여러 일반적인 16진수 제품군 ID를 인식합니다. 원시 패킷 바이트를 디코딩하지 않습니다.
Q: TLS 1.3 암호화 제품군에 RSA 또는 ECDHE가 표시되지 않는 이유는 무엇입니까?
A: TLS 1.3 암호 그룹 이름은 레코드 암호화 및 핸드셰이크 해시를 설명합니다. 키 교환과 인증은 별도로 협상되므로 제품군 이름만으로는 추론할 수 없습니다.
Q: 이 결과는 서버가 안전하다는 것을 증명하는가?
A: 아니요. 붙여넣은 텍스트만 설명합니다. 호스트에 연결하지 않고, 인증서를 확인하고, 키 크기를 측정하고, 다운그레이드 동작을 테스트하거나, 서버가 허용하는 모든 제품군을 표시하지 않습니다.
Q: 입력할 수 있는 텍스트의 크기에 제한이 있습니까?
A: 입력하는 텍스트는 200,000자 미만이어야 합니다. 입력값이 비어 있거나 이 제한을 초과하는 경우, 또는 인식 가능한 TLS 정보가 없는 경우에는 각각 해당하는 오류 메시지가 화면에 표시됩니다.