SSL/TLS, SSL, TLS   Secure Socket Layer, Transport Layer Security   안전 소켓 계층, 전송계층 보안

(2023-08-06)

TLS 터널, SSL 터널


1. SSL (Secure Socket Layer) 및 TLS (Transport Layer Security)전송계층 상에서 클라이언트,서버에 대한 인증데이터 암호화 수행
     - 클라이언트서버 양단 간 응용계층TCP 전송계층 사이에서,
     - 안전한 보안 채널을 형성해 주는 역할을 하는, 보안프로토콜

  ㅇ 주요 응용
     - HTTP (HTTPS), FTP (FTPS), TELNET, SMTP, SIP, POP, IMAP 등 에서 사용 가능
     - 주로, 웹 브라우저웹 서버 사이의 안전한 보안 채널을 제공하기 위해 많이 사용됨

  ㅇ 오픈 소스 구현 例) OpenSSL 


2. SSL/TLS 역사

  ㅇ 최초 제안 : 넷스케이프사
     - 버젼 : SSL v1.0 (1994.7), SSL v2.0 (1994.12), SSL v3.0 (1996.11)
     * SSL v3.0은 그 당시 사실상의  보안 표준이었음

  ㅇ SSL의 표준화 기여 => TLS 표준
     - SSL v3.0 을 참고로하여 RFC 2246(1999년)으로 표준화된 것이 TLS 임
     - 버젼 : TLS 1.0 (RFC 2246,1999) : SSL v3.1에 해당, 
              TLS 1.1 (RFC 4346, 2006), TLS 1.2 (RFC 5246, 2008), TLS 1.3 (RFC 8446, 2018)

  ※ 따라서, SSL 및 TLS는 본질적으로 같으며 버전이 다른 정도임


3. SSL/TLS의 특징클라이언트/서버 기반의 프로토콜
     - 클라이언트/서버 두 응용 상대방 간에, 연결 전 동적 협상에 의한 보안 연결 수립

  ㅇ 응용 프로그램(어플리케이션) 자체 구현 가능
     - 대부분의 다른 보안 프로토콜(EAP,IPsec 등)은 운영체제 등에 밀접하게 관련됨

  ㅇ 계층 위치
     - 응용계층전송계층 사이에 위치하나, 전송계층과 보다 밀접하게 동작 함
     - 소켓 지향적인 프로토콜

  ㅇ 운반용 프로토콜포트번호
     - 운반용 프로토콜 : TCP 또는 UDP
        . 한편, UDP 상에서도 가능한 버젼은, 
           .. DTLS (Datagram Transport Layer Security) RFC 6347(2012년)가 있음
     - 사용 포트 : 응용 마다 다름
        . HTTPS의 경우에, HTTP를 위한 SSL/TLS 보안 터널 형성을 위해, 포트번호 443 를 사용

  ㅇ 인증 구조  :  X.509
     - X.509에서 규정된 공개키 인증서 교환에 의해 상대방에 대한 인증 수행
 
  ㅇ 키 교환 방식  :  (협상 선택 가능)
     - Null, RSA 공개 키 교환, Anonymous Diffie-Hellman 키 교환, 
       Ephermeral Diffie-Hellman 키 교환, Fixed Diffie-Hellman 키 교환, Fortezza

  ㅇ 대칭키 암호화 방식  :  (협상 선택 가능)  
     - RC2 (40), RC4 (40), RC4 (128), DES, Triple DES, IDEA 등

  ㅇ 해쉬 알고리즘  :  (협상 선택 가능)
     - Null, MD5, SHA-1


4. SSL/TLS의 주요 기능

  ㅇ 상호 인증 
     - 공개키 인증서를 이용하여 서버,클라이언트의 상호 인증
     - 즉, 클라이언트/서버 두 응용 간에 상대방에 대한 인증

  ㅇ 메세지 인증 (메세지 무결성)
     - 메세지 인증 코드 HMAC에 의한 메세지 무결성 제공 (HMAC MD5, HMAC SHA-1 등)

  ㅇ 메세지 압축 
     - 디폴트는 Null (즉, 무 압축)
        . (압축 알고리즘은 미리 정해지지 않고 협상으로 지정 가능)

  ㅇ 암호화세션 키 생성(대칭 키 합의)을 위한 키 교환
     - RSA : 두 키(공개 키개인 키)가 하나의 수 체계를 형성 (서버 공개 키 사용)
     - Diffie-Hellman  : Diffie-Hellman 프로토콜을 기반으로 한 키 교환 방식

  ㅇ 생성된 공유 비밀키에 의해 암호화종단간 안전한 연결 통로 제공
     - 스트림 암호화 : 40, 128 비트RC4
     - 블록 암호화   : IDEA, 40,56 비트DES, 168 비트3DES5. SSL/TLS의 프로토콜 스택전송계층 TCP 위에서, `보안 소켓/보안 채널/터널링`을 구성
     
     - 응용계층에서 생성된 데이터에 대한 보안(인증,무결성,기밀성),압축 등의 서비스 제공

  ※ SSL/TLS의 상세 프로토콜 스택SSL/TLS 구성 프로토콜 참조
       
     - 크게, 상위 핸드세이크 관련 프로토콜과
       하위 레코드 프로토콜(단편화,압축,무결성,암호화,인증 기능 제공)들로 구성됨


6. SSL/TLS의 핸드세이크 단계

   ※ ☞ SSL/TLS 핸드세이크 참조
      - 초기 협상 단계 => 인증 단계 => 보안 채널 형성 => 상호 암호화 통신 시작

전송 레벨 보안
   1. SSL/TLS   2. SSL/TLS 구성 프로토콜   3. SSL/TLS 핸드세이크   4. HTTPS   5. SSH   6. SSH 구현  
Tunneling
   1. Tunneling 기술   2. L2TP   3. PPTP   4. IPSec   5. GRE   6. SSL/TLS   7. SSH  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"