본문 바로가기

Network, Security

SSL(TLS), HTTPS 란?

SSL(TLS)

TLS(Transport Layer Security)는 전송 계층 보안으로 기존의 SSL(Secure Socket Layer)가 표준화 된 용어이다. 해당 보안 통신은 TCP/IP를 사용할 때 적용되며 전송계층 보안인 만큼 종단간(End to End)의 보안 통신을 지원한다. 암호화를 통해 기밀성을 보장하며 인증서를 통해 무결성을 보장한다.

네트워크 상에서 SSL을 적용하지 않고 데이터를 전송하면 암호화되지 않은 데이터가 전송될 것이다. 이렇게 되면 스누핑(Snooping), 스니핑(Sniffing)의 위협에 노출될 수 있다. 이를 방지하기 위해 상호간 정당한 사용자인지 인증서를 통해 검증하고 서로 약속한 암호화 알고리즘을 통해 키를 교환 후 암호화 통신을 이어간다.

 

HTTPS(HyperText Tranfer Protocol Secure socket layer)

HTTPS는 기존의 HTTP에 SSL이 적용된 것이다. 기본 포트는 TCP 443을 사용한다. 먼저 HTTP는 주소창에서도 자주 볼 수 있듯이 웹에서 사용하는 전송 프로토콜이다. 정확히는 HTML 같은 하이퍼 텍스트를 전송하기 위한 통신 규약으로 이러한 마크업 언어는 웹 브라우저가 읽고 해석해서 보여준다. HTML에 CSS, JavaScript 등 작업을 통해 살을 붙여주면 이 또한 웹 브라우저에서 해석을 해주며 우리는 웹 서버에 제공하는 웹 문서들을 읽어서 웹 브라우저를 통해 보는 것이다. 즉, HTML 페이지가 통신 중 우리의 브라우저로 도착하여 보여준다는 것인데 이때, 네트워크를 통해 해당 페이지가 이동한다. 때문에 악의적인 사용자가 해당 페이지를 탈취, 도청을 할 수 있는 상황이다.

HTTPS는 HTTP 통신 시 SSL의 인증, 암호화 기능을 추가하여 통신상 암호화를 적용하고 인증서를 통한 정당한 페이지인지 확인하는 절차를 추가하므로써 무결성과 기밀성을 보장한다. 통신 과정에서 데이터는 암호화되어 전송되기 때문에 악의적인 사용자가 도청하더라도 암호화된 데이터만 보게 될 것이다.

HTTPS가 적용된 웹 사이트는 주소창에서 확인할 수 있다. URL에는 'HTTPS://'로 프로토콜 지시자가 시작할 것이고 최근 브라우저에서는 주소줄에서 신뢰된 인증서를 확인할 수 있는 부분이 노출되어 있다.

주소 표시줄의 HTTPS 적용 여부

이러한 신뢰할 수 있는 사이트 여부는 SSL 인증서를 통해 확인이 가능하다. 주소 표시줄의 자물쇠를 누르면 인증서가 신뢰할 수 있는 인증서인지, 어디서 발급한 것인지 알 수 있다.

tistory의 인증서

SSL 인증서는 DigiCert 등의 인증 기관에서 비용을 지불하고 발급받을 수 있으며 발급 받은 인증서는 일정 기간동안 유지된다. 또한 무료로 OpenSSL을 통해 발급할 수도 있으며 이럴 경우 HTTPS 통신은 할 수 있지만 해당 인증서는 신뢰할 수 없는 인증서를 사용중이라고 나온다. 즉, 암호화 통신은 하고 있지만 클라이언트에 지정된 인증기관에서 확인할 수 없는 인증서를 사용중이니 주의를 바란다는 뜻이다.

 

SSL 인증 과정

  1. 클라이언트가 서버에 접속 요청을 한다. 이때, 클라이언트는 램덤한 값과 어떤 암호화 알고리즘을 사용하는지도 같이 보내준다.
  2. 서버는 클라이언트의 요청을 확인하고 암호화 알고리즘 중 가장 안전한 방식을 선택하여 서버의 랜덤한 값과 함께 클라이언트에게 전송한다. 이때, 서버 측의 인증서도 함께 전송한다.
  3. 클라이언트는 서버의 인증서를 클라이언트에 등록된 인증기관(CA)에 공개키를 이용해 검증한다. CA 인증기관의 공개키로 복호화 성공 시 신뢰할 수 있는 서버로 판단한다. 그리고 서버측에서 전송한 램덤한 값과 클라이언트의 랜덤한 값을 서버의 공개키로 암호화하여 다시 서버로 전송한다.
  4. 서버는 개인키로 요청을 복호화하여 요청을 받아들인다. 이때, 3단계에서 조합한 서버와 클라이언트의 랜덤한 값은 이후 대칭키로 활용되어 빠른 암호화 통신이 이루어진다.

 

2020년 12월에 솔라윈즈 해킹사고가 발생했다. 공격자는 솔라윈즈의 네트워크 관리 도구인 오리온의 업데이트 파일에 악성코드를 삽입하여 악성코드를 퍼트렸다. 해당 악성코드는 업데이트를 한 시스템에 백도어를 심는 악성코드로 솔라윈즈의 오리온을 이용하는 기업이 많은 만큼 피해는 엄청났다. 특히 기업 뿐만 아니라 정부기관들도 사용하고 업데이트를 해버린 상황이다. 이에 솔라윈즈를 사용하는 시스템은 모두 전원을 끄고 사용을 중지하는 조치가 내려졌으며 현재 누가 공격을 했는지 밝히는 중이다. 미국의 국가 안보국(NSA)는 오래된 TLS 프로토콜은 지우고 권장하는 설정에 대한 가이드 라인을 발표 했다.

www.nsa.gov/News-Features/Feature-Stories/Article-View/Article/2462345/nsa-releases-eliminating-obsolete-transport-layer-security-tls-protocol-configu/

 

NSA releases “Eliminating Obsolete Transport Layer Security (TLS) Protocol Configurations”

The National Security Agency released a cybersecurity product detailing how to detect and fix out-of-date encryption protocol implementations. Networks and systems that use deprecated forms of

www.nsa.gov

 

반응형