본문 바로가기

항해 99

SSL / TLS

보안 소켓 계층(Secure Sockets Layer, SSL)

디지털 인증서로 불리며, 브라우저(사용자의 컴퓨터)와 서버(웹 사이트) 사이의 암호화된 연결을 수립하는 데 사용된다.

 

SSL(전송 계층 보안)은 컴퓨터 네트워크를 통해 통신 보안을 제공하는 C 언어로 작성된 암호화 프로토콜로 암호화를 사용하여 데이터의 무결성과 기밀성을 보호한다.

 

전송 계층 보안(Transport Layer Security)

TLS(전송 계층 보안)는 인터넷을 통한 보안 통신을 위한 표준으로 클라이언트/서버 애플리케이션이 도청 및 정보 변조를 방지하도록 설계된 방식으로 네트워크를 통해 통신할 수 있도록 한다.

 

SSL/TLS 인증서의 중요성

SSL/TLS 인증서는 웹 사이트 사용자 간에 신뢰 관계를 설정한다. 기업은 웹 서버에 SSL/TLS 인증서를 설치하여 SSL/TLS 보안 웹 사이트를 만든다.

 

SSL/TLS 보안 웹 페이지 특징

  • 웹 브라우저의 자물쇠 아이콘 및 녹색 주소 표시줄
  • 브라우저의 웹 사이트 주소에 https 접두사 포함
  • 유효한 TLS 인증서 URL 주소 표시줄의 자물쇠 아이콘을 클릭하여 펼치면 SSL/TLS 인증서가 유효한지 확인할 수 있다.
  • 암호화된 연결이 설정되면 클라이언트와 웹 서버만 전송된 데이터를 볼 수 있다.

SSL/TLS 인증서의 이점

  • 개인 데이터 보호
  • 고객 신뢰 강화
  • 규제 준수 지원
  • SEO 개선

개인 데이터 보호

브라우저는 웹 사이트의 SSL/TLS 인증서를 확인하여 웹 사이트 서버와의 보안 연결을 시작하고 유지한다.

SSL/TLS 기술은 브라우저와 웹 사이트 간의 모든 통신을 암호화하는 데 도움이 된다.

 

고객 신뢰 강화

SSL/TLS 보호를 통해 고객은 데이터를 비즈니스와 공유할 때 데이터가 보호되고 있음을 알 수 있다.

 

규제 준수 지원

일부 기업은 데이터 기밀성 및 보호에 대한 업계 규정을 준수해야 한다.

예를 들어 결제 카드 업계의 기업은 PCI DSS를 준수해야 한다. PCI DSS는 SSL/TLS 인증서로 웹 서버를 보호하는 것을 포함하여 안전한 온라인 트랜잭션을 제공하기 위한 업계 요구 사항이다.

 

SEO 개선

주요 검색 엔진은 SSL/TLS 보호를 검색 엔진 최적화의 순위 요소로 만들어서 SSL/TLS 보안 웹 사이트는 SSL/TLS 인증서가 없는 유사한 웹 사이트보다 검색 엔진에서 더 높은 순위를 차지한다.

이로 인해 검색 엔진에서 SSL/TLS로 보호되는 웹 사이트 방문자가 증가한다.

 

SSL/TLS 인증서 기술의 주요 원칙

  • 암호화
    • 퍼블릭 키
    • 프라이빗 키
  • 인증
  • 디지털 서명

암호화

암호화란 의도한 수신자만 암호를 복호화할 수 있도록  원본 메시지를 스크램블링하는 것을 의미한다.

예를 들어 모든 영문자를 알파벳 순서에 따라 앞으로 두 자리씩 이동하여 cat 이라는 단어를 ecv로 변경할 수 있고, 받는 사람은 알고 있는 규칙(또는 키)에 따라 각 문자를 두 자리씩 반대로 이동하여 실제 단어를 읽는다.

SSL/TLS 암호화는 이 개념을 바탕으로, 두 개의 서로 다른 키를 사용하여 메시지를 암호화하고 복호화하는 퍼블릭 키 암호화 기술을 사용한다.

양쪽 모두가 인증 기관으로 알려진 타사를 신뢰하는 경우, PKI는 한쪽에서 인증서를 사용하여 다른 쪽의 자격 증명을 설정할 수 있는 방법을 제공하고, 인증 기관은 통신을 시작하기 전에 인증서를 검증하고 양 당사자를 모두 인증한다.

 

퍼블릭 키

브라우저와 웹 서버는 퍼블릭 키 페어와 프라이빗 키 페어를 사용하여 정보를 인코딩 및 디코딩하는 방식으로 통신한다.

퍼블릭 키는 웹 서버가 SSL/TLS 인증서를 통해 브라우저에 제공하는 암호화 키로 브라우저는 웹 서버로 보내기 전에 이 키를 사용하여 정보를 암호화한다.

 

프라이빗 키

프라이빗 키는 웹 서버에만 있다. 프라이빗 키로 암호화된 파일은 퍼블릭 키로만 복호화할 수 있으며, 그 반대의 경우도 마찬가지이다.

프라이빗 키로 암호화된 파일을 퍼블릭 키로만 복호화할 수 있다면, 해당 파일의 암호를 복호화할 수 있다는 것은 의도한 수신자와 발신자라는 것을 신뢰할 수 있음을 의미한다.

 

인증

서버는 SSL/TLS 인증서를 통해 키를 브라우저로 전송한다. 브라우저는 신뢰할 수 있는 서드 파티의 인증서를 확인한다.

따라서 웹 서버의 신원을 신뢰할 수 있는지 확인할 수 있다.

 

디지털 서명

디지털 서명은 모든 SSL/TLS 인증서에 대해 고유한 번호로 수신자는 새 디지털 서명을 생성하고 원래 서명과 비교함으로써, 외부 당사자가 네트워크를 통해 전송되는 인증서를 조작하지 않았는지 확인한다.

 

SSL/TLS 인증서 검증

인증 기관(CA)은 웹 소유자, 웹 호스팅 회사 또는 기업에 SSL/TLS 인증서를 판매하는 조직으로 CA는 SSL/TLS 인증서를 발급하기 전에 도메인과 소유자의 세부 정보를 확인한다. 조직이 CA가 되려면 운영 체제, 브라우저 또는 모바일 디바이스 회사에서 정한 특정 요건을 충족하고 루트 인증 기관으로 리스팅되도록 신청해야 한다.

 

SSL/TLS 인증서 유효 기간

SSL/TLS 인증서의 최대 유효 기간은 13개월로 SSL/TLS 인증서의 유효 기간은 지난 수년에 걸쳐 점진적으로 단축되었다.

이는 기업과 웹 사용자에게 영향을 미치는 보안 위험을 줄이기 위한 조치로 유효 기간 단축을 통해 SSL/TLS 인증서가 악용될 가능성이 줄어든다.

 

SSL/TLS 인증서 구성

  • 도메인 이름
  • 인증 기관
  • 인증 기관의 디지털 서명
  • 발급 날짜
  • 만료 날짜
  • 퍼블릭 키
  • SSL/TLS 버전

SSL/TLS 인증서 작동

브라우저는 SSL/TLS 인증서를 사용하여 SSL/TLS 핸드셰이크를 통해 웹 서버와의 보안 연결 시작한다.

SSL/TLS 핸드셰이크는 HyperText Transfer Protocol(Https) 통신 기술의 구성 요소 중 하나로, HTTP와 SSL/TLS의 조합입니다.

HTTP는 웹 브라우저가 일반 텍스트로 된 정보를 웹 서버로 전송하는데 사용하는 프로토콜로 HTTP는 암호화되지 않은 데이터를 전송한다.

즉, 브라우저에서 전송된 정보를 제 3자가 가로채고 읽을 수 있어 완벽한 보안 통신을 위해 브라우저는 HTTP를 SSL/TLS와 함께 사용하거나 HTTPS를 사용한다.

 

SSL/TLS 핸드셰이크

  1. 브라우저가 SSL/TLS 보안 웹 사이트를 열고 웹 서버에 연결한다.
  2. 브라우저는 식별 가능한 정보를 요청하여 웹 서버의 진위 여부를 확인하려고 시도한다.
  3. 웹 서버는 공개 키가 포함된 SSL/TLS 인증서를 회신으로 보낸다.
  4. 브라우저는 SSL/TLS 인증서가 유효하고 웹 사이트 도메인과 일치하는지 확인한다. 브라우저가 SSL/TLS 인증서에 만족하면 공개 키를 사용하여 비밀 세션 키가 포함된 메시지를 암호화하고 전송한다.
  5. 웹 서버는 개인 키를 사용하여 메시지를 해독하고 세션 키를 검색한다. 그런 다음 세션 키를 사용하여 암호화하고 브라우저에 승인 메시지를 보낸다.
  6. 이제 브라우저와 웹 서버 모두 동일한 세션 키를 사용하여 메시지를 안전하게 교환하도록 전환한다.

세션 키

초기 SSL/TLS 인증이 완료된 후 브라우저와 웹 서버 간의 암호화된 통신을 유지한다. 세션 키는 대칭 암호화를 위한 암호 키다.

비대칭 암호화는 엄청난 컴퓨팅 성능을 차지해 웹 서버는 SSL/TLS 연결을 유지하기 위해 계산이 덜 필요한 대칭 암호화로 전환한다.

SSL/TLS 인증서 유형

SSL/TLS 인증서는 검증 수준과 도메인에 다라 다르다.

 

검증 수준에 따른 분류

  • 확장 검증 인증서
  • 조직에서 검증한 인증서
  • 도메인에서 검증한 인증서

지원하는 도메인 유형에 따른 분류

  • 단일 도메인 인증서
  • 와일드카드 인증서
  • 다중 도메인 인증서

확장 검증 인증서

확장 검증 인증서(EV SSL/TLS)는 최고 수준의 암호화, 검증 및 신뢰도를 제공하는 디지털 인증서이다.

EV SSL/TLS를 신청할 때 조직 또는 웹 소유자는 인증 기관의 엄격한 심사를 받는다.

  • 실제 사업장 주소, 인증서 신청의 적절성 및 독점적 도메인 사용권을 확인하는 것이 포함됨

조직 검증 인증서

조직 검증 인증서(OV SSL/TLS)는 EV SSL/TLS에 이어 두 번째로 높은 수준의 검증 및 신뢰도를 제공한다.

OV SSL/TLS를 신청할 때 확인 절차를 거쳐야 한다.

  • 인증 기관에 도메인 소유권을 증명해야 한다.

도메인 검증 인증서

검증 수준이 가장 낮은 디지털 인증서이다. 신청 비용이 가장 적게 들고 DV 인증서 신청자는 상대적으로 덜 엄격한 심사 절차를 거친다.

  • 확인 이메일이나 전화에 응답하여 도메인 소유권을 증명한다.

단일 도메인 SSL/TLS 인증서

하나의 도메인 또는 하위 도메인만 보호하는 SSL/TLS 인증서이다.

  • 도메인(amazon.com) : 웹 사이트의 기본 URL 또는 주소
  • 하위 도메인(aws.amazon.com) : 기본 도메인 앞에 텍스트 확장명이 있는 웹 주소

와일드카드 SSL/TLS 인증서

도메인과 모든 하위 도메인을 보호하는 SSL/TLS 인증서이다.

  • 인증서 하나로 http://example.com, blog.example.com, shop.example.com을 모두 보호할 수 있다.

다중 도메인 SSL/TLS 인증서

통합 통신 인증서라고도 하며, 소유자가 동일한 같은 서버 또는 다른 서버에 호스팅되는 여러 도메인 이름에 대해 SSL/TLS 보호를 제공한다.

  • http://example1.com, domain2.co.uk, shop.business3.com, chat.message.au 에 사용할 다중 도메인 인증서를 구매할 수 있다.

 

주요 차이점: SSL 과 TLS

SSL/TLS 핸드셰이크

핸드셰이크는 브라우저가 서버의 SSL 또는 TLS 인증서를 인증하는 프로세스로 양 당사자를 인증한 다음 암호화 키를 교환한다.

 

SSL 핸드셰이크는 명시적 연결인 반면 TLS 핸드셰이크는 암시적 연결이다.

SSL 핸드셰이크 프로세스는 TLS 프로세스보다 단계가 더 많으며, TLS는 추가 단계를 제거하고 총 암호 그룹 수를 줄여서 프로세스 속도를 높였다.

 

알림 메시지

SSL 및 TLS 프로토콜은 알림 메시지를 통해 오류와 경고를 전달한다.

SSL에는 경고와 치명적이라는 두 가지 알림 메시지 유형만 있으며, SSL 알림 메시지는 암호화되지 않는다.

  • 경고: 오류가 발생했지만 연결을 계속할 수 있음
  • 치명적: 연결을 즉시 종료해야 한다.

TLS는 닫기 알림이라는 추가 알림 메시지 유형이 있으며, TLS 알림은 추가 보안을 위해 암호화 된다.

  • 닫기: 세션 종료를 알림

메시지 인증

SSL과 TLS 모두 메시지의 진본성과 무결성을 확인하기 위한 암호화 기술인 메시지 인증 코드(MAC)를 사용한다.

레코드 프로토콜은 보안 키를 사용하여 MAC를 고정 길이 코드로 생성하고 원본 메시지에 첨부한다.

 

SSL 프로토콜은 MAC 생성에 MD5 알고리즘(현재는 구식)을 사용한다.

TLS는 더 복잡한 암호화와 보안에 해시 기반 메시지 인증 코드(HMAC)를 사용한다.

 

암호 그룹

암호 그룹은 브라우저와 서버 간의 정보를 암호화하기 위한 키를 생성하는 알고리즘 모음이다.

일반적으로 암호 그룹에는 키 교환 알고리즘, 검증 알고리즘, 대량 암호화 알고리즘 및 MAC 알고리짐이 포함된다.

보안 문제로 인해 TLS의 여러 알고리즘이 SSL에서 업그레이드 됨

 

SSL 인증서와 TLS 인증서의 차이점

SSL 인증서는 더 이상 사용되지 않으며 TLS 인증서가 업계 표준이다. 하지만 업계에서는 TLS 인증서를 지칭하는 데 SSL 이라는 용어를 계속 사용한다.

 

'항해 99' 카테고리의 다른 글

CS / 알고리즘 공부 1 - 운영 체제  (0) 2024.05.14
기술면접 준비 4주차 정리  (0) 2024.05.09
WIL - 13  (0) 2024.05.06
Proxy  (0) 2024.05.04
TCP / UDP  (0) 2024.05.01