본문 바로가기
개발/Linux

gsjava Web 통신 프로토콜 : HTTP vs HTTPS(SSL/TLS v1.3)

by 철권 2022. 8. 26.
728x90

HTTP란?

  • HTTP(HyperText Transfer Protocol)는 인터넷상에서 정보를 주고받을 수 있는 프로토콜
  • 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response)을 위한 프로토콜
  • 주로 일반 텍스트로 이루어진 HTML 문서를 주고받는 데에 사용됨
  •  

HTTPS란?

  • HTTPS(HyperText Transfer Protocol over Secure Socket Layer)는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전
  • HTTPS는 소켓 통신에서 일반 텍스트를 이용하며, 따라서 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호함
  •  

SSL/TLS는 네트워크 통신 시 데이터 암호화를 제공하는 프로토콜입니다. 

SSL이란?

  • SSL은 (Secure Socket Layer: 보안 소켓 계층)의 약자로 웹서버와 웹 브라우저 간의 암호화 통신을 위하여 응용계층과 TCP/IP 계층에서 동작하는 프로토콜이며, Netscape사에서 만들었으며 ISO표준 정식명칭은 TLS(Transport Layer Security)이다.
  • 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜
  • 전자상거래 등의 보안을 위해 넷스케이프(netscape)에서 처음 만듬
  • 1) 인증 : 상대 사이트에 대한 신뢰성 인증
    2) 암호화 : 다양한 암호화 알고리즘을 이용하여 메시지 암호화
    3) 무결성 : 송/수신 메시지에 대한 Checksum기능, 변조 방지
    4) 지원 프로토콜 : HTTPS(port:443), TELNETS(port:992), POP3S(port:995), SFTP(port:22)

TLS란?

  • SSL이후에 이것을 표준화하여 만들어진것이 TLS임
  • SSL/TLS로 함께 묶여 분류 됨
  • 최초 공개된 SSL 2.0버전부터 SSL 3.0, TLS 1.0, TLS 1.1 TLS 1.2 버전을 거쳐, 오랜 기간 개발 단계에 머물러 왔던 TLS 1.3 버전이 올해 8 10일 정식으로 승인되었습니다. TLS 1.3은 보다 강화된 보안과 빨라진 성능을 특징으로 하고 있습니다.
  •  
새로운 TLS 1.3의 주요 특징

TLS 1.3은 이전 버전부터 유지되어 온 구조적인 취약점을 없애기 위해 새로 설계되었으며, 보다 강화된 보안성과 프라이버시, 개선된 성능을 제공합니다.

1.    보안성 강화
    Handshake 단계에서 인증서를 암호화하고, 무결성을 검증함으로써 중간자 공격을 통해 협상 내용을 취약하게 변경하는 다운그레이드 공격 방어가 가능해졌습니다.
    불필요하고 안전하지 않은 암호화 알고리즘을 제거하였습니다.

2.    성능 강화
    TLS 1.2 이하 버전에서는 Handshake 과정에서 2-RTT(Round Trip Time) 거쳐야 했으나, TLS 1.3에서는 이 과정을 단순화시켜 1(1-RTT)로 줄이면서 성능을 향상시켰습니다.

3.    프라이버시 강화
   TLS 1.3에서는 SNI 정보를 암호화하는 ESNI에 대한 드래프트가 나와있습니다. 자세한 내용은 다음 ‘SNI와 프라이버시 파트에서 상세히 알아보겠습니다.

SNI와 프라이버시

SNI(Server Name Indication) TLS 확장 표준의 하나로, 동일한 IP와 포트를 사용하는 하나의 서버에서 여러 도메인을 가진 사이트를 운영할 경우 도메인 별로 각각의 인증서를 사용할 수 있게 해 주는 필드입니다.

1.    SNI를 통한 접속정보 감청 우려

SNI 정보가 암호화되지 않은 경우, SNI 필드를 확인하면 사용자가 어느 사이트에 접근하는지 감청할 수 있습니다. 이는 국가방화벽을 통한 검열, ISP의 특정 웹사이트 필터링 등에 이용될 수 있기 때문에 프라이버시 침해 이슈가 있습니다.

2.    TLS 1.3 ESNI(Encrypted SNI)지원

TLS 1.3에서는 SNI 필드를 암호화하는 ESNI에 대한 드래프트가 나와있는 상태입니다. ESNI를 적용하면 접속지 정보가 암호화되므로, 국가 검열 등의 이슈에서 자유로워 질 수 있으며 사용자에게는 더 큰 프라이버시를 제공하게 될 것입니다.
 
그러나 아직 ESNI 표준이 승인되지 않았으며, 초기 단계라 실제 적용까지는 시간이 걸릴 것으로 예상됩니다. 현재 Cloudflare Firefox Nightly에서 ESNI를 지원하고 있습니다.

728x90
반응형

'개발 > Linux' 카테고리의 다른 글

우분투 snmp  (0) 2022.08.26
HTTP란? HTTPS란? SSL이란? TLS란?  (0) 2022.08.26
리눅스 커널 버전 확인 cat /proc/version  (0) 2022.08.25
ssh로그인 배너 설정  (0) 2022.08.25
우분투 네트워크 수동 설정  (0) 2022.08.23